command-code 1.27.0 → 1.27.1
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/dist/cli.mjs
CHANGED
|
@@ -11,6 +11,6 @@ import*as e from"path";import t,{join as n,dirname as r,parse as o,resolve as s,
|
|
|
11
11
|
░█▀▀░█▀▄▀█░█▀▄░
|
|
12
12
|
░█░░░█░▀░█░█░█░
|
|
13
13
|
░▀▀▀░▀░░░▀░▀▀░░
|
|
14
|
-
`,cA=getMaxLineWidth(lA),dA=sA,uA=__name(e=>{const t=e??getTerminalWidth();return t>=oA?"full":t>=dA?"compact":"minimal"},"getHeaderLayout");new Set(["dark","light"]),Ex(),Px();var mA=!1;async function resolveStartupTheme(){return mA||(mA=!0,setDetectedTerminalTheme(await detectTerminalTheme())),resolveCliTheme(getCliTheme())}async function applyStartupTheme(){const e=await resolveStartupTheme();return applyTuiTheme(e),e}function useAuthFlow(e){const{onSuccess:t,onFailure:n,onCancel:r,timeout:o=po}=e,[s,a]=et("initializing"),[i,l]=et("Starting authentication..."),[c,d]=et(""),[u,m]=et(null),p=tt(t),g=tt(n),h=tt(r);nt(()=>{p.current=t,g.current=n,h.current=r});const f=tt(null);f.current??=createAuthFlowController({timeoutMs:o,openBrowser:__name(e=>wt(e),"openBrowser"),onAuthStateChange:a,onStatusMessageChange:l,onBrowserUrlChange:m,onSuccess:__name(({config:e,source:t})=>p.current(e,t),"onSuccess"),onFailure:__name(({reason:e,message:t})=>g.current(e,t),"onFailure"),onCancel:__name(()=>h.current(),"onCancel")});const y=f.current,S=ot(()=>{y.cancel()},[y]),w=ot(e=>y.submitApiKey(e),[y]);return nt(()=>(y.start(),()=>{y.dispose()}),[y]),{authState:s,statusMessage:i,browserUrl:u,apiKeyInput:c,setApiKeyInput:d,handleApiKeySubmit:w,cancel:S,hasCompleted:y.hasCompleted()}}function useCursorState({value:e,focus:t,showCursor:n,initialCursor:r}){const[o,s]=et(r??(e||"").length),a=tt(o),i=tt(e);nt(()=>{const r=i.current;if(i.current=e,e===r)return;if(!t)return;if(!n)return;const l=(e||"").length;o>l&&(s(l),a.current=l)},[e,t,n,o]);const l=ot(e=>{s(e),a.current=e},[]);return{cursor:o,setCursor:l,cursorRef:a}}function useRawStdinHandler({focus:e,valueRef:t,cursorRef:n,onUpdate:r,setHandled:o,stripBracketedPaste:s=!1}){const a=tt(!1);nt(()=>{if(!e)return;const i=process.stdin,l=__name(e=>{o(!0);const t=clampCursor(e.cursor,e.value.length);r(e.value,t),setTimeout(()=>o(!1),0)},"emitStdinResult"),c=__name(e=>{const r=e.toString();if(s){const e=processBracketedPasteInput({input:r,value:t.current,cursor:n.current});if(e.handled)return void l(e)}const o=processRawInput(r,t.current,n.current);o.handled&&l(o)},"handleRawInput");if(i.on("data",c),!a.current&&hasBufferedInput()){a.current=!0;const e=consumeBufferedInput();e&&c(Buffer.from(e))}return stopEarlyInputCapture(),()=>{i.off("data",c)}},[e,t,n,r,o,s])}function useInkInputHandler({focus:e,showCursor:t,valueRef:n,cursorRef:r,isHandledByStdin:o,onUpdate:s,onSubmit:a}){Ye((e,i)=>{if(o())return;if(isIgnoredKey(e,i))return;if(i.return)return void(i.shift||i.ctrl||i.meta||a?.(n.current));const l=processInkInput(e,i,n.current,r.current,t);if(!l.handled)return;const c=clampCursor(l.cursor,l.value.length);s(l.value,c)},{isActive:e})}function useSyncedRef(e){const t=tt(e);return t.current=e,t}function useEchoAwareValueRef(e){const t=tt(e),n=tt([]),r=n.current.indexOf(e);return-1!==r&&n.current.splice(0,r+1),-1===r&&t.current!==e&&(t.current=e,n.current=[]),{valueRef:t,noteEmittedValue:ot(e=>{n.current.push(e),n.current.length>64&&n.current.shift()},[])}}__name(resolveStartupTheme,"resolveStartupTheme"),__name(applyStartupTheme,"applyStartupTheme"),Ex(),Ex(),Px(),__name(useAuthFlow,"useAuthFlow"),Ex(),Px(),Ex(),Px(),Ex(),Px(),__name(useCursorState,"useCursorState"),__name(useRawStdinHandler,"useRawStdinHandler"),__name(useInkInputHandler,"useInkInputHandler"),__name(useSyncedRef,"useSyncedRef"),__name(useEchoAwareValueRef,"useEchoAwareValueRef"),Ex(),Px();var pA=lt.hex(Rx.DIM),gA=__name(e=>lt.hex(Yx.CODE)(e),"accentHex"),hA=/^\/[A-Za-z0-9][\w/:-]*/,fA=/(^|\s)(@\S+)/g;function pastedTokenRanges(e,t){const n=[],r=new RegExp(qE.source,"g");let o;for(;null!==(o=r.exec(e));)n.push({start:o.index,end:o.index+o[0].length,link:null,color:"dim"});if(t&&t.size>0){const r=new RegExp(KE.source,"g");for(;null!==(o=r.exec(e));){const e=Number(o[1]);if(!t.has(e))continue;const r=t.get(e)??null;n.push({start:o.index,end:o.index+o[0].length,link:r?fileUrl(r):null,color:"dim"})}}return n.sort((e,t)=>e.start-t.start)}function accentTokenRanges(e,t,n){const r=__name((e,n)=>t.some(t=>e<t.end&&n>t.start),"overlapsOccupied"),o=__name(e=>!n||n(e),"isAccentedCommand"),s=[],a=hA.exec(e);a&&!r(0,a[0].length)&&o(a[0])&&s.push({start:0,end:a[0].length,link:null,color:"accent"});const i=new RegExp(fA.source,"g");let l;for(;null!==(l=i.exec(e));){const e=l.index+l[1].length,t=e+l[2].length;r(e,t)||s.push({start:e,end:t,link:null,color:"accent"})}return s}function renderPlainSpan(e,t,n,r,o){let s="";for(let a=t;a<n;a++){const t=e[a];s+=o&&a===r?"\n"===t?yt.inverse(" ")+"\n":yt.inverse(t):t}return s}function renderTokenSpan(e,t,n,r,o,s="dim"){const a="accent"===s?gA:pA;return o&&r>=t&&r<n?a(e.slice(t,r))+yt.inverse(e[r])+a(e.slice(r+1,n)):a(e.slice(t,n))}function renderPlaceholder(e,t){return t?0===e.length?yt.inverse(" "):yt.inverse(e[0])+pA(e.slice(1)):pA(e)}function renderValue(e,t,n,r,o){const s=pastedTokenRanges(e,r),a=[...s,...accentTokenRanges(e,s,o)].sort((e,t)=>e.start-t.start);if(!n&&0===a.length)return e;if(n&&0===e.length)return yt.inverse(" ");let i="",l=0;for(const{start:r,end:o,link:s,color:c}of a){i+=renderPlainSpan(e,l,r,t,n);const a=renderTokenSpan(e,r,o,t,n,c);i+=s?createOSC8Link(s,a,!1):a,l=o}return i+=renderPlainSpan(e,l,e.length,t,n),n&&t===e.length&&(i+=yt.inverse(" ")),i}function wrapWithIndent(e,t,n){if(t<=n)return e;const r=" ".repeat(n),o=t-n,s=t;if(mt(e).length<=s)return e;const a=e.split(/(\s+)/);let i="",l=0,c=!0;for(const e of a){const t=mt(e).length;if(l+t>(c?s:o)&&l>0&&(i+="\n"+r,l=n,c=!1),i+=e,l+=t,e.includes("\n")){const t=e.substring(e.lastIndexOf("\n")+1);l=mt(t).length,c=!0}}return i}function getDisplayValue(e,t,n,r,o,s,a){const i=r&&o;return 0===e.length&&t?renderPlaceholder(t,i):renderValue(e,n,i,s,a)}function getMaskedValue(e,t){return t?t.repeat(e.length):e}__name(pastedTokenRanges,"pastedTokenRanges"),__name(accentTokenRanges,"accentTokenRanges"),__name(renderPlainSpan,"renderPlainSpan"),__name(renderTokenSpan,"renderTokenSpan"),__name(renderPlaceholder,"renderPlaceholder"),__name(renderValue,"renderValue"),__name(wrapWithIndent,"wrapWithIndent"),__name(getDisplayValue,"getDisplayValue"),__name(getMaskedValue,"getMaskedValue"),Px();var yA={white:yt.white,green:yt.green,red:yt.red,blue:yt.blue,yellow:yt.yellow,cyan:yt.cyan,magenta:yt.magenta,gray:yt.gray,grey:yt.gray};function TextInput({value:e,placeholder:t="",focus:n=!0,mask:r,showCursor:o=!0,onChange:s,onSubmit:a,onCursorChange:i,prefix:l="",prefixColor:c,singleLine:d=!1,maxWidth:u,stripBracketedPaste:m=!1,disablePasteRouting:p=!1,initialCursor:g,imageTokenLinks:h,isRecognizedSlashCommand:f}){const y=tt(!1),{valueRef:S,noteEmittedValue:w}=useEchoAwareValueRef(e),k=useSyncedRef(s),{cursor:v,setCursor:C,cursorRef:b}=useCursorState({value:e,focus:n,showCursor:o,initialCursor:g});Xe.useEffect(()=>{i?.(v)},[v,i]);const E=ot((e,t)=>{C(t),e!==S.current&&(w(e),S.current=e,k.current(e))},[C,S,k,w]),T=ot(e=>{y.current=e},[]),P=ot(()=>y.current,[]);useRawStdinHandler({focus:n,valueRef:S,cursorRef:b,onUpdate:E,setHandled:T,stripBracketedPaste:m}),Xe.useEffect(()=>{if(n&&!p)return registerPasteConsumer(e=>{if(y.current)return;const t=e.replace(/\r\n/g,"\n").replace(/\r/g,"\n"),n=insertTextAt(S.current,b.current,t);E(n.text,n.cursor)})},[n,p,S,b,E]),useInkInputHandler({focus:n,showCursor:o,valueRef:S,cursorRef:b,isHandledByStdin:P,onUpdate:E,onSubmit:a});const{stdout:M}=qe(),x=M?.columns??80,I=getMaskedValue(e,r),A=c?yA[c]:void 0,R=l?A?A(l):l:"",O=getDisplayValue(I,t,v,o,n,h,f),D=l?.length??0,L=R+O;if(d){const e=L.replace(/\n/g," ");return null!=u?Xe.createElement(Ge,{width:u},Xe.createElement(Ve,{wrap:"truncate"},e)):Xe.createElement(Ve,{wrap:"truncate"},e)}const N=wrapWithIndent(L,x,D);return Xe.createElement(Ve,{wrap:"wrap"},N)}__name(TextInput,"TextInput"),Ex();var SA=__name(({children:e})=>Xe.createElement(Ve,{italic:!0,color:Rx.DIM},e),"HintText"),wA=__name(({children:e})=>Xe.createElement(Ve,{bold:!0},e),"HintKey"),kA=__name(({hints:e,marginTop:t=1})=>{const n=e.filter(e=>null!=e&&!1!==e&&""!==e);return 0===n.length?null:Xe.createElement(Ge,{marginTop:t},Xe.createElement(SA,null,n.map((e,t)=>Xe.createElement(Xe.Fragment,{key:t},t>0&&" · ",e))))},"HintBar"),vA=Xe.memo(({authState:e,browserUrl:t,apiKeyInput:n,setApiKeyInput:r,handleApiKeySubmit:o})=>{const s="waiting_browser"===e||"manual_entry"===e||"invalid_key"===e,a=t&&("waiting_browser"===e||"manual_entry"===e);return Xe.createElement(Xe.Fragment,null,s&&Xe.createElement(Ge,{flexDirection:"column"},Xe.createElement(Ge,{borderStyle:"single",borderColor:"manual_entry"===e||"invalid_key"===e?Rx.YELLOW:Rx.GRAY,paddingX:1},Xe.createElement(Ve,{color:Rx.DIM},"API Key: "),Xe.createElement(Ge,{flexGrow:1},Xe.createElement(TextInput,{value:n,onChange:r,onSubmit:o,placeholder:"Paste your API key...",mask:"*",showCursor:!0}))),Xe.createElement(Ge,{marginTop:1},Xe.createElement(Ve,{color:Rx.DIM},getCommandAuthHelpText(e))),a&&Xe.createElement(Ge,{marginTop:1,flexDirection:"column"},Xe.createElement(Ve,{color:Rx.DIM},getCommandAuthUrlLabel(e)),Xe.createElement(fI,{url:t,text:t,color:Rx.CYAN,dimColor:!0}))),"validating"===e&&Xe.createElement(Ge,{marginTop:1},Xe.createElement(Ve,{color:Rx.DIM},"Checking API key with server...")),("waiting_browser"===e||"manual_entry"===e||"invalid_key"===e)&&Xe.createElement(Ge,{marginTop:1},Xe.createElement(SA,null,"ctrl+c to cancel")))});vA.displayName="AuthInputSection";var CA=__name(({authState:e,statusMessage:t,browserUrl:n,apiKeyInput:r,setApiKeyInput:o,handleApiKeySubmit:s})=>{const a=__name(()=>"waiting_browser"===e?Xe.createElement(Ve,{color:Rx.CYAN},it.ellipsis):"browser_success"===e||"success"===e?Xe.createElement(Ve,{color:Rx.GREEN},it.tick):"denied"===e||"invalid_key"===e?Xe.createElement(Ve,{color:Rx.RED},it.cross):"manual_entry"===e?Xe.createElement(Ve,{color:Rx.YELLOW},it.arrowDown):"error"===e?Xe.createElement(Ve,{color:Rx.RED},it.warning):Xe.createElement(gt,{type:"dots"}),"getStatusIcon"),i=__name(()=>getCommandAuthStatusColor(e),"getStatusColor");return"browser_success"===e||"success"===e||"denied"===e?null:Xe.createElement(Ge,{flexDirection:"column",paddingY:1},Xe.createElement(Ge,{marginBottom:1},Xe.createElement(Ge,{marginRight:1},a()),Xe.createElement(Ve,{color:i()},t)),Xe.createElement(vA,{authState:e,browserUrl:n,apiKeyInput:r,setApiKeyInput:o,handleApiKeySubmit:s}))},"AuthFlowUI"),bA=__name(({onComplete:e})=>{const{authState:t,statusMessage:n,browserUrl:r,apiKeyInput:o,setApiKeyInput:s,handleApiKeySubmit:a,cancel:i}=useAuthFlow({onSuccess:__name((t,n)=>{e({success:!0,config:t,source:n})},"onSuccess"),onFailure:__name((t,n)=>{e({success:!1,reason:t,message:n})},"onFailure"),onCancel:__name(()=>{e({success:!1,reason:"cancelled",message:"Authentication cancelled by user."})},"onCancel")});return Ye((e,t)=>{t.ctrl&&"c"===e&&i()}),Xe.createElement(CA,{authState:t,statusMessage:n,browserUrl:r,apiKeyInput:o,setApiKeyInput:s,handleApiKeySubmit:a})},"LoginWithApiKey");Ex(),Px();var EA=getPackageJson(import.meta.url),TA="string"==typeof EA.version&&EA.version.trim()?EA.version:"unknown";function createApiClient(e){return createCommandApiClient({baseUrl:e.baseUrl,timeout:e.timeout,cliVersion:TA,deps:{getAuthKey:getAuthKey,getTraceId:getTraceId,getTelemetryEnv:getTelemetryEnv,trackApiCallStart:trackAPICallStart,cmdZdrEnabled:__name(()=>"1"===process.env.CMD_ZDR,"cmdZdrEnabled"),deepseekInternalEnabled:__name(()=>"1"===process.env.CMD_PROVIDER_DEEPSEEK_INTERNAL,"deepseekInternalEnabled")}})}function getAuthKey(){return getCommandAuthKey({runtime:getCommandConfigRuntime(),path:getAuthFile(),env:process.env})}function isLingFlashFreeEnded(e=new Date){return e.getTime()>=Date.parse("2026-08-03T13:00:00Z")}__name(createApiClient,"createApiClient"),__name(getAuthKey,"getAuthKey"),Ex(),Px(),Ex(),Ex(),__name(isLingFlashFreeEnded,"isLingFlashFreeEnded");var PA={GENERATE:"/alpha/agent/generate"},MA={RECORD:"/alpha/fingerprint/record"},xA={START:"/alpha/sandbox/start"},IA={CREATE:"/alpha/share/create",DELETE:"/alpha/share/delete",APPEND:"/alpha/share/append"},AA={CREATE:"/alpha/devrel-thread/create",DELETE:"/alpha/devrel-thread/delete",UPDATE:"/alpha/devrel-thread/update"},RA={GET:"/alpha/taste/:projectSlug",UPDATE:"/alpha/taste/:projectSlug/update",DELETE:"/alpha/taste/:projectSlug",LEARN:"/alpha/learn"},OA={CREDITS:"/alpha/billing/credits",SUBSCRIPTIONS:"/alpha/billing/subscriptions"},DA={SUMMARY:"/alpha/usage/summary"},LA={TRACK:"/alpha/lifecycle-events"},NA={GET:/\/internal\/orgs\/[a-zA-Z0-9_-]+/,FOLLOW:/\/internal\/orgs\/[a-zA-Z0-9-]+\/follow/,FOLLOWERS:/\/internal\/orgs\/[a-zA-Z0-9-]+\/followers/},$A={FOLLOW:/\/internal\/users\/[a-zA-Z0-9-]+\/follow/,FOLLOWERS:/\/internal\/users\/[a-zA-Z0-9-]+\/followers/,FOLLOWING:/\/internal\/users\/[a-zA-Z0-9-]+\/following/},_A={PACKAGES:{GET:/\/internal\/taste\/packages\/[a-zA-Z0-9_-]+\/[a-zA-Z0-9_-]+/,FILES:/\/internal\/taste\/packages\/[a-zA-Z0-9_-]+\/[a-zA-Z0-9_-]+\/files/,DOWNLOAD:/\/internal\/taste\/packages\/[a-zA-Z0-9_-]+\/[a-zA-Z0-9_-]+\/download/,UPDATE:/\/internal\/taste\/packages\/[a-zA-Z0-9_-]+\/[a-zA-Z0-9_-]+\/update/,STAR:/\/internal\/taste\/packages\/[a-zA-Z0-9_-]+\/[a-zA-Z0-9_-]+\/star/,PIN:/\/internal\/taste\/packages\/[a-zA-Z0-9_-]+\/[a-zA-Z0-9_-]+\/pin/}};function getBinaryCommand(){return"win32"===process.platform?"cmdc":"cmd"}Object.values({GET:/\/alpha\/taste\/[a-z0-9-]+/,UPDATE:/\/alpha\/taste\/[a-z0-9-]+\/update/,DELETE:/\/alpha\/taste\/[a-z0-9-]+\/rules\/[a-z0-9-]+/,LIST:/\/alpha\/taste\/[a-z0-9-]+\/rules/}),Object.values({UPLOAD:/^\/beta\/taste\/packages\/[a-zA-Z0-9_-]+$/,FILES:/\/beta\/taste\/packages\/[a-zA-Z0-9_-]+\/[a-zA-Z0-9_-]+\/files/,GET:/\/beta\/taste\/packages\/[a-zA-Z0-9_-]+\/[a-zA-Z0-9_-]+/,DOWNLOAD:/\/beta\/taste\/packages\/[a-zA-Z0-9_-]+\/[a-zA-Z0-9_-]+\/download/}),PA.GENERATE,MA.RECORD,xA.START,IA.CREATE,IA.DELETE,IA.APPEND,AA.CREATE,AA.DELETE,AA.UPDATE,RA.LEARN,RA.DELETE,RA.GET,RA.UPDATE,Object.values({UPLOAD:"/beta/taste/packages/:namespace",LIST:"/beta/taste/packages",GET:"/beta/taste/packages/:namespace/:packageName",FILES:"/beta/taste/packages/:namespace/:packageName/files",DOWNLOAD:"/beta/taste/packages/:namespace/:packageName/download",DELETE:"/beta/taste/packages/:namespace/:packageName"}),OA.CREDITS,OA.SUBSCRIPTIONS,DA.SUMMARY,LA.TRACK,Object.values(NA),Object.values($A),Object.values(_A.PACKAGES),Object.values({GET:/\/internal\/profile\/[a-zA-Z0-9_-]+/,PACKAGES:/\/internal\/profile\/[a-zA-Z0-9_-]+\/packages/,FOLLOWING:/\/internal\/profile\/[a-zA-Z0-9_-]+\/following/,FOLLOWERS:/\/internal\/profile\/[a-zA-Z0-9_-]+\/followers/,PACKAGE_GET:/\/internal\/profile\/[a-zA-Z0-9_-]+\/packages\/[a-zA-Z0-9_-]+/,PACKAGE_DOWNLOAD:/\/internal\/profile\/[a-zA-Z0-9_-]+\/packages\/[a-zA-Z0-9_-]+\/download/}),__name(getBinaryCommand,"getBinaryCommand");var FA="anthropic",UA="openai",jA="baseten",BA="vercel-ai-gateway",WA="cloudflare-ai-gateway",HA="cmd-ai",GA="openrouter",VA="alibaba",zA="novita",qA="morph",KA=BA,YA={[FA]:[{id:"anthropic:claude-sonnet-5",provider:"Anthropic",category:"premium",promptCost:2,completionCost:10,cacheWrite5mCost:2.5,cacheWrite1hCost:4,cacheHitCost:.2},{id:"anthropic:claude-sonnet-4-20250514",provider:"Anthropic",category:"premium",promptCost:3,completionCost:15,cacheWrite5mCost:3.75,cacheWrite1hCost:6,cacheHitCost:.3},{id:"anthropic:claude-sonnet-4-5-20250929",provider:"Anthropic",category:"premium",promptCost:3,completionCost:15,cacheWrite5mCost:3.75,cacheWrite1hCost:6,cacheHitCost:.3},{id:"anthropic:claude-opus-4-5-20251101",provider:"Anthropic",category:"premium",promptCost:5,completionCost:25,cacheWrite5mCost:6.25,cacheWrite1hCost:10,cacheHitCost:.5},{id:"anthropic:claude-sonnet-4-6",provider:"Anthropic",category:"premium",promptCost:3,completionCost:15,cacheWrite5mCost:3.75,cacheWrite1hCost:6,cacheHitCost:.3},{id:"anthropic:claude-fable-5",provider:"Anthropic",category:"premium",promptCost:10,completionCost:50,cacheWrite5mCost:12.5,cacheWrite1hCost:20,cacheHitCost:1},{id:"anthropic:claude-opus-5",provider:"Anthropic",category:"premium",promptCost:5,completionCost:25,cacheWrite5mCost:6.25,cacheWrite1hCost:10,cacheHitCost:.5},{id:"anthropic:claude-opus-4-8",provider:"Anthropic",category:"premium",promptCost:5,completionCost:25,cacheWrite5mCost:6.25,cacheWrite1hCost:10,cacheHitCost:.5},{id:"anthropic:claude-opus-4-7",provider:"Anthropic",category:"premium",promptCost:5,completionCost:25,cacheWrite5mCost:6.25,cacheWrite1hCost:10,cacheHitCost:.5},{id:"anthropic:claude-opus-4-6",provider:"Anthropic",category:"premium",promptCost:5,completionCost:25,cacheWrite5mCost:6.25,cacheWrite1hCost:10,cacheHitCost:.5},{id:"anthropic:claude-haiku-4-5-20251001",provider:"Anthropic",category:"premium",promptCost:1,completionCost:5,cacheWrite5mCost:1.25,cacheWrite1hCost:2,cacheHitCost:.1}],[UA]:[{id:"openai:gpt-5.5",provider:"OpenAI",category:"premium",promptCost:5,completionCost:30,cacheWrite5mCost:0,cacheWrite1hCost:0,cacheHitCost:.5},{id:"openai:gpt-5.4",provider:"OpenAI",category:"premium",promptCost:2.5,completionCost:15,cacheWrite5mCost:0,cacheWrite1hCost:0,cacheHitCost:.25},{id:"openai:gpt-5.3-codex",provider:"OpenAI",category:"premium",promptCost:2,completionCost:8,cacheWrite5mCost:0,cacheWrite1hCost:0,cacheHitCost:.5},{id:"openai:gpt-5.4-mini",provider:"OpenAI",category:"premium",promptCost:.75,completionCost:4.5,cacheWrite5mCost:0,cacheWrite1hCost:0,cacheHitCost:.075},{id:"openai:gpt-5.6-sol",provider:"OpenAI",category:"premium",promptCost:5,completionCost:30,cacheWrite5mCost:6.25,cacheWrite1hCost:0,cacheHitCost:.5},{id:"openai:gpt-5.6-terra",provider:"OpenAI",category:"premium",promptCost:2,completionCost:12,cacheWrite5mCost:2.5,cacheWrite1hCost:0,cacheHitCost:.2},{id:"openai:gpt-5.6-luna",provider:"OpenAI",category:"premium",promptCost:.2,completionCost:1.2,cacheWrite5mCost:.25,cacheWrite1hCost:0,cacheHitCost:.02}],[jA]:[{id:"baseten:zai-org/GLM-5",provider:"Baseten",category:"opensource",promptCost:.95,completionCost:3.15,cacheWrite5mCost:0,cacheWrite1hCost:0,cacheHitCost:0},{id:"baseten:moonshotai/Kimi-K2.5",provider:"Baseten",category:"opensource",promptCost:.6,completionCost:3,cacheWrite5mCost:0,cacheWrite1hCost:0,cacheHitCost:0},{id:"baseten:moonshotai/Kimi-K2.6",provider:"Baseten",category:"opensource",promptCost:.95,completionCost:4,cacheWrite5mCost:0,cacheWrite1hCost:0,cacheHitCost:.16},{id:"baseten:MiniMaxAI/MiniMax-M2.5",provider:"Baseten",category:"opensource",promptCost:.5,completionCost:2,cacheWrite5mCost:0,cacheWrite1hCost:0,cacheHitCost:0}],[zA]:[{id:"novita:moonshotai/Kimi-K3",provider:"Novita",category:"opensource",promptCost:3,completionCost:15,cacheWrite5mCost:0,cacheWrite1hCost:0,cacheHitCost:.3}],[BA]:[],[GA]:[]};fe.enum(["owner","admin","member"]);var JA="chatComplete",QA="responses",XA="MiniMaxAI/MiniMax-M3-Free",ZA={SONNET_5:{id:"claude-sonnet-5",inputModalities:["text","image"],provider:FA,spec:JA,label:"Claude Sonnet 5",name:"Claude Sonnet 5",description:"best combo of speed & intelligence (recommended)",reasoning:!0,reasoningEfforts:["low","medium","high","xhigh","max"],contextWindow:1e6},SONNET_4_6:{id:"claude-sonnet-4-6",inputModalities:["text","image"],provider:FA,spec:JA,label:"Claude Sonnet 4.6",name:"Claude Sonnet 4.6",description:"prev Sonnet, still fast & capable",reasoningEfforts:["low","medium","high","xhigh","max"],contextWindow:1e6},FABLE_5:{id:"claude-fable-5",inputModalities:["text","image"],provider:FA,spec:JA,label:"Claude Fable 5",name:"Claude Fable 5",description:"most capable for demanding reasoning & long-horizon agents",reasoning:!0,reasoningEfforts:["low","medium","high","xhigh","max"],contextWindow:1e6},OPUS_5:{id:"claude-opus-5",inputModalities:["text","image"],provider:FA,spec:JA,label:"Claude Opus 5",name:"Claude Opus 5",description:"most intelligent Opus for agents and coding",reasoning:!0,reasoningEfforts:["low","medium","high","xhigh","max"],contextWindow:1e6},OPUS_4_8:{id:"claude-opus-4-8",inputModalities:["text","image"],provider:FA,spec:JA,label:"Claude Opus 4.8",name:"Claude Opus 4.8",description:"prev flagship, still strong for agents and coding",reasoning:!0,reasoningEfforts:["low","medium","high","xhigh","max"],contextWindow:1e6},OPUS_4_7:{id:"claude-opus-4-7",inputModalities:["text","image"],provider:FA,spec:JA,label:"Claude Opus 4.7",name:"Claude Opus 4.7",description:"older Opus, still strong for agents and coding",reasoning:!0,reasoningEfforts:["low","medium","high","xhigh","max"],contextWindow:1e6},HAIKU_4_5:{id:"claude-haiku-4-5-20251001",inputModalities:["text","image"],provider:FA,spec:JA,label:"Claude Haiku 4.5",name:"Claude Haiku 4.5",description:"fastest & most compact, great for quick tasks",contextWindow:2e5},GPT_5_6_SOL:{id:"gpt-5.6-sol",inputModalities:["text","image"],provider:BA,spec:QA,label:"GPT-5.6 Sol",name:"GPT-5.6 Sol",description:"frontier model for complex professional work",vendorLabel:"OpenAI",reasoning:!0,reasoningEfforts:["low","medium","high","xhigh","max"],contextWindow:105e4},GPT_5_6_TERRA:{id:"gpt-5.6-terra",inputModalities:["text","image"],provider:GA,spec:QA,label:"GPT-5.6 Terra",name:"GPT-5.6 Terra",description:"balances intelligence and cost",vendorLabel:"OpenAI",reasoning:!0,reasoningEfforts:["low","medium","high","xhigh","max"],contextWindow:105e4},GPT_5_6_LUNA:{id:"gpt-5.6-luna",inputModalities:["text","image"],provider:GA,spec:QA,label:"GPT-5.6 Luna",name:"GPT-5.6 Luna",description:"optimized for cost-sensitive workloads",vendorLabel:"OpenAI",reasoning:!0,reasoningEfforts:["low","medium","high","xhigh","max"],contextWindow:105e4},GPT_5_5:{id:"gpt-5.5",inputModalities:["text","image"],provider:UA,spec:QA,label:"GPT-5.5",name:"GPT-5.5",description:"latest frontier model for general complex work",reasoning:!0,reasoningEfforts:["low","medium","high","xhigh"]},GPT_5_4:{id:"gpt-5.4",inputModalities:["text","image"],provider:UA,spec:QA,label:"GPT-5.4",name:"GPT-5.4",description:"frontier model for general complex work",reasoning:!0,reasoningEfforts:["low","medium","high","xhigh"],contextWindow:4e5},GPT_5_3_CODEX:{id:"gpt-5.3-codex",inputModalities:["text","image"],provider:UA,spec:QA,label:"GPT-5.3 Codex",name:"GPT-5.3 Codex",description:"frontier coding model",reasoning:!0,reasoningEfforts:["low","medium","high","xhigh"],contextWindow:4e5},GPT_5_4_MINI:{id:"gpt-5.4-mini",inputModalities:["text","image"],provider:UA,spec:QA,label:"GPT-5.4 Mini",name:"GPT-5.4 Mini",description:"fast, cost-effective model for everyday tasks",reasoning:!0,reasoningEfforts:["low","medium","high"],contextWindow:4e5},MINIMAX_M3_FREE:{id:XA,inputModalities:["text","image"],provider:KA,spec:JA,label:"MiniMax M3",name:"MiniMax M3",description:"frontier coding, agents & native multimodality",badge:"free",hidden:!0,reasoning:!0,contextWindow:1e6},DEEPSEEK_V4_PRO:{id:"deepseek/deepseek-v4-pro",inputModalities:["text"],provider:KA,spec:JA,label:"DeepSeek V4 Pro (latest)",name:"DeepSeek V4 Pro (latest)",description:"hybrid-attention long-context reasoning",reasoning:!0,reasoningEfforts:["high","max"],contextWindow:1e6},DEEPSEEK_V4_FLASH:{id:"deepseek/deepseek-v4-flash",inputModalities:["text"],provider:KA,spec:JA,label:"DeepSeek V4 Flash (latest)",name:"DeepSeek V4 Flash (latest)",description:"fast hybrid-attention reasoning",reasoning:!0,reasoningEfforts:["high","max"],contextWindow:1e6},KIMI_K3:{id:"moonshotai/Kimi-K3",inputModalities:["text","image"],provider:KA,spec:JA,label:"Kimi K3",name:"Kimi K3",description:"long-horizon coding & knowledge work with 1M context",reasoning:!0,contextWindow:1e6},KIMI_K2_7_CODE:{id:"moonshotai/Kimi-K2.7-Code",inputModalities:["text","image"],provider:KA,spec:JA,label:"Kimi K2.7 Code",name:"Kimi K2.7 Code",description:"improved long-horizon coding with vision",reasoning:!0,contextWindow:256e3},KIMI_K2_7_CODE_HIGHSPEED:{id:"moonshotai/Kimi-K2.7-Code-Highspeed",inputModalities:["text","image"],provider:KA,spec:JA,label:"Kimi K2.7 Code HighSpeed",name:"Kimi K2.7 Code HighSpeed",description:"high-speed long-horizon coding with vision",reasoning:!0,contextWindow:262e3},KIMI_K2_6:{id:"moonshotai/Kimi-K2.6",inputModalities:["text","image"],provider:KA,spec:JA,label:"Kimi K2.6",name:"Kimi K2.6",description:"long-horizon coding with vision",contextWindow:256e3},KIMI_K2_5:{id:"moonshotai/Kimi-K2.5",inputModalities:["text","image"],provider:KA,spec:JA,label:"Kimi K2.5",name:"Kimi K2.5",description:"multimodal frontend coding",contextWindow:256e3},GLM_5_3:{id:"zai-org/GLM-5.3",inputModalities:["text"],provider:KA,spec:JA,label:"GLM-5.3",name:"GLM-5.3",description:"frontier coding with emergent cyber capabilities",reasoning:!0,reasoningEfforts:["low","high","max"],contextWindow:1e6},GLM_5_2:{id:"zai-org/GLM-5.2",inputModalities:["text"],provider:KA,spec:JA,label:"GLM-5.2",name:"GLM-5.2",description:"powerful coding with 1M context and long-horizon tasks",reasoning:!0,reasoningEfforts:["high","max"],contextWindow:1e6},GLM_5_2_FAST:{id:"zai-org/GLM-5.2-Fast",inputModalities:["text"],provider:KA,spec:JA,label:"GLM-5.2 Fast",name:"GLM-5.2 Fast",description:"high-throughput GLM-5.2 with 1M context",contextWindow:1e6},GLM_5_1:{id:"zai-org/GLM-5.1",inputModalities:["text"],provider:KA,spec:JA,label:"GLM-5.1",name:"GLM-5.1",description:"long-horizon autonomous coding agent"},GLM_5:{id:"zai-org/GLM-5",inputModalities:["text"],provider:KA,spec:JA,label:"GLM-5",name:"GLM-5",description:"multi-mode thinking & long-range planning",contextWindow:2e5},MINIMAX_M3:{id:"MiniMaxAI/MiniMax-M3",inputModalities:["text","image"],provider:KA,spec:JA,label:"MiniMax M3",name:"MiniMax M3",description:"frontier coding, agents & native multimodality",reasoning:!0,contextWindow:1e6},MINIMAX_M2_7:{id:"MiniMaxAI/MiniMax-M2.7",inputModalities:["text"],provider:KA,spec:JA,label:"MiniMax M2.7",name:"MiniMax M2.7",description:"end-to-end software engineering agent"},MINIMAX_M2_5:{id:"MiniMaxAI/MiniMax-M2.5",inputModalities:["text"],provider:KA,spec:JA,label:"MiniMax M2.5",name:"MiniMax M2.5",description:"cross-platform full-stack agentic dev",contextWindow:2e5},XIAOMI_MIMO_V2_5_PRO:{id:"xiaomi/mimo-v2.5-pro",inputModalities:["text"],provider:KA,spec:JA,label:"MiMo V2.5 Pro",name:"MiMo V2.5 Pro",description:"high-capability long-context agentic coding",contextWindow:1e6},XIAOMI_MIMO_V2_5:{id:"xiaomi/mimo-v2.5",inputModalities:["text","image"],provider:KA,spec:JA,label:"MiMo V2.5",name:"MiMo V2.5",description:"efficient long-context agentic coding",contextWindow:1e6},QWEN_3_8_MAX:{id:"Qwen/Qwen3.8-Max",inputModalities:["text","image"],provider:KA,spec:JA,label:"Qwen 3.8 Max",name:"Qwen 3.8 Max",description:"autonomous long-horizon coding & professional work",reasoning:!0,reasoningEfforts:["low","medium","xhigh"],contextWindow:1e6},QWEN_3_7_MAX:{id:"Qwen/Qwen3.7-Max",inputModalities:["text"],provider:KA,spec:JA,label:"Qwen 3.7 Max",name:"Qwen 3.7 Max",description:"frontier coding & long-horizon agent execution",reasoning:!0,contextWindow:1e6},QWEN_3_7_PLUS:{id:"Qwen/Qwen3.7-Plus",inputModalities:["text","image"],provider:KA,spec:JA,label:"Qwen 3.7 Plus",name:"Qwen 3.7 Plus",description:"agentic coding & reasoning at lower cost",reasoning:!0,contextWindow:1e6},QWEN_3_7_FLASH:{id:"Qwen/Qwen3.7-Flash",inputModalities:["text","image"],provider:KA,spec:JA,label:"Qwen 3.7 Flash",name:"Qwen 3.7 Flash",description:"fast low-cost agentic coding & reasoning",reasoning:!0,contextWindow:1e6},QWEN_3_6_MAX_PREVIEW:{id:"Qwen/Qwen3.6-Max-Preview",inputModalities:["text"],provider:KA,spec:JA,label:"Qwen 3.6 Max Preview",name:"Qwen 3.6 Max Preview",description:"vibe coding & efficient agent execution",reasoning:!0},QWEN_3_6_PLUS:{id:"Qwen/Qwen3.6-Plus",inputModalities:["text","image"],provider:KA,spec:JA,label:"Qwen 3.6 Plus",name:"Qwen 3.6 Plus",description:"agentic coding & reasoning",reasoning:!0},STEP_3_7_FLASH:{id:"stepfun/Step-3.7-Flash",inputModalities:["text","image"],provider:KA,spec:JA,label:"Step 3.7 Flash",name:"Step 3.7 Flash",description:"multimodal sparse-MoE reasoning",reasoning:!0,contextWindow:256e3},STEP_3_5_FLASH:{id:"stepfun/Step-3.5-Flash",inputModalities:["text"],provider:KA,spec:JA,label:"Step 3.5 Flash",name:"Step 3.5 Flash",description:"fast sparse-MoE agentic reasoning",reasoning:!0,contextWindow:1e6},TENCENT_HY3:{id:"tencent/Hy3",inputModalities:["text"],provider:KA,spec:JA,label:"Tencent Hy3 (Free)",name:"Tencent Hy3 (Free)",description:"sparse-MoE reasoning & agentic tool use",badge:"free",hidden:!0,reasoning:!0,contextWindow:262144},TENCENT_HY3_PAID:{id:"tencent/hy3-paid",inputModalities:["text"],provider:KA,spec:JA,label:"Tencent Hy3",name:"Tencent Hy3",description:"sparse-MoE reasoning & agentic tool use",reasoning:!0,contextWindow:262144},GEMINI_3_7_FLASH:{id:"google/gemini-3.7-flash",inputModalities:["text","image"],provider:GA,spec:JA,label:"Gemini 3.7 Flash",name:"Gemini 3.7 Flash",description:"higher-quality coding & agentic workflows, fewer tokens",vendorLabel:"Google",reasoning:!0,reasoningEfforts:["low","medium","high"],contextWindow:1048576},GEMINI_3_6_FLASH:{id:"google/gemini-3.6-flash",inputModalities:["text","image"],provider:BA,spec:JA,label:"Gemini 3.6 Flash",name:"Gemini 3.6 Flash",description:"previous Gemini Flash, still fast & capable",vendorLabel:"Google",reasoning:!0,reasoningEfforts:["low","medium","high"],contextWindow:1e6},GEMINI_3_5_FLASH:{id:"google/gemini-3.5-flash",inputModalities:["text","image"],provider:BA,spec:JA,label:"Gemini 3.5 Flash",name:"Gemini 3.5 Flash",description:"Pro-level coding proficiency, parallel agentic execution",vendorLabel:"Google",reasoning:!0,reasoningEfforts:["low","medium","high"],contextWindow:1e6},GEMINI_3_5_FLASH_LITE:{id:"google/gemini-3.5-flash-lite",inputModalities:["text","image"],provider:BA,spec:JA,label:"Gemini 3.5 Flash Lite",name:"Gemini 3.5 Flash Lite",description:"upgraded agentic capabilities, ideal for subagents",vendorLabel:"Google",reasoning:!0,reasoningEfforts:["low","medium","high"],contextWindow:1e6},GEMINI_3_1_FLASH_LITE:{id:"google/gemini-3.1-flash-lite",inputModalities:["text","image"],provider:BA,spec:JA,label:"Gemini 3.1 Flash Lite",name:"Gemini 3.1 Flash Lite",description:"high-volume workhorse model with implicit caching",vendorLabel:"Google",reasoning:!0,reasoningEfforts:["low","medium","high"],contextWindow:1e6},FUGU_ULTRA:{id:"sakana/fugu-ultra",inputModalities:["text","image"],provider:BA,spec:JA,label:"Fugu Ultra",name:"Fugu Ultra",description:"multi-agent orchestration across frontier models",vendorLabel:"Sakana",reasoning:!0,reasoningEfforts:["high","xhigh"],contextWindow:1e6},NEMOTRON_3_ULTRA:{id:"nvidia/nemotron-3-ultra-550b-a55b",inputModalities:["text"],provider:KA,spec:JA,label:"Nemotron 3 Ultra",name:"Nemotron 3 Ultra",description:"open reasoning model for long-horizon autonomous agents",reasoning:!0,contextWindow:1e6},INKLING:{id:"thinkingmachines/inkling",inputModalities:["text","image"],provider:KA,spec:JA,label:"Inkling",name:"Inkling",description:"multimodal MoE reasoning",reasoning:!0,contextWindow:256e3},INKLING_SMALL:{id:"thinkingmachines/inkling-small",inputModalities:["text","image"],provider:KA,spec:JA,label:"Inkling Small",name:"Inkling Small",description:"lightweight MoE reasoning at lower cost and latency",reasoning:!0,contextWindow:1e6},LAGUNA_S_2_1_FREE:{id:"poolside/laguna-s-2.1-free",inputModalities:["text"],provider:KA,spec:JA,label:"Laguna S 2.1",name:"Laguna S 2.1",description:"open-weight agentic coding and long-horizon work",badge:"free",reasoning:!0,contextWindow:256e3,maxOutputTokens:32768},LING_3_0_FLASH_FREE:{id:"inclusionai/ling-3.0-flash-free",inputModalities:["text"],provider:KA,spec:JA,label:"Ling 3.0 Flash",name:"Ling 3.0 Flash",description:"fast lightweight-MoE coding & agentic work",badge:"free",reasoning:!0,get hidden(){return isLingFlashFreeEnded()},contextWindow:256e3,maxOutputTokens:32768},MUSE_SPARK_1_1:{id:"meta/muse-spark-1.1",inputModalities:["text","image"],provider:BA,spec:JA,label:"Muse Spark 1.1",name:"Muse Spark 1.1",description:"agentic performance, tool use, and computer use",vendorLabel:"Meta",reasoning:!0,contextWindow:1048576},MUSE_SPARK_1_2:{id:"meta/muse-spark-1.2",inputModalities:["text","image"],provider:BA,spec:JA,label:"Muse Spark 1.2",name:"Muse Spark 1.2",description:"coding-optimized for agentic workflows and large codebases",vendorLabel:"Meta",notice:"{name} is going through upstream inference issues at {vendor}, not Command Code. Expect slower responses and occasional rate limits.",reasoning:!0,contextWindow:1048576},MUSE_SPARK_1_2_CONTRIBUTOR:{id:"meta/muse-spark-1.2-contributor",inputModalities:["text","image"],provider:BA,spec:JA,label:"Muse Spark 1.2 Contributor",name:"Muse Spark 1.2 Contributor",description:"Muse Spark 1.2 at ~95% off",vendorLabel:"Meta",notice:"{name} is going through upstream inference issues at {vendor}, not Command Code. Expect slower responses and occasional rate limits.",reasoning:!0,contextWindow:1048576},GROK_4_5:{id:"xai/grok-4.5",inputModalities:["text","image"],provider:BA,spec:JA,label:"Grok 4.5",name:"Grok 4.5",description:"smartest model for coding, agentic tasks, knowledge work",vendorLabel:"xAI",reasoning:!0,reasoningEfforts:["low","medium","high"],contextWindow:5e5},GROK_4_6:{id:"xai/grok-4.6",inputModalities:["text"],provider:BA,spec:JA,label:"Grok 4.6",name:"Grok 4.6",description:"frontier performance on coding, knowledge work, and STEM",vendorLabel:"xAI",reasoning:!0,reasoningEfforts:["low","medium","high","xhigh"],contextWindow:5e5}},eR=[{canonicalId:"zai-org/GLM-5",providers:{[BA]:"zai/glm-5",[jA]:"zai-org/GLM-5"}},{canonicalId:"zai-org/GLM-5.3",providers:{[BA]:"zai/glm-5.3"}},{canonicalId:"zai-org/GLM-5.2",providers:{[VA]:"glm-5.2",[BA]:"zai/glm-5.2"}},{canonicalId:"poolside/laguna-s-2.1-free",providers:{[BA]:"poolside/laguna-s-2.1-free"}},{canonicalId:"inclusionai/ling-3.0-flash-free",providers:{[BA]:"inclusionai/ling-3.0-flash-free"}},{canonicalId:"zai-org/GLM-5.2-Fast",providers:{[BA]:"zai/glm-5.2-fast"}},{canonicalId:"zai-org/GLM-5.1",providers:{[BA]:"zai/glm-5.1"}},{canonicalId:"moonshotai/Kimi-K3",providers:{[zA]:"moonshotai/kimi-k3",[BA]:"moonshotai/kimi-k3"}},{canonicalId:"moonshotai/Kimi-K2.5",providers:{[BA]:"moonshotai/kimi-k2.5",[jA]:"moonshotai/Kimi-K2.5",[WA]:"workers-ai/@cf/moonshotai/kimi-k2.5"}},{canonicalId:"moonshotai/Kimi-K2.6",providers:{[BA]:"moonshotai/kimi-k2.6",[jA]:"moonshotai/Kimi-K2.6",[WA]:"workers-ai/@cf/moonshotai/kimi-k2.6"}},{canonicalId:"moonshotai/Kimi-K2.7-Code",providers:{[VA]:"kimi-k2.7-code",[BA]:"moonshotai/kimi-k2.7-code"}},{canonicalId:"moonshotai/Kimi-K2.7-Code-Highspeed",providers:{[BA]:"moonshotai/kimi-k2.7-code-highspeed"}},{canonicalId:"MiniMaxAI/MiniMax-M2.5",providers:{[BA]:"minimax/minimax-m2.5",[jA]:"MiniMaxAI/MiniMax-M2.5"}},{canonicalId:"deepseek/deepseek-v4-pro",providers:{[BA]:"deepseek/deepseek-v4-pro"}},{canonicalId:"deepseek/deepseek-v4-flash",providers:{[BA]:"deepseek/deepseek-v4-flash",[qA]:"morph-dsv4flash"}},{canonicalId:"Qwen/Qwen3.6-Max-Preview",providers:{[BA]:"alibaba/qwen-3.6-max-preview"}},{canonicalId:"Qwen/Qwen3.6-Plus",providers:{[VA]:"qwen3.6-plus",[BA]:"alibaba/qwen3.6-plus"}},{canonicalId:"Qwen/Qwen3.7-Max",providers:{[VA]:"qwen3.7-max",[BA]:"alibaba/qwen3.7-max"}},{canonicalId:"Qwen/Qwen3.7-Plus",providers:{[VA]:"qwen3.7-plus",[BA]:"alibaba/qwen3.7-plus"}},{canonicalId:"Qwen/Qwen3.8-Max",providers:{[VA]:"qwen3.8-max",[BA]:"alibaba/qwen3.8-max"}},{canonicalId:"Qwen/Qwen3.7-Flash",providers:{[BA]:"alibaba/qwen3.7-flash"}},{canonicalId:"MiniMaxAI/MiniMax-M3",providers:{[BA]:"minimax/minimax-m3"}},{canonicalId:XA,providers:{[BA]:"minimax/minimax-m3"}},{canonicalId:"MiniMaxAI/MiniMax-M2.7",providers:{[BA]:"minimax/minimax-m2.7"}},{canonicalId:"stepfun/Step-3.7-Flash",providers:{[BA]:"stepfun/step-3.7-flash"}},{canonicalId:"stepfun/Step-3.5-Flash",providers:{[GA]:"stepfun/step-3.5-flash"}},{canonicalId:"gpt-5.6-sol",providers:{[BA]:"openai/gpt-5.6-sol"}},{canonicalId:"gpt-5.6-terra",providers:{[GA]:"openai/gpt-5.6-terra"}},{canonicalId:"gpt-5.6-luna",providers:{[GA]:"openai/gpt-5.6-luna"}},{canonicalId:"tencent/Hy3",providers:{[GA]:"tencent/hy3:free"}},{canonicalId:"tencent/hy3-paid",providers:{[BA]:"tencent/hy3"}},{canonicalId:"xiaomi/mimo-v2.5-pro",providers:{[BA]:"xiaomi/mimo-v2.5-pro"}},{canonicalId:"xiaomi/mimo-v2.5",providers:{[BA]:"xiaomi/mimo-v2.5"}},{canonicalId:"google/gemini-3.7-flash",providers:{[GA]:"google/gemini-3.7-flash"}},{canonicalId:"google/gemini-3.6-flash",providers:{[BA]:"google/gemini-3.6-flash"}},{canonicalId:"google/gemini-3.5-flash",providers:{[BA]:"google/gemini-3.5-flash"}},{canonicalId:"google/gemini-3.5-flash-lite",providers:{[BA]:"google/gemini-3.5-flash-lite"}},{canonicalId:"google/gemini-3.1-flash-lite",providers:{[BA]:"google/gemini-3.1-flash-lite"}},{canonicalId:"nvidia/nemotron-3-ultra-550b-a55b",providers:{[BA]:"nvidia/nemotron-3-ultra-550b-a55b"}},{canonicalId:"thinkingmachines/inkling",providers:{[BA]:"thinkingmachines/inkling"}},{canonicalId:"thinkingmachines/inkling-small",providers:{[BA]:"thinkingmachines/inkling-small"}},{canonicalId:"sakana/fugu-ultra",providers:{[BA]:"sakana/fugu-ultra"}},{canonicalId:"xai/grok-4.5",providers:{[BA]:"xai/grok-4.5"}},{canonicalId:"xai/grok-4.6",providers:{[BA]:"xai/grok-4.6"}},{canonicalId:"meta/muse-spark-1.1",providers:{[BA]:"meta/muse-spark-1.1"}},{canonicalId:"meta/muse-spark-1.2",providers:{[BA]:"meta/muse-spark-1.2"}},{canonicalId:"meta/muse-spark-1.2-contributor",providers:{[BA]:"meta/muse-spark-1.2-contributor"}}],tR="2026-08-16T16:00:00Z",nR=[{startHourUtc:1,endHourUtc:4},{startHourUtc:6,endHourUtc:10}],rR=[{canonicalId:"zai-org/GLM-5",gatewaySlug:"zai/glm-5",order:["deepinfra","fireworks","togetherai","parasail","bedrock"],providers:{deepinfra:{slug:"deepinfra",promptCost:.8,completionCost:2.56,cacheReadCost:.16},fireworks:{slug:"fireworks",promptCost:1,completionCost:3.2,cacheReadCost:.2},togetherai:{slug:"togetherai",promptCost:1,completionCost:3.2,cacheReadCost:0},parasail:{slug:"parasail",promptCost:1,completionCost:3.2,cacheReadCost:0},bedrock:{slug:"bedrock",promptCost:1,completionCost:3.2,cacheReadCost:0}}},{canonicalId:"zai-org/GLM-5.2",gatewaySlug:"zai/glm-5.2",order:["novita","deepinfra"],providers:{novita:{slug:"novita",promptCost:1.4,completionCost:4.4,cacheReadCost:.26},deepinfra:{slug:"deepinfra",promptCost:1.4,completionCost:4.4,cacheReadCost:.26},zai:{slug:"zai",promptCost:1.4,completionCost:4.4,cacheReadCost:.26},fireworks:{slug:"fireworks",promptCost:1.4,completionCost:4.4,cacheReadCost:.26}}},{canonicalId:"zai-org/GLM-5.3",gatewaySlug:"zai/glm-5.3",order:["zai"],providers:{zai:{slug:"zai",promptCost:1.4,completionCost:4.4,cacheReadCost:.26}}},{canonicalId:"zai-org/GLM-5.2-Fast",gatewaySlug:"zai/glm-5.2-fast",order:["wafer"],providers:{wafer:{slug:"wafer",promptCost:3,completionCost:10.25,cacheReadCost:.5}}},{canonicalId:"zai-org/GLM-5.1",gatewaySlug:"zai/glm-5.1",order:["deepinfra","fireworks"],providers:{deepinfra:{slug:"deepinfra",promptCost:1.4,completionCost:4.4,cacheReadCost:.26},fireworks:{slug:"fireworks",promptCost:1.4,completionCost:4.4,cacheReadCost:.26}}},{canonicalId:"moonshotai/Kimi-K3",gatewaySlug:"moonshotai/kimi-k3",order:["moonshotai"],providers:{moonshotai:{slug:"moonshotai",promptCost:3,completionCost:15,cacheReadCost:.3}}},{canonicalId:"moonshotai/Kimi-K2.5",gatewaySlug:"moonshotai/kimi-k2.5",order:["moonshotai","fireworks","bedrock","togetherai"],providers:{fireworks:{slug:"fireworks",promptCost:.6,completionCost:3,cacheReadCost:.1},bedrock:{slug:"bedrock",promptCost:.6,completionCost:3,cacheReadCost:.1},togetherai:{slug:"togetherai",promptCost:.5,completionCost:2.8,cacheReadCost:0},moonshotai:{slug:"moonshotai",promptCost:.6,completionCost:3,cacheReadCost:.1}}},{canonicalId:"moonshotai/Kimi-K2.6",gatewaySlug:"moonshotai/kimi-k2.6",order:["moonshotai","fireworks"],providers:{moonshotai:{slug:"moonshotai",promptCost:.95,completionCost:4,cacheReadCost:.16},fireworks:{slug:"fireworks",promptCost:.95,completionCost:4,cacheReadCost:.16}}},{canonicalId:"moonshotai/Kimi-K2.7-Code",gatewaySlug:"moonshotai/kimi-k2.7-code",order:["moonshotai"],providers:{moonshotai:{slug:"moonshotai",promptCost:.95,completionCost:4,cacheReadCost:.19}}},{canonicalId:"moonshotai/Kimi-K2.7-Code-Highspeed",gatewaySlug:"moonshotai/kimi-k2.7-code-highspeed",order:["moonshotai"],providers:{moonshotai:{slug:"moonshotai",promptCost:1.9,completionCost:8,cacheReadCost:.38}}},{canonicalId:"MiniMaxAI/MiniMax-M2.5",gatewaySlug:"minimax/minimax-m2.5",order:["deepinfra","parasail","nebius","bedrock"],providers:{deepinfra:{slug:"deepinfra",promptCost:.3,completionCost:1.2,cacheReadCost:.03},parasail:{slug:"parasail",promptCost:.3,completionCost:1.2,cacheReadCost:0},nebius:{slug:"nebius",promptCost:.3,completionCost:1.2,cacheReadCost:0},bedrock:{slug:"bedrock",promptCost:.3,completionCost:1.2,cacheReadCost:0}}},{canonicalId:"deepseek/deepseek-v4-pro",gatewaySlug:"deepseek/deepseek-v4-pro",order:["deepseek"],providers:{deepseek:{slug:"deepseek",promptCost:.435,completionCost:.87,cacheReadCost:.003625,timeOfDay:{effectiveFrom:tR,peakWindowsUtc:nR,peak:{promptCost:1.32,completionCost:3.96,cacheReadCost:.044},offPeak:{promptCost:.66,completionCost:1.98,cacheReadCost:.022}}},fireworks:{slug:"fireworks",promptCost:1.74,completionCost:3.48,cacheReadCost:.0145}}},{canonicalId:"deepseek/deepseek-v4-flash",gatewaySlug:"deepseek/deepseek-v4-flash",order:["deepseek"],providers:{deepseek:{slug:"deepseek",promptCost:.14,completionCost:.28,cacheReadCost:.0028,timeOfDay:{effectiveFrom:tR,peakWindowsUtc:nR,peak:{promptCost:.44,completionCost:1.32,cacheReadCost:.014},offPeak:{promptCost:.22,completionCost:.66,cacheReadCost:.007}}},fireworks:{slug:"fireworks",promptCost:.14,completionCost:.28,cacheReadCost:.03}}},{canonicalId:"Qwen/Qwen3.6-Max-Preview",gatewaySlug:"alibaba/qwen-3.6-max-preview",order:["alibaba"],providers:{alibaba:{slug:"alibaba",promptCost:1.3,completionCost:7.8,cacheReadCost:.26,cacheWriteCost:1.63}}},{canonicalId:"Qwen/Qwen3.6-Plus",gatewaySlug:"alibaba/qwen3.6-plus",order:["fireworks"],providers:{fireworks:{slug:"fireworks",promptCost:.5,completionCost:3,cacheReadCost:.1}}},{canonicalId:"Qwen/Qwen3.7-Max",gatewaySlug:"alibaba/qwen3.7-max",order:["alibaba"],providers:{alibaba:{slug:"alibaba",promptCost:2.5,completionCost:7.5,cacheReadCost:.5,cacheWriteCost:3.13}}},{canonicalId:"Qwen/Qwen3.7-Plus",gatewaySlug:"alibaba/qwen3.7-plus",order:["alibaba"],providers:{alibaba:{slug:"alibaba",promptCost:.4,completionCost:1.6,cacheReadCost:.08,cacheWriteCost:.5}}},{canonicalId:"Qwen/Qwen3.8-Max",gatewaySlug:"alibaba/qwen3.8-max",order:["alibaba"],providers:{alibaba:{slug:"alibaba",promptCost:2,completionCost:6,cacheReadCost:.25,cacheWriteCost:2.5}}},{canonicalId:"Qwen/Qwen3.7-Flash",gatewaySlug:"alibaba/qwen3.7-flash",order:["alibaba"],providers:{alibaba:{slug:"alibaba",promptCost:.03,completionCost:.13,cacheReadCost:.006,cacheWriteCost:.038}}},{canonicalId:"MiniMaxAI/MiniMax-M3",gatewaySlug:"minimax/minimax-m3",order:["minimax"],providers:{minimax:{slug:"minimax",promptCost:.3,completionCost:1.2,cacheReadCost:.06}}},{canonicalId:XA,gatewaySlug:"minimax/minimax-m3",order:["minimax"],providers:{minimax:{slug:"minimax",promptCost:.3,completionCost:1.2,cacheReadCost:.06}}},{canonicalId:"MiniMaxAI/MiniMax-M2.7",gatewaySlug:"minimax/minimax-m2.7",order:["fireworks","togetherai"],providers:{fireworks:{slug:"fireworks",promptCost:.3,completionCost:1.2,cacheReadCost:.06},togetherai:{slug:"togetherai",promptCost:.3,completionCost:1.2,cacheReadCost:0}}},{canonicalId:"xiaomi/mimo-v2.5-pro",gatewaySlug:"xiaomi/mimo-v2.5-pro",order:["xiaomi"],providers:{xiaomi:{slug:"xiaomi",promptCost:.435,completionCost:.87,cacheReadCost:.0036}}},{canonicalId:"xiaomi/mimo-v2.5",gatewaySlug:"xiaomi/mimo-v2.5",order:["xiaomi"],providers:{xiaomi:{slug:"xiaomi",promptCost:.14,completionCost:.28,cacheReadCost:.0028}}},{canonicalId:"stepfun/Step-3.7-Flash",gatewaySlug:"stepfun/step-3.7-flash",order:["stepfun"],providers:{stepfun:{slug:"stepfun",promptCost:.2,completionCost:1.15,cacheReadCost:.04}}},{canonicalId:"gpt-5.6-sol",gatewaySlug:"openai/gpt-5.6-sol",order:["openai"],providers:{openai:{slug:"openai",promptCost:2.5,completionCost:15,cacheReadCost:.25,cacheWriteCost:3.125}}},{canonicalId:"google/gemini-3.6-flash",gatewaySlug:"google/gemini-3.6-flash",order:["vertex"],providers:{vertex:{slug:"vertex",promptCost:1.5,completionCost:7.5,cacheReadCost:.15}}},{canonicalId:"google/gemini-3.5-flash",gatewaySlug:"google/gemini-3.5-flash",order:["vertex"],providers:{vertex:{slug:"vertex",promptCost:1.5,completionCost:9,cacheReadCost:.15}}},{canonicalId:"google/gemini-3.5-flash-lite",gatewaySlug:"google/gemini-3.5-flash-lite",order:["vertex"],providers:{vertex:{slug:"vertex",promptCost:.3,completionCost:2.5,cacheReadCost:.03}}},{canonicalId:"google/gemini-3.1-flash-lite",gatewaySlug:"google/gemini-3.1-flash-lite",order:["vertex"],providers:{vertex:{slug:"vertex",promptCost:.25,completionCost:1.5,cacheReadCost:.03}}},{canonicalId:"nvidia/nemotron-3-ultra-550b-a55b",gatewaySlug:"nvidia/nemotron-3-ultra-550b-a55b",order:["baseten","deepinfra"],providers:{baseten:{slug:"baseten",promptCost:.6,completionCost:2.4,cacheReadCost:.12},deepinfra:{slug:"deepinfra",promptCost:.5,completionCost:2.5,cacheReadCost:.15}}},{canonicalId:"thinkingmachines/inkling",gatewaySlug:"thinkingmachines/inkling",order:["baseten"],providers:{baseten:{slug:"baseten",promptCost:1,completionCost:4.05,cacheReadCost:.17}}},{canonicalId:"thinkingmachines/inkling-small",gatewaySlug:"thinkingmachines/inkling-small",order:["baseten"],providers:{baseten:{slug:"baseten",promptCost:.5,completionCost:1.2,cacheReadCost:.1}}},{canonicalId:"sakana/fugu-ultra",gatewaySlug:"sakana/fugu-ultra",order:["sakana"],providers:{sakana:{slug:"sakana",promptCost:5,completionCost:30,cacheReadCost:.5}}},{canonicalId:"xai/grok-4.5",gatewaySlug:"xai/grok-4.5",order:["xai"],providers:{xai:{slug:"xai",promptCost:2,completionCost:6,cacheReadCost:.5}}},{canonicalId:"xai/grok-4.6",gatewaySlug:"xai/grok-4.6",order:["xai"],providers:{xai:{slug:"xai",promptCost:2,completionCost:6,cacheReadCost:.5}}},{canonicalId:"meta/muse-spark-1.1",gatewaySlug:"meta/muse-spark-1.1",order:["meta"],providers:{meta:{slug:"meta",promptCost:1.25,completionCost:4.25,cacheReadCost:.15}}},{canonicalId:"meta/muse-spark-1.2",gatewaySlug:"meta/muse-spark-1.2",order:["meta"],providers:{meta:{slug:"meta",promptCost:1.25,completionCost:4.25,cacheReadCost:.15}}},{canonicalId:"meta/muse-spark-1.2-contributor",gatewaySlug:"meta/muse-spark-1.2-contributor",order:["meta"],providers:{meta:{slug:"meta",promptCost:.1,completionCost:.2,cacheReadCost:.002}}},{canonicalId:"tencent/hy3-paid",gatewaySlug:"tencent/hy3",order:["novita"],providers:{novita:{slug:"novita",promptCost:.14,completionCost:.58,cacheReadCost:.035},deepinfra:{slug:"deepinfra",promptCost:.14,completionCost:.58,cacheReadCost:.035}}},{canonicalId:"poolside/laguna-s-2.1-free",gatewaySlug:"poolside/laguna-s-2.1-free",order:["poolside"],providers:{poolside:{slug:"poolside",promptCost:0,completionCost:0,cacheReadCost:0}}},{canonicalId:"inclusionai/ling-3.0-flash-free",gatewaySlug:"inclusionai/ling-3.0-flash-free",order:["novita"],providers:{novita:{slug:"novita",promptCost:0,completionCost:0,cacheReadCost:0}}}],oR=[{canonicalId:"Qwen/Qwen3.8-Max",slug:"qwen3.8-max",promptCost:2,completionCost:6,cacheReadCost:.25},{canonicalId:"Qwen/Qwen3.7-Max",slug:"qwen3.7-max",promptCost:2.5,completionCost:7.5,cacheReadCost:.5},{canonicalId:"Qwen/Qwen3.7-Plus",slug:"qwen3.7-plus",promptCost:.4,completionCost:1.6,cacheReadCost:.08,contextTiers:[{maxInputTokens:256e3,promptCost:.4,completionCost:1.6,cacheReadCost:.08},{promptCost:1.2,completionCost:4.8,cacheReadCost:.24}]},{canonicalId:"Qwen/Qwen3.6-Plus",slug:"qwen3.6-plus",promptCost:.5,completionCost:3,cacheReadCost:.1,contextTiers:[{maxInputTokens:256e3,promptCost:.5,completionCost:3,cacheReadCost:.1},{promptCost:2,completionCost:6,cacheReadCost:.2}]},{canonicalId:"zai-org/GLM-5.2",slug:"glm-5.2",promptCost:1.4,completionCost:4.4,cacheReadCost:.26},{canonicalId:"moonshotai/Kimi-K2.7-Code",slug:"kimi-k2.7-code",promptCost:.95,completionCost:4,cacheReadCost:.19}],sR=[{canonicalId:"deepseek/deepseek-v4-flash",slug:"morph-dsv4flash",promptCost:.14,completionCost:.28,cacheReadCost:.0028}],aR=[{canonicalId:"stepfun/Step-3.5-Flash",openrouterSlug:"stepfun/step-3.5-flash",order:["parasail","deepinfra","siliconflow"],providers:{parasail:{slug:"parasail",promptCost:.1,completionCost:.3,cacheReadCost:.02,zdr:!0,noTraining:!0},deepinfra:{slug:"deepinfra",promptCost:.1,completionCost:.3,cacheReadCost:.02,zdr:!0,noTraining:!0},siliconflow:{slug:"siliconflow",promptCost:.1,completionCost:.3,zdr:!0,noTraining:!0}}},{canonicalId:"tencent/Hy3",openrouterSlug:"tencent/hy3:free",order:["novita"],providers:{novita:{slug:"novita",promptCost:0,completionCost:0,zdr:!1,noTraining:!1}}},{canonicalId:"gpt-5.6-terra",openrouterSlug:"openai/gpt-5.6-terra",order:["openai"],providers:{openai:{slug:"openai",promptCost:2,completionCost:12,cacheReadCost:.2,cacheWriteCost:2.5,zdr:!1,noTraining:!0}}},{canonicalId:"gpt-5.6-luna",openrouterSlug:"openai/gpt-5.6-luna",order:["openai"],providers:{openai:{slug:"openai",promptCost:.2,completionCost:1.2,cacheReadCost:.02,cacheWriteCost:.25,zdr:!1,noTraining:!0}}},{canonicalId:"google/gemini-3.7-flash",openrouterSlug:"google/gemini-3.7-flash",order:["google-vertex"],providers:{"google-vertex":{slug:"google-vertex",promptCost:.75,completionCost:3.75,cacheReadCost:.075,cacheWriteCost:.04167,zdr:!0,noTraining:!0}}}],iR={"claude-sonnet-4-20250514":ZA.SONNET_4_6.id,"claude-sonnet-4-5-20250929":ZA.SONNET_4_6.id,"claude-opus-4-5-20251101":ZA.OPUS_4_7.id,"claude-opus-4-6":ZA.OPUS_4_7.id,"claude-haiku-4-5":ZA.HAIKU_4_5.id},lR=ZA.DEEPSEEK_V4_FLASH.id,cR={[FA]:"Anthropic",[UA]:"OpenAI",[jA]:"Open Source",[BA]:"Open Source",[HA]:"Open Source"},dR=["Open Source","Anthropic","OpenAI","Google"],uR={"command-code":{id:"command-code",label:"Command Code",shortLabel:"cmd",description:"recommended",supportedModelProviders:[FA,UA,HA,jA,BA,GA],requiresAuth:!1,visibleInCoMode:!0,visibleInNormalMode:!0,showProviderLabelInSelector:!0},anthropic:{id:"anthropic",label:"Anthropic",shortLabel:"anth",description:"Claude Pro/Max",supportedModelProviders:[FA],requiresAuth:!0,visibleInCoMode:!0,visibleInNormalMode:!1,showProviderLabelInSelector:!1},"github-copilot":{id:"github-copilot",label:"GitHub Copilot",shortLabel:"copilot",description:"Copilot subscription",supportedModelProviders:[FA,UA],requiresAuth:!0,visibleInCoMode:!0,visibleInNormalMode:!1,showProviderLabelInSelector:!0},codex:{id:"codex",label:"OpenAI",shortLabel:"openai",description:"ChatGPT Pro/Plus subscription",supportedModelProviders:[UA],requiresAuth:!0,visibleInCoMode:!0,visibleInNormalMode:!1,showProviderLabelInSelector:!1}};function laneSupportsModel(e,t){if(e.includes(t.provider))return!0;const n=t.vendorLabel?.toLowerCase();return null!=n&&e.includes(n)}function buildModelGroups(e){const t=Object.values(ZA).filter(e=>!e.hidden),n=[];for(const r of Object.values(uR)){if(!("co"===e?r.visibleInCoMode:r.visibleInNormalMode))continue;const o=t.filter(e=>laneSupportsModel(r.supportedModelProviders,e));o.length>0&&n.push({providerId:r.id,label:r.label,models:o})}return n}__name(laneSupportsModel,"laneSupportsModel"),__name(buildModelGroups,"buildModelGroups");var mR=buildModelGroups("co"),pR=buildModelGroups("normal");function formatColoredUserSuffix(e){return isGenericUserName(e)?"":formatUserSuffix(e).replace(e,yt.cyan(e))}function getStartedLine(){return`${yt.dim("Run")} ${yt.cyan(getBinaryCommand())} ${yt.dim("to get started.")}`}function getLoginSuccessSuffix(e,t){const n=getLoginSuccessSuffixKind({userName:e,providerLabel:t});return"user"===n?formatColoredUserSuffix(e):"none"===n?"":" successfully"}function formatLoginSuccessStyled(e){const{userName:t,authFileName:n,providerLabel:r,providerWarning:o}=e,s=getLoginSuccessSuffix(t,r),a=r?` with ${yt.cyan(r)}`:"",i=[`${yt.green(it.tick)} ${yt.bold("Logged in")}${s}${a}`];return o&&i.push(` ${yt.yellow(it.warning)} ${yt.yellow(o)}`),i.push("",`${yt.dim("API key stored in")} ${yt.cyan(`~/.commandcode/${n}`)}`,getStartedLine()),i.join("\n")}function formatAlreadyLoggedInStyled(e){const t=formatColoredUserSuffix(e);return[`${yt.green(it.tick)} ${yt.bold("Already logged in")}${t}`,"",getStartedLine()].join("\n")}new Set(["cc2@www3.in","cc3@www3.in","cc4@www3.in","cc5@www3.in","cc6@www3.in","cc7@www3.in","cc8@www3.in","cc9@www3.in","cc10@www3.in"].map(e=>e.toLowerCase())),__name(formatColoredUserSuffix,"formatColoredUserSuffix"),__name(getStartedLine,"getStartedLine"),__name(getLoginSuccessSuffix,"getLoginSuccessSuffix"),__name(formatLoginSuccessStyled,"formatLoginSuccessStyled"),__name(formatAlreadyLoggedInStyled,"formatAlreadyLoggedInStyled"),Ex(),Px(),Ex(),Px(),Ex(),Ex(),Ex();var gR=["low","medium","high","xhigh","max"],hR={SONNET_5:{id:"claude-sonnet-5",inputModalities:["text","image"],provider:"anthropic",spec:"chatComplete",label:"Claude Sonnet 5",name:"Claude Sonnet 5",description:"best combo of speed & intelligence (recommended)",reasoning:!0,reasoningEfforts:gR,contextWindow:1e6},SONNET_4_6:{id:"claude-sonnet-4-6",inputModalities:["text","image"],provider:"anthropic",spec:"chatComplete",label:"Claude Sonnet 4.6",name:"Claude Sonnet 4.6",description:"prev Sonnet, still fast & capable",reasoningEfforts:gR,contextWindow:1e6},FABLE_5:{id:"claude-fable-5",inputModalities:["text","image"],provider:"anthropic",spec:"chatComplete",label:"Claude Fable 5",name:"Claude Fable 5",description:"most capable for demanding reasoning & long-horizon agents",reasoning:!0,reasoningEfforts:gR,contextWindow:1e6},OPUS_5:{id:"claude-opus-5",inputModalities:["text","image"],provider:"anthropic",spec:"chatComplete",label:"Claude Opus 5",name:"Claude Opus 5",description:"most intelligent Opus for agents and coding",reasoning:!0,reasoningEfforts:gR,contextWindow:1e6},OPUS_4_8:{id:"claude-opus-4-8",inputModalities:["text","image"],provider:"anthropic",spec:"chatComplete",label:"Claude Opus 4.8",name:"Claude Opus 4.8",description:"prev flagship, still strong for agents and coding",reasoning:!0,reasoningEfforts:gR,contextWindow:1e6},OPUS_4_7:{id:"claude-opus-4-7",inputModalities:["text","image"],provider:"anthropic",spec:"chatComplete",label:"Claude Opus 4.7",name:"Claude Opus 4.7",description:"older Opus, still strong for agents and coding",reasoning:!0,reasoningEfforts:gR,contextWindow:1e6},HAIKU_4_5:{id:"claude-haiku-4-5-20251001",inputModalities:["text","image"],provider:"anthropic",spec:"chatComplete",label:"Claude Haiku 4.5",name:"Claude Haiku 4.5",description:"fastest & most compact, great for quick tasks",contextWindow:2e5}};function matchesAnthropicModel(e){return e.toLowerCase().includes("claude")}Object.values(hR).map(e=>e.id),__name(matchesAnthropicModel,"matchesAnthropicModel");var fR=Object.values(hR).map(e=>({id:e.id,provider:"anthropic",contextWindow:e.contextWindow,reasoningEfforts:"reasoningEfforts"in e?e.reasoningEfforts:void 0,inputModalities:e.inputModalities,interleavedThinking:!0}));Px();var yR="9d1c250a-e61b-44d9-88ed-5944d1962f5e",SR="https://console.anthropic.com/oauth/code/callback",wR="anthropic",kR="x-oauth-token",vR="x-oauth-provider";function defaultFetch3(){return globalThis.fetch}function buildAuthorizeUrl(e){return`https://claude.ai/oauth/authorize?${encodeQuery({code:"true",client_id:yR,response_type:"code",redirect_uri:SR,scope:"org:create_api_key user:profile user:inference",code_challenge:e.challenge,code_challenge_method:"S256",state:e.state})}`}function encodeQuery(e){return Object.entries(e).map(([e,t])=>`${encodeURIComponent(e)}=${encodeURIComponent(t)}`).join("&")}function generateState(){return R(32).toString("base64url")}function toCredential(e){return{kind:"oauth",token:e.accessToken,refreshToken:e.refreshToken,expiresAt:e.expiresAt}}function isStale(e,t){return"number"==typeof e.expiresAt&&e.expiresAt-3e5<=t}function toTokenResult2(e,t){if(!e.access_token)throw new Error("OAuth token response had no access_token");return{accessToken:e.access_token,refreshToken:e.refresh_token??t.fallbackRefreshToken,expiresAt:"number"==typeof e.expires_in?t.now()+1e3*e.expires_in:void 0,tokenType:e.token_type,scope:e.scope}}async function postAnthropicToken(e){const t=e.fetchImpl??defaultFetch3(),n=await t("https://console.anthropic.com/v1/oauth/token",{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify(e.body)});if(!1===n.ok){const e=n.text?await n.text():"";throw new Error(`Token exchange failed: ${e}`)}return toTokenResult2(await n.json(),{now:e.now,fallbackRefreshToken:e.fallbackRefreshToken})}function createAnthropicProvider(e={}){const{fetchImpl:t,now:n}=e,r=n??(()=>Date.now()),o=__name(async e=>{if(!e.refreshToken)throw new Error("Cannot refresh Anthropic OAuth: no refresh token stored");return toCredential(await postAnthropicToken({body:{grant_type:"refresh_token",client_id:yR,refresh_token:e.refreshToken},fetchImpl:t,now:r,fallbackRefreshToken:e.refreshToken}))},"refreshCredential"),s=new Map,a=__name(async e=>{const t=s.get(wR);if(t)return t;const n=(async()=>{try{const t=await o(e.credential);return await e.store.set({provider:wR,credential:t}),t}catch{return e.credential}finally{s.delete(wR)}})();return s.set(wR,n),n},"refreshOnce");return{id:wR,displayName:"Anthropic",models:fR,matchesModelId:matchesAnthropicModel,transport:{kind:"gateway",route:"/alpha/generate"},auth:{methods:[{kind:"oauth",label:"OAuth (paste code)",authorize:__name(async()=>{const e=generatePkce(),n=generateState();return{type:"pending",url:buildAuthorizeUrl({challenge:e.challenge,state:n}),instructions:"Open the URL and approve access, then copy the authorization code Anthropic shows you (it looks like `code#state`) and paste it back here.",prompt:{label:"Paste the authorization code"},callback:__name(async o=>{const s=(o?.code??"").trim();if(!s)throw new Error("No authorization code provided");const a=s.indexOf("#"),i=(-1===a?s:s.slice(0,a)).trim(),l=-1===a?"":s.slice(a+1).trim();if(!i)throw new Error("No authorization code provided");if(l&&l!==n)throw new Error("OAuth state parameter mismatch");return toCredential(await postAnthropicToken({body:{grant_type:"authorization_code",client_id:yR,code:i,redirect_uri:SR,code_verifier:e.verifier,state:n},fetchImpl:t,now:r}))},"callback")}},"authorize"),refresh:__name(async e=>o(e.credential),"refresh")}],loader:__name(async e=>{const{credential:t,store:n}=e;if(!t||"oauth"!==t.kind||!t.token)return{};const o=t.refreshToken&&isStale(t,r())?await a({credential:t,store:n}):t;return o.token?{headers:{[kR]:`Bearer ${o.token}`,[vR]:"anthropic"}}:{}},"loader")}}}__name(defaultFetch3,"defaultFetch"),__name(buildAuthorizeUrl,"buildAuthorizeUrl"),__name(encodeQuery,"encodeQuery"),__name(generateState,"generateState"),__name(toCredential,"toCredential"),__name(isStale,"isStale"),__name(toTokenResult2,"toTokenResult"),__name(postAnthropicToken,"postAnthropicToken"),__name(createAnthropicProvider,"createAnthropicProvider");var CR=createAnthropicProvider();Ex(),Ex();var bR=atob("SXYxLmI1MDdhMDhjODdlY2ZlOTg="),ER={"User-Agent":"GitHubCopilotChat/0.35.0","Editor-Version":"vscode/1.107.0","Editor-Plugin-Version":"copilot-chat/0.35.0","Copilot-Integration-Id":"vscode-chat"},TR="x-oauth-token",PR="x-oauth-provider",MR="copilot",xR=3e5,IR=["COPILOT_GITHUB_TOKEN","GH_TOKEN","GITHUB_TOKEN"];function defaultSleep3(e){return new Promise(t=>setTimeout(t,e))}async function mintCopilotToken(e){const t=await e.fetchImpl("https://api.github.com/copilot_internal/v2/token",{method:"GET",headers:{Authorization:`token ${e.githubToken}`,Accept:"application/json",...ER}});if(!1===t.ok){const e=t.text?await t.text():"";throw new Error(`Copilot token request failed: ${t.status??"?"} ${e}`.trim())}const n=await t.json();if(!n.token||"number"!=typeof n.expires_at)throw new Error("Copilot token response missing required fields");return{token:n.token,expiresAt:1e3*n.expires_at-xR}}function copilotJwtStillValid(e){const{credential:t,now:n}=e;return"number"==typeof t.expiresAt&&t.expiresAt>n()+xR}function createCopilotProvider(e={}){const t=e.fetchImpl??globalThis.fetch,n=e.now??(()=>Date.now()),r=e.sleep??defaultSleep3,o=e.env??process.env,s=__name(async e=>{for(const n of IR){const r=o[n];if(r)try{const n=await mintCopilotToken({githubToken:r,fetchImpl:t}),o={kind:"oauth",token:n.token,refreshToken:r,expiresAt:n.expiresAt};return await e.store.set({provider:MR,credential:o}),o}catch{continue}}return null},"credentialFromEnv"),a=__name(async e=>{const{credential:n}=e;if(!n.refreshToken)throw new Error("Cannot refresh Copilot token: missing GitHub access token");const r=await mintCopilotToken({githubToken:n.refreshToken,fetchImpl:t});return{kind:"oauth",token:r.token,refreshToken:n.refreshToken,expiresAt:r.expiresAt}},"refreshCredential");return{id:MR,displayName:"GitHub Copilot",transport:{kind:"gateway",route:"/alpha/generate"},auth:{methods:[{kind:"oauth",label:"Sign in with GitHub (device code)",authorize:__name(async()=>{const e=await requestDeviceCode({deviceAuthorizationEndpoint:"https://github.com/login/device/code",clientId:bR,scopes:["read:user"],fetchImpl:t});return{type:"pending",url:e.verificationUri,instructions:`Copy this code: ${e.userCode}`,callback:__name(async()=>{const o=await pollDeviceToken({tokenEndpoint:"https://github.com/login/oauth/access_token",clientId:bR,deviceCode:e.deviceCode,intervalMs:"number"==typeof e.interval?1e3*e.interval:void 0,timeoutMs:"number"==typeof e.expiresIn?1e3*e.expiresIn:void 0,fetchImpl:t,now:n,sleep:r}),s=await mintCopilotToken({githubToken:o.accessToken,fetchImpl:t});return{kind:"oauth",token:s.token,refreshToken:o.accessToken,expiresAt:s.expiresAt}},"callback")}},"authorize"),refresh:__name(async e=>a({credential:e.credential}),"refresh")}],loader:__name(async e=>{const{credential:t,store:r}=e;let o=t;return o&&"oauth"===o.kind&&o.token||(o=await s({store:r}),o)?(!copilotJwtStillValid({credential:o,now:n})&&o.refreshToken&&(o=await a({credential:o}),await r.set({provider:MR,credential:o})),{headers:{[TR]:`Bearer ${o.token}`,[PR]:"github-copilot"}}):{}},"loader")}}}Px(),__name(defaultSleep3,"defaultSleep"),__name(mintCopilotToken,"mintCopilotToken"),__name(copilotJwtStillValid,"copilotJwtStillValid"),__name(createCopilotProvider,"createCopilotProvider");var AR=createCopilotProvider();Ex(),Ex();var RR=["low","medium","high","xhigh","max"],OR=["low","medium","high","xhigh"],DR={GPT_5_6_SOL:{id:"gpt-5.6-sol",inputModalities:["text","image"],provider:"openai",spec:"responses",label:"GPT-5.6 Sol",name:"GPT-5.6 Sol",description:"frontier model for complex professional work",reasoning:!0,reasoningEfforts:RR,contextWindow:105e4},GPT_5_6_TERRA:{id:"gpt-5.6-terra",inputModalities:["text","image"],provider:"openai",spec:"responses",label:"GPT-5.6 Terra",name:"GPT-5.6 Terra",description:"balances intelligence and cost",reasoning:!0,reasoningEfforts:RR,contextWindow:105e4},GPT_5_6_LUNA:{id:"gpt-5.6-luna",inputModalities:["text","image"],provider:"openai",spec:"responses",label:"GPT-5.6 Luna",name:"GPT-5.6 Luna",description:"optimized for cost-sensitive workloads",reasoning:!0,reasoningEfforts:RR,contextWindow:105e4},GPT_5_5:{id:"gpt-5.5",inputModalities:["text","image"],provider:"openai",spec:"responses",label:"GPT-5.5",name:"GPT-5.5",description:"latest frontier model for general complex work",reasoning:!0,reasoningEfforts:OR},GPT_5_4:{id:"gpt-5.4",inputModalities:["text","image"],provider:"openai",spec:"responses",label:"GPT-5.4",name:"GPT-5.4",description:"frontier model for general complex work",reasoning:!0,reasoningEfforts:OR,contextWindow:4e5},GPT_5_3_CODEX:{id:"gpt-5.3-codex",inputModalities:["text","image"],provider:"openai",spec:"responses",label:"GPT-5.3 Codex",name:"GPT-5.3 Codex",description:"frontier coding model",reasoning:!0,reasoningEfforts:OR,contextWindow:4e5},GPT_5_4_MINI:{id:"gpt-5.4-mini",inputModalities:["text","image"],provider:"openai",spec:"responses",label:"GPT-5.4 Mini",name:"GPT-5.4 Mini",description:"fast, cost-effective model for everyday tasks",reasoning:!0,reasoningEfforts:["low","medium","high"],contextWindow:4e5}};Object.values(DR).map(e=>e.id);var LR=Object.values(DR).map(e=>({id:e.id,provider:"openai",contextWindow:"contextWindow"in e?e.contextWindow:void 0,reasoningEfforts:e.reasoningEfforts,inputModalities:e.inputModalities}));Ex();var NR="app_EMoamEEZ73f0CkXaXp7hrann",$R="https://auth.openai.com",_R=`${$R}/oauth/authorize`,FR=`${$R}/oauth/token`,UR="/auth/callback",jR=`http://localhost:1455${UR}`,BR="x-oauth-token",WR="x-oauth-provider",HR="openai";function generateState2(){return R(32).toString("base64url")}function buildAuthorizeUrl2(e){const t=new URLSearchParams({response_type:"code",client_id:NR,redirect_uri:jR,scope:"openid profile email offline_access",code_challenge:e.challenge,code_challenge_method:"S256",id_token_add_organizations:"true",codex_cli_simplified_flow:"true",state:e.state,originator:"codex_cli_rs"});return`${_R}?${t.toString()}`}function tokenResultToCredential(e){return{kind:"oauth",token:e.accessToken,...e.refreshToken?{refreshToken:e.refreshToken}:{},...void 0!==e.expiresAt?{expiresAt:e.expiresAt}:{}}}function isExpiring2(e,t){return"number"==typeof e.expiresAt&&e.expiresAt-3e5<=t()}async function refreshCredential(e){return tokenResultToCredential(await refreshAccessToken({tokenEndpoint:FR,refreshToken:e.refreshToken,clientId:NR,fetchImpl:e.deps.fetchImpl,now:e.deps.now}))}function startLoopback(){return createLoopbackCallbackServer({port:1455,host:"127.0.0.1",path:UR,successHtml:"<!doctype html>\n<html>\n <head><title>Command Code — OpenAI Authorization Successful</title>\n <style>body{font-family:system-ui;display:flex;justify-content:center;align-items:center;height:100vh;margin:0;background:#0f0f0f;color:#eee}h1{color:#7ee787}</style>\n </head>\n <body><div><h1>Authorization successful</h1><p>You can close this window and return to Command Code.</p></div>\n <script>setTimeout(()=>window.close(),2000)<\/script></body>\n</html>"})}async function awaitCodeAndExchange(e){const{loopback:t,verifier:n,expectedState:r,deps:o}=e;try{const{code:e,state:s}=await withTimeout2(t.waitForCode(),3e5);if(s!==r)throw new Error("OpenAI OAuth: state mismatch — possible CSRF attempt");const a=await exchangeCodeForToken({tokenEndpoint:FR,code:e,verifier:n,clientId:NR,redirectUri:jR,fetchImpl:o.fetchImpl,now:o.now});if(!a.refreshToken)throw new Error("OpenAI OAuth: issuer did not return a refresh_token");return tokenResultToCredential(a)}finally{t.close()}}function withTimeout2(e,t){return new Promise((n,r)=>{const o=setTimeout(()=>{r(new Error("OpenAI OAuth timed out waiting for browser callback"))},t);"function"==typeof o.unref&&o.unref(),e.then(e=>{clearTimeout(o),n(e)},e=>{clearTimeout(o),r(e instanceof Error?e:new Error(String(e)))})})}async function freshCredential(e){const{credential:t,store:n,deps:r,inFlight:o}=e,s=t.refreshToken;if(!s||!isExpiring2(t,r.now))return t;const a=o.get(HR);if(a)return a;const i=(async()=>{try{const e=await refreshCredential({refreshToken:s,deps:r});return await n.set({provider:HR,credential:e}),e}catch{return t}finally{o.delete(HR)}})();return o.set(HR,i),i}function createOpenAIProvider(e={}){const t={fetchImpl:e.fetchImpl,now:e.now??(()=>Date.now())},n=new Map;return{id:HR,displayName:"OpenAI",models:LR,transport:{kind:"gateway",route:"/alpha/generate"},auth:{methods:[{kind:"oauth",label:"Sign in with OpenAI",authorize:__name(async()=>{const e=generatePkce(),n=generateState2(),r=await startLoopback();return{type:"pending",url:buildAuthorizeUrl2({challenge:e.challenge,state:n}),instructions:"Open this URL in your browser and approve access. After you authorize, OpenAI redirects back to this machine automatically — no copy/paste needed.",callback:__name(()=>awaitCodeAndExchange({loopback:r,verifier:e.verifier,expectedState:n,deps:t}),"callback")}},"authorize"),refresh:__name(async({credential:e})=>{if("oauth"!==e.kind||!e.refreshToken)throw new Error("OpenAI refresh requires an oauth credential with a refresh token");return refreshCredential({refreshToken:e.refreshToken,deps:t})},"refresh")}],loader:__name(async({credential:e,store:r})=>{if(!e||"oauth"!==e.kind||!e.token)return{};const o=(await freshCredential({credential:e,store:r,deps:t,inFlight:n})).token??e.token;return{headers:{[BR]:`Bearer ${o}`,[WR]:"codex"}}},"loader")}}}Px(),Px(),__name(generateState2,"generateState"),__name(buildAuthorizeUrl2,"buildAuthorizeUrl"),__name(tokenResultToCredential,"tokenResultToCredential"),__name(isExpiring2,"isExpiring"),__name(refreshCredential,"refreshCredential"),__name(startLoopback,"startLoopback"),__name(awaitCodeAndExchange,"awaitCodeAndExchange"),__name(withTimeout2,"withTimeout"),__name(freshCredential,"freshCredential"),__name(createOpenAIProvider,"createOpenAIProvider");var GR=[CR,AR,createOpenAIProvider()],VR=GR;function uniqueProviderModules(e){const t=new Map;for(const n of e)t.has(n.id)||t.set(n.id,n);return[...t.values()]}function providerModuleSpecifier(e,n){return e.startsWith(".")||t.isAbsolute(e)?p(t.resolve(n,e)).href:e}async function importProviderModule(e,t){return import(providerModuleSpecifier(e,t))}async function loadInstalledProviderModules(){const e=createNodeRuntime(),t=createConfigStore({config:await loadCommandCodeConfig({runtime:e}),runtime:e}).getProviders(),n=await loadProviderModules({entries:t,builtins:VR,importModule:__name(t=>importProviderModule(t,e.cwd()),"importModule")}),r={};for(const[e,n]of Object.entries(t))r[e]=n.module??e;return{modules:uniqueProviderModules([...VR,...n.modules]),errors:n.errors,sources:r}}__name(uniqueProviderModules,"uniqueProviderModules"),__name(providerModuleSpecifier,"providerModuleSpecifier"),__name(importProviderModule,"importProviderModule"),__name(loadInstalledProviderModules,"loadInstalledProviderModules");var zR=createCommandProviderAuthService({modules:VR,providerToModuleId:zw});async function providerAuthHeaders(e){return zR.providerAuthHeaders(e)}async function hasProviderCredential(e){return zR.hasProviderCredential(e)}async function providerLogin(e){return zR.login(e)}async function providerLogout(e){return zR.logout(e)}function resolveProviderAuthTarget(e){const t=resolveCommandProviderId(e.provider);if(!t)return{success:!1,error:`Unknown provider '${e.provider}'. Supported providers: anthropic, copilot, openai.`};const n=vo[t],r=getProviderDisplayName(t);return n?.requiresAuth?{success:!0,provider:t,displayName:r}:{success:!1,error:`${r} does not use provider ${e.action}. Run cmd ${e.action} without a provider for Command Code account auth.`}}function printProviderInstructions(e){console.log(yt.yellow(` ${e}`)),console.log()}function printLoginLink(e){console.log(),console.log(yt.dim(" Login: ")+createOSC8Link(e,"Open auth page ↗")),console.log()}async function openAuthPage(e,t){await wt(e,t).catch(()=>{console.log(yt.dim(` Could not auto-open browser. Open: ${e}`))})}async function confirmOpenAfterCode(){const e=await Be({message:"Press Enter to open GitHub and paste the code there.",active:"Open",inactive:"Cancel",initialValue:!0});if(We(e)||!0!==e)throw new Error("GitHub Copilot authentication cancelled")}function extractDeviceCode(e){const t=e.match(/copy\s+this\s+code:\s*([^\s]+)/i);return t?.[1]??null}async function printDeviceCode(e){const t=extractDeviceCode(e);if(!t)return void printProviderInstructions(e);const n=await writeClipboardText(t)?yt.dim(" (copied)"):"";console.log(` ${yt.yellow("Logging into Copilot, use this code:")} ${yt.bold(t)}${n}`),console.log()}async function performProviderAuth(e){const{provider:t}=e,n=getProviderDisplayName(t);try{let e=!0;const r=t===Fr.COPILOT;if(!r){const t=await Be({message:`Open browser to sign in with ${n}?`,initialValue:!0});if(We(t))return{success:!1,error:`${n} authentication cancelled`};e=!0===t}return await providerLogin({provider:t,onPending:__name(async t=>{if(!t.prompt){if(r)return await printDeviceCode(t.instructions),await confirmOpenAfterCode(),await openAuthPage(t.url),console.log(),void console.log(` ${yt.dim(it.circleFilled)} ${yt.dim("Waiting for GitHub...")}`);printProviderInstructions(t.instructions)}if(printLoginLink(t.url),!0===e&&await openAuthPage(t.url,t.prompt?void 0:{wait:!1,background:!0}),t.prompt){printProviderInstructions(t.instructions);const e=await He({message:t.prompt.label,mask:"*"});if(We(e)||!String(e).trim())throw new Error("No authorization code provided");return{code:String(e).trim()}}console.log(` ${yt.dim(it.circleFilled)} ${yt.dim("Waiting for authorization...")}`)},"onPending")}),{success:!0}}catch(e){const n=e instanceof Error?e.message:"Unknown error";return dlog("[ProviderAuth] performProviderAuth failed",{provider:t,error:n}),{success:!1,error:n}}}__name(providerAuthHeaders,"providerAuthHeaders"),__name(hasProviderCredential,"hasProviderCredential"),configureCommandUserConfigHost({providerAuthHeaders:providerAuthHeaders,hasProviderCredential:hasProviderCredential,log:__name((e,t)=>{void 0!==t?dlog(e,t):dlog(e)},"log"),onOAuthEnforcementEvent:__name(e=>{"disabled-by-flag"!==e.type?"enabled-by-flag"!==e.type?"resolved-provider"!==e.type?dlog("[Auth] using OAuth (persisted from previous --co)"):dlog("[Auth] --co resolved provider",e.provider):dlog("[Auth] OAuth enabled via --co flag"):dlog("[Auth] OAuth disabled via --xco flag")},"onOAuthEnforcementEvent")}),__name(providerLogin,"providerLogin"),__name(providerLogout,"providerLogout"),__name(resolveProviderAuthTarget,"resolveProviderAuthTarget"),__name(printProviderInstructions,"printProviderInstructions"),__name(printLoginLink,"printLoginLink"),__name(openAuthPage,"openAuthPage"),__name(confirmOpenAfterCode,"confirmOpenAfterCode"),__name(extractDeviceCode,"extractDeviceCode"),__name(printDeviceCode,"printDeviceCode"),__name(performProviderAuth,"performProviderAuth");var qR=__name(({message:e})=>Xe.createElement(Xe.Fragment,null,Xe.createElement(Ve,{color:Rx.CYAN},Xe.createElement(gt,{type:"dots"})),Xe.createElement(Ve,null," ",e)),"LoadingIndicator"),KR=__name(({message:e})=>Xe.createElement(Xe.Fragment,null,Xe.createElement(Ve,{color:Rx.GREEN},it.tick),Xe.createElement(Ve,null," ",e)),"SuccessIndicator"),YR=__name(({children:e})=>Xe.createElement(Ge,{flexDirection:"column"},Xe.createElement(Ve,null," "),Xe.createElement(Ge,null,e)),"StatusContainer");async function checkExistingAuth(e){return checkExistingCommandAuth({runtime:getCommandConfigRuntime(),authFilePath:getAuthFile(e)})}function buildAlreadyLoggedInMessage(e){return formatAlreadyLoggedInStyled(e)}function buildSuccessMessage(e,t){return formatLoginSuccessStyled({userName:e,authFileName:t})}function showAuthIntro(){console.log("\n"),_e.intro(heading({text:"Command Code Authentication"}))}function showLoginCancelMessage(e){Fe(`${it.cross} ${e}`)}function printMessage(e){console.log(""),console.log(e),console.log("")}function runLoginWithApiKeyFlow(){return new Promise(e=>{const{unmount:t}=Ke(Xe.createElement(bA,{onComplete:__name(n=>{setTimeout(()=>{t(),e(n)},100)},"onComplete")}),{stdin:process.stdin,stdout:process.stdout,stderr:process.stderr,exitOnCtrlC:!1})})}__name(checkExistingAuth,"checkExistingAuth"),__name(buildAlreadyLoggedInMessage,"buildAlreadyLoggedInMessage"),__name(buildSuccessMessage,"buildSuccessMessage"),__name(showAuthIntro,"showAuthIntro"),__name(showLoginCancelMessage,"showLoginCancelMessage"),__name(printMessage,"printMessage"),__name(runLoginWithApiKeyFlow,"runLoginWithApiKeyFlow");var JR=__name(({env:e,onComplete:t})=>{const[n,r]=et("checking"),[o,s]=et(null);return nt(()=>{checkExistingAuth(e).then(e=>{s(e),r(e.isAuthenticated?"logged_in":"not_logged_in")})},[e]),nt(()=>{if("checking"!==n&&null!==o){const e=setTimeout(()=>t(o),100);return()=>clearTimeout(e)}},[n,o,t]),Xe.createElement(YR,null,"checking"===n&&Xe.createElement(qR,{message:"Checking authentication status..."}),"logged_in"===n&&Xe.createElement(KR,{message:"Authenticated"}),"not_logged_in"===n&&Xe.createElement(KR,{message:"Ready to log in"}))},"AuthCheckSpinner");async function checkAuthWithSpinner(e){return new Promise(t=>{const{unmount:n}=Ke(Xe.createElement(JR,{env:e,onComplete:e=>{n(),t(e)}}),{stdout:process.stdout,stderr:process.stderr,stdin:process.stdin})})}async function performProviderLogin(e){const t=resolveProviderAuthTarget({provider:e.provider,action:"login"});if(!t.success)return{success:!1,error:t.error};try{const n=await(e.authenticateProvider??performProviderAuth)({provider:t.provider});return n.success?(await(e.persistProvider??persistProviderSelection)(t.provider),{success:!0,provider:t.provider,message:`Logged in to ${t.displayName}`}):{success:!1,provider:t.provider,error:n.error??`${t.displayName} authentication failed`}}catch(e){return{success:!1,provider:t.provider,error:getErrorMessage(e)}}}async function runLogin(){await applyStartupTheme();const e=getApiEnv();return runLoginSequence({checkExistingAuth:__name(()=>checkAuthWithSpinner(e),"checkExistingAuth"),showAlreadyLoggedIn:__name(({userName:e})=>printMessage(buildAlreadyLoggedInMessage(e)),"showAlreadyLoggedIn"),showIntro:showAuthIntro,runCommandLogin:runLoginWithApiKeyFlow,showLoginCancelled:__name(({message:e})=>showLoginCancelMessage(e),"showLoginCancelled"),trackFirstInstall:__name(()=>detectAndTrackFirstInstall({loadUserConfig:loadUserConfig,updateUserConfig:updateUserConfig,trackLifecycleEvent:__name(e=>trackLifecycleEvent({...e,isTelemetryEnabled:isTelemetryEnabled,createClient:__name(()=>createApiClient({baseUrl:getApiBaseUrl()}),"createClient"),log:dlog}),"trackLifecycleEvent"),getCliVersion:__name(()=>getPackageJson(import.meta.url).version??"unknown","getCliVersion"),log:dlog}),"trackFirstInstall"),showLoginSuccess:__name(({userName:t})=>printMessage(buildSuccessMessage(t,getCommandAuthFileName(e))),"showLoginSuccess"),log:dlog})}async function loginAction(e){try{await applyStartupTheme();const t=e?.trim();if(t){const e=await performProviderLogin({provider:t});e.success||(Fe(`${it.cross} Login failed: ${e.error}`),process.exit(1)),Ue(yt.green(`${it.tick} ${e.message}`)),process.exit(0)}await runLogin(),process.exit(0)}catch(e){isUserCancellation(e)&&process.exit(0),console.error(`${it.cross} Login failed:`,getErrorMessage(e)),process.exit(1)}}__name(checkAuthWithSpinner,"checkAuthWithSpinner"),__name(performProviderLogin,"performProviderLogin"),__name(runLogin,"runLogin"),__name(loginAction,"loginAction");var QR=new Le("login").description("Login with Command Code account or a provider").argument("[provider]","Provider to log in with").allowUnknownOption().allowExcessArguments().action(loginAction);function performLogout(){return performCommandLogout({runtime:getCommandConfigRuntime(),authFilePath:getAuthFile(),env:process.env,envVarName:oo})}async function performProviderLogout(e){const t=resolveProviderAuthTarget({provider:e.provider,action:"logout"});if(!t.success)return{success:!1,error:t.error};try{const n=await(e.logoutProvider??providerLogout)({provider:t.provider});return{success:!0,provider:t.provider,removed:n,message:n?`Logged out of ${t.displayName}`:`No saved ${t.displayName} credential found`}}catch(e){const n=e instanceof Error?e.message:"Unknown error";return{success:!1,provider:t.provider,error:`Failed to log out of ${t.displayName}: ${n}`}}}function readLogoutUserName(){return getCommandAuthUserName({runtime:getCommandConfigRuntime(),path:getAuthFile()})}Ex(),Px(),__name(performLogout,"performLogout"),__name(performProviderLogout,"performProviderLogout"),__name(readLogoutUserName,"readLogoutUserName");var XR=__name(({userName:e})=>{const t=e?`Logging out ${e}...`:"Logging out...";return Xe.createElement(Xe.Fragment,null,Xe.createElement(Ve,{color:Rx.CYAN},Xe.createElement(gt,{type:"dots"})),Xe.createElement(Ve,null," ",t))},"LoadingIndicator"),ZR=__name(({userName:e,wasAuthenticated:t})=>{const n=!1===t?"Not currently authenticated":formatLogoutSuccess(e);return Xe.createElement(Xe.Fragment,null,Xe.createElement(Ve,{color:Rx.GREEN},it.tick),Xe.createElement(Ve,null," ",n))},"SuccessIndicator"),eO=__name(({errorMessage:e})=>Xe.createElement(Xe.Fragment,null,Xe.createElement(Ve,{color:Rx.RED},it.cross),Xe.createElement(Ve,{color:Rx.RED}," Logout failed: ",e)),"ErrorIndicator"),tO=__name(({status:e,errorMessage:t,userName:n,wasAuthenticated:r})=>"loading"===e?Xe.createElement(XR,{userName:n}):"success"===e?Xe.createElement(ZR,{userName:n,wasAuthenticated:r}):Xe.createElement(eO,{errorMessage:t}),"StatusDisplay"),nO=__name(({onComplete:e,userName:t})=>{const[n,r]=et("loading"),[o,s]=et(""),[a,i]=et(null);return nt(()=>{performLogout().then(e=>{i(e),e.success?r("success"):(s(e.error||"Unknown error"),r("error"))})},[]),nt(()=>{if(("success"===n||"error"===n)&&a){const t=setTimeout(()=>e(a),100);return()=>clearTimeout(t)}},[n,a,e]),Xe.createElement(Ge,{flexDirection:"column"},Xe.createElement(Ve,null," "),Xe.createElement(Ge,null,Xe.createElement(tO,{status:n,errorMessage:o,userName:t,wasAuthenticated:a?.wasAuthenticated})))},"LogoutSpinner");function printWarnings(e){0!==e.length&&(console.warn(yt.yellow("\nLogout completed with warnings:")),e.forEach(e=>console.warn(yt.yellow(` - ${e}`))))}async function renderLogoutUI(){let e;await applyStartupTheme();try{const t=await readLogoutUserName();e=t||void 0}catch{e=void 0}return new Promise(t=>{const{unmount:n}=Ke(Xe.createElement(nO,{onComplete:e=>{n(),t(e)},userName:e}),{stdout:process.stdout,stderr:process.stderr,stdin:process.stdin})})}async function logoutAction(e){const t=e?.trim();if(t){const e=await performProviderLogout({provider:t});e.success||(console.error(`${it.cross} ${e.error}`),process.exit(1)),console.log(`${it.tick} ${e.message}`),process.exit(0)}const n=await renderLogoutUI();n.success||process.exit(1),printWarnings(n.warnings),console.log(""),process.exit(0)}__name(printWarnings,"printWarnings"),__name(renderLogoutUI,"renderLogoutUI"),__name(logoutAction,"logoutAction");var rO=new Le("logout").description("Log out of Command Code or a provider").argument("[provider]","Provider to log out from").allowUnknownOption().allowExcessArguments().action(logoutAction);function checkAuthStatus(e){return checkCommandAuthStatus({runtime:getCommandConfigRuntime(),path:getAuthFile(e),env:process.env})}async function buildStatusJson(){return resolveCommandAuthStatusJson({version:getPackageJson(import.meta.url).version??"unknown",runtime:getCommandConfigRuntime(),apiEnv:getApiEnv(),env:process.env})}async function statusAction(e){if(e.json){const e=await buildStatusJson(),t=!e.authenticated||e.error?1:0;return void process.stdout.write(`${JSON.stringify(e)}\n`,()=>process.exit(t))}const t=kt("Checking authentication status...").start();try{const e=getApiEnv(),n=await checkAuthStatus(e);n.error&&(t.fail(yt.red(`Status check failed: ${n.error}`)),process.exit(1)),n.authenticated||(t.fail(yt.red("Not authenticated")),console.log(""),console.log(`${yt.dim("Run")} ${yt.cyan(`${getBinaryCommand()} auth login`)} ${yt.dim("to authenticate.")}`),console.log(""),process.exit(1));const r=isGenericCommandAuthUserName(n.userName)?"":` as ${yt.cyan(n.userName)}`;t.succeed("Authentication verified"),console.log(`${yt.green(it.tick)} ${yt.bold("Authenticated")}${r}`),console.log(` ${yt.dim("Provider:")} ${yt.cyan("Command Code")}`),n.fromEnv&&console.log(` ${yt.dim("Source:")} ${yt.cyan(`$${oo}`)} ${yt.dim("(env var)")}`),console.log(""),process.exit(0)}catch(e){t.fail(yt.red(`Status check failed: ${e instanceof Error?e.message:"Unknown error"}`)),process.exit(1)}}Ex(),Px(),__name(checkAuthStatus,"checkAuthStatus"),__name(buildStatusJson,"buildStatusJson"),__name(statusAction,"statusAction");var oO=new Le("status").description("Show authentication status").option("--json","Output status as JSON for automation").allowUnknownOption().allowExcessArguments().action(statusAction);function parseValue(e){try{const t=JSON.parse(e);if("string"==typeof t||"boolean"==typeof t||"number"==typeof t)return t}catch{}return e}function rowValue(e){return e.currentValue}function rowMatchesScope(e,t){return"effective"===t||e.scope===t}function printValue(e,t){console.log(t?JSON.stringify(e,null,2):String(e))}function unknownKeyMessage(e,t){const n=e.suggest({raw:t});return 0===n.length?`Unknown configuration setting: ${t}`:`Unknown configuration setting: ${t}. Did you mean: ${n.join(", ")}?`}async function createRegistry(){const e=getCommandConfigRuntime(),t=await loadCommandCodeConfig({runtime:e});let n=normalizePermissionMode(t.permissions?.defaultMode)??normalizePermissionMode(t.permissionMode)??"default";return createConfigToolRegistry({runtime:e,listModelIds:__name(()=>listKnownModelIds(),"listModelIds"),model:{current:__name(()=>getConfiguredModel(),"current"),set:__name(async({model:e})=>persistDefaultModel({model:e}),"set")},permissionMode:{current:__name(()=>n,"current"),set:__name(async({mode:t})=>{await updateUserSettings({runtime:e,patch:{permissions:{defaultMode:t}}}),n=t},"set")}})}function withCommonOptions(e){return e.addOption(new Ne("--scope <scope>","Configuration scope").choices(["effective","user","project"]).default("effective")).option("--json","Print machine-readable JSON")}new Le("auth").description("Manage authentication with Command Code").addCommand(QR).addCommand(rO).addCommand(oO),Ex(),Px(),__name(parseValue,"parseValue"),__name(rowValue,"rowValue"),__name(rowMatchesScope,"rowMatchesScope"),__name(printValue,"printValue"),__name(unknownKeyMessage,"unknownKeyMessage"),__name(createRegistry,"createRegistry"),__name(withCommonOptions,"withCommonOptions");var sO=withCommonOptions(new Le("list").alias("ls").description("List configuration settings")).action(async e=>{const t=await createRegistry(),n=(await t.list()).filter(t=>rowMatchesScope(t,e.scope));if(e.json)printValue(n.map(e=>({id:e.id,value:rowValue(e),scope:e.scope,locked:!0===e.locked})),!0);else for(const e of n)console.log(`${e.id} = ${JSON.stringify(rowValue(e))} (${e.scope})`)}),aO=withCommonOptions(new Le("get").description("Read one configuration setting").argument("<key>","Setting id")).action(async(e,t,n)=>{const r=await createRegistry(),o=r.resolveId({raw:e});o||n.error(unknownKeyMessage(r,e));const s=await r.get({id:o});s||n.error(unknownKeyMessage(r,e)),rowMatchesScope(s,t.scope)||n.error(`${o} is not available in ${t.scope} scope. It lives in ${s.scope} scope - use --scope ${s.scope}.`),t.json?printValue({id:s.id,value:rowValue(s),scope:s.scope},!0):printValue(rowValue(s),!1)}),iO=withCommonOptions(new Le("set").description("Validate and write one configuration setting").argument("<key>","Setting id").argument("<value>","JSON scalar or plain string value")).action(async(e,t,n,r)=>{"effective"===n.scope&&r.error("config set requires --scope user or project");const o=await createRegistry(),s=o.resolveId({raw:e});s||r.error(unknownKeyMessage(o,e));const a=await o.get({id:s});let i;a||r.error(unknownKeyMessage(o,e)),rowMatchesScope(a,n.scope)||r.error(`${s} cannot be written in ${n.scope} scope. It is a ${a.scope}-scope setting - use --scope ${a.scope}.`);try{i=await o.set({id:s,value:parseValue(t)})}catch(e){r.error(e instanceof Error?e.message:String(e))}const l={id:i.id,previousValue:i.previousValue,newValue:i.newValue,scope:n.scope,liveSessionReloaded:!1,liveSessionReloadsOnNextRound:!0};n.json?printValue(l,!0):(console.log(`${i.id}: ${JSON.stringify(i.previousValue)} -> ${JSON.stringify(i.newValue)} (${n.scope})`),console.log("A running session picks this up at the start of its next round."))}),lO=new Le("default").description("Reset one configuration setting to its default value").argument("<key>","Setting id").option("--json","Print machine-readable JSON").action(async(e,t,n)=>{const r=await createRegistry(),o=r.resolveId({raw:e});o||n.error(unknownKeyMessage(r,e));const s=await r.get({id:o});let a;s||n.error(unknownKeyMessage(r,e)),void 0===s.defaultValue&&n.error(`${o} has no default value to reset to.`);try{a=await r.set({id:o,value:s.defaultValue})}catch(e){n.error(e instanceof Error?e.message:String(e))}const i={id:a.id,previousValue:a.previousValue,newValue:a.newValue,scope:s.scope,liveSessionReloaded:!1,liveSessionReloadsOnNextRound:!0};t.json?printValue(i,!0):(console.log(`${a.id}: ${JSON.stringify(a.previousValue)} -> ${JSON.stringify(a.newValue)} (default, ${s.scope})`),console.log("A running session picks this up at the start of its next round."))}),cO=new Le("config").description("Inspect and update validated configuration settings").addCommand(sO).addCommand(aO).addCommand(iO).addCommand(lO);async function openGitHubIssue(e){const t=buildGitHubIssueUrl(e),n=kt("Opening the GitHub issue…").start();try{await wt(t,{wait:!1,background:!0}),n.succeed(`Opened ${createOSC8Link(t,"the GitHub issue",!1)} in your browser`),console.log("")}catch(e){n.fail("Failed to open browser"),console.log(""),console.log(createOSC8Link(t,"Open GitHub issue manually",!1)),console.log("")}}Ex(),Px(),__name(openGitHubIssue,"openGitHubIssue");var dO=new Le("feedback").alias("issue").description("Report a bug or share feedback — opens a GitHub issue").argument("[title]","Optional issue title").action(openGitHubIssue);Ex();var uO=new Le("help").description("Display help information").allowUnknownOption().allowExcessArguments().action(function(){this.parent?.help()});Ex(),Ex(),Px(),Ex(),Px();var mO=__name(({icon:e,label:t,children:n})=>Xe.createElement(Ve,null,Xe.createElement(Ve,{color:Rx.CYAN},e," "),Xe.createElement(Ve,{color:Rx.DIM},t.padEnd(12)),n),"Row"),pO=__name(({title:e})=>Xe.createElement(Ve,null,Xe.createElement(Ve,{color:Rx.GRAY},"───"),Xe.createElement(Ve,{color:Rx.WHITE}," ",e," "),Xe.createElement(Ve,{color:Rx.GRAY},"─".repeat(35))),"Header"),gO=__name(({title:e,marginTop:t=0,children:n})=>Xe.createElement(Ge,{flexDirection:"column",marginTop:t},Xe.createElement(pO,{title:e}),Xe.createElement(Ge,{flexDirection:"column",paddingY:1},n)),"Section"),hO=__name(({host:e,systemInfo:t})=>Xe.createElement(gO,{title:"System Information"},Xe.createElement(mO,{icon:it.bullet,label:"Version"},Xe.createElement(Ve,{color:Rx.GREEN},t.version)),Xe.createElement(mO,{icon:it.bullet,label:"Date"},Xe.createElement(Ve,null,formatDate())),Xe.createElement(mO,{icon:it.pointer,label:"Platform"},Xe.createElement(Ve,{color:Rx.GREEN},t.os),Xe.createElement(Ve,{color:Rx.DIM}," ","(",e.platform,", ",e.arch,")")),Xe.createElement(mO,{icon:it.triangleUp,label:"Hostname"},Xe.createElement(Ve,null,e.hostname)),Xe.createElement(mO,{icon:it.bullet,label:"User"},Xe.createElement(Ve,{color:Rx.YELLOW},e.username)),Xe.createElement(mO,{icon:it.bullet,label:"CPUs"},Xe.createElement(Ve,{color:Rx.MAGENTA},e.cpus.length," cores")),Xe.createElement(mO,{icon:it.bullet,label:"Memory"},Xe.createElement(Ve,{color:Rx.CYAN},e.totalMemoryGb," GB")),Xe.createElement(mO,{icon:it.play,label:"Uptime"},Xe.createElement(Ve,null,formatUptime(e.uptimeSeconds))),Xe.createElement(mO,{icon:it.arrowRight,label:"Home"},Xe.createElement(Ve,{color:Rx.DIM},e.homeDir)),Xe.createElement(mO,{icon:it.pointer,label:"Shell"},Xe.createElement(Ve,null,t.shell)),Xe.createElement(mO,{icon:it.bullet,label:"Node"},Xe.createElement(Ve,{color:Rx.GREEN},e.nodeVersion)),Xe.createElement(mO,{icon:it.pointer,label:"Terminal"},Xe.createElement(Ve,{color:Rx.CYAN},t.terminal)),Xe.createElement(mO,{icon:it.bullet,label:"IDE"},Xe.createElement(Ve,null,t.ide))),"SystemInfoSection"),fO=__name(({cpus:e})=>Xe.createElement(gO,{title:"CPU Details",marginTop:1},e.map((e,t)=>Xe.createElement(mO,{key:t,icon:it.bullet,label:`Core ${t}`},Xe.createElement(Ve,null,e.model),Xe.createElement(Ve,{color:Rx.YELLOW}," @ ",e.speedMHz," MHz")))),"CPUDetailsSection"),yO=__name(({addresses:e})=>Xe.createElement(gO,{title:"Network",marginTop:1},e.map((e,t)=>Xe.createElement(mO,{key:`${e.interfaceName}-${t}`,icon:it.bullet,label:e.interfaceName},Xe.createElement(Ve,{color:Rx.GREEN},e.address)))),"NetworkSection"),SO=__name(({host:e,verbose:t,systemInfo:n})=>Xe.createElement(Ge,{flexDirection:"column"},Xe.createElement(Ve,null,"System Information"),Xe.createElement(Ve,null,"─".repeat(40)),Xe.createElement(Ve,null,"Version ",n.version),Xe.createElement(Ve,null,"Date ",formatDate()),Xe.createElement(Ve,null,"Platform ",n.os," (",e.platform,", ",e.arch,")"),Xe.createElement(Ve,null,"Hostname ",e.hostname),Xe.createElement(Ve,null,"User ",e.username),Xe.createElement(Ve,null,"CPUs ",e.cpus.length," cores"),Xe.createElement(Ve,null,"Memory ",e.totalMemoryGb," GB"),Xe.createElement(Ve,null,"Uptime ",formatUptime(e.uptimeSeconds)),Xe.createElement(Ve,null,"Home ",e.homeDir),Xe.createElement(Ve,null,"Shell ",n.shell),Xe.createElement(Ve,null,"Node ",e.nodeVersion),Xe.createElement(Ve,null,"Terminal ",n.terminal),Xe.createElement(Ve,null,"IDE ",n.ide),t&&Xe.createElement(Xe.Fragment,null,Xe.createElement(Ve,null,"\n","CPU Details"),Xe.createElement(Ve,null,"─".repeat(40)),e.cpus.map((e,t)=>Xe.createElement(Ve,{key:t},"Core ",String(t).padEnd(10),e.model," @ ",e.speedMHz," MHz")),Xe.createElement(Ve,null,"\n","Network"),Xe.createElement(Ve,null,"─".repeat(40)),e.externalIpv4.map((e,t)=>Xe.createElement(Ve,{key:`${e.interfaceName}-${t}`},e.interfaceName.padEnd(12),e.address)))),"PlainTextInfo"),wO=__name(({host:e,verbose:t,systemInfo:n})=>Xe.createElement(Ge,{flexDirection:"column"},Xe.createElement(hO,{host:e,systemInfo:n}),t&&Xe.createElement(fO,{cpus:e.cpus}),t&&Xe.createElement(yO,{addresses:e.externalIpv4})),"StyledInfo"),kO=__name(({verbose:e=!1,text:t=!1,systemInfo:n})=>{const{exit:r}=Je();nt(()=>{const e=setTimeout(()=>r(),50);return()=>clearTimeout(e)},[r]);const o=rt(()=>collectHostDiagnostics(),[]);return t?Xe.createElement(SO,{host:o,verbose:e,systemInfo:n}):Xe.createElement(wO,{host:o,verbose:e,systemInfo:n})},"InfoUI");async function runInfo(e){await applyStartupTheme();const t=getSystemInfo(),{waitUntilExit:n}=Ke(Xe.createElement(kO,{verbose:e.verbose,text:e.text,systemInfo:t}));await n()}__name(runInfo,"runInfo");var vO=new Le("info").description("Display system information").option("--verbose","Show detailed CPU and network information").option("--text","Print plain text without colors").allowUnknownOption().allowExcessArguments().action(async e=>{await runInfo(e)});Ex(),Px(),Ex(),Ex(),Ex(),Px(),Ex(),Ex();var CO=__name(({label:e="Loading",spinner:t=!1})=>Xe.createElement(Ve,{color:Rx.DIM},t&&Xe.createElement(Xe.Fragment,null,Xe.createElement(gt,{type:"dots"})," "),e,"…"),"LoadingLine"),bO=__name(({children:e,glyph:t=!0})=>Xe.createElement(Ve,{color:Rx.RED},t&&`${it.cross} `,e),"ErrorLine"),EO=__name(({children:e,glyph:t=!0})=>Xe.createElement(Ve,{color:Rx.GREEN},t&&`${it.tick} `,e),"SuccessLine"),TO=__name(({title:e="Oops, something went wrong:",children:t})=>Xe.createElement(Ge,{flexDirection:"column",borderStyle:"single",borderColor:Rx.RED,paddingX:2,paddingY:1,marginTop:1},Xe.createElement(Ve,{color:Rx.RED,bold:!0},e),Xe.createElement(Ge,{marginTop:1},Xe.createElement(Ve,null,t))),"ErrorPanel"),PO=__name(({message:e,hint:t})=>Xe.createElement(Ge,{flexDirection:"column"},Xe.createElement(Ve,{color:Rx.GRAY},e),t?Xe.createElement(Ve,{color:Rx.DIM},t):null),"EmptyState"),MO=__name(({error:e,traceId:t})=>Xe.createElement(Ge,{marginBottom:2},Xe.createElement(TO,null,e,t&&Xe.createElement(Ve,{color:Rx.DIM},"\n\n","Trace ID: ",t))),"ErrorSection");function formatUsd(e){const t=e.toFixed(6).replace(/0+$/,"").replace(/\.$/,""),n=t.indexOf(".");return`$${(-1===n?0:t.length-n-1)>=2?t:e.toFixed(2)}`}Ex(),Ex(),Px(),Ex(),Px(),Ex(),Px(),Ex(),Ex(),__name(formatUsd,"formatUsd");var xO=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function formatShortDateUtc(e){const t=xO[Number(e.slice(5,7))-1],n=Number(e.slice(8,10));return!t||!Number.isInteger(n)||n<1?e:`${t} ${n}`}function peakHoursPerDay(e){return e.reduce((e,t)=>e+(t.endHourUtc-t.startHourUtc),0)}__name(formatShortDateUtc,"formatShortDateUtc"),__name(peakHoursPerDay,"peakHoursPerDay");var IO={"zai-org/GLM-5":{inputCost:1,outputCost:3.2,cacheReadCost:.2},"zai-org/GLM-5.2":{inputCost:1.4,outputCost:4.4,cacheReadCost:.26}};function advertisedBandOf(e,t){const n=e.timeOfDay;return n?t<Date.parse(n.effectiveFrom)?e:n.offPeak:e}function primaryUpstreamOf(e,t){const n=e.order[0],r=n?e.providers[n]:void 0;if(!r)throw new Error(`display-pricing: billing entry "${t}" has no primary upstream in its \`order\``);return r}function getDisplayRates(e,t=Date.now()){const n=IO[e];if(n)return n;const r=Object.values(YA).flat().find(t=>t.id===e);if(r)return{inputCost:r.promptCost,outputCost:r.completionCost,cacheReadCost:r.cacheHitCost??0,...null!=r.cacheWrite5mCost&&{cacheWriteCost:r.cacheWrite5mCost}};const o=rR.find(t=>t.canonicalId===e);if(o)return toDisplayRates(advertisedBandOf(primaryUpstreamOf(o,e),t));const s=aR.find(t=>t.canonicalId===e);if(s){const t=primaryUpstreamOf(s,e);return{inputCost:t.promptCost,outputCost:t.completionCost,cacheReadCost:t.cacheReadCost??0,...null!=t.cacheWriteCost&&{cacheWriteCost:t.cacheWriteCost}}}const a=oR.find(t=>t.canonicalId===e);if(a)return{inputCost:a.promptCost,outputCost:a.completionCost,cacheReadCost:a.cacheReadCost};const i=sR.find(t=>t.canonicalId===e);if(i)return{inputCost:i.promptCost,outputCost:i.completionCost,cacheReadCost:i.cacheReadCost};throw new Error(`display-pricing: unknown billing id "${e}" — not in MODELS, GATEWAY_MODEL_PRICING, OPENROUTER_MODEL_PRICING, ALIBABA_MODEL_PRICING, or MORPH_MODEL_PRICING`)}function toDisplayRates(e){return{inputCost:e.promptCost,outputCost:e.completionCost,cacheReadCost:e.cacheReadCost??0,...null!=e.cacheWriteCost&&{cacheWriteCost:e.cacheWriteCost}}}function getDisplayTimeOfDay(e){if(IO[e])return;const t=rR.find(t=>t.canonicalId===e),n=t?.order[0],r=n?t?.providers[n]?.timeOfDay:void 0;if(!r)return;const o=peakHoursPerDay(r.peakWindowsUtc);return{effective:r.effectiveFrom,peak:toDisplayRates(r.peak),offPeak:toDisplayRates(r.offPeak),peakWindowsUtc:r.peakWindowsUtc,peakHoursPerDay:o,offPeakHoursPerDay:24-o}}function timeOfDayNote(e){const t=`${formatUsd(e.offPeak.inputCost)}/${formatUsd(e.offPeak.outputCost)}`,n=`${formatUsd(e.peak.inputCost)}/${formatUsd(e.peak.outputCost)}`;return`From ${formatShortDateUtc(e.effective)}: ${t} off-peak, ${n} peak (${e.peakHoursPerDay}h/day)`}function timeOfDayScheduledChanges(){const e={};for(const t of rR){const n=getDisplayTimeOfDay(t.canonicalId);n&&(e[t.canonicalId]={effective:n.effective,rates:n.offPeak,note:timeOfDayNote(n)})}return e}__name(advertisedBandOf,"advertisedBandOf"),__name(primaryUpstreamOf,"primaryUpstreamOf"),__name(getDisplayRates,"getDisplayRates"),__name(toDisplayRates,"toDisplayRates"),__name(getDisplayTimeOfDay,"getDisplayTimeOfDay"),__name(timeOfDayNote,"timeOfDayNote"),__name(timeOfDayScheduledChanges,"timeOfDayScheduledChanges"),timeOfDayScheduledChanges(),Ex(),Px();var AO=null;function setRegisteredProviderModules(e){AO=new Set(e.modules.map(e=>e.id))}function isProviderLaneRegistered(e){const t=AO;if(!t)return!0;if(!Co[e.providerId]?.requiresAuth)return!0;const n=zw[e.providerId]??e.providerId;return t.has(n)}function filterModelGroupsByRegisteredModules(e){return e.filter(e=>isProviderLaneRegistered({providerId:e.providerId}))}__name(setRegisteredProviderModules,"setRegisteredProviderModules"),__name(isProviderLaneRegistered,"isProviderLaneRegistered"),__name(filterModelGroupsByRegisteredModules,"filterModelGroupsByRegisteredModules");var RO=getPackageJson(import.meta.url),OO="string"==typeof RO.version&&RO.version.trim()?RO.version:"unknown";function estimateSessionCostUsd(e){try{const t=getDisplayRates(e.model),{inputTokens:n,outputTokens:r,cacheReadTokens:o,cacheWriteTokens:s}=e.usage;return(n*t.inputCost+r*t.outputCost+o*t.cacheReadCost+s*(t.cacheWriteCost??0))/1e6}catch{return}}async function createHarnessSession(e){const t=e.providerModules??e.modHost?.providerModules(),n=t??[...VR];return t&&setRegisteredProviderModules({modules:t}),createNodeHarnessSession({...e,cliVersion:e.cliVersion??OO,providerModules:n,estimateCostUsd:e.estimateCostUsd??estimateSessionCostUsd})}__name(estimateSessionCostUsd,"estimateSessionCostUsd"),__name(createHarnessSession,"createHarnessSession");var DO=createHarnessSessionManager({createSession:createHarnessSession}),LO=DO.getHarnessForSession,NO=DO.getResolvedHarness,$O=DO.forgetHarnessSession,_O=DO.disposeAllHarnessSessions;async function runTasteImport(e={}){const t=await runOnboardingImportWithEvents({events:Yu,signal:e.signal,onDebug:__name(e=>dlog(e),"onDebug"),runOnboarding:__name(async e=>(await createHarnessSession({sessionId:`taste-onboarding-${crypto.randomUUID()}`,baseUrl:getApiBaseUrl()})).runTasteOnboarding(e),"runOnboarding")});return{success:t.success,totalPrompts:t.totalPrompts,preferencesLearned:t.preferencesLearned,errors:[...t.errors],status:t.status,totalSessions:t.totalSessions,learnedSessions:t.learnedSessions,agentSessions:t.agentSessions?.map(e=>({agent:e.agent,sessionIds:[...e.sessionIds],displayName:e.displayName}))}}__name(runTasteImport,"runTasteImport");var FO={isImporting:!1,waitingForInput:!1,error:null},UO=__name(e=>{const t=tt(null),n=tt(e);n.current=e;const[r,o]=et({isImporting:!0,waitingForInput:!1,alreadyLearned:!1,learnedSessionCount:0,totalSessionCount:0,agentSessions:[],error:null}),s=ot(()=>{const e=t.current;!e||e.isAborted()||(e.finishCancelled(),o(e=>({...e,...FO})))},[]);return nt(()=>{const e=createOnboardingImportLifecycle({events:Yu});t.current=e;let r=!1;return(async()=>{try{const t=await e.race(runTasteImport({signal:e.signal}));if(e.isAborted())return;if("cancelled"===t.status)return void o(e=>({...e,...FO}));if(t.success)return void o(e=>({...e,isImporting:!1,waitingForInput:!0}));if("already-learned"===t.status)return void o(e=>({...e,isImporting:!1,alreadyLearned:!0,learnedSessionCount:t.learnedSessions||0,totalSessionCount:t.totalSessions||0,agentSessions:t.agentSessions||[],waitingForInput:!0}));const r=t.errors.join("\n");o(e=>({...e,isImporting:!1,waitingForInput:!0,error:r})),n.current&&n.current(r)}catch(t){if(e.isAborted())return;const r=e.handleFailure(t);o(e=>({...e,isImporting:!1,waitingForInput:!0,error:r})),n.current&&n.current(r)}finally{e.dispose(),r=!0}})(),()=>{e.dispose(),r||e.finishCancelled(),t.current===e&&(t.current=null)}},[]),{...r,cancelImport:s}},"useImportProcess");Ex();var jO,BO,WO=__name(({onEscape:e,onEnter:t,enabled:n=!0})=>{Ye((r,o)=>{n&&(o.escape&&e(),(o.return||"\n"===r)&&t())})},"useKeyboardInput");function getRuntime(){return jO??=createNodeRuntime()}function getStore(){return BO??=createOnboardingStore({runtime:getRuntime()})}async function checkOnboardingConditions2(){const e=await checkOnboardingConditions({runtime:getRuntime(),store:getStore()});return{shouldTrigger:e.shouldTrigger,reason:e.reason,sessionCount:e.sessionCount,hasTasteContent:e.hasTasteContent,agentSessions:e.agentSessions.map(e=>({agent:e.agent,sessionIds:[...e.sessionIds],displayName:e.displayName}))}}async function markOnboardingCompleted(){await getStore().markCompleted()}async function markOnboardingSkipped2(){await markOnboardingSkipped({runtime:getRuntime(),store:getStore()})}async function dismissOnboardingForeverForProject(){await getStore().dismissForever()}async function triggerTasteOnboarding({projectTrusted:e,onboardingComplete:t,isOnboardingMode:n,tasteOnboardingCheckedRef:r,setIsOnboardingMode:o}){if(e)if(t)dlog("[Onboarding] skipped - already completed");else if(n)dlog("[Onboarding] skipped - already showing");else if(r.current)dlog("[Onboarding] skipped - already checked this session");else{r.current=!0,dlog("[Onboarding] checking if taste learning should start...");try{const e=await checkOnboardingConditions2();if(!e.shouldTrigger)return void dlog("[Onboarding] not needed");dlog(`[Onboarding] starting taste learning (${e.reason})`),o(!0)}catch(e){dlog("[Onboarding] error",e)}}else dlog("[Onboarding] skipped - project not yet trusted")}Ex(),Px(),Ex(),Px(),__name(getRuntime,"getRuntime"),__name(getStore,"getStore"),__name(checkOnboardingConditions2,"checkOnboardingConditions"),__name(markOnboardingCompleted,"markOnboardingCompleted"),__name(markOnboardingSkipped2,"markOnboardingSkipped"),__name(dismissOnboardingForeverForProject,"dismissOnboardingForeverForProject"),__name(triggerTasteOnboarding,"triggerTasteOnboarding");var HO=__name(({autoLearn:e,onShouldSkip:t})=>{const[n,r]=et(null),[o,s]=et(null),[a,i]=et(void 0),l=tt(!1);return nt(()=>{if(l.current)return;let n=null;return(async()=>{try{l.current=!0,dlog("[Hook:Conditions] loading...");const n=await checkOnboardingConditions2();if(r(n),!n.shouldTrigger&&!e)return dlog("[Hook:Conditions] no trigger, skipping"),void t();dlog(`[Hook:Conditions] result: ${n.reason}, sessions: ${n.sessionCount}`)}catch(e){const r=e instanceof Error?e.message:String(e);dlog("[Hook:Conditions] error",r);const o=trackError({error:e instanceof Error?e:new Error(r),context:{component:co.LEARN_TASTE_COMMAND,heading:"Onboarding conditions check failed"}});i(o),s(r),n=setTimeout(()=>t(),2e3)}})(),()=>{n&&clearTimeout(n)}},[e,t]),{conditions:n,error:o,traceId:a,isLoading:!n&&!o}},"useOnboardingConditions");Ex(),Px();var GO=__name(({conditions:e,autoLearn:t})=>{const[n,r]=et("checking"),o=tt(!1);return nt(()=>{if(e&&!o.current){if(o.current=!0,t)return dlog("[Flow] autoLearn → learning"),void r("learning");dlog(`[Flow] → asking (${e.reason})`),r("asking")}},[e,t]),nt(()=>{dlog(`[Flow] step: ${n}`)},[n]),{step:n,setStep:r}},"useOnboardingFlow");async function completeOnboarding(e){try{await markOnboardingCompleted(),dlog("[Helper] onboarding marked complete")}catch(e){dlog(`[Helper] complete error: ${e instanceof Error?e.message:String(e)}`)}finally{Yu.reset(),e()}}async function skipOnboarding(e){try{await markOnboardingSkipped2(),dlog("[Helper] onboarding marked skipped")}catch(e){dlog(`[Helper] skip error: ${e instanceof Error?e.message:String(e)}`)}finally{Yu.reset(),e()}}Ex(),Px(),Ex(),Px(),__name(completeOnboarding,"completeOnboarding"),__name(skipOnboarding,"skipOnboarding");var VO=__name(({onStepChange:e,onError:t,onCompleteCallback:n})=>{const r=tt(n),o=ot(()=>{dlog("[Handler] import started → learning"),e("learning")},[e]),s=ot(async()=>{dlog("[Handler] import complete → done"),e("done"),await completeOnboarding(()=>r.current())},[e]),a=ot(e=>{dlog(`[Handler] import error: ${e}`),t(e)},[t]),i=ot(async()=>{dlog("[Handler] error dismissed by user → done"),e("done"),await skipOnboarding(()=>r.current({skipped:!0}))},[e]),l=ot(async()=>{dlog("[Handler] skipped → done"),e("done"),await skipOnboarding(()=>r.current({skipped:!0}))},[e]);return n!==r.current&&(r.current=n),{handleImportStart:o,handleImportComplete:s,handleImportError:a,handleErrorDismiss:i,handleSkip:l}},"useOnboardingHandlers");Ex(),Px();var zO=__name(e=>{const[t,n]=et(()=>createTasteImportProjection({initialSteps:e})),r=ot(e=>{n(t=>({...t,importError:e}))},[]);return nt(()=>{const t=__name(()=>{n(resetTasteImportProjection({initialSteps:e}))},"handleReset"),r=__name(e=>{n(t=>reduceTasteImportEvent({state:t,event:e}))},"handleNewEvent");return Yu.on("reset",t),Yu.on("new-event",r),()=>{Yu.off("reset",t),Yu.off("new-event",r)}},[e]),{steps:t.steps,importError:t.importError,importTraceId:t.importTraceId,setImportError:r}},"useProgressEvents");Ex(),Ex(),Ex();var qO=__name(({isImporting:e=!1,waitingForInput:t=!1})=>Xe.createElement(Xe.Fragment,null,e&&Xe.createElement(Ge,{marginTop:1},Xe.createElement(SA,null,"Esc to cancel")),t&&Xe.createElement(Ge,{marginTop:1},Xe.createElement(SA,null,"Press ",Xe.createElement(wA,null,"Enter")," to continue"))),"HelpTextSection");Ex(),Ex(),Ex(),Ex();var KO=__name(()=>{const[e,t]=et(!0);return nt(()=>{const e=setInterval(()=>{t(e=>!e)},500);return()=>clearInterval(e)},[]),Xe.createElement(Ve,{color:Rx.YELLOW},e?it.circleFilled:it.circle)},"PulsingDot");Ex();var YO=[it.bullet,it.squareSmallFilled,it.lozenge,it.star,it.triangleRight,it.triangleUp,it.circleFilled,it.pointer],JO=__name(e=>String(e).padStart(3," "),"padNum"),QO=__name(e=>YO[e%YO.length],"getSymbol"),XO=__name((e,t,n,r)=>r?`${e} observations (↑↓ scroll)`:`↑${JO(t)} ↓${JO(n)} (↑↓ scroll)`,"buildStatusLine"),ZO=__name(({insights:e})=>{const[t,n]=et(0),[r,o]=et(!0),s=e.length,a=s>10,i=Math.max(0,s-10),l=r&&a?i:t;if(Ye((e,t)=>{if(a){if(t.upArrow)return o(!1),void n(Math.max(0,l-1));if(t.downArrow){const e=Math.min(i,l+1);o(e===i),n(e)}}}),0===s)return null;const c=e.slice(l,l+10),d=l,u=s-l-10;return Xe.createElement(Ge,{flexDirection:"column",marginLeft:4,marginBottom:0},a&&Xe.createElement(Ve,{color:Rx.DIM},XO(s,d,u,r)),c.map((e,t)=>{const n=l+t;return Xe.createElement(Ge,{key:n,marginBottom:0},Xe.createElement(Ve,{color:Rx.DIM},QO(n)," ",e))}))},"ScrollableInsights");function getLabelColor(e,t){return e?Rx.WHITE:t?Rx.YELLOW:Rx.DIM}function formatCategorySuffix(e){if(0===e.length)return"";const t=1===e.length?"category":"categories";return` across ${e.length} ${t}`}__name(getLabelColor,"getLabelColor"),__name(formatCategorySuffix,"formatCategorySuffix");var eD=__name(({label:e,message:t,active:n,complete:r,items:o,insights:s,isIntro:a,isAllComplete:i,summary:l})=>{if(a)return Xe.createElement(Ge,{flexDirection:"column",marginBottom:0},Xe.createElement(xI,null),Xe.createElement(Ge,{marginTop:0},Xe.createElement(Ve,{color:Rx.DIM},EI),Xe.createElement(Ge,{marginLeft:2},i?Xe.createElement(Ve,{color:Dx.TEXT},"learned your coding taste"):Xe.createElement(wI,null))));const c=__name(()=>r?Xe.createElement(Ve,{color:_x.BG},it.square):n?Xe.createElement(KO,null):Xe.createElement(Ve,{color:Rx.DIM},it.circle),"getStatusIcon"),d=o.length>0||s.length>0||t||l&&l.learningCount>0;return!r||n||d?Xe.createElement(Ge,{flexDirection:"column",marginBottom:0},(n||r)&&Xe.createElement(Ge,{marginBottom:0},Xe.createElement(Ge,{marginRight:1},c()),Xe.createElement(Ve,{color:getLabelColor(r,n)},e)),r&&t&&(!l||0===l.learningCount)&&Xe.createElement(Ge,{marginLeft:3,marginBottom:0},Xe.createElement(Ve,{color:Rx.DIM},t)),o.length>0&&Xe.createElement(Ge,{flexDirection:"column",marginLeft:1,marginBottom:0},o.map(e=>Xe.createElement(Ve,{key:e,color:Rx.DIM},`${it.bullet} ${e}`))),s.length>0&&Xe.createElement(ZO,{insights:s}),r&&l&&l.learningCount>0&&Xe.createElement(Ge,{flexDirection:"column",marginLeft:1,marginBottom:0},Xe.createElement(Ge,{marginBottom:1,flexDirection:"row"},Xe.createElement(Ve,null,EI),Xe.createElement(Ge,{marginLeft:2},Xe.createElement(Ve,{color:Dx.TEXT},"Learned ",l.learningCount," preference",1===l.learningCount?"":"s",formatCategorySuffix(l.categories)))),Xe.createElement(Ge,{flexDirection:"column",marginLeft:1},Xe.createElement(Ve,{color:Rx.DIM},it.pointerSmall," Stored in ",l.storage),Xe.createElement(Ve,{color:Rx.DIM},"Command Code automatically uses & updates taste files.")))):null},"StepItem"),tD=__name(({steps:e})=>{const t=e.find(e=>"complete"===e.id)?.complete??!1;return Xe.createElement(Ge,{flexDirection:"column",marginBottom:1},e.map((e,n)=>Xe.createElement(Ge,{key:e.id,marginLeft:0===n?0:3},Xe.createElement(eD,{label:e.label,message:e.message,active:e.active,complete:e.complete,items:e.items,insights:e.insights,summary:e.summary,isIntro:0===n,isAllComplete:t}))))},"StepsSection"),nD=__name(({steps:e})=>Xe.createElement(tD,{steps:e}),"ProgressSection"),rD=__name(({onComplete:e,onCancel:t,onError:n,onErrorDismiss:r})=>{const{steps:o,importError:s,importTraceId:a}=zO(oM),{isImporting:i,waitingForInput:l,error:c,cancelImport:d}=UO(n);return WO({onEscape:__name(()=>{if(i)return d(),void t?.();l&&((c||s)&&r?r():e())},"onEscape"),onEnter:__name(()=>{l&&((c||s)&&r?r():e())},"onEnter"),enabled:i||l}),Xe.createElement(Ge,{flexDirection:"column",padding:1},s&&Xe.createElement(MO,{error:s,traceId:a}),!s&&Xe.createElement(nD,{steps:o}),Xe.createElement(qO,{isImporting:i,waitingForInput:l}))},"ImportProgress");async function runLearnTaste(){await applyStartupTheme();const{unmount:e}=Ke(Xe.createElement(rD,{onComplete:__name(()=>{e(),process.exit(0)},"onComplete"),onCancel:__name(()=>{e(),process.exit(0)},"onCancel"),onErrorDismiss:__name(()=>{e(),process.exit(1)},"onErrorDismiss")}))}__name(runLearnTaste,"runLearnTaste");var oD=new Le("learn-taste").description("Learn from your previous sessions - updates your taste profile").allowUnknownOption().allowExcessArguments().action(async()=>{try{await runLearnTaste()}catch(e){trackError({error:sanitizeErrorForTelemetry({error:e instanceof Error?e:new Error(String(e)),label:"learn_taste_render_failed"}),context:{component:co.LEARN_TASTE_COMMAND,heading:"Learn taste render failed"}}),dlog(`[/learn-taste] render failed: ${e instanceof Error?e.message:String(e)}`),await shutdownTelemetry(),process.exit(1)}});function getBinNames(){const e=getPackageJson(import.meta.url);return e.bin&&"object"==typeof e.bin?Object.keys(e.bin):e.bin&&"string"==typeof e.bin?[e.name??getBinaryCommand()]:[getBinaryCommand()]}function getInvokedCommandName(){try{const e=getBinNames(),n=process.argv[1];if(!n)return e[0]||getBinaryCommand();const r=t.basename(n).replace(/\.(m?[jt]s|cjs)$/,"");return e.includes(r)?r:e[0]||getBinaryCommand()}catch{return getBinaryCommand()}}function addMcpCommand(){const e=new Le("add");return e.description("Add an MCP server").argument("<name>","Server name (unique identifier)").argument("[url]","Server URL (required for http transport)").option("-t, --transport <type>","Transport type (stdio or http)","stdio").addOption(new Ne("-s, --scope <scope>","Configuration scope").choices(["local","project","user"]).default("local")).option("-e, --env <KEY=value>","Environment variable (repeatable)",collectKeyValue,{}).option("-H, --header <header>","HTTP header (repeatable, http only)",collectHeaders,{}).allowUnknownOption().allowExcessArguments().action(async(e,t,n,r)=>{const o=getInvokedCommandName();try{const s=await addMcpServerFromCliInput({name:e,url:t,transport:n.transport,scope:n.scope,env:n.env,headers:n.header,rawArgs:r.args,argv:process.argv,cliName:o,addMcpServer:addMcpServer,checkServerAuthRequirements:__name(async e=>{console.log(lt.gray("Checking server authentication requirements..."));const t=await checkCommandMcpServerAuthRequirements(e);return t.requiresAuth&&console.log(lt.cyan("Server requires OAuth authentication.")),t},"checkServerAuthRequirements"),registerOAuthClient:__name(async e=>(console.log(lt.gray("Registering OAuth client...")),registerCommandMcpOAuthClient({registrationEndpoint:e.registrationEndpoint,clientName:e.clientName,redirectUris:[...e.redirectUris]})),"registerOAuthClient"),performOAuthFlow:__name(async e=>{console.log(lt.gray("A browser window will open for authentication.\n"));const t=await performCommandMcpOAuthFlow(e.serverName,e.serverUrl,{authorizationUrl:e.config.authorizationUrl,tokenUrl:e.config.tokenUrl,clientId:e.config.clientId,clientSecret:e.config.clientSecret,scopes:e.config.scopes?[...e.config.scopes]:void 0},{onStatus:e.onStatus});return{success:t.success,token:t.tokens,error:t.error}},"performOAuthFlow"),onStatus:__name(e=>{console.log(lt.gray(` ${e}`))},"onStatus")});for(const e of s.warnings)console.log(lt.yellow(`Warning: ${e}`));"success"===s.authStatus&&console.log(lt.green("✓ Successfully authenticated")),"failed"===s.authStatus&&(console.log(lt.yellow(`Warning: Authentication failed: ${s.authError}`)),console.log(lt.gray(`You can retry with: ${getBinaryCommand()} mcp auth ${e}`)),console.log(lt.gray("Or authenticate via the /mcp menu in a session")));const a="failed"===s.authStatus?`✓ Added MCP server '${e}' to ${s.scopeLabel} config (authentication pending)`:`✓ Added MCP server '${e}' to ${s.scopeLabel} config`;console.log("failed"===s.authStatus?lt.yellow(a):lt.green(a)),console.log(lt.gray(` ${formatMcpCommandSummary(s.serverConfig)}`)),console.log(""),console.log(lt.cyan("Next steps:")),console.log(lt.gray(`Start ${o} and run /mcp to manage configured MCP servers.`))}catch(e){printMcpAddError(e,{cliName:o}),process.exit(1)}}),e}function printMcpAddError(e,t){if(e instanceof Ob)if(console.error(lt.red(`Error: ${e.message}`)),"invalid-name"!==e.code)if("invalid-transport"!==e.code){if("missing-http-url"!==e.code)return"missing-stdio-command"===e.code?(console.error(lt.gray(`Usage: ${t.cliName} mcp add --transport stdio <name> -- <command> [args...]`)),void console.error(lt.gray(` or: ${t.cliName} mcp add <name> <command> [args...]`))):void("stdio-command-is-url"!==e.code?"insecure-oauth-url"===e.code&&(console.error(lt.gray("OAuth requires https:// (http:// is only allowed for loopback hosts: localhost, 127.0.0.1, [::1]).")),console.error(lt.gray("Switch the URL to https:// or use a non-OAuth server."))):e.suggestedCommand&&console.error(lt.gray(`Did you mean: ${e.suggestedCommand}`)));console.error(lt.gray(`Usage: ${t.cliName} mcp add --transport http <name> <url>`))}else console.error(lt.gray("Valid options: stdio, http"));else console.error(lt.gray(Rb));else console.error(lt.red(`Error: ${e instanceof Error?e.message:String(e)}`))}function collectKeyValue(e,t){try{return addMcpKeyValue(e,t)}catch(e){printCollectError(e),process.exit(1)}}function collectHeaders(e,t){try{return addMcpHeader(e,t)}catch(e){printCollectError(e),process.exit(1)}}function printCollectError(e){console.error(lt.red(`Error: ${e instanceof Error?e.message:String(e)}`))}function addJsonMcpCommand(){const e=new Le("add-json");return e.description("Add an MCP server from JSON configuration").argument("<name>","Server name (unique identifier)").argument("<json>","Server configuration as JSON string").addOption(new Ne("-s, --scope <scope>","Configuration scope").choices(["local","project","user"]).default("local")).option("--client-secret <secret>","OAuth client secret (injected into oauth config)").action(async(e,t,n)=>{const r=getInvokedCommandName();try{const o=await addMcpServerFromJson({name:e,json:t,scope:n.scope,clientSecret:n.clientSecret,addMcpServer:addMcpServer,performOAuthFlow:__name(async e=>{console.log(lt.cyan("Starting OAuth authentication...")),console.log(lt.gray("A browser window will open for authentication.\n"));const t=await performCommandMcpOAuthFlow(e.serverName,e.serverUrl,{authorizationUrl:e.config.authorizationUrl,tokenUrl:e.config.tokenUrl,clientId:e.config.clientId,clientSecret:e.config.clientSecret,scopes:e.config.scopes?[...e.config.scopes]:void 0},{port:e.port,onStatus:e.onStatus});return{success:t.success,token:t.tokens,error:t.error}},"performOAuthFlow"),onStatus:__name(e=>{console.log(lt.gray(` ${e}`))},"onStatus")});"success"===o.authStatus&&console.log(lt.green(`\n✓ Successfully authenticated with '${e}'`)),"failed"===o.authStatus&&(console.error(lt.yellow(`\nWarning: Authentication failed: ${o.authError}`)),console.error(lt.gray(`You can retry with: ${r} mcp auth ${e}`)),console.error(lt.gray("Or authenticate via the /mcp menu in a session")));const s="failed"===o.authStatus?`✓ Added MCP server '${e}' to ${o.scopeLabel} config (authentication pending)`:`✓ Added MCP server '${e}' to ${o.scopeLabel} config`;console.log("failed"===o.authStatus?lt.yellow(s):lt.green(s)),console.log(lt.gray(` ${formatMcpCommandSummary(o.serverConfig)}`)),console.log(""),console.log(lt.cyan("Next steps:")),console.log(lt.gray(`Start ${r} and run /mcp to manage configured MCP servers.`))}catch(e){printMcpAddJsonError(e,{cliName:r}),process.exit(1)}}),e}function printMcpAddJsonError(e,t){if(e instanceof Ob)if(console.error(lt.red(`Error: ${e.message}`)),"invalid-name"!==e.code){if("invalid-json"===e.code)return console.error(lt.gray("Make sure to quote the JSON string properly")),void console.error(lt.gray(`Example: ${t.cliName} mcp add-json github '{"type":"stdio","command":"npx"}'`));if("invalid-config"===e.code&&e.issues)for(const t of e.issues)console.error(lt.gray(` ${t.path.join(".")}: ${t.message}`));else"missing-http-url"!==e.code&&e.code}else console.error(lt.gray(Rb));else console.error(lt.red(`Error: ${e instanceof Error?e.message:String(e)}`))}function authMcpCommand(){const e=new Le("auth");return e.description("Manage OAuth authentication for MCP servers").argument("[server]","Server name to authenticate").option("--status","Check authentication status").option("--clear","Clear stored authentication").option("--list","List servers with stored authentication").action(async(e,t)=>{const n=getInvokedCommandName();try{if(t.list)return void await printAuthList();if(e||(console.error(lt.red("Error: Server name is required")),console.error(lt.gray(`Usage: ${n} mcp auth <server>`)),console.error(lt.gray(` ${n} mcp auth --list`)),process.exit(1)),t.status)return void await printAuthStatus(e);if(t.clear)return(await clearMcpAuth({serverName:e,deleteTokens:deleteTokens})).deleted?void console.log(lt.green(`✓ Cleared authentication for '${e}'`)):void console.log(lt.yellow(`No authentication stored for '${e}'`));console.log(lt.cyan(`Authenticating with '${e}'...`)),console.log(lt.gray("A browser window will open for authentication.\n")),await authenticateConfiguredMcpServer({serverName:e,getMcpServer:getMcpServer,performOAuthFlow:__name(async e=>{const t=await performCommandMcpOAuthFlow(e.serverName,e.serverUrl,{authorizationUrl:e.config.authorizationUrl,tokenUrl:e.config.tokenUrl,clientId:e.config.clientId,clientSecret:e.config.clientSecret,scopes:e.config.scopes?[...e.config.scopes]:void 0},{onStatus:e.onStatus});return{success:t.success,token:t.tokens,error:t.error}},"performOAuthFlow"),discoverAndAuthenticate:discoverAndAuthenticateCommandMcpServer,onStatus:__name(e=>{console.log(lt.gray(` ${e}`))},"onStatus")}),console.log(lt.green(`\n✓ Successfully authenticated with '${e}'`)),console.log(lt.gray("Restart the session to connect with the authenticated server."))}catch(t){printMcpAuthError(t,{cliName:n,serverName:e}),process.exit(1)}}),e}async function printAuthList(){const e=await listMcpAuthStatuses({listServersWithTokens:listServersWithTokens,getTokens:getTokens,isTokenExpired:isTokenExpired});if(0!==e.length){console.log(lt.hex("#E4CCFF").bold("\nAuthenticated MCP Servers\n"));for(const t of e){const e=t.expired?lt.yellow("expired"):lt.green("valid");console.log(` ${t.serverName}: ${e}`)}console.log("")}else console.log(lt.yellow("No servers with stored authentication."))}async function printAuthStatus(e){const t=await getMcpAuthStatus({serverName:e,hasTokens:hasTokens,getTokens:getTokens,isTokenExpired:isTokenExpired});if("missing"!==t.status){if("expired"===t.status)return console.log(lt.yellow(`Authentication for '${e}' has expired`)),void(t.hasRefreshToken&&console.log(lt.gray(" A refresh token is available for re-authentication")));console.log(lt.green(`Authentication for '${e}' is valid`)),"number"==typeof t.expiresInMinutes&&console.log(lt.gray(` Expires in ${t.expiresInMinutes} minutes`)),t.scope&&console.log(lt.gray(` Scopes: ${t.scope}`))}else console.log(lt.yellow(`No authentication stored for '${e}'`))}function printMcpAuthError(e,t){if(e instanceof Ob)return"server-not-found"===e.code?(console.error(lt.red(`Error: ${e.message}`)),void console.error(lt.gray(`Use "${t.cliName} mcp list" to see configured servers`))):"auth-failed"===e.code?(console.error(lt.red(`\nError: ${e.message}`)),void(t.serverName&&console.log(lt.gray(`Try again with "${t.cliName} mcp auth ${t.serverName}"`)))):void console.error(lt.red(`Error: ${e.message}`));console.error(lt.red(`Error: ${e instanceof Error?e.message:String(e)}`))}function getMcpCommand(){const e=new Le("get");return e.description("Show details for an MCP server").argument("<name>","Server name").action(async e=>{try{const t=await getMcpServerDetails({name:e,getMcpServer:getMcpServer}),{config:n,scope:r}=t;if(console.log(lt.hex("#E4CCFF").bold(`\nMCP Server: ${e}\n`)),console.log(` ${lt.dim("Scope:")} ${r}`),console.log(` ${lt.dim("Transport:")} ${n.transport}`),console.log(` ${lt.dim("Status:")} ${n.enabled?lt.green("enabled"):lt.gray("disabled")}`),"http"===n.transport){if(console.log(` ${lt.dim("URL:")} ${n.url}`),t.headers.length>0){console.log(` ${lt.dim("Headers:")}`);for(const e of t.headers)console.log(` ${e.key}: ${e.value}`)}}else console.log(` ${lt.dim("Command:")} ${n.command}`),n.args&&n.args.length>0&&console.log(` ${lt.dim("Args:")} ${n.args.join(" ")}`);if(t.env.length>0){console.log(` ${lt.dim("Environment:")}`);for(const e of t.env)console.log(` ${e.key}=${e.value}`)}console.log("")}catch(e){e instanceof Ob&&(console.error(lt.red(`Error: ${e.message}`)),process.exit(1)),console.error(lt.red(`Error: ${e instanceof Error?e.message:String(e)}`)),process.exit(1)}}),e}function formatAuthIcon(e){return"authenticated"===e||"static"===e?lt.green(it.tick):"missing"===e?lt.red(it.cross):lt.gray("-")}function listMcpCommand(){const e=new Le("list");return e.description("List configured MCP servers").action(async()=>{try{const e=await listMcpServerSummaries({listMcpServers:listMcpServers,hasTokens:hasTokens});if(0===e.length)return console.log(lt.yellow("\nNo MCP servers configured\n")),console.log(lt.gray("Add a server with:")),console.log(lt.gray(` ${getBinaryCommand()} mcp add --transport http <name> <url>`)),console.log(lt.gray(` ${getBinaryCommand()} mcp add --transport stdio <name> -- <command>`)),void console.log(lt.gray("\nDocs: https://commandcode.ai/docs/mcp"));console.log(lt.hex("#E4CCFF").bold("\nMCP Servers\n"));const t=Math.max(4,...e.map(e=>e.name.length)),n=5,r=7;console.log(lt.dim(` ${"NAME".padEnd(t)} ${"TYPE".padEnd(n)} ${"SCOPE".padEnd(r)} AUTH STATUS`));for(const o of e){const e=o.enabled?lt.green("enabled"):lt.gray("disabled"),s=formatAuthIcon(o.authStatus);console.log(` ${lt.white(o.name.padEnd(t))} ${lt.cyan(o.transport.padEnd(n))} ${lt.gray(o.scope.padEnd(r))} ${s} ${e}`)}console.log(lt.dim(`\nTotal: ${e.length} server${1!==e.length?"s":""}\n`))}catch(e){console.error(lt.red(`Error: ${e instanceof Error?e.message:String(e)}`)),process.exit(1)}}),e}function removeMcpCommand(){const e=new Le("remove");return e.description("Remove an MCP server").argument("<name>","Server name").addOption(new Ne("-s, --scope <scope>","Scope to remove from (auto-detects if not specified)").choices(["local","project","user"])).action(async(e,t)=>{try{const n=await removeMcpServerByName({name:e,scope:t.scope,getMcpServer:getMcpServer,removeMcpServer:removeMcpServer});console.log(lt.green(`✓ Removed MCP server '${e}' from ${n.scopeLabel} config`))}catch(e){e instanceof Ob&&(console.error(lt.red(`Error: ${e.message}`)),process.exit(1)),console.error(lt.red(`Error: ${e instanceof Error?e.message:String(e)}`)),process.exit(1)}}),e}function createMcpCommand(){const e=new Le("mcp");return e.description("Manage MCP (Model Context Protocol) servers").allowUnknownOption().allowExcessArguments(),e.addCommand(addMcpCommand()),e.addCommand(listMcpCommand()),e.addCommand(getMcpCommand()),e.addCommand(removeMcpCommand()),e.addCommand(addJsonMcpCommand()),e.addCommand(authMcpCommand()),e}function shortenModPath(e,t){if(t){const n=a(t,e);if(n&&!n.startsWith("..")&&!i(n))return n}const n=a($(),e);return!n||n.startsWith("..")||i(n)?e:`~${l}${n}`}Ex(),Ex(),Px(),Ex(),Px(),__name(getBinNames,"getBinNames"),__name(getInvokedCommandName,"getInvokedCommandName"),__name(addMcpCommand,"addMcpCommand"),__name(printMcpAddError,"printMcpAddError"),__name(collectKeyValue,"collectKeyValue"),__name(collectHeaders,"collectHeaders"),__name(printCollectError,"printCollectError"),Ex(),Px(),__name(addJsonMcpCommand,"addJsonMcpCommand"),__name(printMcpAddJsonError,"printMcpAddJsonError"),Ex(),Px(),__name(authMcpCommand,"authMcpCommand"),__name(printAuthList,"printAuthList"),__name(printAuthStatus,"printAuthStatus"),__name(printMcpAuthError,"printMcpAuthError"),Ex(),Px(),__name(getMcpCommand,"getMcpCommand"),Ex(),Px(),__name(formatAuthIcon,"formatAuthIcon"),__name(listMcpCommand,"listMcpCommand"),Ex(),Px(),__name(removeMcpCommand,"removeMcpCommand"),__name(createMcpCommand,"createMcpCommand"),Ex(),Ex(),Px(),Ex(),Px(),__name(shortenModPath,"shortenModPath");var sD=__name(e=>e.split($()).join("~"),"shortenHomeInText");async function createModPathShortener(e){const t=await modsDirectoryPath({runtime:e,scope:"project"}),n=t?s(t,"..",".."):void 0;return e=>shortenModPath(e,n)}async function addAction(e,t){const n=createNodeRuntime(),r=t.global?"user":"project";try{const t=parseModSource(e);console.log(yt.dim(`Installing ${t.kind} mod source ${yt.reset(yt.cyan(e))} (${r})…`));const o=await installModSource({runtime:n,source:e,scope:r}),s=await createModPathShortener(n);console.log(`${yt.green(it.tick)} Installed ${yt.cyan(o.identity)}`),o.installedPath&&console.log(yt.dim(` ${s(o.installedPath)}`)),console.log(yt.dim(` Recorded in ${s(o.settingsPath)}`))}catch(e){console.error(`${yt.red(it.cross)} ${sD(e instanceof Error?e.message:String(e))}`),process.exit(1)}}__name(createModPathShortener,"createModPathShortener"),__name(addAction,"addAction");var aD=new Le("add").alias("install").description("Install a mod package (<npm-name>, owner/repo[@ref], or a local path)").argument("<source>","mod source: an npm package name, a git repo (owner/repo[@ref]), or a local path").option("-g, --global","install for all projects (user scope)").action(addAction);Ex(),Px(),Ex(),Ex();var iD=GR.map(e=>({name:`provider-${e.id}`,factory:__name(t=>{t.addProvider(e)},"factory")}));function updateNoticeMod(e){try{const t=readUpdatesConfig().pending;if(!t?.targetVersion)return;const n=getPackageJson(import.meta.url).version;if(t.targetVersion===n)return;e.ui.notify(`update available: v${t.targetVersion} (installing in the background — a restart applies it)`)}catch{}}function commandBuiltinMods(){return[...iD,{name:"update-notice",factory:updateNoticeMod}]}Ex(),Px(),__name(updateNoticeMod,"updateNoticeMod"),__name(commandBuiltinMods,"commandBuiltinMods");var lD=__name((e,t,n)=>` ${yt.cyan(e)} ${yt.dim(`· ${t} · ${n}`)}`,"formatModLine"),cD=__name((e,t)=>`${yt.bold(yt.white(e))} ${yt.dim(`(${t})`)}`,"formatSectionHeader");function scopeFor(e){const{entry:t}=e;if("project"===t.source)return"project";if("user"===t.source)return"user";if("path"===t.source)return"session";const n=modSourceForPath({statuses:e.sources,path:t.path});return n?.scope??"package"}function detailFor(e){const{entry:t}=e,n=e.disabled.has(t.name)?" (disabled)":"";if("package"===t.source){const r=modSourceForPath({statuses:e.sources,path:t.path});return`from ${r?.identity??"a package source"}${n}`}return`${shortenModPath(t.path,e.projectRoot)}${n}`}async function listAction(e){const t=createNodeRuntime(),n=await isCommandProjectSessionInitialized(),r=await discoverMods({runtime:t,includeProject:n}),o=await listModSources({runtime:t,includeProject:n}),a=new Set(r.disabled),i=await modsDirectoryPath({runtime:t,scope:"project"}),l=await modsDirectoryPath({runtime:t,scope:"user"}),c=i?s(i,"..",".."):void 0,d=["project","user","package","path"].flatMap(e=>r.entries.filter(t=>t.source===e));console.log(""),console.log(`${yt.bold(yt.white("Mods"))} ${yt.dim(`(${r.entries.length})`)}`),0===r.entries.length&&(console.log(""),console.log(yt.dim(" No mods loaded. Looking in:")),i&&console.log(yt.dim(` ${shortenModPath(i,c)} ${yt.white("(project)")}`)),l&&console.log(yt.dim(` ${shortenModPath(l,void 0)} ${yt.white("(user)")}`)),console.log(""),console.log(yt.dim(` Drop a .ts file in one (\`${getBinaryCommand()} mods open --user\`) or install a package: \`${getBinaryCommand()} mods add <source>\`.`)));for(const e of d)console.log(lD(e.name,scopeFor({entry:e,sources:o}),detailFor({entry:e,sources:o,projectRoot:c,disabled:a})));if(!0===e.builtin){const e=commandBuiltinMods();console.log(""),console.log(cD("Built-in",e.length));for(const t of e)console.log(lD(t.name,"builtin",a.has(t.name)?"disabled":"enabled"))}const u=new Set;if(o.length>0){const e=__name(e=>r.entries.some(t=>"package"===t.source&&void 0!==modSourceForPath({statuses:[e],path:t.path})),"contributes"),t=o.filter(t=>!t.installed||!e(t));if(t.length>0){console.log(""),console.log(cD("Package sources",t.length));for(const e of t){u.add(e.source);const t=e.installed?yt.yellow("installed, but provides no mods"):yt.yellow(`not installed — run \`${getBinaryCommand()} mods update\``);console.log(lD(e.identity,e.scope,t))}}}const m=r.warnings.filter(e=>!u.has(e.path));if(m.length>0){console.log(""),console.log(`${yt.bold(yt.yellow("Warnings"))} ${yt.dim(`(${m.length})`)}`);for(const e of m)console.log(` ${yt.cyan(shortenModPath(e.path,c))} ${yt.dim(`· ${e.reason}`)}`)}console.log("")}__name(scopeFor,"scopeFor"),__name(detailFor,"detailFor"),__name(listAction,"listAction");var dD=new Le("list").alias("ls").description("List the mods a session loads, and where each one comes from").addOption(new Ne("--builtin","also list Command Code's built-in mods").hideHelp()).action(listAction);async function openAction(e){const t=createNodeRuntime(),n=!0===e.user||!0===e.global;try{const r=n?void 0:await modsDirectoryPath({runtime:t,scope:"project"}),o=r??await modsDirectoryPath({runtime:t,scope:"user"});if(!o)throw new Error("Could not resolve a mods directory");const s=r?"project":"user";if(!0===e.path)return void console.log(o);await t.fs.mkdir({path:o}),await wt(o);const a=await createModPathShortener(t);console.log(`${yt.green(it.tick)} Opened ${yt.cyan(a(o))} ${yt.dim(`· ${s}`)}`)}catch(e){console.error(`${yt.red(it.cross)} ${sD(e instanceof Error?e.message:String(e))}`),process.exit(1)}}Ex(),Px(),__name(openAction,"openAction");var uD=new Le("open").description("Open the mods directory (project by default, --user for ~)").option("-u, --user","open the user mods directory (~/.commandcode/mods)").option("-g, --global","alias for --user").option("--path","print the directory path instead of opening it").action(openAction);async function removeAction(e,t){const n=createNodeRuntime();commandBuiltinMods().some(t=>t.name===e)&&(console.error(`${yt.red(it.cross)} ${yt.cyan(e)} is a built-in mod — it cannot be removed. Add it to ${yt.cyan('"mods": {"disabled": [...]}')} in settings.json to turn it off.`),process.exit(1));const r=await isCommandProjectSessionInitialized();try{const o=await removeMod({runtime:n,target:e,scope:t.global?"user":"project",includeProject:r});if(!o.removedFromSettings&&!o.removedPath)return void console.log(`${yt.yellow(it.warning)} ${yt.cyan(o.target)} is not configured (${o.scope} scope) — nothing to remove`);const s=await createModPathShortener(n);console.log(`${yt.green(it.tick)} Removed ${yt.cyan(o.target)} ${yt.dim(`· ${o.scope}`)}`),o.sourceIdentity&&o.sourceIdentity!==o.target&&console.log(yt.dim(` Removed its source ${o.sourceIdentity}`)),o.alsoRemoved&&o.alsoRemoved.length>0&&console.log(yt.dim(` That source also provided ${o.alsoRemoved.join(", ")}`)),o.removedPath&&console.log(yt.dim(` Deleted ${s(o.removedPath)}`)),o.removedFromSettings&&o.settingsPath&&console.log(yt.dim(` Updated ${s(o.settingsPath)}`))}catch(e){console.error(`${yt.red(it.cross)} ${sD(e instanceof Error?e.message:String(e))}`),process.exit(1)}}Ex(),Px(),__name(removeAction,"removeAction");var mD=new Le("remove").alias("rm").alias("uninstall").description("Remove a mod by its listed name or by its package source").argument("<target>","mod name from `mods list`, or the mod source (any spelling of it)").option("-g, --global","remove from user scope instead of project").action(removeAction);async function updateAction(){const e=createNodeRuntime(),t=await updateModSources({runtime:e,includeProject:await isCommandProjectSessionInitialized()});for(const e of t.updated)console.log(`${yt.green(it.tick)} ${yt.cyan(e)}`);for(const e of t.failures)console.error(`${yt.red(it.cross)} ${e.source} ${yt.dim(`· ${e.reason}`)}`);0===t.updated.length&&0===t.failures.length&&console.log(yt.dim("No mod package sources configured.")),t.failures.length>0&&process.exit(1)}Ex(),Px(),__name(updateAction,"updateAction");var pD=new Le("update").alias("up").description("Reinstall and reconcile every configured mod package").action(updateAction),gD=new Le("mods").description("Manage mods — loadable extensions from npm, git, or local paths").addCommand(aD).addCommand(mD).addCommand(dD).addCommand(pD).addCommand(uD);function resolveBundledRipgrepPath(){try{const e=pt(import.meta.url),{rgPath:t}=e("@vscode/ripgrep");if("string"==typeof t&&t.length>0&&y(t))return t}catch{}}function registerBundledRipgrep(){if(process.env[fl])return;const e=resolveBundledRipgrepPath();void 0!==e&&(process.env[fl]=e)}function findModelById(e){return Object.values(ZA).find(t=>t.id===e)}function getModelNotice(e){const t=findModelById(e);if(!t?.notice)return;const n=t.vendorLabel??cR[t.provider]??"the upstream provider";return t.notice.replaceAll("{name}",t.name).replaceAll("{vendor}",n)}function getProviderFromModel(e){return findModelById(e)?.provider??FA}function getAllModelOptions(){return Object.values(ZA)}function getModelGroupLabel(e){return e.vendorLabel??cR[e.provider]??e.provider}function groupModelsByDisplayOrder(e){const t=new Map;for(const n of e){const e=getModelGroupLabel(n),r=t.get(e)??[];r.push(n),t.set(e,r)}return[...dR.filter(e=>t.has(e)),...[...t.keys()].filter(e=>!dR.includes(e))].map(e=>({label:e,models:t.get(e)}))}function getModelGroupsInOrder(){return groupModelsByDisplayOrder(getAllModelOptions().filter(e=>!e.hidden))}function resolveKnownModelId2(e){const t=getCanonicalModelId(e);return findModelById(t)?t:void 0}function modelSupportsVision(e){const t=findModelById(getCanonicalModelId(e));return!t?.inputModalities||t.inputModalities.includes("image")}Ex(),Px(),__name(resolveBundledRipgrepPath,"resolveBundledRipgrepPath"),__name(registerBundledRipgrep,"registerBundledRipgrep"),Ex(),Px(),Ex(),Px(),Ex(),Px(),Ex(),Px(),Ex(),Px(),Ex(),__name(findModelById,"findModelById"),__name(getModelNotice,"getModelNotice"),__name(getProviderFromModel,"getProviderFromModel"),__name(getAllModelOptions,"getAllModelOptions"),__name(getModelGroupLabel,"getModelGroupLabel"),__name(groupModelsByDisplayOrder,"groupModelsByDisplayOrder"),__name(getModelGroupsInOrder,"getModelGroupsInOrder"),__name(resolveKnownModelId2,"resolveKnownModelId"),__name(modelSupportsVision,"modelSupportsVision");var hD=/[-@]\d{8}$/,fD="workers-ai/@cf/";function ossEntryMatches(e,t){return e.canonicalId.toLowerCase()===t||Object.values(e.providers).some(e=>"string"==typeof e&&e.toLowerCase()===t)}function tryResolveCanonical2(e){const t=(iR[e.toLowerCase()]??e).toLowerCase(),n=Object.values(ZA).find(e=>e.id.toLowerCase()===t);if(n)return n.id;const r=eR.find(e=>ossEntryMatches(e,t));return r?.canonicalId}function getCanonicalModelId(e){if(!e)return e;const t=e.startsWith(fD)?e.slice(fD.length):e,n=tryResolveCanonical2(t);if(n)return n;const r=t.replace(hD,"");return r===t?t:tryResolveCanonical2(r)??t}function getModelDisplayName(e){const t=getCanonicalModelId(e),n=Object.values(ZA).find(e=>e.id===t);return n?.name??e}async function handleEffortCommand(e,t){const n=e.currentModel,r=n?getSupportedEfforts(n):null,o=t.trim().toLowerCase();if(o&&n&&r){if(r.includes(o)){const t=o;return t!==getReasoningEffort(n)&&(await setReasoningEffort({modelId:n,effort:t}),NO(e.sessionId)?.recordEffortChange({model:n,effort:t}),e.setStaticKey(e=>e+1)),void e.setFeed(e=>[...e,Yp(`Reasoning effort set to ${t}.`)])}if(r.length>0)return void e.setFeed(e=>[...e,Yp(`Unknown effort "${t.trim()}". Supported: ${r.join(", ")}.`)])}const s=resolveEffortCommand({model:n,supportedEfforts:r,modelLabel:n?getModelDisplayName(n):void 0});"notice"!==s.kind?e.setShowEffortSelector(!0):e.setFeed(e=>[...e,Yp(s.message)])}async function applyEffortSetting(e,t){const n=e.trim().toLowerCase();if(!n)return{ok:!1,message:"Provide a level, e.g. --effort high."};const r=t?.model??getConfiguredModel(),o=getSupportedEfforts(r);return o&&0!==o.length?o.includes(n)?(await setReasoningEffort({modelId:r,effort:n}),{ok:!0,message:`Reasoning effort set to ${n} for ${getModelDisplayName(r)}.`}):{ok:!1,message:`Unknown effort "${e.trim()}". Supported: ${o.join(", ")}.`}:{ok:!1,message:`${getModelDisplayName(r)} has no adjustable reasoning effort.`}}function usePasteAwareChange(e){const{onChange:t,onPaste:n}=e,r=tt(!1);return ot(async e=>{const o=processBracketedPaste(e),s=n??t,a=__name(async()=>{r.current=!1;const e=await detectClipboardText();e?s(e):o.cleanedContent&&s(o.cleanedContent)},"applyPastedText");if(!o.isPasteStart||r.current)r.current&&!o.isPasteEnd||(r.current&&o.isPasteEnd?await a():t(e));else{if(r.current=!0,!o.isPasteEnd)return;await a()}},[t,n])}function extractDeviceCode2(e){const t=e.match(/copy\s+this\s+code:\s*([^\s]+)/i);return t?.[1]??null}__name(ossEntryMatches,"ossEntryMatches"),__name(tryResolveCanonical2,"tryResolveCanonical"),__name(getCanonicalModelId,"getCanonicalModelId"),__name(getModelDisplayName,"getModelDisplayName"),__name(handleEffortCommand,"handleEffortCommand"),__name(applyEffortSetting,"applyEffortSetting"),Ex(),Px(),Ex(),Px(),Ex(),Px(),Ex(),Px(),__name(usePasteAwareChange,"usePasteAwareChange"),__name(extractDeviceCode2,"extractDeviceCode");var yD=__name(({providerId:e,onSuccess:t,onCancel:n,onFailure:r})=>{const o=getProviderDisplayName(e),[s,a]=et("confirm"),[i,l]=et(""),[c,d]=et(""),[u,m]=et(""),[p,g]=et(""),[h,f]=et(null),y=tt(!1),S=tt(!0),w=tt(!1),k=tt(null),v=tt(null),C=tt(null),b=tt(!1);nt(()=>()=>{S.current=!1,k.current&&clearTimeout(k.current),C.current=null},[]);const E=ot(e=>{w.current||(w.current=!0,k.current=setTimeout(()=>{if(k.current=null,!S.current)return;const t=e.keepTerminalActive?{wait:!1,background:!0}:void 0;wt(e.authUrl,t).catch(()=>{S.current&&f(`Failed to open browser. Please manually open: ${e.authUrl}`)})},300))},[]),T=ot(async t=>{if(!S.current)return;if(l(t.url),t.prompt)return d(t.instructions),b.current=!0,m(t.prompt.label),a("paste"),E({authUrl:t.url,keepTerminalActive:!1}),new Promise(e=>{v.current=e});b.current=!1;const n=e===Fr.COPILOT?extractDeviceCode2(t.instructions):null;if(n){const e=await writeClipboardText(n);if(!S.current)return;d(`Logging into Copilot, use this code: ${n}${e?" (copied)":""}`)}else d(t.instructions);return a("open-browser"),new Promise(e=>{C.current=()=>{C.current=null,a("waiting"),wt(t.url).catch(()=>{S.current&&f(`Failed to open browser. Please manually open: ${t.url}`)}),e({})}})},[e,E]),P=tt(()=>{});P.current=()=>{providerLogin({provider:e,onPending:T}).then(async()=>{S.current&&(await persistProviderSelection(e),a("success"),t())}).catch(e=>{if(!S.current)return;const t=e instanceof Error?e.message:"Authentication failed";if(f(t),y.current=!1,v.current=null,r?.(t),b.current)return g(""),void P.current();a("error")})};const M=ot(e=>{g(e.trim())},[]),x=usePasteAwareChange({onChange:g,onPaste:M}),I=__name(()=>{if(!p.trim()||y.current||!v.current)return;y.current=!0,f(null);const e=v.current;v.current=null,e({code:p.trim()})},"handleSubmit");Ye((e,t)=>{if(t.escape)n();else{if("confirm"===s){if(t.return||"y"===e||"Y"===e)return a("connecting"),void P.current();"n"!==e&&"N"!==e||n()}"open-browser"===s&&t.return&&C.current?.()}});const A=Xe.createElement(Ge,{marginBottom:1},Xe.createElement(Ve,{bold:!0,color:Rx.CYAN},o," Authentication"));if("confirm"===s){const t=e===Fr.COPILOT?"This will get a GitHub sign-in code.":`This will open your browser to sign in with ${o}.`;return Xe.createElement(Ge,{flexDirection:"column"},A,Xe.createElement(Ge,{marginBottom:1},Xe.createElement(Ve,null,t)),Xe.createElement(Ge,{marginBottom:1},Xe.createElement(Ve,null,"Continue?",Xe.createElement(Ve,{color:Rx.DIM}," (Y/n)"))))}return"connecting"===s?Xe.createElement(Ge,{flexDirection:"column"},A,Xe.createElement(Ge,{marginBottom:1},Xe.createElement(Ve,{color:Rx.DIM},"Getting sign-in code…")),Xe.createElement(Ge,null,Xe.createElement(SA,null,"Press ",Xe.createElement(wA,null,"Esc")," to cancel"))):"paste"===s?Xe.createElement(Ge,{flexDirection:"column"},A,i&&Xe.createElement(Ge,{marginBottom:1},Xe.createElement(Ve,{color:Rx.DIM},"Login: "),Xe.createElement(fI,{url:i,text:"Open auth page ↗",color:Rx.CYAN})),c&&Xe.createElement(Ge,{marginBottom:1},Xe.createElement(Ve,{color:Rx.DIM},c)),h&&Xe.createElement(Ge,{marginBottom:1},Xe.createElement(bO,null,h)),Xe.createElement(Ge,null,Xe.createElement(Ve,null,u||"Authorization code",": "),Xe.createElement(TextInput,{mask:"*",focus:!0,value:p,onChange:x,onSubmit:I,placeholder:"Paste code here..."})),Xe.createElement(Ge,{marginTop:1},Xe.createElement(SA,null,"Press ",Xe.createElement(wA,null,"Enter")," to submit or"," ",Xe.createElement(wA,null,"Esc")," to cancel"))):"open-browser"===s?Xe.createElement(Ge,{flexDirection:"column"},A,c&&Xe.createElement(Ge,{marginBottom:1},Xe.createElement(Ve,{bold:!0,color:Rx.GREEN},c)),i&&e!==Fr.COPILOT&&Xe.createElement(Ge,{marginBottom:1},Xe.createElement(Ve,{color:Rx.DIM},"Login: "),Xe.createElement(fI,{url:i,text:"Open auth page ↗",color:Rx.CYAN})),Xe.createElement(Ge,{marginBottom:1},Xe.createElement(Ve,{color:Rx.DIM},e===Fr.COPILOT?"Press Enter to open GitHub and paste the code there.":"Press Enter to open browser")),Xe.createElement(Ge,null,Xe.createElement(SA,null,"Press ",Xe.createElement(wA,null,"Esc")," to cancel"))):"waiting"===s?Xe.createElement(Ge,{flexDirection:"column"},A,c&&Xe.createElement(Ge,{marginBottom:1},Xe.createElement(Ve,{bold:!0,color:Rx.GREEN},c)),i&&Xe.createElement(Ge,{marginBottom:1},Xe.createElement(Ve,{color:Rx.DIM},"Open: "),Xe.createElement(fI,{url:i,text:"Open auth page ↗",color:Rx.CYAN})),Xe.createElement(Ge,{marginBottom:1},Xe.createElement(Ve,{color:Rx.DIM},"Waiting for authorization…")),Xe.createElement(Ge,null,Xe.createElement(SA,null,"Press ",Xe.createElement(wA,null,"Esc")," to cancel"))):"error"===s?Xe.createElement(Ge,{flexDirection:"column"},A,Xe.createElement(Ge,{marginBottom:1},Xe.createElement(bO,null,h)),Xe.createElement(Ge,null,Xe.createElement(SA,null,"Press ",Xe.createElement(wA,null,"Esc")," to go back"))):null},"ProviderAuth");function makeProviderAuthComponent(e){const t=__name(({onSuccess:t,onCancel:n})=>Xe.createElement(yD,{providerId:e,onSuccess:t,onCancel:n}),"Bound");return t.displayName=`ProviderAuth(${e})`,t}__name(makeProviderAuthComponent,"makeProviderAuthComponent");var SD=Object.fromEntries(Object.entries(Co).map(([e,t])=>[e,{...t}]));function getProviderConfig(e){return SD[e]}async function getProviderAuthState(e){if(!e)return null;const t=getProviderConfig(e);return t?resolveProviderAuthState({displayName:t.displayName,requiresAuth:t.requiresAuth,checkAuth:t.checkAuth}):null}async function handleModelSelect({modelId:e,provider:t,setCurrentModel:n,setShowModelSelector:r,setStatus:o,modelNotificationTimer:s,setShowModelNotification:a,setCurrentProvider:i,setStaticKey:l,sessionId:c,setFeed:d,setContextUsage:u,setModelNotice:m}){try{const p=await applyCommandModelSelection({modelId:e,provider:t,sessionId:c,catalog:{getDisplayName:getModelDisplayName},deps:{getProviderAuthState:getProviderAuthState,getCurrentModel:getConfiguredModel,persistProvider:__name(async t=>{dlog(`[Model] Setting provider to ${t} for ${e}`),await updateUserConfig({provider:t})},"persistProvider"),persistDefaultModel:__name(async e=>{await persistDefaultModel({model:e})},"persistDefaultModel"),setSessionModel:setSessionModel,clearModelOverride:clearModelOverride,saveSessionModel:__name(async({sessionId:e,modelId:t})=>{await saveCommandSessionMeta({sessionId:e,meta:{model:t}})},"saveSessionModel"),onProviderPersisted:i,log:dlog}});if("auth-blocked"===p.status)return o(p.message),void r(!1);if(n(e),p.modelChanged&&(hardResetForResize(),l(e=>e+1)),r(!1),o(p.statusMessage),p.modelChanged&&m?.(getModelNotice(e)??null),p.modelChanged){const t=await reconcileCommandModelSelection({modelId:e,modelName:p.modelName,previousModel:p.previousModel,harness:c?NO(c):void 0,catalog:{getContextLimit:getContextLimit,supportsVision:modelSupportsVision},hasImagesInHistory:harnessHasImagesInHistory});u?.(t.contextUsage);for(const e of t.notices)d?.(t=>[...t,Yp(e.message)])}s.current&&clearTimeout(s.current),a(!0),s.current=setTimeout(()=>{a(!1),s.current=null},5e3)}catch(e){console.error("Failed to set model:",e),o("Failed to set model"),r(!1)}}function handleModelCancel({setShowModelSelector:e}){e(!1)}async function handleModelCommand(e,t){const n=t.trim();if(!n)return void e.setShowModelSelector(!0);const r=resolveKnownModelId2(n);if(!r)return e.setFeed(e=>[...e,Yp(`Unknown model "${n}" — opening the model picker so you can choose.`)]),void e.setShowModelSelector(!0);await handleModelSelect({modelId:r,provider:getProviderFromModel(r)||void 0,setCurrentModel:e.setCurrentModel??(()=>{}),setShowModelSelector:e.setShowModelSelector,setStatus:e.setStatus,modelNotificationTimer:{current:null},setShowModelNotification:__name(()=>{},"setShowModelNotification"),setStaticKey:e.setStaticKey,sessionId:e.sessionId,setFeed:e.setFeed,setContextUsage:e.setContextUsage,setModelNotice:e.setModelNotice})}async function applyModelSetting(e){const t=e.trim();if(!t)return{ok:!1,message:"Provide a model, e.g. --model gpt-5."};const n=resolveKnownModelId2(t);if(!n)return{ok:!1,message:`Unknown model "${t}". Run with --list-models to see the options.`};await persistDefaultModel({model:n});const r=getProviderFromModel(n);return r&&await updateUserConfig({provider:r}),{ok:!0,message:`Default model set to ${getModelDisplayName(n)}.`}}async function handleThemeSelect({theme:e,setShowThemeSelector:t,setStatus:n,setStaticKey:r}){t(!1);try{const t=resolveCliTheme(getCliTheme()),o=resolveCliTheme(e),s=t!==o;await setCliTheme({theme:e}),applyTuiTheme(o),s&&(FI(),hardResetForResize(),r(e=>e+1)),n(buildThemeStatusMessage(e))}catch{n(Xr)}}function handleThemeCancel({setShowThemeSelector:e}){e(!1)}async function handleThemeCommand(e,t){const n=t.trim().toLowerCase();n?Dr.includes(n)?await handleThemeSelect({theme:n,setShowThemeSelector:e.setShowThemeSelector,setStatus:e.setStatus,setStaticKey:e.setStaticKey}):e.setFeed(e=>[...e,Yp(`Unknown theme "${n}". Options: ${Dr.join(", ")}.`)]):e.setShowThemeSelector(!0)}async function applyThemeSetting(e){const t=e.trim().toLowerCase();return t?Dr.includes(t)?(await setCliTheme({theme:t}),{ok:!0,message:`Theme set to ${t}.`}):{ok:!1,message:`Unknown theme "${e.trim()}". Options: ${Dr.join(", ")}.`}:{ok:!1,message:"Provide a theme, e.g. --theme auto."}}SD.anthropic&&(SD.anthropic.authComponent=makeProviderAuthComponent(Fr.ANTHROPIC),SD.anthropic.checkAuth=async()=>{const{token:e}=await providerAuthHeaders({provider:Fr.ANTHROPIC});return!!e}),SD["github-copilot"]&&(SD["github-copilot"].authComponent=makeProviderAuthComponent(Fr.COPILOT),SD["github-copilot"].checkAuth=async()=>{const{token:e}=await providerAuthHeaders({provider:Fr.COPILOT});return!!e}),SD.codex&&(SD.codex.authComponent=makeProviderAuthComponent(Fr.CODEX),SD.codex.checkAuth=async()=>{const{token:e}=await providerAuthHeaders({provider:Fr.CODEX});return!!e}),__name(getProviderConfig,"getProviderConfig"),__name(getProviderAuthState,"getProviderAuthState"),__name(handleModelSelect,"handleModelSelect"),__name(handleModelCancel,"handleModelCancel"),__name(handleModelCommand,"handleModelCommand"),__name(applyModelSetting,"applyModelSetting"),Ex(),Px(),__name(handleThemeSelect,"handleThemeSelect"),__name(handleThemeCancel,"handleThemeCancel"),__name(handleThemeCommand,"handleThemeCommand"),__name(applyThemeSetting,"applyThemeSetting");var wD=[{key:"model",apply:__name(e=>applyModelSetting(e),"apply")},{key:"effort",valueHint:"level",description:"Set reasoning effort for the session (e.g. low, medium, high) — depends on the model",apply:__name((e,t)=>applyEffortSetting(e,t),"apply")},{key:"theme",valueHint:"theme",description:"Set the color theme (dark or light)",apply:__name(e=>applyThemeSetting(e),"apply")}],kD=__name(e=>`--${e.key} <${e.valueHint}>`,"flagSpecOf"),vD=wD.filter(e=>void 0!==e.valueHint&&void 0!==e.description);async function applyConfigSetting(e){const t=e.indexOf("=");if(t<1)return{ok:!1,message:"Use --config key=value, e.g. --config theme=dark."};const n=e.slice(0,t).trim().toLowerCase(),r=e.slice(t+1).trim(),o=wD.find(e=>e.key===n);if(o)return o.apply(r);const s="true"===r||"false"!==r&&r;try{return await updateConfigSetting({id:n,value:s}),{ok:!0,message:`Set ${n} = ${r}.`}}catch(e){return{ok:!1,message:e instanceof Error?e.message:`Could not set config "${n}".`}}}__name(applyConfigSetting,"applyConfigSetting");var CD=getPackageJson(import.meta.url),bD=__name((e,t=[])=>[...t,e],"collectAddDir"),ED=__name((e,t=[])=>[...t,e],"collectConfig");function displayCustomHelp(){const e=CD.version,t=getInvokedCommandName(),n=getVisibleSlashCommands();console.log(),console.log(lt.bold("Command Code")+lt.gray(` v${e}`)),console.log(lt.gray(Ms)),console.log(),console.log(lt.bold("Usage")),console.log(` ${t} <command> [options]`),console.log(),console.log(lt.bold("Options"));for(const e of Ds){const n=e.key.replace(/^cmd/,t);console.log(" "+n.padEnd(xs)+lt.gray(e.description))}console.log(),console.log(lt.bold("Commands"));for(const e of Ns){const n=e.key.replace(/^cmd/,t);console.log(" "+n.padEnd(xs)+lt.gray(e.description))}console.log(),console.log(lt.bold("Slash Commands"));for(const e of n)console.log(" "+e.key.padEnd(xs)+lt.gray(e.description));console.log(),console.log(lt.bold("Keyboard Shortcuts"));for(const e of Os)console.log(" "+e.key.padEnd(xs)+lt.gray(e.description));console.log(),console.log(lt.bold("Examples"));for(const e of _s){const n=e.key.replace(/^cmd/,t);console.log(" "+n.padEnd(xs)+lt.gray(e.description))}console.log(),console.log(lt.cyan("❯")+" "+lt.gray(Is.replace(/cmd/,t))),console.log(),console.log(lt.bold("Links"));for(const e of $s)console.log(" "+e.key.padEnd(xs)+lt.cyan(e.description));console.log()}function createProgram(){const e=new Le;e.name(getInvokedCommandName()).description("Command Code with your coding taste.").version(CD.version??"0.0.0","-v, --version","display the version number").argument("[prompt]","Your prompt to run in interactive mode").option("-r, --resume [name]","Resume a session by id or name, or pick from history").option("--sessions [name]","Alias of --resume — resume a session by id or name, or pick from history").option("-c, --continue"," Continue the most recent session in the current directory").option("--fork-session","With --resume/--continue, fork the session into a new one (original left untouched)").option("--session <path|id>","Resume a session by transcript path (.jsonl) or a unique session-id prefix").option("--no-session","Don't persist this session to disk (in-memory only)").option("-n, --name <name>","Set the session display name").option("-t, --trust","Trust the project (skip initial trust permission prompt)").addOption(new Ne("--dangerously-skip-permissions","Bypass all permission prompts (use with caution)").hideHelp()).addOption(new Ne("--yolo","Bypass all permission prompts (alias for --dangerously-skip-permissions)").implies({dangerouslySkipPermissions:!0})).option("--plan","Start in plan mode (read-only exploration and planning)").addOption(new Ne("--auto-accept","Start in auto-accept mode").implies({permissionMode:"auto-accept"})).addOption(new Ne("--permission-mode <mode>","Set permission mode").choices(["default","standard","plan","auto-accept","dont-ask"])).option("--skip-onboarding","Skip taste onboarding (for non-interactive/automated runs)").option("-p, --print [query]","Run in non-interactive mode, output response and exit").option("--max-turns <number>",`Max agentic turns (model API round trips): print mode limit (default ${Ts}); interactive mode sets the /goal turn budget (default 100)`,e=>{const t=parseInt(e,10);if(isNaN(t)||t<1)throw new $e("--max-turns must be a positive integer");return t}).option("--verbose","Stream tool execution progress to stderr in print mode").option("--tools-all","Print mode: enable every tool, including the ones a headless run withholds").option("--tools-enable <names>","Print mode: enable specific withheld tools by name, comma-separated (e.g. ask_user_question,exit_plan_mode); repeatable",bD,[]).addOption(new Ne("--output-format <format>","Print-mode output: text (default) or json — newline-delimited AgentEvent frames plus one final result line").choices(["text","json"])).option("--ide-setup",As).option("--no-auto-update","Disable automatic background updates for this run").option("--add-dir <directory>","Add directory to workspace context",bD,[]).option("-w, --worktree [name]","Run this session in an isolated git worktree (managed under ~/.commandcode/worktrees/). Accepts a name, a path, or a PR (#1234). Generates a name when omitted.").option("--mod <path>","Load a mod file or directory for this session (repeatable)",bD,[]).option("--mod-option <name=value>","Set a mod-declared flag value (repeatable)",bD,[]).option("--skill <path>","Load extra skills from a path (a skill directory or a directory of skills); repeatable",bD,[]).option("--no-skills","Skip skill discovery; paths given via --skill still load").option("-m, --model <model>","Run on a specific model this session (e.g. claude-sonnet-4-6, kimi-k2.5). Unknown ids are rejected; see --list-models.").option("--list-models","List the models available for use").addOption(new Ne("--benchmark-output <path>","Path to write benchmark metrics JSON").hideHelp()).addOption(new Ne("--experimental","Enable experimental features").hideHelp()).addOption(new Ne(So).hideHelp()).addOption(new Ne(wo).hideHelp()).addOption(new Ne("-d, --debug","Enable debug mode").hideHelp()).addOption(new Ne("--local","Use local server").hideHelp()).addOption(new Ne("--staging","Use staging server").hideHelp()).helpOption("-h, --help","Display help message").allowUnknownOption();for(const t of vD)e.option(kD(t),t.description);return e.option("--config <key=value>","Set a setting headlessly, e.g. --config theme=dark (repeatable)",ED),e.configureHelp({formatHelp:__name(()=>(displayCustomHelp(),""),"formatHelp")}),e}__name(displayCustomHelp,"displayCustomHelp"),__name(createProgram,"createProgram");var TD=null;function commandPath(e){const t=[];let n=e;for(;null!==n&&null!==n.parent;)t.unshift(n.name()),n=n.parent;return t.join(" ")}function flagNames(e){return Object.entries(e.opts()).filter(([,e])=>void 0!==e&&!1!==e).map(([e])=>`--${e}`).join(" ")}function failPendingCommandSpan(e){null!==TD&&(recordError({span:TD,error:sanitizeErrorForTelemetry({error:e,label:"command_error"})}),TD.end(),TD=null)}function abandonPendingCommandSpan(){null!==TD&&(TD.setAttribute("cmd.command.outcome","abandoned"),TD.end(),TD=null)}function setupCommanderHooks(e){e.hook("preAction",(e,t)=>{dlogSection("cmd");const n=t.name(),r=t.parent?.name();dlog(`[cmd] ${r&&r!==n?"subcommand":"running"}: ${n}`);const o=t.opts(),s=Object.entries(o).filter(([,e])=>void 0!==e&&!1!==e).map(([e,t])=>!0===t?`--${e}`:`--${e}=${t}`).join(" ");s&&dlog(`[cmd] options: ${s}`);const a=t.args;a.length>0&&dlog(`[cmd] arguments: ${a.join(" ")}`);const i=commandPath(t);if(!i)return;const l=flagNames(t);TD=createSpan({name:`command:${i}`,attributes:{"cmd.command.name":i,"cmd.command.arg_count":a.length,...l?{"cmd.command.args":l}:{}}})}),e.hook("postAction",()=>{dlogSection("Done"),null!==TD&&(endSpan({span:TD,status:"success"}),TD=null)})}__name(commandPath,"commandPath"),__name(flagNames,"flagNames"),__name(failPendingCommandSpan,"failPendingCommandSpan"),__name(abandonPendingCommandSpan,"abandonPendingCommandSpan"),__name(setupCommanderHooks,"setupCommanderHooks");var{red:PD,yellow:MD,dim:xD}=lt;function printErrorDetails(e,t){if(console.log(`${vt.error} ${PD(t)}`),console.log(`${vt.error} ${PD("ERROR →")} ${e.name}`),console.log(`${vt.info} ${PD("REASON →")} ${e.message}`),console.log(`${vt.info} ${PD("ERROR STACK ↓ \n")} ${e.stack}\n`),!isTelemetryInitialized())return;const n=getDisplayTraceId();console.log(`${vt.info} ${xD(`Trace ID: ${n}`)}`),console.log(`${xD(" Share this ID with support to help debug your issue.")}\n`)}__name(printErrorDetails,"printErrorDetails");var ID=__name(e=>{const{heading:t="ERROR: ",error:n,displayError:r=!0,exit:o=!0,skipTelemetry:s=!1}=e;if(n){if(s||trackCliError({error:n,heading:t}),failPendingCommandSpan(n),console.log(),r||console.log(`${vt.warning} ${MD(t)}\n`),r&&printErrorDetails(n,t),!o)return!1;process.exit(0)}},"handleError");function handleUnhandledErrors(){process.on("unhandledRejection",e=>{const t=e instanceof Error?e:new Error(String(e));trackError({error:sanitizeErrorForTelemetry({error:t,label:"unhandled_rejection"}),context:{component:co.UNHANDLED_REJECTION,heading:"Unhandled Promise Rejection"}}),ID({heading:St`CRITICAL: Unhandled Promise Rejection!
|
|
14
|
+
`,cA=getMaxLineWidth(lA),dA=sA,uA=__name(e=>{const t=e??getTerminalWidth();return t>=oA?"full":t>=dA?"compact":"minimal"},"getHeaderLayout");new Set(["dark","light"]),Ex(),Px();var mA=!1;async function resolveStartupTheme(){return mA||(mA=!0,setDetectedTerminalTheme(await detectTerminalTheme())),resolveCliTheme(getCliTheme())}async function applyStartupTheme(){const e=await resolveStartupTheme();return applyTuiTheme(e),e}function useAuthFlow(e){const{onSuccess:t,onFailure:n,onCancel:r,timeout:o=po}=e,[s,a]=et("initializing"),[i,l]=et("Starting authentication..."),[c,d]=et(""),[u,m]=et(null),p=tt(t),g=tt(n),h=tt(r);nt(()=>{p.current=t,g.current=n,h.current=r});const f=tt(null);f.current??=createAuthFlowController({timeoutMs:o,openBrowser:__name(e=>wt(e),"openBrowser"),onAuthStateChange:a,onStatusMessageChange:l,onBrowserUrlChange:m,onSuccess:__name(({config:e,source:t})=>p.current(e,t),"onSuccess"),onFailure:__name(({reason:e,message:t})=>g.current(e,t),"onFailure"),onCancel:__name(()=>h.current(),"onCancel")});const y=f.current,S=ot(()=>{y.cancel()},[y]),w=ot(e=>y.submitApiKey(e),[y]);return nt(()=>(y.start(),()=>{y.dispose()}),[y]),{authState:s,statusMessage:i,browserUrl:u,apiKeyInput:c,setApiKeyInput:d,handleApiKeySubmit:w,cancel:S,hasCompleted:y.hasCompleted()}}function useCursorState({value:e,focus:t,showCursor:n,initialCursor:r}){const[o,s]=et(r??(e||"").length),a=tt(o),i=tt(e);nt(()=>{const r=i.current;if(i.current=e,e===r)return;if(!t)return;if(!n)return;const l=(e||"").length;o>l&&(s(l),a.current=l)},[e,t,n,o]);const l=ot(e=>{s(e),a.current=e},[]);return{cursor:o,setCursor:l,cursorRef:a}}function useRawStdinHandler({focus:e,valueRef:t,cursorRef:n,onUpdate:r,setHandled:o,stripBracketedPaste:s=!1}){const a=tt(!1);nt(()=>{if(!e)return;const i=process.stdin,l=__name(e=>{o(!0);const t=clampCursor(e.cursor,e.value.length);r(e.value,t),setTimeout(()=>o(!1),0)},"emitStdinResult"),c=__name(e=>{const r=e.toString();if(s){const e=processBracketedPasteInput({input:r,value:t.current,cursor:n.current});if(e.handled)return void l(e)}const o=processRawInput(r,t.current,n.current);o.handled&&l(o)},"handleRawInput");if(i.on("data",c),!a.current&&hasBufferedInput()){a.current=!0;const e=consumeBufferedInput();e&&c(Buffer.from(e))}return stopEarlyInputCapture(),()=>{i.off("data",c)}},[e,t,n,r,o,s])}function useInkInputHandler({focus:e,showCursor:t,valueRef:n,cursorRef:r,isHandledByStdin:o,onUpdate:s,onSubmit:a}){Ye((e,i)=>{if(o())return;if(isIgnoredKey(e,i))return;if(i.return)return void(i.shift||i.ctrl||i.meta||a?.(n.current));const l=processInkInput(e,i,n.current,r.current,t);if(!l.handled)return;const c=clampCursor(l.cursor,l.value.length);s(l.value,c)},{isActive:e})}function useSyncedRef(e){const t=tt(e);return t.current=e,t}function useEchoAwareValueRef(e){const t=tt(e),n=tt([]),r=n.current.indexOf(e);return-1!==r&&n.current.splice(0,r+1),-1===r&&t.current!==e&&(t.current=e,n.current=[]),{valueRef:t,noteEmittedValue:ot(e=>{n.current.push(e),n.current.length>64&&n.current.shift()},[])}}__name(resolveStartupTheme,"resolveStartupTheme"),__name(applyStartupTheme,"applyStartupTheme"),Ex(),Ex(),Px(),__name(useAuthFlow,"useAuthFlow"),Ex(),Px(),Ex(),Px(),Ex(),Px(),__name(useCursorState,"useCursorState"),__name(useRawStdinHandler,"useRawStdinHandler"),__name(useInkInputHandler,"useInkInputHandler"),__name(useSyncedRef,"useSyncedRef"),__name(useEchoAwareValueRef,"useEchoAwareValueRef"),Ex(),Px();var pA=lt.hex(Rx.DIM),gA=__name(e=>lt.hex(Yx.CODE)(e),"accentHex"),hA=/^\/[A-Za-z0-9][\w/:-]*/,fA=/(^|\s)(@\S+)/g;function pastedTokenRanges(e,t){const n=[],r=new RegExp(qE.source,"g");let o;for(;null!==(o=r.exec(e));)n.push({start:o.index,end:o.index+o[0].length,link:null,color:"dim"});if(t&&t.size>0){const r=new RegExp(KE.source,"g");for(;null!==(o=r.exec(e));){const e=Number(o[1]);if(!t.has(e))continue;const r=t.get(e)??null;n.push({start:o.index,end:o.index+o[0].length,link:r?fileUrl(r):null,color:"dim"})}}return n.sort((e,t)=>e.start-t.start)}function accentTokenRanges(e,t,n){const r=__name((e,n)=>t.some(t=>e<t.end&&n>t.start),"overlapsOccupied"),o=__name(e=>!n||n(e),"isAccentedCommand"),s=[],a=hA.exec(e);a&&!r(0,a[0].length)&&o(a[0])&&s.push({start:0,end:a[0].length,link:null,color:"accent"});const i=new RegExp(fA.source,"g");let l;for(;null!==(l=i.exec(e));){const e=l.index+l[1].length,t=e+l[2].length;r(e,t)||s.push({start:e,end:t,link:null,color:"accent"})}return s}function renderPlainSpan(e,t,n,r,o){let s="";for(let a=t;a<n;a++){const t=e[a];s+=o&&a===r?"\n"===t?yt.inverse(" ")+"\n":yt.inverse(t):t}return s}function renderTokenSpan(e,t,n,r,o,s="dim"){const a="accent"===s?gA:pA;return o&&r>=t&&r<n?a(e.slice(t,r))+yt.inverse(e[r])+a(e.slice(r+1,n)):a(e.slice(t,n))}function renderPlaceholder(e,t){return t?0===e.length?yt.inverse(" "):yt.inverse(e[0])+pA(e.slice(1)):pA(e)}function renderValue(e,t,n,r,o){const s=pastedTokenRanges(e,r),a=[...s,...accentTokenRanges(e,s,o)].sort((e,t)=>e.start-t.start);if(!n&&0===a.length)return e;if(n&&0===e.length)return yt.inverse(" ");let i="",l=0;for(const{start:r,end:o,link:s,color:c}of a){i+=renderPlainSpan(e,l,r,t,n);const a=renderTokenSpan(e,r,o,t,n,c);i+=s?createOSC8Link(s,a,!1):a,l=o}return i+=renderPlainSpan(e,l,e.length,t,n),n&&t===e.length&&(i+=yt.inverse(" ")),i}function wrapWithIndent(e,t,n){if(t<=n)return e;const r=" ".repeat(n),o=t-n,s=t;if(mt(e).length<=s)return e;const a=e.split(/(\s+)/);let i="",l=0,c=!0;for(const e of a){const t=mt(e).length;if(l+t>(c?s:o)&&l>0&&(i+="\n"+r,l=n,c=!1),i+=e,l+=t,e.includes("\n")){const t=e.substring(e.lastIndexOf("\n")+1);l=mt(t).length,c=!0}}return i}function getDisplayValue(e,t,n,r,o,s,a){const i=r&&o;return 0===e.length&&t?renderPlaceholder(t,i):renderValue(e,n,i,s,a)}function getMaskedValue(e,t){return t?t.repeat(e.length):e}__name(pastedTokenRanges,"pastedTokenRanges"),__name(accentTokenRanges,"accentTokenRanges"),__name(renderPlainSpan,"renderPlainSpan"),__name(renderTokenSpan,"renderTokenSpan"),__name(renderPlaceholder,"renderPlaceholder"),__name(renderValue,"renderValue"),__name(wrapWithIndent,"wrapWithIndent"),__name(getDisplayValue,"getDisplayValue"),__name(getMaskedValue,"getMaskedValue"),Px();var yA={white:yt.white,green:yt.green,red:yt.red,blue:yt.blue,yellow:yt.yellow,cyan:yt.cyan,magenta:yt.magenta,gray:yt.gray,grey:yt.gray};function TextInput({value:e,placeholder:t="",focus:n=!0,mask:r,showCursor:o=!0,onChange:s,onSubmit:a,onCursorChange:i,prefix:l="",prefixColor:c,singleLine:d=!1,maxWidth:u,stripBracketedPaste:m=!1,disablePasteRouting:p=!1,initialCursor:g,imageTokenLinks:h,isRecognizedSlashCommand:f}){const y=tt(!1),{valueRef:S,noteEmittedValue:w}=useEchoAwareValueRef(e),k=useSyncedRef(s),{cursor:v,setCursor:C,cursorRef:b}=useCursorState({value:e,focus:n,showCursor:o,initialCursor:g});Xe.useEffect(()=>{i?.(v)},[v,i]);const E=ot((e,t)=>{C(t),e!==S.current&&(w(e),S.current=e,k.current(e))},[C,S,k,w]),T=ot(e=>{y.current=e},[]),P=ot(()=>y.current,[]);useRawStdinHandler({focus:n,valueRef:S,cursorRef:b,onUpdate:E,setHandled:T,stripBracketedPaste:m}),Xe.useEffect(()=>{if(n&&!p)return registerPasteConsumer(e=>{if(y.current)return;const t=e.replace(/\r\n/g,"\n").replace(/\r/g,"\n"),n=insertTextAt(S.current,b.current,t);E(n.text,n.cursor)})},[n,p,S,b,E]),useInkInputHandler({focus:n,showCursor:o,valueRef:S,cursorRef:b,isHandledByStdin:P,onUpdate:E,onSubmit:a});const{stdout:M}=qe(),x=M?.columns??80,I=getMaskedValue(e,r),A=c?yA[c]:void 0,R=l?A?A(l):l:"",O=getDisplayValue(I,t,v,o,n,h,f),D=l?.length??0,L=R+O;if(d){const e=L.replace(/\n/g," ");return null!=u?Xe.createElement(Ge,{width:u},Xe.createElement(Ve,{wrap:"truncate"},e)):Xe.createElement(Ve,{wrap:"truncate"},e)}const N=wrapWithIndent(L,x,D);return Xe.createElement(Ve,{wrap:"wrap"},N)}__name(TextInput,"TextInput"),Ex();var SA=__name(({children:e})=>Xe.createElement(Ve,{italic:!0,color:Rx.DIM},e),"HintText"),wA=__name(({children:e})=>Xe.createElement(Ve,{bold:!0},e),"HintKey"),kA=__name(({hints:e,marginTop:t=1})=>{const n=e.filter(e=>null!=e&&!1!==e&&""!==e);return 0===n.length?null:Xe.createElement(Ge,{marginTop:t},Xe.createElement(SA,null,n.map((e,t)=>Xe.createElement(Xe.Fragment,{key:t},t>0&&" · ",e))))},"HintBar"),vA=Xe.memo(({authState:e,browserUrl:t,apiKeyInput:n,setApiKeyInput:r,handleApiKeySubmit:o})=>{const s="waiting_browser"===e||"manual_entry"===e||"invalid_key"===e,a=t&&("waiting_browser"===e||"manual_entry"===e);return Xe.createElement(Xe.Fragment,null,s&&Xe.createElement(Ge,{flexDirection:"column"},Xe.createElement(Ge,{borderStyle:"single",borderColor:"manual_entry"===e||"invalid_key"===e?Rx.YELLOW:Rx.GRAY,paddingX:1},Xe.createElement(Ve,{color:Rx.DIM},"API Key: "),Xe.createElement(Ge,{flexGrow:1},Xe.createElement(TextInput,{value:n,onChange:r,onSubmit:o,placeholder:"Paste your API key...",mask:"*",showCursor:!0}))),Xe.createElement(Ge,{marginTop:1},Xe.createElement(Ve,{color:Rx.DIM},getCommandAuthHelpText(e))),a&&Xe.createElement(Ge,{marginTop:1,flexDirection:"column"},Xe.createElement(Ve,{color:Rx.DIM},getCommandAuthUrlLabel(e)),Xe.createElement(fI,{url:t,text:t,color:Rx.CYAN,dimColor:!0}))),"validating"===e&&Xe.createElement(Ge,{marginTop:1},Xe.createElement(Ve,{color:Rx.DIM},"Checking API key with server...")),("waiting_browser"===e||"manual_entry"===e||"invalid_key"===e)&&Xe.createElement(Ge,{marginTop:1},Xe.createElement(SA,null,"ctrl+c to cancel")))});vA.displayName="AuthInputSection";var CA=__name(({authState:e,statusMessage:t,browserUrl:n,apiKeyInput:r,setApiKeyInput:o,handleApiKeySubmit:s})=>{const a=__name(()=>"waiting_browser"===e?Xe.createElement(Ve,{color:Rx.CYAN},it.ellipsis):"browser_success"===e||"success"===e?Xe.createElement(Ve,{color:Rx.GREEN},it.tick):"denied"===e||"invalid_key"===e?Xe.createElement(Ve,{color:Rx.RED},it.cross):"manual_entry"===e?Xe.createElement(Ve,{color:Rx.YELLOW},it.arrowDown):"error"===e?Xe.createElement(Ve,{color:Rx.RED},it.warning):Xe.createElement(gt,{type:"dots"}),"getStatusIcon"),i=__name(()=>getCommandAuthStatusColor(e),"getStatusColor");return"browser_success"===e||"success"===e||"denied"===e?null:Xe.createElement(Ge,{flexDirection:"column",paddingY:1},Xe.createElement(Ge,{marginBottom:1},Xe.createElement(Ge,{marginRight:1},a()),Xe.createElement(Ve,{color:i()},t)),Xe.createElement(vA,{authState:e,browserUrl:n,apiKeyInput:r,setApiKeyInput:o,handleApiKeySubmit:s}))},"AuthFlowUI"),bA=__name(({onComplete:e})=>{const{authState:t,statusMessage:n,browserUrl:r,apiKeyInput:o,setApiKeyInput:s,handleApiKeySubmit:a,cancel:i}=useAuthFlow({onSuccess:__name((t,n)=>{e({success:!0,config:t,source:n})},"onSuccess"),onFailure:__name((t,n)=>{e({success:!1,reason:t,message:n})},"onFailure"),onCancel:__name(()=>{e({success:!1,reason:"cancelled",message:"Authentication cancelled by user."})},"onCancel")});return Ye((e,t)=>{t.ctrl&&"c"===e&&i()}),Xe.createElement(CA,{authState:t,statusMessage:n,browserUrl:r,apiKeyInput:o,setApiKeyInput:s,handleApiKeySubmit:a})},"LoginWithApiKey");Ex(),Px();var EA=getPackageJson(import.meta.url),TA="string"==typeof EA.version&&EA.version.trim()?EA.version:"unknown";function createApiClient(e){return createCommandApiClient({baseUrl:e.baseUrl,timeout:e.timeout,cliVersion:TA,deps:{getAuthKey:getAuthKey,getTraceId:getTraceId,getTelemetryEnv:getTelemetryEnv,trackApiCallStart:trackAPICallStart,cmdZdrEnabled:__name(()=>"1"===process.env.CMD_ZDR,"cmdZdrEnabled"),deepseekInternalEnabled:__name(()=>"1"===process.env.CMD_PROVIDER_DEEPSEEK_INTERNAL,"deepseekInternalEnabled")}})}function getAuthKey(){return getCommandAuthKey({runtime:getCommandConfigRuntime(),path:getAuthFile(),env:process.env})}function isLingFlashFreeEnded(e=new Date){return e.getTime()>=Date.parse("2026-08-03T13:00:00Z")}__name(createApiClient,"createApiClient"),__name(getAuthKey,"getAuthKey"),Ex(),Px(),Ex(),Ex(),__name(isLingFlashFreeEnded,"isLingFlashFreeEnded");var PA={GENERATE:"/alpha/agent/generate"},MA={RECORD:"/alpha/fingerprint/record"},xA={START:"/alpha/sandbox/start"},IA={CREATE:"/alpha/share/create",DELETE:"/alpha/share/delete",APPEND:"/alpha/share/append"},AA={CREATE:"/alpha/devrel-thread/create",DELETE:"/alpha/devrel-thread/delete",UPDATE:"/alpha/devrel-thread/update"},RA={GET:"/alpha/taste/:projectSlug",UPDATE:"/alpha/taste/:projectSlug/update",DELETE:"/alpha/taste/:projectSlug",LEARN:"/alpha/learn"},OA={CREDITS:"/alpha/billing/credits",SUBSCRIPTIONS:"/alpha/billing/subscriptions"},DA={SUMMARY:"/alpha/usage/summary"},LA={TRACK:"/alpha/lifecycle-events"},NA={GET:/\/internal\/orgs\/[a-zA-Z0-9_-]+/,FOLLOW:/\/internal\/orgs\/[a-zA-Z0-9-]+\/follow/,FOLLOWERS:/\/internal\/orgs\/[a-zA-Z0-9-]+\/followers/},$A={FOLLOW:/\/internal\/users\/[a-zA-Z0-9-]+\/follow/,FOLLOWERS:/\/internal\/users\/[a-zA-Z0-9-]+\/followers/,FOLLOWING:/\/internal\/users\/[a-zA-Z0-9-]+\/following/},_A={PACKAGES:{GET:/\/internal\/taste\/packages\/[a-zA-Z0-9_-]+\/[a-zA-Z0-9_-]+/,FILES:/\/internal\/taste\/packages\/[a-zA-Z0-9_-]+\/[a-zA-Z0-9_-]+\/files/,DOWNLOAD:/\/internal\/taste\/packages\/[a-zA-Z0-9_-]+\/[a-zA-Z0-9_-]+\/download/,UPDATE:/\/internal\/taste\/packages\/[a-zA-Z0-9_-]+\/[a-zA-Z0-9_-]+\/update/,STAR:/\/internal\/taste\/packages\/[a-zA-Z0-9_-]+\/[a-zA-Z0-9_-]+\/star/,PIN:/\/internal\/taste\/packages\/[a-zA-Z0-9_-]+\/[a-zA-Z0-9_-]+\/pin/}};function getBinaryCommand(){return"win32"===process.platform?"cmdc":"cmd"}Object.values({GET:/\/alpha\/taste\/[a-z0-9-]+/,UPDATE:/\/alpha\/taste\/[a-z0-9-]+\/update/,DELETE:/\/alpha\/taste\/[a-z0-9-]+\/rules\/[a-z0-9-]+/,LIST:/\/alpha\/taste\/[a-z0-9-]+\/rules/}),Object.values({UPLOAD:/^\/beta\/taste\/packages\/[a-zA-Z0-9_-]+$/,FILES:/\/beta\/taste\/packages\/[a-zA-Z0-9_-]+\/[a-zA-Z0-9_-]+\/files/,GET:/\/beta\/taste\/packages\/[a-zA-Z0-9_-]+\/[a-zA-Z0-9_-]+/,DOWNLOAD:/\/beta\/taste\/packages\/[a-zA-Z0-9_-]+\/[a-zA-Z0-9_-]+\/download/}),PA.GENERATE,MA.RECORD,xA.START,IA.CREATE,IA.DELETE,IA.APPEND,AA.CREATE,AA.DELETE,AA.UPDATE,RA.LEARN,RA.DELETE,RA.GET,RA.UPDATE,Object.values({UPLOAD:"/beta/taste/packages/:namespace",LIST:"/beta/taste/packages",GET:"/beta/taste/packages/:namespace/:packageName",FILES:"/beta/taste/packages/:namespace/:packageName/files",DOWNLOAD:"/beta/taste/packages/:namespace/:packageName/download",DELETE:"/beta/taste/packages/:namespace/:packageName"}),OA.CREDITS,OA.SUBSCRIPTIONS,DA.SUMMARY,LA.TRACK,Object.values(NA),Object.values($A),Object.values(_A.PACKAGES),Object.values({GET:/\/internal\/profile\/[a-zA-Z0-9_-]+/,PACKAGES:/\/internal\/profile\/[a-zA-Z0-9_-]+\/packages/,FOLLOWING:/\/internal\/profile\/[a-zA-Z0-9_-]+\/following/,FOLLOWERS:/\/internal\/profile\/[a-zA-Z0-9_-]+\/followers/,PACKAGE_GET:/\/internal\/profile\/[a-zA-Z0-9_-]+\/packages\/[a-zA-Z0-9_-]+/,PACKAGE_DOWNLOAD:/\/internal\/profile\/[a-zA-Z0-9_-]+\/packages\/[a-zA-Z0-9_-]+\/download/}),__name(getBinaryCommand,"getBinaryCommand");var FA="anthropic",UA="openai",jA="baseten",BA="vercel-ai-gateway",WA="cloudflare-ai-gateway",HA="cmd-ai",GA="openrouter",VA="alibaba",zA="novita",qA="morph",KA=BA,YA={[FA]:[{id:"anthropic:claude-sonnet-5",provider:"Anthropic",category:"premium",promptCost:2,completionCost:10,cacheWrite5mCost:2.5,cacheWrite1hCost:4,cacheHitCost:.2},{id:"anthropic:claude-sonnet-4-20250514",provider:"Anthropic",category:"premium",promptCost:3,completionCost:15,cacheWrite5mCost:3.75,cacheWrite1hCost:6,cacheHitCost:.3},{id:"anthropic:claude-sonnet-4-5-20250929",provider:"Anthropic",category:"premium",promptCost:3,completionCost:15,cacheWrite5mCost:3.75,cacheWrite1hCost:6,cacheHitCost:.3},{id:"anthropic:claude-opus-4-5-20251101",provider:"Anthropic",category:"premium",promptCost:5,completionCost:25,cacheWrite5mCost:6.25,cacheWrite1hCost:10,cacheHitCost:.5},{id:"anthropic:claude-sonnet-4-6",provider:"Anthropic",category:"premium",promptCost:3,completionCost:15,cacheWrite5mCost:3.75,cacheWrite1hCost:6,cacheHitCost:.3},{id:"anthropic:claude-fable-5",provider:"Anthropic",category:"premium",promptCost:10,completionCost:50,cacheWrite5mCost:12.5,cacheWrite1hCost:20,cacheHitCost:1},{id:"anthropic:claude-opus-5",provider:"Anthropic",category:"premium",promptCost:5,completionCost:25,cacheWrite5mCost:6.25,cacheWrite1hCost:10,cacheHitCost:.5},{id:"anthropic:claude-opus-4-8",provider:"Anthropic",category:"premium",promptCost:5,completionCost:25,cacheWrite5mCost:6.25,cacheWrite1hCost:10,cacheHitCost:.5},{id:"anthropic:claude-opus-4-7",provider:"Anthropic",category:"premium",promptCost:5,completionCost:25,cacheWrite5mCost:6.25,cacheWrite1hCost:10,cacheHitCost:.5},{id:"anthropic:claude-opus-4-6",provider:"Anthropic",category:"premium",promptCost:5,completionCost:25,cacheWrite5mCost:6.25,cacheWrite1hCost:10,cacheHitCost:.5},{id:"anthropic:claude-haiku-4-5-20251001",provider:"Anthropic",category:"premium",promptCost:1,completionCost:5,cacheWrite5mCost:1.25,cacheWrite1hCost:2,cacheHitCost:.1}],[UA]:[{id:"openai:gpt-5.5",provider:"OpenAI",category:"premium",promptCost:5,completionCost:30,cacheWrite5mCost:0,cacheWrite1hCost:0,cacheHitCost:.5},{id:"openai:gpt-5.4",provider:"OpenAI",category:"premium",promptCost:2.5,completionCost:15,cacheWrite5mCost:0,cacheWrite1hCost:0,cacheHitCost:.25},{id:"openai:gpt-5.3-codex",provider:"OpenAI",category:"premium",promptCost:2,completionCost:8,cacheWrite5mCost:0,cacheWrite1hCost:0,cacheHitCost:.5},{id:"openai:gpt-5.4-mini",provider:"OpenAI",category:"premium",promptCost:.75,completionCost:4.5,cacheWrite5mCost:0,cacheWrite1hCost:0,cacheHitCost:.075},{id:"openai:gpt-5.6-sol",provider:"OpenAI",category:"premium",promptCost:5,completionCost:30,cacheWrite5mCost:6.25,cacheWrite1hCost:0,cacheHitCost:.5},{id:"openai:gpt-5.6-terra",provider:"OpenAI",category:"premium",promptCost:2,completionCost:12,cacheWrite5mCost:2.5,cacheWrite1hCost:0,cacheHitCost:.2},{id:"openai:gpt-5.6-luna",provider:"OpenAI",category:"premium",promptCost:.2,completionCost:1.2,cacheWrite5mCost:.25,cacheWrite1hCost:0,cacheHitCost:.02}],[jA]:[{id:"baseten:zai-org/GLM-5",provider:"Baseten",category:"opensource",promptCost:.95,completionCost:3.15,cacheWrite5mCost:0,cacheWrite1hCost:0,cacheHitCost:0},{id:"baseten:moonshotai/Kimi-K2.5",provider:"Baseten",category:"opensource",promptCost:.6,completionCost:3,cacheWrite5mCost:0,cacheWrite1hCost:0,cacheHitCost:0},{id:"baseten:moonshotai/Kimi-K2.6",provider:"Baseten",category:"opensource",promptCost:.95,completionCost:4,cacheWrite5mCost:0,cacheWrite1hCost:0,cacheHitCost:.16},{id:"baseten:MiniMaxAI/MiniMax-M2.5",provider:"Baseten",category:"opensource",promptCost:.5,completionCost:2,cacheWrite5mCost:0,cacheWrite1hCost:0,cacheHitCost:0}],[zA]:[{id:"novita:moonshotai/Kimi-K3",provider:"Novita",category:"opensource",promptCost:3,completionCost:15,cacheWrite5mCost:0,cacheWrite1hCost:0,cacheHitCost:.3}],[BA]:[],[GA]:[]};fe.enum(["owner","admin","member"]);var JA="chatComplete",QA="responses",XA="MiniMaxAI/MiniMax-M3-Free",ZA={SONNET_5:{id:"claude-sonnet-5",inputModalities:["text","image"],provider:FA,spec:JA,label:"Claude Sonnet 5",name:"Claude Sonnet 5",description:"best combo of speed & intelligence (recommended)",reasoning:!0,reasoningEfforts:["low","medium","high","xhigh","max"],contextWindow:1e6},SONNET_4_6:{id:"claude-sonnet-4-6",inputModalities:["text","image"],provider:FA,spec:JA,label:"Claude Sonnet 4.6",name:"Claude Sonnet 4.6",description:"prev Sonnet, still fast & capable",reasoningEfforts:["low","medium","high","xhigh","max"],contextWindow:1e6},FABLE_5:{id:"claude-fable-5",inputModalities:["text","image"],provider:FA,spec:JA,label:"Claude Fable 5",name:"Claude Fable 5",description:"most capable for demanding reasoning & long-horizon agents",reasoning:!0,reasoningEfforts:["low","medium","high","xhigh","max"],contextWindow:1e6},OPUS_5:{id:"claude-opus-5",inputModalities:["text","image"],provider:FA,spec:JA,label:"Claude Opus 5",name:"Claude Opus 5",description:"most intelligent Opus for agents and coding",reasoning:!0,reasoningEfforts:["low","medium","high","xhigh","max"],contextWindow:1e6},OPUS_4_8:{id:"claude-opus-4-8",inputModalities:["text","image"],provider:FA,spec:JA,label:"Claude Opus 4.8",name:"Claude Opus 4.8",description:"prev flagship, still strong for agents and coding",reasoning:!0,reasoningEfforts:["low","medium","high","xhigh","max"],contextWindow:1e6},OPUS_4_7:{id:"claude-opus-4-7",inputModalities:["text","image"],provider:FA,spec:JA,label:"Claude Opus 4.7",name:"Claude Opus 4.7",description:"older Opus, still strong for agents and coding",reasoning:!0,reasoningEfforts:["low","medium","high","xhigh","max"],contextWindow:1e6},HAIKU_4_5:{id:"claude-haiku-4-5-20251001",inputModalities:["text","image"],provider:FA,spec:JA,label:"Claude Haiku 4.5",name:"Claude Haiku 4.5",description:"fastest & most compact, great for quick tasks",contextWindow:2e5},GPT_5_6_SOL:{id:"gpt-5.6-sol",inputModalities:["text","image"],provider:BA,spec:QA,label:"GPT-5.6 Sol",name:"GPT-5.6 Sol",description:"frontier model for complex professional work",vendorLabel:"OpenAI",reasoning:!0,reasoningEfforts:["low","medium","high","xhigh","max"],contextWindow:105e4},GPT_5_6_TERRA:{id:"gpt-5.6-terra",inputModalities:["text","image"],provider:GA,spec:QA,label:"GPT-5.6 Terra",name:"GPT-5.6 Terra",description:"balances intelligence and cost",vendorLabel:"OpenAI",reasoning:!0,reasoningEfforts:["low","medium","high","xhigh","max"],contextWindow:105e4},GPT_5_6_LUNA:{id:"gpt-5.6-luna",inputModalities:["text","image"],provider:GA,spec:QA,label:"GPT-5.6 Luna",name:"GPT-5.6 Luna",description:"optimized for cost-sensitive workloads",vendorLabel:"OpenAI",reasoning:!0,reasoningEfforts:["low","medium","high","xhigh","max"],contextWindow:105e4},GPT_5_5:{id:"gpt-5.5",inputModalities:["text","image"],provider:UA,spec:QA,label:"GPT-5.5",name:"GPT-5.5",description:"latest frontier model for general complex work",reasoning:!0,reasoningEfforts:["low","medium","high","xhigh"]},GPT_5_4:{id:"gpt-5.4",inputModalities:["text","image"],provider:UA,spec:QA,label:"GPT-5.4",name:"GPT-5.4",description:"frontier model for general complex work",reasoning:!0,reasoningEfforts:["low","medium","high","xhigh"],contextWindow:4e5},GPT_5_3_CODEX:{id:"gpt-5.3-codex",inputModalities:["text","image"],provider:UA,spec:QA,label:"GPT-5.3 Codex",name:"GPT-5.3 Codex",description:"frontier coding model",reasoning:!0,reasoningEfforts:["low","medium","high","xhigh"],contextWindow:4e5},GPT_5_4_MINI:{id:"gpt-5.4-mini",inputModalities:["text","image"],provider:UA,spec:QA,label:"GPT-5.4 Mini",name:"GPT-5.4 Mini",description:"fast, cost-effective model for everyday tasks",reasoning:!0,reasoningEfforts:["low","medium","high"],contextWindow:4e5},MINIMAX_M3_FREE:{id:XA,inputModalities:["text","image"],provider:KA,spec:JA,label:"MiniMax M3",name:"MiniMax M3",description:"frontier coding, agents & native multimodality",badge:"free",hidden:!0,reasoning:!0,contextWindow:1e6},DEEPSEEK_V4_PRO:{id:"deepseek/deepseek-v4-pro",inputModalities:["text"],provider:KA,spec:JA,label:"DeepSeek V4 Pro (latest)",name:"DeepSeek V4 Pro (latest)",description:"hybrid-attention long-context reasoning",reasoning:!0,reasoningEfforts:["high","max"],contextWindow:1e6},DEEPSEEK_V4_FLASH:{id:"deepseek/deepseek-v4-flash",inputModalities:["text"],provider:KA,spec:JA,label:"DeepSeek V4 Flash (latest)",name:"DeepSeek V4 Flash (latest)",description:"fast hybrid-attention reasoning",reasoning:!0,reasoningEfforts:["high","max"],contextWindow:1e6},KIMI_K3:{id:"moonshotai/Kimi-K3",inputModalities:["text","image"],provider:KA,spec:JA,label:"Kimi K3",name:"Kimi K3",description:"long-horizon coding & knowledge work with 1M context",reasoning:!0,contextWindow:1e6},KIMI_K2_7_CODE:{id:"moonshotai/Kimi-K2.7-Code",inputModalities:["text","image"],provider:KA,spec:JA,label:"Kimi K2.7 Code",name:"Kimi K2.7 Code",description:"improved long-horizon coding with vision",reasoning:!0,contextWindow:256e3},KIMI_K2_7_CODE_HIGHSPEED:{id:"moonshotai/Kimi-K2.7-Code-Highspeed",inputModalities:["text","image"],provider:KA,spec:JA,label:"Kimi K2.7 Code HighSpeed",name:"Kimi K2.7 Code HighSpeed",description:"high-speed long-horizon coding with vision",reasoning:!0,contextWindow:262e3},KIMI_K2_6:{id:"moonshotai/Kimi-K2.6",inputModalities:["text","image"],provider:KA,spec:JA,label:"Kimi K2.6",name:"Kimi K2.6",description:"long-horizon coding with vision",contextWindow:256e3},KIMI_K2_5:{id:"moonshotai/Kimi-K2.5",inputModalities:["text","image"],provider:KA,spec:JA,label:"Kimi K2.5",name:"Kimi K2.5",description:"multimodal frontend coding",contextWindow:256e3},GLM_5_3:{id:"zai-org/GLM-5.3",inputModalities:["text"],provider:KA,spec:JA,label:"GLM-5.3",name:"GLM-5.3",description:"frontier coding with emergent cyber capabilities",reasoning:!0,reasoningEfforts:["low","high","max"],contextWindow:1e6},GLM_5_2:{id:"zai-org/GLM-5.2",inputModalities:["text"],provider:KA,spec:JA,label:"GLM-5.2",name:"GLM-5.2",description:"powerful coding with 1M context and long-horizon tasks",reasoning:!0,reasoningEfforts:["high","max"],contextWindow:1e6},GLM_5_2_FAST:{id:"zai-org/GLM-5.2-Fast",inputModalities:["text"],provider:KA,spec:JA,label:"GLM-5.2 Fast",name:"GLM-5.2 Fast",description:"high-throughput GLM-5.2 with 1M context",contextWindow:1e6},GLM_5_1:{id:"zai-org/GLM-5.1",inputModalities:["text"],provider:KA,spec:JA,label:"GLM-5.1",name:"GLM-5.1",description:"long-horizon autonomous coding agent"},GLM_5:{id:"zai-org/GLM-5",inputModalities:["text"],provider:KA,spec:JA,label:"GLM-5",name:"GLM-5",description:"multi-mode thinking & long-range planning",contextWindow:2e5},MINIMAX_M3:{id:"MiniMaxAI/MiniMax-M3",inputModalities:["text","image"],provider:KA,spec:JA,label:"MiniMax M3",name:"MiniMax M3",description:"frontier coding, agents & native multimodality",reasoning:!0,contextWindow:1e6},MINIMAX_M2_7:{id:"MiniMaxAI/MiniMax-M2.7",inputModalities:["text"],provider:KA,spec:JA,label:"MiniMax M2.7",name:"MiniMax M2.7",description:"end-to-end software engineering agent"},MINIMAX_M2_5:{id:"MiniMaxAI/MiniMax-M2.5",inputModalities:["text"],provider:KA,spec:JA,label:"MiniMax M2.5",name:"MiniMax M2.5",description:"cross-platform full-stack agentic dev",contextWindow:2e5},XIAOMI_MIMO_V2_5_PRO:{id:"xiaomi/mimo-v2.5-pro",inputModalities:["text"],provider:KA,spec:JA,label:"MiMo V2.5 Pro",name:"MiMo V2.5 Pro",description:"high-capability long-context agentic coding",contextWindow:1e6},XIAOMI_MIMO_V2_5:{id:"xiaomi/mimo-v2.5",inputModalities:["text","image"],provider:KA,spec:JA,label:"MiMo V2.5",name:"MiMo V2.5",description:"efficient long-context agentic coding",contextWindow:1e6},QWEN_3_8_MAX:{id:"Qwen/Qwen3.8-Max",inputModalities:["text","image"],provider:KA,spec:JA,label:"Qwen 3.8 Max",name:"Qwen 3.8 Max",description:"autonomous long-horizon coding & professional work",reasoning:!0,reasoningEfforts:["low","medium","xhigh"],contextWindow:1e6},QWEN_3_7_MAX:{id:"Qwen/Qwen3.7-Max",inputModalities:["text"],provider:KA,spec:JA,label:"Qwen 3.7 Max",name:"Qwen 3.7 Max",description:"frontier coding & long-horizon agent execution",reasoning:!0,contextWindow:1e6},QWEN_3_7_PLUS:{id:"Qwen/Qwen3.7-Plus",inputModalities:["text","image"],provider:KA,spec:JA,label:"Qwen 3.7 Plus",name:"Qwen 3.7 Plus",description:"agentic coding & reasoning at lower cost",reasoning:!0,contextWindow:1e6},QWEN_3_7_FLASH:{id:"Qwen/Qwen3.7-Flash",inputModalities:["text","image"],provider:KA,spec:JA,label:"Qwen 3.7 Flash",name:"Qwen 3.7 Flash",description:"fast low-cost agentic coding & reasoning",reasoning:!0,contextWindow:1e6},QWEN_3_6_MAX_PREVIEW:{id:"Qwen/Qwen3.6-Max-Preview",inputModalities:["text"],provider:KA,spec:JA,label:"Qwen 3.6 Max Preview",name:"Qwen 3.6 Max Preview",description:"vibe coding & efficient agent execution",reasoning:!0},QWEN_3_6_PLUS:{id:"Qwen/Qwen3.6-Plus",inputModalities:["text","image"],provider:KA,spec:JA,label:"Qwen 3.6 Plus",name:"Qwen 3.6 Plus",description:"agentic coding & reasoning",reasoning:!0},STEP_3_7_FLASH:{id:"stepfun/Step-3.7-Flash",inputModalities:["text","image"],provider:KA,spec:JA,label:"Step 3.7 Flash",name:"Step 3.7 Flash",description:"multimodal sparse-MoE reasoning",reasoning:!0,contextWindow:256e3},STEP_3_5_FLASH:{id:"stepfun/Step-3.5-Flash",inputModalities:["text"],provider:KA,spec:JA,label:"Step 3.5 Flash",name:"Step 3.5 Flash",description:"fast sparse-MoE agentic reasoning",reasoning:!0,contextWindow:1e6},TENCENT_HY3:{id:"tencent/Hy3",inputModalities:["text"],provider:KA,spec:JA,label:"Tencent Hy3 (Free)",name:"Tencent Hy3 (Free)",description:"sparse-MoE reasoning & agentic tool use",badge:"free",hidden:!0,reasoning:!0,contextWindow:262144},TENCENT_HY3_PAID:{id:"tencent/hy3-paid",inputModalities:["text"],provider:KA,spec:JA,label:"Tencent Hy3",name:"Tencent Hy3",description:"sparse-MoE reasoning & agentic tool use",reasoning:!0,contextWindow:262144},GEMINI_3_7_FLASH:{id:"google/gemini-3.7-flash",inputModalities:["text","image"],provider:GA,spec:JA,label:"Gemini 3.7 Flash",name:"Gemini 3.7 Flash",description:"higher-quality coding & agentic workflows, fewer tokens",vendorLabel:"Google",reasoning:!0,reasoningEfforts:["low","medium","high"],contextWindow:1048576},GEMINI_3_6_FLASH:{id:"google/gemini-3.6-flash",inputModalities:["text","image"],provider:BA,spec:JA,label:"Gemini 3.6 Flash",name:"Gemini 3.6 Flash",description:"previous Gemini Flash, still fast & capable",vendorLabel:"Google",reasoning:!0,reasoningEfforts:["low","medium","high"],contextWindow:1e6},GEMINI_3_5_FLASH:{id:"google/gemini-3.5-flash",inputModalities:["text","image"],provider:BA,spec:JA,label:"Gemini 3.5 Flash",name:"Gemini 3.5 Flash",description:"Pro-level coding proficiency, parallel agentic execution",vendorLabel:"Google",reasoning:!0,reasoningEfforts:["low","medium","high"],contextWindow:1e6},GEMINI_3_5_FLASH_LITE:{id:"google/gemini-3.5-flash-lite",inputModalities:["text","image"],provider:BA,spec:JA,label:"Gemini 3.5 Flash Lite",name:"Gemini 3.5 Flash Lite",description:"upgraded agentic capabilities, ideal for subagents",vendorLabel:"Google",reasoning:!0,reasoningEfforts:["low","medium","high"],contextWindow:1e6},GEMINI_3_1_FLASH_LITE:{id:"google/gemini-3.1-flash-lite",inputModalities:["text","image"],provider:BA,spec:JA,label:"Gemini 3.1 Flash Lite",name:"Gemini 3.1 Flash Lite",description:"high-volume workhorse model with implicit caching",vendorLabel:"Google",reasoning:!0,reasoningEfforts:["low","medium","high"],contextWindow:1e6},FUGU_ULTRA:{id:"sakana/fugu-ultra",inputModalities:["text","image"],provider:BA,spec:JA,label:"Fugu Ultra",name:"Fugu Ultra",description:"multi-agent orchestration across frontier models",vendorLabel:"Sakana",reasoning:!0,reasoningEfforts:["high","xhigh"],contextWindow:1e6},NEMOTRON_3_ULTRA:{id:"nvidia/nemotron-3-ultra-550b-a55b",inputModalities:["text"],provider:KA,spec:JA,label:"Nemotron 3 Ultra",name:"Nemotron 3 Ultra",description:"open reasoning model for long-horizon autonomous agents",reasoning:!0,contextWindow:1e6},INKLING:{id:"thinkingmachines/inkling",inputModalities:["text","image"],provider:KA,spec:JA,label:"Inkling",name:"Inkling",description:"multimodal MoE reasoning",reasoning:!0,contextWindow:256e3},INKLING_SMALL:{id:"thinkingmachines/inkling-small",inputModalities:["text","image"],provider:KA,spec:JA,label:"Inkling Small",name:"Inkling Small",description:"lightweight MoE reasoning at lower cost and latency",reasoning:!0,contextWindow:1e6},LAGUNA_S_2_1_FREE:{id:"poolside/laguna-s-2.1-free",inputModalities:["text"],provider:KA,spec:JA,label:"Laguna S 2.1",name:"Laguna S 2.1",description:"open-weight agentic coding and long-horizon work",badge:"free",reasoning:!0,contextWindow:256e3,maxOutputTokens:32768},LING_3_0_FLASH_FREE:{id:"inclusionai/ling-3.0-flash-free",inputModalities:["text"],provider:KA,spec:JA,label:"Ling 3.0 Flash",name:"Ling 3.0 Flash",description:"fast lightweight-MoE coding & agentic work",badge:"free",reasoning:!0,get hidden(){return isLingFlashFreeEnded()},contextWindow:256e3,maxOutputTokens:32768},MUSE_SPARK_1_1:{id:"meta/muse-spark-1.1",inputModalities:["text","image"],provider:BA,spec:JA,label:"Muse Spark 1.1",name:"Muse Spark 1.1",description:"agentic performance, tool use, and computer use",vendorLabel:"Meta",reasoning:!0,contextWindow:1048576},MUSE_SPARK_1_2:{id:"meta/muse-spark-1.2",inputModalities:["text","image"],provider:BA,spec:JA,label:"Muse Spark 1.2",name:"Muse Spark 1.2",description:"coding-optimized for agentic workflows and large codebases",vendorLabel:"Meta",notice:"{name} is going through upstream inference issues at {vendor}, not Command Code. Expect slower responses and occasional rate limits.",reasoning:!0,contextWindow:1048576},MUSE_SPARK_1_2_CONTRIBUTOR:{id:"meta/muse-spark-1.2-contributor",inputModalities:["text","image"],provider:BA,spec:JA,label:"Muse Spark 1.2 Contributor",name:"Muse Spark 1.2 Contributor",description:"Muse Spark 1.2 at ~95% off",vendorLabel:"Meta",notice:"{name} is going through upstream inference issues at {vendor}, not Command Code. Expect slower responses and occasional rate limits.",reasoning:!0,contextWindow:1048576},GROK_4_5:{id:"xai/grok-4.5",inputModalities:["text","image"],provider:BA,spec:JA,label:"Grok 4.5",name:"Grok 4.5",description:"smartest model for coding, agentic tasks, knowledge work",vendorLabel:"xAI",reasoning:!0,reasoningEfforts:["low","medium","high"],contextWindow:5e5},GROK_4_6:{id:"xai/grok-4.6",inputModalities:["text"],provider:BA,spec:JA,label:"Grok 4.6",name:"Grok 4.6",description:"frontier performance on coding, knowledge work, and STEM",vendorLabel:"xAI",reasoning:!0,reasoningEfforts:["low","medium","high","xhigh"],contextWindow:5e5}},eR=[{canonicalId:"zai-org/GLM-5",providers:{[BA]:"zai/glm-5",[jA]:"zai-org/GLM-5"}},{canonicalId:"zai-org/GLM-5.3",providers:{[BA]:"zai/glm-5.3"}},{canonicalId:"zai-org/GLM-5.2",providers:{[VA]:"glm-5.2",[BA]:"zai/glm-5.2"}},{canonicalId:"poolside/laguna-s-2.1-free",providers:{[BA]:"poolside/laguna-s-2.1-free"}},{canonicalId:"inclusionai/ling-3.0-flash-free",providers:{[BA]:"inclusionai/ling-3.0-flash-free"}},{canonicalId:"zai-org/GLM-5.2-Fast",providers:{[BA]:"zai/glm-5.2-fast"}},{canonicalId:"zai-org/GLM-5.1",providers:{[BA]:"zai/glm-5.1"}},{canonicalId:"moonshotai/Kimi-K3",providers:{[zA]:"moonshotai/kimi-k3",[BA]:"moonshotai/kimi-k3"}},{canonicalId:"moonshotai/Kimi-K2.5",providers:{[BA]:"moonshotai/kimi-k2.5",[jA]:"moonshotai/Kimi-K2.5",[WA]:"workers-ai/@cf/moonshotai/kimi-k2.5"}},{canonicalId:"moonshotai/Kimi-K2.6",providers:{[BA]:"moonshotai/kimi-k2.6",[jA]:"moonshotai/Kimi-K2.6",[WA]:"workers-ai/@cf/moonshotai/kimi-k2.6"}},{canonicalId:"moonshotai/Kimi-K2.7-Code",providers:{[VA]:"kimi-k2.7-code",[BA]:"moonshotai/kimi-k2.7-code"}},{canonicalId:"moonshotai/Kimi-K2.7-Code-Highspeed",providers:{[BA]:"moonshotai/kimi-k2.7-code-highspeed"}},{canonicalId:"MiniMaxAI/MiniMax-M2.5",providers:{[BA]:"minimax/minimax-m2.5",[jA]:"MiniMaxAI/MiniMax-M2.5"}},{canonicalId:"deepseek/deepseek-v4-pro",providers:{[BA]:"deepseek/deepseek-v4-pro"}},{canonicalId:"deepseek/deepseek-v4-flash",providers:{[BA]:"deepseek/deepseek-v4-flash",[qA]:"morph-dsv4flash"}},{canonicalId:"Qwen/Qwen3.6-Max-Preview",providers:{[BA]:"alibaba/qwen-3.6-max-preview"}},{canonicalId:"Qwen/Qwen3.6-Plus",providers:{[VA]:"qwen3.6-plus",[BA]:"alibaba/qwen3.6-plus"}},{canonicalId:"Qwen/Qwen3.7-Max",providers:{[VA]:"qwen3.7-max",[BA]:"alibaba/qwen3.7-max"}},{canonicalId:"Qwen/Qwen3.7-Plus",providers:{[VA]:"qwen3.7-plus",[BA]:"alibaba/qwen3.7-plus"}},{canonicalId:"Qwen/Qwen3.8-Max",providers:{[VA]:"qwen3.8-max",[BA]:"alibaba/qwen3.8-max"}},{canonicalId:"Qwen/Qwen3.7-Flash",providers:{[BA]:"alibaba/qwen3.7-flash"}},{canonicalId:"MiniMaxAI/MiniMax-M3",providers:{[BA]:"minimax/minimax-m3"}},{canonicalId:XA,providers:{[BA]:"minimax/minimax-m3"}},{canonicalId:"MiniMaxAI/MiniMax-M2.7",providers:{[BA]:"minimax/minimax-m2.7"}},{canonicalId:"stepfun/Step-3.7-Flash",providers:{[BA]:"stepfun/step-3.7-flash"}},{canonicalId:"stepfun/Step-3.5-Flash",providers:{[GA]:"stepfun/step-3.5-flash"}},{canonicalId:"gpt-5.6-sol",providers:{[BA]:"openai/gpt-5.6-sol"}},{canonicalId:"gpt-5.6-terra",providers:{[GA]:"openai/gpt-5.6-terra"}},{canonicalId:"gpt-5.6-luna",providers:{[GA]:"openai/gpt-5.6-luna"}},{canonicalId:"tencent/Hy3",providers:{[GA]:"tencent/hy3:free"}},{canonicalId:"tencent/hy3-paid",providers:{[BA]:"tencent/hy3"}},{canonicalId:"xiaomi/mimo-v2.5-pro",providers:{[BA]:"xiaomi/mimo-v2.5-pro"}},{canonicalId:"xiaomi/mimo-v2.5",providers:{[BA]:"xiaomi/mimo-v2.5"}},{canonicalId:"google/gemini-3.7-flash",providers:{[GA]:"google/gemini-3.7-flash"}},{canonicalId:"google/gemini-3.6-flash",providers:{[BA]:"google/gemini-3.6-flash"}},{canonicalId:"google/gemini-3.5-flash",providers:{[BA]:"google/gemini-3.5-flash"}},{canonicalId:"google/gemini-3.5-flash-lite",providers:{[BA]:"google/gemini-3.5-flash-lite"}},{canonicalId:"google/gemini-3.1-flash-lite",providers:{[BA]:"google/gemini-3.1-flash-lite"}},{canonicalId:"nvidia/nemotron-3-ultra-550b-a55b",providers:{[BA]:"nvidia/nemotron-3-ultra-550b-a55b"}},{canonicalId:"thinkingmachines/inkling",providers:{[BA]:"thinkingmachines/inkling"}},{canonicalId:"thinkingmachines/inkling-small",providers:{[BA]:"thinkingmachines/inkling-small"}},{canonicalId:"sakana/fugu-ultra",providers:{[BA]:"sakana/fugu-ultra"}},{canonicalId:"xai/grok-4.5",providers:{[BA]:"xai/grok-4.5"}},{canonicalId:"xai/grok-4.6",providers:{[BA]:"xai/grok-4.6"}},{canonicalId:"meta/muse-spark-1.1",providers:{[BA]:"meta/muse-spark-1.1"}},{canonicalId:"meta/muse-spark-1.2",providers:{[BA]:"meta/muse-spark-1.2"}},{canonicalId:"meta/muse-spark-1.2-contributor",providers:{[BA]:"meta/muse-spark-1.2-contributor"}}],tR="2026-08-16T16:00:00Z",nR=[{startHourUtc:1,endHourUtc:4},{startHourUtc:6,endHourUtc:10}],rR=[{canonicalId:"zai-org/GLM-5",gatewaySlug:"zai/glm-5",order:["deepinfra","fireworks","togetherai","parasail","bedrock"],providers:{deepinfra:{slug:"deepinfra",promptCost:.8,completionCost:2.56,cacheReadCost:.16},fireworks:{slug:"fireworks",promptCost:1,completionCost:3.2,cacheReadCost:.2},togetherai:{slug:"togetherai",promptCost:1,completionCost:3.2,cacheReadCost:0},parasail:{slug:"parasail",promptCost:1,completionCost:3.2,cacheReadCost:0},bedrock:{slug:"bedrock",promptCost:1,completionCost:3.2,cacheReadCost:0}}},{canonicalId:"zai-org/GLM-5.2",gatewaySlug:"zai/glm-5.2",order:["novita","deepinfra"],providers:{novita:{slug:"novita",promptCost:1.4,completionCost:4.4,cacheReadCost:.26},deepinfra:{slug:"deepinfra",promptCost:1.4,completionCost:4.4,cacheReadCost:.26},zai:{slug:"zai",promptCost:1.4,completionCost:4.4,cacheReadCost:.26},fireworks:{slug:"fireworks",promptCost:1.4,completionCost:4.4,cacheReadCost:.26}}},{canonicalId:"zai-org/GLM-5.3",gatewaySlug:"zai/glm-5.3",order:["zai"],providers:{zai:{slug:"zai",promptCost:1.4,completionCost:4.4,cacheReadCost:.26}}},{canonicalId:"zai-org/GLM-5.2-Fast",gatewaySlug:"zai/glm-5.2-fast",order:["wafer"],providers:{wafer:{slug:"wafer",promptCost:3,completionCost:10.25,cacheReadCost:.5}}},{canonicalId:"zai-org/GLM-5.1",gatewaySlug:"zai/glm-5.1",order:["deepinfra","fireworks"],providers:{deepinfra:{slug:"deepinfra",promptCost:1.4,completionCost:4.4,cacheReadCost:.26},fireworks:{slug:"fireworks",promptCost:1.4,completionCost:4.4,cacheReadCost:.26}}},{canonicalId:"moonshotai/Kimi-K3",gatewaySlug:"moonshotai/kimi-k3",order:["moonshotai"],providers:{moonshotai:{slug:"moonshotai",promptCost:3,completionCost:15,cacheReadCost:.3}}},{canonicalId:"moonshotai/Kimi-K2.5",gatewaySlug:"moonshotai/kimi-k2.5",order:["moonshotai","fireworks","bedrock","togetherai"],providers:{fireworks:{slug:"fireworks",promptCost:.6,completionCost:3,cacheReadCost:.1},bedrock:{slug:"bedrock",promptCost:.6,completionCost:3,cacheReadCost:.1},togetherai:{slug:"togetherai",promptCost:.5,completionCost:2.8,cacheReadCost:0},moonshotai:{slug:"moonshotai",promptCost:.6,completionCost:3,cacheReadCost:.1}}},{canonicalId:"moonshotai/Kimi-K2.6",gatewaySlug:"moonshotai/kimi-k2.6",order:["moonshotai","fireworks"],providers:{moonshotai:{slug:"moonshotai",promptCost:.95,completionCost:4,cacheReadCost:.16},fireworks:{slug:"fireworks",promptCost:.95,completionCost:4,cacheReadCost:.16}}},{canonicalId:"moonshotai/Kimi-K2.7-Code",gatewaySlug:"moonshotai/kimi-k2.7-code",order:["moonshotai"],providers:{moonshotai:{slug:"moonshotai",promptCost:.95,completionCost:4,cacheReadCost:.19}}},{canonicalId:"moonshotai/Kimi-K2.7-Code-Highspeed",gatewaySlug:"moonshotai/kimi-k2.7-code-highspeed",order:["moonshotai"],providers:{moonshotai:{slug:"moonshotai",promptCost:1.9,completionCost:8,cacheReadCost:.38}}},{canonicalId:"MiniMaxAI/MiniMax-M2.5",gatewaySlug:"minimax/minimax-m2.5",order:["deepinfra","parasail","nebius","bedrock"],providers:{deepinfra:{slug:"deepinfra",promptCost:.3,completionCost:1.2,cacheReadCost:.03},parasail:{slug:"parasail",promptCost:.3,completionCost:1.2,cacheReadCost:0},nebius:{slug:"nebius",promptCost:.3,completionCost:1.2,cacheReadCost:0},bedrock:{slug:"bedrock",promptCost:.3,completionCost:1.2,cacheReadCost:0}}},{canonicalId:"deepseek/deepseek-v4-pro",gatewaySlug:"deepseek/deepseek-v4-pro",order:["deepseek"],providers:{deepseek:{slug:"deepseek",promptCost:.435,completionCost:.87,cacheReadCost:.003625,timeOfDay:{effectiveFrom:tR,peakWindowsUtc:nR,peak:{promptCost:1.32,completionCost:3.96,cacheReadCost:.044},offPeak:{promptCost:.66,completionCost:1.98,cacheReadCost:.022}}},fireworks:{slug:"fireworks",promptCost:1.74,completionCost:3.48,cacheReadCost:.0145}}},{canonicalId:"deepseek/deepseek-v4-flash",gatewaySlug:"deepseek/deepseek-v4-flash",order:["deepseek"],providers:{deepseek:{slug:"deepseek",promptCost:.14,completionCost:.28,cacheReadCost:.0028,timeOfDay:{effectiveFrom:tR,peakWindowsUtc:nR,peak:{promptCost:.44,completionCost:1.32,cacheReadCost:.014},offPeak:{promptCost:.22,completionCost:.66,cacheReadCost:.007}}},fireworks:{slug:"fireworks",promptCost:.14,completionCost:.28,cacheReadCost:.03}}},{canonicalId:"Qwen/Qwen3.6-Max-Preview",gatewaySlug:"alibaba/qwen-3.6-max-preview",order:["alibaba"],providers:{alibaba:{slug:"alibaba",promptCost:1.3,completionCost:7.8,cacheReadCost:.26,cacheWriteCost:1.63}}},{canonicalId:"Qwen/Qwen3.6-Plus",gatewaySlug:"alibaba/qwen3.6-plus",order:["fireworks"],providers:{fireworks:{slug:"fireworks",promptCost:.5,completionCost:3,cacheReadCost:.1}}},{canonicalId:"Qwen/Qwen3.7-Max",gatewaySlug:"alibaba/qwen3.7-max",order:["alibaba"],providers:{alibaba:{slug:"alibaba",promptCost:2.5,completionCost:7.5,cacheReadCost:.5,cacheWriteCost:3.13}}},{canonicalId:"Qwen/Qwen3.7-Plus",gatewaySlug:"alibaba/qwen3.7-plus",order:["alibaba"],providers:{alibaba:{slug:"alibaba",promptCost:.4,completionCost:1.6,cacheReadCost:.08,cacheWriteCost:.5}}},{canonicalId:"Qwen/Qwen3.8-Max",gatewaySlug:"alibaba/qwen3.8-max",order:["alibaba"],providers:{alibaba:{slug:"alibaba",promptCost:2,completionCost:6,cacheReadCost:.25,cacheWriteCost:2.5}}},{canonicalId:"Qwen/Qwen3.7-Flash",gatewaySlug:"alibaba/qwen3.7-flash",order:["alibaba"],providers:{alibaba:{slug:"alibaba",promptCost:.03,completionCost:.13,cacheReadCost:.006,cacheWriteCost:.038}}},{canonicalId:"MiniMaxAI/MiniMax-M3",gatewaySlug:"minimax/minimax-m3",order:["minimax"],providers:{minimax:{slug:"minimax",promptCost:.3,completionCost:1.2,cacheReadCost:.06}}},{canonicalId:XA,gatewaySlug:"minimax/minimax-m3",order:["minimax"],providers:{minimax:{slug:"minimax",promptCost:.3,completionCost:1.2,cacheReadCost:.06}}},{canonicalId:"MiniMaxAI/MiniMax-M2.7",gatewaySlug:"minimax/minimax-m2.7",order:["fireworks","togetherai"],providers:{fireworks:{slug:"fireworks",promptCost:.3,completionCost:1.2,cacheReadCost:.06},togetherai:{slug:"togetherai",promptCost:.3,completionCost:1.2,cacheReadCost:0}}},{canonicalId:"xiaomi/mimo-v2.5-pro",gatewaySlug:"xiaomi/mimo-v2.5-pro",order:["xiaomi"],providers:{xiaomi:{slug:"xiaomi",promptCost:.435,completionCost:.87,cacheReadCost:.0036}}},{canonicalId:"xiaomi/mimo-v2.5",gatewaySlug:"xiaomi/mimo-v2.5",order:["xiaomi"],providers:{xiaomi:{slug:"xiaomi",promptCost:.14,completionCost:.28,cacheReadCost:.0028}}},{canonicalId:"stepfun/Step-3.7-Flash",gatewaySlug:"stepfun/step-3.7-flash",order:["stepfun"],providers:{stepfun:{slug:"stepfun",promptCost:.2,completionCost:1.15,cacheReadCost:.04}}},{canonicalId:"gpt-5.6-sol",gatewaySlug:"openai/gpt-5.6-sol",order:["openai"],providers:{openai:{slug:"openai",promptCost:5,completionCost:30,cacheReadCost:.5,cacheWriteCost:6.25},azure:{slug:"azure",promptCost:5,completionCost:30,cacheReadCost:.5,cacheWriteCost:6.25},bedrock:{slug:"bedrock",promptCost:5,completionCost:30,cacheReadCost:.5,cacheWriteCost:6.25}}},{canonicalId:"google/gemini-3.6-flash",gatewaySlug:"google/gemini-3.6-flash",order:["vertex"],providers:{vertex:{slug:"vertex",promptCost:1.5,completionCost:7.5,cacheReadCost:.15}}},{canonicalId:"google/gemini-3.5-flash",gatewaySlug:"google/gemini-3.5-flash",order:["vertex"],providers:{vertex:{slug:"vertex",promptCost:1.5,completionCost:9,cacheReadCost:.15}}},{canonicalId:"google/gemini-3.5-flash-lite",gatewaySlug:"google/gemini-3.5-flash-lite",order:["vertex"],providers:{vertex:{slug:"vertex",promptCost:.3,completionCost:2.5,cacheReadCost:.03}}},{canonicalId:"google/gemini-3.1-flash-lite",gatewaySlug:"google/gemini-3.1-flash-lite",order:["vertex"],providers:{vertex:{slug:"vertex",promptCost:.25,completionCost:1.5,cacheReadCost:.03}}},{canonicalId:"nvidia/nemotron-3-ultra-550b-a55b",gatewaySlug:"nvidia/nemotron-3-ultra-550b-a55b",order:["baseten","deepinfra"],providers:{baseten:{slug:"baseten",promptCost:.6,completionCost:2.4,cacheReadCost:.12},deepinfra:{slug:"deepinfra",promptCost:.5,completionCost:2.5,cacheReadCost:.15}}},{canonicalId:"thinkingmachines/inkling",gatewaySlug:"thinkingmachines/inkling",order:["baseten"],providers:{baseten:{slug:"baseten",promptCost:1,completionCost:4.05,cacheReadCost:.17}}},{canonicalId:"thinkingmachines/inkling-small",gatewaySlug:"thinkingmachines/inkling-small",order:["baseten"],providers:{baseten:{slug:"baseten",promptCost:.5,completionCost:1.2,cacheReadCost:.1}}},{canonicalId:"sakana/fugu-ultra",gatewaySlug:"sakana/fugu-ultra",order:["sakana"],providers:{sakana:{slug:"sakana",promptCost:5,completionCost:30,cacheReadCost:.5}}},{canonicalId:"xai/grok-4.5",gatewaySlug:"xai/grok-4.5",order:["xai"],providers:{xai:{slug:"xai",promptCost:2,completionCost:6,cacheReadCost:.5}}},{canonicalId:"xai/grok-4.6",gatewaySlug:"xai/grok-4.6",order:["xai"],providers:{xai:{slug:"xai",promptCost:2,completionCost:6,cacheReadCost:.5}}},{canonicalId:"meta/muse-spark-1.1",gatewaySlug:"meta/muse-spark-1.1",order:["meta"],providers:{meta:{slug:"meta",promptCost:1.25,completionCost:4.25,cacheReadCost:.15}}},{canonicalId:"meta/muse-spark-1.2",gatewaySlug:"meta/muse-spark-1.2",order:["meta"],providers:{meta:{slug:"meta",promptCost:1.25,completionCost:4.25,cacheReadCost:.15}}},{canonicalId:"meta/muse-spark-1.2-contributor",gatewaySlug:"meta/muse-spark-1.2-contributor",order:["meta"],providers:{meta:{slug:"meta",promptCost:.1,completionCost:.2,cacheReadCost:.002}}},{canonicalId:"tencent/hy3-paid",gatewaySlug:"tencent/hy3",order:["novita"],providers:{novita:{slug:"novita",promptCost:.14,completionCost:.58,cacheReadCost:.035},deepinfra:{slug:"deepinfra",promptCost:.14,completionCost:.58,cacheReadCost:.035}}},{canonicalId:"poolside/laguna-s-2.1-free",gatewaySlug:"poolside/laguna-s-2.1-free",order:["poolside"],providers:{poolside:{slug:"poolside",promptCost:0,completionCost:0,cacheReadCost:0}}},{canonicalId:"inclusionai/ling-3.0-flash-free",gatewaySlug:"inclusionai/ling-3.0-flash-free",order:["novita"],providers:{novita:{slug:"novita",promptCost:0,completionCost:0,cacheReadCost:0}}}],oR=[{canonicalId:"Qwen/Qwen3.8-Max",slug:"qwen3.8-max",promptCost:2,completionCost:6,cacheReadCost:.25},{canonicalId:"Qwen/Qwen3.7-Max",slug:"qwen3.7-max",promptCost:2.5,completionCost:7.5,cacheReadCost:.5},{canonicalId:"Qwen/Qwen3.7-Plus",slug:"qwen3.7-plus",promptCost:.4,completionCost:1.6,cacheReadCost:.08,contextTiers:[{maxInputTokens:256e3,promptCost:.4,completionCost:1.6,cacheReadCost:.08},{promptCost:1.2,completionCost:4.8,cacheReadCost:.24}]},{canonicalId:"Qwen/Qwen3.6-Plus",slug:"qwen3.6-plus",promptCost:.5,completionCost:3,cacheReadCost:.1,contextTiers:[{maxInputTokens:256e3,promptCost:.5,completionCost:3,cacheReadCost:.1},{promptCost:2,completionCost:6,cacheReadCost:.2}]},{canonicalId:"zai-org/GLM-5.2",slug:"glm-5.2",promptCost:1.4,completionCost:4.4,cacheReadCost:.26},{canonicalId:"moonshotai/Kimi-K2.7-Code",slug:"kimi-k2.7-code",promptCost:.95,completionCost:4,cacheReadCost:.19}],sR=[{canonicalId:"deepseek/deepseek-v4-flash",slug:"morph-dsv4flash",promptCost:.14,completionCost:.28,cacheReadCost:.0028}],aR=[{canonicalId:"stepfun/Step-3.5-Flash",openrouterSlug:"stepfun/step-3.5-flash",order:["parasail","deepinfra","siliconflow"],providers:{parasail:{slug:"parasail",promptCost:.1,completionCost:.3,cacheReadCost:.02,zdr:!0,noTraining:!0},deepinfra:{slug:"deepinfra",promptCost:.1,completionCost:.3,cacheReadCost:.02,zdr:!0,noTraining:!0},siliconflow:{slug:"siliconflow",promptCost:.1,completionCost:.3,zdr:!0,noTraining:!0}}},{canonicalId:"tencent/Hy3",openrouterSlug:"tencent/hy3:free",order:["novita"],providers:{novita:{slug:"novita",promptCost:0,completionCost:0,zdr:!1,noTraining:!1}}},{canonicalId:"gpt-5.6-terra",openrouterSlug:"openai/gpt-5.6-terra",order:["openai"],providers:{openai:{slug:"openai",promptCost:2,completionCost:12,cacheReadCost:.2,cacheWriteCost:2.5,zdr:!1,noTraining:!0}}},{canonicalId:"gpt-5.6-luna",openrouterSlug:"openai/gpt-5.6-luna",order:["openai"],providers:{openai:{slug:"openai",promptCost:.2,completionCost:1.2,cacheReadCost:.02,cacheWriteCost:.25,zdr:!1,noTraining:!0}}},{canonicalId:"google/gemini-3.7-flash",openrouterSlug:"google/gemini-3.7-flash",order:["google-vertex"],providers:{"google-vertex":{slug:"google-vertex",promptCost:.75,completionCost:3.75,cacheReadCost:.075,cacheWriteCost:.04167,zdr:!0,noTraining:!0}}}],iR={"claude-sonnet-4-20250514":ZA.SONNET_4_6.id,"claude-sonnet-4-5-20250929":ZA.SONNET_4_6.id,"claude-opus-4-5-20251101":ZA.OPUS_4_7.id,"claude-opus-4-6":ZA.OPUS_4_7.id,"claude-haiku-4-5":ZA.HAIKU_4_5.id},lR=ZA.DEEPSEEK_V4_FLASH.id,cR={[FA]:"Anthropic",[UA]:"OpenAI",[jA]:"Open Source",[BA]:"Open Source",[HA]:"Open Source"},dR=["Open Source","Anthropic","OpenAI","Google"],uR={"command-code":{id:"command-code",label:"Command Code",shortLabel:"cmd",description:"recommended",supportedModelProviders:[FA,UA,HA,jA,BA,GA],requiresAuth:!1,visibleInCoMode:!0,visibleInNormalMode:!0,showProviderLabelInSelector:!0},anthropic:{id:"anthropic",label:"Anthropic",shortLabel:"anth",description:"Claude Pro/Max",supportedModelProviders:[FA],requiresAuth:!0,visibleInCoMode:!0,visibleInNormalMode:!1,showProviderLabelInSelector:!1},"github-copilot":{id:"github-copilot",label:"GitHub Copilot",shortLabel:"copilot",description:"Copilot subscription",supportedModelProviders:[FA,UA],requiresAuth:!0,visibleInCoMode:!0,visibleInNormalMode:!1,showProviderLabelInSelector:!0},codex:{id:"codex",label:"OpenAI",shortLabel:"openai",description:"ChatGPT Pro/Plus subscription",supportedModelProviders:[UA],requiresAuth:!0,visibleInCoMode:!0,visibleInNormalMode:!1,showProviderLabelInSelector:!1}};function laneSupportsModel(e,t){if(e.includes(t.provider))return!0;const n=t.vendorLabel?.toLowerCase();return null!=n&&e.includes(n)}function buildModelGroups(e){const t=Object.values(ZA).filter(e=>!e.hidden),n=[];for(const r of Object.values(uR)){if(!("co"===e?r.visibleInCoMode:r.visibleInNormalMode))continue;const o=t.filter(e=>laneSupportsModel(r.supportedModelProviders,e));o.length>0&&n.push({providerId:r.id,label:r.label,models:o})}return n}__name(laneSupportsModel,"laneSupportsModel"),__name(buildModelGroups,"buildModelGroups");var mR=buildModelGroups("co"),pR=buildModelGroups("normal");function formatColoredUserSuffix(e){return isGenericUserName(e)?"":formatUserSuffix(e).replace(e,yt.cyan(e))}function getStartedLine(){return`${yt.dim("Run")} ${yt.cyan(getBinaryCommand())} ${yt.dim("to get started.")}`}function getLoginSuccessSuffix(e,t){const n=getLoginSuccessSuffixKind({userName:e,providerLabel:t});return"user"===n?formatColoredUserSuffix(e):"none"===n?"":" successfully"}function formatLoginSuccessStyled(e){const{userName:t,authFileName:n,providerLabel:r,providerWarning:o}=e,s=getLoginSuccessSuffix(t,r),a=r?` with ${yt.cyan(r)}`:"",i=[`${yt.green(it.tick)} ${yt.bold("Logged in")}${s}${a}`];return o&&i.push(` ${yt.yellow(it.warning)} ${yt.yellow(o)}`),i.push("",`${yt.dim("API key stored in")} ${yt.cyan(`~/.commandcode/${n}`)}`,getStartedLine()),i.join("\n")}function formatAlreadyLoggedInStyled(e){const t=formatColoredUserSuffix(e);return[`${yt.green(it.tick)} ${yt.bold("Already logged in")}${t}`,"",getStartedLine()].join("\n")}new Set(["cc2@www3.in","cc3@www3.in","cc4@www3.in","cc5@www3.in","cc6@www3.in","cc7@www3.in","cc8@www3.in","cc9@www3.in","cc10@www3.in"].map(e=>e.toLowerCase())),__name(formatColoredUserSuffix,"formatColoredUserSuffix"),__name(getStartedLine,"getStartedLine"),__name(getLoginSuccessSuffix,"getLoginSuccessSuffix"),__name(formatLoginSuccessStyled,"formatLoginSuccessStyled"),__name(formatAlreadyLoggedInStyled,"formatAlreadyLoggedInStyled"),Ex(),Px(),Ex(),Px(),Ex(),Ex(),Ex();var gR=["low","medium","high","xhigh","max"],hR={SONNET_5:{id:"claude-sonnet-5",inputModalities:["text","image"],provider:"anthropic",spec:"chatComplete",label:"Claude Sonnet 5",name:"Claude Sonnet 5",description:"best combo of speed & intelligence (recommended)",reasoning:!0,reasoningEfforts:gR,contextWindow:1e6},SONNET_4_6:{id:"claude-sonnet-4-6",inputModalities:["text","image"],provider:"anthropic",spec:"chatComplete",label:"Claude Sonnet 4.6",name:"Claude Sonnet 4.6",description:"prev Sonnet, still fast & capable",reasoningEfforts:gR,contextWindow:1e6},FABLE_5:{id:"claude-fable-5",inputModalities:["text","image"],provider:"anthropic",spec:"chatComplete",label:"Claude Fable 5",name:"Claude Fable 5",description:"most capable for demanding reasoning & long-horizon agents",reasoning:!0,reasoningEfforts:gR,contextWindow:1e6},OPUS_5:{id:"claude-opus-5",inputModalities:["text","image"],provider:"anthropic",spec:"chatComplete",label:"Claude Opus 5",name:"Claude Opus 5",description:"most intelligent Opus for agents and coding",reasoning:!0,reasoningEfforts:gR,contextWindow:1e6},OPUS_4_8:{id:"claude-opus-4-8",inputModalities:["text","image"],provider:"anthropic",spec:"chatComplete",label:"Claude Opus 4.8",name:"Claude Opus 4.8",description:"prev flagship, still strong for agents and coding",reasoning:!0,reasoningEfforts:gR,contextWindow:1e6},OPUS_4_7:{id:"claude-opus-4-7",inputModalities:["text","image"],provider:"anthropic",spec:"chatComplete",label:"Claude Opus 4.7",name:"Claude Opus 4.7",description:"older Opus, still strong for agents and coding",reasoning:!0,reasoningEfforts:gR,contextWindow:1e6},HAIKU_4_5:{id:"claude-haiku-4-5-20251001",inputModalities:["text","image"],provider:"anthropic",spec:"chatComplete",label:"Claude Haiku 4.5",name:"Claude Haiku 4.5",description:"fastest & most compact, great for quick tasks",contextWindow:2e5}};function matchesAnthropicModel(e){return e.toLowerCase().includes("claude")}Object.values(hR).map(e=>e.id),__name(matchesAnthropicModel,"matchesAnthropicModel");var fR=Object.values(hR).map(e=>({id:e.id,provider:"anthropic",contextWindow:e.contextWindow,reasoningEfforts:"reasoningEfforts"in e?e.reasoningEfforts:void 0,inputModalities:e.inputModalities,interleavedThinking:!0}));Px();var yR="9d1c250a-e61b-44d9-88ed-5944d1962f5e",SR="https://console.anthropic.com/oauth/code/callback",wR="anthropic",kR="x-oauth-token",vR="x-oauth-provider";function defaultFetch3(){return globalThis.fetch}function buildAuthorizeUrl(e){return`https://claude.ai/oauth/authorize?${encodeQuery({code:"true",client_id:yR,response_type:"code",redirect_uri:SR,scope:"org:create_api_key user:profile user:inference",code_challenge:e.challenge,code_challenge_method:"S256",state:e.state})}`}function encodeQuery(e){return Object.entries(e).map(([e,t])=>`${encodeURIComponent(e)}=${encodeURIComponent(t)}`).join("&")}function generateState(){return R(32).toString("base64url")}function toCredential(e){return{kind:"oauth",token:e.accessToken,refreshToken:e.refreshToken,expiresAt:e.expiresAt}}function isStale(e,t){return"number"==typeof e.expiresAt&&e.expiresAt-3e5<=t}function toTokenResult2(e,t){if(!e.access_token)throw new Error("OAuth token response had no access_token");return{accessToken:e.access_token,refreshToken:e.refresh_token??t.fallbackRefreshToken,expiresAt:"number"==typeof e.expires_in?t.now()+1e3*e.expires_in:void 0,tokenType:e.token_type,scope:e.scope}}async function postAnthropicToken(e){const t=e.fetchImpl??defaultFetch3(),n=await t("https://console.anthropic.com/v1/oauth/token",{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify(e.body)});if(!1===n.ok){const e=n.text?await n.text():"";throw new Error(`Token exchange failed: ${e}`)}return toTokenResult2(await n.json(),{now:e.now,fallbackRefreshToken:e.fallbackRefreshToken})}function createAnthropicProvider(e={}){const{fetchImpl:t,now:n}=e,r=n??(()=>Date.now()),o=__name(async e=>{if(!e.refreshToken)throw new Error("Cannot refresh Anthropic OAuth: no refresh token stored");return toCredential(await postAnthropicToken({body:{grant_type:"refresh_token",client_id:yR,refresh_token:e.refreshToken},fetchImpl:t,now:r,fallbackRefreshToken:e.refreshToken}))},"refreshCredential"),s=new Map,a=__name(async e=>{const t=s.get(wR);if(t)return t;const n=(async()=>{try{const t=await o(e.credential);return await e.store.set({provider:wR,credential:t}),t}catch{return e.credential}finally{s.delete(wR)}})();return s.set(wR,n),n},"refreshOnce");return{id:wR,displayName:"Anthropic",models:fR,matchesModelId:matchesAnthropicModel,transport:{kind:"gateway",route:"/alpha/generate"},auth:{methods:[{kind:"oauth",label:"OAuth (paste code)",authorize:__name(async()=>{const e=generatePkce(),n=generateState();return{type:"pending",url:buildAuthorizeUrl({challenge:e.challenge,state:n}),instructions:"Open the URL and approve access, then copy the authorization code Anthropic shows you (it looks like `code#state`) and paste it back here.",prompt:{label:"Paste the authorization code"},callback:__name(async o=>{const s=(o?.code??"").trim();if(!s)throw new Error("No authorization code provided");const a=s.indexOf("#"),i=(-1===a?s:s.slice(0,a)).trim(),l=-1===a?"":s.slice(a+1).trim();if(!i)throw new Error("No authorization code provided");if(l&&l!==n)throw new Error("OAuth state parameter mismatch");return toCredential(await postAnthropicToken({body:{grant_type:"authorization_code",client_id:yR,code:i,redirect_uri:SR,code_verifier:e.verifier,state:n},fetchImpl:t,now:r}))},"callback")}},"authorize"),refresh:__name(async e=>o(e.credential),"refresh")}],loader:__name(async e=>{const{credential:t,store:n}=e;if(!t||"oauth"!==t.kind||!t.token)return{};const o=t.refreshToken&&isStale(t,r())?await a({credential:t,store:n}):t;return o.token?{headers:{[kR]:`Bearer ${o.token}`,[vR]:"anthropic"}}:{}},"loader")}}}__name(defaultFetch3,"defaultFetch"),__name(buildAuthorizeUrl,"buildAuthorizeUrl"),__name(encodeQuery,"encodeQuery"),__name(generateState,"generateState"),__name(toCredential,"toCredential"),__name(isStale,"isStale"),__name(toTokenResult2,"toTokenResult"),__name(postAnthropicToken,"postAnthropicToken"),__name(createAnthropicProvider,"createAnthropicProvider");var CR=createAnthropicProvider();Ex(),Ex();var bR=atob("SXYxLmI1MDdhMDhjODdlY2ZlOTg="),ER={"User-Agent":"GitHubCopilotChat/0.35.0","Editor-Version":"vscode/1.107.0","Editor-Plugin-Version":"copilot-chat/0.35.0","Copilot-Integration-Id":"vscode-chat"},TR="x-oauth-token",PR="x-oauth-provider",MR="copilot",xR=3e5,IR=["COPILOT_GITHUB_TOKEN","GH_TOKEN","GITHUB_TOKEN"];function defaultSleep3(e){return new Promise(t=>setTimeout(t,e))}async function mintCopilotToken(e){const t=await e.fetchImpl("https://api.github.com/copilot_internal/v2/token",{method:"GET",headers:{Authorization:`token ${e.githubToken}`,Accept:"application/json",...ER}});if(!1===t.ok){const e=t.text?await t.text():"";throw new Error(`Copilot token request failed: ${t.status??"?"} ${e}`.trim())}const n=await t.json();if(!n.token||"number"!=typeof n.expires_at)throw new Error("Copilot token response missing required fields");return{token:n.token,expiresAt:1e3*n.expires_at-xR}}function copilotJwtStillValid(e){const{credential:t,now:n}=e;return"number"==typeof t.expiresAt&&t.expiresAt>n()+xR}function createCopilotProvider(e={}){const t=e.fetchImpl??globalThis.fetch,n=e.now??(()=>Date.now()),r=e.sleep??defaultSleep3,o=e.env??process.env,s=__name(async e=>{for(const n of IR){const r=o[n];if(r)try{const n=await mintCopilotToken({githubToken:r,fetchImpl:t}),o={kind:"oauth",token:n.token,refreshToken:r,expiresAt:n.expiresAt};return await e.store.set({provider:MR,credential:o}),o}catch{continue}}return null},"credentialFromEnv"),a=__name(async e=>{const{credential:n}=e;if(!n.refreshToken)throw new Error("Cannot refresh Copilot token: missing GitHub access token");const r=await mintCopilotToken({githubToken:n.refreshToken,fetchImpl:t});return{kind:"oauth",token:r.token,refreshToken:n.refreshToken,expiresAt:r.expiresAt}},"refreshCredential");return{id:MR,displayName:"GitHub Copilot",transport:{kind:"gateway",route:"/alpha/generate"},auth:{methods:[{kind:"oauth",label:"Sign in with GitHub (device code)",authorize:__name(async()=>{const e=await requestDeviceCode({deviceAuthorizationEndpoint:"https://github.com/login/device/code",clientId:bR,scopes:["read:user"],fetchImpl:t});return{type:"pending",url:e.verificationUri,instructions:`Copy this code: ${e.userCode}`,callback:__name(async()=>{const o=await pollDeviceToken({tokenEndpoint:"https://github.com/login/oauth/access_token",clientId:bR,deviceCode:e.deviceCode,intervalMs:"number"==typeof e.interval?1e3*e.interval:void 0,timeoutMs:"number"==typeof e.expiresIn?1e3*e.expiresIn:void 0,fetchImpl:t,now:n,sleep:r}),s=await mintCopilotToken({githubToken:o.accessToken,fetchImpl:t});return{kind:"oauth",token:s.token,refreshToken:o.accessToken,expiresAt:s.expiresAt}},"callback")}},"authorize"),refresh:__name(async e=>a({credential:e.credential}),"refresh")}],loader:__name(async e=>{const{credential:t,store:r}=e;let o=t;return o&&"oauth"===o.kind&&o.token||(o=await s({store:r}),o)?(!copilotJwtStillValid({credential:o,now:n})&&o.refreshToken&&(o=await a({credential:o}),await r.set({provider:MR,credential:o})),{headers:{[TR]:`Bearer ${o.token}`,[PR]:"github-copilot"}}):{}},"loader")}}}Px(),__name(defaultSleep3,"defaultSleep"),__name(mintCopilotToken,"mintCopilotToken"),__name(copilotJwtStillValid,"copilotJwtStillValid"),__name(createCopilotProvider,"createCopilotProvider");var AR=createCopilotProvider();Ex(),Ex();var RR=["low","medium","high","xhigh","max"],OR=["low","medium","high","xhigh"],DR={GPT_5_6_SOL:{id:"gpt-5.6-sol",inputModalities:["text","image"],provider:"openai",spec:"responses",label:"GPT-5.6 Sol",name:"GPT-5.6 Sol",description:"frontier model for complex professional work",reasoning:!0,reasoningEfforts:RR,contextWindow:105e4},GPT_5_6_TERRA:{id:"gpt-5.6-terra",inputModalities:["text","image"],provider:"openai",spec:"responses",label:"GPT-5.6 Terra",name:"GPT-5.6 Terra",description:"balances intelligence and cost",reasoning:!0,reasoningEfforts:RR,contextWindow:105e4},GPT_5_6_LUNA:{id:"gpt-5.6-luna",inputModalities:["text","image"],provider:"openai",spec:"responses",label:"GPT-5.6 Luna",name:"GPT-5.6 Luna",description:"optimized for cost-sensitive workloads",reasoning:!0,reasoningEfforts:RR,contextWindow:105e4},GPT_5_5:{id:"gpt-5.5",inputModalities:["text","image"],provider:"openai",spec:"responses",label:"GPT-5.5",name:"GPT-5.5",description:"latest frontier model for general complex work",reasoning:!0,reasoningEfforts:OR},GPT_5_4:{id:"gpt-5.4",inputModalities:["text","image"],provider:"openai",spec:"responses",label:"GPT-5.4",name:"GPT-5.4",description:"frontier model for general complex work",reasoning:!0,reasoningEfforts:OR,contextWindow:4e5},GPT_5_3_CODEX:{id:"gpt-5.3-codex",inputModalities:["text","image"],provider:"openai",spec:"responses",label:"GPT-5.3 Codex",name:"GPT-5.3 Codex",description:"frontier coding model",reasoning:!0,reasoningEfforts:OR,contextWindow:4e5},GPT_5_4_MINI:{id:"gpt-5.4-mini",inputModalities:["text","image"],provider:"openai",spec:"responses",label:"GPT-5.4 Mini",name:"GPT-5.4 Mini",description:"fast, cost-effective model for everyday tasks",reasoning:!0,reasoningEfforts:["low","medium","high"],contextWindow:4e5}};Object.values(DR).map(e=>e.id);var LR=Object.values(DR).map(e=>({id:e.id,provider:"openai",contextWindow:"contextWindow"in e?e.contextWindow:void 0,reasoningEfforts:e.reasoningEfforts,inputModalities:e.inputModalities}));Ex();var NR="app_EMoamEEZ73f0CkXaXp7hrann",$R="https://auth.openai.com",_R=`${$R}/oauth/authorize`,FR=`${$R}/oauth/token`,UR="/auth/callback",jR=`http://localhost:1455${UR}`,BR="x-oauth-token",WR="x-oauth-provider",HR="openai";function generateState2(){return R(32).toString("base64url")}function buildAuthorizeUrl2(e){const t=new URLSearchParams({response_type:"code",client_id:NR,redirect_uri:jR,scope:"openid profile email offline_access",code_challenge:e.challenge,code_challenge_method:"S256",id_token_add_organizations:"true",codex_cli_simplified_flow:"true",state:e.state,originator:"codex_cli_rs"});return`${_R}?${t.toString()}`}function tokenResultToCredential(e){return{kind:"oauth",token:e.accessToken,...e.refreshToken?{refreshToken:e.refreshToken}:{},...void 0!==e.expiresAt?{expiresAt:e.expiresAt}:{}}}function isExpiring2(e,t){return"number"==typeof e.expiresAt&&e.expiresAt-3e5<=t()}async function refreshCredential(e){return tokenResultToCredential(await refreshAccessToken({tokenEndpoint:FR,refreshToken:e.refreshToken,clientId:NR,fetchImpl:e.deps.fetchImpl,now:e.deps.now}))}function startLoopback(){return createLoopbackCallbackServer({port:1455,host:"127.0.0.1",path:UR,successHtml:"<!doctype html>\n<html>\n <head><title>Command Code — OpenAI Authorization Successful</title>\n <style>body{font-family:system-ui;display:flex;justify-content:center;align-items:center;height:100vh;margin:0;background:#0f0f0f;color:#eee}h1{color:#7ee787}</style>\n </head>\n <body><div><h1>Authorization successful</h1><p>You can close this window and return to Command Code.</p></div>\n <script>setTimeout(()=>window.close(),2000)<\/script></body>\n</html>"})}async function awaitCodeAndExchange(e){const{loopback:t,verifier:n,expectedState:r,deps:o}=e;try{const{code:e,state:s}=await withTimeout2(t.waitForCode(),3e5);if(s!==r)throw new Error("OpenAI OAuth: state mismatch — possible CSRF attempt");const a=await exchangeCodeForToken({tokenEndpoint:FR,code:e,verifier:n,clientId:NR,redirectUri:jR,fetchImpl:o.fetchImpl,now:o.now});if(!a.refreshToken)throw new Error("OpenAI OAuth: issuer did not return a refresh_token");return tokenResultToCredential(a)}finally{t.close()}}function withTimeout2(e,t){return new Promise((n,r)=>{const o=setTimeout(()=>{r(new Error("OpenAI OAuth timed out waiting for browser callback"))},t);"function"==typeof o.unref&&o.unref(),e.then(e=>{clearTimeout(o),n(e)},e=>{clearTimeout(o),r(e instanceof Error?e:new Error(String(e)))})})}async function freshCredential(e){const{credential:t,store:n,deps:r,inFlight:o}=e,s=t.refreshToken;if(!s||!isExpiring2(t,r.now))return t;const a=o.get(HR);if(a)return a;const i=(async()=>{try{const e=await refreshCredential({refreshToken:s,deps:r});return await n.set({provider:HR,credential:e}),e}catch{return t}finally{o.delete(HR)}})();return o.set(HR,i),i}function createOpenAIProvider(e={}){const t={fetchImpl:e.fetchImpl,now:e.now??(()=>Date.now())},n=new Map;return{id:HR,displayName:"OpenAI",models:LR,transport:{kind:"gateway",route:"/alpha/generate"},auth:{methods:[{kind:"oauth",label:"Sign in with OpenAI",authorize:__name(async()=>{const e=generatePkce(),n=generateState2(),r=await startLoopback();return{type:"pending",url:buildAuthorizeUrl2({challenge:e.challenge,state:n}),instructions:"Open this URL in your browser and approve access. After you authorize, OpenAI redirects back to this machine automatically — no copy/paste needed.",callback:__name(()=>awaitCodeAndExchange({loopback:r,verifier:e.verifier,expectedState:n,deps:t}),"callback")}},"authorize"),refresh:__name(async({credential:e})=>{if("oauth"!==e.kind||!e.refreshToken)throw new Error("OpenAI refresh requires an oauth credential with a refresh token");return refreshCredential({refreshToken:e.refreshToken,deps:t})},"refresh")}],loader:__name(async({credential:e,store:r})=>{if(!e||"oauth"!==e.kind||!e.token)return{};const o=(await freshCredential({credential:e,store:r,deps:t,inFlight:n})).token??e.token;return{headers:{[BR]:`Bearer ${o}`,[WR]:"codex"}}},"loader")}}}Px(),Px(),__name(generateState2,"generateState"),__name(buildAuthorizeUrl2,"buildAuthorizeUrl"),__name(tokenResultToCredential,"tokenResultToCredential"),__name(isExpiring2,"isExpiring"),__name(refreshCredential,"refreshCredential"),__name(startLoopback,"startLoopback"),__name(awaitCodeAndExchange,"awaitCodeAndExchange"),__name(withTimeout2,"withTimeout"),__name(freshCredential,"freshCredential"),__name(createOpenAIProvider,"createOpenAIProvider");var GR=[CR,AR,createOpenAIProvider()],VR=GR;function uniqueProviderModules(e){const t=new Map;for(const n of e)t.has(n.id)||t.set(n.id,n);return[...t.values()]}function providerModuleSpecifier(e,n){return e.startsWith(".")||t.isAbsolute(e)?p(t.resolve(n,e)).href:e}async function importProviderModule(e,t){return import(providerModuleSpecifier(e,t))}async function loadInstalledProviderModules(){const e=createNodeRuntime(),t=createConfigStore({config:await loadCommandCodeConfig({runtime:e}),runtime:e}).getProviders(),n=await loadProviderModules({entries:t,builtins:VR,importModule:__name(t=>importProviderModule(t,e.cwd()),"importModule")}),r={};for(const[e,n]of Object.entries(t))r[e]=n.module??e;return{modules:uniqueProviderModules([...VR,...n.modules]),errors:n.errors,sources:r}}__name(uniqueProviderModules,"uniqueProviderModules"),__name(providerModuleSpecifier,"providerModuleSpecifier"),__name(importProviderModule,"importProviderModule"),__name(loadInstalledProviderModules,"loadInstalledProviderModules");var zR=createCommandProviderAuthService({modules:VR,providerToModuleId:zw});async function providerAuthHeaders(e){return zR.providerAuthHeaders(e)}async function hasProviderCredential(e){return zR.hasProviderCredential(e)}async function providerLogin(e){return zR.login(e)}async function providerLogout(e){return zR.logout(e)}function resolveProviderAuthTarget(e){const t=resolveCommandProviderId(e.provider);if(!t)return{success:!1,error:`Unknown provider '${e.provider}'. Supported providers: anthropic, copilot, openai.`};const n=vo[t],r=getProviderDisplayName(t);return n?.requiresAuth?{success:!0,provider:t,displayName:r}:{success:!1,error:`${r} does not use provider ${e.action}. Run cmd ${e.action} without a provider for Command Code account auth.`}}function printProviderInstructions(e){console.log(yt.yellow(` ${e}`)),console.log()}function printLoginLink(e){console.log(),console.log(yt.dim(" Login: ")+createOSC8Link(e,"Open auth page ↗")),console.log()}async function openAuthPage(e,t){await wt(e,t).catch(()=>{console.log(yt.dim(` Could not auto-open browser. Open: ${e}`))})}async function confirmOpenAfterCode(){const e=await Be({message:"Press Enter to open GitHub and paste the code there.",active:"Open",inactive:"Cancel",initialValue:!0});if(We(e)||!0!==e)throw new Error("GitHub Copilot authentication cancelled")}function extractDeviceCode(e){const t=e.match(/copy\s+this\s+code:\s*([^\s]+)/i);return t?.[1]??null}async function printDeviceCode(e){const t=extractDeviceCode(e);if(!t)return void printProviderInstructions(e);const n=await writeClipboardText(t)?yt.dim(" (copied)"):"";console.log(` ${yt.yellow("Logging into Copilot, use this code:")} ${yt.bold(t)}${n}`),console.log()}async function performProviderAuth(e){const{provider:t}=e,n=getProviderDisplayName(t);try{let e=!0;const r=t===Fr.COPILOT;if(!r){const t=await Be({message:`Open browser to sign in with ${n}?`,initialValue:!0});if(We(t))return{success:!1,error:`${n} authentication cancelled`};e=!0===t}return await providerLogin({provider:t,onPending:__name(async t=>{if(!t.prompt){if(r)return await printDeviceCode(t.instructions),await confirmOpenAfterCode(),await openAuthPage(t.url),console.log(),void console.log(` ${yt.dim(it.circleFilled)} ${yt.dim("Waiting for GitHub...")}`);printProviderInstructions(t.instructions)}if(printLoginLink(t.url),!0===e&&await openAuthPage(t.url,t.prompt?void 0:{wait:!1,background:!0}),t.prompt){printProviderInstructions(t.instructions);const e=await He({message:t.prompt.label,mask:"*"});if(We(e)||!String(e).trim())throw new Error("No authorization code provided");return{code:String(e).trim()}}console.log(` ${yt.dim(it.circleFilled)} ${yt.dim("Waiting for authorization...")}`)},"onPending")}),{success:!0}}catch(e){const n=e instanceof Error?e.message:"Unknown error";return dlog("[ProviderAuth] performProviderAuth failed",{provider:t,error:n}),{success:!1,error:n}}}__name(providerAuthHeaders,"providerAuthHeaders"),__name(hasProviderCredential,"hasProviderCredential"),configureCommandUserConfigHost({providerAuthHeaders:providerAuthHeaders,hasProviderCredential:hasProviderCredential,log:__name((e,t)=>{void 0!==t?dlog(e,t):dlog(e)},"log"),onOAuthEnforcementEvent:__name(e=>{"disabled-by-flag"!==e.type?"enabled-by-flag"!==e.type?"resolved-provider"!==e.type?dlog("[Auth] using OAuth (persisted from previous --co)"):dlog("[Auth] --co resolved provider",e.provider):dlog("[Auth] OAuth enabled via --co flag"):dlog("[Auth] OAuth disabled via --xco flag")},"onOAuthEnforcementEvent")}),__name(providerLogin,"providerLogin"),__name(providerLogout,"providerLogout"),__name(resolveProviderAuthTarget,"resolveProviderAuthTarget"),__name(printProviderInstructions,"printProviderInstructions"),__name(printLoginLink,"printLoginLink"),__name(openAuthPage,"openAuthPage"),__name(confirmOpenAfterCode,"confirmOpenAfterCode"),__name(extractDeviceCode,"extractDeviceCode"),__name(printDeviceCode,"printDeviceCode"),__name(performProviderAuth,"performProviderAuth");var qR=__name(({message:e})=>Xe.createElement(Xe.Fragment,null,Xe.createElement(Ve,{color:Rx.CYAN},Xe.createElement(gt,{type:"dots"})),Xe.createElement(Ve,null," ",e)),"LoadingIndicator"),KR=__name(({message:e})=>Xe.createElement(Xe.Fragment,null,Xe.createElement(Ve,{color:Rx.GREEN},it.tick),Xe.createElement(Ve,null," ",e)),"SuccessIndicator"),YR=__name(({children:e})=>Xe.createElement(Ge,{flexDirection:"column"},Xe.createElement(Ve,null," "),Xe.createElement(Ge,null,e)),"StatusContainer");async function checkExistingAuth(e){return checkExistingCommandAuth({runtime:getCommandConfigRuntime(),authFilePath:getAuthFile(e)})}function buildAlreadyLoggedInMessage(e){return formatAlreadyLoggedInStyled(e)}function buildSuccessMessage(e,t){return formatLoginSuccessStyled({userName:e,authFileName:t})}function showAuthIntro(){console.log("\n"),_e.intro(heading({text:"Command Code Authentication"}))}function showLoginCancelMessage(e){Fe(`${it.cross} ${e}`)}function printMessage(e){console.log(""),console.log(e),console.log("")}function runLoginWithApiKeyFlow(){return new Promise(e=>{const{unmount:t}=Ke(Xe.createElement(bA,{onComplete:__name(n=>{setTimeout(()=>{t(),e(n)},100)},"onComplete")}),{stdin:process.stdin,stdout:process.stdout,stderr:process.stderr,exitOnCtrlC:!1})})}__name(checkExistingAuth,"checkExistingAuth"),__name(buildAlreadyLoggedInMessage,"buildAlreadyLoggedInMessage"),__name(buildSuccessMessage,"buildSuccessMessage"),__name(showAuthIntro,"showAuthIntro"),__name(showLoginCancelMessage,"showLoginCancelMessage"),__name(printMessage,"printMessage"),__name(runLoginWithApiKeyFlow,"runLoginWithApiKeyFlow");var JR=__name(({env:e,onComplete:t})=>{const[n,r]=et("checking"),[o,s]=et(null);return nt(()=>{checkExistingAuth(e).then(e=>{s(e),r(e.isAuthenticated?"logged_in":"not_logged_in")})},[e]),nt(()=>{if("checking"!==n&&null!==o){const e=setTimeout(()=>t(o),100);return()=>clearTimeout(e)}},[n,o,t]),Xe.createElement(YR,null,"checking"===n&&Xe.createElement(qR,{message:"Checking authentication status..."}),"logged_in"===n&&Xe.createElement(KR,{message:"Authenticated"}),"not_logged_in"===n&&Xe.createElement(KR,{message:"Ready to log in"}))},"AuthCheckSpinner");async function checkAuthWithSpinner(e){return new Promise(t=>{const{unmount:n}=Ke(Xe.createElement(JR,{env:e,onComplete:e=>{n(),t(e)}}),{stdout:process.stdout,stderr:process.stderr,stdin:process.stdin})})}async function performProviderLogin(e){const t=resolveProviderAuthTarget({provider:e.provider,action:"login"});if(!t.success)return{success:!1,error:t.error};try{const n=await(e.authenticateProvider??performProviderAuth)({provider:t.provider});return n.success?(await(e.persistProvider??persistProviderSelection)(t.provider),{success:!0,provider:t.provider,message:`Logged in to ${t.displayName}`}):{success:!1,provider:t.provider,error:n.error??`${t.displayName} authentication failed`}}catch(e){return{success:!1,provider:t.provider,error:getErrorMessage(e)}}}async function runLogin(){await applyStartupTheme();const e=getApiEnv();return runLoginSequence({checkExistingAuth:__name(()=>checkAuthWithSpinner(e),"checkExistingAuth"),showAlreadyLoggedIn:__name(({userName:e})=>printMessage(buildAlreadyLoggedInMessage(e)),"showAlreadyLoggedIn"),showIntro:showAuthIntro,runCommandLogin:runLoginWithApiKeyFlow,showLoginCancelled:__name(({message:e})=>showLoginCancelMessage(e),"showLoginCancelled"),trackFirstInstall:__name(()=>detectAndTrackFirstInstall({loadUserConfig:loadUserConfig,updateUserConfig:updateUserConfig,trackLifecycleEvent:__name(e=>trackLifecycleEvent({...e,isTelemetryEnabled:isTelemetryEnabled,createClient:__name(()=>createApiClient({baseUrl:getApiBaseUrl()}),"createClient"),log:dlog}),"trackLifecycleEvent"),getCliVersion:__name(()=>getPackageJson(import.meta.url).version??"unknown","getCliVersion"),log:dlog}),"trackFirstInstall"),showLoginSuccess:__name(({userName:t})=>printMessage(buildSuccessMessage(t,getCommandAuthFileName(e))),"showLoginSuccess"),log:dlog})}async function loginAction(e){try{await applyStartupTheme();const t=e?.trim();if(t){const e=await performProviderLogin({provider:t});e.success||(Fe(`${it.cross} Login failed: ${e.error}`),process.exit(1)),Ue(yt.green(`${it.tick} ${e.message}`)),process.exit(0)}await runLogin(),process.exit(0)}catch(e){isUserCancellation(e)&&process.exit(0),console.error(`${it.cross} Login failed:`,getErrorMessage(e)),process.exit(1)}}__name(checkAuthWithSpinner,"checkAuthWithSpinner"),__name(performProviderLogin,"performProviderLogin"),__name(runLogin,"runLogin"),__name(loginAction,"loginAction");var QR=new Le("login").description("Login with Command Code account or a provider").argument("[provider]","Provider to log in with").allowUnknownOption().allowExcessArguments().action(loginAction);function performLogout(){return performCommandLogout({runtime:getCommandConfigRuntime(),authFilePath:getAuthFile(),env:process.env,envVarName:oo})}async function performProviderLogout(e){const t=resolveProviderAuthTarget({provider:e.provider,action:"logout"});if(!t.success)return{success:!1,error:t.error};try{const n=await(e.logoutProvider??providerLogout)({provider:t.provider});return{success:!0,provider:t.provider,removed:n,message:n?`Logged out of ${t.displayName}`:`No saved ${t.displayName} credential found`}}catch(e){const n=e instanceof Error?e.message:"Unknown error";return{success:!1,provider:t.provider,error:`Failed to log out of ${t.displayName}: ${n}`}}}function readLogoutUserName(){return getCommandAuthUserName({runtime:getCommandConfigRuntime(),path:getAuthFile()})}Ex(),Px(),__name(performLogout,"performLogout"),__name(performProviderLogout,"performProviderLogout"),__name(readLogoutUserName,"readLogoutUserName");var XR=__name(({userName:e})=>{const t=e?`Logging out ${e}...`:"Logging out...";return Xe.createElement(Xe.Fragment,null,Xe.createElement(Ve,{color:Rx.CYAN},Xe.createElement(gt,{type:"dots"})),Xe.createElement(Ve,null," ",t))},"LoadingIndicator"),ZR=__name(({userName:e,wasAuthenticated:t})=>{const n=!1===t?"Not currently authenticated":formatLogoutSuccess(e);return Xe.createElement(Xe.Fragment,null,Xe.createElement(Ve,{color:Rx.GREEN},it.tick),Xe.createElement(Ve,null," ",n))},"SuccessIndicator"),eO=__name(({errorMessage:e})=>Xe.createElement(Xe.Fragment,null,Xe.createElement(Ve,{color:Rx.RED},it.cross),Xe.createElement(Ve,{color:Rx.RED}," Logout failed: ",e)),"ErrorIndicator"),tO=__name(({status:e,errorMessage:t,userName:n,wasAuthenticated:r})=>"loading"===e?Xe.createElement(XR,{userName:n}):"success"===e?Xe.createElement(ZR,{userName:n,wasAuthenticated:r}):Xe.createElement(eO,{errorMessage:t}),"StatusDisplay"),nO=__name(({onComplete:e,userName:t})=>{const[n,r]=et("loading"),[o,s]=et(""),[a,i]=et(null);return nt(()=>{performLogout().then(e=>{i(e),e.success?r("success"):(s(e.error||"Unknown error"),r("error"))})},[]),nt(()=>{if(("success"===n||"error"===n)&&a){const t=setTimeout(()=>e(a),100);return()=>clearTimeout(t)}},[n,a,e]),Xe.createElement(Ge,{flexDirection:"column"},Xe.createElement(Ve,null," "),Xe.createElement(Ge,null,Xe.createElement(tO,{status:n,errorMessage:o,userName:t,wasAuthenticated:a?.wasAuthenticated})))},"LogoutSpinner");function printWarnings(e){0!==e.length&&(console.warn(yt.yellow("\nLogout completed with warnings:")),e.forEach(e=>console.warn(yt.yellow(` - ${e}`))))}async function renderLogoutUI(){let e;await applyStartupTheme();try{const t=await readLogoutUserName();e=t||void 0}catch{e=void 0}return new Promise(t=>{const{unmount:n}=Ke(Xe.createElement(nO,{onComplete:e=>{n(),t(e)},userName:e}),{stdout:process.stdout,stderr:process.stderr,stdin:process.stdin})})}async function logoutAction(e){const t=e?.trim();if(t){const e=await performProviderLogout({provider:t});e.success||(console.error(`${it.cross} ${e.error}`),process.exit(1)),console.log(`${it.tick} ${e.message}`),process.exit(0)}const n=await renderLogoutUI();n.success||process.exit(1),printWarnings(n.warnings),console.log(""),process.exit(0)}__name(printWarnings,"printWarnings"),__name(renderLogoutUI,"renderLogoutUI"),__name(logoutAction,"logoutAction");var rO=new Le("logout").description("Log out of Command Code or a provider").argument("[provider]","Provider to log out from").allowUnknownOption().allowExcessArguments().action(logoutAction);function checkAuthStatus(e){return checkCommandAuthStatus({runtime:getCommandConfigRuntime(),path:getAuthFile(e),env:process.env})}async function buildStatusJson(){return resolveCommandAuthStatusJson({version:getPackageJson(import.meta.url).version??"unknown",runtime:getCommandConfigRuntime(),apiEnv:getApiEnv(),env:process.env})}async function statusAction(e){if(e.json){const e=await buildStatusJson(),t=!e.authenticated||e.error?1:0;return void process.stdout.write(`${JSON.stringify(e)}\n`,()=>process.exit(t))}const t=kt("Checking authentication status...").start();try{const e=getApiEnv(),n=await checkAuthStatus(e);n.error&&(t.fail(yt.red(`Status check failed: ${n.error}`)),process.exit(1)),n.authenticated||(t.fail(yt.red("Not authenticated")),console.log(""),console.log(`${yt.dim("Run")} ${yt.cyan(`${getBinaryCommand()} auth login`)} ${yt.dim("to authenticate.")}`),console.log(""),process.exit(1));const r=isGenericCommandAuthUserName(n.userName)?"":` as ${yt.cyan(n.userName)}`;t.succeed("Authentication verified"),console.log(`${yt.green(it.tick)} ${yt.bold("Authenticated")}${r}`),console.log(` ${yt.dim("Provider:")} ${yt.cyan("Command Code")}`),n.fromEnv&&console.log(` ${yt.dim("Source:")} ${yt.cyan(`$${oo}`)} ${yt.dim("(env var)")}`),console.log(""),process.exit(0)}catch(e){t.fail(yt.red(`Status check failed: ${e instanceof Error?e.message:"Unknown error"}`)),process.exit(1)}}Ex(),Px(),__name(checkAuthStatus,"checkAuthStatus"),__name(buildStatusJson,"buildStatusJson"),__name(statusAction,"statusAction");var oO=new Le("status").description("Show authentication status").option("--json","Output status as JSON for automation").allowUnknownOption().allowExcessArguments().action(statusAction);function parseValue(e){try{const t=JSON.parse(e);if("string"==typeof t||"boolean"==typeof t||"number"==typeof t)return t}catch{}return e}function rowValue(e){return e.currentValue}function rowMatchesScope(e,t){return"effective"===t||e.scope===t}function printValue(e,t){console.log(t?JSON.stringify(e,null,2):String(e))}function unknownKeyMessage(e,t){const n=e.suggest({raw:t});return 0===n.length?`Unknown configuration setting: ${t}`:`Unknown configuration setting: ${t}. Did you mean: ${n.join(", ")}?`}async function createRegistry(){const e=getCommandConfigRuntime(),t=await loadCommandCodeConfig({runtime:e});let n=normalizePermissionMode(t.permissions?.defaultMode)??normalizePermissionMode(t.permissionMode)??"default";return createConfigToolRegistry({runtime:e,listModelIds:__name(()=>listKnownModelIds(),"listModelIds"),model:{current:__name(()=>getConfiguredModel(),"current"),set:__name(async({model:e})=>persistDefaultModel({model:e}),"set")},permissionMode:{current:__name(()=>n,"current"),set:__name(async({mode:t})=>{await updateUserSettings({runtime:e,patch:{permissions:{defaultMode:t}}}),n=t},"set")}})}function withCommonOptions(e){return e.addOption(new Ne("--scope <scope>","Configuration scope").choices(["effective","user","project"]).default("effective")).option("--json","Print machine-readable JSON")}new Le("auth").description("Manage authentication with Command Code").addCommand(QR).addCommand(rO).addCommand(oO),Ex(),Px(),__name(parseValue,"parseValue"),__name(rowValue,"rowValue"),__name(rowMatchesScope,"rowMatchesScope"),__name(printValue,"printValue"),__name(unknownKeyMessage,"unknownKeyMessage"),__name(createRegistry,"createRegistry"),__name(withCommonOptions,"withCommonOptions");var sO=withCommonOptions(new Le("list").alias("ls").description("List configuration settings")).action(async e=>{const t=await createRegistry(),n=(await t.list()).filter(t=>rowMatchesScope(t,e.scope));if(e.json)printValue(n.map(e=>({id:e.id,value:rowValue(e),scope:e.scope,locked:!0===e.locked})),!0);else for(const e of n)console.log(`${e.id} = ${JSON.stringify(rowValue(e))} (${e.scope})`)}),aO=withCommonOptions(new Le("get").description("Read one configuration setting").argument("<key>","Setting id")).action(async(e,t,n)=>{const r=await createRegistry(),o=r.resolveId({raw:e});o||n.error(unknownKeyMessage(r,e));const s=await r.get({id:o});s||n.error(unknownKeyMessage(r,e)),rowMatchesScope(s,t.scope)||n.error(`${o} is not available in ${t.scope} scope. It lives in ${s.scope} scope - use --scope ${s.scope}.`),t.json?printValue({id:s.id,value:rowValue(s),scope:s.scope},!0):printValue(rowValue(s),!1)}),iO=withCommonOptions(new Le("set").description("Validate and write one configuration setting").argument("<key>","Setting id").argument("<value>","JSON scalar or plain string value")).action(async(e,t,n,r)=>{"effective"===n.scope&&r.error("config set requires --scope user or project");const o=await createRegistry(),s=o.resolveId({raw:e});s||r.error(unknownKeyMessage(o,e));const a=await o.get({id:s});let i;a||r.error(unknownKeyMessage(o,e)),rowMatchesScope(a,n.scope)||r.error(`${s} cannot be written in ${n.scope} scope. It is a ${a.scope}-scope setting - use --scope ${a.scope}.`);try{i=await o.set({id:s,value:parseValue(t)})}catch(e){r.error(e instanceof Error?e.message:String(e))}const l={id:i.id,previousValue:i.previousValue,newValue:i.newValue,scope:n.scope,liveSessionReloaded:!1,liveSessionReloadsOnNextRound:!0};n.json?printValue(l,!0):(console.log(`${i.id}: ${JSON.stringify(i.previousValue)} -> ${JSON.stringify(i.newValue)} (${n.scope})`),console.log("A running session picks this up at the start of its next round."))}),lO=new Le("default").description("Reset one configuration setting to its default value").argument("<key>","Setting id").option("--json","Print machine-readable JSON").action(async(e,t,n)=>{const r=await createRegistry(),o=r.resolveId({raw:e});o||n.error(unknownKeyMessage(r,e));const s=await r.get({id:o});let a;s||n.error(unknownKeyMessage(r,e)),void 0===s.defaultValue&&n.error(`${o} has no default value to reset to.`);try{a=await r.set({id:o,value:s.defaultValue})}catch(e){n.error(e instanceof Error?e.message:String(e))}const i={id:a.id,previousValue:a.previousValue,newValue:a.newValue,scope:s.scope,liveSessionReloaded:!1,liveSessionReloadsOnNextRound:!0};t.json?printValue(i,!0):(console.log(`${a.id}: ${JSON.stringify(a.previousValue)} -> ${JSON.stringify(a.newValue)} (default, ${s.scope})`),console.log("A running session picks this up at the start of its next round."))}),cO=new Le("config").description("Inspect and update validated configuration settings").addCommand(sO).addCommand(aO).addCommand(iO).addCommand(lO);async function openGitHubIssue(e){const t=buildGitHubIssueUrl(e),n=kt("Opening the GitHub issue…").start();try{await wt(t,{wait:!1,background:!0}),n.succeed(`Opened ${createOSC8Link(t,"the GitHub issue",!1)} in your browser`),console.log("")}catch(e){n.fail("Failed to open browser"),console.log(""),console.log(createOSC8Link(t,"Open GitHub issue manually",!1)),console.log("")}}Ex(),Px(),__name(openGitHubIssue,"openGitHubIssue");var dO=new Le("feedback").alias("issue").description("Report a bug or share feedback — opens a GitHub issue").argument("[title]","Optional issue title").action(openGitHubIssue);Ex();var uO=new Le("help").description("Display help information").allowUnknownOption().allowExcessArguments().action(function(){this.parent?.help()});Ex(),Ex(),Px(),Ex(),Px();var mO=__name(({icon:e,label:t,children:n})=>Xe.createElement(Ve,null,Xe.createElement(Ve,{color:Rx.CYAN},e," "),Xe.createElement(Ve,{color:Rx.DIM},t.padEnd(12)),n),"Row"),pO=__name(({title:e})=>Xe.createElement(Ve,null,Xe.createElement(Ve,{color:Rx.GRAY},"───"),Xe.createElement(Ve,{color:Rx.WHITE}," ",e," "),Xe.createElement(Ve,{color:Rx.GRAY},"─".repeat(35))),"Header"),gO=__name(({title:e,marginTop:t=0,children:n})=>Xe.createElement(Ge,{flexDirection:"column",marginTop:t},Xe.createElement(pO,{title:e}),Xe.createElement(Ge,{flexDirection:"column",paddingY:1},n)),"Section"),hO=__name(({host:e,systemInfo:t})=>Xe.createElement(gO,{title:"System Information"},Xe.createElement(mO,{icon:it.bullet,label:"Version"},Xe.createElement(Ve,{color:Rx.GREEN},t.version)),Xe.createElement(mO,{icon:it.bullet,label:"Date"},Xe.createElement(Ve,null,formatDate())),Xe.createElement(mO,{icon:it.pointer,label:"Platform"},Xe.createElement(Ve,{color:Rx.GREEN},t.os),Xe.createElement(Ve,{color:Rx.DIM}," ","(",e.platform,", ",e.arch,")")),Xe.createElement(mO,{icon:it.triangleUp,label:"Hostname"},Xe.createElement(Ve,null,e.hostname)),Xe.createElement(mO,{icon:it.bullet,label:"User"},Xe.createElement(Ve,{color:Rx.YELLOW},e.username)),Xe.createElement(mO,{icon:it.bullet,label:"CPUs"},Xe.createElement(Ve,{color:Rx.MAGENTA},e.cpus.length," cores")),Xe.createElement(mO,{icon:it.bullet,label:"Memory"},Xe.createElement(Ve,{color:Rx.CYAN},e.totalMemoryGb," GB")),Xe.createElement(mO,{icon:it.play,label:"Uptime"},Xe.createElement(Ve,null,formatUptime(e.uptimeSeconds))),Xe.createElement(mO,{icon:it.arrowRight,label:"Home"},Xe.createElement(Ve,{color:Rx.DIM},e.homeDir)),Xe.createElement(mO,{icon:it.pointer,label:"Shell"},Xe.createElement(Ve,null,t.shell)),Xe.createElement(mO,{icon:it.bullet,label:"Node"},Xe.createElement(Ve,{color:Rx.GREEN},e.nodeVersion)),Xe.createElement(mO,{icon:it.pointer,label:"Terminal"},Xe.createElement(Ve,{color:Rx.CYAN},t.terminal)),Xe.createElement(mO,{icon:it.bullet,label:"IDE"},Xe.createElement(Ve,null,t.ide))),"SystemInfoSection"),fO=__name(({cpus:e})=>Xe.createElement(gO,{title:"CPU Details",marginTop:1},e.map((e,t)=>Xe.createElement(mO,{key:t,icon:it.bullet,label:`Core ${t}`},Xe.createElement(Ve,null,e.model),Xe.createElement(Ve,{color:Rx.YELLOW}," @ ",e.speedMHz," MHz")))),"CPUDetailsSection"),yO=__name(({addresses:e})=>Xe.createElement(gO,{title:"Network",marginTop:1},e.map((e,t)=>Xe.createElement(mO,{key:`${e.interfaceName}-${t}`,icon:it.bullet,label:e.interfaceName},Xe.createElement(Ve,{color:Rx.GREEN},e.address)))),"NetworkSection"),SO=__name(({host:e,verbose:t,systemInfo:n})=>Xe.createElement(Ge,{flexDirection:"column"},Xe.createElement(Ve,null,"System Information"),Xe.createElement(Ve,null,"─".repeat(40)),Xe.createElement(Ve,null,"Version ",n.version),Xe.createElement(Ve,null,"Date ",formatDate()),Xe.createElement(Ve,null,"Platform ",n.os," (",e.platform,", ",e.arch,")"),Xe.createElement(Ve,null,"Hostname ",e.hostname),Xe.createElement(Ve,null,"User ",e.username),Xe.createElement(Ve,null,"CPUs ",e.cpus.length," cores"),Xe.createElement(Ve,null,"Memory ",e.totalMemoryGb," GB"),Xe.createElement(Ve,null,"Uptime ",formatUptime(e.uptimeSeconds)),Xe.createElement(Ve,null,"Home ",e.homeDir),Xe.createElement(Ve,null,"Shell ",n.shell),Xe.createElement(Ve,null,"Node ",e.nodeVersion),Xe.createElement(Ve,null,"Terminal ",n.terminal),Xe.createElement(Ve,null,"IDE ",n.ide),t&&Xe.createElement(Xe.Fragment,null,Xe.createElement(Ve,null,"\n","CPU Details"),Xe.createElement(Ve,null,"─".repeat(40)),e.cpus.map((e,t)=>Xe.createElement(Ve,{key:t},"Core ",String(t).padEnd(10),e.model," @ ",e.speedMHz," MHz")),Xe.createElement(Ve,null,"\n","Network"),Xe.createElement(Ve,null,"─".repeat(40)),e.externalIpv4.map((e,t)=>Xe.createElement(Ve,{key:`${e.interfaceName}-${t}`},e.interfaceName.padEnd(12),e.address)))),"PlainTextInfo"),wO=__name(({host:e,verbose:t,systemInfo:n})=>Xe.createElement(Ge,{flexDirection:"column"},Xe.createElement(hO,{host:e,systemInfo:n}),t&&Xe.createElement(fO,{cpus:e.cpus}),t&&Xe.createElement(yO,{addresses:e.externalIpv4})),"StyledInfo"),kO=__name(({verbose:e=!1,text:t=!1,systemInfo:n})=>{const{exit:r}=Je();nt(()=>{const e=setTimeout(()=>r(),50);return()=>clearTimeout(e)},[r]);const o=rt(()=>collectHostDiagnostics(),[]);return t?Xe.createElement(SO,{host:o,verbose:e,systemInfo:n}):Xe.createElement(wO,{host:o,verbose:e,systemInfo:n})},"InfoUI");async function runInfo(e){await applyStartupTheme();const t=getSystemInfo(),{waitUntilExit:n}=Ke(Xe.createElement(kO,{verbose:e.verbose,text:e.text,systemInfo:t}));await n()}__name(runInfo,"runInfo");var vO=new Le("info").description("Display system information").option("--verbose","Show detailed CPU and network information").option("--text","Print plain text without colors").allowUnknownOption().allowExcessArguments().action(async e=>{await runInfo(e)});Ex(),Px(),Ex(),Ex(),Ex(),Px(),Ex(),Ex();var CO=__name(({label:e="Loading",spinner:t=!1})=>Xe.createElement(Ve,{color:Rx.DIM},t&&Xe.createElement(Xe.Fragment,null,Xe.createElement(gt,{type:"dots"})," "),e,"…"),"LoadingLine"),bO=__name(({children:e,glyph:t=!0})=>Xe.createElement(Ve,{color:Rx.RED},t&&`${it.cross} `,e),"ErrorLine"),EO=__name(({children:e,glyph:t=!0})=>Xe.createElement(Ve,{color:Rx.GREEN},t&&`${it.tick} `,e),"SuccessLine"),TO=__name(({title:e="Oops, something went wrong:",children:t})=>Xe.createElement(Ge,{flexDirection:"column",borderStyle:"single",borderColor:Rx.RED,paddingX:2,paddingY:1,marginTop:1},Xe.createElement(Ve,{color:Rx.RED,bold:!0},e),Xe.createElement(Ge,{marginTop:1},Xe.createElement(Ve,null,t))),"ErrorPanel"),PO=__name(({message:e,hint:t})=>Xe.createElement(Ge,{flexDirection:"column"},Xe.createElement(Ve,{color:Rx.GRAY},e),t?Xe.createElement(Ve,{color:Rx.DIM},t):null),"EmptyState"),MO=__name(({error:e,traceId:t})=>Xe.createElement(Ge,{marginBottom:2},Xe.createElement(TO,null,e,t&&Xe.createElement(Ve,{color:Rx.DIM},"\n\n","Trace ID: ",t))),"ErrorSection");function formatUsd(e){const t=e.toFixed(6).replace(/0+$/,"").replace(/\.$/,""),n=t.indexOf(".");return`$${(-1===n?0:t.length-n-1)>=2?t:e.toFixed(2)}`}Ex(),Ex(),Px(),Ex(),Px(),Ex(),Px(),Ex(),Ex(),__name(formatUsd,"formatUsd");var xO=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function formatShortDateUtc(e){const t=xO[Number(e.slice(5,7))-1],n=Number(e.slice(8,10));return!t||!Number.isInteger(n)||n<1?e:`${t} ${n}`}function peakHoursPerDay(e){return e.reduce((e,t)=>e+(t.endHourUtc-t.startHourUtc),0)}__name(formatShortDateUtc,"formatShortDateUtc"),__name(peakHoursPerDay,"peakHoursPerDay");var IO={"zai-org/GLM-5":{inputCost:1,outputCost:3.2,cacheReadCost:.2},"zai-org/GLM-5.2":{inputCost:1.4,outputCost:4.4,cacheReadCost:.26}};function advertisedBandOf(e,t){const n=e.timeOfDay;return n?t<Date.parse(n.effectiveFrom)?e:n.offPeak:e}function primaryUpstreamOf(e,t){const n=e.order[0],r=n?e.providers[n]:void 0;if(!r)throw new Error(`display-pricing: billing entry "${t}" has no primary upstream in its \`order\``);return r}function getDisplayRates(e,t=Date.now()){const n=IO[e];if(n)return n;const r=Object.values(YA).flat().find(t=>t.id===e);if(r)return{inputCost:r.promptCost,outputCost:r.completionCost,cacheReadCost:r.cacheHitCost??0,...null!=r.cacheWrite5mCost&&{cacheWriteCost:r.cacheWrite5mCost}};const o=rR.find(t=>t.canonicalId===e);if(o)return toDisplayRates(advertisedBandOf(primaryUpstreamOf(o,e),t));const s=aR.find(t=>t.canonicalId===e);if(s){const t=primaryUpstreamOf(s,e);return{inputCost:t.promptCost,outputCost:t.completionCost,cacheReadCost:t.cacheReadCost??0,...null!=t.cacheWriteCost&&{cacheWriteCost:t.cacheWriteCost}}}const a=oR.find(t=>t.canonicalId===e);if(a)return{inputCost:a.promptCost,outputCost:a.completionCost,cacheReadCost:a.cacheReadCost};const i=sR.find(t=>t.canonicalId===e);if(i)return{inputCost:i.promptCost,outputCost:i.completionCost,cacheReadCost:i.cacheReadCost};throw new Error(`display-pricing: unknown billing id "${e}" — not in MODELS, GATEWAY_MODEL_PRICING, OPENROUTER_MODEL_PRICING, ALIBABA_MODEL_PRICING, or MORPH_MODEL_PRICING`)}function toDisplayRates(e){return{inputCost:e.promptCost,outputCost:e.completionCost,cacheReadCost:e.cacheReadCost??0,...null!=e.cacheWriteCost&&{cacheWriteCost:e.cacheWriteCost}}}function getDisplayTimeOfDay(e){if(IO[e])return;const t=rR.find(t=>t.canonicalId===e),n=t?.order[0],r=n?t?.providers[n]?.timeOfDay:void 0;if(!r)return;const o=peakHoursPerDay(r.peakWindowsUtc);return{effective:r.effectiveFrom,peak:toDisplayRates(r.peak),offPeak:toDisplayRates(r.offPeak),peakWindowsUtc:r.peakWindowsUtc,peakHoursPerDay:o,offPeakHoursPerDay:24-o}}function timeOfDayNote(e){const t=`${formatUsd(e.offPeak.inputCost)}/${formatUsd(e.offPeak.outputCost)}`,n=`${formatUsd(e.peak.inputCost)}/${formatUsd(e.peak.outputCost)}`;return`From ${formatShortDateUtc(e.effective)}: ${t} off-peak, ${n} peak (${e.peakHoursPerDay}h/day)`}function timeOfDayScheduledChanges(){const e={};for(const t of rR){const n=getDisplayTimeOfDay(t.canonicalId);n&&(e[t.canonicalId]={effective:n.effective,rates:n.offPeak,note:timeOfDayNote(n)})}return e}__name(advertisedBandOf,"advertisedBandOf"),__name(primaryUpstreamOf,"primaryUpstreamOf"),__name(getDisplayRates,"getDisplayRates"),__name(toDisplayRates,"toDisplayRates"),__name(getDisplayTimeOfDay,"getDisplayTimeOfDay"),__name(timeOfDayNote,"timeOfDayNote"),__name(timeOfDayScheduledChanges,"timeOfDayScheduledChanges"),timeOfDayScheduledChanges(),Ex(),Px();var AO=null;function setRegisteredProviderModules(e){AO=new Set(e.modules.map(e=>e.id))}function isProviderLaneRegistered(e){const t=AO;if(!t)return!0;if(!Co[e.providerId]?.requiresAuth)return!0;const n=zw[e.providerId]??e.providerId;return t.has(n)}function filterModelGroupsByRegisteredModules(e){return e.filter(e=>isProviderLaneRegistered({providerId:e.providerId}))}__name(setRegisteredProviderModules,"setRegisteredProviderModules"),__name(isProviderLaneRegistered,"isProviderLaneRegistered"),__name(filterModelGroupsByRegisteredModules,"filterModelGroupsByRegisteredModules");var RO=getPackageJson(import.meta.url),OO="string"==typeof RO.version&&RO.version.trim()?RO.version:"unknown";function estimateSessionCostUsd(e){try{const t=getDisplayRates(e.model),{inputTokens:n,outputTokens:r,cacheReadTokens:o,cacheWriteTokens:s}=e.usage;return(n*t.inputCost+r*t.outputCost+o*t.cacheReadCost+s*(t.cacheWriteCost??0))/1e6}catch{return}}async function createHarnessSession(e){const t=e.providerModules??e.modHost?.providerModules(),n=t??[...VR];return t&&setRegisteredProviderModules({modules:t}),createNodeHarnessSession({...e,cliVersion:e.cliVersion??OO,providerModules:n,estimateCostUsd:e.estimateCostUsd??estimateSessionCostUsd})}__name(estimateSessionCostUsd,"estimateSessionCostUsd"),__name(createHarnessSession,"createHarnessSession");var DO=createHarnessSessionManager({createSession:createHarnessSession}),LO=DO.getHarnessForSession,NO=DO.getResolvedHarness,$O=DO.forgetHarnessSession,_O=DO.disposeAllHarnessSessions;async function runTasteImport(e={}){const t=await runOnboardingImportWithEvents({events:Yu,signal:e.signal,onDebug:__name(e=>dlog(e),"onDebug"),runOnboarding:__name(async e=>(await createHarnessSession({sessionId:`taste-onboarding-${crypto.randomUUID()}`,baseUrl:getApiBaseUrl()})).runTasteOnboarding(e),"runOnboarding")});return{success:t.success,totalPrompts:t.totalPrompts,preferencesLearned:t.preferencesLearned,errors:[...t.errors],status:t.status,totalSessions:t.totalSessions,learnedSessions:t.learnedSessions,agentSessions:t.agentSessions?.map(e=>({agent:e.agent,sessionIds:[...e.sessionIds],displayName:e.displayName}))}}__name(runTasteImport,"runTasteImport");var FO={isImporting:!1,waitingForInput:!1,error:null},UO=__name(e=>{const t=tt(null),n=tt(e);n.current=e;const[r,o]=et({isImporting:!0,waitingForInput:!1,alreadyLearned:!1,learnedSessionCount:0,totalSessionCount:0,agentSessions:[],error:null}),s=ot(()=>{const e=t.current;!e||e.isAborted()||(e.finishCancelled(),o(e=>({...e,...FO})))},[]);return nt(()=>{const e=createOnboardingImportLifecycle({events:Yu});t.current=e;let r=!1;return(async()=>{try{const t=await e.race(runTasteImport({signal:e.signal}));if(e.isAborted())return;if("cancelled"===t.status)return void o(e=>({...e,...FO}));if(t.success)return void o(e=>({...e,isImporting:!1,waitingForInput:!0}));if("already-learned"===t.status)return void o(e=>({...e,isImporting:!1,alreadyLearned:!0,learnedSessionCount:t.learnedSessions||0,totalSessionCount:t.totalSessions||0,agentSessions:t.agentSessions||[],waitingForInput:!0}));const r=t.errors.join("\n");o(e=>({...e,isImporting:!1,waitingForInput:!0,error:r})),n.current&&n.current(r)}catch(t){if(e.isAborted())return;const r=e.handleFailure(t);o(e=>({...e,isImporting:!1,waitingForInput:!0,error:r})),n.current&&n.current(r)}finally{e.dispose(),r=!0}})(),()=>{e.dispose(),r||e.finishCancelled(),t.current===e&&(t.current=null)}},[]),{...r,cancelImport:s}},"useImportProcess");Ex();var jO,BO,WO=__name(({onEscape:e,onEnter:t,enabled:n=!0})=>{Ye((r,o)=>{n&&(o.escape&&e(),(o.return||"\n"===r)&&t())})},"useKeyboardInput");function getRuntime(){return jO??=createNodeRuntime()}function getStore(){return BO??=createOnboardingStore({runtime:getRuntime()})}async function checkOnboardingConditions2(){const e=await checkOnboardingConditions({runtime:getRuntime(),store:getStore()});return{shouldTrigger:e.shouldTrigger,reason:e.reason,sessionCount:e.sessionCount,hasTasteContent:e.hasTasteContent,agentSessions:e.agentSessions.map(e=>({agent:e.agent,sessionIds:[...e.sessionIds],displayName:e.displayName}))}}async function markOnboardingCompleted(){await getStore().markCompleted()}async function markOnboardingSkipped2(){await markOnboardingSkipped({runtime:getRuntime(),store:getStore()})}async function dismissOnboardingForeverForProject(){await getStore().dismissForever()}async function triggerTasteOnboarding({projectTrusted:e,onboardingComplete:t,isOnboardingMode:n,tasteOnboardingCheckedRef:r,setIsOnboardingMode:o}){if(e)if(t)dlog("[Onboarding] skipped - already completed");else if(n)dlog("[Onboarding] skipped - already showing");else if(r.current)dlog("[Onboarding] skipped - already checked this session");else{r.current=!0,dlog("[Onboarding] checking if taste learning should start...");try{const e=await checkOnboardingConditions2();if(!e.shouldTrigger)return void dlog("[Onboarding] not needed");dlog(`[Onboarding] starting taste learning (${e.reason})`),o(!0)}catch(e){dlog("[Onboarding] error",e)}}else dlog("[Onboarding] skipped - project not yet trusted")}Ex(),Px(),Ex(),Px(),__name(getRuntime,"getRuntime"),__name(getStore,"getStore"),__name(checkOnboardingConditions2,"checkOnboardingConditions"),__name(markOnboardingCompleted,"markOnboardingCompleted"),__name(markOnboardingSkipped2,"markOnboardingSkipped"),__name(dismissOnboardingForeverForProject,"dismissOnboardingForeverForProject"),__name(triggerTasteOnboarding,"triggerTasteOnboarding");var HO=__name(({autoLearn:e,onShouldSkip:t})=>{const[n,r]=et(null),[o,s]=et(null),[a,i]=et(void 0),l=tt(!1);return nt(()=>{if(l.current)return;let n=null;return(async()=>{try{l.current=!0,dlog("[Hook:Conditions] loading...");const n=await checkOnboardingConditions2();if(r(n),!n.shouldTrigger&&!e)return dlog("[Hook:Conditions] no trigger, skipping"),void t();dlog(`[Hook:Conditions] result: ${n.reason}, sessions: ${n.sessionCount}`)}catch(e){const r=e instanceof Error?e.message:String(e);dlog("[Hook:Conditions] error",r);const o=trackError({error:e instanceof Error?e:new Error(r),context:{component:co.LEARN_TASTE_COMMAND,heading:"Onboarding conditions check failed"}});i(o),s(r),n=setTimeout(()=>t(),2e3)}})(),()=>{n&&clearTimeout(n)}},[e,t]),{conditions:n,error:o,traceId:a,isLoading:!n&&!o}},"useOnboardingConditions");Ex(),Px();var GO=__name(({conditions:e,autoLearn:t})=>{const[n,r]=et("checking"),o=tt(!1);return nt(()=>{if(e&&!o.current){if(o.current=!0,t)return dlog("[Flow] autoLearn → learning"),void r("learning");dlog(`[Flow] → asking (${e.reason})`),r("asking")}},[e,t]),nt(()=>{dlog(`[Flow] step: ${n}`)},[n]),{step:n,setStep:r}},"useOnboardingFlow");async function completeOnboarding(e){try{await markOnboardingCompleted(),dlog("[Helper] onboarding marked complete")}catch(e){dlog(`[Helper] complete error: ${e instanceof Error?e.message:String(e)}`)}finally{Yu.reset(),e()}}async function skipOnboarding(e){try{await markOnboardingSkipped2(),dlog("[Helper] onboarding marked skipped")}catch(e){dlog(`[Helper] skip error: ${e instanceof Error?e.message:String(e)}`)}finally{Yu.reset(),e()}}Ex(),Px(),Ex(),Px(),__name(completeOnboarding,"completeOnboarding"),__name(skipOnboarding,"skipOnboarding");var VO=__name(({onStepChange:e,onError:t,onCompleteCallback:n})=>{const r=tt(n),o=ot(()=>{dlog("[Handler] import started → learning"),e("learning")},[e]),s=ot(async()=>{dlog("[Handler] import complete → done"),e("done"),await completeOnboarding(()=>r.current())},[e]),a=ot(e=>{dlog(`[Handler] import error: ${e}`),t(e)},[t]),i=ot(async()=>{dlog("[Handler] error dismissed by user → done"),e("done"),await skipOnboarding(()=>r.current({skipped:!0}))},[e]),l=ot(async()=>{dlog("[Handler] skipped → done"),e("done"),await skipOnboarding(()=>r.current({skipped:!0}))},[e]);return n!==r.current&&(r.current=n),{handleImportStart:o,handleImportComplete:s,handleImportError:a,handleErrorDismiss:i,handleSkip:l}},"useOnboardingHandlers");Ex(),Px();var zO=__name(e=>{const[t,n]=et(()=>createTasteImportProjection({initialSteps:e})),r=ot(e=>{n(t=>({...t,importError:e}))},[]);return nt(()=>{const t=__name(()=>{n(resetTasteImportProjection({initialSteps:e}))},"handleReset"),r=__name(e=>{n(t=>reduceTasteImportEvent({state:t,event:e}))},"handleNewEvent");return Yu.on("reset",t),Yu.on("new-event",r),()=>{Yu.off("reset",t),Yu.off("new-event",r)}},[e]),{steps:t.steps,importError:t.importError,importTraceId:t.importTraceId,setImportError:r}},"useProgressEvents");Ex(),Ex(),Ex();var qO=__name(({isImporting:e=!1,waitingForInput:t=!1})=>Xe.createElement(Xe.Fragment,null,e&&Xe.createElement(Ge,{marginTop:1},Xe.createElement(SA,null,"Esc to cancel")),t&&Xe.createElement(Ge,{marginTop:1},Xe.createElement(SA,null,"Press ",Xe.createElement(wA,null,"Enter")," to continue"))),"HelpTextSection");Ex(),Ex(),Ex(),Ex();var KO=__name(()=>{const[e,t]=et(!0);return nt(()=>{const e=setInterval(()=>{t(e=>!e)},500);return()=>clearInterval(e)},[]),Xe.createElement(Ve,{color:Rx.YELLOW},e?it.circleFilled:it.circle)},"PulsingDot");Ex();var YO=[it.bullet,it.squareSmallFilled,it.lozenge,it.star,it.triangleRight,it.triangleUp,it.circleFilled,it.pointer],JO=__name(e=>String(e).padStart(3," "),"padNum"),QO=__name(e=>YO[e%YO.length],"getSymbol"),XO=__name((e,t,n,r)=>r?`${e} observations (↑↓ scroll)`:`↑${JO(t)} ↓${JO(n)} (↑↓ scroll)`,"buildStatusLine"),ZO=__name(({insights:e})=>{const[t,n]=et(0),[r,o]=et(!0),s=e.length,a=s>10,i=Math.max(0,s-10),l=r&&a?i:t;if(Ye((e,t)=>{if(a){if(t.upArrow)return o(!1),void n(Math.max(0,l-1));if(t.downArrow){const e=Math.min(i,l+1);o(e===i),n(e)}}}),0===s)return null;const c=e.slice(l,l+10),d=l,u=s-l-10;return Xe.createElement(Ge,{flexDirection:"column",marginLeft:4,marginBottom:0},a&&Xe.createElement(Ve,{color:Rx.DIM},XO(s,d,u,r)),c.map((e,t)=>{const n=l+t;return Xe.createElement(Ge,{key:n,marginBottom:0},Xe.createElement(Ve,{color:Rx.DIM},QO(n)," ",e))}))},"ScrollableInsights");function getLabelColor(e,t){return e?Rx.WHITE:t?Rx.YELLOW:Rx.DIM}function formatCategorySuffix(e){if(0===e.length)return"";const t=1===e.length?"category":"categories";return` across ${e.length} ${t}`}__name(getLabelColor,"getLabelColor"),__name(formatCategorySuffix,"formatCategorySuffix");var eD=__name(({label:e,message:t,active:n,complete:r,items:o,insights:s,isIntro:a,isAllComplete:i,summary:l})=>{if(a)return Xe.createElement(Ge,{flexDirection:"column",marginBottom:0},Xe.createElement(xI,null),Xe.createElement(Ge,{marginTop:0},Xe.createElement(Ve,{color:Rx.DIM},EI),Xe.createElement(Ge,{marginLeft:2},i?Xe.createElement(Ve,{color:Dx.TEXT},"learned your coding taste"):Xe.createElement(wI,null))));const c=__name(()=>r?Xe.createElement(Ve,{color:_x.BG},it.square):n?Xe.createElement(KO,null):Xe.createElement(Ve,{color:Rx.DIM},it.circle),"getStatusIcon"),d=o.length>0||s.length>0||t||l&&l.learningCount>0;return!r||n||d?Xe.createElement(Ge,{flexDirection:"column",marginBottom:0},(n||r)&&Xe.createElement(Ge,{marginBottom:0},Xe.createElement(Ge,{marginRight:1},c()),Xe.createElement(Ve,{color:getLabelColor(r,n)},e)),r&&t&&(!l||0===l.learningCount)&&Xe.createElement(Ge,{marginLeft:3,marginBottom:0},Xe.createElement(Ve,{color:Rx.DIM},t)),o.length>0&&Xe.createElement(Ge,{flexDirection:"column",marginLeft:1,marginBottom:0},o.map(e=>Xe.createElement(Ve,{key:e,color:Rx.DIM},`${it.bullet} ${e}`))),s.length>0&&Xe.createElement(ZO,{insights:s}),r&&l&&l.learningCount>0&&Xe.createElement(Ge,{flexDirection:"column",marginLeft:1,marginBottom:0},Xe.createElement(Ge,{marginBottom:1,flexDirection:"row"},Xe.createElement(Ve,null,EI),Xe.createElement(Ge,{marginLeft:2},Xe.createElement(Ve,{color:Dx.TEXT},"Learned ",l.learningCount," preference",1===l.learningCount?"":"s",formatCategorySuffix(l.categories)))),Xe.createElement(Ge,{flexDirection:"column",marginLeft:1},Xe.createElement(Ve,{color:Rx.DIM},it.pointerSmall," Stored in ",l.storage),Xe.createElement(Ve,{color:Rx.DIM},"Command Code automatically uses & updates taste files.")))):null},"StepItem"),tD=__name(({steps:e})=>{const t=e.find(e=>"complete"===e.id)?.complete??!1;return Xe.createElement(Ge,{flexDirection:"column",marginBottom:1},e.map((e,n)=>Xe.createElement(Ge,{key:e.id,marginLeft:0===n?0:3},Xe.createElement(eD,{label:e.label,message:e.message,active:e.active,complete:e.complete,items:e.items,insights:e.insights,summary:e.summary,isIntro:0===n,isAllComplete:t}))))},"StepsSection"),nD=__name(({steps:e})=>Xe.createElement(tD,{steps:e}),"ProgressSection"),rD=__name(({onComplete:e,onCancel:t,onError:n,onErrorDismiss:r})=>{const{steps:o,importError:s,importTraceId:a}=zO(oM),{isImporting:i,waitingForInput:l,error:c,cancelImport:d}=UO(n);return WO({onEscape:__name(()=>{if(i)return d(),void t?.();l&&((c||s)&&r?r():e())},"onEscape"),onEnter:__name(()=>{l&&((c||s)&&r?r():e())},"onEnter"),enabled:i||l}),Xe.createElement(Ge,{flexDirection:"column",padding:1},s&&Xe.createElement(MO,{error:s,traceId:a}),!s&&Xe.createElement(nD,{steps:o}),Xe.createElement(qO,{isImporting:i,waitingForInput:l}))},"ImportProgress");async function runLearnTaste(){await applyStartupTheme();const{unmount:e}=Ke(Xe.createElement(rD,{onComplete:__name(()=>{e(),process.exit(0)},"onComplete"),onCancel:__name(()=>{e(),process.exit(0)},"onCancel"),onErrorDismiss:__name(()=>{e(),process.exit(1)},"onErrorDismiss")}))}__name(runLearnTaste,"runLearnTaste");var oD=new Le("learn-taste").description("Learn from your previous sessions - updates your taste profile").allowUnknownOption().allowExcessArguments().action(async()=>{try{await runLearnTaste()}catch(e){trackError({error:sanitizeErrorForTelemetry({error:e instanceof Error?e:new Error(String(e)),label:"learn_taste_render_failed"}),context:{component:co.LEARN_TASTE_COMMAND,heading:"Learn taste render failed"}}),dlog(`[/learn-taste] render failed: ${e instanceof Error?e.message:String(e)}`),await shutdownTelemetry(),process.exit(1)}});function getBinNames(){const e=getPackageJson(import.meta.url);return e.bin&&"object"==typeof e.bin?Object.keys(e.bin):e.bin&&"string"==typeof e.bin?[e.name??getBinaryCommand()]:[getBinaryCommand()]}function getInvokedCommandName(){try{const e=getBinNames(),n=process.argv[1];if(!n)return e[0]||getBinaryCommand();const r=t.basename(n).replace(/\.(m?[jt]s|cjs)$/,"");return e.includes(r)?r:e[0]||getBinaryCommand()}catch{return getBinaryCommand()}}function addMcpCommand(){const e=new Le("add");return e.description("Add an MCP server").argument("<name>","Server name (unique identifier)").argument("[url]","Server URL (required for http transport)").option("-t, --transport <type>","Transport type (stdio or http)","stdio").addOption(new Ne("-s, --scope <scope>","Configuration scope").choices(["local","project","user"]).default("local")).option("-e, --env <KEY=value>","Environment variable (repeatable)",collectKeyValue,{}).option("-H, --header <header>","HTTP header (repeatable, http only)",collectHeaders,{}).allowUnknownOption().allowExcessArguments().action(async(e,t,n,r)=>{const o=getInvokedCommandName();try{const s=await addMcpServerFromCliInput({name:e,url:t,transport:n.transport,scope:n.scope,env:n.env,headers:n.header,rawArgs:r.args,argv:process.argv,cliName:o,addMcpServer:addMcpServer,checkServerAuthRequirements:__name(async e=>{console.log(lt.gray("Checking server authentication requirements..."));const t=await checkCommandMcpServerAuthRequirements(e);return t.requiresAuth&&console.log(lt.cyan("Server requires OAuth authentication.")),t},"checkServerAuthRequirements"),registerOAuthClient:__name(async e=>(console.log(lt.gray("Registering OAuth client...")),registerCommandMcpOAuthClient({registrationEndpoint:e.registrationEndpoint,clientName:e.clientName,redirectUris:[...e.redirectUris]})),"registerOAuthClient"),performOAuthFlow:__name(async e=>{console.log(lt.gray("A browser window will open for authentication.\n"));const t=await performCommandMcpOAuthFlow(e.serverName,e.serverUrl,{authorizationUrl:e.config.authorizationUrl,tokenUrl:e.config.tokenUrl,clientId:e.config.clientId,clientSecret:e.config.clientSecret,scopes:e.config.scopes?[...e.config.scopes]:void 0},{onStatus:e.onStatus});return{success:t.success,token:t.tokens,error:t.error}},"performOAuthFlow"),onStatus:__name(e=>{console.log(lt.gray(` ${e}`))},"onStatus")});for(const e of s.warnings)console.log(lt.yellow(`Warning: ${e}`));"success"===s.authStatus&&console.log(lt.green("✓ Successfully authenticated")),"failed"===s.authStatus&&(console.log(lt.yellow(`Warning: Authentication failed: ${s.authError}`)),console.log(lt.gray(`You can retry with: ${getBinaryCommand()} mcp auth ${e}`)),console.log(lt.gray("Or authenticate via the /mcp menu in a session")));const a="failed"===s.authStatus?`✓ Added MCP server '${e}' to ${s.scopeLabel} config (authentication pending)`:`✓ Added MCP server '${e}' to ${s.scopeLabel} config`;console.log("failed"===s.authStatus?lt.yellow(a):lt.green(a)),console.log(lt.gray(` ${formatMcpCommandSummary(s.serverConfig)}`)),console.log(""),console.log(lt.cyan("Next steps:")),console.log(lt.gray(`Start ${o} and run /mcp to manage configured MCP servers.`))}catch(e){printMcpAddError(e,{cliName:o}),process.exit(1)}}),e}function printMcpAddError(e,t){if(e instanceof Ob)if(console.error(lt.red(`Error: ${e.message}`)),"invalid-name"!==e.code)if("invalid-transport"!==e.code){if("missing-http-url"!==e.code)return"missing-stdio-command"===e.code?(console.error(lt.gray(`Usage: ${t.cliName} mcp add --transport stdio <name> -- <command> [args...]`)),void console.error(lt.gray(` or: ${t.cliName} mcp add <name> <command> [args...]`))):void("stdio-command-is-url"!==e.code?"insecure-oauth-url"===e.code&&(console.error(lt.gray("OAuth requires https:// (http:// is only allowed for loopback hosts: localhost, 127.0.0.1, [::1]).")),console.error(lt.gray("Switch the URL to https:// or use a non-OAuth server."))):e.suggestedCommand&&console.error(lt.gray(`Did you mean: ${e.suggestedCommand}`)));console.error(lt.gray(`Usage: ${t.cliName} mcp add --transport http <name> <url>`))}else console.error(lt.gray("Valid options: stdio, http"));else console.error(lt.gray(Rb));else console.error(lt.red(`Error: ${e instanceof Error?e.message:String(e)}`))}function collectKeyValue(e,t){try{return addMcpKeyValue(e,t)}catch(e){printCollectError(e),process.exit(1)}}function collectHeaders(e,t){try{return addMcpHeader(e,t)}catch(e){printCollectError(e),process.exit(1)}}function printCollectError(e){console.error(lt.red(`Error: ${e instanceof Error?e.message:String(e)}`))}function addJsonMcpCommand(){const e=new Le("add-json");return e.description("Add an MCP server from JSON configuration").argument("<name>","Server name (unique identifier)").argument("<json>","Server configuration as JSON string").addOption(new Ne("-s, --scope <scope>","Configuration scope").choices(["local","project","user"]).default("local")).option("--client-secret <secret>","OAuth client secret (injected into oauth config)").action(async(e,t,n)=>{const r=getInvokedCommandName();try{const o=await addMcpServerFromJson({name:e,json:t,scope:n.scope,clientSecret:n.clientSecret,addMcpServer:addMcpServer,performOAuthFlow:__name(async e=>{console.log(lt.cyan("Starting OAuth authentication...")),console.log(lt.gray("A browser window will open for authentication.\n"));const t=await performCommandMcpOAuthFlow(e.serverName,e.serverUrl,{authorizationUrl:e.config.authorizationUrl,tokenUrl:e.config.tokenUrl,clientId:e.config.clientId,clientSecret:e.config.clientSecret,scopes:e.config.scopes?[...e.config.scopes]:void 0},{port:e.port,onStatus:e.onStatus});return{success:t.success,token:t.tokens,error:t.error}},"performOAuthFlow"),onStatus:__name(e=>{console.log(lt.gray(` ${e}`))},"onStatus")});"success"===o.authStatus&&console.log(lt.green(`\n✓ Successfully authenticated with '${e}'`)),"failed"===o.authStatus&&(console.error(lt.yellow(`\nWarning: Authentication failed: ${o.authError}`)),console.error(lt.gray(`You can retry with: ${r} mcp auth ${e}`)),console.error(lt.gray("Or authenticate via the /mcp menu in a session")));const s="failed"===o.authStatus?`✓ Added MCP server '${e}' to ${o.scopeLabel} config (authentication pending)`:`✓ Added MCP server '${e}' to ${o.scopeLabel} config`;console.log("failed"===o.authStatus?lt.yellow(s):lt.green(s)),console.log(lt.gray(` ${formatMcpCommandSummary(o.serverConfig)}`)),console.log(""),console.log(lt.cyan("Next steps:")),console.log(lt.gray(`Start ${r} and run /mcp to manage configured MCP servers.`))}catch(e){printMcpAddJsonError(e,{cliName:r}),process.exit(1)}}),e}function printMcpAddJsonError(e,t){if(e instanceof Ob)if(console.error(lt.red(`Error: ${e.message}`)),"invalid-name"!==e.code){if("invalid-json"===e.code)return console.error(lt.gray("Make sure to quote the JSON string properly")),void console.error(lt.gray(`Example: ${t.cliName} mcp add-json github '{"type":"stdio","command":"npx"}'`));if("invalid-config"===e.code&&e.issues)for(const t of e.issues)console.error(lt.gray(` ${t.path.join(".")}: ${t.message}`));else"missing-http-url"!==e.code&&e.code}else console.error(lt.gray(Rb));else console.error(lt.red(`Error: ${e instanceof Error?e.message:String(e)}`))}function authMcpCommand(){const e=new Le("auth");return e.description("Manage OAuth authentication for MCP servers").argument("[server]","Server name to authenticate").option("--status","Check authentication status").option("--clear","Clear stored authentication").option("--list","List servers with stored authentication").action(async(e,t)=>{const n=getInvokedCommandName();try{if(t.list)return void await printAuthList();if(e||(console.error(lt.red("Error: Server name is required")),console.error(lt.gray(`Usage: ${n} mcp auth <server>`)),console.error(lt.gray(` ${n} mcp auth --list`)),process.exit(1)),t.status)return void await printAuthStatus(e);if(t.clear)return(await clearMcpAuth({serverName:e,deleteTokens:deleteTokens})).deleted?void console.log(lt.green(`✓ Cleared authentication for '${e}'`)):void console.log(lt.yellow(`No authentication stored for '${e}'`));console.log(lt.cyan(`Authenticating with '${e}'...`)),console.log(lt.gray("A browser window will open for authentication.\n")),await authenticateConfiguredMcpServer({serverName:e,getMcpServer:getMcpServer,performOAuthFlow:__name(async e=>{const t=await performCommandMcpOAuthFlow(e.serverName,e.serverUrl,{authorizationUrl:e.config.authorizationUrl,tokenUrl:e.config.tokenUrl,clientId:e.config.clientId,clientSecret:e.config.clientSecret,scopes:e.config.scopes?[...e.config.scopes]:void 0},{onStatus:e.onStatus});return{success:t.success,token:t.tokens,error:t.error}},"performOAuthFlow"),discoverAndAuthenticate:discoverAndAuthenticateCommandMcpServer,onStatus:__name(e=>{console.log(lt.gray(` ${e}`))},"onStatus")}),console.log(lt.green(`\n✓ Successfully authenticated with '${e}'`)),console.log(lt.gray("Restart the session to connect with the authenticated server."))}catch(t){printMcpAuthError(t,{cliName:n,serverName:e}),process.exit(1)}}),e}async function printAuthList(){const e=await listMcpAuthStatuses({listServersWithTokens:listServersWithTokens,getTokens:getTokens,isTokenExpired:isTokenExpired});if(0!==e.length){console.log(lt.hex("#E4CCFF").bold("\nAuthenticated MCP Servers\n"));for(const t of e){const e=t.expired?lt.yellow("expired"):lt.green("valid");console.log(` ${t.serverName}: ${e}`)}console.log("")}else console.log(lt.yellow("No servers with stored authentication."))}async function printAuthStatus(e){const t=await getMcpAuthStatus({serverName:e,hasTokens:hasTokens,getTokens:getTokens,isTokenExpired:isTokenExpired});if("missing"!==t.status){if("expired"===t.status)return console.log(lt.yellow(`Authentication for '${e}' has expired`)),void(t.hasRefreshToken&&console.log(lt.gray(" A refresh token is available for re-authentication")));console.log(lt.green(`Authentication for '${e}' is valid`)),"number"==typeof t.expiresInMinutes&&console.log(lt.gray(` Expires in ${t.expiresInMinutes} minutes`)),t.scope&&console.log(lt.gray(` Scopes: ${t.scope}`))}else console.log(lt.yellow(`No authentication stored for '${e}'`))}function printMcpAuthError(e,t){if(e instanceof Ob)return"server-not-found"===e.code?(console.error(lt.red(`Error: ${e.message}`)),void console.error(lt.gray(`Use "${t.cliName} mcp list" to see configured servers`))):"auth-failed"===e.code?(console.error(lt.red(`\nError: ${e.message}`)),void(t.serverName&&console.log(lt.gray(`Try again with "${t.cliName} mcp auth ${t.serverName}"`)))):void console.error(lt.red(`Error: ${e.message}`));console.error(lt.red(`Error: ${e instanceof Error?e.message:String(e)}`))}function getMcpCommand(){const e=new Le("get");return e.description("Show details for an MCP server").argument("<name>","Server name").action(async e=>{try{const t=await getMcpServerDetails({name:e,getMcpServer:getMcpServer}),{config:n,scope:r}=t;if(console.log(lt.hex("#E4CCFF").bold(`\nMCP Server: ${e}\n`)),console.log(` ${lt.dim("Scope:")} ${r}`),console.log(` ${lt.dim("Transport:")} ${n.transport}`),console.log(` ${lt.dim("Status:")} ${n.enabled?lt.green("enabled"):lt.gray("disabled")}`),"http"===n.transport){if(console.log(` ${lt.dim("URL:")} ${n.url}`),t.headers.length>0){console.log(` ${lt.dim("Headers:")}`);for(const e of t.headers)console.log(` ${e.key}: ${e.value}`)}}else console.log(` ${lt.dim("Command:")} ${n.command}`),n.args&&n.args.length>0&&console.log(` ${lt.dim("Args:")} ${n.args.join(" ")}`);if(t.env.length>0){console.log(` ${lt.dim("Environment:")}`);for(const e of t.env)console.log(` ${e.key}=${e.value}`)}console.log("")}catch(e){e instanceof Ob&&(console.error(lt.red(`Error: ${e.message}`)),process.exit(1)),console.error(lt.red(`Error: ${e instanceof Error?e.message:String(e)}`)),process.exit(1)}}),e}function formatAuthIcon(e){return"authenticated"===e||"static"===e?lt.green(it.tick):"missing"===e?lt.red(it.cross):lt.gray("-")}function listMcpCommand(){const e=new Le("list");return e.description("List configured MCP servers").action(async()=>{try{const e=await listMcpServerSummaries({listMcpServers:listMcpServers,hasTokens:hasTokens});if(0===e.length)return console.log(lt.yellow("\nNo MCP servers configured\n")),console.log(lt.gray("Add a server with:")),console.log(lt.gray(` ${getBinaryCommand()} mcp add --transport http <name> <url>`)),console.log(lt.gray(` ${getBinaryCommand()} mcp add --transport stdio <name> -- <command>`)),void console.log(lt.gray("\nDocs: https://commandcode.ai/docs/mcp"));console.log(lt.hex("#E4CCFF").bold("\nMCP Servers\n"));const t=Math.max(4,...e.map(e=>e.name.length)),n=5,r=7;console.log(lt.dim(` ${"NAME".padEnd(t)} ${"TYPE".padEnd(n)} ${"SCOPE".padEnd(r)} AUTH STATUS`));for(const o of e){const e=o.enabled?lt.green("enabled"):lt.gray("disabled"),s=formatAuthIcon(o.authStatus);console.log(` ${lt.white(o.name.padEnd(t))} ${lt.cyan(o.transport.padEnd(n))} ${lt.gray(o.scope.padEnd(r))} ${s} ${e}`)}console.log(lt.dim(`\nTotal: ${e.length} server${1!==e.length?"s":""}\n`))}catch(e){console.error(lt.red(`Error: ${e instanceof Error?e.message:String(e)}`)),process.exit(1)}}),e}function removeMcpCommand(){const e=new Le("remove");return e.description("Remove an MCP server").argument("<name>","Server name").addOption(new Ne("-s, --scope <scope>","Scope to remove from (auto-detects if not specified)").choices(["local","project","user"])).action(async(e,t)=>{try{const n=await removeMcpServerByName({name:e,scope:t.scope,getMcpServer:getMcpServer,removeMcpServer:removeMcpServer});console.log(lt.green(`✓ Removed MCP server '${e}' from ${n.scopeLabel} config`))}catch(e){e instanceof Ob&&(console.error(lt.red(`Error: ${e.message}`)),process.exit(1)),console.error(lt.red(`Error: ${e instanceof Error?e.message:String(e)}`)),process.exit(1)}}),e}function createMcpCommand(){const e=new Le("mcp");return e.description("Manage MCP (Model Context Protocol) servers").allowUnknownOption().allowExcessArguments(),e.addCommand(addMcpCommand()),e.addCommand(listMcpCommand()),e.addCommand(getMcpCommand()),e.addCommand(removeMcpCommand()),e.addCommand(addJsonMcpCommand()),e.addCommand(authMcpCommand()),e}function shortenModPath(e,t){if(t){const n=a(t,e);if(n&&!n.startsWith("..")&&!i(n))return n}const n=a($(),e);return!n||n.startsWith("..")||i(n)?e:`~${l}${n}`}Ex(),Ex(),Px(),Ex(),Px(),__name(getBinNames,"getBinNames"),__name(getInvokedCommandName,"getInvokedCommandName"),__name(addMcpCommand,"addMcpCommand"),__name(printMcpAddError,"printMcpAddError"),__name(collectKeyValue,"collectKeyValue"),__name(collectHeaders,"collectHeaders"),__name(printCollectError,"printCollectError"),Ex(),Px(),__name(addJsonMcpCommand,"addJsonMcpCommand"),__name(printMcpAddJsonError,"printMcpAddJsonError"),Ex(),Px(),__name(authMcpCommand,"authMcpCommand"),__name(printAuthList,"printAuthList"),__name(printAuthStatus,"printAuthStatus"),__name(printMcpAuthError,"printMcpAuthError"),Ex(),Px(),__name(getMcpCommand,"getMcpCommand"),Ex(),Px(),__name(formatAuthIcon,"formatAuthIcon"),__name(listMcpCommand,"listMcpCommand"),Ex(),Px(),__name(removeMcpCommand,"removeMcpCommand"),__name(createMcpCommand,"createMcpCommand"),Ex(),Ex(),Px(),Ex(),Px(),__name(shortenModPath,"shortenModPath");var sD=__name(e=>e.split($()).join("~"),"shortenHomeInText");async function createModPathShortener(e){const t=await modsDirectoryPath({runtime:e,scope:"project"}),n=t?s(t,"..",".."):void 0;return e=>shortenModPath(e,n)}async function addAction(e,t){const n=createNodeRuntime(),r=t.global?"user":"project";try{const t=parseModSource(e);console.log(yt.dim(`Installing ${t.kind} mod source ${yt.reset(yt.cyan(e))} (${r})…`));const o=await installModSource({runtime:n,source:e,scope:r}),s=await createModPathShortener(n);console.log(`${yt.green(it.tick)} Installed ${yt.cyan(o.identity)}`),o.installedPath&&console.log(yt.dim(` ${s(o.installedPath)}`)),console.log(yt.dim(` Recorded in ${s(o.settingsPath)}`))}catch(e){console.error(`${yt.red(it.cross)} ${sD(e instanceof Error?e.message:String(e))}`),process.exit(1)}}__name(createModPathShortener,"createModPathShortener"),__name(addAction,"addAction");var aD=new Le("add").alias("install").description("Install a mod package (<npm-name>, owner/repo[@ref], or a local path)").argument("<source>","mod source: an npm package name, a git repo (owner/repo[@ref]), or a local path").option("-g, --global","install for all projects (user scope)").action(addAction);Ex(),Px(),Ex(),Ex();var iD=GR.map(e=>({name:`provider-${e.id}`,factory:__name(t=>{t.addProvider(e)},"factory")}));function updateNoticeMod(e){try{const t=readUpdatesConfig().pending;if(!t?.targetVersion)return;const n=getPackageJson(import.meta.url).version;if(t.targetVersion===n)return;e.ui.notify(`update available: v${t.targetVersion} (installing in the background — a restart applies it)`)}catch{}}function commandBuiltinMods(){return[...iD,{name:"update-notice",factory:updateNoticeMod}]}Ex(),Px(),__name(updateNoticeMod,"updateNoticeMod"),__name(commandBuiltinMods,"commandBuiltinMods");var lD=__name((e,t,n)=>` ${yt.cyan(e)} ${yt.dim(`· ${t} · ${n}`)}`,"formatModLine"),cD=__name((e,t)=>`${yt.bold(yt.white(e))} ${yt.dim(`(${t})`)}`,"formatSectionHeader");function scopeFor(e){const{entry:t}=e;if("project"===t.source)return"project";if("user"===t.source)return"user";if("path"===t.source)return"session";const n=modSourceForPath({statuses:e.sources,path:t.path});return n?.scope??"package"}function detailFor(e){const{entry:t}=e,n=e.disabled.has(t.name)?" (disabled)":"";if("package"===t.source){const r=modSourceForPath({statuses:e.sources,path:t.path});return`from ${r?.identity??"a package source"}${n}`}return`${shortenModPath(t.path,e.projectRoot)}${n}`}async function listAction(e){const t=createNodeRuntime(),n=await isCommandProjectSessionInitialized(),r=await discoverMods({runtime:t,includeProject:n}),o=await listModSources({runtime:t,includeProject:n}),a=new Set(r.disabled),i=await modsDirectoryPath({runtime:t,scope:"project"}),l=await modsDirectoryPath({runtime:t,scope:"user"}),c=i?s(i,"..",".."):void 0,d=["project","user","package","path"].flatMap(e=>r.entries.filter(t=>t.source===e));console.log(""),console.log(`${yt.bold(yt.white("Mods"))} ${yt.dim(`(${r.entries.length})`)}`),0===r.entries.length&&(console.log(""),console.log(yt.dim(" No mods loaded. Looking in:")),i&&console.log(yt.dim(` ${shortenModPath(i,c)} ${yt.white("(project)")}`)),l&&console.log(yt.dim(` ${shortenModPath(l,void 0)} ${yt.white("(user)")}`)),console.log(""),console.log(yt.dim(` Drop a .ts file in one (\`${getBinaryCommand()} mods open --user\`) or install a package: \`${getBinaryCommand()} mods add <source>\`.`)));for(const e of d)console.log(lD(e.name,scopeFor({entry:e,sources:o}),detailFor({entry:e,sources:o,projectRoot:c,disabled:a})));if(!0===e.builtin){const e=commandBuiltinMods();console.log(""),console.log(cD("Built-in",e.length));for(const t of e)console.log(lD(t.name,"builtin",a.has(t.name)?"disabled":"enabled"))}const u=new Set;if(o.length>0){const e=__name(e=>r.entries.some(t=>"package"===t.source&&void 0!==modSourceForPath({statuses:[e],path:t.path})),"contributes"),t=o.filter(t=>!t.installed||!e(t));if(t.length>0){console.log(""),console.log(cD("Package sources",t.length));for(const e of t){u.add(e.source);const t=e.installed?yt.yellow("installed, but provides no mods"):yt.yellow(`not installed — run \`${getBinaryCommand()} mods update\``);console.log(lD(e.identity,e.scope,t))}}}const m=r.warnings.filter(e=>!u.has(e.path));if(m.length>0){console.log(""),console.log(`${yt.bold(yt.yellow("Warnings"))} ${yt.dim(`(${m.length})`)}`);for(const e of m)console.log(` ${yt.cyan(shortenModPath(e.path,c))} ${yt.dim(`· ${e.reason}`)}`)}console.log("")}__name(scopeFor,"scopeFor"),__name(detailFor,"detailFor"),__name(listAction,"listAction");var dD=new Le("list").alias("ls").description("List the mods a session loads, and where each one comes from").addOption(new Ne("--builtin","also list Command Code's built-in mods").hideHelp()).action(listAction);async function openAction(e){const t=createNodeRuntime(),n=!0===e.user||!0===e.global;try{const r=n?void 0:await modsDirectoryPath({runtime:t,scope:"project"}),o=r??await modsDirectoryPath({runtime:t,scope:"user"});if(!o)throw new Error("Could not resolve a mods directory");const s=r?"project":"user";if(!0===e.path)return void console.log(o);await t.fs.mkdir({path:o}),await wt(o);const a=await createModPathShortener(t);console.log(`${yt.green(it.tick)} Opened ${yt.cyan(a(o))} ${yt.dim(`· ${s}`)}`)}catch(e){console.error(`${yt.red(it.cross)} ${sD(e instanceof Error?e.message:String(e))}`),process.exit(1)}}Ex(),Px(),__name(openAction,"openAction");var uD=new Le("open").description("Open the mods directory (project by default, --user for ~)").option("-u, --user","open the user mods directory (~/.commandcode/mods)").option("-g, --global","alias for --user").option("--path","print the directory path instead of opening it").action(openAction);async function removeAction(e,t){const n=createNodeRuntime();commandBuiltinMods().some(t=>t.name===e)&&(console.error(`${yt.red(it.cross)} ${yt.cyan(e)} is a built-in mod — it cannot be removed. Add it to ${yt.cyan('"mods": {"disabled": [...]}')} in settings.json to turn it off.`),process.exit(1));const r=await isCommandProjectSessionInitialized();try{const o=await removeMod({runtime:n,target:e,scope:t.global?"user":"project",includeProject:r});if(!o.removedFromSettings&&!o.removedPath)return void console.log(`${yt.yellow(it.warning)} ${yt.cyan(o.target)} is not configured (${o.scope} scope) — nothing to remove`);const s=await createModPathShortener(n);console.log(`${yt.green(it.tick)} Removed ${yt.cyan(o.target)} ${yt.dim(`· ${o.scope}`)}`),o.sourceIdentity&&o.sourceIdentity!==o.target&&console.log(yt.dim(` Removed its source ${o.sourceIdentity}`)),o.alsoRemoved&&o.alsoRemoved.length>0&&console.log(yt.dim(` That source also provided ${o.alsoRemoved.join(", ")}`)),o.removedPath&&console.log(yt.dim(` Deleted ${s(o.removedPath)}`)),o.removedFromSettings&&o.settingsPath&&console.log(yt.dim(` Updated ${s(o.settingsPath)}`))}catch(e){console.error(`${yt.red(it.cross)} ${sD(e instanceof Error?e.message:String(e))}`),process.exit(1)}}Ex(),Px(),__name(removeAction,"removeAction");var mD=new Le("remove").alias("rm").alias("uninstall").description("Remove a mod by its listed name or by its package source").argument("<target>","mod name from `mods list`, or the mod source (any spelling of it)").option("-g, --global","remove from user scope instead of project").action(removeAction);async function updateAction(){const e=createNodeRuntime(),t=await updateModSources({runtime:e,includeProject:await isCommandProjectSessionInitialized()});for(const e of t.updated)console.log(`${yt.green(it.tick)} ${yt.cyan(e)}`);for(const e of t.failures)console.error(`${yt.red(it.cross)} ${e.source} ${yt.dim(`· ${e.reason}`)}`);0===t.updated.length&&0===t.failures.length&&console.log(yt.dim("No mod package sources configured.")),t.failures.length>0&&process.exit(1)}Ex(),Px(),__name(updateAction,"updateAction");var pD=new Le("update").alias("up").description("Reinstall and reconcile every configured mod package").action(updateAction),gD=new Le("mods").description("Manage mods — loadable extensions from npm, git, or local paths").addCommand(aD).addCommand(mD).addCommand(dD).addCommand(pD).addCommand(uD);function resolveBundledRipgrepPath(){try{const e=pt(import.meta.url),{rgPath:t}=e("@vscode/ripgrep");if("string"==typeof t&&t.length>0&&y(t))return t}catch{}}function registerBundledRipgrep(){if(process.env[fl])return;const e=resolveBundledRipgrepPath();void 0!==e&&(process.env[fl]=e)}function findModelById(e){return Object.values(ZA).find(t=>t.id===e)}function getModelNotice(e){const t=findModelById(e);if(!t?.notice)return;const n=t.vendorLabel??cR[t.provider]??"the upstream provider";return t.notice.replaceAll("{name}",t.name).replaceAll("{vendor}",n)}function getProviderFromModel(e){return findModelById(e)?.provider??FA}function getAllModelOptions(){return Object.values(ZA)}function getModelGroupLabel(e){return e.vendorLabel??cR[e.provider]??e.provider}function groupModelsByDisplayOrder(e){const t=new Map;for(const n of e){const e=getModelGroupLabel(n),r=t.get(e)??[];r.push(n),t.set(e,r)}return[...dR.filter(e=>t.has(e)),...[...t.keys()].filter(e=>!dR.includes(e))].map(e=>({label:e,models:t.get(e)}))}function getModelGroupsInOrder(){return groupModelsByDisplayOrder(getAllModelOptions().filter(e=>!e.hidden))}function resolveKnownModelId2(e){const t=getCanonicalModelId(e);return findModelById(t)?t:void 0}function modelSupportsVision(e){const t=findModelById(getCanonicalModelId(e));return!t?.inputModalities||t.inputModalities.includes("image")}Ex(),Px(),__name(resolveBundledRipgrepPath,"resolveBundledRipgrepPath"),__name(registerBundledRipgrep,"registerBundledRipgrep"),Ex(),Px(),Ex(),Px(),Ex(),Px(),Ex(),Px(),Ex(),Px(),Ex(),__name(findModelById,"findModelById"),__name(getModelNotice,"getModelNotice"),__name(getProviderFromModel,"getProviderFromModel"),__name(getAllModelOptions,"getAllModelOptions"),__name(getModelGroupLabel,"getModelGroupLabel"),__name(groupModelsByDisplayOrder,"groupModelsByDisplayOrder"),__name(getModelGroupsInOrder,"getModelGroupsInOrder"),__name(resolveKnownModelId2,"resolveKnownModelId"),__name(modelSupportsVision,"modelSupportsVision");var hD=/[-@]\d{8}$/,fD="workers-ai/@cf/";function ossEntryMatches(e,t){return e.canonicalId.toLowerCase()===t||Object.values(e.providers).some(e=>"string"==typeof e&&e.toLowerCase()===t)}function tryResolveCanonical2(e){const t=(iR[e.toLowerCase()]??e).toLowerCase(),n=Object.values(ZA).find(e=>e.id.toLowerCase()===t);if(n)return n.id;const r=eR.find(e=>ossEntryMatches(e,t));return r?.canonicalId}function getCanonicalModelId(e){if(!e)return e;const t=e.startsWith(fD)?e.slice(fD.length):e,n=tryResolveCanonical2(t);if(n)return n;const r=t.replace(hD,"");return r===t?t:tryResolveCanonical2(r)??t}function getModelDisplayName(e){const t=getCanonicalModelId(e),n=Object.values(ZA).find(e=>e.id===t);return n?.name??e}async function handleEffortCommand(e,t){const n=e.currentModel,r=n?getSupportedEfforts(n):null,o=t.trim().toLowerCase();if(o&&n&&r){if(r.includes(o)){const t=o;return t!==getReasoningEffort(n)&&(await setReasoningEffort({modelId:n,effort:t}),NO(e.sessionId)?.recordEffortChange({model:n,effort:t}),e.setStaticKey(e=>e+1)),void e.setFeed(e=>[...e,Yp(`Reasoning effort set to ${t}.`)])}if(r.length>0)return void e.setFeed(e=>[...e,Yp(`Unknown effort "${t.trim()}". Supported: ${r.join(", ")}.`)])}const s=resolveEffortCommand({model:n,supportedEfforts:r,modelLabel:n?getModelDisplayName(n):void 0});"notice"!==s.kind?e.setShowEffortSelector(!0):e.setFeed(e=>[...e,Yp(s.message)])}async function applyEffortSetting(e,t){const n=e.trim().toLowerCase();if(!n)return{ok:!1,message:"Provide a level, e.g. --effort high."};const r=t?.model??getConfiguredModel(),o=getSupportedEfforts(r);return o&&0!==o.length?o.includes(n)?(await setReasoningEffort({modelId:r,effort:n}),{ok:!0,message:`Reasoning effort set to ${n} for ${getModelDisplayName(r)}.`}):{ok:!1,message:`Unknown effort "${e.trim()}". Supported: ${o.join(", ")}.`}:{ok:!1,message:`${getModelDisplayName(r)} has no adjustable reasoning effort.`}}function usePasteAwareChange(e){const{onChange:t,onPaste:n}=e,r=tt(!1);return ot(async e=>{const o=processBracketedPaste(e),s=n??t,a=__name(async()=>{r.current=!1;const e=await detectClipboardText();e?s(e):o.cleanedContent&&s(o.cleanedContent)},"applyPastedText");if(!o.isPasteStart||r.current)r.current&&!o.isPasteEnd||(r.current&&o.isPasteEnd?await a():t(e));else{if(r.current=!0,!o.isPasteEnd)return;await a()}},[t,n])}function extractDeviceCode2(e){const t=e.match(/copy\s+this\s+code:\s*([^\s]+)/i);return t?.[1]??null}__name(ossEntryMatches,"ossEntryMatches"),__name(tryResolveCanonical2,"tryResolveCanonical"),__name(getCanonicalModelId,"getCanonicalModelId"),__name(getModelDisplayName,"getModelDisplayName"),__name(handleEffortCommand,"handleEffortCommand"),__name(applyEffortSetting,"applyEffortSetting"),Ex(),Px(),Ex(),Px(),Ex(),Px(),Ex(),Px(),__name(usePasteAwareChange,"usePasteAwareChange"),__name(extractDeviceCode2,"extractDeviceCode");var yD=__name(({providerId:e,onSuccess:t,onCancel:n,onFailure:r})=>{const o=getProviderDisplayName(e),[s,a]=et("confirm"),[i,l]=et(""),[c,d]=et(""),[u,m]=et(""),[p,g]=et(""),[h,f]=et(null),y=tt(!1),S=tt(!0),w=tt(!1),k=tt(null),v=tt(null),C=tt(null),b=tt(!1);nt(()=>()=>{S.current=!1,k.current&&clearTimeout(k.current),C.current=null},[]);const E=ot(e=>{w.current||(w.current=!0,k.current=setTimeout(()=>{if(k.current=null,!S.current)return;const t=e.keepTerminalActive?{wait:!1,background:!0}:void 0;wt(e.authUrl,t).catch(()=>{S.current&&f(`Failed to open browser. Please manually open: ${e.authUrl}`)})},300))},[]),T=ot(async t=>{if(!S.current)return;if(l(t.url),t.prompt)return d(t.instructions),b.current=!0,m(t.prompt.label),a("paste"),E({authUrl:t.url,keepTerminalActive:!1}),new Promise(e=>{v.current=e});b.current=!1;const n=e===Fr.COPILOT?extractDeviceCode2(t.instructions):null;if(n){const e=await writeClipboardText(n);if(!S.current)return;d(`Logging into Copilot, use this code: ${n}${e?" (copied)":""}`)}else d(t.instructions);return a("open-browser"),new Promise(e=>{C.current=()=>{C.current=null,a("waiting"),wt(t.url).catch(()=>{S.current&&f(`Failed to open browser. Please manually open: ${t.url}`)}),e({})}})},[e,E]),P=tt(()=>{});P.current=()=>{providerLogin({provider:e,onPending:T}).then(async()=>{S.current&&(await persistProviderSelection(e),a("success"),t())}).catch(e=>{if(!S.current)return;const t=e instanceof Error?e.message:"Authentication failed";if(f(t),y.current=!1,v.current=null,r?.(t),b.current)return g(""),void P.current();a("error")})};const M=ot(e=>{g(e.trim())},[]),x=usePasteAwareChange({onChange:g,onPaste:M}),I=__name(()=>{if(!p.trim()||y.current||!v.current)return;y.current=!0,f(null);const e=v.current;v.current=null,e({code:p.trim()})},"handleSubmit");Ye((e,t)=>{if(t.escape)n();else{if("confirm"===s){if(t.return||"y"===e||"Y"===e)return a("connecting"),void P.current();"n"!==e&&"N"!==e||n()}"open-browser"===s&&t.return&&C.current?.()}});const A=Xe.createElement(Ge,{marginBottom:1},Xe.createElement(Ve,{bold:!0,color:Rx.CYAN},o," Authentication"));if("confirm"===s){const t=e===Fr.COPILOT?"This will get a GitHub sign-in code.":`This will open your browser to sign in with ${o}.`;return Xe.createElement(Ge,{flexDirection:"column"},A,Xe.createElement(Ge,{marginBottom:1},Xe.createElement(Ve,null,t)),Xe.createElement(Ge,{marginBottom:1},Xe.createElement(Ve,null,"Continue?",Xe.createElement(Ve,{color:Rx.DIM}," (Y/n)"))))}return"connecting"===s?Xe.createElement(Ge,{flexDirection:"column"},A,Xe.createElement(Ge,{marginBottom:1},Xe.createElement(Ve,{color:Rx.DIM},"Getting sign-in code…")),Xe.createElement(Ge,null,Xe.createElement(SA,null,"Press ",Xe.createElement(wA,null,"Esc")," to cancel"))):"paste"===s?Xe.createElement(Ge,{flexDirection:"column"},A,i&&Xe.createElement(Ge,{marginBottom:1},Xe.createElement(Ve,{color:Rx.DIM},"Login: "),Xe.createElement(fI,{url:i,text:"Open auth page ↗",color:Rx.CYAN})),c&&Xe.createElement(Ge,{marginBottom:1},Xe.createElement(Ve,{color:Rx.DIM},c)),h&&Xe.createElement(Ge,{marginBottom:1},Xe.createElement(bO,null,h)),Xe.createElement(Ge,null,Xe.createElement(Ve,null,u||"Authorization code",": "),Xe.createElement(TextInput,{mask:"*",focus:!0,value:p,onChange:x,onSubmit:I,placeholder:"Paste code here..."})),Xe.createElement(Ge,{marginTop:1},Xe.createElement(SA,null,"Press ",Xe.createElement(wA,null,"Enter")," to submit or"," ",Xe.createElement(wA,null,"Esc")," to cancel"))):"open-browser"===s?Xe.createElement(Ge,{flexDirection:"column"},A,c&&Xe.createElement(Ge,{marginBottom:1},Xe.createElement(Ve,{bold:!0,color:Rx.GREEN},c)),i&&e!==Fr.COPILOT&&Xe.createElement(Ge,{marginBottom:1},Xe.createElement(Ve,{color:Rx.DIM},"Login: "),Xe.createElement(fI,{url:i,text:"Open auth page ↗",color:Rx.CYAN})),Xe.createElement(Ge,{marginBottom:1},Xe.createElement(Ve,{color:Rx.DIM},e===Fr.COPILOT?"Press Enter to open GitHub and paste the code there.":"Press Enter to open browser")),Xe.createElement(Ge,null,Xe.createElement(SA,null,"Press ",Xe.createElement(wA,null,"Esc")," to cancel"))):"waiting"===s?Xe.createElement(Ge,{flexDirection:"column"},A,c&&Xe.createElement(Ge,{marginBottom:1},Xe.createElement(Ve,{bold:!0,color:Rx.GREEN},c)),i&&Xe.createElement(Ge,{marginBottom:1},Xe.createElement(Ve,{color:Rx.DIM},"Open: "),Xe.createElement(fI,{url:i,text:"Open auth page ↗",color:Rx.CYAN})),Xe.createElement(Ge,{marginBottom:1},Xe.createElement(Ve,{color:Rx.DIM},"Waiting for authorization…")),Xe.createElement(Ge,null,Xe.createElement(SA,null,"Press ",Xe.createElement(wA,null,"Esc")," to cancel"))):"error"===s?Xe.createElement(Ge,{flexDirection:"column"},A,Xe.createElement(Ge,{marginBottom:1},Xe.createElement(bO,null,h)),Xe.createElement(Ge,null,Xe.createElement(SA,null,"Press ",Xe.createElement(wA,null,"Esc")," to go back"))):null},"ProviderAuth");function makeProviderAuthComponent(e){const t=__name(({onSuccess:t,onCancel:n})=>Xe.createElement(yD,{providerId:e,onSuccess:t,onCancel:n}),"Bound");return t.displayName=`ProviderAuth(${e})`,t}__name(makeProviderAuthComponent,"makeProviderAuthComponent");var SD=Object.fromEntries(Object.entries(Co).map(([e,t])=>[e,{...t}]));function getProviderConfig(e){return SD[e]}async function getProviderAuthState(e){if(!e)return null;const t=getProviderConfig(e);return t?resolveProviderAuthState({displayName:t.displayName,requiresAuth:t.requiresAuth,checkAuth:t.checkAuth}):null}async function handleModelSelect({modelId:e,provider:t,setCurrentModel:n,setShowModelSelector:r,setStatus:o,modelNotificationTimer:s,setShowModelNotification:a,setCurrentProvider:i,setStaticKey:l,sessionId:c,setFeed:d,setContextUsage:u,setModelNotice:m}){try{const p=await applyCommandModelSelection({modelId:e,provider:t,sessionId:c,catalog:{getDisplayName:getModelDisplayName},deps:{getProviderAuthState:getProviderAuthState,getCurrentModel:getConfiguredModel,persistProvider:__name(async t=>{dlog(`[Model] Setting provider to ${t} for ${e}`),await updateUserConfig({provider:t})},"persistProvider"),persistDefaultModel:__name(async e=>{await persistDefaultModel({model:e})},"persistDefaultModel"),setSessionModel:setSessionModel,clearModelOverride:clearModelOverride,saveSessionModel:__name(async({sessionId:e,modelId:t})=>{await saveCommandSessionMeta({sessionId:e,meta:{model:t}})},"saveSessionModel"),onProviderPersisted:i,log:dlog}});if("auth-blocked"===p.status)return o(p.message),void r(!1);if(n(e),p.modelChanged&&(hardResetForResize(),l(e=>e+1)),r(!1),o(p.statusMessage),p.modelChanged&&m?.(getModelNotice(e)??null),p.modelChanged){const t=await reconcileCommandModelSelection({modelId:e,modelName:p.modelName,previousModel:p.previousModel,harness:c?NO(c):void 0,catalog:{getContextLimit:getContextLimit,supportsVision:modelSupportsVision},hasImagesInHistory:harnessHasImagesInHistory});u?.(t.contextUsage);for(const e of t.notices)d?.(t=>[...t,Yp(e.message)])}s.current&&clearTimeout(s.current),a(!0),s.current=setTimeout(()=>{a(!1),s.current=null},5e3)}catch(e){console.error("Failed to set model:",e),o("Failed to set model"),r(!1)}}function handleModelCancel({setShowModelSelector:e}){e(!1)}async function handleModelCommand(e,t){const n=t.trim();if(!n)return void e.setShowModelSelector(!0);const r=resolveKnownModelId2(n);if(!r)return e.setFeed(e=>[...e,Yp(`Unknown model "${n}" — opening the model picker so you can choose.`)]),void e.setShowModelSelector(!0);await handleModelSelect({modelId:r,provider:getProviderFromModel(r)||void 0,setCurrentModel:e.setCurrentModel??(()=>{}),setShowModelSelector:e.setShowModelSelector,setStatus:e.setStatus,modelNotificationTimer:{current:null},setShowModelNotification:__name(()=>{},"setShowModelNotification"),setStaticKey:e.setStaticKey,sessionId:e.sessionId,setFeed:e.setFeed,setContextUsage:e.setContextUsage,setModelNotice:e.setModelNotice})}async function applyModelSetting(e){const t=e.trim();if(!t)return{ok:!1,message:"Provide a model, e.g. --model gpt-5."};const n=resolveKnownModelId2(t);if(!n)return{ok:!1,message:`Unknown model "${t}". Run with --list-models to see the options.`};await persistDefaultModel({model:n});const r=getProviderFromModel(n);return r&&await updateUserConfig({provider:r}),{ok:!0,message:`Default model set to ${getModelDisplayName(n)}.`}}async function handleThemeSelect({theme:e,setShowThemeSelector:t,setStatus:n,setStaticKey:r}){t(!1);try{const t=resolveCliTheme(getCliTheme()),o=resolveCliTheme(e),s=t!==o;await setCliTheme({theme:e}),applyTuiTheme(o),s&&(FI(),hardResetForResize(),r(e=>e+1)),n(buildThemeStatusMessage(e))}catch{n(Xr)}}function handleThemeCancel({setShowThemeSelector:e}){e(!1)}async function handleThemeCommand(e,t){const n=t.trim().toLowerCase();n?Dr.includes(n)?await handleThemeSelect({theme:n,setShowThemeSelector:e.setShowThemeSelector,setStatus:e.setStatus,setStaticKey:e.setStaticKey}):e.setFeed(e=>[...e,Yp(`Unknown theme "${n}". Options: ${Dr.join(", ")}.`)]):e.setShowThemeSelector(!0)}async function applyThemeSetting(e){const t=e.trim().toLowerCase();return t?Dr.includes(t)?(await setCliTheme({theme:t}),{ok:!0,message:`Theme set to ${t}.`}):{ok:!1,message:`Unknown theme "${e.trim()}". Options: ${Dr.join(", ")}.`}:{ok:!1,message:"Provide a theme, e.g. --theme auto."}}SD.anthropic&&(SD.anthropic.authComponent=makeProviderAuthComponent(Fr.ANTHROPIC),SD.anthropic.checkAuth=async()=>{const{token:e}=await providerAuthHeaders({provider:Fr.ANTHROPIC});return!!e}),SD["github-copilot"]&&(SD["github-copilot"].authComponent=makeProviderAuthComponent(Fr.COPILOT),SD["github-copilot"].checkAuth=async()=>{const{token:e}=await providerAuthHeaders({provider:Fr.COPILOT});return!!e}),SD.codex&&(SD.codex.authComponent=makeProviderAuthComponent(Fr.CODEX),SD.codex.checkAuth=async()=>{const{token:e}=await providerAuthHeaders({provider:Fr.CODEX});return!!e}),__name(getProviderConfig,"getProviderConfig"),__name(getProviderAuthState,"getProviderAuthState"),__name(handleModelSelect,"handleModelSelect"),__name(handleModelCancel,"handleModelCancel"),__name(handleModelCommand,"handleModelCommand"),__name(applyModelSetting,"applyModelSetting"),Ex(),Px(),__name(handleThemeSelect,"handleThemeSelect"),__name(handleThemeCancel,"handleThemeCancel"),__name(handleThemeCommand,"handleThemeCommand"),__name(applyThemeSetting,"applyThemeSetting");var wD=[{key:"model",apply:__name(e=>applyModelSetting(e),"apply")},{key:"effort",valueHint:"level",description:"Set reasoning effort for the session (e.g. low, medium, high) — depends on the model",apply:__name((e,t)=>applyEffortSetting(e,t),"apply")},{key:"theme",valueHint:"theme",description:"Set the color theme (dark or light)",apply:__name(e=>applyThemeSetting(e),"apply")}],kD=__name(e=>`--${e.key} <${e.valueHint}>`,"flagSpecOf"),vD=wD.filter(e=>void 0!==e.valueHint&&void 0!==e.description);async function applyConfigSetting(e){const t=e.indexOf("=");if(t<1)return{ok:!1,message:"Use --config key=value, e.g. --config theme=dark."};const n=e.slice(0,t).trim().toLowerCase(),r=e.slice(t+1).trim(),o=wD.find(e=>e.key===n);if(o)return o.apply(r);const s="true"===r||"false"!==r&&r;try{return await updateConfigSetting({id:n,value:s}),{ok:!0,message:`Set ${n} = ${r}.`}}catch(e){return{ok:!1,message:e instanceof Error?e.message:`Could not set config "${n}".`}}}__name(applyConfigSetting,"applyConfigSetting");var CD=getPackageJson(import.meta.url),bD=__name((e,t=[])=>[...t,e],"collectAddDir"),ED=__name((e,t=[])=>[...t,e],"collectConfig");function displayCustomHelp(){const e=CD.version,t=getInvokedCommandName(),n=getVisibleSlashCommands();console.log(),console.log(lt.bold("Command Code")+lt.gray(` v${e}`)),console.log(lt.gray(Ms)),console.log(),console.log(lt.bold("Usage")),console.log(` ${t} <command> [options]`),console.log(),console.log(lt.bold("Options"));for(const e of Ds){const n=e.key.replace(/^cmd/,t);console.log(" "+n.padEnd(xs)+lt.gray(e.description))}console.log(),console.log(lt.bold("Commands"));for(const e of Ns){const n=e.key.replace(/^cmd/,t);console.log(" "+n.padEnd(xs)+lt.gray(e.description))}console.log(),console.log(lt.bold("Slash Commands"));for(const e of n)console.log(" "+e.key.padEnd(xs)+lt.gray(e.description));console.log(),console.log(lt.bold("Keyboard Shortcuts"));for(const e of Os)console.log(" "+e.key.padEnd(xs)+lt.gray(e.description));console.log(),console.log(lt.bold("Examples"));for(const e of _s){const n=e.key.replace(/^cmd/,t);console.log(" "+n.padEnd(xs)+lt.gray(e.description))}console.log(),console.log(lt.cyan("❯")+" "+lt.gray(Is.replace(/cmd/,t))),console.log(),console.log(lt.bold("Links"));for(const e of $s)console.log(" "+e.key.padEnd(xs)+lt.cyan(e.description));console.log()}function createProgram(){const e=new Le;e.name(getInvokedCommandName()).description("Command Code with your coding taste.").version(CD.version??"0.0.0","-v, --version","display the version number").argument("[prompt]","Your prompt to run in interactive mode").option("-r, --resume [name]","Resume a session by id or name, or pick from history").option("--sessions [name]","Alias of --resume — resume a session by id or name, or pick from history").option("-c, --continue"," Continue the most recent session in the current directory").option("--fork-session","With --resume/--continue, fork the session into a new one (original left untouched)").option("--session <path|id>","Resume a session by transcript path (.jsonl) or a unique session-id prefix").option("--no-session","Don't persist this session to disk (in-memory only)").option("-n, --name <name>","Set the session display name").option("-t, --trust","Trust the project (skip initial trust permission prompt)").addOption(new Ne("--dangerously-skip-permissions","Bypass all permission prompts (use with caution)").hideHelp()).addOption(new Ne("--yolo","Bypass all permission prompts (alias for --dangerously-skip-permissions)").implies({dangerouslySkipPermissions:!0})).option("--plan","Start in plan mode (read-only exploration and planning)").addOption(new Ne("--auto-accept","Start in auto-accept mode").implies({permissionMode:"auto-accept"})).addOption(new Ne("--permission-mode <mode>","Set permission mode").choices(["default","standard","plan","auto-accept","dont-ask"])).option("--skip-onboarding","Skip taste onboarding (for non-interactive/automated runs)").option("-p, --print [query]","Run in non-interactive mode, output response and exit").option("--max-turns <number>",`Max agentic turns (model API round trips): print mode limit (default ${Ts}); interactive mode sets the /goal turn budget (default 100)`,e=>{const t=parseInt(e,10);if(isNaN(t)||t<1)throw new $e("--max-turns must be a positive integer");return t}).option("--verbose","Stream tool execution progress to stderr in print mode").option("--tools-all","Print mode: enable every tool, including the ones a headless run withholds").option("--tools-enable <names>","Print mode: enable specific withheld tools by name, comma-separated (e.g. ask_user_question,exit_plan_mode); repeatable",bD,[]).addOption(new Ne("--output-format <format>","Print-mode output: text (default) or json — newline-delimited AgentEvent frames plus one final result line").choices(["text","json"])).option("--ide-setup",As).option("--no-auto-update","Disable automatic background updates for this run").option("--add-dir <directory>","Add directory to workspace context",bD,[]).option("-w, --worktree [name]","Run this session in an isolated git worktree (managed under ~/.commandcode/worktrees/). Accepts a name, a path, or a PR (#1234). Generates a name when omitted.").option("--mod <path>","Load a mod file or directory for this session (repeatable)",bD,[]).option("--mod-option <name=value>","Set a mod-declared flag value (repeatable)",bD,[]).option("--skill <path>","Load extra skills from a path (a skill directory or a directory of skills); repeatable",bD,[]).option("--no-skills","Skip skill discovery; paths given via --skill still load").option("-m, --model <model>","Run on a specific model this session (e.g. claude-sonnet-4-6, kimi-k2.5). Unknown ids are rejected; see --list-models.").option("--list-models","List the models available for use").addOption(new Ne("--benchmark-output <path>","Path to write benchmark metrics JSON").hideHelp()).addOption(new Ne("--experimental","Enable experimental features").hideHelp()).addOption(new Ne(So).hideHelp()).addOption(new Ne(wo).hideHelp()).addOption(new Ne("-d, --debug","Enable debug mode").hideHelp()).addOption(new Ne("--local","Use local server").hideHelp()).addOption(new Ne("--staging","Use staging server").hideHelp()).helpOption("-h, --help","Display help message").allowUnknownOption();for(const t of vD)e.option(kD(t),t.description);return e.option("--config <key=value>","Set a setting headlessly, e.g. --config theme=dark (repeatable)",ED),e.configureHelp({formatHelp:__name(()=>(displayCustomHelp(),""),"formatHelp")}),e}__name(displayCustomHelp,"displayCustomHelp"),__name(createProgram,"createProgram");var TD=null;function commandPath(e){const t=[];let n=e;for(;null!==n&&null!==n.parent;)t.unshift(n.name()),n=n.parent;return t.join(" ")}function flagNames(e){return Object.entries(e.opts()).filter(([,e])=>void 0!==e&&!1!==e).map(([e])=>`--${e}`).join(" ")}function failPendingCommandSpan(e){null!==TD&&(recordError({span:TD,error:sanitizeErrorForTelemetry({error:e,label:"command_error"})}),TD.end(),TD=null)}function abandonPendingCommandSpan(){null!==TD&&(TD.setAttribute("cmd.command.outcome","abandoned"),TD.end(),TD=null)}function setupCommanderHooks(e){e.hook("preAction",(e,t)=>{dlogSection("cmd");const n=t.name(),r=t.parent?.name();dlog(`[cmd] ${r&&r!==n?"subcommand":"running"}: ${n}`);const o=t.opts(),s=Object.entries(o).filter(([,e])=>void 0!==e&&!1!==e).map(([e,t])=>!0===t?`--${e}`:`--${e}=${t}`).join(" ");s&&dlog(`[cmd] options: ${s}`);const a=t.args;a.length>0&&dlog(`[cmd] arguments: ${a.join(" ")}`);const i=commandPath(t);if(!i)return;const l=flagNames(t);TD=createSpan({name:`command:${i}`,attributes:{"cmd.command.name":i,"cmd.command.arg_count":a.length,...l?{"cmd.command.args":l}:{}}})}),e.hook("postAction",()=>{dlogSection("Done"),null!==TD&&(endSpan({span:TD,status:"success"}),TD=null)})}__name(commandPath,"commandPath"),__name(flagNames,"flagNames"),__name(failPendingCommandSpan,"failPendingCommandSpan"),__name(abandonPendingCommandSpan,"abandonPendingCommandSpan"),__name(setupCommanderHooks,"setupCommanderHooks");var{red:PD,yellow:MD,dim:xD}=lt;function printErrorDetails(e,t){if(console.log(`${vt.error} ${PD(t)}`),console.log(`${vt.error} ${PD("ERROR →")} ${e.name}`),console.log(`${vt.info} ${PD("REASON →")} ${e.message}`),console.log(`${vt.info} ${PD("ERROR STACK ↓ \n")} ${e.stack}\n`),!isTelemetryInitialized())return;const n=getDisplayTraceId();console.log(`${vt.info} ${xD(`Trace ID: ${n}`)}`),console.log(`${xD(" Share this ID with support to help debug your issue.")}\n`)}__name(printErrorDetails,"printErrorDetails");var ID=__name(e=>{const{heading:t="ERROR: ",error:n,displayError:r=!0,exit:o=!0,skipTelemetry:s=!1}=e;if(n){if(s||trackCliError({error:n,heading:t}),failPendingCommandSpan(n),console.log(),r||console.log(`${vt.warning} ${MD(t)}\n`),r&&printErrorDetails(n,t),!o)return!1;process.exit(0)}},"handleError");function handleUnhandledErrors(){process.on("unhandledRejection",e=>{const t=e instanceof Error?e:new Error(String(e));trackError({error:sanitizeErrorForTelemetry({error:t,label:"unhandled_rejection"}),context:{component:co.UNHANDLED_REJECTION,heading:"Unhandled Promise Rejection"}}),ID({heading:St`CRITICAL: Unhandled Promise Rejection!
|
|
15
15
|
This is an unexpected error. Please file a bug report at https://github.com/CommandCodeAI/command-code/issues/new`,error:t,skipTelemetry:!0,exit:!1}),shutdownTelemetry().finally(()=>{process.exit(1)})}),process.on("uncaughtException",e=>{trackError({error:sanitizeErrorForTelemetry({error:e,label:"uncaught_exception"}),context:{component:co.UNCAUGHT_EXCEPTION,heading:"Uncaught Exception"}}),ID({heading:St`CRITICAL: Uncaught Exception!
|
|
16
|
-
This is an unexpected error. Please file a bug report at https://github.com/CommandCodeAI/command-code/issues/new`,error:e,skipTelemetry:!0,exit:!1}),shutdownTelemetry().finally(()=>{process.exit(1)})})}__name(handleUnhandledErrors,"handleUnhandledErrors"),Ex(),Px(),Ex(),Ex(),Px(),Ex(),Px(),Ex(),Px(),Ex();var AD=Ox,RD=Rx.DIM,OD=Rx.DIMMER,DD=Ox,LD=Rx.WHITE,ND=Rx.GRAY,$D=Rx.GREEN;function hasContent(e){return null!=e&&""!==e}__name(hasContent,"hasContent");var _D=__name(({title:e,titleSuffix:t,subtitle:n,children:r,hint:o,footer:s,rule:a=!0,titleColor:i=AD,ruleColor:l=OD,gapAfterHeader:c=!0,boxProps:d})=>{const u=hasContent(n);return Xe.createElement(Ge,{flexDirection:"column",width:"100%",...d},a&&Xe.createElement(aI,{dividerColor:l}),Xe.createElement(Ge,null,Xe.createElement(Ve,{bold:!0,color:i},e),hasContent(t)&&Xe.createElement(Ve,{color:RD},t)),u?Xe.createElement(Ge,{marginBottom:c?1:0},Xe.createElement(Ve,{color:RD},n)):c&&Xe.createElement(Ge,{marginBottom:1}),r,s?Xe.createElement(Ge,{marginTop:1},s):o?Xe.createElement(Ge,{marginTop:1},Xe.createElement(Ve,{italic:!0,color:RD},o)):null)},"Overlay");Ex();var FD=it.pointer,UD=__name(({isSelected:e,backgroundColor:t})=>Xe.createElement(Ve,{color:e?DD:ND,backgroundColor:t,bold:e&&isLightTheme()},e?FD:" "),"OverlayCaret"),jD=__name(({isSelected:e,isActive:t,idleColor:n=LD,backgroundColor:r,children:o})=>Xe.createElement(Ve,{color:e?DD:t?$D:n,backgroundColor:r,bold:e&&isLightTheme()},o),"OverlayOptionText"),BD=__name(({isSelected:e,label:t})=>Xe.createElement(jD,{isSelected:e}," ",t),"OverlayOptionItem"),WD=__name(({backgroundColor:e})=>Xe.createElement(Ve,{color:$D,backgroundColor:e}," ",it.tick),"OverlayActiveTick"),HD=__name(({indent:e=4,children:t})=>Xe.createElement(Ve,{color:RD}," ".repeat(e),t),"OverlayOptionDescription"),GD=__name(({isSelected:e,idleColor:t=Rx.GRAY,selectedColor:n=Rx.WHITE,bold:r,children:o})=>Xe.createElement(Ve,{color:e?n:t,backgroundColor:e?eI:void 0,bold:r??e},o),"OverlayBarText"),VD=__name(({isSelected:e,label:t})=>Xe.createElement(GD,{isSelected:e}," ",t," "),"OverlayBarItem"),zD=__name(()=>null,"OverlayBarIndicator");Ex();var qD=createOSC8Link("https://commandcode.ai/docs/permissions#permission-modes","Docs ↗",!1),KD=__name(({hint:e})=>Xe.createElement(Ve,{italic:!0,color:Rx.DIM},e," · Run ",Xe.createElement(Ve,{color:Rx.WHITE},"cmd --yolo")," to bypass all permissions (",qD,")"),"PermissionFooter"),YD=__name(({request:e,onResponse:t})=>{const[n]=et(0),r=getPermissionChoicesForRisk({choices:getGenericToolPermissionChoices({toolName:e.toolName}),risk:e.risk}),o=__name(e=>{const n=r.find(t=>t.value===e.value);n&&t(n)},"handleSelect");return Xe.createElement(_D,{title:"Tool Permission",subtitle:Xe.createElement(Ve,{wrap:"wrap"},"Command Code needs to run ",Xe.createElement(Ve,{color:DD},e.toolName),"."),footer:Xe.createElement(KD,{hint:"↑/↓ navigate · enter select"})},e.risk&&Xe.createElement(Ge,{marginBottom:1},Xe.createElement(Ve,{bold:!0,color:Rx.RED,wrap:"wrap"},it.warning," ",getRiskDisplay(e.risk))),e.description&&Xe.createElement(Ge,{marginBottom:1},Xe.createElement(Ve,{color:Rx.DIM,italic:!0},e.description)),Xe.createElement(SelectInput,{items:r.map((e,t)=>({label:`${t+1}. ${e.label}`,value:e.value})),onSelect:o,initialIndex:n,indicatorComponent:UD,itemComponent:BD}))},"GenericPermissionPrompt");function buildTreeConnectors(e,t={}){const{isTruncated:n=!1,closesFrame:r=!0}=t;return e.split("\n").map((e,t,o)=>r&&!n&&t===o.length-1?EI:TI).join("\n")}Ex(),Px(),Ex(),Px(),Ex(),__name(buildTreeConnectors,"buildTreeConnectors");var JD=ft()?"⟳":"*",QD=" │ ";function DiffWordSegments({segments:e,type:t,paired:n,dimDiff:r,language:o,highlightOptions:s}){const a="removed"===t?$x.REMOVED_HIGHLIGHT_BG:$x.ADDED_HIGHLIGHT_BG,i=[];let l=0;for(const c of e){const e=c.highlighted,d=highlightSyntax(c.text,o,s),u=`${t}-${l++}-${e?"highlighted":"unchanged"}`;e?i.push(Xe.createElement(Ve,{key:u,backgroundColor:a,dimColor:r},d)):n?i.push(Xe.createElement(Ve,{key:u,color:Rx.WHITE,dimColor:r},d)):i.push(Xe.createElement(Ve,{key:u,color:"removed"===t?$x.REMOVED_TEXT:$x.ADDED_TEXT,dimColor:r},d))}return i}function DiffRow({background:e,prefix:t,wrap:n="wrap",children:r}){return Xe.createElement(Ge,{width:"100%",backgroundColor:e},Xe.createElement(Ge,{flexShrink:0},t),Xe.createElement(Ge,{flexGrow:1,flexShrink:1,minWidth:0},Xe.createElement(Ve,{wrap:n},r)))}function renderDiffLine({line:e,dimDiff:t,language:n,highlightOptions:r}){if("skip"===e.kind)return Xe.createElement(Ge,{key:e.key,width:"100%"},Xe.createElement(Ve,{color:$x.LINE_NUM,dimColor:t},e.spacer,QD,e.label));if("context"===e.kind)return Xe.createElement(DiffRow,{key:e.key,prefix:Xe.createElement(Ve,{color:$x.LINE_NUM,dimColor:t}," "+e.lineNumberLabel+QD)},Xe.createElement(Ve,{color:Rx.WHITE,dimColor:t}," ",highlightSyntax(e.text,n,r)));const o="removed"===e.kind,s=o?$x.REMOVED_TEXT:$x.ADDED_TEXT,a=o?$x.REMOVED_BG:$x.ADDED_BG;return Xe.createElement(DiffRow,{key:e.key,background:a,prefix:Xe.createElement(Ve,null,Xe.createElement(Ve,{color:s,dimColor:t}," "+e.lineNumberLabel),Xe.createElement(Ve,{color:$x.LINE_NUM,dimColor:t},QD),Xe.createElement(Ve,{color:s,dimColor:t},o?"- ":"+ "))},Xe.createElement(DiffWordSegments,{segments:e.segments,type:e.kind,paired:e.paired,dimDiff:t,language:n,highlightOptions:r}))}function DiffMetadata({metadata:e}){return e?"rejected"===e.kind?Xe.createElement(Ve,{color:Rx.RED},"Rejected update to",Xe.createElement(Ve,{color:Rx.RED},` ${e.filePath}`)):Xe.createElement(Ve,{color:Rx.GRAY},"Updated"," ",Xe.createElement(Ve,{color:Rx.WHITE,bold:!0},e.filePath)," ","with"," ",e.additions>0&&Xe.createElement(Xe.Fragment,null,Xe.createElement(Ve,{color:jx.SUCCESS},e.additions)," ","addition",1!==e.additions?"s":"",e.removals>0?" and ":""),e.removals>0&&Xe.createElement(Xe.Fragment,null,Xe.createElement(Ve,{color:jx.ERROR},e.removals)," ","removal",1!==e.removals?"s":"")):null}function generateDiff({oldValue:e,newValue:t,filePath:n,permissionDenied:r=!1,showMetadata:o=!1,marginLeft:s=2,startLine:a=1,dimDiff:i=!1,maxLines:l}){const c=projectEditDiffView({oldValue:e,newValue:t,filePath:n,permissionDenied:r,showMetadata:o,startLine:a,maxLines:l});let d="";"string"==typeof t&&t?d=t:"string"==typeof e&&(d=e);const u=syntaxLanguageFromFilePath(n,d.split("\n",1)[0]??null),m=getSyntaxHighlightOptions(isLightTheme());return{diffContent:Xe.createElement(Ge,{flexDirection:"column"},Xe.createElement(DiffMetadata,{metadata:c.metadata}),Xe.createElement(Ge,{flexDirection:"column",marginLeft:s,marginRight:s+4,width:Math.max(20,(process.stdout.columns||80)-2*s-8)},c.displayedLines.map(e=>renderDiffLine({line:e,dimDiff:i,language:u,highlightOptions:m})))),isTruncated:c.isTruncated,totalLines:c.totalLines}}function resolveTodoTextStyle(e){return"completed"===e?{textColor:jx.SUCCESS,strikethrough:!0}:"in_progress"===e?{textColor:jx.IN_PROGRESS,strikethrough:!1}:{textColor:Rx.WHITE,strikethrough:!1}}function TodoChecklist({todos:e}){return Xe.createElement(Ge,{flexDirection:"column"},e.map((e,t)=>{const n="completed"===e.status?it.checkboxOn:it.checkboxOff,{textColor:r,strikethrough:o}=resolveTodoTextStyle(e.status),s="in_progress"===e.status&&e.activeForm?`${e.activeForm}…`:e.content;return Xe.createElement(Ge,{key:e.id||t,flexDirection:"row"},Xe.createElement(Ge,{width:2},Xe.createElement(Ve,{color:r},n)),Xe.createElement(Ve,{color:r,bold:"in_progress"===e.status,strikethrough:o},s))}))}function formatTodosForDisplay(e){const t=kg(e);return t?Xe.createElement(TodoChecklist,{todos:t}):Xe.createElement(Ve,null,e)}function computeDisplayInput({input:e,isAgent:t,isShell:n,expandedOutput:r}){return e?t?summarizeAgentTaskInput(e):n&&!r?truncateCommand({command:e}):e:e}function formatToolInput({input:e,isShell:t}){return Xe.createElement(BracketWrap,null,t?e:Xe.createElement(Markdown,null,e))}function ReadToolInlineSummaryRow({summary:e}){return e?.dimText?Xe.createElement(Ve,{dimColor:!0}," ",e.dimText):null}function resolveSymbol({isPending:e,hasError:t,isThinking:n,isTodos:r,output:o}){if(e)return{symbolColor:Rx.YELLOW,symbol:it.arrowRight};if(t)return{symbolColor:Rx.RED,symbol:it.square};if(n)return{symbolColor:Lx,symbol:"✻"};if(r&&o){const e=kg(o),t=e?.every(e=>"completed"===e.status);return{symbolColor:t?jx.SUCCESS:jx.WARNING,symbol:it.square}}return{symbolColor:_x.BG,symbol:it.square}}function ToolHeader({isThinking:e,isTasteFile:t,tasteCategory:n,name:r,summaryMatch:o,expandedOutput:s,expandKey:a,input:i,output:l}){if(e){const e=estimateReasoningSeconds(i||l||"");return Xe.createElement(Xe.Fragment,null,Xe.createElement(Ve,{color:Lx},`Thought for ${e} second${1!==e?"s":""}`," "),!s&&Xe.createElement(BracketWrap,{color:Rx.DIM},`${a}+o to expand`))}if(t)return Xe.createElement(Xe.Fragment,null,Xe.createElement(Ge,{flexShrink:0},Xe.createElement(Ve,{backgroundColor:Dx.BADGE_BG,color:Dx.BADGE_FG,bold:!0},MI)),Xe.createElement(Ve,null," ","Using your taste"," ",n?"package of ":"packages",n&&Xe.createElement(Ve,{bold:!0},n)));let c=r;return"READ[n]"===r&&o&&(c=`READ[${Number(o[1])}]`),Xe.createElement(Ge,{flexShrink:0},Xe.createElement(Ve,{backgroundColor:_x.BG,color:_x.FG,bold:!0},`${PI}${c}${PI}`))}function stripAgentUsageTrailer(e){return e.replace(/\n*<usage>[\s\S]*?<\/usage>\s*$/,"").trimEnd()}function AgentStatus({agentStatus:e,hasError:t,output:n,elapsedSeconds:r,tokensUsed:o}){const s=`${formatTime(r)} | ${formatTokens(o)}`;return"running"===e?Xe.createElement(Ve,{color:Rx.GRAY},"Running (",s,")"):"interrupted"===e||n===bf?Xe.createElement(Ve,{color:Rx.GRAY,wrap:"wrap"},"Interrupted"):"error"===e||t?Xe.createElement(Ve,{color:Rx.RED,wrap:"wrap"},n," (",s,")"):Xe.createElement(Xe.Fragment,null,Xe.createElement(Ve,{wrap:"wrap"},"Done"),Xe.createElement(Ve,{color:Rx.GRAY}," (",s,")"))}function getTruncatedOutputParts({output:e,name:t,expandedOutput:n,expandKey:r}){if(n)return{text:e,isTruncated:!1,remainingLines:0,truncationMsg:null};const o=dedentText(e),{text:s,isTruncated:a,remainingLines:i}=truncateToVisualLines({output:o,maxVisualLines:"Question"===t?Tc:bc,maxChars:"Question"===t?1/0:Rc}),l=a&&"Question"!==t;return{text:s,isTruncated:l,remainingLines:i,truncationMsg:l?i>0?Xe.createElement(BracketedText,{text:`... +${i} lines [${r}+o to expand]`,color:Rx.DIM}):Xe.createElement(BracketedText,{text:`... [${r}+o to expand]`,color:Rx.DIM}):null}}function renderTruncatedOutput({output:e,name:t,expandedOutput:n,expandKey:r}){const{text:o,isTruncated:s,truncationMsg:a}=getTruncatedOutputParts({output:e,name:t,expandedOutput:n,expandKey:r});return s?Xe.createElement(Xe.Fragment,null,o,"\n",a):o}function renderEditFileDiff({input:e,metadata:t,expandedOutput:n,isPermissionDenied:r,output:o,expandKey:s}){const a=n?void 0:Pc,{diffContent:i,isTruncated:l,totalLines:c}=generateDiff({filePath:e,showMetadata:!0,oldValue:t.oldValue??"",newValue:t.newValue??"",startLine:"number"==typeof t.startLine?t.startLine:1,dimDiff:r,permissionDenied:r,maxLines:a}),d=c-Pc;return Xe.createElement(Ge,{flexDirection:"column"},i,l&&Xe.createElement(Ge,{marginTop:1},Xe.createElement(BracketedText,{text:`… (${d} more ${1===d?"line":"lines"}) [${s}+o to expand]`,color:Rx.DIM})),r&&o&&Xe.createElement(Ge,{marginTop:1},Xe.createElement(Ve,{color:Rx.RED,wrap:"wrap"},o)))}function renderWriteFileContent({input:e,metadata:t,expandedOutput:n,expandKey:r}){const o=syntaxLanguageFromFilePath(e,t.content?.split("\n",1)[0]??null),s=getSyntaxHighlightOptions(isLightTheme()),a=projectWriteFileContentView({filePath:e,content:t.content,totalLines:t.totalLines,expandedOutput:n,expandKey:r});return a.empty?Xe.createElement(Ve,{color:Rx.GRAY},"Created"," ",Xe.createElement(Ve,{color:Rx.WHITE,bold:!0},a.filePath)," ","(empty file)"):Xe.createElement(Ge,{flexDirection:"column"},Xe.createElement(Ve,{color:Rx.GRAY},"Created"," ",Xe.createElement(Ve,{color:Rx.WHITE,bold:!0},a.filePath)," ","(",a.totalLinesLabel,")"),Xe.createElement(Ge,{marginTop:1,flexDirection:"column"},a.visibleLines.map(e=>Xe.createElement(DiffRow,{key:e.lineNumber,background:$x.ADDED_BG,wrap:"truncate-end",prefix:Xe.createElement(Ve,null,Xe.createElement(Ve,{color:$x.ADDED_TEXT}," "+e.lineNumberLabel),Xe.createElement(Ve,{color:$x.LINE_NUM},QD))},Xe.createElement(Ve,{color:$x.ADDED_TEXT},highlightSyntax(e.text,o,s))))),a.isTruncated&&a.moreLinesLabel&&Xe.createElement(Ge,{marginTop:1},Xe.createElement(BracketedText,{text:a.expandHint?`… (${a.moreLinesLabel}) ${a.expandHint}`:`… (${a.moreLinesLabel})`,color:Rx.DIM})))}function renderOutputContent({isTodos:e,isThinking:t,isEditFile:n,isWriteFile:r,metadata:o,output:s,expandedOutput:a,isPermissionDenied:i,input:l,hasError:c,name:d,expandKey:u,showTreeConnector:m,closesFrame:p}){if(e)return formatTodosForDisplay(s);if(t){if(!a)return null;const e=l||s;return Xe.createElement(Ge,{width:"100%",flexDirection:"column"},Xe.createElement(Ve,null," "),Xe.createElement(Ve,{color:Lx,wrap:"wrap",italic:!0},e))}const g=p?EI:TI;if(n&&"string"==typeof o?.oldValue&&"string"==typeof o?.newValue){const e=renderEditFileDiff({input:l,metadata:o,expandedOutput:a,isPermissionDenied:i,output:s,expandKey:u});return m?Xe.createElement(Ge,{columnGap:1},Xe.createElement(Ve,{color:Zx},g," "),e):e}if(r&&o&&"content"in o){const e=renderWriteFileContent({input:l,metadata:o,expandedOutput:a,expandKey:u});return m?Xe.createElement(Ge,{columnGap:1},Xe.createElement(Ve,{color:Zx},g," "),e):e}return m?renderTextWithLongConnector({output:s,name:d,expandedOutput:a,expandKey:u,hasError:c,closesFrame:p}):Xe.createElement(Ge,{width:"100%"},Xe.createElement(Ve,{color:c?Rx.RED:"",wrap:"wrap"},renderTruncatedOutput({output:s,name:d,expandedOutput:a,expandKey:u})))}function renderTextWithLongConnector({output:e,name:t,expandedOutput:n,expandKey:r,hasError:o,closesFrame:s}){const{text:a,isTruncated:i,truncationMsg:l}=getTruncatedOutputParts({output:e,name:t,expandedOutput:n,expandKey:r}),c=o?Rx.RED:void 0,d=buildTreeConnectors(a,{isTruncated:i,closesFrame:s}),u=s?EI:TI;return Xe.createElement(Ge,{flexDirection:"column",width:"100%"},Xe.createElement(Ge,{columnGap:1,width:"100%"},Xe.createElement(Ve,{color:Zx},d),Xe.createElement(Ge,{flexGrow:1,flexShrink:1,minWidth:0},Xe.createElement(Ve,{color:c,wrap:"wrap"},a))),i&&Xe.createElement(Ge,{columnGap:1},Xe.createElement(Ve,{color:Zx},u," "),l))}function ToolMessage({name:e,input:t,output:n,isPending:r=!1,hasError:o=!1,metadata:s,expandedOutput:a=!1}){const i="thinking…"===e,l="TODOS"===e,c="EDIT"===e,d="WRITE"===e,u="READ"===e||e.startsWith("READ[")&&e.endsWith("]"),m=!0===s?.isTasteFile,p=s?.tasteCategory,g=!0===s?.permissionDenied,h=!i&&!l&&!m,f="ctrl",y=!0===s?.isAgent,S=computeDisplayInput({input:t,isAgent:y,isShell:"SHELL"===e,expandedOutput:a}),w=!i&&S&&!m,k=s?.status,v=s?.tokensUsed||0,C="number"==typeof s?.elapsedSeconds?Math.floor(s.elapsedSeconds):0,{notes:b}=extractRepairNotes(n??""),E=b.length,T=u?parseReadSummaryLine(extractRepairNotes(n??"").body):null,P=u?projectReadToolInlineSummary({name:e,summaryMatch:T}):null,M=u?projectReadToolBadge({name:e,summaryMatch:T}):e,x=y&&!0===s?.showOutput&&"done"===k,I=Boolean((n||i&&t)&&!m&&(!y||x)&&(!u||o)),{symbolColor:A,symbol:R}=resolveSymbol({isPending:r,hasError:o,isThinking:i,isTodos:l,output:n}),O=s?.preHookLines,D=s?.postHookLines,L=Boolean(O?.length),N=Boolean(D?.length),$=Boolean(s?.hookOutcome),_=r&&!y&&!$,F=!$&&!_,U=I&&!N&&!$&&!_,j=L&&!I&&!N&&!$&&!_;return Xe.createElement(Ge,null,i&&Xe.createElement(Ve,{color:A},R),Xe.createElement(Ge,{flexDirection:"column",marginLeft:i?1:0},Xe.createElement(Ge,null,Xe.createElement(ToolHeader,{isThinking:i,isTasteFile:m,tasteCategory:p,name:M,summaryMatch:T,expandedOutput:a,expandKey:f,input:t,output:n}),w&&Xe.createElement(Ve,null," ",formatToolInput({input:S,isShell:"SHELL"===e})),Xe.createElement(ReadToolInlineSummaryRow,{summary:P}),E>0&&Xe.createElement(Ve,{dimColor:!0},` ${JD}${E>1?` ${E}`:""}`)),y&&("running"===k||n)&&Xe.createElement(Ge,{columnGap:1,marginLeft:h?1:0},h&&Xe.createElement(Ve,{color:Zx},EI," "),Xe.createElement(AgentStatus,{agentStatus:k,hasError:o,output:n,elapsedSeconds:C,tokensUsed:v})),Xe.createElement(HookLines,{lines:O,showTreeConnector:h,closesFrame:j}),I&&renderOutputWithRepairNotes({output:x?stripAgentUsageTrailer(n??""):n??"",isTodos:l,isThinking:i,isEditFile:c,isWriteFile:d,metadata:s,expandedOutput:a||x,isPermissionDenied:g,input:t,hasError:o,name:e,expandKey:f,showTreeConnector:h,closesFrame:U}),Xe.createElement(HookLines,{lines:D,showTreeConnector:h,closesFrame:F}),Xe.createElement(HookOutcome,{outcome:s?.hookOutcome,showTreeConnector:h}),_&&Xe.createElement(Ge,{columnGap:1,marginLeft:1},Xe.createElement(Ve,{color:Zx},EI," "),Xe.createElement(Ve,{color:Rx.GRAY},"Processing…"))))}function renderOutputWithRepairNotes({output:e,isTodos:t,isThinking:n,isEditFile:r,isWriteFile:o,metadata:s,expandedOutput:a,isPermissionDenied:i,input:l,hasError:c,name:d,expandKey:u,showTreeConnector:m,closesFrame:p}){const{body:g}=extractRepairNotes(e);return Xe.createElement(Ge,{marginLeft:m?1:0},renderOutputContent({isTodos:t,isThinking:n,isEditFile:r,isWriteFile:o,metadata:s,output:g,expandedOutput:a,isPermissionDenied:i,input:l,hasError:c,name:d,expandKey:u,showTreeConnector:m,closesFrame:p}))}function HookLines({lines:e,showTreeConnector:t,closesFrame:n=!1}){if(!e||0===e.length)return null;const r=e.length-1;return Xe.createElement(Ge,{flexDirection:"column",marginLeft:t?1:0},e.map((e,t)=>{const o=n&&t===r?EI:TI;return Xe.createElement(Ge,{key:t,columnGap:1},Xe.createElement(Ve,{color:Zx},o),Xe.createElement(Ge,{flexGrow:1,flexShrink:1,minWidth:0},Xe.createElement(Ve,{color:Rx.DIM},e)))}))}function HookOutcome({outcome:e,showTreeConnector:t}){if(!e)return null;const n="stop"===e.kind?Rx.YELLOW:Rx.RED;return Xe.createElement(Ge,{columnGap:1,marginLeft:t?1:0},Xe.createElement(Ve,{color:Zx},EI),Xe.createElement(Ge,{flexGrow:1,flexShrink:1,minWidth:0},Xe.createElement(Ve,{color:n},e.text)))}__name(DiffWordSegments,"DiffWordSegments"),__name(DiffRow,"DiffRow"),__name(renderDiffLine,"renderDiffLine"),__name(DiffMetadata,"DiffMetadata"),__name(generateDiff,"generateDiff"),__name(resolveTodoTextStyle,"resolveTodoTextStyle"),__name(TodoChecklist,"TodoChecklist"),__name(formatTodosForDisplay,"formatTodosForDisplay"),__name(computeDisplayInput,"computeDisplayInput"),__name(formatToolInput,"formatToolInput"),__name(ReadToolInlineSummaryRow,"ReadToolInlineSummaryRow"),__name(resolveSymbol,"resolveSymbol"),__name(ToolHeader,"ToolHeader"),__name(stripAgentUsageTrailer,"stripAgentUsageTrailer"),__name(AgentStatus,"AgentStatus"),__name(getTruncatedOutputParts,"getTruncatedOutputParts"),__name(renderTruncatedOutput,"renderTruncatedOutput"),__name(renderEditFileDiff,"renderEditFileDiff"),__name(renderWriteFileContent,"renderWriteFileContent"),__name(renderOutputContent,"renderOutputContent"),__name(renderTextWithLongConnector,"renderTextWithLongConnector"),__name(ToolMessage,"ToolMessage"),__name(renderOutputWithRepairNotes,"renderOutputWithRepairNotes"),__name(HookLines,"HookLines"),__name(HookOutcome,"HookOutcome");var XD=createNodeRuntime(),ZD=__name(({label:e,isSelected:t})=>e.includes("[shift+tab]")?Xe.createElement(Xe.Fragment,null,e.split("[shift+tab]")[0],Xe.createElement(BracketWrap,{color:t?DD:LD,bold:!0},"shift+tab")):e.includes("(")?Xe.createElement(Xe.Fragment,null,e.split("(")[0],Xe.createElement(Ve,{color:Rx.GRAY},"(",e.split("(")[1])):e,"ChoiceLabel"),eL=__name(({request:e,onResponse:t,onEnableAutoAccept:n})=>{const[r]=et(0),[o,s]=et(1);nt(()=>{"edit"===e.action&&e.oldContent&&e.filePath&&resolveEditStartLine({runtime:XD,filePath:e.filePath,oldContent:e.oldContent}).then(e=>{void 0!==e&&s(e)}).catch(()=>{})},[e.filePath,e.oldContent,e.action]);const a=getPermissionChoicesForRisk({choices:SE,risk:e.risk}),i=__name(e=>{const r=a.find(t=>t.value===e.value);r&&(t(r),"yes-session"===r.value&&n&&n())},"handleSelect"),l=__name(()=>"edit"===e.action?"make this edit to":"create"===e.action?"create":"delete"===e.action?"delete":"execute"===e.action?"execute":"modify","getActionDescription"),c=getDisplayPath({filePath:e.filePath,cwd:process.cwd()}),d=__name(()=>"edit"===e.action?"Edit File":"create"===e.action?"Create File":"delete"===e.action?"Delete File":"execute"===e.action?"Execute File":"File Operation","getHeading");return Xe.createElement(_D,{title:`${d()}${"edit"===e.action?` ${c}`:""}`,footer:Xe.createElement(KD,{hint:"↑/↓ navigate · enter select"})},"edit"===e.action&&e.oldContent&&e.newContent&&Xe.createElement(Ge,{marginBottom:1},generateDiff({oldValue:e.oldContent,newValue:e.newContent,filePath:c,marginLeft:0,startLine:o}).diffContent),e.risk&&Xe.createElement(Ge,{marginBottom:1},Xe.createElement(Ve,{bold:!0,color:Rx.RED,wrap:"wrap"},it.warning," ",getRiskDisplay(e.risk))),Xe.createElement(Ge,{marginBottom:1},Xe.createElement(Ve,{bold:!0},"Do you want to ",l()," ",Xe.createElement(Ve,{color:DD},c),"?")),Xe.createElement(SelectInput,{items:a.map((e,t)=>({label:` ${t+1}. ${e.label}`,value:e.value})),onSelect:i,initialIndex:r,indicatorComponent:UD,itemComponent:({label:e,isSelected:t})=>Xe.createElement(jD,{isSelected:t},Xe.createElement(ZD,{label:e,isSelected:t}))}))},"PermissionPrompt");Ex(),Px();var tL=UC?"ctrl+y":"ctrl+e",nL=__name(({request:e,onResponse:t})=>{const[n]=et(0),[r,o]=et({phase:"idle"}),s=e.description??("done"===r.phase?r.explanation:void 0),a=void 0!==e.explain&&void 0===e.description&&"done"!==r.phase;Ye((t,n)=>{a&&"loading"!==r.phase&&(isCtrlKey({inputChar:t,key:n,letter:"e",ctrlCode:5})||isCtrlKey({inputChar:t,key:n,letter:"y",ctrlCode:25}))&&(o({phase:"loading"}),e.explain?.().then(e=>{o(e?{phase:"done",explanation:e}:{phase:"failed"})}).catch(()=>o({phase:"failed"})))});const i=getPermissionChoicesForRisk({choices:getShellPermissionChoices({command:e.command,...void 0!==e.args?{args:e.args}:{}}),risk:e.risk}),l=__name(e=>{const n=i.find(t=>t.value===e.value);n&&t(n)},"handleSelect");return Xe.createElement(_D,{title:"Execute Shell Command",subtitle:Xe.createElement(Ve,{wrap:"wrap"},"Command Code needs to execute ",Xe.createElement(Ve,{color:DD},getCommandDisplay(e)),"."),footer:Xe.createElement(KD,{hint:a?`↑/↓ navigate · enter select · ${tL} explain`:"↑/↓ navigate · enter select"})},e.risk&&Xe.createElement(Ge,{marginBottom:1},Xe.createElement(Ve,{bold:!0,color:Rx.RED,wrap:"wrap"},it.warning," ",getRiskDisplay(e.risk))),e.workingDirectory&&Xe.createElement(Ge,{marginBottom:1},Xe.createElement(Ve,{color:Rx.GRAY},"Working directory: ",e.workingDirectory)),s&&Xe.createElement(Ge,{marginBottom:1},Xe.createElement(Ve,{color:Rx.DIM,italic:!0},s)),a&&"idle"===r.phase&&Xe.createElement(Ge,{marginBottom:1},Xe.createElement(Ve,{color:Rx.DIM,italic:!0},"Press"," ",Xe.createElement(BracketWrap,{color:Rx.DIM,bold:!0},tL)," ","to explain this command")),"loading"===r.phase&&Xe.createElement(Ge,{marginBottom:1},Xe.createElement(Ve,{color:Rx.DIM,italic:!0},Xe.createElement(gt,{type:"dots"})," Explaining this command…")),"failed"===r.phase&&Xe.createElement(Ge,{marginBottom:1},Xe.createElement(Ve,{color:Rx.DIM,italic:!0},"Couldn't generate an explanation — press"," ",tL," to retry")),Xe.createElement(SelectInput,{items:i.map((e,t)=>({label:` ${t+1}. ${e.label}`,value:e.value})),onSelect:l,initialIndex:n,indicatorComponent:UD,itemComponent:({label:e,isSelected:t})=>Xe.createElement(jD,{isSelected:t},e.includes("[shift+tab]")?Xe.createElement(Xe.Fragment,null,e.split("[shift+tab]")[0],Xe.createElement(BracketWrap,{color:t?DD:LD,bold:!0},"shift+tab")):e)}))},"ShellPermissionPrompt");function handlePermissionResponse({choice:e,resolve:t,setPendingPermission:n,respondToPrompt:r,setStatus:o,permissionMode:s,showHintMessage:a,allowedStatus:i,deniedStatus:l}){r(e);const c="no"!==e.value;t(c),n(null),c?(o(i),"default"===s&&a("Use shift+tab to enable auto-accept")):o(l)}__name(handlePermissionResponse,"handlePermissionResponse");var rL=Ze(__name(function PermissionView2({pendingPermission:e,permissionMode:t,setPendingPermission:n,setStatus:r,respondToPrompt:o,showHintMessage:s,handleEnableAutoAccept:a}){const i={resolve:e.resolve,setPendingPermission:n,respondToPrompt:o,setStatus:r,permissionMode:t,showHintMessage:s};if("shell_command"===e.toolName){const t=e.params;return Xe.createElement(Ge,{marginY:1},Xe.createElement(nL,{request:t,onResponse:e=>handlePermissionResponse({...i,choice:e,allowedStatus:"Shell command allowed",deniedStatus:"Shell command denied"})}))}if("kill_shell"===e.toolName){const t=buildKillShellPermissionRequest(e.params);return Xe.createElement(Ge,{marginY:1},Xe.createElement(nL,{request:t,onResponse:e=>handlePermissionResponse({...i,choice:e,allowedStatus:"Process termination allowed",deniedStatus:"Process termination denied"})}))}if(isGenericToolRequest(e.params)){const t=e.params;return Xe.createElement(Ge,{marginY:1},Xe.createElement(YD,{request:t,onResponse:e=>handlePermissionResponse({...i,choice:e,allowedStatus:"Tool call allowed",deniedStatus:"Tool call denied"})}))}const l=isFileEditRequest(e.params)?e.params:buildFileToolPermissionRequest({toolName:e.toolName,input:e.params,fallbackDescription:`Allow ${e.toolName} operation`,useInputDescription:!1});return Xe.createElement(Ge,{marginY:1},Xe.createElement(eL,{request:l,onResponse:e=>handlePermissionResponse({...i,choice:e,allowedStatus:"File operation allowed",deniedStatus:"File operation denied"}),onEnableAutoAccept:a}))},"PermissionView"));function isGenericToolRequest(e){return"object"==typeof e&&null!==e&&"toolName"in e&&"string"==typeof e.toolName}function isFileEditRequest(e){if("object"!=typeof e||null===e)return!1;const t=e;return"string"==typeof t.action&&"string"==typeof t.filePath}function PlanPanel({content:e,filePath:n,expanded:r}){const{stdout:o}=qe(),s=trimPlanMarkdown(e,getCollapsedPlanMaxLines(o?.rows)),a=s.hiddenLineCount>0,i=r?e:s.visible,l=1!==s.hiddenLineCount?"s":"",c=`… +${s.hiddenLineCount} more line${l} · ctrl+o to expand`;return Xe.createElement(_D,{title:"Plan",titleSuffix:n?` · ${t.basename(n)}`:void 0,gapAfterHeader:!1,hint:a?r?"ctrl+o to collapse":c:void 0},Xe.createElement(Ge,{marginTop:1},Xe.createElement(Markdown,null,i)))}__name(isGenericToolRequest,"isGenericToolRequest"),__name(isFileEditRequest,"isFileEditRequest"),Ex(),Px(),Ex(),Px(),__name(PlanPanel,"PlanPanel"),Ex(),Px();var oL=__name(({preview:e})=>{const t=e.trim().split("\n"),n=t.slice(0,8),r=t.length-n.length,o="─".repeat(70),s=`─── ✂ ─── ${r} line${1===r?"":"s"} hidden `,a="─".repeat(Math.max(0,70-s.length));return Xe.createElement(Ge,{flexDirection:"column",marginTop:1,paddingLeft:4},Xe.createElement(Ve,{italic:!0,color:Rx.DIM},"Preview"),Xe.createElement(Ve,{color:Rx.DIM},`┌${o}┐`),n.map((e,t)=>{const n=e.length>68?e.slice(0,68):e,r=" ".repeat(Math.max(0,68-n.length));return Xe.createElement(Ve,{key:t},Xe.createElement(Ve,{color:Rx.DIM},"│ "),Xe.createElement(Ve,{color:Rx.GRAY},n),Xe.createElement(Ve,{color:Rx.DIM},`${r} │`))}),r>0?Xe.createElement(Ve,{color:Rx.YELLOW},`├${s}${a}┤`):null,Xe.createElement(Ve,{color:Rx.DIM},`└${o}┘`))},"OptionPreview"),sL=[{label:"1. Submit",value:"submit"},{label:"2. Cancel",value:"cancel"}],aL=__name(({checked:e})=>e?Xe.createElement(Ve,{color:Rx.GREEN},"[",it.tick,"] "):Xe.createElement(Ve,{color:Rx.DIM},"[ ] "),"MultiSelectCheckbox"),iL=__name((e,t)=>{if(!e.startsWith("option_"))return null;const n=e.slice(7),r=parseInt(n,10);return Number.isNaN(r)||r<0||r>t?null:r},"parseOptionIndex"),lL=__name((e,t)=>{const n=new Set(e);return n.has(t)?(n.delete(t),n):(n.add(t),n)},"toggleLabel"),cL=__name((e,t)=>e?{indicator:it.bullet,color:DD}:t?{indicator:it.tick,color:Rx.GREEN}:{indicator:it.circle,color:Rx.GRAY},"getTabMarker"),dL=__name(({questions:e,currentIndex:t,answeredQuestions:n,isReviewPage:r,hideReview:o=!1})=>{if(o&&1===e.length)return null;const s=[];if(e.forEach((o,a)=>{const i=a===t&&!r,l=n.has(a),{indicator:c,color:d}=cL(i,l);s.push(Xe.createElement(Ve,{key:a},Xe.createElement(Ve,{color:d},c),Xe.createElement(Ve,{color:i?DD:void 0}," ",o.header),a<e.length-1?Xe.createElement(Ve,{color:Rx.DIM}," | "):null))}),!o){const e=r;s.push(Xe.createElement(Ve,{key:"review"},Xe.createElement(Ve,{color:Rx.DIM}," | "),Xe.createElement(Ve,{color:e?DD:Rx.GRAY},e?it.bullet:it.circle),Xe.createElement(Ve,{color:e?DD:void 0,bold:e}," ","Review")))}return Xe.createElement(Ge,null,s)},"TabIndicator"),uL=__name(({questions:e,onResponse:t,hideCustomInput:n=!1,compact:r=!1})=>{const[o,s]=et(0),[a,i]=et(new Map),l=tt(null);null===l.current&&(l.current=new Map);const c=l.current,[d,u]=et(""),[m,p]=et(new Set),[g,h]=et(null),[f,y]=et(!1),[S,w]=et(!1),[k,v]=et(!1),[C,b]=et(null),[E,T]=et(!1),P=tt(null);null===P.current&&(P.current=new Map);const M=tt(null);null===M.current&&(M.current=new Map);const[x,I]=et(!1),[A,R]=et(""),[,O]=et(0),D=e[o],L=D?.multiSelect??!1,N=a.get(o),$=D?[...D.options.map((e,t)=>({label:e.label,value:`option_${t}`,description:e.description,...void 0!==e.preview?{preview:e.preview}:{}}))]:[],_=$.map((e,t)=>({label:` ${t+1}. ${e.label}`,value:e.value})),F=new Map(_.map((e,t)=>[e.label,$[t]])),U=__name((e,t)=>{t.size>0?c.set(e,Array.from(t)):c.delete(e)},"saveOrClearMultiAnswer"),j=__name(t=>{const n=e[t],r=c.get(t);if(n?.multiSelect&&r){p(new Set(r));const e=r.find(e=>!n.options.some(t=>t.label===e));return void u(e||"")}if(p(new Set),!n?.multiSelect&&1===r?.length){const e=r[0],t=!n?.options.some(t=>t.label===e);return void u(t&&e?e:"")}u("")},"restoreInputsForQuestion"),B=__name(e=>{"submit"!==e.value?"cancel"===e.value&&t({answers:[]}):K()},"handleReviewSelect"),W=__name(()=>{if(!N||0===N.length)return 0;const e=N[0],t=D.options.findIndex(t=>t.label===e);return t>=0?t:0},"getInitialIndex"),H=__name(e=>{if(f)return;if(L){const t=iL(e.value,D.options.length-1);if(null===t)return;const n=D.options[t]?.label||"";return void p(e=>lL(e,n))}const t=iL(e.value,D.options.length-1);if(null===t)return;y(!0);const n=D.options[t]?.label||"";z([n])},"handleSelect"),G=__name(()=>{if(f)return;y(!0);const e=Array.from(m);z(e)},"handleMultiSelectDone"),V=__name(()=>{if(f)return;const e=d.trim();if(e){if(L){const t=new Set(D.options.map(e=>e.label));return void p(n=>{const r=new Set;return n.forEach(e=>{t.has(e)&&r.add(e)}),r.add(e),r})}y(!0),z([e])}},"handleOtherSubmit"),z=__name(t=>{c.set(o,t);const r=new Map(c);if(i(r),o<e.length-1){const e=o+1;return j(e),s(e),y(!1),v(!1),b(null),void T(!1)}if(e.every((e,t)=>r.has(t)))return n&&1===e.length?void K():(p(new Set),u(""),v(!1),T(!1),b(null),w(!0),void y(!1));const a=e.findIndex((e,t)=>!r.has(t));-1!==a&&(j(a),s(a)),y(!1),v(!1),b(null),T(!1)},"finishQuestion"),q=__name(()=>e.map((e,t)=>{const n=c.get(t)||[],r=M.current?.get(t),o=0===n.length&&r?.length?["(Image attached)"]:n,s=P.current?.get(t)?.trim(),a=e.multiSelect||1!==n.length?void 0:e.options.find(e=>e.label===n[0]);return{questionIndex:t,selectedOptions:o,...a?.preview?{preview:a.preview}:{},...s?{notes:s}:{},...r?.length?{images:r}:{}}}),"buildAnswers"),K=__name(()=>{t({answers:q()})},"submitAnswers"),Y=__name(()=>{t({answers:q(),disposition:"chat"})},"chatAboutQuestions"),J=__name(()=>{P.current&&(A.trim()?P.current.set(o,A):P.current.delete(o)),I(!1)},"saveNotesAndClose"),Q=__name(async()=>{try{const e=await detectClipboardImage();if(!e)return;const t=M.current?.get(o)??[];M.current?.set(o,[...t,{data:e.data,mediaType:e.mediaType}]),O(e=>e+1)}catch{}},"pasteClipboardImageIntoQuestion"),X=__name(async(e,t)=>{try{const n=await openInEditor(e);n!==e&&t(n)}catch{}},"editExternally"),Z=__name(e=>{w(!1),s(e),T(!1),v(!1),b(null),j(e)},"editQuestion"),ee=__name(t=>{t<0||t>=e.length||(L&&(U(o,m),i(new Map(c))),y(!1),v(!1),b(null),T(!1),j(t),s(t))},"navigateToQuestion"),te=__name(()=>{if(!g||!L)return;if("done"===g.value)return;const e=iL(g.value,D.options.length-1);if(null===e)return;const t=D.options[e]?.label||"";p(e=>lL(e,t))},"toggleMultiSelection"),ne=__name(e=>{const t=_[0],r=_[_.length-1],o=g&&t&&g.value===t.value,s=g&&r&&g.value===r.value;if(!e.downArrow||k||E||n||!(_.length>0)||!s)return e.upArrow&&!k&&!E&&_.length>0&&o?L?void T(!0):void(n||(v(!0),b(_.length-1))):e.upArrow&&k?(v(!1),b(_.length-1),void(r&&h(r))):e.downArrow&&k?(v(!1),L?void T(!0):(b(0),void(t&&h(t)))):e.upArrow&&E?(T(!1),void v(!0)):e.downArrow&&E?(T(!1),b(0),void(t&&h(t))):void(e.return&&E&&L&&G());v(!0)},"handleVerticalNav"),re=__name(t=>{f||k||E||(S?t.leftArrow&&Z(e.length-1):t.leftArrow&&o>0?ee(o-1):t.rightArrow&&(o<e.length-1?ee(o+1):(L&&(U(o,m),i(new Map(c))),w(!0))))},"handleHorizontalNav"),oe=__name(()=>{if(!f)if(S)w(!1);else{if(k){v(!1);const e=C??_.length-1;b(e);const t=_[e];return void(t&&h(t))}if(E){T(!1);const e=_[_.length-1];e&&h(e)}}},"handleEscape");if(Ye((e,t)=>{if(x)t.escape?J():t.ctrl&&"v"===e?Q():t.ctrl&&"g"===e&&X(A,R);else if(t.ctrl&&"v"===e&&k)Q();else if(t.ctrl&&"g"===e&&k)X(d,u);else{if(" "===e&&L&&!k&&te(),"d"!==e||!L||k||S||G(),!(k||S||f||n)){if("n"===e)return R(P.current?.get(o)??""),void I(!0);if("c"===e)return void Y()}S||f||ne(t),re(t),t.escape&&oe()}}),!D&&!S)return null;if(S)return Xe.createElement(Ge,{flexDirection:"column",width:"100%"},Xe.createElement(aI,{dividerColor:OD}),Xe.createElement(Ge,{marginBottom:1},Xe.createElement(dL,{questions:e,currentIndex:e.length,answeredQuestions:new Set(a.keys()),isReviewPage:!0})),e.some((e,t)=>!a.get(t)?.length)&&Xe.createElement(Ge,{marginBottom:1},Xe.createElement(Ve,{color:Rx.YELLOW},"⚠ You have not answered all questions")),e.map((e,t)=>Xe.createElement(Ge,{key:t,marginBottom:1,flexDirection:"column"},Xe.createElement(Ve,{color:Rx.DIM},t+1,". ",e.question),Xe.createElement(Ve,{color:Rx.GREEN}," ",a.get(t)?.join(", ")||"No answer"))),Xe.createElement(SelectInput,{items:sL,onSelect:B,initialIndex:0,indicatorComponent:UD,itemComponent:BD}),Xe.createElement(Ge,{marginTop:1},Xe.createElement(Ve,{italic:!0,color:Rx.DIM},it.arrowLeft," to go back and edit")));const se=r&&1===e.length;return Xe.createElement(Ge,{flexDirection:"column",width:"100%"},!se&&Xe.createElement(aI,{dividerColor:OD}),!se&&Xe.createElement(Ge,{marginBottom:1},Xe.createElement(dL,{questions:e,currentIndex:o,answeredQuestions:new Set(a.keys()),isReviewPage:!1,hideReview:n})),Xe.createElement(Ge,{marginBottom:1},Xe.createElement(Ve,{bold:!0,color:AD},D.question)),k||E||x?Xe.createElement(Ge,{flexDirection:"column"},_.map((e,t)=>{const n=F.get(e.label),r=L&&n&&m.has(n.label),o=!L&&n&&N?.includes(n.label),s=r||o;return Xe.createElement(Ge,{key:e.value,flexDirection:"column"},Xe.createElement(Ge,null,Xe.createElement(Ve,null," "),Xe.createElement(jD,{isActive:s,idleColor:Rx.GRAY}," ",t+1,"."," "),L&&Xe.createElement(aL,{checked:s}),Xe.createElement(jD,{isActive:s,idleColor:Rx.GRAY},n?.label||""),!L&&s&&Xe.createElement(WD,null)),n?.description&&Xe.createElement(Ge,null,Xe.createElement(Ve,null," "),Xe.createElement(HD,{indent:L?7:4},n.description)))})):Xe.createElement(SelectInput,{key:`${o}-${C??"default"}`,items:_,initialIndex:C??W(),onSelect:H,onHighlight:h,indicatorComponent:UD,itemComponent:({label:e,isSelected:t})=>{const n=F.get(e),r=L&&n&&m.has(n.label),o=!L&&n&&N?.includes(n.label),s=r||o,a=e.match(/^\s*(\d+)\.\s*(.*)$/),i=a?.[1]||"",l=a?.[2]||e;return Xe.createElement(Ge,{flexDirection:"column"},Xe.createElement(Ge,null,Xe.createElement(jD,{isSelected:t,isActive:s}," ",i,"."," "),L&&Xe.createElement(aL,{checked:s}),Xe.createElement(jD,{isSelected:t,isActive:s},l),!L&&s&&Xe.createElement(WD,null)),n?.description&&Xe.createElement(HD,{indent:L?7:4},n.description))}}),!k&&!E&&(()=>{const e=(g?F.get(g.label):void 0)??$[C??W()];return e?.preview?Xe.createElement(oL,{preview:e.preview}):null})(),!n&&Xe.createElement(Ge,null,Xe.createElement(UD,{isSelected:k}),Xe.createElement(jD,{isSelected:k}," ",_.length+1,"."," "),L&&Xe.createElement(aL,{checked:m.has(d.trim())}),Xe.createElement(TextInput,{value:d,onChange:e=>{const t=e.replace(/\r\n/g," ").replace(/[\r\n]/g," "),n=d.trim();u(t),L&&p(e=>{const r=new Set(e);return n&&r.has(n)&&r.delete(n),t.trim()&&r.add(t.trim()),r})},onSubmit:V,placeholder:"Type something...",focus:k,stripBracketedPaste:!0})),x?Xe.createElement(Ge,null,Xe.createElement(UD,{isSelected:!0}),Xe.createElement(jD,{isSelected:!0}," ","notes:"," "),Xe.createElement(TextInput,{value:A,onChange:R,onSubmit:J,placeholder:"Add notes on this design…",focus:x,stripBracketedPaste:!0})):(()=>{const e=P.current?.get(o)?.trim();return e?Xe.createElement(Ge,null,Xe.createElement(Ve,{italic:!0,color:Rx.DIM}," ","notes: ",e)):null})(),(M.current?.get(o)??[]).map((e,t)=>Xe.createElement(Ge,{key:t},Xe.createElement(Ve,{color:Rx.DIM}," ","[Image #",t+1," attached —"," ",e.mediaType,"]"))),L&&Xe.createElement(Ge,null,Xe.createElement(UD,{isSelected:E}),Xe.createElement(jD,{isSelected:E}," ",o===e.length-1?"Submit":"Next")),e.length>1&&Xe.createElement(Ge,{marginTop:1},Xe.createElement(Ve,{italic:!0,color:Rx.DIM},"Enter to select | Arrow keys to navigate |"," ",n?"Esc to cancel":"1-9 quick select | n notes | c chat | Esc to cancel")))},"QuestionPrompt");function QuestionView({pendingQuestion:e,setPermissionMode:t,dangerouslySkipPermissions:n,setPendingQuestion:r,setStatus:o,setStaticKey:s}){const[a,i]=et(!1),l=e.params.planContent;return Ye((e,t)=>{l&&getIsExpandToolShortcut(t,e)&&i(e=>!e)}),Xe.createElement(Ge,{marginY:1,flexDirection:"column"},l&&Xe.createElement(Ge,{marginBottom:1},Xe.createElement(PlanPanel,{content:l,filePath:e.params.planFilePath,expanded:a})),Xe.createElement(uL,{questions:e.params.questions,hideCustomInput:e.params.hideCustomInput,compact:e.params.compact,onResponse:a=>{const i=resolvePlanModeAnswerTransition({answer:a.answers[0]?.selectedOptions[0]||"",exitPlanMode:e.params.exitPlanMode,enterPlanMode:e.params.enterPlanMode,dangerouslySkipPermissions:n});i&&t(i),e.resolve(a),r(null),o("Answers submitted"),hardResetForResize(),s(e=>e+1)}}))}__name(QuestionView,"QuestionView"),Ex(),Px();var mL="__skip__",pL=__name(({suggestion:e,onSelect:t,onClose:n})=>{const{completedMode:r,primary:o,secondary:s,description:a}=e,i=[...o.map(e=>({label:e,value:e,isPrimary:!0})),...s.map(e=>({label:e,value:e,isPrimary:!1})),{label:"skip",value:mL,isPrimary:!1}],l=new Map(i.map(e=>[e.label,e]));Ye((e,t)=>{t.escape&&n()});const c=__name(e=>{e.value!==mL?(t(e.value),n()):n()},"handleSelect");return Xe.createElement(_D,{title:`/design ${r} complete`,titleSuffix:` · ${a}`,hint:"Enter to run · Esc to dismiss"},Xe.createElement(SelectInput,{items:i,onSelect:c,indicatorComponent:zD,itemComponent:({label:e,isSelected:t})=>{const n=l.get(e),r=n?.value===mL,o=n?.isPrimary??!1,s=r?"run /design manually":Nh[e]??"";return Xe.createElement(Ge,{flexDirection:"column"},Xe.createElement(GD,{isSelected:t,idleColor:o?Rx.WHITE:Rx.DIM},r?" skip ":` /design ${e} `),s&&Xe.createElement(GD,{isSelected:t,idleColor:Rx.DIM,bold:!1},` ${s} `))}}))},"DesignModeSelector");function getUsageToneColor(e){return"danger"===e?Rx.RED:"warning"===e?Rx.YELLOW:Rx.GREEN}function getDistanceToneColor(e){return"danger"===e?Rx.RED:"warning"===e?Rx.YELLOW:Rx.GRAY}function ContextProgress({view:e,progressBarWidth:t}){const n=getUsageToneColor(e.tone),r=buildBlockBar({percentage:e.percentage,width:t});return Xe.createElement(Ge,{flexDirection:"column"},Xe.createElement(Ge,{marginBottom:1},Xe.createElement(Ge,{flexShrink:0},Xe.createElement(Ve,{backgroundColor:Rx.BLUE,color:"#f4f4f4",bold:!0},`${PI}CONTEXT${PI}`)),Xe.createElement(Ve,{color:Rx.DIM}," · "),Xe.createElement(Ve,{color:Rx.GRAY},e.modelLabel)),Xe.createElement(Ge,null,Xe.createElement(Ve,{color:n},r.filled),Xe.createElement(Ve,{color:Wx},r.empty),Xe.createElement(Ve,{bold:!0,color:n},` ${e.percentageLabel}`)),Xe.createElement(Ge,null,Xe.createElement(Ve,null,e.tokensUsedLabel),Xe.createElement(Ve,{color:Rx.GRAY},` / ${e.tokenLimitLabel}`),Xe.createElement(Ve,{color:Rx.DIM}," · "),Xe.createElement(Ve,{color:n},e.tokensRemainingLabel),Xe.createElement(Ve,{color:Rx.GRAY}," remaining"),e.isEstimated&&Xe.createElement(Ve,{color:Rx.DIM}," (estimated)")))}function CompactionDistance({view:e}){if(!e)return null;const t=getDistanceToneColor(e.tone);return Xe.createElement(Ge,{marginTop:1},Xe.createElement(Ve,{color:t},e.tokensAwayLabel),Xe.createElement(Ve,{color:Rx.DIM},e.label))}function BreakdownRow({item:e,labelWidth:t}){return Xe.createElement(Ge,null,Xe.createElement(Ve,null,e.name.padEnd(t)),Xe.createElement(Ve,{bold:!0},e.paddedValue),Xe.createElement(Ve,{color:Rx.GRAY}," tokens"),e.detail&&Xe.createElement(Ve,{color:Rx.DIM},` · ${e.detail}`))}function ContextBreakdown({view:e,labelWidth:t}){return 0===e.rows.length?null:Xe.createElement(Ge,{flexDirection:"column",marginTop:1},e.rows.map(e=>Xe.createElement(BreakdownRow,{key:e.name,item:e,labelWidth:t})))}function ContextTips({tips:e}){return 0===e.length?null:Xe.createElement(Ge,{flexDirection:"column",marginTop:1},e.map(e=>Xe.createElement(Ge,{key:e},Xe.createElement(Ve,{color:Rx.CYAN},it.pointer),Xe.createElement(Ve,{color:Rx.GRAY}," ",e))))}function ContextMessage({analysis:e}){const t=projectContextView(e,{terminalWidth:useTerminalWidth(),modelDisplayName:getModelDisplayName(e.model)});return Xe.createElement(Ge,{flexDirection:"column",paddingTop:1},Xe.createElement(ContextProgress,{view:t.progress,progressBarWidth:t.layout.progressBarWidth}),Xe.createElement(CompactionDistance,{view:t.compactionDistance}),Xe.createElement(ContextBreakdown,{view:t.breakdown,labelWidth:t.layout.labelWidth}),Xe.createElement(ContextTips,{tips:t.tips}))}function ContextConfigView({staticKey:e,sessionId:t,onClose:n,setInput:r}){const[o,s]=et(null),[a,i]=et(null);return nt(()=>{let e=!0;return __name(async()=>{const n=NO(t);if(n)try{const t=await analyzeCommandContext({messages:harnessSessionMessages(n)});e&&s(t)}catch{e&&i("Failed to analyze context.")}else e&&i("No active conversation. Start chatting first.")},"load")(),()=>{e=!1}},[t]),Ye((e,t)=>{t.escape&&(r(""),n())}),Xe.createElement(Xe.Fragment,null,Xe.createElement(XI,{staticKey:e}),Xe.createElement(Ge,{flexDirection:"column",width:"100%"},Xe.createElement(ContextBody,{error:a,analysis:o}),Xe.createElement(Ge,{marginTop:1},Xe.createElement(SA,null,"Press ",Xe.createElement(wA,null,"Esc")," to return to conversation"))))}function ContextBody({error:e,analysis:t}){return e?Xe.createElement(_D,{title:"Context",gapAfterHeader:!1},Xe.createElement(Ve,{color:Rx.DIM},e)):t?Xe.createElement(ContextMessage,{analysis:t}):Xe.createElement(_D,{title:"Context",gapAfterHeader:!1},Xe.createElement(CO,{label:"Loading context analysis"}))}Ex(),Px(),Ex(),Px(),__name(getUsageToneColor,"getUsageToneColor"),__name(getDistanceToneColor,"getDistanceToneColor"),__name(ContextProgress,"ContextProgress"),__name(CompactionDistance,"CompactionDistance"),__name(BreakdownRow,"BreakdownRow"),__name(ContextBreakdown,"ContextBreakdown"),__name(ContextTips,"ContextTips"),__name(ContextMessage,"ContextMessage"),__name(ContextConfigView,"ContextConfigView"),__name(ContextBody,"ContextBody"),Ex(),Ex(),Px(),Ex(),Px();var gL="https://commandcode.ai/studio";function getVersionStatus(){try{return{current:getPackageJson(import.meta.url).version??"Unknown",updateAvailable:null}}catch{return{current:"Unknown",updateAvailable:null}}}async function getAuthStatus(){try{const e=await checkCommandAuthStatus({runtime:getCommandConfigRuntime(),path:getAuthFile(),env:process.env}),t=e.userName||null;return{authenticated:e.authenticated,username:t}}catch{return{authenticated:!1,username:null}}}async function getModelStatus(){try{const e=await getSelectedModel(),t=getProviderDisplayName((await loadUserConfig()).provider||null);return{id:e,displayName:getModelDisplayName(e),provider:t}}catch{return{id:"Unknown",displayName:"Unknown",provider:"Unknown"}}}function getPrStatus(e){try{const t=getCachedPR(e);return t?{number:t.number,url:t.url,state:t.state}:null}catch{return null}}function gatherStatusData(e){const t=e?.runtime??createNodeRuntime();return getStatusSnapshot({runtime:t,version:getVersionStatus,auth:getAuthStatus,model:getModelStatus,pr:getPrStatus,taste:__name(()=>getTasteStatus({runtime:t,learningEnabled:isTasteLearningEnabled}),"taste"),system:__name(()=>getSystemStatus({runtime:t,arch:process.arch,nodeVersion:process.version}),"system"),disabledSkillNames:__name(async()=>(await loadCommandDisabledSkills()).names,"disabledSkillNames")})}__name(getVersionStatus,"getVersionStatus"),__name(getAuthStatus,"getAuthStatus"),__name(getModelStatus,"getModelStatus"),__name(getPrStatus,"getPrStatus"),__name(gatherStatusData,"gatherStatusData");var hL=__name(({label:e,value:t,valueColor:n,dimValue:r})=>Xe.createElement(Ge,null,Xe.createElement(Ve,{dimColor:!0},`${e}:`.padEnd(14)),r?Xe.createElement(Ve,{dimColor:!0},t):Xe.createElement(Ve,{color:n},t)),"Row");function StatusMessage({statusData:e}){const t=projectStatusView(e,{profileBaseUrl:"https://commandcode.ai"}),n=t.account.authenticated?it.tick:it.cross,r=t.account.authenticated?Rx.WHITE:jx.ERROR;return Xe.createElement(Ge,{flexDirection:"column",paddingX:0},Xe.createElement(Ge,null,Xe.createElement(Ve,{color:Ox,bold:!0},"Command Code"," "),Xe.createElement(Ve,{dimColor:!0},t.versionText)),Xe.createElement(Ge,null,Xe.createElement(Ve,{dimColor:!0},"Visit "),Xe.createElement(fI,{url:gL,text:gL,color:Rx.CYAN}),Xe.createElement(Ve,{dimColor:!0}," for usage and billing")),Xe.createElement(Ge,{marginTop:1},Xe.createElement(Ve,{dimColor:!0},"Account:".padEnd(14)),t.account.username&&t.account.profileUrl?Xe.createElement(Xe.Fragment,null,Xe.createElement(fI,{url:t.account.profileUrl,text:t.account.label,color:Rx.CYAN}),Xe.createElement(Ve,{color:r}," ",n)):t.account.authenticated?Xe.createElement(Xe.Fragment,null,Xe.createElement(Ve,null,t.account.label),Xe.createElement(Ve,{color:r}," ",n)):Xe.createElement(Xe.Fragment,null,Xe.createElement(Ve,{color:jx.WARNING},t.account.label),Xe.createElement(Ve,{color:r}," ",n),Xe.createElement(Ve,{dimColor:!0}," — run "),Xe.createElement(Ve,{bold:!0},t.account.loginHint))),Xe.createElement(hL,{label:"Model",value:t.model.value}),Xe.createElement(hL,{label:"Branch",value:t.branch.value,dimValue:t.branch.dim}),t.worktree?Xe.createElement(hL,{label:"Worktree",value:t.worktree.value}):null,t.repository?Xe.createElement(Ge,null,Xe.createElement(Ve,{dimColor:!0},"Repository:".padEnd(14)),Xe.createElement(fI,{url:t.repository.url,text:t.repository.text,color:Rx.CYAN}),t.pullRequest?Xe.createElement(Xe.Fragment,null,Xe.createElement(Ve,{dimColor:!0}," · "),Xe.createElement(fI,{url:t.pullRequest.url,text:t.pullRequest.text,color:t.pullRequest.open?Rx.CYAN:Rx.GRAY}),Xe.createElement(Ve,{dimColor:!0}," ","(",t.pullRequest.stateLabel,")")):null):t.pullRequest?Xe.createElement(Ge,null,Xe.createElement(Ve,{dimColor:!0},"Pull Request:".padEnd(14)),Xe.createElement(fI,{url:t.pullRequest.url,text:t.pullRequest.text,color:t.pullRequest.open?Rx.CYAN:Rx.GRAY}),Xe.createElement(Ve,{dimColor:!0}," (",t.pullRequest.stateLabel,")")):null,Xe.createElement(hL,{label:"Taste",value:t.taste.value,dimValue:t.taste.dim}),Xe.createElement(hL,{label:"Directory",value:t.directory.value}),Xe.createElement(hL,{label:"Skills",value:t.skills.value,dimValue:t.skills.dim}),Xe.createElement(hL,{label:"Agents",value:t.agents.value,dimValue:t.agents.dim}),Xe.createElement(hL,{label:"System",value:t.system.value}),t.proxy?Xe.createElement(hL,{label:"Proxy",value:t.proxy.value}):null)}function StatusBody({state:e}){return"ready"===e.phase?Xe.createElement(StatusMessage,{statusData:e.data}):"error"===e.phase?Xe.createElement(Ve,{dimColor:!0},"Could not load status: ",e.message):Xe.createElement(Ve,{dimColor:!0},"Gathering status…")}function StatusConfigView({staticKey:e,onClose:t,setInput:n}){const[r,o]=et({phase:"loading"});return nt(()=>{let e=!1;return gatherStatusData().then(t=>{e||o({phase:"ready",data:t})}).catch(t=>{if(e)return;const n=t instanceof Error?t.message:"Failed to gather status";o({phase:"error",message:n})}),()=>{e=!0}},[]),Ye((e,r)=>{r.escape&&(n(""),t())}),Xe.createElement(Xe.Fragment,null,Xe.createElement(XI,{staticKey:e}),Xe.createElement(Ge,{flexDirection:"column",width:"100%"},Xe.createElement(StatusBody,{state:r}),Xe.createElement(Ge,{marginTop:1},Xe.createElement(SA,null,"Press ",Xe.createElement(wA,null,"Esc")," to return to conversation"))))}__name(StatusMessage,"StatusMessage"),__name(StatusBody,"StatusBody"),__name(StatusConfigView,"StatusConfigView"),Ex(),Px(),Px(),Ex(),Px();var{addDirectory:fL,formatDirectoryForDisplay:yL,getAdditionalDirectories:SL,removeAdditionalDirectory:wL}=nf,kL=__name(({onClose:e})=>{const[t,n]=et(""),[r,o]=et(null),[s,a]=et([]),[i,l]=et(()=>SL()),[c,d]=et(()=>({zone:"input",suggestionIndex:0,activeDirIndex:0})),[u,m]=et(0);nt(()=>{a(t?getDirectorySuggestions(t):[]),d(e=>({...e,zone:"input"})),m(0)},[t]),nt(()=>{if(!r||"success"!==r.tone)return;const e=setTimeout(()=>{o(null)},5e3);return()=>clearTimeout(e)},[r]);const p=__name(e=>{const t=fL(e);"error"!==t.status?"skipped"!==t.status?(o({tone:"success",text:`Added ${t.displayPath} to directory scope`}),n(""),l(SL()),d({zone:"input",suggestionIndex:0,activeDirIndex:0})):o({tone:"warning",text:t.message}):o({tone:"error",text:t.message})},"submitPath"),g=__name(e=>{if(!wL(e))return o({tone:"error",text:`${yL(e)} is no longer in workspace scope`}),void l(SL());o({tone:"success",text:`Removed ${yL(e)} from directory scope`}),l(SL()),d(e=>{if("active-dir"!==e.zone)return e;const t=Math.max(0,e.activeDirIndex-1);return{...e,activeDirIndex:t}})},"handleRemove");Ye((t,r)=>{if(r.escape)e();else{if(r.return)return"suggestions"===c.zone&&s[c.suggestionIndex]?void p(s[c.suggestionIndex]):void 0;if((r.delete||r.backspace)&&"active-dir"===c.zone&&i[c.activeDirIndex])g(i[c.activeDirIndex]);else{if(r.tab&&s.length>0){const e=s[c.suggestionIndex]??s[0];return void(e&&(n(e),d(e=>({...e,zone:"input"})),o(null)))}r.downArrow?d(e=>moveAddDirFocusDown(e,{suggestionCount:s.length,activeDirCount:i.length})):r.upArrow&&d(e=>moveAddDirFocusUp(e,{suggestionCount:s.length,activeDirCount:i.length}))}}}),nt(()=>{"suggestions"===c.zone&&m(e=>getAdjustedSuggestionOffset({selectedIndex:c.suggestionIndex,currentOffset:e,maxVisible:px,totalSuggestions:s.length}))},[c,s.length]),nt(()=>{d(e=>"suggestions"===e.zone&&e.suggestionIndex>=s.length?{...e,zone:"input",suggestionIndex:Math.max(0,s.length-1)}:"active-dir"===e.zone&&e.activeDirIndex>=i.length?{...e,zone:"input",activeDirIndex:Math.max(0,i.length-1)}:e)},[s.length,i.length]);const h=s.slice(u,u+px),f=getAddDirFooterText({focusZone:c.zone});return Xe.createElement(_D,{title:"Add directory to workspace",subtitle:Xe.createElement(Ve,{color:Rx.GRAY},"Command Code will be able to read files in this directory and make edits when accept edits mode is on."),footer:Xe.createElement(Ve,{italic:!0,color:Rx.DIM},Xe.createElement(BracketedText,{text:f,color:Rx.DIM})),gapAfterHeader:!1},Xe.createElement(Ge,{marginTop:1,flexDirection:"column"},Xe.createElement(Ve,{color:Rx.GRAY},"Added directories"),0===i.length?Xe.createElement(Ve,{color:Rx.GRAY}," None yet"):i.map((e,t)=>{const n="active-dir"===c.zone&&c.activeDirIndex===t;return Xe.createElement(Ge,{key:e},Xe.createElement(Ve,null," "),Xe.createElement(UD,{isSelected:n}),Xe.createElement(jD,{isSelected:n,isActive:!0}," ",yL(e)))})),Xe.createElement(Ge,{marginTop:1},Xe.createElement(Ve,{bold:!0,color:Rx.WHITE},"Path")),Xe.createElement(Ge,null,Xe.createElement(TextInput,{value:t,focus:"input"===c.zone,prefix:`${"input"===c.zone?it.pointer:" "} `,prefixColor:"input"===c.zone?DD:Rx.GRAY,onChange:e=>{n(e),o(null)},onSubmit:p})),!t&&Xe.createElement(Ge,{marginTop:1},Xe.createElement(Ve,{color:Rx.GRAY},"Examples: ../shared ~/docs /abs/path")),r&&Xe.createElement(Ge,{marginTop:1},Xe.createElement(Ve,{color:{error:Rx.RED,warning:Rx.YELLOW,success:Rx.GREEN}[r.tone]},r.text)),s.length>0&&Xe.createElement(Ge,{flexDirection:"column",marginTop:1},Xe.createElement(Ve,{color:Rx.GRAY},"Suggestions"),h.map((e,t)=>{const n=u+t,r="suggestions"===c.zone&&c.suggestionIndex===n;return Xe.createElement(Ge,{key:e},Xe.createElement(Ve,null," "),Xe.createElement(UD,{isSelected:r}),Xe.createElement(jD,{isSelected:r,idleColor:Rx.GRAY}," ",e))})))},"AddDirModal");function createBillingTransport(){const e=createApiClient({baseUrl:getApiBaseUrl()});return{get:__name(({route:t})=>e.get({endpoint:t}),"get"),post:__name(({route:t,body:n})=>e.post({endpoint:t,body:n}),"post"),postMultipart:__name(()=>Promise.reject(new Error("billing transport does not upload multipart")),"postMultipart"),delete:__name(({route:t})=>e.delete({endpoint:t}),"delete"),postStream:__name(()=>Promise.reject(new Error("billing transport does not stream")),"postStream")}}Ex(),Ex(),Px(),Ex(),Px(),Ex(),Px(),Ex(),Ex(),Px(),Ex(),Px(),__name(createBillingTransport,"createBillingTransport");var vL=null;function getBilling(){return vL||(vL=createBilling({transport:createBillingTransport()})),vL}function getCachedBillingContext(){return vL?.getCached()??null}function getBillingContext(){return getBilling().get()}function prefetchBillingContext(){getBilling().prefetch()}function invalidateBillingContext(){vL=null}function buildLaneModelPickerGroups(e){const t=filterModelGroupsByRegisteredModules(mR),n=t.filter(t=>t.providerId===e.activeLane),r=n.length>0?n:t.filter(e=>e.providerId===Fr.COMMAND),o=vo[e.activeLane]?.supportedModelProviders,s=o?pR.map(e=>({...e,models:e.models.filter(e=>laneSupportsModel(o,e))})):pR;return buildModelPickerGroups({isCoMode:e.isCoMode,coModeGroups:r,normalModeGroups:s})}function laneServesModel(e){if(e.activeLane===Fr.COMMAND)return!0;const t=vo[e.activeLane]?.supportedModelProviders;if(!t)return!0;const n=Object.values(ZA).find(t=>t.id===e.modelId);return!n||laneSupportsModel(t,n)}function defaultModelForLane(e){const t=buildLaneModelPickerGroups({isCoMode:!0,activeLane:e.activeLane});return t[0]?.models[0]?.id}__name(getBilling,"getBilling"),__name(getCachedBillingContext,"getCachedBillingContext"),__name(getBillingContext,"getBillingContext"),__name(prefetchBillingContext,"prefetchBillingContext"),__name(invalidateBillingContext,"invalidateBillingContext"),Ex(),Px(),__name(buildLaneModelPickerGroups,"buildLaneModelPickerGroups"),__name(laneServesModel,"laneServesModel"),__name(defaultModelForLane,"defaultModelForLane"),Ex(),Px();var CL=__name((e,t)=>{const n=t&&e.id===lR?" (default)":"",r="free"===e.badge?" (FREE)":"";return e.label.length+n.length+r.length},"renderedLabelLength");function getModelLabelColumnWidth(e,{showDefaultBadge:t=!0}={}){return e.reduce((e,n)=>Math.max(e,CL(n,t)+2),32)}__name(getModelLabelColumnWidth,"getModelLabelColumnWidth");var bL=__name(({model:e,providerId:t,isHighlighted:n,isCurrent:r,showProviderLabel:o,showDefaultBadge:s=!0,labelColumnWidth:a=32})=>{const i=vo[t],l=o??i?.showProviderLabelInSelector??!1,c=e.vendorLabel??cR[e.provider],d=s&&e.id===lR,u="free"===e.badge,m=d?`${e.label} (default)`:e.label,p=u?" (FREE)":"",g=" ".repeat(Math.max(2,a-m.length-p.length)),h=n?eI:void 0,f=e.description?`${l?`${c} · `:""}${e.description}`:"",y=useTerminalWidth()>=a+38&&f;return Xe.createElement(Ge,null,Xe.createElement(Ve,{backgroundColor:h,color:r?Rx.GREEN:Rx.WHITE,bold:r},m),u&&Xe.createElement(Ve,{backgroundColor:h,color:Rx.GREEN,bold:!0},p),y&&Xe.createElement(Xe.Fragment,null,Xe.createElement(Ve,{backgroundColor:h},g),Xe.createElement(Ve,{backgroundColor:h,color:Rx.DIM},f)),Xe.createElement(Ve,{backgroundColor:h,color:Rx.GREEN},r?` ${it.tick} `:" "))},"ModelRow");Ex(),Px();var EL=__name((e,t)=>`${e+1}. ${t}`,"labelText"),TL=__name(({modelLabel:e,supportedEfforts:t,currentEffort:n,onSelect:r,onCancel:o})=>{const s=rt(()=>buildEffortPickerRows(t),[t]),a=rt(()=>{if(void 0===n)return 0;const e=s.findIndex(e=>e.value===n);return e>=0?e:0},[s,n]),i=rt(()=>Math.max(...s.map((e,t)=>EL(t,e.label).length))+4,[s]),{cursor:l}=useListNavigation({items:s,onSelect:__name(e=>r(e.value),"onSelect"),onCancel:o,initialIndex:a,searchQuery:"",onSearchChange:__name(()=>{},"onSearchChange"),disableSearch:!0,selectByNumber:!0});return Xe.createElement(_D,{title:`Select reasoning effort for ${e}`,hint:"↑/↓ navigate · enter to select · esc to go back"},Xe.createElement(Ge,{flexDirection:"column"},s.map((e,t)=>{const r=t===l,o=e.value===n;return Xe.createElement(Ge,{key:e.label},Xe.createElement(Ve,{color:r||!o?Rx.WHITE:Rx.GREEN,backgroundColor:r?eI:void 0,bold:r||o},EL(t,e.label).padEnd(i)),Xe.createElement(Ve,{color:r?Rx.WHITE:Rx.DIM,backgroundColor:r?eI:void 0},e.description," "),o&&Xe.createElement(Ve,{color:Rx.GREEN}," ",it.tick))})))},"ReasoningEffortSelector");function windowModelGroups(e){const{groups:t,firstSectionBase:n,windowStart:r,windowEnd:o}=e;let s=n;return t.flatMap(e=>{const t=sliceSectionForWindow({section:e.models,sectionBase:s,windowStart:r,windowEnd:o});return s+=e.models.length,t.rows.length>0?[{group:e,groupWindow:t}]:[]})}Ex(),Px(),__name(windowModelGroups,"windowModelGroups");var PL=__name(({onSelect:e,onCancel:t,currentModel:n,currentProvider:r,planId:o,purchasedCredits:s=0,freeCredits:a=0,refreshBanner:i,subtitle:l,skipEffortStep:c=!1})=>{const[d,u]=et(""),[m,p]=et(null),[g,h]=et(()=>new Set),[f,y]=et(()=>new Set),S=rt(()=>isInternalTeamFlagEnforced(),[]),w=S?vo.anthropic.id:Fr.COMMAND,k=r??m??w,v=rt(()=>buildLaneModelPickerGroups({isCoMode:S,activeLane:k}),[S,k]),C=rt(()=>filterModelPickerGroupsByAuth({groups:v,authResolvedProviders:f,unauthedProviders:g}),[v,f,g]),b=rt(()=>filterModelPickerGroups(C,d),[C,d]),E=rt(()=>{const e=new Set(C.map(e=>`${e.providerId}:${e.label}`));return v.filter(t=>!e.has(`${t.providerId}:${t.label}`))},[v,C]),T=rt(()=>filterModelPickerGroups(E,d),[E,d]),P=rt(()=>flattenModelPickerGroups(b),[b]),M=rt(()=>getModelLabelColumnWidth(v.flatMap(e=>e.models)),[v]),[x,I]=et(0),A=useTerminalHeight()-1,R=Math.max(4,A-16-2*b.length),O=void 0!==o,D=rt(()=>O?null:getCachedBillingContext(),[O]),[L,N]=et(D),[$,_]=et(!O&&!D);nt(()=>{if(O)return;if(L)return;let e=!0;return getBillingContext().then(t=>{e&&(N(t),_(!1))}),()=>{e=!1}},[O,L]);const F=!O&&!0===L?.fetchFailed,U=O?o:L?.planId??null,j=O?s:L?.purchasedCredits??0,B=O?a:L?.freeCredits??0,W=n?Math.max(0,P.findIndex(e=>e.model.id===n&&e.providerId===k)):0,[H,G]=et("model"),[V,z]=et(null),{cursor:q,error:K,setError:Y}=useListNavigation({items:P,onSelect:__name(t=>{const n=getSupportedEfforts(t.model.id);if(!c&&n&&n.length>0)return z(t),void G("effort");e(t.model.id,t.providerId)},"onSelect"),onCancel:t,initialIndex:W,searchQuery:d,onSearchChange:u,isActive:"model"===H,validate:__name(e=>validateModelPickerSelection({row:e,unauthedProviders:g,configuredProvider:m,isCoMode:S,accessDataLoading:$,billing:{planId:U,purchasedCredits:j,freeCredits:B},getProviderDisplayName:__name(e=>getProviderConfig(e)?.displayName,"getProviderDisplayName")}),"validate")});nt(()=>{I(e=>clampScrollOffset({cursor:q,total:P.length,maxVisible:R,currentOffset:e}))},[q,P.length,R]);const J=tt(!1),Q=__name(t=>{if(!V||J.current)return;J.current=!0;const{model:r,providerId:o}=V,s=getReasoningEffort(r.id),a=t!==s,l=r.id===n;(async()=>{try{a&&(await setReasoningEffort({modelId:r.id,effort:t}),l&&i?.())}catch(e){dlog(`[Model] Failed to persist reasoning effort: ${e}`)}finally{e(r.id,o)}})()},"handleEffortSelect"),X=__name(()=>{J.current||(z(null),G("model"))},"handleEffortCancel");if(nt(()=>{if($)return;if(K!==mE)return;const e=P[q];Y(e&&!F?getModelPickerAccessError({model:e.model,billing:{planId:U,purchasedCredits:j,freeCredits:B}}):null)},[$,F,K,Y,P,q,U,j,B]),nt(()=>{(async()=>{await isOAuthEnforced()&&p(await getConfiguredProvider())})()},[]),nt(()=>{let e=!0;return(async()=>{const t=new Set(v.map(e=>e.providerId)),n=new Set,r=new Set,o=await Promise.all([...t].map(async e=>{const t=getProviderConfig(e);if(!t?.requiresAuth)return null;if(!t.checkAuth)return{providerId:e,authed:!0};let n=!1;try{n=await t.checkAuth()}catch{n=!1}return{providerId:e,authed:n}}));for(const e of o)e&&(r.add(e.providerId),e.authed||n.add(e.providerId));e&&(y(r),h(n))})(),()=>{e=!1}},[v]),"effort"===H&&V){const e=getSupportedEfforts(V.model.id)??[];return Xe.createElement(TL,{modelLabel:V.model.label,supportedEfforts:e,currentEffort:getReasoningEffort(V.model.id),onSelect:Q,onCancel:X})}const Z=x,ee=x+R,te=windowModelGroups({groups:b,firstSectionBase:0,windowStart:Z,windowEnd:ee}),ne=P.length>R;return Xe.createElement(_D,{title:"Select model",subtitle:l??(S?"Select a model and provider. Sets the default for new sessions; other open sessions are unaffected. Provider is saved.":"Switch between Command Code models. Sets the default for new sessions; other open sessions are unaffected."),footer:Xe.createElement(Ve,{italic:!0,color:Rx.DIM},"type to search · ↑/↓ navigate · enter to select",d?" · esc to clear":" · esc to cancel")},Xe.createElement(Ge,{marginBottom:2,flexDirection:"column",width:"100%"},Xe.createElement(kI,{query:d,resultCount:d?P.length:void 0,placeholder:"Type to search models..."})),0===P.length?Xe.createElement(Ge,{marginY:1},Xe.createElement(Ve,{color:Rx.GRAY},T.length>0?"Provider login required. Run /provider to authenticate.":`No models match "${d}"`)):Xe.createElement(Ge,{flexDirection:"column"},te.map(({group:e,groupWindow:t},r)=>Xe.createElement(Ge,{key:`${e.providerId}-${e.label}`,flexDirection:"column",marginTop:r>0?1:0},S?Xe.createElement(Ve,{bold:!0,color:Ox},e.label):Xe.createElement(Ve,{bold:!0,dimColor:!0},e.label),t.rows.map((r,o)=>Xe.createElement(bL,{key:`${e.providerId}-${e.label}-${r.id}`,model:r,providerId:e.providerId,isHighlighted:t.baseIndex+o===q,isCurrent:r.id===n&&e.providerId===k,showProviderLabel:!!S&&void 0,labelColumnWidth:M}))))),ne&&Xe.createElement(Ge,{marginTop:1},Xe.createElement(Ve,{color:Rx.DIM},"Showing ",Z+1,"–",Math.min(ee,P.length)," of ",P.length,Z>0?" · ↑ more":"",ee<P.length?" · ↓ more":"")),K&&Xe.createElement(Ge,{marginTop:1},Xe.createElement(Ve,{color:Rx.GRAY},K)))},"ModelSelector"),ML=__name(e=>{if(!e)return"Inherit from session";for(const t of pR)for(const n of t.models)if(n.id===e)return n.label;return e},"agentModelLabel"),xL=[{value:"inherit",label:"1. Inherit from session (default)"},{value:"pick",label:"2. Pick a specific model"}],IL=__name(({selectedModel:e,onSelect:t})=>{const[n,r]=et("choice"),[o,s]=et(e?1:0);return Ye((e,n)=>{if(n.upArrow)s(e=>Math.max(0,e-1));else if(n.downArrow)s(e=>Math.min(xL.length-1,e+1));else if("1"!==e)if("2"!==e){if(n.return){const e=xL[o];if(!e)return;"inherit"===e.value?t(null):r("picker")}}else r("picker");else t(null)},{isActive:"choice"===n}),"picker"===n?Xe.createElement(PL,{onSelect:e=>t(e),onCancel:()=>r("choice"),currentModel:e,subtitle:"Pin a model for this agent. It will always run on this model, independent of the session's /model.",skipEffortStep:!0}):Xe.createElement(Ge,{flexDirection:"column"},xL.map((e,t)=>{const n=t===o;return Xe.createElement(Ge,{key:e.value},Xe.createElement(Ve,{color:n?Rx.WHITE:Rx.GRAY,backgroundColor:n?eI:void 0,bold:n},n?">":" "," ",e.label))}),e&&Xe.createElement(Ge,{marginTop:1},Xe.createElement(Ve,{color:Rx.GRAY},"Currently pinned: ",ML(e))),Xe.createElement(kA,{hints:["↑↓ navigate","Enter to select","Inherit follows /model; pinned agents keep their own model and prompt cache"]}))},"AgentModelSelector"),AL=__name(({config:e,onSaveComplete:t,viewOnly:n=!1})=>{const[r,o]=et("idle"),[s,a]=et(""),i=__name(async()=>{if(!e.location||!e.agentType||!e.sysPrompt)return o("error"),void a("Agent configuration is incomplete");o("saving");try{await saveAgentDefinition({runtime:createNodeRuntime(),location:e.location,name:e.agentType,description:e.ccToolDefinition,systemPrompt:e.sysPrompt,selectedTools:[...e.selectedTools],allToolNames:Qf,model:e.model}),t(e.agentType)}catch(e){console.error("Error saving agent:",e),o("error"),a(e instanceof Error?e.message:"Unknown error occurred")}},"handleSaveAgent");Ye((e,t)=>{n||!t.return||"idle"!==r&&"error"!==r||i()});const l=formatAgentToolAccessForDisplay({access:[...e.selectedTools],allToolNames:Qf,displayNameByToolName:ey,displayNameToToolName:ty}),c=e.location&&e.agentType?getAgentDisplayPath({location:e.location,name:e.agentType}):"";return Xe.createElement(Ge,{flexDirection:"column",gap:1},Xe.createElement(Ge,{flexDirection:"column"},Xe.createElement(Ge,{gap:1},Xe.createElement(Ve,{color:Rx.WHITE,bold:!0},"Name:"),Xe.createElement(Ve,{color:Rx.GRAY},e.agentType)),Xe.createElement(Ge,{gap:1},Xe.createElement(Ve,{color:Rx.WHITE,bold:!0},"Location:"),Xe.createElement(Ve,{color:Rx.GRAY},c)),Xe.createElement(Ge,{gap:1},Xe.createElement(Ve,{color:Rx.WHITE,bold:!0},"Tools:"),Xe.createElement(Ve,{color:Rx.GRAY},l)),Xe.createElement(Ge,{gap:1},Xe.createElement(Ve,{color:Rx.WHITE,bold:!0},"Model:"),Xe.createElement(Ve,{color:Rx.GRAY},ML(e.model)))),Xe.createElement(Ge,{gap:1},Xe.createElement(Ve,{color:Rx.WHITE,bold:!0},"Description"),Xe.createElement(Ve,{color:Rx.GRAY},"(Tells ","Command Code"," when to use this agent):")),Xe.createElement(Ve,{color:Rx.GRAY},e.ccToolDefinition),Xe.createElement(Ge,{gap:1},Xe.createElement(Ve,{color:Rx.WHITE,bold:!0},"System Prompt:")),Xe.createElement(Ve,{color:Rx.GRAY},e.sysPrompt),!n&&Xe.createElement(Ge,{marginTop:1},"idle"===r&&Xe.createElement(SA,null,"Press ",Xe.createElement(wA,null,"Enter")," to save ·"," ",Xe.createElement(wA,null,"Esc")," to cancel"),"saving"===r&&Xe.createElement(Ve,{color:Rx.YELLOW},"Saving agent…"),"saved"===r&&Xe.createElement(EO,null,s),"error"===r&&Xe.createElement(Ge,{flexDirection:"column"},Xe.createElement(bO,null,"Error: ",s),Xe.createElement(SA,null,"Press ",Xe.createElement(wA,null,"Enter")," to retry"))))},"AgentSummary"),RL=[{label:"1. Yes, delete",value:"confirm-delete"},{label:"2. No, cancel",value:"cancel"}],OL=__name(({agent:e,onBack:t,setRevalidateAgent:n,isReadOnly:r=!1})=>{const[o,s]=et("menu"),a=new Set(resolveAgentToolSelection({access:e.tools,allToolNames:Qf,displayNameToToolName:ty})),i={location:e.location,method:"manual",agentType:e.name,sysPrompt:e.sysPrompt,ccToolDefinition:e.description,recommendedMethodDescription:"",selectedTools:a,model:e.model??null},l=[{label:"1. View agent",value:"view"},...r?[]:[{label:"2. Delete agent",value:"delete"}],{label:r?"2. Back":"3. Back",value:"back"}],c=__name(e=>{"back"!==e.value?"view"!==e.value?"edit"!==e.value?"delete"===e.value&&s("delete"):s("edit"):s("view"):t()},"handleMenuSelect"),d=__name(async r=>{if("confirm-delete"===r.value)try{await deleteAgentDefinition({runtime:createNodeRuntime(),filePath:e.filePath}),n(!0),t()}catch(e){console.error(`Failed to delete agent: ${e}`),s("menu")}else s("menu")},"handleDeleteSelect");return Ye((e,n)=>{if(n.escape)return"menu"===o?void t():void s("menu");if(n.return&&"view"===o)return void s("menu");if(1!==e.length||e<"1"||e>"9")return;const r=Number(e)-1;if("menu"===o){const e=l[r];return void(e&&c(e))}if("delete"===o){const e=RL[r];e&&d(e)}}),"view"===o?Xe.createElement(_D,{title:e.name,gapAfterHeader:!1,footer:Xe.createElement(SA,null,"Press ",Xe.createElement(wA,null,"Enter")," to go back")},Xe.createElement(AL,{config:i,onSaveComplete:()=>s("menu"),viewOnly:!0})):"edit"===o?Xe.createElement(_D,{title:e.name,gapAfterHeader:!1},Xe.createElement(Ve,{color:Rx.YELLOW},"Edit functionality coming soon..."),Xe.createElement(SA,null,"Press ",Xe.createElement(wA,null,"Esc")," to go back")):"delete"===o?Xe.createElement(_D,{title:"Delete agent",subtitle:`Are you sure you want to delete the agent ${e.name}?`},Xe.createElement(Ge,null,Xe.createElement(SelectInput,{items:RL,onSelect:d,indicatorComponent:zD,itemComponent:VD}))):Xe.createElement(_D,{title:e.name,footer:Xe.createElement(SA,null,"Press ",Xe.createElement(wA,null,"↑↓")," to navigate ·"," ",Xe.createElement(wA,null,"Enter")," to select · ",Xe.createElement(wA,null,"Esc")," ","to go back")},Xe.createElement(SelectInput,{items:l,onSelect:c,indicatorComponent:zD,itemComponent:VD}))},"AgentDetails");Ex();var DL="https://commandcode.ai/docs/core-concepts/custom-agents",LL=__name(({onDone:e})=>(Ye((t,n)=>{n.return&&e()}),Xe.createElement(_D,{title:"Create agents with Command Code",gapAfterHeader:!1,boxProps:{gap:1}},Xe.createElement(Ge,{flexDirection:"column"},Xe.createElement(Ve,{color:Rx.GRAY},"Ask Command Code to create or update subagents for you, e.g."),Xe.createElement(Ve,{color:Rx.GRAY}," ",it.pointerSmall," “create a code-reviewer subagent that reviews diffs for bugs”"),Xe.createElement(Ve,{color:Rx.GRAY}," ",it.pointerSmall," “make a changelog agent that uses a fast model”")),Xe.createElement(Ge,{flexDirection:"column"},Xe.createElement(Ve,{color:Rx.GRAY},"Or edit the files directly:"),Xe.createElement(Ve,{color:Rx.GRAY}," • .commandcode/agents/ (this project)"),Xe.createElement(Ve,{color:Rx.GRAY}," • ~/.commandcode/agents/ (all projects)")),Xe.createElement(Ve,{color:Rx.GRAY},"Docs: ",DL),Xe.createElement(SA,null,"Press ",Xe.createElement(wA,null,"Enter")," to go back and just ask"))),"AskCommandCodeGuide"),NL=__name(({handleSelect:e,createdAgentName:t})=>{const[n,r]=et([]),[o,s]=et([]),[a,i]=et([]),[l,c]=et(!0),[d,u]=et(!1),[m,p]=et(null),[g,h]=et(!1),[f,y]=et(0),[S,w]=et(0),k=useTerminalHeight();nt(()=>{__name(async()=>{c(!0),u(!1);const{personal:e,project:t}=await discoverAgents({runtime:createNodeRuntime()}),n=listDefaultAgentsForDisplay();r(e.map(e=>toDisplayAgent({definition:e,location:"personal"}))),s(t.map(e=>toDisplayAgent({definition:e,location:"project"}))),i(n),c(!1)},"loadAgents")()},[d]);const v=[{label:"1. Create agents with Command Code (recommended)",value:"ask_command_code"},{label:"2. Create manually",value:"create_new_agent"}];n.forEach(e=>{v.push({label:e.name,value:e.filePath})}),o.forEach(e=>{v.push({label:e.name,value:e.filePath})}),a.forEach(e=>{v.push({label:e.name.charAt(0).toUpperCase()+e.name.slice(1),value:e.filePath})});const C=n.length+o.length,b=(n.length>0?1:0)+(o.length>0?1:0)+(a.length>0?1:0),E=__name(e=>e<2?"action":e<2+n.length?"user":e<2+n.length+o.length?"project":"default","sectionOf"),T=k-1,P=Math.max(4,T-12-2*b),M=__name(t=>{if("ask_command_code"===t.value||"create_new_agent"===t.value)return void e(t);const r=[...n,...o,...a].find(e=>e.filePath===t.value);r&&(p(r),h(!0))},"handleAgentSelect");if(Ye((e,t)=>{if(t.upArrow)y(e=>Math.max(0,e-1));else if(t.downArrow)y(e=>Math.min(v.length-1,e+1));else if(t.return){const e=v[f];e&&M(e)}},{isActive:!l&&!g}),nt(()=>{y(e=>Math.min(e,Math.max(0,v.length-1)))},[v.length]),nt(()=>{w(e=>clampScrollOffset({cursor:f,total:v.length,maxVisible:P,currentOffset:e}))},[f,v.length,P]),l)return Xe.createElement(CO,{label:"Loading agents"});if(g&&m){const e=isBuiltinAgentPath(m.filePath);return Xe.createElement(OL,{agent:m,onBack:()=>{h(!1),p(null)},setRevalidateAgent:u,isReadOnly:e})}const x=S,I=S+P,A=v.slice(x,I),R=v.length>P;let O=null;return Xe.createElement(_D,{title:"Agents",titleSuffix:C>0?` (${C} agent${C>1?"s":""})`:" (No custom agents)"},t&&Xe.createElement(Ge,{flexDirection:"column",marginBottom:1},Xe.createElement(Ve,{color:Rx.GREEN,dimColor:!0},"Created agent: ",t)),Xe.createElement(Ge,{flexDirection:"column"},A.map((e,t)=>{const n=x+t,r=E(n),o="action"!==r&&r!==O;O=r;const s=n===f,a="user"===r?"User agents":"project"===r?"Project agents":"Default agents (read-only)";return Xe.createElement(Xe.Fragment,{key:e.value},o&&Xe.createElement(Ge,{marginTop:0===t?0:1},Xe.createElement(Ve,{color:Wx,bold:!0},a)),Xe.createElement(Ge,null,Xe.createElement(Ve,{color:s?Rx.WHITE:Rx.GRAY,backgroundColor:s?eI:void 0,bold:s},s?"> ":" ",e.label," ")))})),R&&Xe.createElement(Ge,{marginTop:1},Xe.createElement(Ve,{color:Rx.DIM},"Showing ",x+1,"–",Math.min(I,v.length)," of ",v.length,x>0?" · ↑ more":"",I<v.length?" · ↓ more":"")),Xe.createElement(Ge,{flexDirection:"column",marginTop:1},Xe.createElement(kA,{hints:["↑↓ navigate","Enter to select","Esc to close"],marginTop:0}),Xe.createElement(Ve,{color:Rx.DIM},"Agents live in .commandcode/agents/ (project) and ~/.commandcode/agents/ (all projects) — edit the files directly anytime."),Xe.createElement(Ve,{color:Rx.DIM},"Docs: ",DL)))},"ManageAgents");Ex(),Px(),Ex(),Ex();var $L=[{label:"1. Project (.commandcode/agents/)",value:"project"},{label:"2. Personal (~/.commandcode/agents/)",value:"personal"}],_L=__name(({onSelect:e})=>Xe.createElement(SelectInput,{items:$L,onSelect:t=>{"project"!==t.value&&"personal"!==t.value||e(t.value)},indicatorComponent:UD,itemComponent:BD}),"LocationSelector");Ex(),Px();var FL=__name(({step:e,agentType:t,sysPrompt:n,ccToolDefinition:r,onAgentTypeChange:o,onSysPromptChange:s,onCCToolDefinitionChange:a,onAgentTypeSubmit:i,onSysPromptSubmit:l,onCCToolDefinitionSubmit:c})=>{const d=t?validateAgentName({name:t,displayNameByToolName:ey}):null,u=usePasteAwareChange({onChange:s}),m=usePasteAwareChange({onChange:a});return"agentType"===e?Xe.createElement(Xe.Fragment,null,Xe.createElement(Ge,{flexDirection:"column"},Xe.createElement(Ve,{color:Rx.WHITE},"Enter a unique identifier for your agent:"),"tool_conflict"===d?.issue&&Xe.createElement(Ve,{color:Rx.RED},it.warning," This name conflicts with an existing tool name. Please choose a different name."),"reserved"===d?.issue&&Xe.createElement(Ve,{color:Rx.RED},it.warning," This name is reserved. Reserved names: ",mS.join(", "))),Xe.createElement(TextInput,{showCursor:!0,value:t||"",onSubmit:()=>{canSubmitAgentManualStep({manualStep:"agentType",config:{agentType:t,sysPrompt:n,ccToolDefinition:r}})&&i()},onChange:o,placeholder:"e.g. code-reviewer, unit-tester"})):"sysPrompt"===e?Xe.createElement(Xe.Fragment,null,Xe.createElement(Ge,{flexDirection:"column"},Xe.createElement(Ve,{color:Rx.WHITE},"Enter the system prompt for your agent:"),Xe.createElement(Ve,{color:Rx.GRAY},"Be comprehensive for best results.")),Xe.createElement(TextInput,{showCursor:!0,value:n||"",onSubmit:()=>{canSubmitAgentManualStep({manualStep:"sysPrompt",config:{agentType:t,sysPrompt:n,ccToolDefinition:r}})&&l()},onChange:u,placeholder:"You are a helpful coding reviewer..."})):"ccToolDefinition"===e?Xe.createElement(Xe.Fragment,null,Xe.createElement(Ve,{color:Rx.WHITE},"When should ","Command Code"," use this agent?"),Xe.createElement(TextInput,{showCursor:!0,value:r,onSubmit:()=>{canSubmitAgentManualStep({manualStep:"ccToolDefinition",config:{agentType:t,sysPrompt:n,ccToolDefinition:r}})&&c()},onChange:m,placeholder:"e.g., Use this agent when you are done writing code..."})):null},"ManualFlow");Ex(),Px();var UL=__name((e,t)=>e?"[x]":"[ ]","categoryCheckbox"),jL=__name(({selectedTools:e,onToggleTool:t,onToggleCategory:n,onComplete:r})=>{const[o,s]=et(!1),[a,i]=et(0),[l,c]=et(0),d=useTerminalHeight(),u=rt(()=>{const e=[];return e.push({type:"continue",value:"continue"}),e.push({type:"divider",value:"divider-1"}),iy.forEach(t=>{e.push({type:"category",value:t.name})}),o?(e.push({type:"divider",value:"divider-3"}),e.push({type:"toggle",value:"hide-advanced"}),e.push({type:"spacer",value:"spacer-1"}),e.push({type:"label",value:"Individual Tools:"}),Qf.forEach(t=>{e.push({type:"tool",value:t})}),e):(e.push({type:"divider",value:"divider-2"}),e.push({type:"toggle",value:"show-advanced"}),e)},[o]),m=u.map((t,n)=>{if("divider"===t.type)return{label:"─".repeat(30),value:n,type:"divider"};if("spacer"===t.type)return{label:"",value:n,type:"spacer"};if("label"===t.type)return{label:t.value,value:n,type:"label"};if("continue"===t.type)return{label:"[ Continue ]",value:n,type:"continue"};if("toggle"===t.type)return{label:"show-advanced"===t.value?"[ Show advanced options ]":"[ Hide advanced options ]",value:n,type:"toggle"};if("category"===t.type){const r=iy.find(e=>e.name===t.value),o=r?.tools.every(t=>e.has(t)),s=r?.tools.some(t=>e.has(t));return{label:`${UL(Boolean(o),Boolean(s))} ${t.value}`,value:n,type:"category"}}return"tool"===t.type?{label:` ${e.has(t.value)?"[x]":"[ ]"} ${ey[t.value]||t.value}`,value:n,type:"tool"}:{label:"",value:n,type:"unknown"}}),p=m.filter(e=>"divider"!==e.type&&"spacer"!==e.type&&"label"!==e.type),g=Math.max(5,d-1-10),h=p[a]?.value??0;nt(()=>{c(e=>clampScrollOffset({cursor:h,total:m.length,maxVisible:g,currentOffset:e}))},[h,m.length,g]);const f=l,y=l+g,S=m.slice(f,y),w=m.length>g;return Ye((e,l)=>{if(l.upArrow)return void i(e=>{const t=e-1;return t<0?p.length-1:t});if(l.downArrow)return void i(e=>{const t=e+1;return t>=p.length?0:t});if(!l.return&&" "!==e)return;const c=p[a];if(!c)return;const d=u[c.value];if(d){if("continue"!==d.type)return"toggle"===d.type?(s(!o),void i(0)):void("category"!==d.type?"tool"===d.type&&t(d.value):n(d.value));r()}}),Xe.createElement(Ge,{flexDirection:"column"},S.map(e=>{const t=p.findIndex(t=>t.value===e.value),n=-1!==t&&t===a;if("divider"===e.type)return Xe.createElement(Ge,{key:`divider-${e.value}`},Xe.createElement(Ve,{color:Rx.GRAY}," ",e.label));if("spacer"===e.type)return Xe.createElement(Ge,{key:`spacer-${e.value}`,height:1});if("label"===e.type)return Xe.createElement(Ge,{key:`label-${e.value}`},Xe.createElement(Ve,{color:Rx.GRAY}," ",e.label));const r="continue"===e.type;return Xe.createElement(Ge,{key:`item-${e.value}`},Xe.createElement(Ve,{color:n?Rx.WHITE:Rx.GRAY,bold:r&&n},n?">":" "," ",e.label))}),w&&Xe.createElement(Ge,null,Xe.createElement(Ve,{color:Rx.GRAY}," ","Showing ",f+1,"–",Math.min(y,m.length)," of"," ",m.length,f>0?" · ↑ more":"",y<m.length?" · ↓ more":"")),Xe.createElement(Ge,{marginTop:1},e.size===Qf.length&&Xe.createElement(Ve,{color:Rx.GRAY},"All tools selected"),e.size>0&&e.size<Qf.length&&Xe.createElement(Ve,{color:Rx.GRAY},e.size," tools selected"),0===e.size&&Xe.createElement(Ve,{color:Rx.GRAY},"No tools selected")))},"ToolsSelector"),BL=__name(({onComplete:e})=>{const[t,n]=et(createAgentCreationState),{step:r,manualStep:o,config:s}=t,a=__name(e=>n(t=>reduceAgentCreation({state:t,event:e})),"dispatch"),i=__name(t=>{a({type:"reset"}),e(t)},"resetToDefaults"),l=__name(()=>{if("location"===r)return"Choose location";if("configuration"===r){if("agentType"===o)return"Agent type (identifier)";if("sysPrompt"===o)return"System prompt";if("ccToolDefinition"===o)return"Description (Tell Command Code when to use this agent)"}return"tools"===r?"Select tools":"model"===r?"Select model":"summary"===r?"Confirm and save":""},"getSubText"),c=__name(e=>{a({type:"select_location",location:e}),a({type:"select_method",method:"manual"})},"handleLocationSelect");return Xe.createElement(_D,{title:"Create new agent",subtitle:l()},Xe.createElement(Ge,null,"location"===r&&Xe.createElement(_L,{onSelect:c}),"configuration"===r&&Xe.createElement(Ge,{flexDirection:"column",gap:1},Xe.createElement(FL,{step:o,agentType:s.agentType,sysPrompt:s.sysPrompt,ccToolDefinition:s.ccToolDefinition,onAgentTypeChange:e=>a({type:"set_agent_type",value:e}),onSysPromptChange:e=>a({type:"set_sys_prompt",value:e}),onCCToolDefinitionChange:e=>a({type:"set_cc_tool_definition",value:e}),onAgentTypeSubmit:()=>a({type:"submit_agent_type"}),onSysPromptSubmit:()=>a({type:"submit_sys_prompt"}),onCCToolDefinitionSubmit:()=>a({type:"submit_cc_tool_definition"})})),"tools"===r&&Xe.createElement(jL,{selectedTools:s.selectedTools,onToggleTool:e=>a({type:"toggle_tool",tool:e}),onToggleCategory:e=>a({type:"toggle_category",category:e}),onComplete:()=>a({type:"complete_tools"})}),"model"===r&&Xe.createElement(IL,{selectedModel:s.model,onSelect:e=>a({type:"select_model",model:e})}),"summary"===r&&Xe.createElement(AL,{config:s,onSaveComplete:i})))},"AgentNew"),WL=__name(({onCancel:e})=>{const[t,n]=et(null),[r,o]=et(null),s=__name(e=>{n(e.value),o(null)},"handleSelect");return Ye((t,n)=>{n.escape&&e()}),Xe.createElement(Ge,{width:"100%",flexDirection:"column"},null===t&&Xe.createElement(NL,{handleSelect:s,createdAgentName:r}),"ask_command_code"===t&&Xe.createElement(LL,{onDone:e}),"create_new_agent"===t&&Xe.createElement(BL,{onComplete:e=>{o(e),n(null)}}))},"AgentsConfig");function isToggleShortcut(e,t){return""===e||!0===t.ctrl&&"b"===e}Ex(),Px(),__name(isToggleShortcut,"isToggleShortcut");var HL=new Set;function requestBackgroundTasksExpand(){for(const e of HL)e()}function formatShellTaskCounts(e){const t=e.filter(e=>"running"===e.status),n=t.filter(e=>"shell"===e.kind).length,r=t.filter(e=>"monitor"===e.kind).length,o=[];return n>0&&o.push(`${n} shell${1===n?"":"s"}`),r>0&&o.push(`${r} monitor${1===r?"":"s"}`),o.join(", ")}function formatPanelSubtitle(e){const t=e.filter(e=>"running"===e.status);if(0===t.length)return"none running";const n=t.filter(e=>"shell"===e.kind).length,r=t.filter(e=>"monitor"===e.kind).length;return n>0&&0===r?`${n} active shell${1===n?"":"s"}`:r>0&&0===n?`${r} active monitor${1===r?"":"s"}`:formatShellTaskCounts(e)}function formatTaskRuntime(e){const t=Date.parse(e.startedAt);if(Number.isNaN(t))return;const n=e.stoppedAt?Date.parse(e.stoppedAt):Date.now();if(Number.isNaN(n))return;const r=Math.max(0,Math.floor((n-t)/1e3)),o=Math.floor(r/3600),s=Math.floor(r%3600/60),a=r%60;return o>0?`${o}h ${s}m ${a}s`:s>0?`${s}m ${a}s`:`${a}s`}function useShellTaskSnapshot(){const[e,t]=et(()=>listShellTasks({includeStopped:!0}));return nt(()=>{const e=setInterval(__name(()=>t(listShellTasks({includeStopped:!0})),"refresh"),1e3);return()=>clearInterval(e)},[]),e}__name(requestBackgroundTasksExpand,"requestBackgroundTasksExpand"),__name(formatShellTaskCounts,"formatShellTaskCounts"),__name(formatPanelSubtitle,"formatPanelSubtitle"),__name(formatTaskRuntime,"formatTaskRuntime"),__name(useShellTaskSnapshot,"useShellTaskSnapshot");var GL=getShellTaskLabel,VL=getShellTaskStatusText,zL=getVisibleShellTasks,qL=latestShellTaskOutputLines,KL={running:Rx.CYAN,completed:Rx.GREEN,failed:Rx.RED,"auto-stopped":Rx.YELLOW,stopped:Rx.GRAY};function getStatusColor(e){return KL[getShellTaskStatusTone(e)]}function TaskRow({task:e,selected:t}){const n=truncateString2({text:GL(e),maxChars:56}),r=t?eI:void 0;return Xe.createElement(Ge,null,Xe.createElement(UD,{isSelected:t,backgroundColor:r}),Xe.createElement(Ve,{color:t?DD:void 0,backgroundColor:r}," ",n),Xe.createElement(Ve,{color:Rx.DIM,backgroundColor:r}," ","(",VL(e),")"))}function TaskGroup({title:e,tasks:t,selectedTaskId:n}){return 0===t.length?null:Xe.createElement(Ge,{flexDirection:"column",marginTop:1},Xe.createElement(Ve,{color:Rx.DIM,bold:!0},e," (",t.length,")"),t.map(e=>Xe.createElement(TaskRow,{key:e.id,task:e,selected:e.id===n})))}function TaskDetailsBody({task:e,output:t}){const n=qL(t,10),r=formatTaskRuntime(e);return Xe.createElement(Ge,{flexDirection:"column"},Xe.createElement(Ge,null,Xe.createElement(Ve,{bold:!0},"Status: "),Xe.createElement(Ve,{color:getStatusColor(e)},VL(e))),void 0!==r&&Xe.createElement(Ge,null,Xe.createElement(Ve,{bold:!0},"Runtime: "),Xe.createElement(Ve,null,r)),Xe.createElement(Ge,null,Xe.createElement(Ve,{bold:!0},"Script: "),Xe.createElement(Ve,{wrap:"wrap"},e.command)),Xe.createElement(Ge,{flexDirection:"column",marginTop:1},Xe.createElement(Ve,{bold:!0},"Output:"),Xe.createElement(Ge,{flexDirection:"column",borderStyle:"single",borderColor:Rx.DIM,paddingX:1},n.length>0?n.map((t,n)=>Xe.createElement(Ve,{key:`${e.id}-${n}`},truncateString2({text:t,maxChars:100}))):Xe.createElement(Ve,{color:Rx.DIM},"No output yet.")),Xe.createElement(Ve,{italic:!0,color:Rx.DIM},"Showing ",n.length," line",1===n.length?"":"s")))}function BackgroundTasksPanel({onExpandedChange:e}={}){const t=useShellTaskSnapshot(),n=t.filter(e=>"running"===e.status),[r,o]=et(!1),[s,a]=et("list"),[i,l]=et(0),[c,d]=et(""),u=rt(()=>zL(t),[t]),m=u[i]??u[0];nt(()=>{e?.(r)},[r,e]),nt(()=>{const e=__name(()=>{a("list"),o(!0)},"listener");return HL.add(e),()=>{HL.delete(e)}},[]),nt(()=>{if(0===u.length)return o(!1),a("list"),void l(0);l(e=>Math.min(e,Math.max(0,u.length-1)))},[u.length]),nt(()=>{if(!r||"details"!==s||!m)return void d("");const e=readShellTaskOutputTail({taskId:m.id,maxBytes:4096});d(e?.content??"")},[r,s,m?.id,t]);const p=__name(()=>{o(!1),a("list")},"closePanel");if(Ye((e,t)=>isToggleShortcut(e,t)&&(n.length>0||r)?(a("list"),void o(e=>!e)):r?"details"===s?t.leftArrow?void a("list"):t.escape||t.return||" "===e?void p():void("x"===e&&"running"===m?.status&&stopShellTaskById(m.id)):void(t.escape||t.leftArrow?p():0!==u.length&&(t.upArrow?l(e=>Math.max(0,e-1)):t.downArrow?l(e=>Math.min(u.length-1,e+1)):t.return&&m?a("details"):"x"===e&&"running"===m?.status&&stopShellTaskById(m.id))):void 0,{isActive:n.length>0||r}),!r)return null;if("details"===s&&m)return Xe.createElement(_D,{title:"monitor"===m.kind?"Monitor details":"Shell details",titleColor:Rx.CYAN,ruleColor:Rx.CYAN,subtitle:truncateString2({text:GL(m),maxChars:80}),hint:"← to go back · Esc/Enter/Space to close · x to stop",boxProps:{marginTop:1,marginBottom:1}},Xe.createElement(TaskDetailsBody,{task:m,output:c}));const g=u.filter(e=>"monitor"===e.kind),h=u.filter(e=>"shell"===e.kind),f=g.length>0&&h.length>0;return Xe.createElement(_D,{title:"Background",titleColor:Rx.CYAN,ruleColor:Rx.CYAN,subtitle:formatPanelSubtitle(t),hint:"↑/↓ to select · Enter to view · x to stop · ←/Esc to go back to feed",gapAfterHeader:!1,boxProps:{marginTop:1,marginBottom:1}},f?Xe.createElement(Xe.Fragment,null,Xe.createElement(TaskGroup,{title:"Monitors",tasks:g,selectedTaskId:m?.id}),Xe.createElement(TaskGroup,{title:"Shells",tasks:h,selectedTaskId:m?.id})):Xe.createElement(Ge,{flexDirection:"column",marginTop:1},u.map(e=>Xe.createElement(TaskRow,{key:e.id,task:e,selected:e.id===m?.id}))))}__name(getStatusColor,"getStatusColor"),__name(TaskRow,"TaskRow"),__name(TaskGroup,"TaskGroup"),__name(TaskDetailsBody,"TaskDetailsBody"),__name(BackgroundTasksPanel,"BackgroundTasksPanel"),Ex(),Px();var YL=[{label:"Compact Normal (default)",value:"default",description:"Summarize session when context limit reached."},{label:"Compact Fast",value:"fast",description:"Fast tiered compaction. Higher quality, uses more tokens."}],JL=__name(({onSelect:e,onCancel:t})=>{const[n,r]=et(null);nt(()=>{loadUserConfig().then(e=>{r(e.compactMode??"default")})},[]);const o=__name(t=>{e(t.value)},"handleSelect");if(Ye((e,n)=>{n.escape&&t()}),null===n)return null;const s=YL.findIndex(e=>e.value===n);return Xe.createElement(_D,{title:"Select a compact mode to compact sessions",subtitle:"Choose how Command Code handles automatic context compaction.",footer:Xe.createElement(Ve,{italic:!0,color:Rx.DIM},"Press ",Xe.createElement(Ve,{bold:!0},"Esc")," to cancel")},Xe.createElement(SelectInput,{items:YL,onSelect:o,initialIndex:s>=0?s:0,indicatorComponent:zD,itemComponent:({isSelected:e,label:t})=>{const r=YL.find(e=>e.label===t),o=r?.value===n,s=YL.findIndex(e=>e.label===t);return Xe.createElement(Ge,{flexDirection:"column"},Xe.createElement(Ge,null,Xe.createElement(GD,{isSelected:e,idleColor:o?Rx.GREEN:Rx.WHITE,bold:e||o},` ${s+1}. ${r?.label??t} `),o&&Xe.createElement(WD,null)),Xe.createElement(GD,{isSelected:e,idleColor:Rx.DIM,bold:!1},` ${r?.description??""} `))}}))},"CompactModeSelector");Ex(),Ex(),Px();var QL=["·","○","◇","☆","✧","☆","◇","○","⌘"],XL=[12,5,4,4,4,4,4,5,16],ZL=[5,4,4,4,4,4,5];function getWaveSymbol(e){const t=e%88;let n=0;for(let e=0;e<XL.length;e++)if(n+=XL[e],t<n)return QL[e];const r=t-58;n=0;for(let e=0;e<ZL.length;e++)if(n+=ZL[e],r<n)return QL[7-e];return QL[0]}function ShimmerText({text:e,offset:t,bg:n}){const r=rt(()=>e.split(""),[e]),o=__name(e=>{const n=e-(t-5);return n>=0&&n<Jx.length?Jx[n]:Qx},"getCharColor");return Xe.createElement(Ve,null,r.map((e,t)=>Xe.createElement(Ve,{key:`${t}:${e}`,color:o(t),backgroundColor:n},e)))}function CMDIcon({frame:e,color:t}){return Xe.createElement(Ve,{color:t??Ox,bold:!0},`${getWaveSymbol(e)} `)}__name(getWaveSymbol,"getWaveSymbol"),__name(ShimmerText,"ShimmerText"),__name(CMDIcon,"CMDIcon");var eN=formatStatusTokenCount,tN=formatElapsedMs,nN=__name(({status:e,timeElapsed:t,tokens:n})=>{const[r,o]=et(0),[s,a]=et(n),i=tt(n);i.current=n;const l=getTerminalWidth(),[c,d]=et(()=>l>=72?"all":l>=42?"medium":"none");nt(()=>{d(e=>"all"===e?l<68?l>=42?"medium":"none":"all":"medium"===e?l>=72?"all":l<38?"none":"medium":l>=72?"all":l>=42?"medium":"none")},[l]),nt(()=>{const e=setInterval(()=>{o(e=>(e+1)%88),a(e=>{const t=i.current;if(e===t)return e;const n=t-e,r=e+Math.sign(n)*Math.max(1,Math.ceil(Math.abs(n)/10));return n>0?Math.min(r,t):Math.max(r,t)})},80);return()=>clearInterval(e)},[]);const u=r%(e.length+10),m="all"===c,p="medium"===c;return _I.statusRender({width:l,layoutMode:c,status:e,frame:r}),Xe.createElement(Ge,{width:l,height:1,paddingLeft:0,marginLeft:0},Xe.createElement(Ge,{flexShrink:0},Xe.createElement(Ve,{backgroundColor:Fx.BG,color:Fx.FG}," "),Xe.createElement(Ve,{backgroundColor:Fx.BG},Xe.createElement(CMDIcon,{frame:4*r,color:Fx.FG})),Xe.createElement(ShimmerText,{text:e,offset:u,bg:Fx.BG}),Xe.createElement(Ve,{backgroundColor:Fx.BG,color:Fx.FG}," ")),m&&Xe.createElement(Ge,{columnGap:1,marginLeft:1},Xe.createElement(Ve,{bold:!0,color:Rx.GRAY},"esc"),Xe.createElement(Ve,{color:Rx.DIM},"to interrupt"),Xe.createElement(Ve,{color:Rx.DIM},"•"),Xe.createElement(Ve,{color:Rx.DIM},tN(t)),Xe.createElement(Ve,{color:Rx.DIM},"•"),Xe.createElement(Ve,{color:Rx.GRAY},it.arrowDown),Xe.createElement(Ve,{color:Rx.DIM},eN(Math.round(s)))),p&&Xe.createElement(Ge,{marginLeft:1},Xe.createElement(Ve,{color:Rx.DIM},eN(Math.round(s)))))},"Status");function useExternalEditor({input:e,setInput:t,setInputKey:n,detectedContent:r,setDetectedContent:o,onEditorClose:s}){const[a,i]=et(!1),[l,c]=et(null),d=ot(async()=>{if(!a){i(!0),c(null);try{const a=resolvePastedTextTokens({input:e.replace(/\n+$/,""),detectedContent:r}),i=await openInEditor(a);t(i),o([]),n(e=>e+1),s?.()}catch(e){if(e instanceof wh)return void c("No text editor found. Set your EDITOR environment variable.\n\nSee: https://commandcode.ai/docs/core-concepts/interactive-mode#setting-up-your-editor");c(`Editor error: ${e instanceof Error?e.message:String(e)}`)}finally{i(!1)}}},[e,t,n,r,o,s,a]),u=ot(()=>{c(null)},[]);return{isEditorOpen:a,editorError:l,handleOpenInEditor:d,clearEditorError:u}}Ex(),Px(),Ex(),Px(),__name(useExternalEditor,"useExternalEditor"),Ex(),Px();var rN=__name((e={})=>{const{enabled:t=!0,paused:n=!1}=e,[r,o]=et(null),[s,a]=et(!1),[i,l]=et({visible:!1,type:"connected"}),c=tt(null);null===c.current&&(c.current=IC({onConnectedChange:a,onContext:o,onIndicatorChange:l}));const d=c.current;nt(()=>{d.setPaused(n)},[d,n]),nt(()=>{if(t)return d.start(),()=>{d.stop()}},[t,d]);const u=dC(),m=u?LC[u]??"IDE":"IDE",p={visible:i.visible,message:"connected"===i.type?`${m} ${it.tick}`:"run /ide",type:i.type};return{context:r,connected:s,refresh:d.refresh,connectionIndicator:p}},"useVSCodeContext");Ex(),Px();var oN=__name((e={})=>{const{enabled:t=!0}=e,[n,r]=et(null),o=tt(!1);return nt(()=>{if(!t||o.current)return;let e=!0;return o.current=!0,detectPR().then(t=>{e&&r(t)}),()=>{e=!1}},[t]),{pr:n}},"usePRDetection");function pushEntry(e,t){e.push(t),e.length>50&&e.shift()}function commitBurst({stack:e,burstStart:t,inBurst:n,timer:r}){r.current&&(clearTimeout(r.current),r.current=null),n.current=!1,pushEntry(e,t)}function useUndoStack({input:e,setInput:t,initialCursorRef:n,incrementInputKey:r}){const o=tt([]),s=tt(""),a=tt(!1),i=tt(null),l=tt(!1),c=tt("");return nt(()=>{if(l.current)return l.current=!1,void(c.current=e);if(e===c.current)return;const t=c.current;return c.current=e,a.current||(s.current=t,a.current=!0),i.current&&clearTimeout(i.current),i.current=setTimeout(()=>{a.current=!1,i.current=null,pushEntry(o.current,s.current)},400),()=>{i.current&&(clearTimeout(i.current),i.current=null)}},[e]),{commitUndo:__name(()=>{a.current&&commitBurst({stack:o.current,burstStart:s.current,inBurst:a,timer:i});const e=o.current.pop();void 0!==e&&(l.current=!0,t(e),n.current=e.length,r())},"commitUndo")}}function getCommandHintLayout(e){const t=getCommandMenuDescriptionWidth(e.terminalWidth);return{descriptionWidth:t,text:truncateString2({text:e.text,maxChars:t})}}function getModelHintText(e){return formatCurrentModelHint({modelId:e,findModelById:findModelById})}Ex(),__name(pushEntry,"pushEntry"),__name(commitBurst,"commitBurst"),__name(useUndoStack,"useUndoStack"),Ex(),Px(),__name(getCommandHintLayout,"getCommandHintLayout"),__name(getModelHintText,"getModelHintText"),Ex(),Px();var sN=createNodeRuntime(),aN=__name(({onSelectFile:e,onClose:t,searchQuery:n=""})=>{const[r,o]=et(()=>process.cwd()),[a,i]=et([]),[l,c]=et(0),[d,u]=et(0),m=n.trim()?15:10;nt(()=>{invalidateFileIndex()},[]),nt(()=>{let e=!1;return __name(async()=>{if(n.trim()){const t=await searchFiles({runtime:sN,searchTerm:n,basePath:process.cwd()});if(e)return;return i(t),c(0),void u(0)}try{const t=await browseDirectory({runtime:sN,dirPath:r,basePath:process.cwd()});if(e)return;i(t),c(0),u(0)}catch{}},"run")(),()=>{e=!0}},[r,n]),Ye((r,i)=>{if(i.escape)t();else if(i.upArrow)c(e=>{const t=Math.max(0,e-1);return t<d&&u(t),t});else if(i.downArrow)c(e=>{const t=Math.min(a.length-1,e+1);return t>=d+m&&u(t-m+1),t});else{if(i.rightArrow){const e=a[l];if(!e)return;return void(e.isDirectory&&!n.trim()&&o(s(e.path)))}if(i.return){const t=a[l];if(!t)return;return void e(t.path)}}});const p=a.slice(d,d+m);return Xe.createElement(Ge,{flexDirection:"column",paddingLeft:1},Xe.createElement(Ge,{marginBottom:1},Xe.createElement(Ve,{color:Rx.DIM},n.trim()?`Searching for: "${n}"`:`Files: ${r}`)),0===p.length?Xe.createElement(PO,{message:n.trim()?`No files found matching "${n}"`:"No files found in this directory"}):p.map((e,t)=>{const n=d+t,r=e.name,o=n===l;return Xe.createElement(Ve,{key:e.path,color:o?DD:Rx.DIM,bold:o&&isLightTheme()},e.isDirectory?`${r}/`:r)}),Xe.createElement(kA,{hints:["↑↓ navigate",!n.trim()&&"→ to open folder","Enter to select","Esc to close"]}))},"FileList");Ex(),Px();var iN=__name(()=>Xe.createElement(Ge,{paddingRight:3},Xe.createElement(Ve,{color:Rx.DIM,wrap:"truncate"},it.pointerSmall," ","stashed")),"StashBadge"),lN=__name(({tasteLearningOn:e,showSeparator:t=!0})=>null==e?null:Xe.createElement(Xe.Fragment,null,t&&Xe.createElement(Ve,{color:Rx.DIM}," · "),Xe.createElement(Ve,{color:e?Dx.TEXT:Rx.DIM},"taste ",e?"on":"off")),"TasteStateBadge");function useBackgroundTasksSummary(){const[e,t]=et(()=>formatShellTaskCounts(listShellTasks({includeStopped:!1})));return nt(()=>{const e=setInterval(__name(()=>t(formatShellTaskCounts(listShellTasks({includeStopped:!1}))),"refresh"),1e3);return()=>clearInterval(e)},[]),e}__name(useBackgroundTasksSummary,"useBackgroundTasksSummary");var cN=__name(({showSeparator:e=!0,armed:t=!1})=>{const n=useBackgroundTasksSummary();return n?Xe.createElement(Xe.Fragment,null,e&&Xe.createElement(Ve,{color:Rx.DIM}," · "),t?Xe.createElement(Xe.Fragment,null,Xe.createElement(Ve,{color:Rx.CYAN,inverse:!0},` ${n} `),Xe.createElement(Ve,{color:Rx.DIM}," · Enter to open")):Xe.createElement(Xe.Fragment,null,Xe.createElement(Ve,{color:Rx.CYAN},n),Xe.createElement(Ve,{color:Rx.DIM}," · ↓ to manage"))):null},"BackgroundTasksBadge"),dN=__name(({indicator:e,showSeparator:t=!0})=>e?.visible?Xe.createElement(Xe.Fragment,null,t&&Xe.createElement(Ve,{color:Rx.DIM}," · "),Xe.createElement(Ve,{color:"connected"===e.type?Rx.GREEN:Rx.YELLOW},e.message)):null,"ConnectionIndicatorBadge"),uN=__name(({termWidth:e,indicatorText:t,isIDEIndicator:n,permissionMode:r="default",prInfo:o,contextUsage:s,connectionIndicator:a,pendingExitKey:i,updateStatus:l,updateFailedInfo:c,currentProvider:d,showProviderInfo:u,isBashMode:m,shareInfo:p,showShareNotification:g,unshareNotificationMessage:h,tasteNotificationMessage:f,creditWarning:y,hasStashedPrompt:S,tasteLearningOn:w,backgroundTasksArmed:k})=>{const v=e>=60;return Xe.createElement(Xe.Fragment,null,Xe.createElement(Ge,{flexDirection:"column",paddingLeft:2},"auto-accept"!==r&&"plan"!==r&&"bypass"!==r&&"dont-ask"!==r||i?Xe.createElement(Ge,{flexDirection:"row",justifyContent:"space-between",width:e-1},Xe.createElement(Ge,{flexDirection:"row",columnGap:0},n&&!i?Xe.createElement(Ve,{color:Bx},t):Xe.createElement(hI,{mode:r,pendingExitKey:i}),!i&&Xe.createElement(yI,{prInfo:o}),!i&&Xe.createElement(dN,{indicator:a}),!i&&v&&Xe.createElement(lN,{tasteLearningOn:w}),!i&&Xe.createElement(cN,{armed:k})),(v||S)&&Xe.createElement(Ge,{flexDirection:"column",alignItems:"flex-end"},S?Xe.createElement(iN,null):null,!S&&v&&s&&Xe.createElement(sI,{usage:s}))):Xe.createElement(Xe.Fragment,null,Xe.createElement(Ge,{flexDirection:"row",justifyContent:"space-between",width:e-1},Xe.createElement(hI,{mode:r}),S?Xe.createElement(iN,null):null),Xe.createElement(Ge,{flexDirection:"row",justifyContent:"space-between",width:e-1},Xe.createElement(Ge,{flexDirection:"row",columnGap:0},Xe.createElement(Ve,{color:n?Bx:Rx.DIM},t),Xe.createElement(yI,{prInfo:o}),Xe.createElement(dN,{indicator:a}),v&&Xe.createElement(lN,{tasteLearningOn:w}),Xe.createElement(cN,{armed:k})),Xe.createElement(Ge,{flexDirection:"row",columnGap:2},v&&s&&Xe.createElement(sI,{usage:s})))),(l||c||u&&d)&&Xe.createElement(Ge,{flexDirection:"row",columnGap:1},l&&Xe.createElement(Ve,null,it.tick," ","Command Code"," updated:"," ",Xe.createElement(Ve,{color:Rx.DIM},"v",l.updatedFrom),Xe.createElement(Ve,{color:Rx.DIM}," ",it.arrowRight," "),Xe.createElement(Ve,null,"v",l.updatedTo)),!l&&c&&Xe.createElement(Ve,{color:Rx.YELLOW,dimColor:!0},it.info," Update available:"," ",c.currentVersion," ",it.arrowRight," ",c.latestVersion),u&&d&&Xe.createElement(Ve,{color:Rx.GREEN,dimColor:!0},it.bullet," Provider:"," ",getProviderDisplayName(d)))),m&&Xe.createElement(Ge,{paddingLeft:2},Xe.createElement(Ve,{color:Rx.GREEN},"! for bash mode")),g&&p&&Xe.createElement(Ge,{paddingLeft:2},Xe.createElement(Ve,{color:Ox},"SHARED: ",p.url," (copied to clipboard)")),h&&Xe.createElement(Ge,{paddingLeft:2},Xe.createElement(Ve,{color:h.includes("NOT SHARED")?Rx.RED:Ox},h)),f&&Xe.createElement(Ge,{paddingLeft:2},Xe.createElement(Ve,{color:Ox},f)),y&&Xe.createElement(Ge,{paddingLeft:2},Xe.createElement(Ve,{color:Rx.YELLOW},it.warning," ",y)))},"BottomIndicator"),mN=["","[118;5u","[118;5u"];function removeAltPCharacter(e){return e.includes("π")?e.replace(/π/g,""):null}function buildFileMentionInput(e){const{currentInput:t,mentionPath:n,isSearchMode:r}=e;if(!r)return`${t}${n} `;const o=t.lastIndexOf("@");return-1===o?`${n} `:`${t.substring(0,o+1)}${n} `}__name(removeAltPCharacter,"removeAltPCharacter"),__name(buildFileMentionInput,"buildFileMentionInput");var pN=__name(()=>Xe.createElement(Ge,{flexDirection:"column",paddingLeft:1},Xe.createElement(Ve,{color:Rx.DIM,bold:!0},"Available Shortcuts:"),Xe.createElement(Ge,{columnGap:4},Xe.createElement(Ge,{flexDirection:"column"},Xe.createElement(Ve,{color:Rx.DIM},"! for bash mode"),Xe.createElement(Ve,{color:Rx.DIM},"/ for commands"),Xe.createElement(Ve,{color:Rx.DIM},"@ for file paths"),Xe.createElement(Ve,{color:Rx.DIM},getModeToggleShortcutHint()," to toggle auto-accept")),Xe.createElement(Ge,{flexDirection:"column"},Xe.createElement(Ve,{color:Rx.DIM},"double tap esc to clear input"),Xe.createElement(Ve,{color:Rx.DIM},"ctrl + j / shift + ⏎ for newline"),Xe.createElement(Ve,{color:Rx.DIM},"ctrl + g to open in editor"),Xe.createElement(Ve,{color:Rx.DIM},"ctrl + z to undo"),Xe.createElement(Ve,{color:Rx.DIM},"ctrl + s to stash prompt")))),"ShortcutMenu"),gN=__name(({input:e,onSubmit:t,setInput:n,showCursor:r=!0,placeholder:o="Enter your input…",showFileList:s,setShowFileList:i,fileSearchQuery:l,setFileSearchQuery:c,onCommand:d,contextUsage:u,tasteLearningOn:m,tasteUsage:p=!1,shareInfo:g,showShareNotification:h,unshareNotificationMessage:f,tasteNotificationMessage:y,creditWarning:S,updateStatus:w,updateFailedInfo:k,currentProvider:v,currentModel:C,showProviderInfo:b,permissionMode:E="default",onToggleAutoAccept:T,hintMessage:P,historyManager:M,pendingExitKey:x=null,onOverlayVisibilityChange:I,onDoubleEscapeEmpty:A,onAltP:R,isProcessing:O=!1,ideContextEnabled:D=!0})=>{const[L,N]=et(0),[$,_]=et(!1),[F,U]=et(!1),[j,B]=et(!1),[W,H]=et(""),[G,V]=et(null),z=tt(0),q=tt(0),[K,Y]=et([]),[J,Q]=et([]),[X,Z]=et(null),ee=tt(!1),te=tt(!1),[ne,re]=et(!1),oe=tt(!1),se=ot(e=>{oe.current=e,re(e)},[]),ae=tt(!1),ie=tt(void 0),[le,ce]=et(-1),[de,ue]=et(""),me=tt(0),{commitUndo:pe}=useUndoStack({input:e,setInput:n,initialCursorRef:ie,incrementInputKey:__name(()=>N(e=>e+1),"incrementInputKey")}),{isEditorOpen:ge,editorError:he,handleOpenInEditor:fe,clearEditorError:ye}=useExternalEditor({input:e,setInput:n,setInputKey:N,detectedContent:K,setDetectedContent:Y,onEditorClose:__name(()=>{ee.current=!1},"onEditorClose")}),Se=rt(()=>shouldCollapsePastedText(),[]),{handlePaste:we,resetPasteState:ke,isPasting:ve}=useBracketedPaste({input:e,setInput:n,setDetectedImages:Q,setDetectedContent:Y,incrementInputKey:__name(()=>N(e=>e+1),"incrementInputKey"),setInitialCursor:__name(e=>{ie.current=e},"setInitialCursor"),collapsePastedText:Se,nextImageNumber:nextImagePasteNumber(J)}),Ce=tt(()=>{});Ce.current=t=>{ge||(async()=>{const n=me.current,r=e.slice(0,n),o=e.slice(n);await we(`${r}[200~${t}[201~${o}`)&&(ae.current=!0)})()},nt(()=>registerPasteConsumer(e=>Ce.current(e)),[]);const be=tt(new Map),Ee=rt(()=>{const e=be.current,t=new Map,n=new Map;for(const r of J){const o=e.has(r)?e.get(r)??null:saveTempImage(r.image,r.imageNumber);t.set(r,o),n.set(r.imageNumber,o)}return be.current=t,n},[J]),{skills:Te,customMenuItems:Pe}=useSlashMenuData(),Me=rt(()=>{const e=resolveSlashMenuItems({searchQuery:"",customMenuItems:Pe,skills:Te,showProviderCommand:!0,showTerminalSetupCommand:isVSCodeTerminal2()});return new Set([...e.map(e=>e.command),...Te.map(e=>buildSkillNamespacedCommand(e.name))])},[Te,Pe]),xe=ot(e=>Me.has(e),[Me]),{context:Ie,connected:Ae,refresh:Re,connectionIndicator:Oe}=rN({enabled:D,paused:O}),{stdout:De}=qe(),Le=De?.columns??80,{pr:Ne}=oN();nt(()=>{const e=s||j;I?.(e)},[s,j,I]),nt(()=>{if(!ae.current)return;ae.current=!1;const t=Vh(e);!j&&t.showCommandMenu||(B(t.showCommandMenu),H(t.showCommandMenu?t.commandSearchQuery:""))},[e,j]);const $e=ot(()=>{Q([])},[]),_e=ot(()=>{B(!1),V(null)},[]),Fe=ot(()=>{_e(),H(""),i(!1),c(""),ce(-1),ue(""),ie.current=void 0,N(e=>e+1)},[_e,c,i]),Ue=ot(t=>!(null===X||!t?.replaceCurrentInput&&e.trim().length>0||(ee.current=!0,n(X),Z(null),Fe(),setTimeout(()=>{ee.current=!1},0),0)),[e,Fe,n,X]),je=ot(()=>{n(""),U(!1),_e(),H(""),Y([]),$e(),ke(),ce(-1),ue(""),N(e=>e+1)},[n,ke,$e,_e]),Be=ot(()=>{ee.current=!0;const{text:t,cursor:r}=insertTextAt(e,me.current,"\n");n(t),ie.current=r,N(e=>e+1),setTimeout(()=>{ee.current=!1},0)},[e,n]);Ye(async(t,r)=>{if(oe.current&&!r.downArrow&&!r.return&&"\r"!==t&&(se(!1),r.upArrow))return;if(r.upArrow){if(s||j)return;const t=e.indexOf("\n"),r=-1===t||me.current<=t;if(0!==e.length&&-1===le&&!r)return;const o=M?.count()??0;if(0===o)return;-1===le&&ue(e);const a=Math.min(le+1,o-1);return void(a!==le&&(ce(a),n(M?.getAt(a)||""),N(e=>e+1)))}if(r.downArrow){if(s||j)return;if(-1===le){const t=e.lastIndexOf("\n"),n=-1===t||me.current>t;return void((0===e.length||n)&&listShellTasks().some(e=>"running"===e.status)&&se(!0))}const t=e.lastIndexOf("\n");if(!(-1===t||me.current>t))return;const r=le-1;return ce(r),n(-1===r?de:M?.getAt(r)||""),void N(e=>e+1)}if(""===t||r.ctrl&&"c"===t)return void $e();if(isCtrlKey({inputChar:t,key:r,letter:"g",ctrlCode:7}))return ee.current=!0,void fe();if(isCtrlKey({inputChar:t,key:r,letter:"s",ctrlCode:19})){const t=e.trim().length>0;if(!t&&null===X)return;if(!t&&Ue())return;ee.current=!0;const r=X??"";return Z(t?e:null),n(r),Fe(),void setTimeout(()=>{ee.current=!1},0)}if(getIsExpandToolShortcut(r,t))return ee.current=!0,n(e),N(e=>e+1),void setTimeout(()=>{ee.current=!1},0);if(isNewlineShortcutKey({inputChar:t,key:r,isPasting:ve()}))return te.current=!0,Be(),void setTimeout(()=>{te.current=!1},0);if(r.meta&&"w"===t)return ee.current=!0,void je();const o=r.ctrl&&"v"===t||mN.includes(t),a=r.meta&&"v"===t;if(o||a){if(o&&"darwin"===process.platform){const t=e;ee.current=!0;const r=await detectClipboardImage();if(r){const e=nextImagePasteNumber(J),{text:o,cursor:s}=insertTextAt(t,me.current,imagePasteToken(e));Q(t=>[...t,{imageNumber:e,image:r}]),n(o),ie.current=s,N(e=>e+1)}return void(ee.current=!1)}}else if(!r.ctrl&&!r.meta||"u"!==t)if(r.ctrl&&"z"===t?.toLowerCase())pe();else{if(r.escape){if(j)return;const t=Date.now();return t-z.current<500?(e.length>0?je():A?.(),z.current=0,q.current=0,_(!1),void U(!1)):(z.current=t,$||F||(q.current=t),_(!1),void U(!1))}$&&(r.backspace||r.delete)&&0===e.length&&_(!1)}});const We=ot(async t=>{if(ge)return;const r=removeAltPCharacter(t);if(null!==r)return n(r),void R?.();const o=processBracketedPaste(t),a=findInsertion({before:e,after:t}),d=null!==a&&looksLikeDroppedImagePath(a.text);if((o.isPasteStart||o.isPasteEnd||d||ve())&&await we(t))return void(ae.current=!0);if(ee.current)return void(ee.current=!1);-1!==le&&ce(-1),Q(e=>{if(0===e.length)return e;const n=prunePastedImages({input:t,images:e});return n===e?e:[...n]});const u=1===t.length,m=t.slice(-1);if(u){if("?"===m&&!$)return _(!0),n(""),void N(e=>e+1);if("!"===m&&!F)return _(!1),U(!0),n(""),void N(e=>e+1)}const p=Vh(t),g=t.length<e.length&&!e.startsWith(t),h=!g&&t.length<e.length,f=t.length===e.length+1||h,y=zh({canOpenMenu:f,deletedFromMiddle:g,menuState:p,showCommandMenu:j});j===y&&W===p.commandSearchQuery||(B(y),H(y?p.commandSearchQuery:""));const S=reduceFileMentionInput({prevInput:e,nextInput:t,state:{showFileList:s,query:l}});S.showFileList!==s&&i(S.showFileList),S.query!==l&&c(S.query),$&&(t!==e||t.length<e.length)&&_(!1),he&&ye(),0===t.length&&(U(!1),_e(),H(""),Y([]),c(""),ke()),n(t)},[$,e,n,s,i,l,c,j,W,F,le,we,ke,ve,R,he,ye,ge,_e]),He=ot(async()=>{if(Re(),q.current=0,$)return void _(!1);const r=e.trim(),o=!F&&r.startsWith("/");let s=r;!F&&K.length>0&&(s=resolvePastedTextTokens({input:s,detectedContent:K}));const a=F?[]:resolvePastedImageTokens({input:r,images:J}),i={};if(!F)for(const e of J){if(!r.includes(imagePasteToken(e.imageNumber)))continue;const t=Ee.get(e.imageNumber);t&&(i[e.imageNumber]=t)}const l=Object.keys(i).length>0,c=Ie?CC(Ie):void 0;if(o&&d&&(n(""),"handled"===(await d(s,a,c)).status))return M?.add(s),U(!1),_e(),H(""),$e(),Y([]),ce(-1),ue(""),void Ue({replaceCurrentInput:!0});ce(-1),ue(""),s.length>0&&M?.add(s);const u=buildIdeContextHint({ideContext:Ie});t({input:s,role:F?"bash":"user",images:a,ideContext:c,ideHint:u,imageTokenPaths:l?i:void 0}),U(!1),_e(),H(""),$e(),Y([]),Ue({replaceCurrentInput:!0})},[t,d,$,e,F,J,Ee,K,M,Re,Ie,$e,_e,Ue,n]),ze=ot(t=>{const r=a(process.cwd(),t),o=r.includes(" ")?`"${r}"`:r,d=buildFileMentionInput({currentInput:e,mentionPath:o,isSearchMode:s&&""!==l});n(d),i(!1),c(""),N(e=>e+1)},[n,i,e,s,l,c]),Ke=ot(()=>{i(!1),c("")},[i,c]),Je=ot(e=>{const t=jh.has(e),r="/design"===e.trimEnd();if(t||r){const t=e.trimEnd();return n(t+" "),H(t.substring(1)+" "),void N(e=>e+1)}_e(),H(""),n(e+" "),N(e=>e+1)},[n,_e]),Qe=ot(t=>{if("/design help"===t)return _e(),H(""),n(""),N(e=>e+1),M?.add(t),void d?.("/design help");if(Uh.has(t))return _e(),H(""),M?.add(t),ce(-1),ue(""),n(""),N(e=>e+1),void d?.(t);const r=jh.has(t),o=Ks.has(t),s=Ys.has(t);if(r)Je(t);else{if(_e(),H(""),!o&&!s&&e!==t)return n(t+" "),void N(e=>e+1);M?.add(t),ce(-1),ue(""),n(""),N(e=>e+1),d?.(t)}},[d,n,e,M,Je,_e]),Ze=ot(()=>{_e(),H(""),ce(-1),ue(""),N(e=>e+1)},[_e]),st=ot(e=>{me.current=e,ie.current=void 0},[]),at=rt(()=>formatSlashCommandInputHint({value:e,selectedCommand:j?G:null}),[e,j,G]),lt=Boolean(at)&&!x,ct=rt(()=>{const t=Ne&&("OPEN"===Ne.state||"MERGED"===Ne.state);return"auto-accept"===E||"plan"===E||"bypass"===E||"dont-ask"===E||Ae||t?!$:!$&&0===e.length&&!F},[$,e,F,E,Ae,Ne]),dt=null!==X,ut=__name(()=>$||s||j?0:lt||ct||x||F?3:4,"getBottomMargin");return Xe.createElement(Ge,{width:"100%",flexDirection:"column",marginBottom:ut()},Xe.createElement(Ge,{flexDirection:"column",width:"100%"},Xe.createElement(Ve,{color:F?Rx.GREEN:Rx.GRAY},it.line.repeat(Le)),(()=>{const t=__name(()=>{if(oe.current&&(se(!1),listShellTasks().some(e=>"running"===e.status)))requestBackgroundTasksExpand();else{if(!te.current)return Date.now()-q.current<100?(q.current=0,void Be()):void(s||j||ge||He());te.current=!1}},"handleTextInputSubmit"),n=__name(n=>Xe.createElement(TextInput,{key:L,value:e,placeholder:ge?"Save and close the editor to continue...":o,onChange:We,onSubmit:t,showCursor:!ge&&r,onCursorChange:st,initialCursor:ie.current,prefix:`${F?"!":it.pointer} `,prefixColor:F?Rx.GREEN:Rx.WHITE,singleLine:n?.singleLine,maxWidth:n?.maxWidth,imageTokenLinks:Ee,isRecognizedSlashCommand:xe,disablePasteRouting:!0}),"renderTextInput"),a=j?"/model"===G&&C?getModelHintText(C):at:null,i=a?getCommandHintLayout({text:a,terminalWidth:Le}):null;return i?Xe.createElement(Ge,{flexDirection:"row",width:"100%"},Xe.createElement(Ge,{width:25},n({singleLine:!0,maxWidth:25})),Xe.createElement(Ge,{width:i.descriptionWidth},Xe.createElement(Ve,{color:Rx.DIM,wrap:"truncate"},i.text))):n()})(),Xe.createElement(Ve,{color:F?Rx.GREEN:Rx.GRAY},it.line.repeat(Le))),$&&Xe.createElement(pN,null),s&&Xe.createElement(aN,{onSelectFile:ze,onClose:Ke,searchQuery:l}),j&&Xe.createElement(rI,{onSelectCommand:Qe,onInsertCommand:Je,onSubmitSearch:He,onClose:Ze,searchQuery:W,onSelectedCommandChange:V}),!j&&!s&<&&Xe.createElement(Ge,null,Xe.createElement(Ve,{color:Rx.DIM,wrap:"truncate"},at)),!j&&!s&&!lt&&(ct||x||dt)&&Xe.createElement(uN,{termWidth:Le,indicatorText:getIdeInputIndicatorText(Ae,Ie,Le),isIDEIndicator:hasIdeInputIndicatorContext(Ae,Ie),permissionMode:E,prInfo:Ne,contextUsage:u,tasteLearningOn:m,connectionIndicator:Oe,pendingExitKey:x,updateStatus:w,updateFailedInfo:k,currentProvider:v,showProviderInfo:b,isBashMode:F,shareInfo:g,showShareNotification:h,unshareNotificationMessage:f,tasteNotificationMessage:y,creditWarning:S,hasStashedPrompt:dt,backgroundTasksArmed:ne}),he&&Xe.createElement(Ge,{paddingLeft:1,flexDirection:"column"},Xe.createElement(Ve,{color:Rx.YELLOW},he)))},"InputBox");Ex(),Px();var hN=__name(()=>{const[e,t]=et([]);return nt(()=>subscribeModStatus(t),[]),0===e.length?null:Xe.createElement(Ge,{paddingLeft:2},Xe.createElement(Ve,{wrap:"truncate"},e.map(e=>e.text).join(" ")))},"ModStatusLine");Ex(),Px();var fN=__name(({messages:e})=>{const t=countVisibleQueuedMessages(e);if(0===t)return null;const n=getQueuedDisplayRows(e);return Xe.createElement(Ge,{flexDirection:"column",marginBottom:1},Xe.createElement(Ge,{marginBottom:0},Xe.createElement(Ve,{color:Nx,inverse:!0},` Queued (${t}) `)),n.map(e=>Xe.createElement(Ge,{key:e.text},Xe.createElement(Ve,{color:Rx.DIM},it.pointerSmall," "),Xe.createElement(Ve,{color:Rx.DIM},truncateString2({text:e.count>1?`${e.text} (${e.count})`:e.text,maxChars:80})))))},"QueuedMessages");function useWorkedDuration(e,t){const n=tt(null),[r,o]=et(null);return nt(()=>{n.current=null,o(null)},[t]),nt(()=>{if(e)return n.current??=Date.now(),void o(null);null!==n.current&&(o(Date.now()-n.current),n.current=null)},[e]),r}function WorkedDurationNote({durationMs:e}){return null===e||e<1e3?null:Xe.createElement(Ge,{marginLeft:1,marginBottom:1},Xe.createElement(Ve,{color:Rx.DIM},`✻ Worked for ${formatElapsedMs(e)}`))}Ex(),Px(),__name(useWorkedDuration,"useWorkedDuration"),__name(WorkedDurationNote,"WorkedDurationNote");var yN=Xe.memo(({queuedMessages:e,isProcessing:t,processingStartedAt:n=null,executionState:r,status:o,input:s,setInput:a,onSubmit:i,showFileList:l,setShowFileList:c,fileSearchQuery:d,setFileSearchQuery:u,onCommand:m,outputTokens:p=0,contextUsage:g,tasteLearningOn:h,tasteUsage:f,shareInfo:y,showShareNotification:S,unshareNotificationMessage:w,tasteNotificationMessage:k,updateStatus:v,updateFailedInfo:C,creditWarning:b,currentProvider:E,currentModel:T,showProviderInfo:P,permissionMode:M,onToggleAutoAccept:x,hintMessage:I,historyManager:A,pendingExitKey:R,onResetPendingExitKey:O,onDoubleEscapeEmpty:D,retryAttempt:L,onAltP:N,inputActive:$=!0,inactiveHint:_,sessionId:F})=>{const[U,j]=et(()=>null===n?0:Date.now()-n),B=tt(s),W=t||r.isExecuting,H=useWorkedDuration(W,F);return nt(()=>{R&&s!==B.current&&s.length>0&&O?.(),B.current=s},[s,R,O]),nt(()=>{if(!t||null===n)return void j(0);j(Date.now()-n);const e=setInterval(()=>{j(Date.now()-n)},1e3);return()=>{clearInterval(e)}},[t,n]),Xe.createElement(Ge,{flexDirection:"column"},Xe.createElement(fN,{messages:e}),Xe.createElement(Ge,{flexDirection:"row",justifyContent:"space-between"},Xe.createElement(Ge,{flexDirection:"column"},W&&null===L&&Xe.createElement(nN,{tokens:p,timeElapsed:U,status:r.isExecuting?`Executing: ${r.currentCommand}`:o}),!W&&Xe.createElement(WorkedDurationNote,{durationMs:H}),W&&null===L&&I&&Xe.createElement(Ge,{marginLeft:1},Xe.createElement(Ve,{color:Rx.DIM}," ","⎿"," ","Tip: ",I)))),$?Xe.createElement(gN,{input:s,setInput:a,onSubmit:i,placeholder:"Ask your question...",showFileList:l,setShowFileList:c,fileSearchQuery:d,setFileSearchQuery:u,onCommand:m,contextUsage:g,tasteLearningOn:h,tasteUsage:f,shareInfo:y,showShareNotification:S,unshareNotificationMessage:w,tasteNotificationMessage:k,updateStatus:v,updateFailedInfo:C,creditWarning:b,currentProvider:E,currentModel:T,showProviderInfo:P,permissionMode:M,onToggleAutoAccept:x,hintMessage:I,historyManager:A,pendingExitKey:!R||t||r.isExecuting?null:R,onDoubleEscapeEmpty:D,onAltP:N,isProcessing:t}):Xe.createElement(Ge,{marginLeft:1},Xe.createElement(SA,null,_??"Background focused · ↑/↓ to select · Enter to view · x to stop · ←/Esc to go back to feed")),Xe.createElement(hN,null))});Ex();var SN=__name(({onComplete:e,onCancel:t})=>{const{authState:n,statusMessage:r,browserUrl:o,apiKeyInput:s,setApiKeyInput:a,handleApiKeySubmit:i,cancel:l}=useAuthFlow({onSuccess:__name((t,n)=>{const r=t.userName&&"API Key"!==t.userName&&"Manual API Key"!==t.userName?t.userName:"";e(!0,r?`Logged in as ${r}`:"Logged in successfully")},"onSuccess"),onFailure:__name((t,n)=>{e(!1,n)},"onFailure"),onCancel:__name(()=>{t()},"onCancel")});return Ye((e,t)=>{t.ctrl&&"c"===e&&l()}),Xe.createElement(CA,{authState:n,statusMessage:r,browserUrl:o,apiKeyInput:s,setApiKeyInput:a,handleApiKeySubmit:i})},"LoginOverlay");function getStatusTextColor(e){return"connected"===e?Rx.GREEN:"connecting"===e||"authenticated"===e?Rx.CYAN:"requires_auth"===e?Rx.YELLOW:Rx.GRAY}Ex(),Px(),__name(getStatusTextColor,"getStatusTextColor");var wN=__name((e,t)=>{const n=__name((e,n)=>Xe.createElement(Ve,{color:e,backgroundColor:t},n),"icon");return"connected"===e?n(Rx.GREEN,it.tick):"connecting"===e?n(Rx.CYAN,it.circle):"authenticated"===e?n(Rx.CYAN,it.tick):"requires_auth"===e?n(Rx.YELLOW,it.warning):"error"===e?n(Rx.RED,it.cross):n(Rx.GRAY,it.circle)},"getStatusIcon"),kN=__name(({onClose:e,mcp:t})=>{const[n,r]=et([]),[o,s]=et(!0),[a,i]=et(0),[l,c]=et("list"),[d,u]=et(null),[m,p]=et(0),g=useTerminalHeight(),h=ot(async()=>{try{const e=await listMcpServers(),n=t?mcpManagerConnectionsFromRegistry(t):mcpManagerConnectionsFromPool(getConnectedMcpServers()),o=await buildMcpManagerServerInfos({configuredServers:e,connectedServers:n,hasTokens:hasTokens});r([...o])}catch{}finally{s(!1)}},[t]);nt(()=>{h()},[h]),nt(()=>{if(t)return t.onChange(()=>{h()})},[t,h]);const f=rt(()=>[...orderMcpManagerServers(n)],[n]),y=f[a]??null,S=g-1,w=rt(()=>new Set(f.map(e=>e.scope)).size,[f]),k=Math.max(4,S-8-2*w);nt(()=>{p(e=>clampScrollOffset({cursor:a,total:f.length,maxVisible:k,currentOffset:e}))},[a,f.length,k]),Ye((t,n)=>{if(n.ctrl&&"c"===t)e();else{if(n.escape)return"actions"===l||"confirm-remove"===l?(c("list"),void u(null)):void e();if("list"===l){if(n.upArrow&&(i(e=>Math.max(0,e-1)),u(null)),n.downArrow){if(0===f.length)return;const e=Math.max(0,f.length-1);i(t=>Math.min(e,t+1)),u(null)}n.return&&y&&(c("actions"),u(null))}}});const v=__name(async e=>{if(y)if("back"!==e.value)if("connected"!==e.value)if("authenticated"!==e.value)if("connect"!==e.value)if("auth"!==e.value)if("remove"!==e.value)if("disable"!==e.value)if("enable"!==e.value);else{u({text:`Enabling ${y.name}...`,color:Rx.CYAN,loading:!0});try{if(!await updateMcpServerStatus({name:y.name,enabled:!0,scope:y.scope}))return void u({text:`${it.cross} Failed to enable ${y.name}, server may no longer exist in ${y.scope} scope`,color:Rx.YELLOW});await h(),u({text:`${it.tick} Enabled ${y.name}`,color:Rx.GREEN})}catch(e){u({text:`${it.cross} Failed: ${e instanceof Error?e.message:String(e)}`,color:Rx.RED})}}else{u({text:`Disabling ${y.name}...`,color:Rx.CYAN,loading:!0});try{if(!await updateMcpServerStatus({name:y.name,enabled:!1,scope:y.scope}))return void u({text:`${it.cross} Failed to disable ${y.name}, server may no longer exist in ${y.scope} scope`,color:Rx.YELLOW});await disconnectMcpServer({name:y.name,registry:t}),await h(),u({text:`${it.tick} Disabled ${y.name}`,color:Rx.GREEN})}catch(e){u({text:`${it.cross} Failed: ${e instanceof Error?e.message:String(e)}`,color:Rx.RED})}}else c("confirm-remove");else{u({text:`Authenticating ${y.name}...`,color:Rx.CYAN,loading:!0});try{const e=await runMcpServerAuthFlow({serverName:y.name,config:y.config,connectAfterAuth:__name(({name:e})=>connectMcpServer({name:e,registry:t}),"connectAfterAuth")});if("unsupported"===e.kind)return void u({text:e.message,color:Rx.YELLOW});"success"===e.kind?(u({text:`${it.tick} Authenticated with ${y.name}`,color:Rx.GREEN}),await h()):u({text:`${it.cross} Auth failed: ${e.message}`,color:Rx.RED})}catch(e){u({text:`${it.cross} Failed: ${e instanceof Error?e.message:String(e)}`,color:Rx.RED})}}else{u({text:`Connecting ${y.name}...`,color:Rx.CYAN,loading:!0});try{await connectMcpServer({name:y.name,registry:t}),u({text:`${it.tick} Connected to ${y.name}`,color:Rx.GREEN}),await h()}catch(e){u({text:`${it.cross} Failed: ${e instanceof Error?e.message:String(e)}`,color:Rx.RED})}}else u({text:"Already authenticated",color:Rx.GREEN});else u({text:"Already connected",color:Rx.GREEN});else c("list")},"handleActionSelect"),C=__name(async e=>{if(y)if("yes"===e.value)try{"connected"===y.status&&await disconnectMcpServer({name:y.name,registry:t}),await removeMcpServer({name:y.name,scope:y.scope}),c("list"),await h(),i(e=>Math.min(e,Math.max(0,f.length-2)))}catch(e){u({text:`${it.cross} Failed: ${e instanceof Error?e.message:String(e)}`,color:Rx.RED}),c("actions")}else c("actions")},"handleRemoveConfirm");if(o)return Xe.createElement(_D,{title:"Manage MCP servers"},Xe.createElement(Ve,{color:Rx.DIM},"Loading..."));if("confirm-remove"===l&&y)return Xe.createElement(_D,{title:`Remove ${y.name}?`,titleColor:Rx.RED,hint:"↑↓ navigate · Enter to select · Esc to cancel"},Xe.createElement(Ve,{color:Rx.DIM},"This will remove the server from ",y.scope," ","config."),Xe.createElement(Ge,{marginTop:1},Xe.createElement(SelectInput,{items:[{label:"Yes, remove",value:"yes"},{label:"Cancel",value:"no"}],onSelect:C,indicatorComponent:zD,itemComponent:VD})));if("actions"===l&&y){const e=buildMcpManagerActionItems(y);return Xe.createElement(_D,{title:y.name,hint:"↑↓ navigate · Enter to select · Esc to go back"},Xe.createElement(Ge,null,wN(y.status),Xe.createElement(Ve,{color:Rx.DIM}," ",getMcpManagerStatusText(y))),Xe.createElement(Ge,{marginTop:1},Xe.createElement(SelectInput,{items:[...e],onSelect:v,indicatorComponent:zD,itemComponent:VD})),d&&Xe.createElement(Ge,{marginTop:1},d.loading&&Xe.createElement(Ve,{color:d.color},Xe.createElement(gt,{type:"dots"})," "),Xe.createElement(Ve,{color:d.color},d.text)))}let b=null;const E=m,T=m+k,P=f.slice(E,T),M=f.length>k;return Xe.createElement(_D,{title:"Manage MCP servers",hint:0===n.length?"Esc to close":"↑↓ navigate · Enter to select · Esc to close"},Xe.createElement(Ve,{color:Rx.DIM},n.length," ",1===n.length?"server":"servers"),0===n.length?Xe.createElement(Ge,{marginTop:1,flexDirection:"column"},Xe.createElement(Ve,{color:Rx.DIM},"No MCP servers configured."),Xe.createElement(Ve,{color:Rx.DIM},'Use "',getBinaryCommand(),' mcp add" to add a server.'),Xe.createElement(fI,{url:"https://commandcode.ai/docs/mcp",text:"View MCP Docs ↗",color:Rx.CYAN,dimColor:!0})):Xe.createElement(Ge,{marginTop:1,flexDirection:"column"},P.map((e,t)=>{const n=E+t,r=e.scope!==b;b=e.scope;const o=n===a;return Xe.createElement(Xe.Fragment,{key:e.name},r&&Xe.createElement(Ge,{marginTop:0===t?0:1},Xe.createElement(Ve,{bold:!0},getMcpManagerScopeLabel(e.scope)),Xe.createElement(Ve,{color:Rx.DIM}," ","(",getMcpManagerScopePath(e.scope),")")),Xe.createElement(Ge,null,Xe.createElement(Ve,{color:o?Rx.WHITE:void 0,backgroundColor:o?eI:void 0,bold:o},e.name),Xe.createElement(Ve,{color:Rx.DIM,backgroundColor:o?eI:void 0}," · "),wN(e.status,o?eI:void 0),Xe.createElement(Ve,{color:getStatusTextColor(e.status),backgroundColor:o?eI:void 0}," ",getMcpManagerStatusText(e)," ")))})),M&&Xe.createElement(Ge,{marginTop:1},Xe.createElement(Ve,{color:Rx.DIM},"Showing ",E+1,"–",Math.min(T,f.length)," of"," ",f.length,E>0?" · ↑ more":"",T<f.length?" · ↓ more":"")),d&&Xe.createElement(Ge,{marginTop:1},d.loading&&Xe.createElement(Ve,{color:d.color},Xe.createElement(gt,{type:"dots"})," "),Xe.createElement(Ve,{color:d.color},d.text)))},"McpManager");Ex(),Px();var vN=__name(({onClose:e})=>{const[t,n]=et([]),[r,o]=et(0),[s,a]=et(!0),[i,l]=et(null);nt(()=>{__name(async()=>{try{const e=await discoverCommandMemoryFiles(process.cwd());n(e),a(!1)}catch(e){l(e instanceof Error?e.message:"Failed to discover memory files"),a(!1)}},"loadMemoryFiles")()},[]);const c=__name(async t=>{try{await openMemoryFileInEditor(t.path,{logError:__name(e=>console.error(e),"logError")}),e()}catch(t){console.error("Error opening memory file. Please ensure you have an editor set up."),e()}},"handleOpenInEditor"),d=filterEditableMemoryLocations(t);if(Ye((t,n)=>{n.escape?e():n.upArrow?o(e=>Math.max(0,e-1)):n.downArrow?o(e=>Math.min(d.length-1,e+1)):(n.return&&d[r]&&c(d[r]),"1"===t&&d[0]&&c(d[0]),"2"===t&&d[1]&&c(d[1]))}),s)return Xe.createElement(_D,{title:"Select memory to edit:"},Xe.createElement(Ve,{color:Rx.DIM},"Loading memory files..."));if(i)return Xe.createElement(_D,{title:"Select memory to edit:"},Xe.createElement(Ve,{color:Rx.RED},it.cross," ",i));const u=projectMemorySelectorOptions(d);return Xe.createElement(_D,{title:"Select memory to edit:",hint:"↑/↓ to navigate · enter to edit · esc to cancel"},Xe.createElement(Ge,{columnGap:4},Xe.createElement(Ge,{flexDirection:"column"},u.map((e,t)=>Xe.createElement(Ge,{key:e.label},Xe.createElement(UD,{isSelected:r===t}),Xe.createElement(jD,{isSelected:r===t,idleColor:ND}," ",e.label)))),Xe.createElement(Ge,{flexDirection:"column"},u.map((e,t)=>Xe.createElement(jD,{key:e.label,isSelected:r===t,idleColor:ND},e.description)))))},"MemorySelector");function linkImageTokens(e,t){if(!t)return e;const n=new RegExp(KE.source,"g");return e.replace(n,(e,n)=>{const r=t[Number(n)];return r?createOSC8Link(fileUrl(r),e,!1):e})}function UserMessage({content:e,ideHint:t,imageTokenPaths:n}){const r=isSpecialUserMessageContent(e),o=r&&isInterruptedByUserMessage(e)?Rx.DIM:Rx.RED,s=r?getSpecialUserMessageContent({content:e,billingUrl:xo}):linkImageTokens(e,n);return Xe.createElement(Ge,{flexDirection:"column"},Xe.createElement(Ge,{backgroundColor:r?void 0:Hx.BG,paddingRight:1},Xe.createElement(Ve,{color:r?o:Hx.POINTER,bold:!r},it.pointer),Xe.createElement(Ge,{marginLeft:1},Xe.createElement(Ve,{color:r?o:Hx.FG,wrap:"wrap"},s))),t&&!r&&Xe.createElement(Ge,{marginLeft:2},Xe.createElement(Ve,{color:Zx},EI),Xe.createElement(Ve,{color:Rx.DIM}," ","Selected ",t.lines," ",1===t.lines?"line":"lines"," from"," ",t.file," in ",t.ide)))}Ex(),Px(),Ex(),Px(),__name(linkImageTokens,"linkImageTokens"),__name(UserMessage,"UserMessage");var CN=it.squareSmallFilled;function goalStatusGlyph(e){return"completed"===e?it.tick:"paused"===e?"⏸":"idle"===e?it.circle:CN}function goalStatusHeadColor(e){return"completed"===e?Rx.GREEN:"paused"===e?Rx.YELLOW:Rx.DIM}function goalNoticeGlyph(e){return"cleared"===e?it.tick:"none"===e?it.circle:"paused"===e?"⏸":CN}function AutoCompactMessage({content:e}){return Xe.createElement(Ge,{flexGrow:1,flexShrink:1,minWidth:0},Xe.createElement(Ve,{color:Rx.DIM},CN," ",e))}function ZdrPausedMessage(){return Xe.createElement(Ge,{marginTop:1,marginBottom:1},Xe.createElement(Ve,null,Xe.createElement(Ve,{color:Rx.DIM},CN," "),Xe.createElement(Ve,{color:Rx.DIM},"Per-task model overrides reverted to ZDR safe defaults. Run"," "),Xe.createElement(Ve,{color:Yx.CODE},"/config"),Xe.createElement(Ve,{color:Rx.DIM}," to review · esc to dismiss")))}function ModelNoticeMessage({text:e}){return Xe.createElement(Ge,{marginTop:1,marginBottom:1},Xe.createElement(Ve,null,Xe.createElement(Ve,{color:Rx.DIM},CN," "),Xe.createElement(Ve,{color:Rx.DIM},e),Xe.createElement(Ve,{color:Rx.DIM}," · esc to dismiss")))}function TasteSkipMessage(){return Xe.createElement(Ge,{marginTop:1,marginBottom:1},Xe.createElement(Ge,{flexShrink:0},Xe.createElement(Ve,{backgroundColor:Dx.BADGE_BG,color:Dx.BADGE_FG,bold:!0},MI)),Xe.createElement(Ve,{color:Rx.DIM}," Skipped. Run "),Xe.createElement(Ve,{color:Yx.CODE},"/learn-taste"),Xe.createElement(Ve,{color:Rx.DIM}," or "),Xe.createElement(Ve,{color:Yx.CODE},"cmd learn-taste"),Xe.createElement(Ve,{color:Rx.DIM}," anytime."))}function TasteNoticeMessage({notice:e}){const t=e.path?`${tasteDirForRoot({projectRoot:process.cwd()})}/${e.path}`:null;return Xe.createElement(Ge,{flexDirection:"column"},Xe.createElement(Ge,null,Xe.createElement(Ge,{flexShrink:0},Xe.createElement(Ve,{backgroundColor:Dx.BADGE_BG,color:Dx.BADGE_FG,bold:!0},MI)),Xe.createElement(Ve,{color:Dx.TEXT}," ",e.label)),Xe.createElement(Ge,{columnGap:1,marginLeft:1},Xe.createElement(Ve,{color:Zx},EI),Xe.createElement(Ge,{flexGrow:1,flexShrink:1,minWidth:0},Xe.createElement(Ve,{wrap:"wrap"},e.text,e.confidence&&Xe.createElement(Ve,{color:Rx.DIM},` [Confidence ${e.confidence}]`)))),e.path&&t&&Xe.createElement(Ge,{marginLeft:3},Xe.createElement(fI,{url:fileUrl(t),text:e.path,color:Rx.DIM})))}function SkillLoadedMessage({name:e}){return Xe.createElement(Ge,null,Xe.createElement(Ge,{flexShrink:0},Xe.createElement(Ve,{backgroundColor:_x.BG,color:_x.FG,bold:!0},`${PI}SKILL${PI}`)),Xe.createElement(Ve,null," ",e),Xe.createElement(Ve,{color:Rx.DIM}," loaded"))}function HookWarningMessage({content:e}){return Xe.createElement(Ge,null,Xe.createElement(Ve,{color:Rx.YELLOW},it.warning),Xe.createElement(Ge,{marginLeft:1,flexGrow:1,flexShrink:1,minWidth:0},Xe.createElement(Ve,{color:Rx.YELLOW},e)))}function HookLineMessage({content:e}){return Xe.createElement(Ge,{flexGrow:1,flexShrink:1,minWidth:0},Xe.createElement(Ve,{color:Rx.DIM},` ${e}`))}function HookLineContinuationMessage({content:e}){return Xe.createElement(Ge,{flexGrow:1,flexShrink:1,minWidth:0},Xe.createElement(Ve,{color:Rx.DIM},` ${e}`))}function HookFrameMessage({lines:e,header:t}){return Xe.createElement(Ge,{flexDirection:"column"},void 0!==t&&Xe.createElement(Ge,{flexGrow:1,flexShrink:1,minWidth:0},Xe.createElement(Ve,{color:Rx.DIM},` ${t}`)),e.map((e,t)=>Xe.createElement(Ge,{key:t,flexGrow:1,flexShrink:1,minWidth:0},Xe.createElement(Ve,{color:Rx.DIM},e.primary?` └ ${e.text}`:` ${e.text}`))))}function GoalLineMessage({content:e,subline:t}){return Xe.createElement(Ge,{flexDirection:"column"},Xe.createElement(Ge,{marginLeft:2,flexGrow:1,flexShrink:1,minWidth:0},Xe.createElement(Ve,{color:Zx},EI),Xe.createElement(Ve,{color:Rx.DIM,wrap:"wrap"}," ",e)),t?Xe.createElement(Ge,{marginLeft:4,flexGrow:1,flexShrink:1,minWidth:0},Xe.createElement(Ve,{color:Rx.DIM,wrap:"wrap"},t)):null)}function GoalAcceptMessage({command:e,acceptLine:t,hint:n}){return Xe.createElement(Ge,{flexDirection:"column"},Xe.createElement(UserMessage,{content:e}),Xe.createElement(GoalLineMessage,{content:t,subline:n}))}function GoalCompleteMessage({elapsed:e,turns:t,goal:n}){const r=`${t} ${1===t?"turn":"turns"}`;return Xe.createElement(Ge,{flexDirection:"column"},Xe.createElement(Ge,{flexGrow:1,flexShrink:1,minWidth:0},Xe.createElement(Ve,null,Xe.createElement(Ve,{color:Rx.GREEN},it.tick," Goal achieved"),Xe.createElement(Ve,{color:Rx.DIM},` (${e} · ${r})`))),Xe.createElement(Ge,{marginLeft:2,flexGrow:1,flexShrink:1,minWidth:0},Xe.createElement(Ve,{color:Rx.DIM,wrap:"wrap"},"Goal: ",n)))}function GoalStatusMessage({state:e,headline:t,goal:n,detail:r,hint:o}){const s=goalStatusGlyph(e),a=goalStatusHeadColor(e);return Xe.createElement(Ge,{flexDirection:"column"},Xe.createElement(Ge,{flexGrow:1,flexShrink:1,minWidth:0},Xe.createElement(Ve,{color:a},s," ",t)),Xe.createElement(Ge,{marginLeft:2,flexGrow:1,flexShrink:1,minWidth:0},Xe.createElement(Ve,{color:Rx.DIM,wrap:"wrap"},n)),r?Xe.createElement(Ge,{marginLeft:2,flexGrow:1,flexShrink:1,minWidth:0},Xe.createElement(Ve,{color:Rx.DIM,wrap:"wrap"},r)):null,o?Xe.createElement(Ge,{marginLeft:2,flexGrow:1,flexShrink:1,minWidth:0},Xe.createElement(Ve,{color:Rx.DIM},o)):null)}function BranchResultMessage({title:e}){return Xe.createElement(Ge,{flexDirection:"column"},Xe.createElement(Ge,{flexGrow:1,flexShrink:1,minWidth:0},e?Xe.createElement(Ve,null,Xe.createElement(Ve,{color:Rx.GREEN},"⑂ Forked."),Xe.createElement(Ve,null," You're now in "),Xe.createElement(Ve,{bold:!0},'"',e,'"')):Xe.createElement(Ve,null,Xe.createElement(Ve,{color:Rx.GREEN},"⑂ Forked."),Xe.createElement(Ve,null," You're now in the new session"))),Xe.createElement(Ge,{marginLeft:2,flexGrow:1,flexShrink:1,minWidth:0},Xe.createElement(Ve,{color:Rx.DIM},"Original session saved · /resume to switch back")))}function SessionFileMessage({sessionId:e,fileLine:t}){return Xe.createElement(Ge,{flexDirection:"column"},Xe.createElement(Ge,{flexGrow:1,flexShrink:1,minWidth:0},Xe.createElement(Ve,{color:Rx.DIM},CN," Session ID: "),Xe.createElement(Ve,null,e)),Xe.createElement(Ge,{marginLeft:2,flexGrow:1,flexShrink:1,minWidth:0},Xe.createElement(Ve,{color:Zx},EI," "),Xe.createElement(Ve,{color:Rx.DIM,wrap:"wrap"},t)))}function InfoMessage({content:e,metadata:t}){if(t?.isTasteSkip)return Xe.createElement(TasteSkipMessage,null);if(t?.tasteNotice)return Xe.createElement(TasteNoticeMessage,{notice:t.tasteNotice});if(t?.skillLoaded)return Xe.createElement(SkillLoadedMessage,{name:t.skillLoaded.name});if(t?.isAutoCompact)return Xe.createElement(AutoCompactMessage,{content:e});if(t?.hookFrame&&t.hookFrame.length>0)return Xe.createElement(HookFrameMessage,{lines:t.hookFrame,header:t.hookFrameHeader});if(t?.isHookLine)return Xe.createElement(HookLineMessage,{content:e});if(t?.isHookLineContinuation)return Xe.createElement(HookLineContinuationMessage,{content:e});if(t?.isHookWarning)return Xe.createElement(HookWarningMessage,{content:e});if(t?.isSuccess)return Xe.createElement(Ge,{flexGrow:1,flexShrink:1,minWidth:0},Xe.createElement(Ve,{color:Rx.GREEN},it.tick," ",e));if(t?.isGoalAccept)return Xe.createElement(GoalAcceptMessage,{command:e,acceptLine:t.goalAcceptLine??"",hint:t.goalSubline});if(t?.isGoalComplete)return Xe.createElement(GoalCompleteMessage,{elapsed:t.goalElapsed??"",turns:t.goalTurns??1,goal:t.goalText??""});if(t?.isGoalStatus)return Xe.createElement(GoalStatusMessage,{state:t.goalState??"running",headline:t.goalHeadline??"",goal:t.goalText??"",detail:t.goalDetail,hint:t.goalSubline});if(t?.isBranchResult)return Xe.createElement(BranchResultMessage,{title:t.branchTitle});if(t?.isSessionFile)return Xe.createElement(SessionFileMessage,{sessionId:t.sessionFileId??"",fileLine:t.sessionFileLine??""});if(t?.isGoalNotice){const n=goalNoticeGlyph(t.goalNoticeKind);return Xe.createElement(Ge,{flexGrow:1,flexShrink:1,minWidth:0},Xe.createElement(Ve,{color:Rx.DIM},n," ",e))}return t?.isGoalLine?Xe.createElement(GoalLineMessage,{content:e,subline:t.goalSubline}):Xe.createElement(Ge,{flexGrow:1,flexShrink:1,minWidth:0},Xe.createElement(Ve,{color:Rx.DIM},CN," ",e))}__name(goalStatusGlyph,"goalStatusGlyph"),__name(goalStatusHeadColor,"goalStatusHeadColor"),__name(goalNoticeGlyph,"goalNoticeGlyph"),__name(AutoCompactMessage,"AutoCompactMessage"),__name(ZdrPausedMessage,"ZdrPausedMessage"),__name(ModelNoticeMessage,"ModelNoticeMessage"),__name(TasteSkipMessage,"TasteSkipMessage"),__name(TasteNoticeMessage,"TasteNoticeMessage"),__name(SkillLoadedMessage,"SkillLoadedMessage"),__name(HookWarningMessage,"HookWarningMessage"),__name(HookLineMessage,"HookLineMessage"),__name(HookLineContinuationMessage,"HookLineContinuationMessage"),__name(HookFrameMessage,"HookFrameMessage"),__name(GoalLineMessage,"GoalLineMessage"),__name(GoalAcceptMessage,"GoalAcceptMessage"),__name(GoalCompleteMessage,"GoalCompleteMessage"),__name(GoalStatusMessage,"GoalStatusMessage"),__name(BranchResultMessage,"BranchResultMessage"),__name(SessionFileMessage,"SessionFileMessage"),__name(InfoMessage,"InfoMessage"),Ex(),Px(),Ex(),Ex(),Ex(),Ex();var bN=/\[\^[^\]]+\]/;function splitMarkdownBlocks(e){return e?bN.test(e)?[e]:dt.lex(e,{gfm:!0}).map(e=>e.raw):[]}function isWhitespaceOnly2(e){return 0===e.trim().length}function createBlockStream(){let e="",t=0,n=!1;function frozenAdvance(n){return{newlyCompleted:[],openTail:n.startsWith(e)?n.slice(e.length):n,committedBlockCount:t,frozen:!0}}function advance(r){if(n)return frozenAdvance(r);if(!r.startsWith(e))return n=!0,frozenAdvance(r);const o=splitMarkdownBlocks(r);if(o.length<=1)return{newlyCompleted:[],openTail:r.slice(e.length),committedBlockCount:t,frozen:!1};const s=o.slice(0,-1),a=[];let i=0;for(const o of s){const s=i+o.length;if(s<=e.length){if(e.slice(i,s)!==o)return n=!0,frozenAdvance(r)}else{if(i!==e.length)return n=!0,frozenAdvance(r);a.push(o),e+=o,isWhitespaceOnly2(o)||(t+=1)}i=s}return{newlyCompleted:a,openTail:r.slice(e.length),committedBlockCount:t,frozen:!1}}function finalize(r){if(n||!r.startsWith(e)){const n=r.startsWith(e)?r.slice(e.length):r;return{remaining:n?[n]:[],committedBlockCount:t}}const o=r.slice(e.length);return o?{remaining:splitMarkdownBlocks(o),committedBlockCount:t}:{remaining:[],committedBlockCount:t}}return __name(frozenAdvance,"frozenAdvance"),__name(advance,"advance"),__name(finalize,"finalize"),{advance:advance,finalize:finalize}}__name(splitMarkdownBlocks,"splitMarkdownBlocks"),__name(isWhitespaceOnly2,"isWhitespaceOnly"),__name(createBlockStream,"createBlockStream"),Ex();var EN=String.fromCharCode(8203),TN=new Set(["_","~","*","`"]),PN=/!?\[[^\]]*\]\([^)]*$/,MN=/!?\[[^\]]*$/;function isSpace(e){return" "===e||"\t"===e||"\n"===e||"\r"===e}function isOnlyMarkersOrSpace(e){for(const t of e)if(!isSpace(t)&&!TN.has(t))return!1;return!0}function isShortSetextUnderline(e){if(0===e.length||e.length>2)return!1;const t=e[0];if("-"!==t&&"="!==t)return!1;for(const n of e)if(n!==t)return!1;return!0}function isTagOpener(e){const t=e.startsWith("</")?e[2]:e[1];return void 0!==t&&/[a-zA-Z]/.test(t)}function countFenceMarkers(e){let t=0;for(let n=0;n<e.length;n+=1)"\\"!==e[n]||"`"!==e[n+1]?e.startsWith("```",n)&&(t+=1,n+=2):n+=1;return t}function countMarkerOutsideCode(e,t){let n=0,r=!1,o=!1;for(let s=0;s<e.length;s+=1){const a=e[s];"\\"!==a?e.startsWith("```",s)?(r=!r,s+=2):r||("`"!==a?o||e.startsWith(t,s)&&(n+=1,s+=t.length-1):o=!o):s+=1}return n}function countSingleBackticks(e){let t=0,n=!1;for(let r=0;r<e.length;r+=1)"\\"!==e[r]||"`"!==e[r+1]?e.startsWith("```",r)?(n=!n,r+=2):n||"`"!==e[r]||(t+=1):r+=1;return t}function stripDanglingHtmlTag(e){const t=e.lastIndexOf("<");if(-1===t)return e;const n=e.slice(t);return n.includes(">")?e:isTagOpener(n)?e.slice(0,t).trimEnd():e}function stripDanglingLink(e){const t=e.match(PN);if(void 0!==t?.index)return e.slice(0,t.index).trimEnd();const n=e.match(MN);return void 0!==n?.index?e.slice(0,n.index).trimEnd():e}function guardSetextUnderline(e){const t=e.lastIndexOf("\n");if(-1===t)return e;const n=e.slice(t+1),r=n.trim();if(!isShortSetextUnderline(r))return e;if(n!==r&&n.endsWith(" "))return e;const o=e.slice(0,t).split("\n").at(-1);return o&&0!==o.trim().length?`${e}${EN}`:e}function closeUnbalancedMarker(e,t,n){if(countMarkerOutsideCode(e,t)%2==0)return e;const r=e.lastIndexOf(t),o=e.slice(r+t.length);return isOnlyMarkersOrSpace(o)?e:n&&o.endsWith(n)?`${e}${n}`:`${e}${t}`}function completeInlineTripleFence(e){if(e.includes("\n"))return null;if(!e.startsWith("```"))return null;if(!e.endsWith("``")||e.endsWith("```"))return null;const t=e.slice(3,-2);return 0===t.length||t.includes("`")?null:`${e}\``}function closeInlineCode(e){if(countSingleBackticks(e)%2==0)return e;const t=e.lastIndexOf("`");return isOnlyMarkersOrSpace(e.slice(t+1))?e:`${e}\``}function mendMarkdown(e){if(!e)return e;const t=completeInlineTripleFence(e);if(null!==t)return t;if(countFenceMarkers(e)%2==1)return e;let n=e;return n=stripDanglingHtmlTag(n),n=stripDanglingLink(n),n=guardSetextUnderline(n),n=closeUnbalancedMarker(n,"***",""),n=closeUnbalancedMarker(n,"**","*"),n=closeUnbalancedMarker(n,"__","_"),n=closeUnbalancedMarker(n,"~~","~"),n=closeInlineCode(n),n}__name(isSpace,"isSpace"),__name(isOnlyMarkersOrSpace,"isOnlyMarkersOrSpace"),__name(isShortSetextUnderline,"isShortSetextUnderline"),__name(isTagOpener,"isTagOpener"),__name(countFenceMarkers,"countFenceMarkers"),__name(countMarkerOutsideCode,"countMarkerOutsideCode"),__name(countSingleBackticks,"countSingleBackticks"),__name(stripDanglingHtmlTag,"stripDanglingHtmlTag"),__name(stripDanglingLink,"stripDanglingLink"),__name(guardSetextUnderline,"guardSetextUnderline"),__name(closeUnbalancedMarker,"closeUnbalancedMarker"),__name(completeInlineTripleFence,"completeInlineTripleFence"),__name(closeInlineCode,"closeInlineCode"),__name(mendMarkdown,"mendMarkdown");var xN=ft()?"⠶":"#";function streamingMaxRows(e){return Math.max(8,e-12)}function AssistantMessage({content:e,isStreaming:t=!1,continuation:n=!1}){const r=useTerminalRows(),o=t?mendMarkdown(e):e;return Xe.createElement(Ge,null,n?Xe.createElement(Ge,{width:2,flexShrink:0}):Xe.createElement(Ve,{color:Gx},xN),Xe.createElement(Ge,{marginLeft:n?0:1,flexGrow:1,flexShrink:1,minWidth:0,flexDirection:"column"},Xe.createElement(Markdown,{maxPhysicalRows:t?streamingMaxRows(r):void 0},o)))}function BashMessage({command:e,output:t,isPending:n=!1,hasError:r=!1}){let o=Rx.GREEN,s=it.tick,a="default",i=t||"(No output)";n&&(o=Rx.YELLOW,s=it.arrowRight,a=Rx.YELLOW,i="Executing…"),r&&(o=Rx.RED,s=it.cross,a=Rx.RED);const l=rt(()=>buildTreeConnectors(i),[i]);return Xe.createElement(Ge,null,Xe.createElement(Ve,{color:o},s),Xe.createElement(Ge,{flexDirection:"column",marginLeft:1},Xe.createElement(Ge,null,Xe.createElement(Ve,{color:Rx.GRAY},"$ "),Xe.createElement(Ve,{color:o,bold:!0},e)),Xe.createElement(Ge,{columnGap:1,marginLeft:1},Xe.createElement(Ve,{color:Zx},l),Xe.createElement(Ve,{color:a,wrap:"wrap"},i))))}function CommandResultMessage({message:e,details:t,hasError:n=!1}){const r=n?Rx.YELLOW:void 0,o=rt(()=>buildTreeConnectors(e),[e]);return Xe.createElement(Ge,{flexDirection:"column",marginBottom:0,marginTop:-1},Xe.createElement(Ge,{columnGap:1},Xe.createElement(Ve,{color:Zx},o),Xe.createElement(Ge,{flexGrow:1,flexShrink:1,minWidth:0},Xe.createElement(Ve,{color:r},e))),t&&Xe.createElement(Ge,{marginLeft:3},Xe.createElement(Ve,{color:Rx.DIM},"See ",t)))}function ErrorMessage({content:e}){return isInterruptedByUserMessage(e)?Xe.createElement(Ge,null,Xe.createElement(Ve,{color:Rx.DIM},it.pointer),Xe.createElement(Ge,{marginLeft:1,flexGrow:1,flexShrink:1,minWidth:0},Xe.createElement(Ve,{color:Rx.DIM,wrap:"wrap"},Ef))):Xe.createElement(Ge,null,Xe.createElement(Ve,{color:Rx.RED},it.warning),Xe.createElement(Ge,{marginLeft:1,flexGrow:1,flexShrink:1,minWidth:0},Xe.createElement(Markdown,{color:Rx.RED},e)))}__name(streamingMaxRows,"streamingMaxRows"),__name(AssistantMessage,"AssistantMessage"),Ex(),__name(BashMessage,"BashMessage"),Ex(),__name(CommandResultMessage,"CommandResultMessage"),Ex(),Px(),__name(ErrorMessage,"ErrorMessage"),Ex(),Px();var IN={connected:{char:it.tick,color:Rx.GREEN},installed:{char:it.tick,color:Rx.GREEN},up_to_date:{char:it.tick,color:Rx.GREEN},needs_reload:{char:it.circle,color:Rx.YELLOW},failed:{char:it.cross,color:Rx.RED},not_in_ide:{char:it.circle,color:Rx.YELLOW}};function IDEStatusMessage({status:e,ide:t,details:n}){const{prefix:r,ide:o,suffix:s}=getIDESetupStatusHeadline(e,t),a=IN[e];return Xe.createElement(Ge,{flexDirection:"column"},Xe.createElement(Ge,null,Xe.createElement(Ve,null,Xe.createElement(Ve,{color:a.color},a.char),Xe.createElement(Ve,null," ",r),o&&Xe.createElement(Ve,{color:Rx.CYAN},o),s&&Xe.createElement(Ve,null,s))),n?.map(e=>Xe.createElement(Ve,{key:e,color:Rx.DIM}," ",e)))}function reasoningBodyColumns(e){const t=Math.floor(.9*Math.floor(.9*e));return Math.max(1,t-2)}function ReasoningMessage({content:e,expandedOutput:t,expandKey:n,isStreaming:r=!1}){const o=projectReasoningView({content:e,expandedOutput:t,expandKey:n,isStreaming:r,columns:reasoningBodyColumns(useTerminalWidth()),measureWidth:Ie});return Xe.createElement(Ge,{flexDirection:"column",width:"90%"},Xe.createElement(Ge,null,Xe.createElement(Ve,{color:Lx},"✻"," "),Xe.createElement(Ve,{color:Lx},o.showExpandHint?`${o.headerLabel} `:o.headerLabel),o.showExpandHint&&Xe.createElement(BracketWrap,{color:Rx.DIM},o.expandHint)),o.showBody&&o.hiddenAboveLabel&&Xe.createElement(Ge,{marginLeft:2},Xe.createElement(Ve,{color:Rx.DIM},o.hiddenAboveLabel)),o.showBody&&Xe.createElement(Ge,{marginLeft:2,flexDirection:"column"},Xe.createElement(Ve,{color:Lx,wrap:"wrap",italic:!0},o.bodyText)))}__name(IDEStatusMessage,"IDEStatusMessage"),Ex(),Px(),__name(reasoningBodyColumns,"reasoningBodyColumns"),__name(ReasoningMessage,"ReasoningMessage"),Ex(),Px(),Ex(),Px();function HelpMessage(){const e=getInvokedCommandName(),t=rt(()=>getVisibleSlashCommands(),[]);return Xe.createElement(Ge,{flexDirection:"column",paddingY:1},Xe.createElement(Ge,{flexDirection:"column",marginBottom:1},Xe.createElement(Ge,null,Xe.createElement(Ve,{bold:!0},"Command Code"),Xe.createElement(Ve,{color:Rx.GRAY}," v","1.27.0")),Xe.createElement(Ve,{color:Rx.GRAY},Ms)),Xe.createElement(Ge,{flexDirection:"column",marginBottom:1},Xe.createElement(Ve,{bold:!0},"Usage"),Xe.createElement(Ge,{paddingLeft:2},Xe.createElement(Ve,null,e," <command> [options]"))),Xe.createElement(Ge,{flexDirection:"column",marginBottom:1},Xe.createElement(Ve,{bold:!0},"Options"),Xe.createElement(Ge,{flexDirection:"column",paddingLeft:2},Ds.map(t=>Xe.createElement(Ge,{key:t.key},Xe.createElement(Ve,null,t.key.replace(/^cmd/,e).padEnd(xs)),Xe.createElement(Ve,{color:Rx.GRAY},t.description))))),Xe.createElement(Ge,{flexDirection:"column",marginBottom:1},Xe.createElement(Ve,{bold:!0},"Commands"),Xe.createElement(Ge,{flexDirection:"column",paddingLeft:2},Ns.map(t=>Xe.createElement(Ge,{key:t.key},Xe.createElement(Ve,null,t.key.replace(/^cmd/,e).padEnd(xs)),Xe.createElement(Ve,{color:Rx.GRAY},t.description))))),Xe.createElement(Ge,{flexDirection:"column",marginBottom:1},Xe.createElement(Ve,{bold:!0},"Slash Commands"),Xe.createElement(Ge,{flexDirection:"column",paddingLeft:2},t.map(e=>Xe.createElement(Ge,{key:e.key},Xe.createElement(Ve,null,e.key.padEnd(xs)),Xe.createElement(Ve,{color:Rx.GRAY},e.description))))),Xe.createElement(Ge,{flexDirection:"column",marginBottom:1},Xe.createElement(Ve,{bold:!0},"Keyboard Shortcuts"),Xe.createElement(Ge,{flexDirection:"column",paddingLeft:2},Os.map(e=>Xe.createElement(Ge,{key:e.key},Xe.createElement(Ve,null,e.key.padEnd(xs)),Xe.createElement(Ve,{color:Rx.GRAY},e.description))))),Xe.createElement(Ge,{flexDirection:"column",marginBottom:1},Xe.createElement(Ve,{bold:!0},"Examples"),Xe.createElement(Ge,{flexDirection:"column",paddingLeft:2},_s.map(t=>Xe.createElement(Ge,{key:t.key},Xe.createElement(Ve,null,t.key.replace(/^cmd/,e).padEnd(xs)),Xe.createElement(Ve,{color:Rx.GRAY},t.description))))),Xe.createElement(Ge,{marginBottom:1},Xe.createElement(Ve,{color:Rx.CYAN},it.pointer),Xe.createElement(Ve,{color:Rx.GRAY}," ",Is.replace(/cmd/,e))),Xe.createElement(Ge,{flexDirection:"column"},Xe.createElement(Ve,{bold:!0},"Links"),Xe.createElement(Ge,{flexDirection:"column",paddingLeft:2},$s.map(e=>Xe.createElement(Ge,{key:e.key},Xe.createElement(Ve,null,e.key.padEnd(xs)),Xe.createElement(Ve,{color:Rx.CYAN},e.description))))))}function SystemMessage({content:e}){return isHelpSystemEntryContent(e)?Xe.createElement(HelpMessage,null):Xe.createElement(Ge,{flexDirection:"column"},Xe.createElement(Ve,{wrap:"wrap"},Xe.createElement(Markdown,null,e)))}function FeedEntryView({entry:e,expandedToolOutput:t}){return renderFeedEntry(e,t)}function renderFeedEntry(e,t){if("user"===e.role){const t=e.metadata?.ideHint,n=e.metadata?.imageTokenPaths;return Xe.createElement(UserMessage,{content:e.input,ideHint:t,imageTokenPaths:n})}return"assistant"===e.role?Xe.createElement(AssistantMessage,{content:e.input,isStreaming:"running"===e.metadata?.status,continuation:!0===e.metadata?.continuation}):"reasoning"===e.role?Xe.createElement(ReasoningMessage,{content:e.input,expandedOutput:t,expandKey:"ctrl",isStreaming:"running"===e.metadata?.status}):"tool"===e.role?Xe.createElement(ToolMessage,{name:gg(e.name||""),input:e.input,output:e.output||"",isPending:dg(e),hasError:cg(e),metadata:e.metadata,expandedOutput:t}):"bash"===e.role?Xe.createElement(BashMessage,{command:e.command||"",output:e.output||"",isPending:dg(e),hasError:cg(e)}):"system"===e.role?Xe.createElement(SystemMessage,{content:e.input}):"info"===e.role?Xe.createElement(InfoMessage,{content:e.input,metadata:e.metadata}):"error"===e.role?Xe.createElement(ErrorMessage,{content:e.input}):"command-result"===e.role?Xe.createElement(CommandResultMessage,{message:e.input,details:e.details,hasError:e.hasError??!1}):"ide-status"===e.role?Xe.createElement(IDEStatusMessage,{status:e.status,ide:e.ide,details:e.details}):null}__name(HelpMessage,"HelpMessage"),__name(SystemMessage,"SystemMessage"),__name(FeedEntryView,"FeedEntryView"),__name(renderFeedEntry,"renderFeedEntry");var AN=__name(e=>getModelShortName({modelId:e,findModelById:findModelById}),"getModelShortName");function TranscriptDivider({count:e,width:t}){const n=` ${e} hidden messages [${UC?"ctrl+y":"ctrl+e"} to expand more] `,r=Math.max(0,Math.floor((t-n.length)/2)),o="─".repeat(r);return Xe.createElement(Ge,{marginBottom:1},Xe.createElement(Ve,{color:Wx},o),Xe.createElement(BracketedText,{text:n,color:Wx}),Xe.createElement(Ve,{color:Wx},o))}__name(TranscriptDivider,"TranscriptDivider");var RN=Xe.memo(({feed:e,showHeader:t=!1,staticKey:n,expandedToolOutput:r=!1,currentModel:o,currentProvider:s,hiddenCount:a=0})=>{const i=a>0?{role:"transcript-divider",count:a}:null,l=[...t?["header"]:[],...i?[i]:[],...e],c=useTerminalWidth(),d=rt(()=>aA(c),[c]),u=rt(()=>uA(c),[c]),m=rt(()=>getPackageJson(import.meta.url).version||"0.0.0",[]),p=rt(()=>getGitHeaderInfo(),[]),g=rt(()=>{const e=process.cwd(),t=process.env.HOME??process.env.USERPROFILE??"";return e.replace(t,"~")},[]),h=o?AN(o):"sonnet-4.6",f="taste-1",y=rt(()=>{if(!o)return"";if(!modelSupportsReasoningEffort(o))return"";const e=getReasoningEffort(o);return e?` with ${e} effort`:""},[o,n]),S=isInternalTeamFlagEnforced()&&!process.env.CMD_DEMO,w=S?" · co":"",k=S&&s?` · ${getProviderShortName(s)}`:"";return Xe.createElement(ze,{items:l,key:n,style:{width:"100%"}},e=>{if("object"==typeof e&&"transcript-divider"===e.role)return Xe.createElement(TranscriptDivider,{key:"transcript-divider",count:e.count,width:c});if("header"===e)return"compact"===u?Xe.createElement(Ge,{key:"header",marginBottom:1,flexDirection:"row"},Xe.createElement(Ge,{width:cA,flexShrink:0},Xe.createElement(tI,null,lA)),Xe.createElement(Ge,{flexDirection:"column",marginLeft:2},Xe.createElement(Ge,null,Xe.createElement(Ve,{bold:!0},"Command Code"),Xe.createElement(Ve,{color:Wx}," ","v",m)),Xe.createElement(Ve,{color:Wx},"models: ",h,y," ·"," ",f,w),Xe.createElement(Ve,{color:Wx},g,p&&p.isLocal&&p.branch&&` (${p.branch})`))):Xe.createElement(Ge,{key:"header",marginBottom:1,flexDirection:"column"},Xe.createElement(tI,null,d.trimEnd()),Xe.createElement(Ge,{flexDirection:"column",marginTop:1},Xe.createElement(Ge,null,Xe.createElement(Ve,{color:Wx},"# "),Xe.createElement(Ve,{bold:!0},"Command Code"),Xe.createElement(Ve,{color:Wx}," v",m)),Xe.createElement(Ve,{color:Wx},"# models: ",h,y," · ",f,k,w),Xe.createElement(Ge,null,Xe.createElement(Ve,{color:Wx},"# ",g,p&&p.isLocal&&p.branch&&Xe.createElement(Ve,{color:Wx}," ","(branch:"," ",p.branch,")")))));const t=e,n=renderFeedEntry(t,r);return Xe.createElement(Ge,{key:t.id,paddingBottom:1,width:"90%"},n)})});Ex(),Px();var ON=Ze(__name(function LiveAgentStatusInner2({entry:e}){const t=gg(e.name||"Agent"),n=summarizeAgentTaskInput(e.input||""),r=e.metadata?.tokensUsed||0,o=e.metadata?.elapsedSeconds||0,s=e.metadata?.recentTools||[],[a,i]=et(".");return nt(()=>{const e=setInterval(()=>{i(e=>"..."===e?".":e+".")},500);return()=>clearInterval(e)},[]),Xe.createElement(Ge,{flexDirection:"column",marginBottom:1,width:"90%"},Xe.createElement(Ge,null,Xe.createElement(Ve,{backgroundColor:Ux.BG,color:Ux.FG,bold:!0},` ${t} `),n&&Xe.createElement(Ve,null," (",n,")")),Xe.createElement(Ge,{columnGap:1,marginLeft:1},Xe.createElement(Ve,null,"⎿"," "),Xe.createElement(Ve,{color:Rx.GRAY},"Running (",formatTime(o)," |"," ",formatTokens(r),")",a)),s.length>0&&Xe.createElement(Ge,{flexDirection:"column",marginLeft:1},s.map((e,t)=>{const n=gg(e.name);return Xe.createElement(Ge,{key:t,columnGap:1},Xe.createElement(Ve,{color:Rx.GRAY},"⎿"),Xe.createElement(Ve,{color:Rx.GRAY}," ",n),e.input&&Xe.createElement(Ve,{color:Rx.GRAY},"(",e.input,")"))})))},"LiveAgentStatusInner")),DN=Ze(__name(function LiveAgentStatus2({entry:e}){return"tool"!==e.role?null:Xe.createElement(ON,{entry:e})},"LiveAgentStatus"));Ex(),Ex(),Px();var LN=[],NN=LN,$N=!1,_N=null,FN="",UN=new Set,jN=new Set,BN=new Set;function shapeOf(e){return e.map(e=>e.content.replace(/\d+/g,"#")).join("\0")}function emit2(){for(const e of BN)e()}function cancelPeek(){_N&&clearTimeout(_N),_N=null,$N=!1}function armPeek(){_N&&clearTimeout(_N),$N=!0,_N=setTimeout(()=>{_N=null,$N=!1,emit2()},5e3),_N.unref?.()}function projectUserEdits(e){return e.filter(e=>!UN.has(e.content)).map(e=>"completed"!==e.status&&jN.has(e.content)?{...e,status:"completed"}:e)}function setSessionTodos(e){const t=projectUserEdits(e);if(t.length>0&&jN.size>0&&t.every(e=>"completed"===e.status))return void clearSessionTodos();const n=shapeOf(t),r=n!==FN;(r||JSON.stringify(t)!==JSON.stringify(NN))&&(NN=t.length>0?t:LN,FN=n,NN.length>0&&r&&armPeek(),emit2())}function adoptSettled(e){NN=e.length>0?[...e]:LN,FN=shapeOf(NN),cancelPeek(),emit2()}function seedSessionTodos(e){UN.clear(),jN.clear(),adoptSettled(e)}function removeSessionTodoAt(e){const t=NN[e];return t&&UN.add(t.content),adoptSettled(NN.filter((t,n)=>n!==e)),NN}function seedTodosFromFeedEntries(e){for(let t=e.length-1;t>=0;t-=1){const n=e[t];if(!n||"tool"!==n.role||"todo_write"!==n.name)continue;const r="output"in n?n.output:void 0,o="string"==typeof r?kg(r):null;if(o){if(o.every(e=>"completed"===e.status))break;return seedSessionTodos(o),NN}}return clearSessionTodos(),LN}function clearSessionTodos(){(NN!==LN||$N||0!==UN.size||0!==jN.size)&&(NN=LN,FN="",UN.clear(),jN.clear(),cancelPeek(),emit2())}function getSessionTodos(){return NN}function isTodoPanelCollapsed(){return!$N}function completeSessionTodoAt(e){const t=NN[e];return t&&jN.add(t.content),adoptSettled(NN.map((t,n)=>n===e?{...t,status:"completed"}:t)),NN}function completeAllSessionTodos(){const e=NN.map(e=>e.content);for(const t of e)jN.add(t);return adoptSettled(LN),e}function subscribe(e){return BN.add(e),()=>BN.delete(e)}function useSessionTodos(){return at(subscribe,getSessionTodos)}function useTodoPanelCollapsed(){return at(subscribe,isTodoPanelCollapsed)}function usePausedLabel(e){const[t,n]=et(!e);return nt(()=>{if(e)return void n(!1);const t=setTimeout(()=>n(!0),1500);return t.unref?.(),()=>clearTimeout(t)},[e]),t}function projectVisibleTodos(e){if(e.length<=8)return{foldedDone:0,visible:e,hiddenTail:0};const t=e.filter(e=>"completed"!==e.status),n=e.length-t.length,r=8-(n>0?1:0),o=t.slice(0,Math.max(1,r));return{foldedDone:n,visible:o,hiddenTail:t.length-o.length}}function currentTaskLabel(e){const t=e.find(e=>"in_progress"===e.status);if(t)return t.activeForm?`${t.activeForm}…`:t.content;const n=e.find(e=>"pending"===e.status);return n?n.content:null}function TodoPanel({active:e=!0}){const t=useSessionTodos(),n=useTodoPanelCollapsed(),r=usePausedLabel(e);if(0===t.length)return null;const o=t.filter(e=>"completed"===e.status).length,s=o>0?`${t.length} items · ${o} done`:`${t.length} items`,a=n?currentTaskLabel(t):null;return Xe.createElement(Ge,{flexDirection:"column",marginBottom:1},Xe.createElement(Ge,null,Xe.createElement(Ge,{flexShrink:0},Xe.createElement(Ve,{backgroundColor:_x.BG,color:_x.FG,bold:!0},`${PI}TODOS${PI}`)),Xe.createElement(Ge,{flexShrink:0},Xe.createElement(Ve,null," ",Xe.createElement(BracketWrap,null,s))),a&&Xe.createElement(Ge,{flexShrink:1,minWidth:0},Xe.createElement(Ve,{color:r?Rx.DIM:jx.IN_PROGRESS,bold:!r,wrap:"truncate-end"},` ${a}${r?" (paused)":""}`)),Xe.createElement(Ge,{flexShrink:0},Xe.createElement(Ve,null," ",Xe.createElement(BracketWrap,{color:Rx.DIM},n?"ctrl+x to expand":"ctrl+x to manage")))),!n&&Xe.createElement(CappedChecklist,{todos:t}))}function CappedChecklist({todos:e}){const{foldedDone:t,visible:n,hiddenTail:r}=projectVisibleTodos(e);return Xe.createElement(Ge,{flexDirection:"column"},t>0&&Xe.createElement(Ge,{flexDirection:"row"},Xe.createElement(Ge,{width:2},Xe.createElement(Ve,{color:jx.SUCCESS},it.checkboxOn)),Xe.createElement(Ve,{color:jx.SUCCESS,strikethrough:!0},t," completed")),Xe.createElement(TodoChecklist,{todos:n}),r>0&&Xe.createElement(Ve,{color:Rx.DIM},` … +${r} more`))}__name(shapeOf,"shapeOf"),__name(emit2,"emit"),__name(cancelPeek,"cancelPeek"),__name(armPeek,"armPeek"),__name(projectUserEdits,"projectUserEdits"),__name(setSessionTodos,"setSessionTodos"),__name(adoptSettled,"adoptSettled"),__name(seedSessionTodos,"seedSessionTodos"),__name(removeSessionTodoAt,"removeSessionTodoAt"),__name(seedTodosFromFeedEntries,"seedTodosFromFeedEntries"),__name(clearSessionTodos,"clearSessionTodos"),__name(getSessionTodos,"getSessionTodos"),__name(isTodoPanelCollapsed,"isTodoPanelCollapsed"),__name(completeSessionTodoAt,"completeSessionTodoAt"),__name(completeAllSessionTodos,"completeAllSessionTodos"),__name(subscribe,"subscribe"),__name(useSessionTodos,"useSessionTodos"),__name(useTodoPanelCollapsed,"useTodoPanelCollapsed"),__name(usePausedLabel,"usePausedLabel"),__name(projectVisibleTodos,"projectVisibleTodos"),__name(currentTaskLabel,"currentTaskLabel"),__name(TodoPanel,"TodoPanel"),__name(CappedChecklist,"CappedChecklist"),Ex();var WN=new Set,HN=!1;function isTodosManagerOpen(){return HN}function requestTodosManagerOpen(){for(const e of WN)e()}function statusColor(e){return"completed"===e?Rx.GREEN:"in_progress"===e?Rx.CYAN:Rx.WHITE}function TodoRow({todo:e,selected:t}){const n="completed"===e.status?it.checkboxOn:it.checkboxOff,r=t?eI:void 0;return Xe.createElement(Ge,null,Xe.createElement(UD,{isSelected:t,backgroundColor:r}),Xe.createElement(Ve,{color:statusColor(e.status),backgroundColor:r}," ",n),Xe.createElement(Ve,{color:t?DD:statusColor(e.status),strikethrough:"completed"===e.status,backgroundColor:r,wrap:"truncate-end"}," ",e.content),"in_progress"===e.status&&Xe.createElement(Ve,{color:Rx.DIM,backgroundColor:r}," ","(in progress)"))}function TodosManagerPanel({sessionId:e,onExpandedChange:t}){const n=useSessionTodos(),[r,o]=et(!1),[s,a]=et(0);nt(()=>(HN=r,t?.(r),()=>{HN=!1,t?.(!1)}),[r,t]),nt(()=>{const e=__name(()=>{a(0),o(!0)},"listener");return WN.add(e),()=>{WN.delete(e)}},[]),nt(()=>{if(0===n.length)return o(!1),void a(0);a(e=>Math.min(e,n.length-1))},[n.length]);const i=__name(t=>{NO(e)?.applyTodoUserEdit(t)},"syncHarness");if(Ye((e,t)=>{if(t.escape||t.leftArrow||t.ctrl&&"x"===e||""===e)o(!1);else if(0!==n.length)if(t.upArrow)a(e=>Math.max(0,e-1));else if(t.downArrow)a(e=>Math.min(n.length-1,e+1));else{if("c"===e){const e=n[s];return void i({todos:completeSessionTodoAt(s),...e?{completedContents:[e.content]}:{}})}if("x"===e){const e=n[s];return void i({todos:removeSessionTodoAt(s),...e?{removedContents:[e.content]}:{}})}"a"===e&&i({todos:[],completedContents:completeAllSessionTodos()})}},{isActive:r}),!r)return null;const l=n.filter(e=>"completed"===e.status).length;return Xe.createElement(_D,{title:"Todos",subtitle:l>0?`${n.length} items · ${l} done`:`${n.length} items`,gapAfterHeader:!1,boxProps:{marginTop:1,marginBottom:1}},Xe.createElement(Ge,{flexDirection:"column",marginTop:1},n.map((e,t)=>Xe.createElement(TodoRow,{key:e.id??t,todo:e,selected:t===s}))))}__name(isTodosManagerOpen,"isTodosManagerOpen"),__name(requestTodosManagerOpen,"requestTodosManagerOpen"),__name(statusColor,"statusColor"),__name(TodoRow,"TodoRow"),__name(TodosManagerPanel,"TodosManagerPanel"),Ex(),Px(),Px();var GN=__name(({currentModel:e,onClose:t,refreshBanner:n,sessionId:r})=>{const o=getSupportedEfforts(e)??[],s=findModelById(e)?.label??getModelDisplayName(e),a=tt(!1),i=__name(o=>{if(a.current)return;a.current=!0;const s=o!==getReasoningEffort(e);(async()=>{try{s&&(await setReasoningEffort({modelId:e,effort:o}),n(),void 0!==o&&r&&NO(r)?.recordEffortChange({model:e,effort:o}))}catch(e){dlog(`[Effort] Failed to persist reasoning effort: ${e}`)}finally{t()}})()},"handleSelect"),l=__name(()=>{a.current||t()},"handleCancel");return Xe.createElement(TL,{modelLabel:s,supportedEfforts:o,currentEffort:getReasoningEffort(e),onSelect:i,onCancel:l})},"EffortSelector");Ex(),Px();var VN=__name(({onSelect:e,onCancel:t,currentProvider:n})=>{const r=getProviderOptions(),o=__name(t=>{e(t.value)},"handleSelect");Ye((e,n)=>{n.escape&&t()});const s=n?r.findIndex(e=>e.value===n):0,a=n&&-1===s;return Xe.createElement(_D,{title:"Select AI Provider",titleSuffix:n?Xe.createElement(Xe.Fragment,null," Current: ",Xe.createElement(Ve,{color:Rx.GREEN},getProviderDisplayName(n)),a&&Xe.createElement(Ve,{color:Rx.YELLOW}," ","[OAuth enforced]")):void 0,subtitle:"Available Providers:",hint:"Press ESC to cancel"},Xe.createElement(SelectInput,{items:r,onSelect:o,initialIndex:s>=0?s:0,indicatorComponent:UD,itemComponent:BD}))},"ProviderSelector");Ex(),Px();var zN=__name(e=>0===e?"No code changes":`${e} file${e>1?"s":""} changed`,"formatFileCountLabel"),qN=__name(({checkpoints:e,onSelect:t,onCancel:n})=>{const r=rt(()=>[...e].sort((e,t)=>new Date(e.createdAt).getTime()-new Date(t.createdAt).getTime()),[e]),[o,s]=et(()=>Math.max(0,r.length-1)),[a,i]=et(()=>Math.max(0,r.length-8)),[l,c]=et("checkpoint"),[d,u]=et(null),[m,p]=et(0),g=rt(()=>hasCodeChangesToRestore({sortedCheckpoints:r,selectedCheckpoint:d}),[d,r]),h=rt(()=>g?jT:jT.filter(e=>"conversation"===e.mode),[g]);if(nt(()=>{if(r.length>0){const e=r.length-1;s(e),i(Math.max(0,r.length-8))}},[r.length,8]),Ye((e,g)=>{if(g.escape)return"mode"===l?(c("checkpoint"),u(null),void p(0)):void n();"checkpoint"===l&&g.upArrow?s(e=>{const t=Math.max(0,e-1);return t<a&&i(t),t}):"checkpoint"===l&&g.downArrow?s(e=>{const t=Math.min(r.length-1,e+1);return t>=a+8&&i(t-8+1),t}):"checkpoint"===l&&g.return?r.length>0&&(u(r[o]),c("mode"),p(0)):"mode"===l&&g.upArrow?p(e=>Math.max(0,e-1)):"mode"===l&&g.downArrow?p(e=>Math.min(h.length-1,e+1)):"mode"===l&&g.return&&d&&h[m]&&t({messageId:d.messageId,mode:h[m].mode})}),0===r.length)return Xe.createElement(_D,{title:"Rewind",subtitle:"No checkpoints available. Start a conversation to create checkpoints.",gapAfterHeader:!1,footer:Xe.createElement(SA,null,"Press ",Xe.createElement(wA,null,"Esc")," to close")});if("mode"===l&&d)return Xe.createElement(_D,{title:"Rewind",subtitle:Xe.createElement(Xe.Fragment,null,"Restore to:"," ",Xe.createElement(Ve,{color:Rx.WHITE},truncateString2({text:d.prompt||"checkpoint",maxChars:50}))),footer:Xe.createElement(SA,null,"Press ",Xe.createElement(wA,null,"Enter")," to confirm ·"," ",Xe.createElement(wA,null,"Esc")," to go back")},Xe.createElement(Ge,{flexDirection:"column"},h.map((e,t)=>{const n=m===t,r=t===h.length-1;return Xe.createElement(Ge,{key:e.mode,flexDirection:"column"},Xe.createElement(Ge,{flexDirection:"row"},Xe.createElement(Ve,{color:n?Ox:void 0},n?`${bI} `:" "),Xe.createElement(Ge,{flexDirection:"column"},Xe.createElement(Ve,{color:n?Ox:Rx.WHITE},e.label),Xe.createElement(Ve,{color:Rx.DIM},e.description))),!r&&Xe.createElement(Ve,null," "))})));const f=r.slice(a,a+8);return Xe.createElement(_D,{title:"Rewind",subtitle:"Select a checkpoint to restore your session",gapAfterHeader:!1,footer:Xe.createElement(SA,null,"Press ",Xe.createElement(wA,null,"Enter")," to select ·"," ",Xe.createElement(wA,null,"Esc")," to cancel")},r.length>8&&Xe.createElement(Ge,{marginTop:1},Xe.createElement(Ve,{color:Rx.DIM},"Showing ",a+1,"-",Math.min(a+8,r.length)," ","of ",r.length)),Xe.createElement(Ge,{marginTop:1}),Xe.createElement(Ge,{flexDirection:"column"},f.map((e,t)=>{const n=a+t,s=o===n,i=e.filesModified.length,l=t===f.length-1,c=n===r.length-1;return Xe.createElement(Ge,{key:e.messageId,flexDirection:"column"},Xe.createElement(Ge,{flexDirection:"row"},Xe.createElement(Ve,{color:s?Ox:void 0},s?`${bI} `:" "),Xe.createElement(Ge,{flexDirection:"column"},Xe.createElement(Ge,null,Xe.createElement(Ve,{color:s?Ox:Rx.WHITE},truncateString2({text:e.prompt||"(no prompt)",maxChars:60})),Xe.createElement(Ve,{color:Rx.DIM}," • "),Xe.createElement(Ve,{color:Rx.DIM},getRelativeTimeString({timestamp:e.createdAt}),c&&" (latest)")),Xe.createElement(Ve,{color:Rx.DIM},zN(i)))),!l&&Xe.createElement(Ve,null," "))})))},"RewindSelector");Ex(),Px();var KN=["default","no-tools","user-only","labeled-only","all"],YN={default:"","no-tools":"[no-tools]","user-only":"[user]","labeled-only":"[labeled]",all:"[all]"};function nextFilterMode(e){const t=KN.indexOf(e);return KN[(t+1)%KN.length]}function previousFilterMode(e){const t=KN.indexOf(e);return KN[(t-1+KN.length)%KN.length]}function buildToolCallMap(e){const t=new Map,n=__name(e=>{for(const r of e){const{entry:e}=r;if("message"===e.type&&"assistant"===e.message.role)for(const n of e.message.content)"tool_use"===n.type&&t.set(n.id,{name:n.name,input:n.input});n(r.children)}},"visit");return n(e),t}function pathArgOf(e){const t=e.file_path??e.path;return"string"==typeof t?toRelativePath(t):"?"}function formatToolBracket(e){const{name:t,input:n}=e;if("read_file"===t){const e=pathArgOf(n),t=n.offset,r=n.limit;return"number"==typeof t&&"number"==typeof r?`[read: ${e}:${t}-${t+r}]`:`[read: ${e}]`}return"write_file"===t?`[write: ${pathArgOf(n)}]`:"edit_file"===t?`[edit: ${pathArgOf(n)}]`:"shell_command"===t?`[bash: ${truncateString2({text:"string"==typeof n.command?n.command:"",maxChars:50})}]`:"grep"===t?`[grep: /${"string"==typeof n.pattern?n.pattern:""}/ in ${"string"==typeof n.directory?toRelativePath(n.directory):"."}]`:"glob"===t?`[glob: ${"string"==typeof n.pattern?n.pattern:""}]`:"read_directory"===t?`[ls: ${pathArgOf(n)}]`:`[${t}: ${truncateString2({text:JSON.stringify(n),maxChars:40})}]`}function messageText5(e){return extractTextFromMessageContent({content:e.content})}function isToolResultOnlyUserMessage2(e){return"user"===e.role&&e.content.length>0&&e.content.every(e=>"tool_result"===e.type)}__name(nextFilterMode,"nextFilterMode"),__name(previousFilterMode,"previousFilterMode"),__name(buildToolCallMap,"buildToolCallMap"),__name(pathArgOf,"pathArgOf"),__name(formatToolBracket,"formatToolBracket"),__name(messageText5,"messageText"),__name(isToolResultOnlyUserMessage2,"isToolResultOnlyUserMessage");var JN=new Set(["label","custom","model_change","effort_change","session_info"]);function isContentlessAssistantMessage(e){return"message"===e.type&&"assistant"===e.message.role&&0===messageText5(e.message).trim().length}function passesFilter(e){const{entry:t,mode:n,isCurrentLeaf:r,hasLabel:o}=e;return"all"===n||("labeled-only"===n?o:"user-only"===n?"message"===t.type&&"user"===t.message.role&&!isToolResultOnlyUserMessage2(t.message)&&messageText5(t.message).trim().length>0:!JN.has(t.type)&&(!(isContentlessAssistantMessage(t)&&!r)&&("no-tools"!==n||"message"!==t.type||"user"!==t.message.role||!isToolResultOnlyUserMessage2(t.message))))}function buildVisibleNodes(e){const{nodes:t,mode:n,currentLeafId:r}=e,o=[];for(const e of t){const t=buildVisibleNodes({nodes:e.children,mode:n,currentLeafId:r});passesFilter({entry:e.entry,mode:n,isCurrentLeaf:e.entry.id===r,hasLabel:void 0!==e.label})?o.push({entry:e.entry,children:t,...void 0!==e.label?{label:e.label}:{},...void 0!==e.labelTimestamp?{labelTimestamp:e.labelTimestamp}:{}}):o.push(...t)}return o}function containsId(e,t){return e.entry.id===t||e.children.some(e=>containsId(e,t))}function reorderActiveFirst(e,t){for(const n of e)n.children=reorderActiveFirst(n.children,t);if(null===t)return e;const n=e.findIndex(e=>containsId(e,t));return n<=0?e:[e[n],...e.slice(0,n),...e.slice(n+1)]}function connectorGlyph(e){return e.folded?"⊞":e.foldable?"⊟":"─"}function buildRowPrefix(e){const{displayIndent:t,gutters:n,connectorVisible:r,isLast:o,folded:s,foldable:a}=e,i=r?t-1:-1,l=[];for(let e=0;e<3*t;e++){const t=Math.floor(e/3),r=e%3,c=n.find(e=>e.position===t);c?l.push(0===r&&c.show?"│":" "):t!==i?l.push(" "):0===r?l.push(o?"└":"├"):1===r?l.push(connectorGlyph({folded:s,foldable:a})):l.push(" ")}const c=s&&!r?"⊞ ":"";return l.join("")+c}function flattenVisibleTree(e){const{roots:t,activePathIds:n,foldedNodes:r}=e,o=[],s=new Map,a=t.length>1;function visit(e){const{node:t,parentId:i,indent:l,justBranched:c,isLast:d,gutters:u}=e,m=t.children.map(e=>e.entry.id);s.set(t.entry.id,m);const p=r.has(t.entry.id),g=t.children.length>0,h=e.showConnector&&!e.isVirtualRootChild,f=a?Math.max(0,l-1):l;if(o.push({id:t.entry.id,entry:t.entry,parentId:i,prefix:buildRowPrefix({displayIndent:f,gutters:u,connectorVisible:h,isLast:d,folded:p,foldable:g}),isActivePath:n.has(t.entry.id),isBranchChild:e.showConnector,hasVisibleChildren:g,...void 0!==t.label?{label:t.label}:{},...void 0!==t.labelTimestamp?{labelTimestamp:t.labelTimestamp}:{}}),p)return;const y=t.children.length>1,S=y||c&&l>0?l+1:l,w=h?[...u,{position:Math.max(0,f-1),show:!d}]:u;t.children.forEach((e,n)=>{visit({node:e,parentId:t.entry.id,indent:S,justBranched:y,showConnector:y,isLast:n===t.children.length-1,gutters:w,isVirtualRootChild:!1})})}return __name(visit,"visit"),t.forEach((e,n)=>{visit({node:e,parentId:null,indent:a?1:0,justBranched:a,showConnector:a,isLast:n===t.length-1,gutters:[],isVirtualRootChild:a})}),{rows:o,visibleChildrenIds:s}}function normalizeRowText(e){return truncateString2({text:e.replace(/[\n\t]+/g," ").trim(),maxChars:200})}function describeRow(e,t){if("message"===e.type){const{message:n}=e;if("user"===n.role){if(isToolResultOnlyUserMessage2(n)){const e=n.content.find(e=>"tool_result"===e.type),r=e?t.get(e.tool_use_id):void 0;return{text:r?formatToolBracket(r):"[tool result]",color:Rx.DIM}}return{text:`user: ${normalizeRowText(messageText5(n))}`,color:Rx.CYAN}}const r=messageText5(n).trim();return r?{text:`assistant: ${normalizeRowText(r)}`,color:Rx.GREEN}:{text:"assistant: (no content)",color:Rx.DIM}}return"compaction"===e.type?{text:`[compaction: ${Math.round(e.tokensBefore/1e3)}k tokens]`,color:Rx.CYAN}:"branch_summary"===e.type?{text:`[branch summary]: ${normalizeRowText(e.summary)}`,color:Rx.YELLOW}:"custom_message"===e.type?{text:`[${e.customType}]: ${normalizeRowText(extractTextFromMessageContent({content:e.content}))}`,color:Rx.MAGENTA}:"custom"===e.type?{text:`[custom: ${e.customType}]`,color:Rx.DIM}:"model_change"===e.type?{text:`[model: ${e.model}]`,color:Rx.DIM}:"effort_change"===e.type?{text:`[effort: ${e.effort}]`,color:Rx.DIM}:"label"===e.type?{text:`[label: ${e.label??"(cleared)"}]`,color:Rx.DIM}:{text:e.name?`[title: ${e.name}]`:"[title: (empty)]",color:Rx.DIM}}__name(isContentlessAssistantMessage,"isContentlessAssistantMessage"),__name(passesFilter,"passesFilter"),__name(buildVisibleNodes,"buildVisibleNodes"),__name(containsId,"containsId"),__name(reorderActiveFirst,"reorderActiveFirst"),__name(connectorGlyph,"connectorGlyph"),__name(buildRowPrefix,"buildRowPrefix"),__name(flattenVisibleTree,"flattenVisibleTree"),__name(normalizeRowText,"normalizeRowText"),__name(describeRow,"describeRow");var QN={compaction:"compaction",branch_summary:"branch summary",session_info:"title",model_change:"model",effort_change:"effort",custom:"custom",custom_message:"custom",label:"label"};function searchableText(e){const{entry:t,label:n,toolCallMap:r}=e,o=[t.type];n&&o.push(n);const s=QN[t.type];if(s&&o.push(s),"message"===t.type)if(o.push(t.message.role),isToolResultOnlyUserMessage2(t.message)){const e=t.message.content.find(e=>"tool_result"===e.type),n=e?r.get(e.tool_use_id):void 0;if(n){o.push(n.name);const e=n.input.command;"string"==typeof e&&o.push(e);const t=n.input.file_path??n.input.path;"string"==typeof t&&o.push(t)}}else o.push(messageText5(t.message));return"branch_summary"===t.type&&o.push(t.summary),"custom_message"===t.type&&o.push(extractTextFromMessageContent({content:t.content})),o.join(" ").toLowerCase()}function matchesSearch(e,t){const n=t.toLowerCase().split(/\s+/).filter(Boolean);return 0===n.length||n.every(t=>e.includes(t))}function formatLabelTimestamp(e,t){const n=new Date(e),r=__name(e=>String(e).padStart(2,"0"),"pad"),o=`${r(n.getHours())}:${r(n.getMinutes())}`;return n.getFullYear()===t.getFullYear()&&n.getMonth()===t.getMonth()&&n.getDate()===t.getDate()?o:n.getFullYear()===t.getFullYear()?`${n.getMonth()+1}/${n.getDate()} ${o}`:`${String(n.getFullYear()).slice(-2)}/${n.getMonth()+1}/${n.getDate()} ${o}`}function previousSegmentStart(e,t,n){let r=t.get(n),o=null;for(;r?.parentId;){const e=t.get(r.parentId);if(!e)break;if(e.isBranchChild)return e.id;o=e.id,r=e}return o}function nextSegmentStart(e,t,n){const r=t.get(n)?.[0];if(void 0===r)return null;let o=r;for(let n=0;n<1e4;n++){const n=e.get(o);if(!n||n.isBranchChild)return o;const r=t.get(o)?.[0];if(void 0===r)return o;o=r}return o}function resolveTargetLocally(e){const t=e.byId.get(e.entryId);return t?"message"===t.type&&"user"===t.message.role&&messageText5(t.message).trim().length>0||"custom_message"===t.type?{targetId:t.parentId}:{targetId:t.id}:{targetId:e.entryId}}function isOnPathLocally(e){if(null===e.ancestorId)return!0;if(null===e.targetId)return!1;let t=e.targetId;const n=new Set;for(;null!==t;){if(t===e.ancestorId)return!0;if(n.has(t))return!1;n.add(t);const r=e.byId.get(t);t=r?r.parentId:null}return!1}__name(searchableText,"searchableText"),__name(matchesSearch,"matchesSearch"),__name(formatLabelTimestamp,"formatLabelTimestamp"),__name(previousSegmentStart,"previousSegmentStart"),__name(nextSegmentStart,"nextSegmentStart"),__name(resolveTargetLocally,"resolveTargetLocally"),__name(isOnPathLocally,"isOnPathLocally");var XN=[{value:"none",label:"No summary"},{value:"summarize",label:"Summarize"},{value:"custom",label:"Summarize with custom prompt"}],ZN=__name(({tree:e,currentLeafId:t,initialSelectedId:n,initialFilterMode:r,branchSummarySkipPrompt:o,onSelect:s,onAbortSummary:a,onCancel:i,onLabelChange:l})=>{const[c,d]=et(r),[u,m]=et(""),[p,g]=et(()=>new Set),h=__name(e=>{d(e),g(new Set)},"applyFilterMode"),f=__name(e=>{h(t=>t===e?"default":e)},"toggleFilterMode"),[y,S]=et(!1),[w,k]=et("browse"),[v,C]=et(""),[b,E]=et(""),[T,P]=et(0),[M,x]=et(null),[I,A]=et(0),[R,O]=et(0),[D,L]=et(n??t??void 0),N=useTerminalHeight(),$=rt(()=>{const t=new Map,n=__name(e=>{for(const r of e)t.set(r.entry.id,r.entry),n(r.children)},"visit");return n(e),t},[e]),_=rt(()=>buildToolCallMap(e),[e]),F=rt(()=>{const e=new Set;let n=t;for(;null!==n;){e.add(n);const t=$.get(n);n=t?t.parentId:null}return e},[$,t]),U=rt(()=>reorderActiveFirst(buildVisibleNodes({nodes:e,mode:c,currentLeafId:t}),t),[e,c,t]),{rows:j,visibleChildrenIds:B}=rt(()=>flattenVisibleTree({roots:U,activePathIds:F,foldedNodes:p}),[U,F,p]),W=rt(()=>new Map(j.map(e=>[e.id,e])),[j]),H=rt(()=>u?j.filter(e=>matchesSearch(searchableText({entry:e.entry,label:e.label,toolCallMap:_}),u)):j,[j,u,_]);nt(()=>{if(0===H.length)return void A(0);let e=D;for(;e;){const t=H.findIndex(t=>t.id===e);if(t>=0)return void A(t);e=$.get(e)?.parentId}A(H.length-1)},[H,c,u,$]);const G=H[I]?.id,V=tt(!1);nt(()=>{V.current?G&&L(G):V.current=!0},[G]);const z=N-1,q=Math.max(6,z-10);nt(()=>{O(e=>clampScrollOffset({cursor:I,total:H.length,maxVisible:q,currentOffset:e}))},[I,H.length,q]);const K=H[I],Y=__name(e=>{L(e.entryId),e.summarize?(k("summarizing"),s(e).then(e=>{e.aborted&&k("browse")})):s(e)},"commitSelection"),J=__name(()=>{if(!K)return;L(K.id);const{targetId:e}=resolveTargetLocally({byId:$,entryId:K.id});isOnPathLocally({byId:$,ancestorId:t,targetId:e})||o?Y({entryId:K.id,summarize:!1}):(x(K.id),P(0),k("confirm-summary"))},"handleEnterInBrowse");Ye((e,t)=>{if("summarizing"===w)return void(t.escape&&a());if("label"===w)return void(t.escape&&k("browse"));if("custom-prompt"===w)return void(t.escape&&k("confirm-summary"));if("confirm-summary"===w){if(t.escape)return void k("browse");if(t.upArrow)return void P(e=>Math.max(0,e-1));if(t.downArrow)return void P(e=>Math.min(XN.length-1,e+1));if(t.return&&M){const e=XN[T]?.value;"none"===e?(Y({entryId:M,summarize:!1}),k("browse")):"summarize"===e?Y({entryId:M,summarize:!0}):(E(""),k("custom-prompt"))}return}const n=getKeybindings();if(t.escape)return u?void m(""):void i();if(t.upArrow)A(e=>0===H.length?0:(e-1+H.length)%H.length);else if(t.downArrow)A(e=>0===H.length?0:(e+1)%H.length);else if(!t.leftArrow||t.ctrl||t.meta)if(!t.rightArrow||t.ctrl||t.meta){if((keybindingMatches(n,"app.tree.foldOrPrevBranch",e,t)||isWordLeftSequence(e)||(t.ctrl||t.meta)&&t.leftArrow)&&K){if(K.hasVisibleChildren&&!p.has(K.id))return void g(e=>new Set(e).add(K.id));const e=previousSegmentStart(0,W,K.id);if(e&&L(e),e){const t=H.findIndex(t=>t.id===e);t>=0&&A(t)}return}if((keybindingMatches(n,"app.tree.unfoldOrNextBranch",e,t)||isWordRightSequence(e)||(t.ctrl||t.meta)&&t.rightArrow)&&K){if(p.has(K.id))return void g(e=>{const t=new Set(e);return t.delete(K.id),t});const e=nextSegmentStart(W,B,K.id);if(e){L(e);const t=H.findIndex(t=>t.id===e);t>=0&&A(t)}return}if(t.return)J();else if(t.ctrl&&"O"===e||keybindingMatches(n,"app.tree.filter.cycleBack",e,t))h(e=>previousFilterMode(e));else if(keybindingMatches(n,"app.tree.filter.cycle",e,t))h(e=>nextFilterMode(e));else if(keybindingMatches(n,"app.tree.filter.default",e,t))h("default");else if(keybindingMatches(n,"app.tree.filter.noTools",e,t))f("no-tools");else if(keybindingMatches(n,"app.tree.filter.userOnly",e,t))f("user-only");else if(keybindingMatches(n,"app.tree.filter.labeledOnly",e,t))f("labeled-only");else if(keybindingMatches(n,"app.tree.filter.all",e,t))f("all");else{if("L"===e||keybindingMatches(n,"app.tree.label",e,t)){if(!K)return;return C(K.label??""),void k("label")}"T"===e||keybindingMatches(n,"app.tree.labelTime",e,t)?S(e=>!e):t.backspace||t.delete?u&&m(e=>e.slice(0,-1)):!t.ctrl&&!t.meta&&!t.tab&&e&&1===e.length&&e>=" "&&m(t=>t+e)}}else A(e=>Math.min(H.length-1,e+q));else A(e=>Math.max(0,e-q))});const Q=__name(e=>{if(K){const t=e.trim();l({entryId:K.id,label:t.length>0?t:void 0})}k("browse")},"submitLabel"),X=__name(e=>{if(M){const t=e.trim();Y({entryId:M,summarize:!0,...t.length>0?{customInstructions:t}:{}})}},"submitCustomPrompt");if("summarizing"===w)return Xe.createElement(_D,{title:"/tree",gapAfterHeader:!1},Xe.createElement(Ve,{color:Rx.CYAN},"Summarizing abandoned branch… (Esc to cancel)"));if("confirm-summary"===w)return Xe.createElement(_D,{title:"/tree",subtitle:"You're leaving work behind on this branch. Summarize it before jumping?",hint:"enter confirm · esc back"},Xe.createElement(Ge,{flexDirection:"column"},XN.map((e,t)=>Xe.createElement(Ve,{key:e.value,color:t===T?Ox:Rx.WHITE,bold:t===T},t===T?`${bI} `:" ",e.label))));if("custom-prompt"===w)return Xe.createElement(_D,{title:"/tree",subtitle:"Focus instructions for the summary:",gapAfterHeader:!1,hint:"enter confirm · esc back"},Xe.createElement(TextInput,{value:b,focus:!0,prefix:`${bI} `,prefixColor:"cyan",onChange:E,onSubmit:X}));if("label"===w&&K)return Xe.createElement(_D,{title:"/tree",subtitle:"Label:",gapAfterHeader:!1,hint:"enter save (empty clears) · esc cancel"},Xe.createElement(TextInput,{value:v,focus:!0,prefix:`${bI} `,prefixColor:"cyan",onChange:C,onSubmit:Q}));const Z=H.slice(R,R+q),ee=new Date,te=YN[c];return Xe.createElement(Ge,{flexDirection:"column",paddingLeft:1,width:"100%"},Xe.createElement(Ve,{color:Ox,bold:!0},"/tree"),Xe.createElement(Ge,{marginBottom:1,width:"100%"},Xe.createElement(kI,{query:u,resultCount:u?H.length:void 0,placeholder:"Type to search…"})),0===H.length?Xe.createElement(Ge,{marginBottom:1},Xe.createElement(PO,{message:"No entries found"})):Xe.createElement(Ge,{flexDirection:"column"},Z.map((e,t)=>{const n=R+t===I,{text:r,color:o}=describeRow(e.entry,_);return Xe.createElement(Ve,{key:e.id,backgroundColor:n?eI:void 0,bold:n,wrap:"truncate-end"},n?`${bI} `:" ",Xe.createElement(Ve,{color:Zx},e.prefix),e.isActivePath?Xe.createElement(Ve,{color:Ox},"• "):null,void 0!==e.label?Xe.createElement(Ve,{color:Rx.YELLOW},"[",e.label,"]"," "):null,y&&e.labelTimestamp?Xe.createElement(Ve,{color:Rx.DIM},formatLabelTimestamp(e.labelTimestamp,ee)," "):null,Xe.createElement(Ve,{color:o},r))})),Xe.createElement(Ge,{marginTop:1},Xe.createElement(Ve,{color:Rx.DIM},"(",0===H.length?0:I+1,"/",H.length,")",te?` ${te}`:"",y?" [+label time]":"")),Xe.createElement(Ge,{flexDirection:"column"},Xe.createElement(SA,null,"↑/↓ move · ←/→ page · tab / alt+←/→ branch · shift+L label · shift+T label time"),Xe.createElement(SA,null,"filters ctrl+d/t/u/l/a · cycle ctrl+o · type to search · rebind via ~/.commandcode/keybindings.json")))},"TreeSelector");Ex(),Px();var e$=[{label:"Complete brief",desc:"If the target, goal, audience, or artifact is clear, act without asking."},{label:"Composition",desc:"Choose layout from the work pattern: monitor, operate, compare, configure, learn, decide, or explore."},{label:"Scope",desc:"Broad prompts get the full mode pass. Narrow prompts stay narrow."},{label:"Truth",desc:"Only claim changes that exist in files and are visible or verifiable."},{label:"Templates",desc:"design-html and report-html are documentation templates, not UI inspiration."},{label:"Reports",desc:"Follow-up modes read markdown reports, apply relevant findings, then still run their own full mode pass."}],t$=['/design redesign "Make this dashboard feel like an operator console"','/design motion "Animate the whole page and add missing interactions"','/design checkup "Audit this UI and generate the design report"','/design "Build a landing page for a privacy-first contract review tool"'],n$=__name(({onCancel:e})=>(Ye((t,n)=>{n.escape&&e()}),Xe.createElement(Ge,{flexDirection:"column",paddingLeft:2,paddingRight:2},Xe.createElement(Ge,{marginBottom:1,flexDirection:"column"},Xe.createElement(Ve,{bold:!0,color:Ox},"Use"),Xe.createElement(Ge,{paddingLeft:2,flexDirection:"column"},Xe.createElement(Ve,{color:Rx.DIM},'/design <mode> "target or request"'),Xe.createElement(Ve,{color:Rx.DIM},'/design "freeform request" also works. The closest mode is inferred.'))),Xe.createElement(Ge,{marginBottom:1,flexDirection:"column"},Xe.createElement(Ve,{bold:!0,color:Ox},"Modes"),Xe.createElement(Ge,{paddingLeft:2,flexDirection:"column"},Dh.map(e=>Xe.createElement(Ge,{key:e.name,columnGap:2},Xe.createElement(Ge,{width:18,flexShrink:0},Xe.createElement(Ve,{color:Rx.CYAN},"/design ",e.name)),Xe.createElement(Ge,null,Xe.createElement(Ve,{color:Rx.DIM},e.description)))))),Xe.createElement(Ge,{marginBottom:1,marginTop:1,flexDirection:"column"},Xe.createElement(Ve,{bold:!0,color:Ox},"Working rules"),Xe.createElement(Ge,{paddingLeft:2,flexDirection:"column"},e$.map(e=>Xe.createElement(Ge,{key:e.label,columnGap:2},Xe.createElement(Ge,{width:16,flexShrink:0},Xe.createElement(Ve,{color:Rx.CYAN},e.label)),Xe.createElement(Ge,null,Xe.createElement(Ve,{color:Rx.DIM},e.desc)))))),Xe.createElement(Ge,{marginBottom:1,marginTop:1,flexDirection:"column"},Xe.createElement(Ve,{bold:!0,color:Ox},"Quick examples:"),Xe.createElement(Ge,{paddingLeft:2,flexDirection:"column"},t$.map(e=>Xe.createElement(Ve,{key:e,color:Rx.DIM},e)))),Xe.createElement(Ge,{marginTop:1},Xe.createElement(Ve,{color:Rx.DIM},"Press Esc to close. Type /design help anytime to return.")))),"DesignGuide");Ex(),Px(),Ex(),Ex();var r$=__name(({error:e,traceId:t})=>Xe.createElement(Ge,{padding:1},Xe.createElement(TO,{title:"Error initializing onboarding:"},e,t&&Xe.createElement(Ve,{color:Rx.DIM},"\n\n","Trace ID: ",t),"\n\n","Continuing without onboarding...")),"OnboardingError");Ex(),Ex();var o$=__name(()=>Xe.createElement(Ve,null,"Skip"),"SkipOptionText"),s$=__name(({sessionCount:e,agentSessions:t,onImport:n,onSkip:r})=>{const[o,s]=et(1);return Ye((e,t)=>{t.escape?r():"n"!==e&&"N"!==e?t.upArrow||t.downArrow?s(e=>1===e?2:1):"1"!==e?"2"!==e?t.return&&(1===o?n():r()):r():n():dismissOnboardingForeverForProject().then(()=>r())}),Xe.createElement(Ge,{flexDirection:"column",borderStyle:"single",borderColor:Dx.TEXT,paddingX:1,paddingY:0},Xe.createElement(Ve,{color:Dx.TEXT,bold:!0},"Build Your Coding Taste"),Xe.createElement(Ge,{marginTop:1,flexDirection:"column"},Xe.createElement(Ve,null,"Found"," ",1===e?"one session":`${e} sessions`," ","from"," ",t.map(e=>e.displayName).join(", ")," ","for this project."),Xe.createElement(Ge,{marginTop:1},Xe.createElement(Ve,null,"Analyze"," ",1===e?"that session":"those sessions"," ","to build your coding taste package?"))),Xe.createElement(Ge,{marginTop:1,flexDirection:"column"},Xe.createElement(Ge,null,Xe.createElement(Ve,{color:1===o?Dx.TEXT:Rx.GRAY},1===o?it.pointer:" "," 1. Yes, learn (recommended)")),Xe.createElement(Ge,null,Xe.createElement(Ve,{color:2===o?Dx.TEXT:Rx.GRAY},2===o?it.pointer:" "," 2."," ",Xe.createElement(o$,null)))),Xe.createElement(Ge,{marginTop:1},Xe.createElement(Ve,{color:Rx.DIM},"↑↓ · "),Xe.createElement(Ve,{color:Yx.CODE},"enter"),Xe.createElement(Ve,{color:Rx.DIM}," ok · "),Xe.createElement(Ve,{color:Yx.CODE},"esc"),Xe.createElement(Ve,{color:Rx.DIM}," skip · "),Xe.createElement(Ve,{color:Yx.CODE},"n"),Xe.createElement(Ve,{color:Rx.DIM}," never")))},"ImportChoice"),a$=__name(({step:e,conditions:t,onImportStart:n,onImportComplete:r,onImportError:o,onErrorDismiss:s,onSkip:a})=>"asking"===e?t&&"has_sessions"===t.reason?Xe.createElement(s$,{sessionCount:t.sessionCount,agentSessions:t.agentSessions,onImport:n,onSkip:a}):null:"learning"===e?Xe.createElement(rD,{onComplete:r,onCancel:a,onError:o,onErrorDismiss:s}):null,"OnboardingStepRenderer"),i$=__name(({onComplete:e,autoLearn:t=!1})=>{nt(()=>(dlog("[UI:Onboarding] mounted"),()=>{dlog("[UI:Onboarding] unmounted")}),[]);const{conditions:n,error:r,traceId:o,isLoading:s}=HO({autoLearn:t,onShouldSkip:e}),{step:a,setStep:i}=GO({conditions:n,autoLearn:t}),{handleImportStart:l,handleImportComplete:c,handleImportError:d,handleErrorDismiss:u,handleSkip:m}=VO({onStepChange:__name(e=>{i(e)},"onStepChange"),onError:__name(()=>{},"onError"),onCompleteCallback:e});return dlog(`[UI:Onboarding] render: ${a}${n?.reason?` (${n.reason})`:""}${r?" ERROR":""}`),s?null:r?Xe.createElement(r$,{error:r,traceId:o}):"done"===a||"asking"!==a&&"learning"!==a?null:Xe.createElement(a$,{step:a,conditions:n,onImportStart:l,onImportComplete:c,onImportError:d,onErrorDismiss:u,onSkip:m})},"TasteOnboarding");Ex(),Px();var l$=[{label:"Auto theme",value:"auto",description:"Automatically detect your terminal background and use light or dark to match."},{label:"Dark theme",value:"dark",description:"Use purple accent colors on dark backgrounds."},{label:"Light theme",value:"light",description:"Use higher-contrast colors for white terminal backgrounds."}];function labelFor(e,t){return"auto"===e.value?`${e.label} (${t})`:e.label}__name(labelFor,"labelFor");var c$=__name(({onSelect:e,onCancel:t})=>{const[n]=et(()=>getCliTheme()),[r]=et(()=>resolveCliTheme("auto")),o=rt(()=>l$.map(e=>({...e,label:labelFor(e,r)})),[r]),s=__name(t=>{const n=o.find(e=>e.value===t.value)?.value;n&&e(n)},"handleSelect");Ye((e,n)=>{n.escape&&t()});const a=o.findIndex(e=>e.value===n),i=o.find(e=>e.value===n)?.label??`${n} theme`;return Xe.createElement(_D,{title:"Select a theme",subtitle:`Choose the color palette for this terminal · currently ${i}`,footer:Xe.createElement(Ve,{italic:!0,color:Rx.DIM},"Press ",Xe.createElement(Ve,{bold:!0},"Esc")," to cancel")},Xe.createElement(SelectInput,{items:o,onSelect:s,initialIndex:a>=0?a:0,indicatorComponent:UD,itemComponent:({isSelected:e,label:t})=>{const r=o.findIndex(e=>e.label===t),s=o[r],a=s?.value===n,i=r===o.length-1;return Xe.createElement(Ge,{flexDirection:"column",marginBottom:i?0:1},Xe.createElement(Ge,null,Xe.createElement(jD,{isSelected:e,isActive:a,idleColor:Rx.DIM},` ${r+1}. ${s?.label??t}`),a&&Xe.createElement(WD,null)),Xe.createElement(HD,null,s?.description??""))}}))},"ThemeSelector"),d$=Ze(__name(function MainView2({feed:e,liveEntries:t,queuedMessages:n,isCmdCodeBusy:r,staticKey:o,setStaticKey:s,transcriptMode:a,tasteOnboardingEntryId:i,autoLearnTaste:l,showTasteSkipBanner:c,showZdrNotice:d,modelNotice:u,retryAttempt:m,input:p,setInput:g,fileSearchQuery:h,setFileSearchQuery:f,showFileList:y,setShowFileList:S,showProviderSelector:w,showModelSelector:k,showEffortSelector:v,showMemorySelector:C,showMcpManager:b,showAgentsConfig:E,showRewindSelector:T,showTreeSelector:P,treeFilterMode:M,treeBranchSummarySkipPrompt:x,showLoginOverlay:I,showUsageOverlay:A,showAddDirModal:R,showCompactModeSelector:O,showThemeSelector:D,authComponentInfo:L,status:N,currentProvider:$,currentModel:_,showProviderNotification:F,shareInfo:U,showShareNotification:j,unshareNotificationMessage:B,updateStatus:W,updateFailedInfo:H,creditWarning:G,permissionMode:V,hintMessage:z,pendingExitKey:q,interactionTokens:K,contextUsage:Y,tasteLearningOn:J,historyManagerRef:Q,executionState:X,sessionId:Z,onSubmit:ee,onCommand:te,onToggleAutoAccept:ne,onResetPendingExitKey:re,onDoubleEscapeEmpty:oe,onTasteOnboardingComplete:se,permissionPanel:ae,questionPanel:ie,designSuggestionPanel:le,onRewindSelect:ce,onRewindCancel:de,onTreeSelect:ue,onTreeCancel:me,onTreeLabel:pe,onTreeAbortSummary:ge,onLoginComplete:he,onLoginCancel:fe,setShowProviderSelector:ye,setShowModelSelector:Se,setShowEffortSelector:we,setShowMemorySelector:ke,setShowMcpManager:ve,setShowAgentsConfig:Ce,setShowAddDirModal:be,setShowUsageOverlay:Ee,handleProviderSelect:Te,handleProviderCancel:Pe,handleModelSelect:Me,handleModelCancel:xe,handleCompactModeSelect:Ie,handleCompactModeCancel:Ae,handleThemeSelect:Re,handleThemeCancel:Oe,handleAuthSuccess:De,handleAuthCancel:Le,showDesignGuide:Ne,setShowDesignGuide:$e}){const _e=rt(()=>e.filter(e=>"taste-onboarding"!==e.role),[e]),Fe=ot(()=>$e(!1),[$e]),Ue=useTerminalWidth(),[je,Be]=et(!1),[We,He]=et(!1),ze=tt(null);ze.current=r?ze.current??Date.now():null;const qe=rt(()=>"off"===a?_e:projectTranscriptWindow({feed:_e,mode:a}),[_e,a]),Ke=rt(()=>"off"===a?0:Math.max(0,_e.length-qe.length),[_e.length,qe.length,a]),Ye=rt(()=>0===Ke?qe:qe.filter(e=>"user"!==e.role),[qe,Ke]),Je=ot(()=>Ce(!1),[Ce]),Qe=ot(()=>ke(!1),[ke]),Ze=ot(()=>ve(!1),[ve]),nt=ot(()=>be(!1),[be]),st=ot(()=>Se(!0),[Se]),at=ot(()=>we(!1),[we]),it=ot(()=>{hardResetForResize(),s(e=>e+1)},[s]),lt=!("off"!==a||ae||ie||le||w||k||v||L||C||b||E||T||P||I||A||R||O||D||Ne||i);return Xe.createElement(Ge,{flexDirection:"column",width:"100%"},Xe.createElement(RN,{staticKey:o,feed:Ye,showHeader:!0,expandedToolOutput:"off"!==a,currentModel:_,currentProvider:$,hiddenCount:Ke}),i&&Xe.createElement(i$,{onComplete:se,autoLearn:l}),c&&Xe.createElement(TasteSkipMessage,null),d&&Xe.createElement(ZdrPausedMessage,null),u&&Xe.createElement(ModelNoticeMessage,{text:u}),t.map(e=>e.metadata?.isAgent?Xe.createElement(DN,{key:e.id,entry:e}):Xe.createElement(Ge,{key:e.id,marginBottom:1,width:"90%"},Xe.createElement(FeedEntryView,{entry:e,expandedToolOutput:"off"!==a}))),Xe.createElement(RetryMessage,{attempt:m}),"off"===a&&!i&&!We&&Xe.createElement(TodoPanel,{active:r}),le,ie,ae,"off"!==a&&Xe.createElement(Ge,{flexDirection:"column",marginTop:1},Xe.createElement(Ge,null,Xe.createElement(Ve,{color:Rx.DIM},"─".repeat(Ue))),Xe.createElement(Ge,{paddingRight:1},Xe.createElement(Ve,{backgroundColor:_x.BG,color:_x.FG,bold:!0},`${PI}DETAILED TRANSCRIPT${PI}`),Xe.createElement(Ve,{color:Rx.DIM}," · "),Xe.createElement(Ve,{bold:!0},"ctrl+o"),Xe.createElement(Ve,{color:Rx.DIM}," to toggle"),Xe.createElement(Ve,{color:Rx.DIM}," · "),Xe.createElement(Ve,{bold:!0},UC?"ctrl+y":"ctrl+e"),Xe.createElement(Ve,{color:Rx.DIM}," ","to"," ","limited"===a?"show all":"collapse"),Xe.createElement(Ve,{color:Rx.DIM}," · "),Xe.createElement(Ve,{bold:!0},"esc"),Xe.createElement(Ve,{color:Rx.DIM}," to exit"))),lt&&Xe.createElement(Xe.Fragment,null,Xe.createElement(BackgroundTasksPanel,{onExpandedChange:Be}),Xe.createElement(TodosManagerPanel,{sessionId:Z,onExpandedChange:He}),Xe.createElement(yN,{queuedMessages:n,sessionId:Z,isProcessing:r,processingStartedAt:ze.current,executionState:X,status:N,input:p,setInput:g,onSubmit:ee,showFileList:y,setShowFileList:S,fileSearchQuery:h,setFileSearchQuery:f,onCommand:te,outputTokens:K,contextUsage:Y,tasteLearningOn:J,shareInfo:U,showShareNotification:j,unshareNotificationMessage:B,updateStatus:W,updateFailedInfo:H,creditWarning:G,currentProvider:$,currentModel:_,showProviderInfo:F,permissionMode:V,onToggleAutoAccept:ne,hintMessage:z,historyManager:Q.current,pendingExitKey:q,onResetPendingExitKey:re,onDoubleEscapeEmpty:oe,retryAttempt:m,onAltP:st,renderKey:o,inputActive:!je&&!We,inactiveHint:We?"Todos focused · ↑/↓ to select · c to complete · x to remove · a all done · Esc to go back to feed":void 0})),w&&Xe.createElement(Ge,{marginY:1},Xe.createElement(VN,{onSelect:Te,onCancel:Pe,currentProvider:$})),k&&Xe.createElement(Ge,{marginY:1},Xe.createElement(PL,{onSelect:Me,onCancel:xe,currentModel:_,currentProvider:$,refreshBanner:it})),v&&Xe.createElement(Ge,{marginY:1},Xe.createElement(GN,{currentModel:_,sessionId:Z,onClose:at,refreshBanner:it})),Ne&&Xe.createElement(Ge,{marginY:1},Xe.createElement(n$,{onCancel:Fe})),O&&Xe.createElement(Ge,{marginY:1},Xe.createElement(JL,{onSelect:Ie,onCancel:Ae})),D&&Xe.createElement(Ge,{marginY:1},Xe.createElement(c$,{onSelect:Re,onCancel:Oe})),E&&Xe.createElement(Ge,{marginY:1},Xe.createElement(WL,{onCancel:Je})),C&&Xe.createElement(Ge,{marginY:1},Xe.createElement(vN,{onClose:Qe})),b&&Xe.createElement(Ge,{marginY:1},Xe.createElement(kN,{onClose:Ze,mcp:NO(Z)?.mcp})),T&&NO(Z)&&Xe.createElement(Ge,{marginY:1},Xe.createElement(qN,{checkpoints:[...NO(Z).listCheckpoints()],onSelect:ce,onCancel:de})),P&&NO(Z)&&Xe.createElement(Ge,{marginY:1},Xe.createElement(ZN,{tree:NO(Z).getSessionTree(),currentLeafId:NO(Z).getSessionLeafId(),initialFilterMode:M,branchSummarySkipPrompt:x,onSelect:ue,onAbortSummary:ge,onCancel:me,onLabelChange:pe})),L&&Xe.createElement(Ge,{marginY:1},Xe.createElement(L.Component,{onSuccess:De,onCancel:Le})),I&&Xe.createElement(Ge,{marginY:1},Xe.createElement(SN,{onComplete:he,onCancel:fe})),R&&Xe.createElement(Ge,{marginY:1},Xe.createElement(kL,{onClose:nt})))},"MainView"));function useFeatureModelCatalog(){const e=rt(()=>isInternalTeamFlagEnforced(),[]),[t,n]=et(()=>getCachedBillingContext());nt(()=>{if(t)return;let e=!0;return getBillingContext().then(t=>{e&&n(t)}),()=>{e=!1}},[t]);const[r,o]=et(null);nt(()=>{let e=!0;return getConfiguredProvider().then(t=>{e&&o(t)}),()=>{e=!1}},[]);const s=e?vo.anthropic.id:Fr.COMMAND,a=r??s,i=rt(()=>buildLaneModelPickerGroups({isCoMode:e,activeLane:a}),[e,a]),l=rt(()=>filterModelPickerGroupsByPlan({groups:i,billing:t}),[i,t]),c=rt(()=>flattenModelPickerGroups(l).map(e=>({id:e.model.id,label:getModelDisplayName(e.model.id)})),[l]);return{isCoMode:e,groups:l,catalog:c,resolved:null!==t}}Ex(),Ex(),Px(),Ex(),Px(),__name(useFeatureModelCatalog,"useFeatureModelCatalog"),Ex(),Px();var u$=__name(({featureLabel:e,defaultLabel:t,currentModelId:n,modelFilter:r,onPick:o,onBack:s})=>{const[a,i]=et(""),{isCoMode:l,groups:c,resolved:d}=useFeatureModelCatalog(),u=rt(()=>r?c.map(e=>({...e,models:e.models.filter(e=>r(e))})).filter(e=>e.models.length>0):c,[c,r]),m=rt(()=>filterModelPickerGroups(u,a),[u,a]),p=rt(()=>getModelLabelColumnWidth(u.flatMap(e=>e.models),{showDefaultBadge:!1}),[u]),g=rt(()=>[{kind:"reset"},...flattenModelPickerGroups(m).map(e=>({kind:"model",providerId:e.providerId,model:e.model}))],[m]),h=rt(()=>{if(!n)return 0;const e=g.findIndex(e=>"model"===e.kind&&e.model.id===n);return e>=0?e:0},[g,n]),{cursor:f}=useListNavigation({items:g,initialIndex:h,searchCursorIndex:1,searchQuery:a,onSearchChange:i,onSelect:__name(e=>{d&&o("reset"===e.kind?void 0:e.model.id)},"onSelect"),onCancel:s}),[y,S]=et(0),w=useTerminalHeight()-1,k=Math.max(4,w-13-2*m.length);nt(()=>{S(e=>clampScrollOffset({cursor:f,total:g.length,maxVisible:k,currentOffset:e}))},[f,g.length,k]);const v=y,C=y+k,b=0===v,E=windowModelGroups({groups:m,firstSectionBase:1,windowStart:v,windowEnd:C}),T=g.length>k;return Xe.createElement(_D,{title:`${e} › select model`,subtitle:Xe.createElement(Xe.Fragment,null,"Pick a model for this task, or reset it to the default."," ",createOSC8Link("https://commandcode.ai/docs/troubleshooting/faqs#why-do-i-see-small-background-requests","Why background requests?",!1)),footer:Xe.createElement(Ve,{italic:!0,color:Rx.DIM},"type to search · ↑/↓ navigate · enter select",a?" · esc to clear":" · esc back")},isCmdZdrEnabled()&&Xe.createElement(Ge,{marginBottom:1},Xe.createElement(Ve,{color:Rx.YELLOW},"Your pick is saved but stays paused until CMD_ZDR is unset.")),Xe.createElement(Ge,{marginBottom:2,flexDirection:"column",width:"100%"},Xe.createElement(kI,{query:a,resultCount:a?g.length-1:void 0,placeholder:"Type to search models..."})),d?Xe.createElement(Xe.Fragment,null,Xe.createElement(Ge,{flexDirection:"column"},b&&Xe.createElement(Ge,{flexDirection:"column"},Xe.createElement(Ve,{bold:!0,dimColor:!0},"Default"),Xe.createElement(Ge,null,Xe.createElement(Ve,{backgroundColor:0===f?eI:void 0,color:n?Rx.WHITE:Rx.GREEN},t," "),!n&&Xe.createElement(Ve,{color:Rx.GREEN},it.tick))),E.map(({group:e,groupWindow:t},r)=>Xe.createElement(Ge,{key:`${e.providerId}-${e.label}`,flexDirection:"column",marginTop:0!==r||b?1:0},Xe.createElement(Ve,{bold:!0,dimColor:!0},e.label),t.rows.map((r,o)=>Xe.createElement(bL,{key:`${e.providerId}-${e.label}-${r.id}`,model:r,providerId:e.providerId,isHighlighted:t.baseIndex+o===f,isCurrent:r.id===n,showProviderLabel:!!l&&void 0,showDefaultBadge:!1,labelColumnWidth:p}))))),T&&Xe.createElement(Ge,{marginTop:1},Xe.createElement(Ve,{color:Rx.DIM},"Showing ",v+1,"–",Math.min(C,g.length)," of"," ",g.length,v>0?" · ↑ more":"",C<g.length?" · ↓ more":""))):Xe.createElement(Ge,null,Xe.createElement(Ve,{color:Rx.DIM},"Loading available models…")))},"FeatureModelPicker");function clampDescriptionLines(e){const t=Math.max(e.width,10),{maxLines:n}=e,r=e.text.trim().split(/\s+/).filter(Boolean);if(0===r.length||n<=0)return[];const o=[];let s="",a=0,i=!1;for(;a<r.length;){let e=r[a];e.length>t&&(r.splice(a,1,e.slice(0,t),e.slice(t)),e=r[a]);const l=s?`${s} ${e}`:e;if(l.length<=t)s=l,a+=1;else if(o.push(s),s="",o.length===n){i=!0;break}}if(!i)return s&&o.push(s),o;const l=o[n-1];return o[n-1]=l.length>=t?`${l.slice(0,t-1)}…`:`${l}…`,o}function formatSettingValue(e){if(void 0!==e.displayValue)return e.displayValue;if("boolean"===e.kind)return!0===e.currentValue?"Enabled":"Disabled";const t=(e.options??[]).find(t=>t.value===e.currentValue);return t?t.label:String(e.currentValue)}function startsNewGroup(e,t){return 0===t||e[t-1]?.group!==e[t]?.group}__name(clampDescriptionLines,"clampDescriptionLines"),__name(formatSettingValue,"formatSettingValue"),__name(startsNewGroup,"startsNewGroup");var m$=__name(({onClose:e,staticKey:t,loadTasteStatus:n})=>{const[r,o]=et([]),[s,a]=et(!0),[i,l]=et(""),[c,d]=et(null),{catalog:u}=useFeatureModelCatalog(),m=ot(()=>listConfigSettings({modelCatalog:u}).then(e=>o(e)),[u]);nt(()=>{let e=!0;return listConfigSettings({modelCatalog:u}).then(t=>{e&&o(t)}).finally(()=>{e&&a(!1)}),()=>{e=!1}},[u]);const p=rt(()=>filterConfigSettings({settings:r,query:i}),[r,i]),g=rt(()=>r.reduce((e,t)=>Math.max(e,t.label.length),0)+2,[r]),h=__name((e,t)=>{"theme"!==e.id||"string"!=typeof t?"taste-learning"!==e.id&&e.id!==lm||n():applyTuiTheme(resolveCliTheme(t))},"applyLiveSideEffect"),f=__name(async e=>{if(e.featureModelKey)return void d(e);const t=nextSettingValue(e),n=r;o(n=>n.map(n=>n.id===e.id?{...n,currentValue:t}:n));try{await updateConfigSetting({id:e.id,value:t}),h(e,t)}catch{o(n)}},"selectSetting"),y=__name(async(e,t)=>{try{await updateConfigSetting({id:e.id,value:t??hm}),await m()}catch{}d(null)},"pickFeatureModel"),{cursor:S,error:w,setError:k}=useListNavigation({items:[...p],onSelect:__name(e=>{f(e)},"onSelect"),onReset:__name(e=>{v(e)},"onReset"),onCancel:e,searchQuery:i,onSearchChange:l,isActive:!s&&null===c,validate:__name(e=>e.locked?`${e.label} is locked by settings.local.json — edit that file to change it.`:null,"validate")}),v=__name(async e=>{if(e.locked)return void k(`${e.label} is locked by settings.local.json — edit that file to change it.`);if(e.currentValue===e.defaultValue)return void k(`${e.label} is already at its default.`);if(e.featureModelKey){try{await updateConfigSetting({id:e.id,value:e.defaultValue}),await m()}catch{}return}const t=r;o(t=>t.map(t=>t.id===e.id?{...t,currentValue:e.defaultValue}:t));try{await updateConfigSetting({id:e.id,value:e.defaultValue}),h(e,e.defaultValue)}catch{o(t)}},"resetSetting"),C=useTerminalWidth(),b=p[S],E=rt(()=>b?clampDescriptionLines({text:b.description,width:Math.max(20,C-2),maxLines:2}):[],[b,C]);if(c?.featureModelKey){const e=Ju.find(e=>e.key===c.featureModelKey),t="string"==typeof c.currentValue&&c.currentValue!==hm?c.currentValue:void 0;return Xe.createElement(u$,{featureLabel:c.label,defaultLabel:e?getFeatureDefaultLabel({meta:e,getModelDisplayName:getModelDisplayName}):"",currentModelId:t,modelFilter:"vision"===c.featureModelKey?e=>modelSupportsVision(e.id):void 0,onBack:()=>d(null),onPick:e=>{y(c,e)}})}return s?Xe.createElement(_D,{key:t,title:"Settings",gapAfterHeader:!1},Xe.createElement(CO,{label:"Loading settings"})):Xe.createElement(_D,{title:"Settings",footer:Xe.createElement(Ge,{flexDirection:"column",width:"100%"},Xe.createElement(Ge,{flexDirection:"column",height:2,width:"100%"},E.map((e,t)=>Xe.createElement(Ve,{key:t,color:Rx.DIM,wrap:"truncate-end"},e))),Xe.createElement(kA,{marginTop:0,hints:["type to filter","↑↓ navigate","enter to change","tab to reset",i?"esc to clear":"esc to close"]}))},Xe.createElement(Ge,{marginBottom:1,flexDirection:"column",width:"100%"},Xe.createElement(kI,{query:i,resultCount:i?p.length:void 0,placeholder:"Search settings..."})),0===p.length?Xe.createElement(Ge,{marginY:1},Xe.createElement(Ve,{color:Rx.GRAY},'No settings match "',i,'"')):Xe.createElement(Ge,{flexDirection:"column"},p.map((e,t)=>{const n=t===S?eI:void 0,r=!i&&startsNewGroup(p,t);return Xe.createElement(Xe.Fragment,{key:e.id},r&&Xe.createElement(Ge,{marginTop:0===t?0:1},Xe.createElement(Ve,{color:Rx.DIM,bold:!0},e.group)),Xe.createElement(Ge,null,Xe.createElement(Ve,{color:e.locked?Rx.DIM:Rx.WHITE,backgroundColor:n},e.label.padEnd(g)),Xe.createElement(Ve,{color:e.locked?Rx.DIM:Rx.GREEN,backgroundColor:n},formatSettingValue(e)),e.locked&&Xe.createElement(Ve,{color:Rx.DIM,backgroundColor:n}," (locked by settings.local.json)")))})),w&&Xe.createElement(Ge,{marginTop:1},Xe.createElement(Ve,{color:Rx.GRAY},w)))},"SettingsConfig");function SettingsConfigView({staticKey:e,onClose:t,loadTasteStatus:n}){return Xe.useEffect(()=>{hardResetForResize()},[]),Xe.createElement(Xe.Fragment,null,Xe.createElement(XI,{staticKey:e}),Xe.createElement(Ge,{flexDirection:"column",width:"100%"},Xe.createElement(m$,{onClose:t,staticKey:e,loadTasteStatus:n})))}function categoryColor(e){return isFatalWarningCategory(e)?Rx.RED:Rx.YELLOW}__name(SettingsConfigView,"SettingsConfigView"),Ex(),Ex(),Px(),Ex(),Ex(),Px(),__name(categoryColor,"categoryColor");var p$=formatSkillWarningsAsMarkdown;async function copyAllWarnings(e,t){try{const{writeClipboardText:n}=await Promise.resolve().then(()=>(Px(),Tx));if(!await n(p$(e)))throw new Error("clipboard unavailable");const r=e.length;t({text:`Copied ${r} issue${1===r?"":"s"} to clipboard`,color:Rx.GREEN})}catch{t({text:"Clipboard write failed",color:Rx.YELLOW})}}__name(copyAllWarnings,"copyAllWarnings");var g$=__name(({warnings:e,onClose:t,isActive:n=!0})=>{const r=groupWarnings(e),o=e.length>0,[s,a]=et(null),i=tt(null),l=tt(!0);nt(()=>()=>{l.current=!1,i.current&&(clearTimeout(i.current),i.current=null)},[]);const c=__name(e=>{l.current&&(i.current&&clearTimeout(i.current),a(e),i.current=setTimeout(()=>{l.current&&(a(null),i.current=null)},3e3))},"showStatus");return Ye((n,r)=>r.escape||" "===n&&o?(FI(),void t()):void("c"===n&&o&©AllWarnings(e,c)),{isActive:n}),Xe.createElement(Ge,{flexDirection:"column",paddingX:0,width:"100%"},Xe.createElement(Ge,null,Xe.createElement(Ve,{color:Ox,bold:!0},"Skills"," "),Xe.createElement(Ve,{color:Rx.DIM},"› "),Xe.createElement(Ve,{color:Ox,bold:!0},"Skipped"," "),Xe.createElement(Ve,{color:Rx.WHITE},e.length)),o&&Xe.createElement(Ge,{marginBottom:1},Xe.createElement(Ve,{color:Rx.DIM},"Press c to copy all issues")),o?Xe.createElement(Ge,{flexDirection:"column"},r.map(e=>Xe.createElement(Ge,{key:e.category,flexDirection:"column"},Xe.createElement(Ge,null,Xe.createElement(Ve,{color:categoryColor(e.category)},e.category)),e.items.map(e=>Xe.createElement(Ge,{key:e.path,flexDirection:"column",marginBottom:1},Xe.createElement(Ge,{paddingLeft:2},Xe.createElement(fI,{url:p(e.path).href,text:skillIdentifier(e.path),color:Rx.WHITE})),Xe.createElement(Ge,{paddingLeft:4},Xe.createElement(Ve,{color:Rx.WHITE},e.reason))))))):Xe.createElement(Ge,{marginTop:1},Xe.createElement(Ve,{color:Rx.DIM},"No issues — every skill loaded.")),s&&Xe.createElement(Ge,{marginTop:1},Xe.createElement(Ve,{color:s.color},s.text)),Xe.createElement(Ge,{marginTop:1,flexDirection:"column"},Xe.createElement(Ve,{color:Rx.DIM},o?"c copy all issues · esc back to skills":"esc back to skills")))},"SkillsConfigIssues"),h$=[],f$=__name(({warnings:e=h$,onClose:t})=>{const[n,r]=et("list");return Ye((o,s)=>{"list"===n&&(s.escape&&t?t():" "===o&&!s.ctrl&&!s.meta&&e.length>0&&r("issues"))},{isActive:"list"===n}),"issues"===n?Xe.createElement(g$,{warnings:e,onClose:()=>r("list"),isActive:!0}):Xe.createElement(Ge,{flexDirection:"column",paddingX:0,width:"100%"},Xe.createElement(Ge,null,Xe.createElement(Ve,{color:Ox,bold:!0},"Skills"),e.length>0&&Xe.createElement(Xe.Fragment,null,Xe.createElement(Ve,{color:Rx.DIM}," · "),Xe.createElement(Ve,{color:Rx.YELLOW},e.length," skipped"))),Xe.createElement(Ge,{marginBottom:1},Xe.createElement(Ve,{color:Rx.DIM},"No skills found")),Xe.createElement(Ve,{color:Rx.DIM},"Create skills in:"),Xe.createElement(Ve,{color:Rx.DIM}," ","~/",".commandcode","/","skills","/ (user)"),Xe.createElement(Ve,{color:Rx.DIM}," ","~/.agents/","skills","/ (user, .agents)"),Xe.createElement(Ve,{color:Rx.DIM}," ",".commandcode","/","skills","/ (project)"),Xe.createElement(Ve,{color:Rx.DIM}," ",".agents/","skills","/ (project, .agents)"),Xe.createElement(Ge,{marginTop:1},Xe.createElement(Ve,{color:Rx.DIM},e.length>0&&"space to view issues · ","Press ",Xe.createElement(Ve,{bold:!0},"Esc")," to close")))},"SkillsConfigEmpty");Ex();var y$=__name(()=>"win32"===process.platform?'No editor found. Set $EDITOR: setx EDITOR "code"':"No editor found. Set $EDITOR: echo 'export EDITOR=\"code\"' >> "+("darwin"===process.platform?"~/.zshrc":"~/.bashrc"),"getEditorSetupMessage");Ex();var S$=__name(({title:e,subtitle:t,skills:n,baseIndex:r,cursor:o,disabled:s})=>Xe.createElement(Ge,{flexDirection:"column",marginTop:1},Xe.createElement(Ge,null,Xe.createElement(Ve,{color:Wx,bold:!0},e," "),Xe.createElement(Ve,{color:Wx},t)),n.map((e,t)=>{const n=r+t===o,a=s.has(e.label),i=n?eI:void 0;return Xe.createElement(Ge,{key:e.filePath},Xe.createElement(Ve,{color:a?Rx.DIM:Rx.GREEN,backgroundColor:i},a?"[off] ":"[on] "),Xe.createElement(Ve,{color:a?Rx.DIM:Rx.WHITE,backgroundColor:i},e.label),e.fromAgents&&Xe.createElement(Ve,{color:Rx.DIM,backgroundColor:i}," [.agents]"),Xe.createElement(Ve,{color:Rx.DIM,backgroundColor:i}," · ~",e.estimatedTokens," tokens "))})),"SkillSection"),w$=__name(({onClose:e})=>{const[t,n]=et([]),[r,o]=et([]),[s,a]=et(!0),[i,l]=et(null),[c,d]=et(""),[u,m]=et(new Set),[p,g]=et(new Map),[h,f]=et(!1),[y,S]=et(null),[w,k]=et("list"),[v,C]=et(0),b=useTerminalHeight(),E=tt(!1);nt(()=>{__name(async()=>{try{const e=await loadCommandSkillPickerState();n([...e.skills]),o([...e.warnings]),m(new Set(e.disabled)),g(new Map(e.disabledScopes)),f(e.noProjectRoot)}catch(e){l(e instanceof Error?e.message:"Failed to load skills")}finally{a(!1)}},"load")()},[]);const T=rt(()=>filterSkillPickerRowsForQuery({rows:t,searchQuery:c}),[t,c]),P=T.sections.project,M=T.sections.user,x=T.sections.bundled,I=T.rows,A=b-1,R=(P.length>0?1:0)+(M.length>0?1:0)+(x.length>0?1:0),O=Math.max(4,A-14-2*R),D=__name(async e=>{if(E.current)return;const t=getSkillTogglePolicy({skillName:e.label,disabled:u,disabledScopes:p,noProjectRoot:h});if(!t.allowed)return void S(t.notice);E.current=!0;const n=new Set(u);t.enabling&&n.delete(e.label),t.enabling||n.add(e.label),m(n),S(null);try{const n=await setCommandSkillEnabled(e.label,t.enabling),r=new Map(p);t.enabling&&r.delete(e.label),t.enabling||r.set(e.label,n),g(r),S(getSkillPickerNoProjectWriteNotice(n))}catch(e){m(u),S(`Failed to save: ${e instanceof Error?e.message:String(e)}`)}finally{E.current=!1}},"toggleSkill");nt(()=>{"issues"===w&&d("")},[w]);const L="list"===w&&t.length>0,{cursor:N}=useListNavigation({items:I,onSelect:D,onCancel:e,searchQuery:c,onSearchChange:d,initialIndex:0,isActive:L});if(nt(()=>{C(e=>clampScrollOffset({cursor:N,total:I.length,maxVisible:O,currentOffset:e}))},[N,I.length,O]),Ye((t,n)=>{if(!n.tab)return;const r=I[N];r&&(async()=>{try{await Ct([{file:r.filePath,line:1}]),e()}catch(e){if(e instanceof Error&&e.message.includes("$EDITOR environment variable"))return void l(y$());l(e instanceof Error?e.message:"Failed to open skill in editor")}})()},{isActive:L}),Ye((e,n)=>{"list"===w&&0!==t.length&&" "===e&&!n.ctrl&&!n.meta&&r.length>0&&0===c.length&&k("issues")},{isActive:"list"===w&&t.length>0}),s)return Xe.createElement(_D,{title:"Skills",gapAfterHeader:!1},Xe.createElement(Ve,{color:Rx.DIM},"Loading skills..."));if(i)return Xe.createElement(_D,{title:"Skills",titleColor:Rx.RED,gapAfterHeader:!1,footer:Xe.createElement(Ve,{italic:!0,color:Rx.DIM},"Press ",Xe.createElement(Ve,{bold:!0},"Esc")," to close")},Xe.createElement(Ve,{color:Rx.DIM},i));if(0===t.length)return Xe.createElement(f$,{warnings:r,onClose:e});if("issues"===w)return Xe.createElement(g$,{warnings:r,onClose:()=>k("list"),isActive:!0});const $=t.filter(e=>u.has(e.label)).length,_=v,F=v+O,U=sliceSectionForWindow({section:P,sectionBase:0,windowStart:_,windowEnd:F}),j=sliceSectionForWindow({section:M,sectionBase:P.length,windowStart:_,windowEnd:F}),B=sliceSectionForWindow({section:x,sectionBase:P.length+M.length,windowStart:_,windowEnd:F}),W=I.length>O;return Xe.createElement(_D,{title:"Skills",titleSuffix:Xe.createElement(Xe.Fragment,null," ",t.length," skill",1===t.length?"":"s",$>0&&Xe.createElement(Xe.Fragment,null,Xe.createElement(Ve,{color:Rx.DIM}," · "),Xe.createElement(Ve,{color:Rx.YELLOW},$," off")),r.length>0&&Xe.createElement(Xe.Fragment,null,Xe.createElement(Ve,{color:Rx.DIM}," · "),Xe.createElement(Ve,{color:Rx.YELLOW},r.length," skipped"))),subtitle:getSkillPickerNoProjectNotice(h),footer:Xe.createElement(Ge,{flexDirection:"column"},Xe.createElement(Ve,{italic:!0,color:Rx.DIM},"type to search · ↑/↓ navigate · enter to toggle · tab to edit",r.length>0&&!c&&" · space to view issues",c?" · esc to clear":" · esc to close"),Xe.createElement(Ve,{color:Rx.DIM},"add skills:"," ",Xe.createElement(Ve,{color:Rx.CYAN},getBinaryCommand()," skills add ","<owner/repo>")))},Xe.createElement(Ge,{marginBottom:1,flexDirection:"column",width:"100%"},Xe.createElement(kI,{query:c,resultCount:c?I.length:void 0,placeholder:"Type to search skills..."})),0===I.length?Xe.createElement(Ge,{marginY:1},Xe.createElement(Ve,{color:Rx.GRAY},'No skills match "',c,'"')):Xe.createElement(Xe.Fragment,null,Xe.createElement(Ge,{flexDirection:"column"},U.rows.length>0&&Xe.createElement(S$,{title:"Project skills",subtitle:"(.commandcode/skills or .agents/skills)",skills:U.rows,baseIndex:U.baseIndex,cursor:N,disabled:u}),j.rows.length>0&&Xe.createElement(S$,{title:"User skills",subtitle:"(~/.commandcode/skills or ~/.agents/skills)",skills:j.rows,baseIndex:j.baseIndex,cursor:N,disabled:u}),B.rows.length>0&&Xe.createElement(S$,{title:"Bundled skills",subtitle:"(ships with Command Code)",skills:B.rows,baseIndex:B.baseIndex,cursor:N,disabled:u})),W&&Xe.createElement(Ge,{marginTop:1},Xe.createElement(Ve,{color:Rx.DIM},"Showing ",_+1,"–",Math.min(F,I.length)," of"," ",I.length,_>0?" · ↑ more":"",F<I.length?" · ↓ more":""))),y&&Xe.createElement(Ge,{marginTop:1},Xe.createElement(Ve,{color:Rx.YELLOW},y)))},"SkillsConfig");function SkillsConfigView({staticKey:e,onClose:t}){return Xe.useEffect(()=>{hardResetForResize()},[]),Xe.createElement(Xe.Fragment,null,Xe.createElement(XI,{staticKey:e}),Xe.createElement(Ge,{flexDirection:"column",width:"100%"},Xe.createElement(w$,{onClose:t,staticKey:e})))}__name(SkillsConfigView,"SkillsConfigView"),Ex(),Ex(),Px();var k$=[{scope:"project",label:"This project"},{scope:"global",label:"User"}],v$=__name(({onClose:e,onSettingsChange:t,staticKey:n})=>{const[r,o]=et(!0),[s,a]=et(void 0),[i,l]=et(void 0),[c,d]=et(!0),u=isProjectTasteToggleLocked(i),m=ot(async()=>{try{const e=await getTasteLearningSettings();o(e.global),a(e.project),l(e.projectSource)}catch{}},[]);nt(()=>{m().finally(()=>d(!1))},[m]);const p=__name(async(e,n,r)=>{e();try{await r(),t?.(),await m()}catch(e){n()}},"persist"),g=__name(e=>{const t=resolveTasteScopeToggle({scope:e.scope,globalEnabled:r,projectOverride:s,projectSource:i});if("locked"===t.kind)return;if("global"===t.scope)return p(()=>o(t.value),()=>o(!t.value),()=>setTasteLearning({tasteLearning:t.value,scope:"global"}));const n=s;return p(()=>a(t.value),()=>a(n),()=>setTasteLearning({tasteLearning:t.value,scope:"project"}))},"toggleRow"),h=__name(e=>{const t=resolveTasteScopeReset({scope:e.scope,globalEnabled:r,projectOverride:s,projectSource:i});if("noop"===t.kind)return;if("save-global"===t.kind)return p(()=>o(!0),()=>o(!1),()=>setTasteLearning({tasteLearning:!0,scope:"global"}));const n=s;return p(()=>a(void 0),()=>a(n),()=>clearProjectTasteLearning())},"resetRow"),{cursor:f}=useListNavigation({items:k$,onSelect:__name(e=>{g(e)},"onSelect"),onReset:__name(e=>{h(e)},"onReset"),onCancel:e,searchQuery:"",onSearchChange:__name(()=>{},"onSearchChange"),disableSearch:!0,isActive:!c});if(c)return Xe.createElement(_D,{key:n,title:"Taste Learning",gapAfterHeader:!1},Xe.createElement(CO,{label:"Loading configuration"}));const y=__name(e=>"project"===e.scope?s??r:r,"valueFor");return Xe.createElement(_D,{key:n,title:"Taste Learning",subtitle:"Learn from your interactions.",hint:"↑/↓ navigate · enter to toggle · r reset to default · esc to close"},k$.map((e,t)=>{const n=t===f,r=y(e),o="project"===e.scope&&u;return Xe.createElement(Ge,{key:e.scope},Xe.createElement(Ve,{color:n?Rx.CYAN:Rx.GRAY},n?`${it.pointer} `:" "),Xe.createElement(Ve,{color:n?Rx.CYAN:Rx.WHITE},e.label.padEnd(16)),Xe.createElement(Ve,{color:r?Rx.GREEN:Rx.DIM},r?"enabled":"disabled"),o?Xe.createElement(Ve,{color:Rx.DIM}," ","(set in settings.local.json)"):null)}),Xe.createElement(Ge,{marginTop:1,flexDirection:"column"},Xe.createElement(Ve,{color:Rx.DIM},"Taste data stored in .commandcode/taste/taste.md"),u?Xe.createElement(Ve,{color:Rx.DIM},"This project is pinned by .commandcode/settings.local.json — edit that file to change it."):null))},"TasteConfig");function TasteConfigView({staticKey:e,onClose:t,loadTasteStatus:n}){return Xe.createElement(Xe.Fragment,null,Xe.createElement(XI,{staticKey:e}),Xe.createElement(Ge,{flexDirection:"column",width:"100%"},Xe.createElement(v$,{onClose:t,onSettingsChange:n,staticKey:e})))}function fetchUsageData2(){return fetchUsageData({getAuthKey:getAuthKey2,getApiBaseUrl:getApiBaseUrl,createRequest:__name(({baseUrl:e})=>createApiClient({baseUrl:e}),"createRequest")})}function getAuthKey2(){return getCommandAuthKey({runtime:getCommandConfigRuntime(),path:getAuthFile(),env:process.env})}function WindowLimitMeter({label:e,used:t,cap:n,resetAt:r,width:o,now:s}){const a=n>0?Math.min(100,t/n*100):0,i=getUsageColor(a),l=buildBlockBar({percentage:a,width:o}),c=r>s?` · resets in ${formatDuration(r-s)}`:"";return Xe.createElement(Ge,null,Xe.createElement(Ve,{color:Rx.DIM},e.padEnd(7)," "),Xe.createElement(Ve,{color:i},l.filled),Xe.createElement(Ve,{color:Wx},l.empty),Xe.createElement(Ve,{bold:!0,color:i},` ${Math.round(a)}%`),Xe.createElement(Ve,{color:Rx.DIM},c))}function getProgressBarWidth({terminalWidth:e}){return e<50?Math.max(10,e-10):e<70?Math.max(15,e-15):Math.min(30,e-15)}function getDaysColor(e){const t=getRenewalUrgency(e);return"critical"===t?Rx.RED:"warning"===t?Rx.YELLOW:void 0}__name(TasteConfigView,"TasteConfigView"),Ex(),Ex(),Px(),__name(fetchUsageData2,"fetchUsageData"),__name(getAuthKey2,"getAuthKey"),__name(WindowLimitMeter,"WindowLimitMeter"),__name(getProgressBarWidth,"getProgressBarWidth"),__name(getDaysColor,"getDaysColor");var C$=__name(({plan:e,status:t})=>Xe.createElement(Ge,{marginBottom:0},Xe.createElement(Ge,{flexShrink:0},Xe.createElement(Ve,{backgroundColor:Rx.BLUE,color:"#f4f4f4",bold:!0},`${PI}USAGE${PI}`)),e&&Xe.createElement(Xe.Fragment,null,Xe.createElement(Ve,null," "),Xe.createElement(Ve,{color:Rx.GRAY},`${e.name} Plan`)),t&&Xe.createElement(Xe.Fragment,null,Xe.createElement(Ve,{color:Rx.DIM}," · "),Xe.createElement(Ve,{color:"active"===t?Rx.GREEN:Rx.YELLOW},t))),"UsageBadge"),b$=__name(({showRetry:e})=>Xe.createElement(Ge,{marginTop:1},Xe.createElement(SA,null,e&&Xe.createElement(Xe.Fragment,null,Xe.createElement(wA,null,"r")," to retry · "),"Press ",Xe.createElement(wA,null,"Esc")," to close")),"UsageFooter"),E$=__name(({onClose:e})=>{const[t,n]=et("loading"),[r,o]=et(null),[s,a]=et(!1),i=getProgressBarWidth({terminalWidth:useTerminalWidth()}),l=ot(async e=>{try{a(!1);const t=await fetchUsageData2();if(e.aborted)return;if(!t.whoami){const e=t.errors.some(isAuthErrorMessage);return a(e),void n("error")}o(t),n("loaded")}catch{if(e.aborted)return;n("error")}},[]),c=Xe.useRef(null);Ye((r,o)=>{if(o.escape&&e(),"r"===r&&"error"===t){n("loading"),c.current?.abort();const e=new AbortController;c.current=e,l(e.signal)}}),nt(()=>{const e=new AbortController;return c.current=e,l(e.signal),()=>e.abort()},[l]);const d=r?projectUsageView({usageData:r}):null,u=d?.subscription??null,m=d?.plan??null;if("loading"===t)return Xe.createElement(Ge,{flexDirection:"column",paddingX:0,width:"100%"},Xe.createElement(C$,{plan:m,status:u?.status??null}),Xe.createElement(CO,null),Xe.createElement(b$,null));if("error"===t)return Xe.createElement(Ge,{flexDirection:"column",paddingX:0,width:"100%"},Xe.createElement(C$,{plan:m,status:u?.status??null}),Xe.createElement(Ge,{marginTop:1},Xe.createElement(Ve,{color:Rx.DIM},s?"Not authenticated. Run /login to connect your account.":"Something went wrong.")),Xe.createElement(b$,{showRetry:!s}));if(!r)return null;const p=d?.hasBillingData??!1,g=d?.usageUrl??null;if(!p)return Xe.createElement(Ge,{flexDirection:"column",paddingX:0,width:"100%"},Xe.createElement(C$,{plan:m,status:u?.status??null}),Xe.createElement(Ge,{marginTop:1,flexDirection:"column"},Xe.createElement(PO,{message:"No billing data found."}),g&&Xe.createElement(Ge,null,Xe.createElement(Ve,{color:Rx.DIM},"Visit "),Xe.createElement(fI,{url:g,text:"Studio",color:Rx.CYAN}),Xe.createElement(Ve,{color:Rx.DIM}," for usage details."))),Xe.createElement(b$,null));const h=d?.windowLimits??null,f=d?.summary??null,y=d?.now??Date.now(),S=d?.credits,w=S?.totalRemaining??0,k=S?.usagePercent??0,v=Boolean(S?.hasCreditsInfo),C=d?.daysLeft??null,b=getDaysColor(C),E=getUsageColor(k),T=buildBlockBar({percentage:k,width:i});return Xe.createElement(Ge,{flexDirection:"column",paddingX:0,width:"100%"},Xe.createElement(Ge,{marginBottom:1},Xe.createElement(C$,{plan:m,status:u?.status??null})),v?Xe.createElement(Ge,null,Xe.createElement(Ve,{color:E},T.filled),Xe.createElement(Ve,{color:Wx},T.empty),Xe.createElement(Ve,{bold:!0,color:E},` ${Math.round(k)}% used`)):Xe.createElement(Ve,{color:Rx.DIM},"Plan details unavailable"),v&&Xe.createElement(Ge,null,u?.currentPeriodEnd&&Xe.createElement(Ve,{color:Rx.DIM},"Cycle: "),Xe.createElement(Ve,null,formatCredits(w)),Xe.createElement(Ve,{color:Rx.DIM}," left"),f&&Xe.createElement(Xe.Fragment,null,Xe.createElement(Ve,{color:Rx.DIM}," · "),Xe.createElement(Ve,null,f.totalCount.toLocaleString()),Xe.createElement(Ve,{color:Rx.DIM}," requests")),null!==C&&Xe.createElement(Xe.Fragment,null,Xe.createElement(Ve,{color:Rx.DIM}," · "),0===C?Xe.createElement(Ve,{color:b},"renewal today"):Xe.createElement(Xe.Fragment,null,Xe.createElement(Ve,{color:b},`${C} day${1===C?"":"s"}`),Xe.createElement(Ve,{color:Rx.DIM}," to renewal")))),h?.limited&&Xe.createElement(Ge,{flexDirection:"column",marginTop:1},Xe.createElement(Ve,{color:Rx.DIM},"Usage limits"),h.fiveHour&&Xe.createElement(WindowLimitMeter,{label:"5-hour",used:h.fiveHour.used,cap:h.fiveHour.cap,resetAt:h.fiveHour.resetAt,width:i,now:y}),h.weekly&&Xe.createElement(Ge,{marginTop:h.fiveHour?1:0,flexDirection:"column"},Xe.createElement(WindowLimitMeter,{label:"Weekly",used:h.weekly.used,cap:h.weekly.cap,resetAt:h.weekly.resetAt,width:i,now:y}))),g&&Xe.createElement(Ge,{marginTop:1},Xe.createElement(Ve,{color:Rx.DIM},"Full breakdown at "),Xe.createElement(fI,{url:g,text:d?.usageUrlDisplay??g,color:Rx.CYAN})),Xe.createElement(b$,null))},"UsageOverlay");function UsageView({staticKey:e,onClose:t}){return Xe.createElement(Xe.Fragment,null,Xe.createElement(XI,{staticKey:e}),Xe.createElement(Ge,{flexDirection:"column",width:"100%"},Xe.createElement(E$,{onClose:t})))}__name(UsageView,"UsageView"),Ex(),Px(),Ex(),Px(),Ex();var T$="@last";function shortenHomePath(e){const t=$();return e.startsWith(t)?`~${e.slice(t.length)}`:e}__name(shortenHomePath,"shortenHomePath");var P$={approved:{label:`${it.tick} approved`,color:Rx.GREEN},"not-implemented":{label:`${it.circleDotted} set aside`,color:Rx.YELLOW},pending:{label:`${it.dot} pending`,color:Rx.DIM}},M$=createNodeRuntime(),x$={"?":"Why? Explain the reasoning behind this.",x:"Cut this — remove it from the plan.","!":"Risky — double-check this before implementing."};function lineStyleProps(e){if(e.changed)return{color:Rx.GREEN,bold:!1,italic:!1};const t={color:Rx.WHITE,bold:!1,italic:!1};if(!e.style)return t;switch(e.style.role){case"heading":return{color:Yx.HEADING,bold:!0,italic:!1};case"code":case"code-fence":return{color:Yx.CODE,bold:!1,italic:!1};case"quote":return{color:Rx.DIM,bold:!1,italic:!0};case"table":return{color:Rx.CYAN,bold:!1,italic:!1};default:return t}}__name(lineStyleProps,"lineStyleProps");var I$=__name(({plan:e,variant:t="browse",fallbackContent:n,onBack:r,onSubmitFeedback:o,onExecute:s,onAutoAccept:a})=>{const[i,l]=et(null),[c,d]=et(e.annotations),[u,m]=et(!1);nt(()=>{u||d(e.annotations)},[e.annotations,u]);const[p,g]=et({kind:"line",lineNumber:1}),[h,f]=et(null),[y,S]=et(null),[w,k]=et(null),[v,C]=et(!1),[b,E]=et(0),[T,P]=et(null),M=useTerminalHeight(),x=useTerminalWidth();nt(()=>{__name(async()=>{const t=await readPlanContent({runtime:M$,filePath:e.filePath})??n??null;l(null===t?[]:splitPlanLines(t))},"load")()},[e.filePath,n]);const I=e.version??1;nt(()=>{I<=1||!e.filePath||readPlanVersionSnapshot({runtime:M$,filePath:e.filePath,version:I-1}).then(P).catch(()=>{})},[I,e.filePath]);const A=rt(()=>null!==T&&null!==i?diffPlanChangedLines({previous:T,current:i}):new Set,[T,i]),R=c.length,O=rt(()=>{const e={id:"feedback",label:`Submit review (${R})`,chord:"ctrl+r",color:Rx.CYAN,hint:"agent revises the plan, returns it for review"};return"approval"===t?[...R>0?[e]:[],{id:"auto-accept",label:"Approve",chord:"ctrl+a",color:Rx.GREEN,hint:R>0?"executes the plan · comments go along as notes":"executes the plan"},{id:"cancel",label:"Cancel",chord:"esc",color:Rx.YELLOW,hint:""}]:[...R>0?[e]:[],{id:"execute",label:"Execute plan",chord:"ctrl+e",color:Rx.GREEN,hint:"executes the plan as written"},{id:"cancel",label:"Back",chord:"esc",color:Rx.YELLOW,hint:""}]},[t,R]),D=rt(()=>h?c.filter(e=>e.line!==h.line):c,[c,h]),L=rt(()=>buildPlanReaderRows({lines:i??[],annotations:D}),[i,D]),N=rt(()=>classifyPlanLines(i??[]),[i]),$=i?.length??0,_=resolvePlanWrapWidth(Math.max(20,x-7-2)),F=rt(()=>buildPlanReaderDisplayRows({rows:L,width:_}),[L,_]),U=getPlanReaderCursorDisplaySpan({displayRows:F,cursor:p}),j=M-1,B=Math.max(4,j-10-7),W=h?1:0,H=-1===U.first?F.length-1:U.first,G=-1===U.last?F.length-1:U.last+W;nt(()=>{E(e=>{const t=clampScrollOffset({cursor:Math.max(0,G),total:F.length+W,maxVisible:B,currentOffset:e});return clampScrollOffset({cursor:Math.max(0,H),total:F.length+W,maxVisible:B,currentOffset:t})})},[H,G,F.length,W,B]),nt(()=>{g(e=>snapPlanReaderCursor({cursor:e,lineCount:$,actions:[]}))},[$]),nt(()=>{g(e=>"action"!==e.kind||O.some(t=>t.id===e.id)?e:{kind:"line",lineNumber:Math.max(1,$)})},[O,$]);const V=__name(t=>{m(!0),d(t),e.filePath&&setPlanAnnotations({runtime:M$,filePath:e.filePath,annotations:t}).catch(()=>k("Failed to save comments to disk"))},"persistAnnotations"),z="line"===p.kind?c.find(e=>e.line===p.lineNumber):void 0,q=__name(()=>{if(0===c.length||!i)return;const t=buildPlanAnnotationsPrompt({title:e.title,filePath:e.filePath||"(plan not saved to a file yet)",lines:i,annotations:c});e.filePath&&snapshotPlanVersion({runtime:M$,filePath:e.filePath}).catch(()=>{}),V([]),o(t)},"submitFeedback"),K=__name(t=>{if(t&&c.length>0&&i){const t=buildPlanApprovalNotesPrompt({title:e.title,...e.filePath?{filePath:e.filePath}:{},lines:i,annotations:c});return V([]),void a?.(t)}V([]),a?.()},"approve"),Y=__name(()=>{"approval"===t&&(R>0?S({kind:"approve",choice:"notes"}):K(!1))},"requestApprove"),J=__name(()=>{R>0&&!e.filePath?S({kind:"cancel"}):r()},"requestCancel"),Q=__name(t=>{"feedback"!==t?"execute"!==t?"auto-accept"!==t?"cancel"===t&&J():Y():(s??o)(buildPlanExecutePrompt({title:e.title,filePath:e.filePath||e.fileName})):q()},"runAction"),X=__name(()=>{e.filePath?(C(!0),openFileInEditor(e.filePath).then(async()=>{const t=await readPlanContent({runtime:M$,filePath:e.filePath});null!==t&&l(splitPlanLines(t))}).catch(e=>k(e instanceof Error?e.message:"Failed to open the editor")).finally(()=>{C(!1),hardResetForResize()})):k("This plan is not saved to a file yet")},"openExternalEditor"),Z=__name(e=>{"line"!==p.kind||p.lineNumber<1||p.lineNumber>$||f({line:p.lineNumber,value:e||(z?.text??""),hadExisting:void 0!==z})},"openDraft"),ee=__name(e=>{h&&(V(upsertPlanAnnotation({annotations:c,line:h.line,text:e,createdAt:(new Date).toISOString()})),f(null))},"commitDraft"),te=rt(()=>{const e=new Set;for(const t of c)e.add(t.line);for(const t of A)e.add(t);return[...e].sort((e,t)=>e-t)},[c,A]),ne=__name(e=>{if(0===te.length)return;const t="line"===p.kind?p.lineNumber:$+1,n="next"===e?te.find(e=>e>t)??te[0]:[...te].reverse().find(e=>e<t)??te[te.length-1];void 0!==n&&g({kind:"line",lineNumber:n})},"jumpMarked");Ye((e,t)=>{t.escape&&f(null)},{isActive:null!==h}),Ye((e,t)=>{if(y)if(t.escape)S(null);else if("approve"===y.kind&&(t.leftArrow||t.rightArrow||t.tab))S({kind:"approve",choice:"notes"===y.choice?"original":"notes"});else if(t.return){if("approve"===y.kind)return S(null),void K("notes"===y.choice);S(null),r()}},{isActive:null!==y}),Ye((e,n)=>{if(n.escape)return void J();if(n.upArrow||n.downArrow)return k(null),void g(e=>{if("action"===e.kind){const t=O.findIndex(t=>t.id===e.id);if(n.upArrow){if(t<=0&&$>0)return{kind:"line",lineNumber:$};const n=O[Math.max(0,t-1)];return n?{kind:"action",id:n.id}:e}const r=O[Math.min(O.length-1,t+1)];return r?{kind:"action",id:r.id}:e}if(n.upArrow)return{kind:"line",lineNumber:Math.max(1,e.lineNumber-1)};if(e.lineNumber>=$){const t=O[0];return t?{kind:"action",id:t.id}:e}return{kind:"line",lineNumber:e.lineNumber+1}});if(n.pageUp||n.pageDown)return k(null),void g(e=>"action"===e.kind&&n.pageDown?e:movePlanReaderCursorByPage({displayRows:F,cursor:e,direction:n.pageDown?"down":"up",pageRows:Math.max(1,B-1)}));if(n.home||n.end)return k(null),void($>0&&g({kind:"line",lineNumber:n.home?1:$}));if(n.leftArrow||n.rightArrow){if("action"!==p.kind)return;const e=O.findIndex(e=>e.id===p.id);if(-1===e)return;const t=n.leftArrow?Math.max(0,e-1):Math.min(O.length-1,e+1),r=O[t];return void(r&&g({kind:"action",id:r.id}))}if(n.ctrl&&"r"===e)return void q();if(n.ctrl&&"a"===e&&"approval"===t)return void Y();if(n.ctrl&&"e"===e&&"browse"===t)return void Q("execute");if(n.ctrl&&"g"===e)return void X();if(n.ctrl&&"n"===e)return void ne("next");if(n.ctrl&&"p"===e)return void ne("previous");if(n.return)return"action"===p.kind?void Q(p.id):void Z("");const r=x$[e];"line"!==p.kind||!r||n.ctrl||n.meta?"line"===p.kind&&e.length>0&&!n.ctrl&&!n.meta&&Z(e):V(upsertPlanAnnotation({annotations:c,line:p.lineNumber,text:z?.text===r?"":r,createdAt:(new Date).toISOString()}))},{isActive:null===h&&null===y&&null!==i&&!v});const re=P$[e.status],oe=b,se=b+B-W,ae=F.slice(oe,se),ie=h?h.hadExisting?"enter to keep · clear + enter removes · esc keep as was":"enter to pin · esc discard":y?"approve"===y.kind?"←/→ choose · enter confirm · esc back":"enter discard · esc back":"action"===p.kind?"↑/↓ choose · enter to run":["type + enter to comment",...te.length>0?["ctrl+n/p jump "+(A.size>0?"changes":"comments")]:[],"quick: ? why x cut ! risky","ctrl+g $EDITOR"].join(" · ");return Xe.createElement(_D,{title:"approval"===t?`Plan review: ${e.title}`:e.title,titleSuffix:"approval"===t?Xe.createElement(Xe.Fragment,null," ","· ",shortenHomePath(e.filePath)||e.fileName," · v",e.version??1):Xe.createElement(Xe.Fragment,null," ","· ",shortenHomePath(e.filePath)||e.fileName," · v",e.version??1," ",Xe.createElement(Ve,{color:re.color},re.label)),subtitle:"approval"===t?"Review the plan like a PR — type on any line to comment, enter pins it under the line.":void 0,footer:Xe.createElement(Ve,{italic:!0,color:Rx.DIM},ie)},null===i?Xe.createElement(Ve,{color:Rx.DIM},"Loading plan..."):0===$?Xe.createElement(Ve,{color:Rx.DIM},"Plan file is empty or missing on disk."):Xe.createElement(Ge,{flexDirection:"column"},ae.map((e,t)=>{const n=oe+t,{row:r}=e;if("action"===r.kind)return null;if("annotation"===r.kind)return Xe.createElement(Ge,{key:`annotation-${r.lineNumber}-${n}`},Xe.createElement(Ve,{color:Rx.DIMMER}," ".repeat(5)),Xe.createElement(Ve,{backgroundColor:Dx.BADGE_BG,color:Dx.BADGE_FG}," ",e.isFirstSegment?"↳ ":" ",e.text," "));const o="line"===p.kind&&p.lineNumber===r.lineNumber,s=lineStyleProps({style:N[r.lineNumber-1],changed:A.has(r.lineNumber)}),a=F[n+1],i=!a||"line"!==a.row.kind||a.row.lineNumber!==r.lineNumber,l=n===se-1,c=null!==h&&h.line===r.lineNumber&&(i||l);return Xe.createElement(Xe.Fragment,{key:`line-${r.lineNumber}-${n}`},Xe.createElement(Ge,null,Xe.createElement(Ve,{color:Rx.DIMMER},e.isFirstSegment?String(r.lineNumber).padStart(4," "):" "," "),Xe.createElement(Ve,{color:r.hasAnnotation?Rx.CYAN:Rx.DIMMER},e.isFirstSegment&&r.hasAnnotation?`${it.bullet} `:" "),Xe.createElement(Ve,{color:s.color,bold:s.bold,italic:s.italic,backgroundColor:o?eI:void 0},e.text||" ")),c&&h&&Xe.createElement(Ge,null,Xe.createElement(Ve,{color:Rx.CYAN}," ┃ ",it.bullet," "),Xe.createElement(TextInput,{value:h.value,onChange:e=>f(t=>t?{...t,value:e}:t),onSubmit:ee,placeholder:"Type your comment…",focus:null!==h,stripBracketedPaste:!0})))})),Xe.createElement(Ge,{flexDirection:"column",marginTop:1},Xe.createElement(aI,{dividerColor:Rx.DIMMER}),Xe.createElement(Ge,null,Xe.createElement(Ve,{bold:!0,backgroundColor:Dx.BADGE_BG,color:Rx.WHITE}," REVIEW "),Xe.createElement(Ve,{color:Rx.DIM},R>0&&` ${R} pending comment${1===R?"":"s"}`,I>1&&` · round ${I}${A.size>0?` · ${A.size} line${1===A.size?"":"s"} changed`:""}`)),y?"approve"===y.kind?Xe.createElement(Ge,null,Xe.createElement(Ve,{bold:!0,color:Rx.GREEN},"Approve"," "),Xe.createElement(Ve,{color:"notes"===y.choice?Rx.WHITE:Rx.DIM,backgroundColor:"notes"===y.choice?eI:void 0},"notes"===y.choice?"(•)":"( )"," ","with ",R," comment",1===R?"":"s"," as notes"),Xe.createElement(Ve,{color:Rx.DIMMER}," "),Xe.createElement(Ve,{color:"original"===y.choice?Rx.WHITE:Rx.DIM,backgroundColor:"original"===y.choice?eI:void 0},"original"===y.choice?"(•)":"( )"," ","original plan · discard comments")):Xe.createElement(Ge,null,Xe.createElement(Ve,{color:Rx.YELLOW},"Discard ",R," pending comment",1===R?"":"s"," and exit review?")):O.map(e=>{const t="action"===p.kind&&p.id===e.id;return Xe.createElement(Ge,{key:e.id},Xe.createElement(Ve,{bold:!0,color:e.color,backgroundColor:t?eI:void 0},t?`${it.pointer} ${e.label} `:e.label),Xe.createElement(Ve,{color:Rx.DIM}," ",e.chord),e.hint&&Xe.createElement(Ve,{color:Rx.DIMMER}," ",e.hint))}),w&&Xe.createElement(Ve,{color:Rx.YELLOW},w)))},"PlanReader"),A$=createNodeRuntime();function PlanApprovalView({staticKey:e,planContent:t,planFilePath:n,onAutoAccept:r,onCancel:o,onSendFeedback:s}){nt(()=>{hardResetForResize()},[]);const[a,i]=et(null);nt(()=>{n&&listPlans({runtime:A$}).then(e=>i(e.find(e=>e.filePath===n)??null)).catch(()=>{})},[n]);const l=rt(()=>{if(a)return a;const e=n?.split("/").pop()??"plan.md";return{fileName:e,filePath:n??"",title:derivePlanTitle({content:t,fileName:e}),status:"pending",createdAt:"",updatedAt:"",annotations:[]}},[a,n,t]);return Xe.createElement(Xe.Fragment,null,Xe.createElement(XI,{staticKey:e}),Xe.createElement(Ge,{flexDirection:"column",width:"100%"},Xe.createElement(I$,{plan:l,variant:"approval",fallbackContent:t,onBack:o,onSubmitFeedback:s,onAutoAccept:r})))}__name(PlanApprovalView,"PlanApprovalView"),Ex(),Ex(),Px();var R$=Date.now(),O$=createNodeRuntime();function matchesTarget(e,t){const n=t.toLowerCase();return e.fileName.toLowerCase()===n||e.fileName.toLowerCase().replace(/\.md$/,"")===n||e.title.toLowerCase()===n}__name(matchesTarget,"matchesTarget");var D$=__name(({sessionId:e,target:t,onClose:n,onSubmitFeedback:r,onExecute:o})=>{const[s,a]=et([]),[i,l]=et([]),[c,d]=et(!0),[u,m]=et(null),[p,g]=et("session"),[h,f]=et(null),[y,S]=et(""),[w,k]=et(0),[v,C]=et(0),b=useTerminalHeight(),E=tt(!1);nt(()=>{__name(async()=>{try{const[n,r]=await Promise.all([listPlans({runtime:O$,sessionId:e,sessionStartMs:R$}),listPlans({runtime:O$})]);if(a([...n]),l([...r]),t&&!E.current)if(E.current=!0,t===T$){const e=n[0];e&&f(e)}else{const e=r.find(e=>matchesTarget(e,t.trim()));e?f(e):S(t.trim())}}catch(e){m(e instanceof Error?e.message:"Failed to load plans")}finally{d(!1)}},"load")()},[e,v]);const T="session"===p?s:i,P=rt(()=>{const e=y.trim().toLowerCase();return e?T.filter(t=>t.title.toLowerCase().includes(e)||t.fileName.toLowerCase().includes(e)):T},[T,y]),M=b-1,x=Math.max(3,M-9),I=null===h&&!c,{cursor:A}=useListNavigation({items:P,onSelect:__name(e=>f(e),"onSelect"),onCancel:n,searchQuery:y,onSearchChange:S,initialIndex:0,isActive:I});if(nt(()=>{k(e=>clampScrollOffset({cursor:A,total:P.length,maxVisible:x,currentOffset:e}))},[A,P.length,x]),Ye((e,t)=>{(t.leftArrow||t.rightArrow)&&(g(e=>"session"===e?"all":"session"),k(0))},{isActive:I}),h)return Xe.createElement(I$,{plan:h,onBack:()=>{f(null),C(e=>e+1)},onSubmitFeedback:r,onExecute:o});if(c)return Xe.createElement(_D,{title:"Plans",gapAfterHeader:!1},Xe.createElement(Ve,{color:Rx.DIM},"Loading plans..."));if(u)return Xe.createElement(_D,{title:"Plans",titleColor:Rx.RED,gapAfterHeader:!1,hint:"Esc to close"},Xe.createElement(Ve,{color:Rx.DIM},u));const R=w,O=w+x,D=P.slice(R,O),L=P.length>x;return Xe.createElement(_D,{title:"Plans",titleSuffix:Xe.createElement(Xe.Fragment,null," ",P.length," plan",1===P.length?"":"s"),subtitle:Xe.createElement(Xe.Fragment,null,Xe.createElement(Ve,{bold:"session"===p,color:"session"===p?AD:Rx.DIM},"This session"),Xe.createElement(Ve,{color:Rx.DIMMER},` ${it.triangleLeftSmall} ${it.triangleRightSmall} `),Xe.createElement(Ve,{bold:"all"===p,color:"all"===p?AD:Rx.DIM},"All plans")),footer:Xe.createElement(Ve,{italic:!0,color:Rx.DIM},"type to search · ↑/↓ navigate · ←/→ switch tab · enter to open",y?" · esc to clear":" · esc to close")},Xe.createElement(Ge,{marginBottom:1,flexDirection:"column",width:"100%"},Xe.createElement(kI,{query:y,resultCount:y?P.length:void 0,placeholder:"Type to search plans..."})),0===P.length?Xe.createElement(Ge,{marginY:1},Xe.createElement(Ve,{color:Rx.GRAY},y?`No plans match "${y}"`:"session"===p?"No plans in this session yet — use /plan or plan mode to create one. Press → for all plans.":"No saved plans yet — plans land in ~/.commandcode/plans when you use plan mode.")):Xe.createElement(Xe.Fragment,null,Xe.createElement(Ge,{flexDirection:"column"},D.map((e,t)=>{const n=R+t===A,r=P$[e.status];return Xe.createElement(Ge,{key:e.fileName},Xe.createElement(Ve,{color:n?DD:Rx.GRAY},n?`${it.pointer} `:" "),Xe.createElement(Ve,{bold:n,color:n?DD:Rx.WHITE},e.title),Xe.createElement(Ve,{color:r.color}," ",r.label),(e.version??1)>1&&Xe.createElement(Ve,{color:Rx.DIM}," ","v",e.version),e.annotations.length>0&&Xe.createElement(Ve,{color:Rx.CYAN}," ",e.annotations.length," comment",1===e.annotations.length?"":"s"),Xe.createElement(Ve,{color:Rx.DIM}," ",formatRelativeTimeShort({timestamp:e.updatedAt})))})),L&&Xe.createElement(Ge,{marginTop:1},Xe.createElement(Ve,{color:Rx.DIM},"Showing ",R+1,"–",Math.min(O,P.length)," of"," ",P.length,R>0?" · ↑ more":"",O<P.length?" · ↓ more":""))))},"PlansScreen");function PlansView({staticKey:e,sessionId:t,target:n,onClose:r,onSubmitFeedback:o,onExecute:s}){return Xe.useEffect(()=>{hardResetForResize()},[]),Xe.createElement(Xe.Fragment,null,Xe.createElement(XI,{staticKey:e}),Xe.createElement(Ge,{flexDirection:"column",width:"100%"},Xe.createElement(D$,{sessionId:t,target:n,onClose:r,onSubmitFeedback:o,onExecute:s})))}function ForkSummary({session:e,isSelected:t,nameColor:n}){if(!e.forkProvenance)return null;const r=t?void 0:Rx.DIM,o=e.userRenamed&&e.title?e.title:null;return o?Xe.createElement(Ve,{color:n},`${o} `,Xe.createElement(Ve,{color:r},`· ${e.forkProvenance}`)):Xe.createElement(Ve,{color:r},e.forkProvenance)}__name(PlansView,"PlansView"),Ex(),Ex(),Px(),Ex(),__name(ForkSummary,"ForkSummary");var L$=__name((e,t)=>e.padEnd(t),"padCell"),N$=__name(e=>e instanceof Error&&e.message?e.message:"Unknown error","getActionErrorMessage");function resolveRowColor(e){return e.isDeletePending?Rx.RED:e.isCurrentSession?Ox:e.isSelected?Rx.WHITE:Rx.GRAY}function renderRowSummary(e){const{session:t,isSelected:n,nameColor:r}=e;if(t.forkProvenance)return Xe.createElement(ForkSummary,{session:t,isSelected:n,nameColor:r});const o=getSessionSummary({session:t});return t.userRenamed&&t.title?Xe.createElement(Ve,{color:r},o):o}__name(resolveRowColor,"resolveRowColor"),__name(renderRowSummary,"renderRowSummary");var $$=["recent","created","messages"],_$={recent:"Recent",created:"Created",messages:"Messages"};function nextSortMode(e){const t=$$.indexOf(e);return $$[(t+1)%$$.length]}function sortSessions(e,t){return"created"===t?[...e].sort((e,t)=>Date.parse(t.createdAt)-Date.parse(e.createdAt)):"messages"===t?[...e].sort((e,t)=>t.messageCount-e.messageCount):e}function matchesSearch2(e,t){const n=t.toLowerCase().split(/\s+/).filter(Boolean);if(0===n.length)return!0;const r=[e.id,e.title??"",e.firstMessage,e.gitBranch??""].join(" ").toLowerCase();return n.every(e=>r.includes(e))}function getFilteredEmptyState(e){return e.namedOnly?{text:"No named sessions.",hint:"Press ctrl+n to show all."}:e.searchQuery?{text:`No sessions match "${e.searchQuery}"`,hint:"Press Esc to clear search."}:e.branchFilter&&e.currentBranch?{text:`No sessions found for branch "${e.currentBranch}"`,hint:"Press ctrl+b to show all branches, Esc to cancel"}:{text:"No previous sessions found",hint:"Press Esc to go back"}}function resolveProjectBaseDir(){const e=getCommandSessionRuntime();return getProjectSessionDir({env:e.env(),cwd:e.cwd()})}__name(nextSortMode,"nextSortMode"),__name(sortSessions,"sortSessions"),__name(matchesSearch2,"matchesSearch"),__name(getFilteredEmptyState,"getFilteredEmptyState"),__name(resolveProjectBaseDir,"resolveProjectBaseDir");var F$=__name(({onSelectSession:e,onClose:t,currentSessionId:n})=>{const[r,o]=et([]),[s,a]=et(0),[i,l]=et(0),[c,d]=et(!0),[u,m]=et(!1),[p,g]=et(!1),[h,f]=et(null),[y,S]=et(null),[w,k]=et(""),[v,C]=et(!1),[b,E]=et("recent"),[T,P]=et(!1),[M,x]=et("list"),[I,A]=et(null),[R,O]=et(""),[D,L]=et(null),[N]=et(()=>getCurrentGitBranch()),[$]=et(()=>resolveProjectBaseDir()),_=useTerminalHeight(),F=Math.max(6,_-19),U=ot(async()=>{d(!0);const e=await listCommandSessions();o(e),d(!1)},[]);nt(()=>{U()},[U]),nt(()=>{if(!y)return;const e=setTimeout(()=>S(null),3e3);return()=>clearTimeout(e)},[y]);const j=ot(async e=>{try{const t=getCommandSessionRuntime(),{method:n}=await deleteSessionV3({runtime:t,baseDir:$,id:e});g(!1),f(null),a(0),l(0),S("trash"===n?"Session moved to trash":"Session deleted"),await U()}catch(e){g(!1),f(`Failed to delete session: ${N$(e)}`)}},[U,$]),B=ot(async e=>{const t=I;if(t)try{const n=getCommandSessionRuntime();await renameSessionFile({runtime:n,cwd:n.cwd(),baseDir:$,id:t,name:e}),x("list"),A(null),L(null),await U()}catch(e){L(`Failed to rename session: ${N$(e)}`)}else x("list")},[I,U,$]),W=filterSessionsByBranch({sessions:r,branchFilter:u,currentBranch:N}),H=T?W.filter(e=>e.userRenamed):W,G=sortSessions(w?H.filter(e=>matchesSearch2(e,w)):H,b);if(nt(()=>{a(e=>Math.min(e,Math.max(0,G.length-1)))},[G.length]),Ye((r,o)=>{if("rename"===M)return o.escape?(x("list"),void A(null)):void 0;if(p){if(!o.return)return void g(!1);if(G.length>0&&s<G.length){const e=G[s];j(e.id)}}else{if(o.delete||isCtrlKey({inputChar:r,key:o,letter:"d",ctrlCode:4})){if(0===G.length)return;return G[s]?.id===n?void f("Cannot delete the current session"):(f(null),void g(!0))}if(isCtrlKey({inputChar:r,key:o,letter:"r",ctrlCode:18})){if(c)return;const e=G[s];if(!e)return;return L(null),O(e.title??""),A(e.id),void x("rename")}if(isCtrlKey({inputChar:r,key:o,letter:"p",ctrlCode:16}))C(e=>!e);else{if(!isCtrlKey({inputChar:r,key:o,letter:"s",ctrlCode:19}))return isCtrlKey({inputChar:r,key:o,letter:"n",ctrlCode:14})?(P(e=>!e),a(0),void l(0)):o.escape?w?(k(""),a(0),void l(0)):void t():isCtrlKey({inputChar:r,key:o,letter:"b",ctrlCode:2})?(m(e=>!e),a(0),void l(0)):void(o.upArrow?a(e=>{const t=Math.max(0,e-1);return t<i&&l(t),t}):o.downArrow?a(e=>{const t=Math.min(G.length-1,e+1);return t>=i+F&&l(t-F+1),t}):o.return?G.length>0&&s<G.length&&e(G[s].id):o.backspace?w&&(k(e=>e.slice(0,-1)),a(0),l(0)):!o.ctrl&&!o.meta&&!o.tab&&r&&1===r.length&&r>=" "&&(k(e=>e+r),a(0),l(0)));E(e=>nextSortMode(e))}}}),c)return Xe.createElement(Ge,{flexDirection:"column",paddingLeft:2},Xe.createElement(CO,{label:"Loading sessions"}));if(0===r.length)return Xe.createElement(Ge,{flexDirection:"column",paddingLeft:2},Xe.createElement(PO,{message:"No previous sessions found",hint:"Press Esc to go back"}));const V=G.slice(i,i+F),z=s<G.length?G[s]:null,q=p&&z?`Delete "${getSessionSummary({session:z})}"? Press Enter to confirm, any other key to cancel.`:null,K=getFilteredEmptyState({namedOnly:T,searchQuery:w,branchFilter:u,currentBranch:N});return Xe.createElement(_D,{title:"Resume Session",subtitle:`Sort: ${_$[b]} · Name: ${T?"Named":"All"} · Branch: ${u?N??"unknown":"All"}`},Xe.createElement(Ge,{marginBottom:1,width:"100%"},Xe.createElement(kI,{query:w,resultCount:w?G.length:void 0,placeholder:"Type to search sessions..."})),Xe.createElement(Ge,{marginBottom:1},Xe.createElement(Ve,{color:Wx,bold:!0},L$("#",6),L$("Modified",12),L$("Git Branch",22),L$("Messages",12),"Summary",v?" · Path":"")),0===G.length?Xe.createElement(Ge,{marginBottom:1},Xe.createElement(PO,{message:K.text,hint:K.hint})):Xe.createElement(Ge,{flexDirection:"column"},V.map((e,t)=>{const r=i+t,o=s===r,a=p&&o,l=a?void 0:Rx.YELLOW,c=resolveRowColor({isDeletePending:a,isCurrentSession:e.id===n,isSelected:o}),d=truncateString2({text:e.gitBranch||"-",maxChars:20}),u=v?toRelativePath(`${$}/${e.id}.jsonl`):null;return Xe.createElement(Ve,{key:e.id,color:c,backgroundColor:o?eI:void 0,bold:o,wrap:"truncate-end"},L$(`${r+1}.`,6),L$(formatRelativeTimeShort({timestamp:e.lastModified}),12),L$(d,22),L$(String(e.messageCount),12),renderRowSummary({session:e,isSelected:o,nameColor:l}),u?Xe.createElement(Ve,{color:Rx.DIM},` ${u}`):null," ")})),Xe.createElement(Ge,{marginTop:1}),"rename"===M&&Xe.createElement(Ge,{marginBottom:1},Xe.createElement(Ve,{color:Rx.CYAN},"Rename: "),Xe.createElement(TextInput,{value:R,onChange:O,onSubmit:B,singleLine:!0,stripBracketedPaste:!0})),D&&Xe.createElement(Ge,{marginBottom:1},Xe.createElement(bO,{glyph:!1},D)),q&&Xe.createElement(Ge,{marginBottom:1},Xe.createElement(Ve,{color:Rx.RED},q)),h&&Xe.createElement(Ge,{marginBottom:1},Xe.createElement(bO,{glyph:!1},h)),y&&Xe.createElement(Ge,{marginBottom:1},Xe.createElement(EO,{glyph:!1},y)),G.length>F&&Xe.createElement(Ve,{color:Rx.DIM},"Showing ",i+1,"–",Math.min(i+F,G.length)," ","of ",G.length,i>0?" · ↑ more":"",i+F<G.length?" · ↓ more":""),Xe.createElement(kA,{marginTop:0,hints:["enter resume","ctrl+s sort","ctrl+n named","ctrl+r rename","ctrl+d delete","ctrl+p path","ctrl+b branch","type to search"]}))},"SessionsResumeTable"),U$=Ze(__name(function SessionView2({onSelectSession:e,onClose:t,currentSessionId:n}){return Xe.createElement(F$,{onSelectSession:e,onClose:t,currentSessionId:n})},"SessionView"));Ex(),Ex();var j$=__name(({onTrust:e,onExit:t})=>{const{exit:n}=Je(),[r,o]=et(1),s=process.cwd(),a=$(),i=a&&s.startsWith(a)?`~${s.slice(a.length)}`:s;return Ye((s,a)=>{if(a.upArrow||a.downArrow)o(1===r?2:1);else{if(a.return)return 1===r?void e():(t(),void n());if("1"!==s)return"2"===s?(t(),void n()):void((a.escape||a.ctrl&&"c"===s)&&(t(),n()));e()}}),Xe.createElement(_D,{title:"Do you trust the files in this folder?",subtitle:i,hint:"↑/↓ to navigate · enter to select · esc to exit"},Xe.createElement(Ge,{flexDirection:"column"},Xe.createElement(Ve,null,"Command Code may read files in this folder. Reading untrusted files may lead Command Code to behave in unexpected ways."),Xe.createElement(Ge,{marginTop:1},Xe.createElement(Ve,null,"With your permission Command Code may execute files in this folder. Executing untrusted code is unsafe."))),Xe.createElement(Ge,{marginTop:1,flexDirection:"column"},Xe.createElement(Ge,null,Xe.createElement(UD,{isSelected:1===r}),Xe.createElement(jD,{isSelected:1===r,idleColor:ND}," ","1. Yes, proceed")),Xe.createElement(Ge,null,Xe.createElement(UD,{isSelected:2===r}),Xe.createElement(jD,{isSelected:2===r,idleColor:ND}," ","2. No, exit"))))},"TrustPrompt"),B$=Ze(__name(function TrustView2({staticKey:e,onTrust:t,onExit:n}){return Xe.createElement(Xe.Fragment,null,Xe.createElement(XI,{staticKey:e}),Xe.createElement(j$,{onTrust:t,onExit:n}))},"TrustView"));Ex(),Ex();var W$=new Map;function enqueueAgentSlashCommand(e){const t=W$.get(e.sessionId);t?t.push(e.command):W$.set(e.sessionId,[e.command])}function drainAgentSlashCommands(e){const t=W$.get(e.sessionId);return t&&0!==t.length?(W$.delete(e.sessionId),t):[]}function useAgentSlashCommandQueue({sessionId:e,isCmdCodeBusy:t,onCommand:n}){const r=tt(!1);nt(()=>{if(t||r.current)return;const o=drainAgentSlashCommands({sessionId:e});0!==o.length&&(r.current=!0,(async()=>{try{for(const e of o)await n(e)}finally{r.current=!1}})())},[t,e,n])}function useAuth(){const[e,t]=et(null),[n,r]=et(()=>getConfiguredModel()),[o,s]=et(!1),[a,i]=et(null),[l,c]=et(!1),[d,u]=et(!1);return{currentProvider:e,setCurrentProvider:t,currentModel:n,setCurrentModel:r,isOAuthMode:o,setIsOAuthMode:s,authComponentInfo:a,setAuthComponentInfo:i,showProviderNotification:l,setShowProviderNotification:c,premiumCreditsExhausted:d,setPremiumCreditsExhausted:u,providerNotificationTimer:tt(null),modelNotificationTimer:tt(null)}}__name(enqueueAgentSlashCommand,"enqueueAgentSlashCommand"),__name(drainAgentSlashCommands,"drainAgentSlashCommands"),__name(useAgentSlashCommandQueue,"useAgentSlashCommandQueue"),Ex(),Px(),__name(useAuth,"useAuth"),Ex(),Px();var H$=__name(()=>{const[e,t]=et({isExecuting:!1,currentCommand:null});return{executeBash:ot(async(e,n,r)=>{t({isExecuting:!0,currentCommand:e});try{const t=await runUserBashCommand({command:e});n(n=>completePendingBashEntry({feed:n,command:e,output:t})),r()}finally{t({isExecuting:!1,currentCommand:null})}},[]),executionState:e}},"useBashExecution");Ex(),Ex(),Px(),Ex(),Px();var G$={detectIDE:dC,isIdeIpcConnected:__name(async e=>{const t=kC(),n=await t.connect(e);return t.disconnect(),n},"isIdeIpcConnected"),log:dlog,platform:__name(()=>process.platform,"platform")};Ex();var V$=null,z$={};function requestReload(e){V$=e}function discardPendingReload(){V$=null}function consumePendingReload(){const e=V$;return V$=null,e}function setOriginalInvocation(e){z$=e}function getOriginalInvocation(){return z$}function resolveProviderOrReport(e){return resolveCommandProviderId(e.provider)||(e.setFeed(t=>[...t,tg(`Unknown provider '${e.provider}'. Run /provider to see available providers.`)]),null)}async function handleLoginCommand({provider:e,setFeed:t,setShowLoginOverlay:n,setAuthComponentInfo:r}){const o=e?.trim();if(o){const e=resolveProviderOrReport({provider:o,setFeed:t});if(!e)return;const n=getProviderConfig(e),s=n?.authComponent;return n?.requiresAuth&&s?r?void r({provider:e,Component:s}):void t(e=>[...e,tg("Provider login is not available here.")]):void t(t=>[...t,Yp(`${getProviderDisplayName(e)} does not use provider login. Run /login without a provider for Command Code account auth.`)])}const s=await resolveLoginCommand({onDebugError:__name(e=>{process.env.DEBUG&&console.error("Failed to load credentials for display:",e)},"onDebugError")});"already-logged-in"!==s.kind?n(!0):t(e=>[...e,Yp(s.message)])}function handleLoginComplete({success:e,message:t,setShowLoginOverlay:n,setFeed:r,setStatus:o}){if(n(!1),!e)return r(e=>[...e,tg(t)]),void o("Ready...");r(e=>[...e,Yp(t)]),invalidateBillingContext(),o("Ready...")}function handleLoginCancel({setShowLoginOverlay:e,setFeed:t,setStatus:n}){e(!1),t(e=>[...e,Yp("Authentication cancelled")]),n("Ready...")}async function handleLogoutCommand({provider:e,setFeed:t,setRetryAttempt:n,setIsCmdCodeBusy:r}){const o=e?.trim();if(o){const e=resolveProviderOrReport({provider:o,setFeed:t});if(!e)return;const n=getProviderConfig(e);if(!n?.requiresAuth)return void t(t=>[...t,Yp(`${getProviderDisplayName(e)} does not use provider logout. Run /logout without a provider for Command Code account auth.`)]);try{const n=await providerLogout({provider:e}),r=getProviderDisplayName(e);t(e=>[...e,Yp(n?`Logged out of ${r}`:`No saved ${r} credential found`)])}catch(n){const r=n instanceof Error?n.message:"Unknown error";t(t=>[...t,tg(`Failed to log out of ${getProviderDisplayName(e)}: ${r}`)])}return}const s=await runCommandLogoutFlow({env:process.env});s.success&&invalidateBillingContext(),s.turnInterrupted&&(n(null),r(!1)),t(e=>[...e,"error"===s.notice.kind?tg(s.notice.message):Yp(s.notice.message)])}function parseChangelogVersions(e){return e.split(/^(?=## )/m).map(e=>e.trim()).filter(e=>e.startsWith("## "))}function findChangelogPath(e){let t=r(m(e));for(let e=0;e<6;e++){const e=n(t,"CHANGELOG.md");if(y(e))return e;const o=r(t);if(o===t)return null;t=o}return null}function handleChangelog({setFeed:e,rawArguments:t="",moduleUrl:n}){const r=findChangelogPath(n??import.meta.url);if(!r)return void e(e=>[...e,Yp("No changelog available in this build.")]);const o=parseChangelogVersions(S(r,"utf8"));if(0===o.length)return void e(e=>[...e,Yp("The changelog is empty.")]);const s="all"===t.trim().toLowerCase()?o.length:10,a=o.slice(0,s).join("\n\n"),i=o.length-s,l=i>0?`\n\n_…and ${i} earlier releases · /changelog all_`:"";e(e=>[...e,eg(`**What's new**\n\n${a}${l}`)])}async function releaseHarness(e){if(e){try{await(NO(e)?.flush())}catch{}$O(e)}}async function handleSelectSession({selectedSessionId:e,previousSessionId:t,sessionLoadIdRef:n,setFeed:r,setLiveEntries:o,setSessionId:s,setShowSessionSelector:a,setSessionLoaded:i,setStaticKey:l,setShareInfo:c,setCurrentModel:d,inTuiResume:u=!1}){const m=crypto.randomUUID();n.current=m;const p=__name(()=>n.current!==m,"isStale");t&&t!==e&&await releaseHarness(t),r([]),o([]),clearSessionTodos(),setNextSessionStartSource("resume"),s(e),a(!1),i(!0);const g=await resolveSessionSwitch({sessionId:e,inTuiResume:u,isStale:p,onDebug:dlog});if("superseded"===g.status)return;if("error"===g.status){if(p())return;return console.error("Failed to load session:",g.message),r([tg(g.message)]),a(!1),i(!1),void s(crypto.randomUUID())}if(g.adoptedModel&&d?.(g.adoptedModel),g.shareInfo&&c({url:g.shareInfo.url,secret:g.shareInfo.secret}),p())return;r(g.feed);const h=seedTodosFromFeedEntries(g.feed);NO(e)?.applyTodoUserEdit({todos:h}),g.bannerModelChanged||isWrappedChild()?hardResetForResize():FI(),l(e=>e+1)}__name(requestReload,"requestReload"),__name(discardPendingReload,"discardPendingReload"),__name(consumePendingReload,"consumePendingReload"),__name(setOriginalInvocation,"setOriginalInvocation"),__name(getOriginalInvocation,"getOriginalInvocation"),Ex(),Px(),__name(resolveProviderOrReport,"resolveProviderOrReport"),__name(handleLoginCommand,"handleLoginCommand"),__name(handleLoginComplete,"handleLoginComplete"),__name(handleLoginCancel,"handleLoginCancel"),__name(handleLogoutCommand,"handleLogoutCommand"),Ex(),Px(),__name(parseChangelogVersions,"parseChangelogVersions"),__name(findChangelogPath,"findChangelogPath"),__name(handleChangelog,"handleChangelog"),Ex(),Px(),Ex(),Px(),__name(releaseHarness,"releaseHarness"),__name(handleSelectSession,"handleSelectSession");var q$="Nothing to clone yet.";async function handleCloneCommand(e){const t=NO(e.sessionId);if(t)try{const n=await t.cloneSession();if(!n)return void e.setFeed(e=>[...e,Yp(q$)]);e.setFeed(e=>[...e,Yp(`Cloned to ${n.newId} — switching…`)]),await handleSelectSession({selectedSessionId:n.newId,previousSessionId:e.sessionId,sessionLoadIdRef:e.sessionLoadIdRef,setFeed:e.setFeed,setLiveEntries:e.setLiveEntries,setSessionId:e.setSessionId,setShowSessionSelector:e.setShowSessionSelector,setSessionLoaded:e.setSessionLoaded,setStaticKey:e.setStaticKey,setShareInfo:e.setShareInfo,setCurrentModel:e.setCurrentModel,inTuiResume:!0})}catch{e.setFeed(e=>[...e,tg("Couldn't clone the session (storage error). Staying on the current session.")])}else e.setFeed(e=>[...e,Yp(q$)])}async function handleCompactCommand({sessionId:e,setFeed:t,setStatus:n,setIsCmdCodeBusy:r,setContextUsage:o,setStaticKey:s}){try{r(!0),n("Compacting conversation...");const a=await LO({sessionId:e,baseUrl:getApiBaseUrl()}),i=await a.compact();FI(),s(e=>e+1);const l=buildCompactCommandNotice(i);t(e=>[...e,Yp(l.message)]),r(!1),n("Ready..."),o(buildPostCompactContextUsage())}catch(e){t(t=>[...t,tg(buildCompactErrorNotice(e).message)]),r(!1),n("Ready...")}}__name(handleCloneCommand,"handleCloneCommand"),Ex(),Px(),__name(handleCompactCommand,"handleCompactCommand"),Ex(),Px();var K$=__name(e=>{const t=e.metadata?.blockOf;return"string"==typeof t?t:e.id},"groupIdOf"),Y$=__name(e=>e.replace(/^(?:[^\S\n]*\n)+/,"").replace(/\s+$/,""),"stripOuterBlankLines");function findLastAssistantText(e){for(let t=e.length-1;t>=0;t--){const n=e[t];if(!n||"assistant"!==n.role)continue;if(!n.input.trim())continue;const r=K$(n),o=[];for(let n=t;n>=0;n--){const t=e[n];if(!t||"assistant"!==t.role||K$(t)!==r)break;const s=Y$(t.input);s&&o.unshift(s)}return o.length>1?o.join("\n\n"):n.input}return null}async function handleCopy({feed:e,setFeed:t}){const n=findLastAssistantText(e);if(!n)return void t(e=>[...e,Yp("Nothing to copy yet — no reply in this session.")]);const r=await writeClipboardText(n),o=n.length.toLocaleString("en-US");t(e=>[...e,Yp(r?`Copied the last reply to the clipboard (${o} chars).`:"Could not reach the clipboard — is this a headless terminal?")])}function getAuthKey3(){return getCommandAuthKey({runtime:getCommandConfigRuntime(),path:getAuthFile(),env:process.env})}function trackFirstMessage(){(async()=>{await getAuthKey3()&&await detectAndTrackFirstMessage({loadUserConfig:loadUserConfig,updateUserConfig:updateUserConfig,trackLifecycleEvent:__name(e=>trackLifecycleEvent({...e,isTelemetryEnabled:isTelemetryEnabled,createClient:__name(()=>createApiClient({baseUrl:getApiBaseUrl()}),"createClient"),log:dlog}),"trackLifecycleEvent"),log:dlog})})().catch(()=>{})}function isWhitespaceOnly3(e){return 0===e.trim().length}function routeTodoWriteEntry(e){const{entry:t,setFeed:n,setLiveEntries:r}=e;if("running"===t.metadata?.status)return!0;const o="output"in t?t.output:void 0,s="string"==typeof o?kg(o):null;if(!s)return!1;const a=projectUserEdits(s);return a.every(e=>"completed"===e.status)?(clearSessionTodos(),a.length>0&&routeHarnessFeedEntry({entry:{...t,output:JSON.stringify(a)},setFeed:n,setLiveEntries:r}),!0):(setSessionTodos(s),!0)}function createBlockCommittingRouter(e){const{setFeed:t,setLiveEntries:n}=e,r=new Map;function buildBlockEntries(e,t,n){const r=[];for(const o of n){if(isWhitespaceOnly3(o))continue;const n=t.committedEntryCount;t.committedEntryCount+=1;const{status:s,...a}=e.metadata??{};r.push({...e,id:`${e.id}-block-${n}`,input:o,metadata:{...a,continuation:n>0,blockOf:e.id}})}return r}function routeRunningAssistant(e){let o=r.get(e.id);o||(o={stream:createBlockStream(),committedEntryCount:0},r.set(e.id,o));const s=o.stream.advance(e.input),a=buildBlockEntries(e,o,s.newlyCompleted);a.length>0&&t(e=>[...e,...a]);const i={...e,input:s.openTail,metadata:{...e.metadata,continuation:o.committedEntryCount>0}};n(t=>{const n=t.findIndex(t=>t.id===e.id);if(-1===n)return[...t,i];const r=[...t];return r[n]=i,r})}function routeFinalAssistant(e){n(t=>t.filter(t=>t.id!==e.id));const o=r.get(e.id);if(!o)return void(isWhitespaceOnly3(e.input)||t(t=>[...t,e]));r.delete(e.id);const s=o.stream.finalize(e.input);if(0===o.committedEntryCount&&s.remaining.length<=1)return void(isWhitespaceOnly3(e.input)||t(t=>[...t,e]));const a=buildBlockEntries(e,o,s.remaining);a.length>0&&t(e=>[...e,...a])}return __name(buildBlockEntries,"buildBlockEntries"),__name(routeRunningAssistant,"routeRunningAssistant"),__name(routeFinalAssistant,"routeFinalAssistant"),__name(function routeEntry(e){if(isDiscardedEntry(e))return r.delete(e.id),void routeHarnessFeedEntry({entry:e,setFeed:t,setLiveEntries:n});if("assistant"===e.role)"running"!==e.metadata?.status?routeFinalAssistant(e):routeRunningAssistant(e);else{if("tool"===e.role&&"todo_write"===e.name&&routeTodoWriteEntry({entry:e,setFeed:t,setLiveEntries:n}))return;routeHarnessFeedEntry({entry:e,setFeed:t,setLiveEntries:n})}},"routeEntry")}async function getBillingLink({billingLink:e,setBillingLink:t}){return resolveCommandBillingLink({existingBillingLink:e,client:createApiClient({baseUrl:getApiBaseUrl()}),onResolvedBillingLink:t})}async function runModInputInterception(e){const t=getActiveModHost();if(!t||"user"!==e.role||e.isAutomated||e.isMeta||e.isGoalContinuation||0===e.input.length||(e.images?.length??0)>0)return{action:"continue"};try{return await t.transformInput({text:e.input})}catch{return{action:"continue"}}}async function handleSubmit(e){const{role:t,input:n,images:r,imageTokenPaths:o,ideContext:s,ideHint:a,displayMessage:i,isAutomated:l,isMeta:c,hiddenMessages:d,isGoalContinuation:u,isGoalBootstrap:m,suppressUserEcho:p,feed:g,setFeed:h,setLiveEntries:f,isCmdCodeBusy:y,setIsCmdCodeBusy:S,setQueuedMessages:w,setStatus:k,setInteractionTokens:v,updateStatus:C,setUpdateStatus:b,billingLink:E,setBillingLink:T,currentModel:P,currentProvider:M,isOAuthMode:x,premiumCreditsExhausted:I,setPremiumCreditsExhausted:A,setCurrentModel:R,sessionId:O,isSubmittingRef:D,setInput:L,setStaticKey:N,executeBash:$}=e,_=resolveSubmitStartPlan({role:t,input:n,isCmdCodeBusy:y,isSubmitting:D.current,displayMessage:i,isAutomated:l,isMeta:c,hiddenMessages:d,images:r,ideContext:s,ideHint:a});if("skip"===_.kind&&!n.length)return _.outcome;if(C&&b(null),v(0),"skip"===_.kind)return _.outcome;if("bash"===_.kind){D.current=!0;const e=Zp(n);return h([...g,e]),L(""),await $(n,e=>{h(e)},()=>{FI(),N(e=>e+1)}),D.current=!1,"completed"}if("queue"===_.kind)return w(e=>[...e,_.queuedMessage]),l||L(""),_.outcome;D.current=!0;const F=await runModInputInterception(e);if("handled"===F.action){D.current=!1;const e=F.message;return e&&h(t=>[...t,Yp(e)]),"skipped"}const U="transform"===F.action?F.text:n,j=await checkOAuthSetupRequired({currentProvider:M??null,isOAuthMode:x??!1,providerAuthHeaders:providerAuthHeaders});if(j)return D.current=!1,k(j),h(e=>[...e,tg(j)]),"skipped";S(!0),k(mg()),l||L("");let B=!1,W=null,H=null,G=null,V=0;const z=createSubmitGoalSupervisor(e);let q=null;const K=resolvePremiumCreditsPreflight({premiumCreditsExhausted:I,currentModel:P});if(K.blocked)return B=!0,k(K.status),h(e=>[...e,Yp(K.message)]),S(!1),D.current=!1,K.outcome;try{q=await z.getGoalTurnBudget();const e=await LO({sessionId:O,baseUrl:getApiBaseUrl()});if(m&&!isCommandGoalLoopArmed(O))return"skipped";const t=clipboardImagesToUserContent(r),n=s?`${s}\n\n${U}`:U,l=t.length>0?[...t,{type:"text",text:n}]:s?[{type:"text",text:n}]:void 0,c={...r&&r.length>0?{images:r,...o?{imageTokenPaths:o}:{}}:{},...a?{ideHint:a}:{}};trackFirstMessage();const u=await runHarnessTurnIntoFeed({harness:e,input:U,turnUserInput:l,runQuery:runHarnessQuery,setFeed:h,setLiveEntries:f,displayMessage:i,suppressUserEcho:p,additionalContent:hiddenMessagesToUserContent(d),inputMeta:_.inputMeta,maxTurns:q?.remainingTurns,onRoundTrip:__name(e=>{V=e},"onRoundTrip"),echoMetadata:Object.keys(c).length>0?c:void 0,setStatus:k,onInteractionTokens:v,onRunError:__name(e=>{H=e},"onRunError"),routeEntry:createBlockCommittingRouter({setFeed:h,setLiveEntries:f}),scrubGoalCompleteMarker:isCommandGoalLoopArmed(O)});if(H)throw formatRunError(H);return G=u.finalText,V=u.turnCount,"completed"}catch(e){const t=resolveSubmitErrorAction({error:e,sessionId:O});if("interrupted"===t.kind)return B=!0,t.outcome;if(trackError({error:sanitizeErrorForTelemetry({error:e instanceof Error?e:new Error(String(e)),label:"submit_error"}),context:{component:co.SUBMIT,heading:"Prompt submission failed",code:t.kind}}),B=!0,W=t.goalErrorKind,"insufficient-credits"===t.kind){k(t.status);const e=await getBillingLink({billingLink:E,setBillingLink:T});return h(t=>[...t,tg(buildInsufficientCreditsSubmitActionMessage({billingUrl:e}))]),t.outcome}if("premium-credits-exhausted"===t.kind)return A?.(!0),R?.(t.fallbackModelId),FI(),N(e=>e+1),k(t.status),h(e=>[...e,Yp(t.message)]),t.outcome;k(t.status);const n="info"===t.renderKind?Yp(t.message):tg(t.message);return h(e=>[...e,n]),t.outcome}finally{S(!1),B||k("Ready..."),D.current=!1,await z.afterTurn({assistantText:B?null:G,errorKind:B?W:null,isGoalContinuation:u,turnsUsed:V,goalStartedAt:q?.startedAt})}return"skipped"}function emitGoalNotice(e,t){e(e=>[...e,Yp(t.message,buildGoalNoticeMetadata(t))])}function createSubmitGoalSupervisor(e){const{sessionId:t,setFeed:n}=e;return createGoalTurnSupervisor({sessionId:t,isArmed:__name(()=>isCommandGoalLoopArmed(t),"isArmed"),disarm:__name(()=>disarmCommandGoalLoop(t),"disarm"),loadSessionMeta:__name(()=>loadCommandSessionMeta({sessionId:t}),"loadSessionMeta"),saveGoal:__name(e=>saveCommandSessionMeta({sessionId:t,meta:{goal:e}}),"saveGoal"),verifyCompletion:__name(async e=>(NO(t)??await LO({sessionId:t,baseUrl:getApiBaseUrl()})).verifyGoal(e),"verifyCompletion"),getEvidence:__name(()=>{const e=NO(t);return e?harnessRecentToolEvidence(e):""},"getEvidence"),emitCompletion:__name(e=>{n(t=>[...t,Yp("",e)])},"emitCompletion"),emitNotice:__name(e=>emitGoalNotice(n,e),"emitNotice"),runContinuation:__name(({prompt:t})=>handleSubmit({...e,...buildGoalContinuationTurnFields({prompt:t})}),"runContinuation")})}async function handleDesignCommand({ctx:e,rawArguments:t,positionalArgs:n,command:r}){try{const o=await resolveDesignCommand({runtime:createNodeRuntime(),rawArguments:t,positionalArgs:n});if("help"===o.status)return void e.setShowDesignGuide(!0);if("missing-skill"===o.status)return void e.setFeed(e=>[...e,tg(qk)]);const s=await handleSubmit({input:o.command.visible,hiddenMessages:[{role:"user",content:o.command.hidden}],role:"user",displayMessage:r,isAutomated:!0,feed:e.feed,setFeed:e.setFeed,setLiveEntries:e.setLiveEntries,isCmdCodeBusy:e.isCmdCodeBusy,setIsCmdCodeBusy:e.setIsCmdCodeBusy,setQueuedMessages:e.setQueuedMessages,setStatus:e.setStatus,setInteractionTokens:e.setInteractionTokens,updateStatus:e.updateStatus,setUpdateStatus:e.setUpdateStatus,billingLink:e.billingLink,setBillingLink:e.setBillingLink,currentModel:e.currentModel,currentProvider:e.currentProvider,isOAuthMode:e.isOAuthMode,premiumCreditsExhausted:e.premiumCreditsExhausted,setPremiumCreditsExhausted:e.setPremiumCreditsExhausted,setCurrentModel:e.setCurrentModel,sessionId:e.sessionId,isSubmittingRef:e.isSubmittingRef,setInput:e.setInput,setStaticKey:e.setStaticKey,executeBash:e.executeBash}),{modeName:a}=o.command;if("completed"===s&&a&&isDesignMode(a)){const t=getDesignModeSuggestions(a);t&&e.setPendingDesignSuggestion?.(t)}}catch(t){e.setFeed(e=>[...e,tg(buildDesignSkillLoadErrorMessage(t))])}}__name(findLastAssistantText,"findLastAssistantText"),__name(handleCopy,"handleCopy"),Ex(),Px(),Ex(),Px(),Ex(),Px(),__name(getAuthKey3,"getAuthKey"),__name(trackFirstMessage,"trackFirstMessage"),Ex(),Px(),__name(isWhitespaceOnly3,"isWhitespaceOnly"),__name(routeTodoWriteEntry,"routeTodoWriteEntry"),__name(createBlockCommittingRouter,"createBlockCommittingRouter"),__name(getBillingLink,"getBillingLink"),__name(runModInputInterception,"runModInputInterception"),__name(handleSubmit,"handleSubmit"),__name(emitGoalNotice,"emitGoalNotice"),__name(createSubmitGoalSupervisor,"createSubmitGoalSupervisor"),__name(handleDesignCommand,"handleDesignCommand"),Ex(),Px();var J$="Nothing to export yet — the transcript is created on the first message.",Q$=new Set(["html","jsonl","md"]);function matchFormatKeyword(e){const t=e.toLowerCase();return Q$.has(t)?t:void 0}function resolveConfiguredExportFormat(e){return e?matchFormatKeyword(e)??"html":"html"}function defaultExportFilename(e,t){return`command-code-session-${e.slice(0,8)}.${t}`}function resolveExportRoute(e){const t=e.rawPath.trim();if(!t){const t=e.defaultFormat??"html";return{kind:"target",format:t,path:n(e.cwd,defaultExportFilename(e.sessionId,t))}}const r=matchFormatKeyword(t);if(r)return{kind:"target",format:r,path:n(e.cwd,defaultExportFilename(e.sessionId,r))};const o=i(t)?t:s(e.cwd,t);if(y(o)&&b(o).isDirectory())return{kind:"target",format:"html",path:n(o,defaultExportFilename(e.sessionId,"html"))};const a=d(o).toLowerCase();return a?".html"===a?{kind:"target",format:"html",path:o}:".jsonl"===a?{kind:"target",format:"jsonl",path:o}:".md"===a?{kind:"target",format:"md",path:o}:{kind:"unknown-extension",extension:a}:{kind:"target",format:"html",path:n(o,defaultExportFilename(e.sessionId,"html"))}}function exportedMessage(e){const t=toRelativePath(e.path),n=bt.isSupported?createOSC8Link(fileUrl(e.path),t,!1):t;return`Exported ${e.formatLabel} session to ${n}`}async function buildSessionHtmlExport(e){const{messages:t}=await loadCommandSessionMessages({sessionId:e.sessionId});if(0===t.length)return null;const n=await loadCommandUserRenamedTitle({sessionId:e.sessionId})??e.sessionId;return renderSessionHtml({messages:fromV2(t.map(e=>e.message)),title:n,sessionId:e.sessionId,exportedAt:(new Date).toISOString(),...e.currentModel?{model:e.currentModel}:{}})}async function buildSessionMarkdownExport(e){const{messages:t}=await loadCommandSessionMessages({sessionId:e.sessionId});if(0===t.length)return null;const n=await loadCommandUserRenamedTitle({sessionId:e.sessionId})??e.sessionId;return renderSessionMarkdown({messages:fromV2(t.map(e=>e.message)),title:n,sessionId:e.sessionId,exportedAt:(new Date).toISOString(),...e.currentModel?{model:e.currentModel}:{}})}async function exportJsonl(e){const t=n(getProjectSessionDir({env:process.env,cwd:e.cwd}),`${e.sessionId}.jsonl`);if(y(t)){try{P(t,e.target)}catch(t){const n=t instanceof Error?t.message:String(t);return void e.setFeed(e=>[...e,Yp(`Export failed: ${n}`)])}e.setFeed(t=>[...t,Yp(exportedMessage({path:e.target,formatLabel:"JSONL"}))])}else e.setFeed(e=>[...e,Yp(J$)])}async function exportHtml(e){let t;try{t=await buildSessionHtmlExport({sessionId:e.sessionId,currentModel:e.currentModel})}catch(t){const n=t instanceof Error?t.message:String(t);return void e.setFeed(e=>[...e,Yp(`Export failed: ${n}`)])}if(t){try{k(e.target,t,"utf8")}catch(t){const n=t instanceof Error?t.message:String(t);return void e.setFeed(e=>[...e,Yp(`Export failed: ${n}`)])}e.setFeed(t=>[...t,Yp(exportedMessage({path:e.target,formatLabel:"HTML"}))])}else e.setFeed(e=>[...e,Yp(J$)])}async function exportMarkdown(e){let t;try{t=await buildSessionMarkdownExport({sessionId:e.sessionId,currentModel:e.currentModel})}catch(t){const n=t instanceof Error?t.message:String(t);return void e.setFeed(e=>[...e,Yp(`Export failed: ${n}`)])}if(t){try{k(e.target,t,"utf8")}catch(t){const n=t instanceof Error?t.message:String(t);return void e.setFeed(e=>[...e,Yp(`Export failed: ${n}`)])}e.setFeed(t=>[...t,Yp(exportedMessage({path:e.target,formatLabel:"Markdown"}))])}else e.setFeed(e=>[...e,Yp(J$)])}async function handleExport(e){const t=getCurrentWorkingDirectory(),n=await loadUserConfig(),r=resolveExportRoute({rawPath:e.rawPath,cwd:t,sessionId:e.sessionId,defaultFormat:resolveConfiguredExportFormat(n.defaultExportFormat)});"unknown-extension"!==r.kind?"jsonl"!==r.format?"md"!==r.format?await exportHtml({sessionId:e.sessionId,target:r.path,currentModel:e.currentModel,setFeed:e.setFeed}):await exportMarkdown({sessionId:e.sessionId,target:r.path,currentModel:e.currentModel,setFeed:e.setFeed}):await exportJsonl({sessionId:e.sessionId,target:r.path,cwd:t,setFeed:e.setFeed}):e.setFeed(e=>[...e,Yp(`Unknown export extension "${r.extension}". Supported export formats: .html, .jsonl, .md`)])}async function handleForkCommand(e,t){const n=NO(e.sessionId),r=await resolveForkCommand({sourceId:e.sessionId,rawName:t,hasActiveSession:Boolean(n),messageCount:n?harnessSessionMessages(n).length:0});if("notice"!==r.kind)try{await handleSelectSession({selectedSessionId:r.newId,previousSessionId:e.sessionId,sessionLoadIdRef:e.sessionLoadIdRef,setFeed:e.setFeed,setLiveEntries:e.setLiveEntries,setSessionId:e.setSessionId,setShowSessionSelector:e.setShowSessionSelector,setSessionLoaded:e.setSessionLoaded,setStaticKey:e.setStaticKey,setShareInfo:e.setShareInfo,setCurrentModel:e.setCurrentModel,inTuiResume:!0}),e.setFeed(e=>[...e,Jp({name:r.title})])}catch{e.setFeed(e=>[...e,tg(oh)])}else e.setFeed(e=>[...e,"error"===r.notice.kind?tg(r.notice.message):Yp(r.notice.message)])}function setMode(e,t){e.permissionModeRef.current=t,e.setPermissionMode(t),NO(e.sessionId)?.setPermissionMode({mode:t})}async function handlePlanCommand({rawArguments:e,ctx:t}){const n=resolvePlanCommand({rawArguments:e,currentMode:t.permissionModeRef.current});if(t.permissionModeRef.current!==n.nextMode&&setMode(t,n.nextMode),"notice"===n.kind)return t.setFeed(e=>[...e,Yp(n.message)]),void(n.clearInput&&t.setInput(""));await handleSubmit({input:n.task,role:"user",displayMessage:n.displayMessage,isAutomated:!0,feed:t.feed,setFeed:t.setFeed,setLiveEntries:t.setLiveEntries,isCmdCodeBusy:t.isCmdCodeBusy,setIsCmdCodeBusy:t.setIsCmdCodeBusy,setQueuedMessages:t.setQueuedMessages,setStatus:t.setStatus,setInteractionTokens:t.setInteractionTokens,updateStatus:t.updateStatus,setUpdateStatus:t.setUpdateStatus,billingLink:t.billingLink,setBillingLink:t.setBillingLink,currentModel:t.currentModel,currentProvider:t.currentProvider,isOAuthMode:t.isOAuthMode,premiumCreditsExhausted:t.premiumCreditsExhausted,setPremiumCreditsExhausted:t.setPremiumCreditsExhausted,setCurrentModel:t.setCurrentModel,sessionId:t.sessionId,isSubmittingRef:t.isSubmittingRef,setInput:t.setInput,setStaticKey:t.setStaticKey,executeBash:t.executeBash})}__name(matchFormatKeyword,"matchFormatKeyword"),__name(resolveConfiguredExportFormat,"resolveConfiguredExportFormat"),__name(defaultExportFilename,"defaultExportFilename"),__name(resolveExportRoute,"resolveExportRoute"),__name(exportedMessage,"exportedMessage"),__name(buildSessionHtmlExport,"buildSessionHtmlExport"),__name(buildSessionMarkdownExport,"buildSessionMarkdownExport"),__name(exportJsonl,"exportJsonl"),__name(exportHtml,"exportHtml"),__name(exportMarkdown,"exportMarkdown"),__name(handleExport,"handleExport"),Ex(),Px(),__name(handleForkCommand,"handleForkCommand"),Ex(),Px(),__name(setMode,"setMode"),__name(handlePlanCommand,"handlePlanCommand"),Ex(),Px();var X$=[{title:"Composing",rows:[{keys:"Enter",action:"Send the prompt"},{keys:"Shift+Enter / Alt+Enter",action:"Insert a newline"},{keys:"Ctrl+G",action:"Edit the prompt in $EDITOR"},{keys:"Ctrl+S",action:"Stash / restore the current prompt"},{keys:"↑ / ↓",action:"Browse prompt history"},{keys:"@",action:"Mention a file (fuzzy search)"},{keys:"/",action:"Open the command menu"},{keys:"!",action:"Bash mode — run a shell command"}]},{title:"While it works",rows:[{keys:"Esc",action:"Interrupt the current turn"},{keys:"Type + Enter",action:"Queue a steering message"},{keys:"Ctrl+X",action:"Open the todo manager (/todos) for the current plan"}]},{title:"Transcript",rows:[{keys:"Ctrl+O",action:"Toggle expanded tool output"},{keys:"Ctrl+E / Ctrl+Y",action:"Toggle the full transcript"}]},{title:"Session & modes",rows:[{keys:"Shift+Tab",action:"Cycle mode: standard → accept edits → plan"},{keys:"Alt+P",action:"Quick model switch"},{keys:"Esc Esc",action:"Rewind to a checkpoint"},{keys:"Ctrl+C Ctrl+C",action:"Exit"}]}];function buildHotkeysMarkdown(){const e=["**Keyboard shortcuts**"];for(const t of X$){e.push("",`**${t.title}**`);for(const n of t.rows)e.push(`- \`${n.keys}\` — ${n.action}`)}return e.join("\n")}function handleHotkeys({setFeed:e}){e(e=>[...e,eg(buildHotkeysMarkdown())])}async function handleImportCommand({setFeed:e},t=""){const n=resolveAgentImportSourceArg(t);if(!n.ok)return void e(e=>[...e,tg(n.message)]);const r=createNodeRuntime();try{const t=await detectAgentImport({runtime:r,sources:n.sources});if(0===t.items.length&&0===t.sourceErrors.length)return void e(e=>[...e,Yp("No setup was found to import (looked for Claude Code, Codex, Cursor, Pi, OpenCode, and Gemini CLI config in your home directory and this project).")]);const o=await importAgentSetup({runtime:r,inventory:t});e(e=>[...e,Yp(formatAgentImportSummary(o))])}catch(t){e(e=>[...e,tg(`Import failed: ${t instanceof Error?t.message:"unknown error"}`)])}}function setMode2(e,t){e.permissionModeRef.current=t,e.setPermissionMode(t),NO(e.sessionId)?.setPermissionMode({mode:t})}async function handleModeCommand({rawArguments:e,ctx:t}){const n=resolveModeCommand({rawArguments:e,currentMode:t.permissionModeRef.current});n.nextMode&&setMode2(t,n.nextMode),t.setFeed(e=>[...e,Yp(n.message)]),t.setInput("")}async function applyRenameResult(e){const t=await resolveRenameCommand({name:e.name,sessionId:e.sessionId});if(e.setFeed(e=>[...e,"error"===t.notice.kind?tg(t.notice.message):Yp(t.notice.message)]),"renamed"===t.kind){e.setRenamedTerminalTitle(t.name);try{(e.harness??await LO({sessionId:e.sessionId,baseUrl:getApiBaseUrl()})).setSessionName(t.name)}catch{}}}async function autoRenameSession({sessionId:e,setFeed:t,setRenamedTerminalTitle:n,setStatus:r,setIsCmdCodeBusy:o}){o(!0),r("Naming session…");try{const r=await LO({sessionId:e,baseUrl:getApiBaseUrl()}),o=await r.regenerateTitle();if(!o)return void t(e=>[...e,Yp("Nothing to name yet — send a message first, or use /rename <name>.")]);await applyRenameResult({name:o,sessionId:e,setFeed:t,setRenamedTerminalTitle:n,harness:r})}catch{t(e=>[...e,Yp("Could not generate a title. Try /rename <name> instead.")])}finally{o(!1),r("Ready...")}}async function handleRenameCommand(e){e.name.trim()?await applyRenameResult({name:e.name,sessionId:e.sessionId,setFeed:e.setFeed,setRenamedTerminalTitle:e.setRenamedTerminalTitle}):await autoRenameSession(e)}async function handleNameCommand(e){if(e.name.trim())return void await applyRenameResult({name:e.name,sessionId:e.sessionId,setFeed:e.setFeed,setRenamedTerminalTitle:e.setRenamedTerminalTitle});const t=NO(e.sessionId)?.getSessionStats().name,n=t?null:await loadCommandSessionMeta({sessionId:e.sessionId}).catch(()=>null),r=t??n?.title;e.setFeed(e=>[...e,Yp(r?`Current name: ${r}`:"This session has no name yet. Use /name <name> to set one.")])}function handleRewindCommand({sessionId:e,setFeed:t,setShowRewindSelector:n}){const r=NO(e),o=resolveRewindCommand({hasActiveConversation:Boolean(r),checkpointCount:r?.listCheckpoints().length??0});"notice"!==o.kind?n(!0):t(e=>[...e,"error"===o.notice.kind?tg(o.notice.message):Yp(o.notice.message)])}async function handleRewindSelect({messageId:e,mode:t,sessionId:n,setFeed:r,setStatus:o,setShowRewindSelector:s,setStaticKey:a,setInput:i}){s(!1);const l=NO(n);if(!l)return;o("Restoring checkpoint...");const c=await performRewindRestore({harness:l,messageId:e,mode:t});if("restored"===c.kind)return r(c.feed),l.applyTodoUserEdit({todos:seedTodosFromFeedEntries(c.feed)}),FI(),a(e=>e+1),c.promptToRestore&&i(c.promptToRestore),r(e=>[...e,Yp(c.notice.message)]),void o(c.statusMessage);r(e=>[...e,"error"===c.notice.kind?tg(c.notice.message):Yp(c.notice.message)]),o(c.statusMessage)}function handleRewindCancel({setShowRewindSelector:e}){e(!1)}function compactTranscriptPath(e){return`${toRelativePath(getProjectsBasePath({env:process.env}))}/…/${c(e)}`}function formatSessionFileLine(e){const{absolutePath:t,exists:n,linksSupported:r}=e;return n?r?createOSC8Link(fileUrl(t),compactTranscriptPath(t),!1):t:`${t} (not created yet)`}function handleSessionFile({sessionId:e,setFeed:t}){if(!e)return void t(e=>[...e,Yp("No active session.")]);const r=n(getProjectSessionDir({env:process.env,cwd:getCurrentWorkingDirectory()}),`${e}.jsonl`),o=formatSessionFileLine({absolutePath:r,exists:y(r),linksSupported:bt.isSupported});t(t=>[...t,Yp(`Session ID: ${e}\nCurrent session file: ${r}`,{isSessionFile:!0,sessionFileId:e,sessionFileLine:o})])}__name(buildHotkeysMarkdown,"buildHotkeysMarkdown"),__name(handleHotkeys,"handleHotkeys"),Ex(),Px(),__name(handleImportCommand,"handleImportCommand"),Ex(),Px(),__name(setMode2,"setMode"),__name(handleModeCommand,"handleModeCommand"),Ex(),Px(),__name(applyRenameResult,"applyRenameResult"),__name(autoRenameSession,"autoRenameSession"),__name(handleRenameCommand,"handleRenameCommand"),__name(handleNameCommand,"handleNameCommand"),Ex(),Px(),__name(handleRewindCommand,"handleRewindCommand"),__name(handleRewindSelect,"handleRewindSelect"),__name(handleRewindCancel,"handleRewindCancel"),Ex(),Px(),__name(compactTranscriptPath,"compactTranscriptPath"),__name(formatSessionFileLine,"formatSessionFileLine"),__name(handleSessionFile,"handleSessionFile"),Ex(),Px();var Z$=Te(U),e_=/https:\/\/gist\.github\.com\/\S+/;function parseGistUrl(e){const t=e_.exec(e);return t?t[0]:null}function execErrorText(e){if(!(e instanceof Error))return String(e);const t=e;return("string"==typeof t.stderr?t.stderr.trim():"")||e.message}async function defaultCreateGist(e){const{stdout:t}=await Z$("gh",["gist","create",e,"--desc","Command Code session"],{encoding:"utf8"});return{stdout:String(t)}}async function resolveShareGistFormat(e){const t=(e??"").trim();return t?matchFormatKeyword(t):resolveConfiguredExportFormat((await loadUserConfig()).defaultShareGistFormat)}async function writeGistPayload(e){const t=n(e.tempDir,`command-code-session-${e.sessionId.slice(0,8)}.${e.format}`);if("jsonl"===e.format){const r=n(getProjectSessionDir({env:process.env,cwd:getCurrentWorkingDirectory()}),`${e.sessionId}.jsonl`);return y(r)?(P(r,t),t):null}if("md"===e.format){const n=await e.buildMarkdownExport({sessionId:e.sessionId,currentModel:e.currentModel});return n?(await q(t,n,"utf8"),t):null}const r=await e.buildHtmlExport({sessionId:e.sessionId,currentModel:e.currentModel});return r?(await q(t,r,"utf8"),t):null}async function handleShareGistCommand(e){const{isCommandAvailable:t=isCommandAvailable,buildHtmlExport:r=buildSessionHtmlExport,buildMarkdownExport:o=buildSessionMarkdownExport,createGist:s=defaultCreateGist,writeClipboardText:a=writeClipboardText}=e.deps??{},i=__name(t=>e.setFeed(e=>[...e,Yp(t)]),"info");if(!t("gh"))return void i("Requires the GitHub CLI (gh) — https://cli.github.com");const l=await resolveShareGistFormat(e.rawFormatArg);if(!l)return void i(`Unknown gist format "${(e.rawFormatArg??"").trim()}". Supported gist formats: html, jsonl, md`);let c;try{c=await ie(n(_(),"cmd-share-"));const t=await writeGistPayload({format:l,sessionId:e.sessionId,currentModel:e.currentModel,tempDir:c,buildHtmlExport:r,buildMarkdownExport:o});if(!t)return void i("Nothing to share yet — the transcript is created on the first message.");const{stdout:d}=await s(t),u=parseGistUrl(d);if(!u)return void i(`gh gist create did not return a URL: ${d.trim()}`);await a(u),i(`Shared session gist: ${bt.isSupported?createOSC8Link(u,u,!1):u}`)}catch(e){const t=execErrorText(e);i(/auth/i.test(t)?`${t} — run gh auth login`:`Share failed: ${t}`)}finally{c&&await ee(c,{recursive:!0,force:!0}).catch(()=>{})}}async function copyOrFallback(e,t){return!!await writeClipboardText(e)||(t(buildShareClipboardFallbackStatus(e)),!1)}async function handleShareCommand({sessionId:e,shareInfo:t,setShareInfo:n,setStatus:r,setShowShareNotification:o}){!t&&e&&r("Creating share link...");const s=createApiClient({baseUrl:getApiBaseUrl()}),a=await createCommandSessionShareLink({client:s,sessionId:e,existingShareInfo:t,harness:e?NO(e):void 0,projectRoot:global.COMMAND_CODE_CWD||process.cwd()});"no-session"!==a.status&&"error"!==a.status?(n(a.shareInfo),await copyOrFallback(a.shareInfo.url,r)&&(r(""),o(!0),setTimeout(()=>{o(!1)},shareNotificationDurationMs(a.status)))):r(a.message)}async function handleUnshareCommand({sessionId:e,shareInfo:t,setShareInfo:n,setStatus:r,setUnshareNotificationMessage:o}){e&&t&&r("Removing share link...");const s=createApiClient({baseUrl:getApiBaseUrl()}),a=await deleteCommandSessionShareLink({client:s,sessionId:e,shareInfo:t,harness:e?NO(e):void 0});if("no-session"!==a.status){if("not-shared"===a.status)return o(a.message),void setTimeout(()=>o(""),kk);if("error"===a.status)return r(a.message),void setTimeout(()=>r(""),kk);o(a.message),r(""),n(null),setTimeout(()=>{o("")},kk)}else r(a.message)}async function loadPersistedTraceIds(e){if(e.loadTraceIds)return e.loadTraceIds();if(!e.sessionId)return[];const t=await loadCommandSessionMeta({sessionId:e.sessionId}).catch(()=>null),n=t?.traceIds;return Array.isArray(n)?n.filter(e=>"string"==typeof e&&e.length>0):[]}async function handleTrace({setFeed:e,sessionId:t,loadTraceIds:n}){const r=getTraceId();if(r){const t=await writeClipboardText(r)?" (copied to clipboard)":"";return void e(e=>[...e,Yp(`Trace ID: ${r}${t}`)])}const o=await loadPersistedTraceIds({sessionId:t,loadTraceIds:n});if(o.length>0){const t=o[o.length-1],n=await writeClipboardText(t)?" (copied to clipboard)":"";return void e(e=>[...e,Yp(`Trace ID: ${t}${n}`)])}const s=isTelemetryInitialized()?"Trace ID not generated: Send a message first":"No trace ID — request tracing is off this session.";e(e=>[...e,Yp(s)])}function actionErrorMessage(e){return e instanceof Error?e.message:"Unknown error"}async function handleTreeCommand({sessionId:e,setFeed:t,setShowTreeSelector:n,setTreeFilterMode:r,setTreeBranchSummarySkipPrompt:o}){const s=NO(e),a=resolveTreeCommand({hasActiveConversation:Boolean(s),treeEntryCount:s?.getSessionTree().length??0});if("notice"===a.kind)return void t(e=>[...e,"error"===a.notice.kind?tg(a.notice.message):Yp(a.notice.message)]);const[i,l]=await Promise.all([getTreeFilterMode(),getBranchSummarySkipPrompt()]);r(i),o(l),n(!0)}async function handleTreeSelect({entryId:e,summarize:t,customInstructions:n,sessionId:r,setFeed:o,setShowTreeSelector:s,setStaticKey:a,setInput:i}){const l=NO(r);if(!l)return{aborted:!1};try{const r=await l.navigateTree({targetId:e,summarize:t,...n?{customInstructions:n}:{}});return r.aborted?{aborted:!0}:r.cancelled?(o(e=>[...e,Yp("Already at this point")]),{aborted:!1}):(s(!1),o(reconstructFeedFromMessages(harnessSessionMessages(l))),FI(),a(e=>e+1),r.editorText&&i(r.editorText),o(e=>[...e,Yp("Navigated to selected point")]),{aborted:!1})}catch(e){return o(t=>[...t,tg(`Failed to navigate: ${actionErrorMessage(e)}`)]),{aborted:!1}}}function handleTreeCancel({setShowTreeSelector:e}){e(!1)}function handleTreeAbortSummary({sessionId:e}){NO(e)?.abortBranchSummary()}function handleTreeLabel({entryId:e,label:t,sessionId:n,setFeed:r}){const o=NO(n);if(o)try{o.setTreeLabel({targetId:e,label:t})}catch(e){r(t=>[...t,tg(`Failed to set label: ${actionErrorMessage(e)}`)])}}function announceCompletedUpdate({fromVersion:e,toVersion:t}){console.log(yt.green(`Updated ${e} → ${t}`))}function trackUpdateFailure({fromVersion:e,targetVersion:t,trigger:n,userName:r,failureReason:o}){trackError({error:new Error(`Update failed: ${e} -> ${t}${o?`: ${o}`:""}`),context:{component:co.UPDATER,heading:"CLI update failed (atomic + fallback)","cmd.update.from_version":e,"cmd.update.target_version":t,"cmd.update.trigger":n,...o&&{"cmd.update.failure_reason":o},...r&&{"user.name":r}}})}__name(parseGistUrl,"parseGistUrl"),__name(execErrorText,"execErrorText"),__name(defaultCreateGist,"defaultCreateGist"),__name(resolveShareGistFormat,"resolveShareGistFormat"),__name(writeGistPayload,"writeGistPayload"),__name(handleShareGistCommand,"handleShareGistCommand"),__name(copyOrFallback,"copyOrFallback"),__name(handleShareCommand,"handleShareCommand"),__name(handleUnshareCommand,"handleUnshareCommand"),Ex(),Px(),__name(loadPersistedTraceIds,"loadPersistedTraceIds"),__name(handleTrace,"handleTrace"),Ex(),Px(),__name(actionErrorMessage,"actionErrorMessage"),__name(handleTreeCommand,"handleTreeCommand"),__name(handleTreeSelect,"handleTreeSelect"),__name(handleTreeCancel,"handleTreeCancel"),__name(handleTreeAbortSummary,"handleTreeAbortSummary"),__name(handleTreeLabel,"handleTreeLabel"),Ex(),Px(),Ex(),Px(),__name(announceCompletedUpdate,"announceCompletedUpdate"),__name(trackUpdateFailure,"trackUpdateFailure");var t_={createLifecycleEventClient:__name(()=>createApiClient({baseUrl:getApiBaseUrl()}),"createLifecycleEventClient"),isTelemetryEnabled:isTelemetryEnabled,log:dlog,onCompletedUpdate:announceCompletedUpdate,trackUpdateFailure:trackUpdateFailure},n_={updatedVersionThisSession:null};async function handleUpdateCommand({setFeed:e,setStatus:t,setIsCmdCodeBusy:n,setUpdateStatus:r,pinnedStatusRef:o}){const s=__name(e=>{"busy"===e.type&&n(e.value),"pin-status"===e.type&&(o.current=e.value),"status"===e.type&&t(e.value),"update-status"===e.type&&r(e.value)},"emit"),a=await runTuiUpdateCommand({state:n_,host:t_,copy:{binCommand:`${getBinaryCommand()}`,updateCommand:"npm i -g command-code"},emit:s});trackTuiUpdateCommandTelemetry(a),"error"!==a.level?e(e=>[...e,Yp(a.message,a.metadata)]):e(e=>[...e,tg(a.message)])}function tildeHome(e){const t=N.homedir();return t&&e.startsWith(t)?`~${e.slice(t.length)}`:e}function formatWorktreePathLine(e){return` ${lt.dim(it.arrowRight)} ${createOSC8Link(fileUrl(e),tildeHome(e))}`}function enterWorktreeFromFlag(e,t={}){const{quiet:n=!1,track:r=!0}=t,o=process.cwd();if(!isGitRepo(o))return{ok:!1,error:"--worktree requires a git repository (none found here)."};const s=getMainWorktreeRoot(o)??o,a=createWorktree({spec:"string"==typeof e?e.trim():void 0,cwd:o});if(!a.ok)return{ok:!1,error:a.error};try{process.chdir(a.target.worktreePath),global.COMMAND_CODE_CWD=a.target.worktreePath}catch(e){return{ok:!1,error:`couldn't enter worktree: ${e instanceof Error?e.message:String(e)}`}}if(r&&a.created&&markAutoCreatedWorktree({worktreePath:a.target.worktreePath,branch:a.target.branch,baseSha:a.baseSha,mainRoot:s}),!n){const e=a.created?"Created":"Entered",t=a.created?lt.dim(` (branch ${a.target.branch}${a.usedRemote?", from origin":""})`):"",n=a.created&&a.copiedFiles>0?lt.dim(` · copied ${a.copiedFiles} file(s)`):"",r=a.created&&a.copyFailedFiles.length>0?lt.dim(` · ${a.copyFailedFiles.length} include copy failure(s)`):"";process.stdout.write(`${lt.cyan(it.squareSmallFilled)} ${e} worktree ${lt.bold(a.target.name)}${t}${n}${r}\n${formatWorktreePathLine(a.target.worktreePath)}\n`)}return dlog(`[worktree] entered ${a.target.worktreePath} (created=${a.created})`),{ok:!0,name:a.target.name,path:a.target.worktreePath}}__name(handleUpdateCommand,"handleUpdateCommand"),Ex(),Px(),Ex(),Px(),__name(tildeHome,"tildeHome"),__name(formatWorktreePathLine,"formatWorktreePathLine"),__name(enterWorktreeFromFlag,"enterWorktreeFromFlag");var r_=__name((e,t)=>e.setFeed(e=>[...e,Yp(t)]),"info"),o_=__name((e,t)=>e.setFeed(e=>[...e,tg(t)]),"error");function renderList(e,n){const r=listWorktrees(e);return 0===r.length?"No worktrees found.":["Worktrees:",...r.map(r=>{const o=samePath(r.path,e)?"●":"○",s=t.relative(n,r.path),a=r.isMain?".":s&&!s.startsWith("..")?s:tildeHome(r.path);return` ${o} ${r.isMain?`${a} (main)`:a}${r.branch?` [${r.branch}]`:" [detached]"}`}),"","Switch with /worktree <name>."].join("\n")}async function handleWorktreeCommand(e,t){const n=process.cwd();if(!isGitRepo(n))return void o_(e,"/worktree requires a git repository.");const r=getMainWorktreeRoot(n)??n,o=t[0]?.toLowerCase();if(!o||"list"===o||"ls"===o)return void r_(e,renderList(n,r));if("remove"===o||"rm"===o){const o=t[1];return o?void await handleRemove(e,o,n,r):void o_(e,"Usage: /worktree remove <name>")}const s="new"===o||"create"===o||"add"===o?t[1]:t[0];await handleSwitch(e,s,n)}async function handleRemove(e,n,r,o){const s=resolveTarget(n,o);if(samePath(s.worktreePath,r))return void o_(e,"Can't remove the worktree you're in. Switch away first, then remove it.");if(!listWorktrees(r).some(e=>samePath(e.path,s.worktreePath)))return void o_(e,`No worktree named "${n}".`);const a=removeWorktree({worktreePath:s.worktreePath,cwd:r,deleteBranch:isManagedWorktreePath(s.worktreePath,o)?s.branch:void 0});a.ok?r_(e,`Removed worktree "${n}".`):o_(e,`Couldn't remove "${n}": ${a.message}. Commit or stash changes, or remove it manually with: git worktree remove --force ${t.relative(o,s.worktreePath)}`)}async function handleSwitch(e,t,n){const r=createWorktree({spec:t,cwd:n});if(!r.ok)return void o_(e,`Couldn't create worktree: ${r.error}`);if(samePath(r.target.worktreePath,n))return void r_(e,`Already in worktree "${r.target.name}".`);const o=r.created?"Created":"Reusing",s=r.created&&r.copiedFiles>0?` (copied ${r.copiedFiles} file(s))`:"",a=r.created&&r.copyFailedFiles.length>0?` (${r.copyFailedFiles.length} include copy failure(s))`:"";r_(e,`${o} worktree "${r.target.name}"${s}${a}. Switching… (a fresh session starts in the worktree; this one stays resumable).`),await(NO(e.sessionId)?.flush().catch(()=>{})),requestReload(buildReloadCarryoverState({sessionId:e.sessionId,permissionMode:e.permissionModeRef.current,worktree:r.target.name})),e.setShouldExit(!0)}function handleHelpCommand({setFeed:e}){e(e=>[...e,eg(Cg)])}async function handleTerminalSetupCommand({setFeed:e}){const t=Kp("/terminal-setup"),n=setupVSCodeTerminal(),r=rg(n.message,!n.success,n.details),o=rg("Terminal tab titles need no setup — titles are set automatically via standard escape sequences (VS Code 1.117+ honors them out of the box).",!1);e(e=>[...e,t,r,o])}async function handleIDESetupCommand({setFeed:e}){const t=await runIdeSetup({host:G$,moduleUrl:import.meta.url}),n=og(t.status,t.ide,t.details);e(e=>[...e,n])}async function handleClearCommand({setFeed:e,setLiveEntries:t,setQueuedMessages:n,setShareInfo:r,setShowShareNotification:o,setUnshareNotificationMessage:s,setStaticKey:a,setContextUsage:i,setInteractionTokens:l,sessionId:c,setSessionId:d,clearSessionPermissions:u}){e([]),t([]),n([]),clearSessionTodos(),clearShellTasks(),FI(),r(null),o(!1),s(""),await deleteCommandSessionShareInfo({sessionId:c}).catch(()=>{});const m=NO(c);m?.stopBackgroundLearning(),await(m?.flush().catch(()=>{})),$O(c),setNextSessionStartSource("clear"),d(crypto.randomUUID()),u(),a(e=>e+1),i(null),l(0)}async function handleInitCommand({setFeed:e}){const t=await resolveInitMemoryCommand({projectRoot:process.cwd()});e(e=>[...e,Yp(t.message)])}async function runGoalTurn(e,t,n,r){await handleSubmit({role:"user",input:buildSlashCommandMessage({commandName:"/goal",skillName:"goal",rawArguments:t}),images:n,ideContext:r,suppressUserEcho:!0,persistVisibleMessage:!0,isAutomated:!0,isGoalBootstrap:!0,hiddenMessages:[{role:"user",content:buildGoalPrompt({kind:"bootstrap",goalText:t})}],feed:e.feed,setFeed:e.setFeed,setLiveEntries:e.setLiveEntries,isCmdCodeBusy:e.isCmdCodeBusy,setIsCmdCodeBusy:e.setIsCmdCodeBusy,setQueuedMessages:e.setQueuedMessages,setStatus:e.setStatus,setInteractionTokens:e.setInteractionTokens,updateStatus:e.updateStatus,setUpdateStatus:e.setUpdateStatus,billingLink:e.billingLink,setBillingLink:e.setBillingLink,currentModel:e.currentModel,currentProvider:e.currentProvider,isOAuthMode:e.isOAuthMode,premiumCreditsExhausted:e.premiumCreditsExhausted,setPremiumCreditsExhausted:e.setPremiumCreditsExhausted,setCurrentModel:e.setCurrentModel,sessionId:e.sessionId,isSubmittingRef:e.isSubmittingRef,setInput:e.setInput,setStaticKey:e.setStaticKey,executeBash:e.executeBash})}async function handleGoalCommand(e,t,n,r){const o=e.isSubmittingRef.current||e.isCmdCodeBusy,s=await resolveGoalSlashCommand({rawArguments:t,sessionId:e.sessionId,isSubmitting:o,permissionMode:e.permissionModeRef.current,maxTurnsOverride:getGoalMaxTurnsOverride(),loadSessionMeta:__name(async e=>await loadCommandSessionMeta(e),"loadSessionMeta"),saveSessionMeta:__name(async e=>saveCommandSessionMeta(e),"saveSessionMeta"),armGoalLoop:armCommandGoalLoop,disarmGoalLoop:disarmCommandGoalLoop,isGoalLoopArmed:isCommandGoalLoopArmed});e.setFeed(e=>[...e,Yp(s.notice.message,s.notice.metadata)]),o&&"notice"===s.status&&"cleared"===s.notice.metadata?.goalNoticeKind&&NO(e.sessionId)?.requestStopAfterTurn(),"start"===s.status&&await runGoalTurn(e,s.goalText,n,r)}async function openExternalSlashCommandTarget({setFeed:e,target:t}){e(e=>[...e,Yp(`Opening ${createOSC8Link(t.url,t.noticeLabel,!1)} in your browser…`)]);try{await wt(t.url,{wait:!1,background:!0})}catch{const{fallback:n}=t;if("info"===n.kind)return void e(e=>[...e,Yp(n.message)]);e(e=>[...e,tg("Failed to open browser"),eg(createOSC8Link(t.url,n.label,!1))])}}function handleLearnCommand({setAutoLearnTaste:e,setShowTasteOnboarding:t,setTasteOnboardingEntryId:n,setFeed:r}){e(!0),t(!0);const o=ng();n(o.id),r(e=>[...e,o])}async function handleCommand(e,t,n,r){const o=e.trim().split(/\s+/)[0]??"",s=o.split(":")[0]?.replace(/^\//,"")||"unknown";return withSpan({name:`command:${s}`,attributes:{"cmd.command.name":s,"cmd.command.arg_length":Math.max(e.trim().length-o.length,0)},fn:__name(async o=>{const s=await dispatchCommand(e,t,n,r);return o.setAttribute("cmd.command.status",s.status),s},"fn")})}async function dispatchCommand(e,t,n,r){const o=resolveSlashCommandRoute({command:e,isBusy:t.isCmdCodeBusy});if("blocked"===o.kind)return t.setFeed(e=>[...e,Yp(o.message)]),{status:"handled"};if("resume-by-id"===o.kind)return await handleSelectSession({selectedSessionId:o.selectedSessionId,previousSessionId:t.sessionId,sessionLoadIdRef:t.sessionLoadIdRef,setFeed:t.setFeed,setLiveEntries:t.setLiveEntries,setSessionId:t.setSessionId,setShowSessionSelector:t.setShowSessionSelector,setSessionLoaded:t.setSessionLoaded,setStaticKey:t.setStaticKey,setShareInfo:t.setShareInfo,setCurrentModel:t.setCurrentModel,inTuiResume:!0}),{status:"handled"};if("skill"===o.kind){if(0===o.skillName.length)return t.setFeed(e=>[...e,Yp("Name a skill to run: /skill:<name>. Run /skills to see what is installed.")]),{status:"handled"};const e=buildSkillNamespacedCommand(o.skillName);return await handleSkillCommand({commandName:`/${o.skillName}`,command:`${e}${o.rawArguments?` ${o.rawArguments}`:""}`,rawArguments:o.rawArguments,positionalArgs:o.positionalArgs,ctx:t})||(t.setFeed(e=>[...e,tg(`No skill named "${o.skillName}". Run /skills to see what is installed.`)]),{status:"handled"})}if("unknown"===o.kind)return{status:"unknown"};const{commandName:s,rawArguments:a,positionalArgs:i}=o;if("/exit"===s||"/quit"===s)return discardPendingReload(),t.setShouldExit(!0),{status:"handled"};if("/reload"===s)return await(NO(t.sessionId)?.flush().catch(()=>{})),requestReload(buildReloadCarryoverState({sessionId:t.sessionId,permissionMode:t.permissionModeRef.current})),t.setShouldExit(!0),{status:"handled"};if("/clear"===s)return await handleClearCommand(t),{status:"handled"};if("/help"===s)return await handleHelpCommand(t),{status:"handled"};if("/share"===s){const e=a.trim();return"gist"===e||e.startsWith("gist ")?(await handleShareGistCommand({sessionId:t.sessionId,currentModel:t.currentModel,rawFormatArg:e.slice(4).trim(),setFeed:t.setFeed}),{status:"handled"}):(await handleShareCommand({sessionId:t.sessionId,shareInfo:t.shareInfo,setShareInfo:t.setShareInfo,setStatus:t.setStatus,setShowShareNotification:t.setShowShareNotification}),{status:"handled"})}if("/unshare"===s)return await handleUnshareCommand({sessionId:t.sessionId,shareInfo:t.shareInfo,setShareInfo:t.setShareInfo,setStatus:t.setStatus,setUnshareNotificationMessage:t.setUnshareNotificationMessage}),{status:"handled"};if("/taste"===s)return t.setShowTasteConfig(!0),{status:"handled"};if("/learn-taste"===s)return handleLearnCommand(t),{status:"handled"};if("/design"===s)return await handleDesignCommand({ctx:t,rawArguments:a,positionalArgs:i,command:e}),{status:"handled"};if("/skills"===s)return t.setShowSkillsConfig(!0),{status:"handled"};if("/plans"===s)return t.setPlansTarget(a.trim()||null),t.setShowPlansView(!0),{status:"handled"};if("/plan-review"===s)return t.setPlansTarget(T$),t.setShowPlansView(!0),{status:"handled"};if("/config"===s)return t.setShowSettingsConfig(!0),{status:"handled"};if("/provider"===s)return t.setShowProviderSelector(!0),{status:"handled"};if("/model"===s)return await handleModelCommand(t,a),{status:"handled"};if("/effort"===s)return await handleEffortCommand(t,a),{status:"handled"};if("/memory"===s)return t.setShowMemorySelector(!0),{status:"handled"};if("/resume"===s||"/sessions"===s)return t.setShowSessionSelector(!0),{status:"handled"};if("/fork"===s)return await handleForkCommand(t,a.trim()||void 0),{status:"handled"};if("/worktree"===s)return await handleWorktreeCommand(t,i),{status:"handled"};if("/clone"===s)return await handleCloneCommand(t),{status:"handled"};if("/init"===s)return await handleInitCommand(t),{status:"handled"};if("/import"===s)return await handleImportCommand(t,a),{status:"handled"};if("/goal"===s)return await handleGoalCommand(t,a,n,r),{status:"handled"};if("/agents"===s)return t.setShowAgentsConfig(!0),{status:"handled"};if("/mcp"===s)return t.setShowMcpManager(!0),{status:"handled"};if("/compact"===s)return await handleCompactCommand({sessionId:t.sessionId,setFeed:t.setFeed,setStatus:t.setStatus,setIsCmdCodeBusy:t.setIsCmdCodeBusy,setContextUsage:t.setContextUsage,setStaticKey:t.setStaticKey}),{status:"handled"};if("/compact-mode"===s)return t.setShowCompactModeSelector(!0),{status:"handled"};if("/update"===s)return t.setInput(""),await handleUpdateCommand({setFeed:t.setFeed,setStatus:t.setStatus,setIsCmdCodeBusy:t.setIsCmdCodeBusy,setUpdateStatus:t.setUpdateStatus,pinnedStatusRef:t.pinnedStatusRef}),{status:"handled"};if("/context"===s)return t.setShowContextView(!0),{status:"handled"};if("/rewind"===s)return handleRewindCommand({sessionId:t.sessionId,setFeed:t.setFeed,setShowRewindSelector:t.setShowRewindSelector}),{status:"handled"};if("/tree"===s)return await handleTreeCommand({sessionId:t.sessionId,setFeed:t.setFeed,setShowTreeSelector:t.setShowTreeSelector,setTreeFilterMode:t.setTreeFilterMode,setTreeBranchSummarySkipPrompt:t.setTreeBranchSummarySkipPrompt}),{status:"handled"};if("/login"===s)return await handleLoginCommand({provider:a,setFeed:t.setFeed,setShowLoginOverlay:t.setShowLoginOverlay,setAuthComponentInfo:t.setAuthComponentInfo}),t.setInput(""),{status:"handled"};if("/logout"===s)return await handleLogoutCommand({provider:a,setFeed:t.setFeed,setRetryAttempt:t.setRetryAttempt,setIsCmdCodeBusy:t.setIsCmdCodeBusy}),t.setInput(""),{status:"handled"};if("/courses"===s){const e=resolveExternalSlashCommandTarget({commandName:s});return e&&await openExternalSlashCommandTarget({setFeed:t.setFeed,target:e}),{status:"handled"}}if("/feedback"===s){const e=resolveExternalSlashCommandTarget({commandName:s,rawArguments:a});return e&&await openExternalSlashCommandTarget({setFeed:t.setFeed,target:e}),t.setInput(""),{status:"handled"}}if("/trace"===s)return await handleTrace({setFeed:t.setFeed,sessionId:t.sessionId}),t.setInput(""),{status:"handled"};if("/copy"===s)return await handleCopy({feed:t.feed,setFeed:t.setFeed}),t.setInput(""),{status:"handled"};if("/export"===s)return await handleExport({sessionId:t.sessionId,rawPath:a,currentModel:t.currentModel,setFeed:t.setFeed}),t.setInput(""),{status:"handled"};if("/changelog"===s)return handleChangelog({setFeed:t.setFeed,rawArguments:a}),t.setInput(""),{status:"handled"};if("/hotkeys"===s)return handleHotkeys({setFeed:t.setFeed}),t.setInput(""),{status:"handled"};if("/todos"===s)return 0===getSessionTodos().length?t.setFeed(e=>[...e,Yp("No todos in this session yet.")]):requestTodosManagerOpen(),t.setInput(""),{status:"handled"};if("/session-file"===s)return handleSessionFile({sessionId:t.sessionId,setFeed:t.setFeed}),t.setInput(""),{status:"handled"};if("/terminal-setup"===s)return await handleTerminalSetupCommand(t),{status:"handled"};if("/ide"===s)return await handleIDESetupCommand(t),{status:"handled"};if("/add-dir"===s)return t.setShowAddDirModal(!0),{status:"handled"};if("/rename"===s)return await handleRenameCommand({name:a.trim(),sessionId:t.sessionId,setFeed:t.setFeed,setRenamedTerminalTitle:t.setRenamedTerminalTitle,setStatus:t.setStatus,setIsCmdCodeBusy:t.setIsCmdCodeBusy}),t.setInput(""),{status:"handled"};if("/name"===s)return await handleNameCommand({name:a.trim(),sessionId:t.sessionId,setFeed:t.setFeed,setRenamedTerminalTitle:t.setRenamedTerminalTitle}),t.setInput(""),{status:"handled"};if("/usage"===s)return t.setShowUsageOverlay(!0),{status:"handled"};if("/theme"===s)return await handleThemeCommand(t,a),{status:"handled"};if("/plan"===s)return await handlePlanCommand({rawArguments:a,ctx:t}),{status:"handled"};if("/mode"===s||s.startsWith("/mode:")){const e=s.startsWith("/mode:")?s.slice(6):a;return await handleModeCommand({rawArguments:e,ctx:t}),{status:"handled"}}if("/review"===s){const e=await resolveReviewSlashCommand({rawArguments:a});return"missing-gh"===e.status?(t.setFeed(t=>[...t,Yp(e.message,e.metadata)]),t.setInput(""),{status:"handled"}):(await submitAutomatedSlashTurn({turn:e.turn,ctx:t}),{status:"handled"})}if("/pr-comments"===s){await submitAutomatedSlashTurn({turn:buildPrCommentsSlashTurn(),ctx:t});const e=NO(t.sessionId),n=resolvePrCommentsFollowUpInput(e?harnessSessionMessages(e):[]);return n&&t.setInput(n),{status:"handled"}}if("/status"===s)return t.setShowStatusView(!0),{status:"handled"};if("/upgrade"===s){const e=resolveExternalSlashCommandTarget({commandName:s,billingUrl:await getBillingLink({billingLink:t.billingLink,setBillingLink:t.setBillingLink})});return e&&await openExternalSlashCommandTarget({setFeed:t.setFeed,target:e}),{status:"handled"}}if("/extra"===s){const e=resolveExternalSlashCommandTarget({commandName:s,billingUrl:await getBillingLink({billingLink:t.billingLink,setBillingLink:t.setBillingLink})});return e&&await openExternalSlashCommandTarget({setFeed:t.setFeed,target:e}),{status:"handled"}}const l=getActiveModHost(),c=s.slice(1);if(l?.commands().some(e=>e.name===c)){try{const e=await l.runCommand({name:c,args:a}),n=e?.message;n&&t.setFeed(e=>[...e,Yp(n)]),e?.prompt&&await submitAutomatedSlashTurn({turn:buildAutomatedSlashTurn({commandName:c,rawArguments:a,fullPrompt:e.prompt}),ctx:t})}catch(e){t.setFeed(t=>[...t,tg(`Mod command /${c} failed: ${e instanceof Error?e.message:String(e)}`)])}return{status:"handled"}}const d=await resolveCustomSlashTurn({runtime:createNodeRuntime(),commandName:s,rawArguments:a,positionalArgs:i});if(d)return await submitAutomatedSlashTurn({turn:d,ctx:t}),{status:"handled"};return await handleSkillCommand({commandName:s,command:e,rawArguments:a,positionalArgs:i,ctx:t})||{status:"unknown"}}async function submitAutomatedSlashTurn({turn:e,ctx:t}){await handleSubmit({input:e.input,role:"user",displayMessage:e.displayMessage,hiddenMessages:e.hiddenMessages,isAutomated:!0,feed:t.feed,setFeed:t.setFeed,setLiveEntries:t.setLiveEntries,isCmdCodeBusy:t.isCmdCodeBusy,setIsCmdCodeBusy:t.setIsCmdCodeBusy,setQueuedMessages:t.setQueuedMessages,setStatus:t.setStatus,setInteractionTokens:t.setInteractionTokens,updateStatus:t.updateStatus,setUpdateStatus:t.setUpdateStatus,billingLink:t.billingLink,setBillingLink:t.setBillingLink,currentModel:t.currentModel,currentProvider:t.currentProvider,isOAuthMode:t.isOAuthMode,premiumCreditsExhausted:t.premiumCreditsExhausted,setPremiumCreditsExhausted:t.setPremiumCreditsExhausted,setCurrentModel:t.setCurrentModel,sessionId:t.sessionId,isSubmittingRef:t.isSubmittingRef,setInput:t.setInput,setStaticKey:t.setStaticKey,executeBash:t.executeBash})}async function handleSkillCommand({commandName:e,command:t,rawArguments:n,positionalArgs:r,ctx:o}){const s=await resolveSkillSlashTurn({runtime:createNodeRuntime(),commandName:e,command:t,rawArguments:n,positionalArgs:r});return"not-found"===s.status?null:"disabled"===s.status?(o.setFeed(e=>[...e,Yp(s.message)]),{status:"handled"}):"load-error"===s.status?(o.setFeed(e=>[...e,tg(s.message)]),{status:"handled"}):(await submitAutomatedSlashTurn({turn:s.turn,ctx:o}),{status:"handled"})}function useCommandCtx({feedState:e,sessionState:t,statusState:n,authState:r,uiOverlays:o,onboarding:s,exitState:a,permissionState:i,terminalTitleState:l,isSubmittingRef:c,executeBash:d,setInput:u}){const m=rt(()=>({feed:e.feed,setFeed:e.setFeed,setLiveEntries:e.setLiveEntries,setQueuedMessages:e.setQueuedMessages,setStatus:n.setStatus,setInteractionTokens:n.setInteractionTokens,setContextUsage:n.setContextUsage,contextUsage:n.contextUsage,setStaticKey:o.setStaticKey,updateStatus:n.updateStatus,setUpdateStatus:n.setUpdateStatus,billingLink:n.billingLink,setBillingLink:n.setBillingLink,currentModel:r.currentModel,premiumCreditsExhausted:r.premiumCreditsExhausted,setPremiumCreditsExhausted:r.setPremiumCreditsExhausted,setCurrentModel:r.setCurrentModel,setModelNotice:o.setModelNotice,currentProvider:r.currentProvider,isOAuthMode:r.isOAuthMode,setAuthComponentInfo:r.setAuthComponentInfo,shareInfo:n.shareInfo,setShareInfo:n.setShareInfo,setShowShareNotification:n.setShowShareNotification,setUnshareNotificationMessage:n.setUnshareNotificationMessage,setRetryAttempt:n.setRetryAttempt,pinnedStatusRef:n.pinnedStatusRef,setShowTasteConfig:o.setShowTasteConfig,setShowSkillsConfig:o.setShowSkillsConfig,setShowSettingsConfig:o.setShowSettingsConfig,setShowProviderSelector:o.setShowProviderSelector,setShowModelSelector:o.setShowModelSelector,setShowEffortSelector:o.setShowEffortSelector,setShowMemorySelector:o.setShowMemorySelector,setShowAgentsConfig:o.setShowAgentsConfig,setShowMcpManager:o.setShowMcpManager,setShowRewindSelector:o.setShowRewindSelector,setShowTreeSelector:o.setShowTreeSelector,setTreeFilterMode:o.setTreeFilterMode,setTreeBranchSummarySkipPrompt:o.setTreeBranchSummarySkipPrompt,setShowCompactModeSelector:o.setShowCompactModeSelector,setShowContextView:o.setShowContextView,setShowAddDirModal:o.setShowAddDirModal,setShowLoginOverlay:o.setShowLoginOverlay,setShowStatusView:o.setShowStatusView,setShowPlansView:o.setShowPlansView,setPlansTarget:o.setPlansTarget,setShowUsageOverlay:o.setShowUsageOverlay,setShowThemeSelector:o.setShowThemeSelector,setShowDesignGuide:o.setShowDesignGuide,setPendingDesignSuggestion:o.setPendingDesignSuggestion,setShowTasteOnboarding:s.setShowTasteOnboarding,setAutoLearnTaste:s.setAutoLearnTaste,setTasteOnboardingEntryId:s.setTasteOnboardingEntryId,sessionId:t.sessionId,setSessionId:t.setSessionId,sessionLoadIdRef:t.sessionLoadIdRef,sessionLoaded:t.sessionLoaded,setSessionLoaded:t.setSessionLoaded,setShowSessionSelector:o.setShowSessionSelector,setPermissionMode:i.setPermissionMode,permissionModeRef:i.permissionModeRef,clearSessionPermissions:i.clearSessionPermissions,setShouldExit:a.setShouldExit,setInput:u,isSubmittingRef:c,isCmdCodeBusy:e.isCmdCodeBusy,setIsCmdCodeBusy:e.setIsCmdCodeBusy,executeBash:d,setRenamedTerminalTitle:l.setRenamedTerminalTitle}),[e,t,n,r,o,s,a,i,l,c,d,u]),p=tt(m);return p.current=m,{commandCtx:m,onCommand:ot((e,t,n)=>handleCommand(e,p.current,t,n),[])}}__name(renderList,"renderList"),__name(handleWorktreeCommand,"handleWorktreeCommand"),__name(handleRemove,"handleRemove"),__name(handleSwitch,"handleSwitch"),__name(handleHelpCommand,"handleHelpCommand"),__name(handleTerminalSetupCommand,"handleTerminalSetupCommand"),__name(handleIDESetupCommand,"handleIDESetupCommand"),__name(handleClearCommand,"handleClearCommand"),__name(handleInitCommand,"handleInitCommand"),__name(runGoalTurn,"runGoalTurn"),__name(handleGoalCommand,"handleGoalCommand"),__name(openExternalSlashCommandTarget,"openExternalSlashCommandTarget"),__name(handleLearnCommand,"handleLearnCommand"),__name(handleCommand,"handleCommand"),__name(dispatchCommand,"dispatchCommand"),__name(submitAutomatedSlashTurn,"submitAutomatedSlashTurn"),__name(handleSkillCommand,"handleSkillCommand"),__name(useCommandCtx,"useCommandCtx"),Ex(),Px();var s_=Ro,a_=Oo;function useCreditWarning({interactionTokens:e}){const[t,n]=et(null),r=tt(null),o=tt(null),s=tt(null),a=ot(async()=>{try{const e=createApiClient({baseUrl:getApiBaseUrl()});r.current??=createCreditWarningState();const t=await checkCreditWarning({client:e,state:r.current});if(r.current=t.state,!t.message)return;n(t.message),s.current&&clearTimeout(s.current),s.current=setTimeout(()=>{n(null),s.current=null},s_)}catch{}},[]);return nt(()=>{if(0!==e)return o.current&&clearTimeout(o.current),o.current=setTimeout(()=>{a(),o.current=null},a_),()=>{o.current&&clearTimeout(o.current)}},[e,a]),nt(()=>()=>{s.current&&clearTimeout(s.current),o.current&&clearTimeout(o.current)},[]),{creditWarning:t}}function useCronWakeup({onSubmit:e}){const t=tt(e);nt(()=>{t.current=e},[e]),nt(()=>{const e=subscribeCronFire(e=>{t.current(buildCronWakeupSubmission(e))});return()=>{e()}},[])}function useExit(){const[e,t]=et(!1),[n,r]=et(null),o=tt(null),s=tt(0),a=tt(null),i=ot(()=>{o.current=null,r(null),a.current&&(clearTimeout(a.current),a.current=null)},[]);return{shouldExit:e,setShouldExit:t,pendingExitKey:n,setPendingExitKey:r,pendingExitKeyRef:o,lastExitKeyTimeRef:s,exitConfirmationTimeoutRef:a,resetPendingExitKey:i}}__name(useCreditWarning,"useCreditWarning"),Ex(),Px(),__name(useCronWakeup,"useCronWakeup"),Ex(),__name(useExit,"useExit"),Ex(),Px(),Ex(),Px();var i_="1"===process.env.CMD_TEST_INJECT_LIVE_ENTRY;function makeInjectedShellEntry(e,t,n,r={}){return{...Xp("shell_command",t,{status:n}),id:e,...r}}function buildInjectedLiveEntry(){return i_?makeInjectedShellEntry("cmd-test-injected-live-entry",process.env.CMD_TEST_INJECT_INPUT??"sleep 60","running"):null}function buildInjectedFeed(){const e=Number.parseInt(process.env.CMD_TEST_INJECT_FEED_ITEMS??"0",10);return!Number.isFinite(e)||e<=0?[]:Array.from({length:e},(e,t)=>makeInjectedShellEntry(`cmd-test-feed-${t}`,`echo item ${t}`,"completed",{output:`item ${t}`}))}__name(makeInjectedShellEntry,"makeInjectedShellEntry"),__name(buildInjectedLiveEntry,"buildInjectedLiveEntry"),__name(buildInjectedFeed,"buildInjectedFeed");var l_="1"===process.env.CMD_TEST_INJECT_STREAM,c_="cmd-test-injected-stream-entry";function streamRole(){const e=process.env.CMD_TEST_INJECT_STREAM_ROLE;return"reasoning"===e||"tool"===e||"agent"===e?e:"assistant"}function streamContentKind(){const e=process.env.CMD_TEST_INJECT_STREAM_CONTENT;return"code"===e||"paragraph"===e||"reasoning"===e||"mixed"===e||"huge"===e?e:"table"}function streamTickMs(){const e=Number.parseInt(process.env.CMD_TEST_INJECT_STREAM_TICK_MS??"",10);return Number.isFinite(e)&&e>0?e:100}function buildHugeStreamContent(){const e=[];e.push("# Huge streaming gauntlet","A very long reply exercising **every** markdown flavor while it streams. Scroll up mid-stream — the position must hold; finished blocks land in the scrollback above.");for(let t=0;t<6;t+=1){e.push(`## Section ${t} — prose, lists and a table`),e.push(...Array.from({length:4},(e,n)=>`Section ${t} paragraph ${n}: the quick brown fox keeps streaming words so this block wraps a couple of rows, with **bold**, *italic*, ***both***, ~~strikethrough~~, \`inline_code(${n})\` and a [link](https://example.com/s${t}/p${n}) mixed in.`)),e.push([`- Section ${t} unordered item one`,`- Section ${t} unordered item two`," - nested child with `code`"," - nested child with **bold**",`- Section ${t} unordered item three`].join("\n"),[`1. Section ${t} ordered first`,`2. Section ${t} ordered second`,`3. Section ${t} ordered third`].join("\n"),`> Section ${t} blockquote: streaming should never mangle a quote.\n> > And a nested quote inside it still reads fine.`);const n=Array.from({length:6},(e,n)=>`| s${t}-row-${n} | huge demo detail ${n} | ${3*n} |`);e.push(["| Key | Detail | N |","| --- | --- | --- |",...n].join("\n"),"---")}e.push("## Task list and headings ladder"),e.push(["- [x] streamed a task that is done","- [ ] a pending task with `code`","- [x] another finished task with **bold**","- [ ] the last pending task"].join("\n"),"### Heading three","#### Heading four","##### Heading five","###### Heading six"),e.push("## Code in several languages"),e.push(["```ts","const total = rows.reduce(sum);","export function streamGauntlet(rows: number[]): number {","\treturn rows.filter(Boolean).length;","}","```"].join("\n"),["```python","def stream_gauntlet(rows):",' """Docstring survives streaming."""'," return [row * 2 for row in rows if row]","```"].join("\n"),["```json","{",' "stream": "gauntlet",',' "blocks": ["table", "code", "list"],',' "huge": true',"}","```"].join("\n"),["```bash","for block in table code list; do",' echo "streaming $block"',"done","```"].join("\n"),["```diff","- const cap = 10;","+ const cap = viewportRows - reserved;","```"].join("\n")),e.push("## Wide table (column fitting / wrap layout)");const t=Array.from({length:10},(e,t)=>`| wide-${t} | alpha ${t} | beta ${t} | gamma ${t} | a longer cell that should wrap gracefully ${t} | ${11*t} |`);e.push(["| Id | Alpha | Beta | Gamma | Long description column | N |","| --- | --- | --- | --- | --- | --- |",...t].join("\n")),e.push("## Huge table (taller than the viewport — the one capped-while-open case)");const n=Array.from({length:40},(e,t)=>`| huge-row-${t} | streaming stress row number ${t} | ${7*t} |`);return e.push(["| Row | Description | N |","| --- | --- | --- |",...n].join("\n")),e.push("## Width edge cases"),e.push("CJK 漢字が流れても幅計算は崩れない、そしてまた漢字。Emoji too: 🚀🔥✨🎉🧪 — double-width glyphs must wrap correctly.","A single extremely long unbroken paragraph follows to force soft wrapping across many physical rows: "+Array.from({length:12},(e,t)=>`clause ${t} keeps the sentence rolling without a newline`).join(", ")+"."),e.push("## The end","Everything above should now sit in your scrollback exactly once.","Huge demo closing paragraph."),e.join("\n\n")}function buildStreamContent(e){return"code"===e?["```ts",...Array.from({length:34},(e,t)=>`const value_${t} = compute(${t});`),"```"].join("\n"):"paragraph"===e?Array.from({length:16},(e,t)=>`Paragraph ${t} adds a little more of the streaming story so the reply keeps growing past the viewport.`).join("\n\n"):"reasoning"===e?Array.from({length:40},(e,t)=>`step ${t}: consider the next detail`).join("\n"):"huge"===e?buildHugeStreamContent():"mixed"===e?`${Array.from({length:3},(e,t)=>`Mixed intro paragraph ${t} with enough words.`).join("\n\n")}\n\n${["| Col | Detail |","| --- | --- |",...Array.from({length:8},(e,t)=>`| row-${t} | mixed detail ${t} |`)].join("\n")}\n\nMixed closing paragraph.`:["| Item | Description | Value |","| --- | --- | --- |",...Array.from({length:20},(e,t)=>`| item-${t} | detail for row number ${t} | ${7*t} |`)].join("\n")}function buildStreamFrames(e){const t=e.split("\n");return t.length>1?t.map((e,n)=>t.slice(0,n+1).join("\n")):Array.from({length:20},(t,n)=>{const r=Math.ceil(e.length*(n+1)/20);return e.slice(0,r)})}function makeStreamRunningEntry(e,t){return"reasoning"===e?sg(t,{id:c_,status:"running"}):"tool"===e?{...Xp("shell_command",t,{status:"running"}),id:c_}:"agent"===e?{...ag({name:"Task",input:t}),id:c_}:{...Qp(t),id:c_,metadata:{status:"running"}}}function makeStreamFinalEntry(e,t){return"reasoning"===e?sg(t,{id:c_}):"tool"===e||"agent"===e?{...Xp("shell_command",t,{}),id:c_,output:"done"}:{...Qp(t),id:c_}}function maybeStartInjectedStream(e){if(!l_)return;const{setFeed:t,setLiveEntries:n,setIsCmdCodeBusy:r}=e,o=streamRole(),s=buildStreamFrames(buildStreamContent(streamContentKind())),a=streamTickMs();r(!0);const i=createBlockCommittingRouter({setFeed:t,setLiveEntries:n});i(makeStreamRunningEntry(o,s[0]??""));let l=0;const c=setInterval(()=>{if(l+=1,l<s.length)return void i(makeStreamRunningEntry(o,s[l]??""));clearInterval(c);const e=s[s.length-1]??"";i(makeStreamFinalEntry(o,e)),r(!1)},a);return()=>clearInterval(c)}__name(streamRole,"streamRole"),__name(streamContentKind,"streamContentKind"),__name(streamTickMs,"streamTickMs"),__name(buildHugeStreamContent,"buildHugeStreamContent"),__name(buildStreamContent,"buildStreamContent"),__name(buildStreamFrames,"buildStreamFrames"),__name(makeStreamRunningEntry,"makeStreamRunningEntry"),__name(makeStreamFinalEntry,"makeStreamFinalEntry"),__name(maybeStartInjectedStream,"maybeStartInjectedStream");var d_="1"===process.env.CMD_TEST_INJECT_TODOS;function todosTickMs(){const e=Number.parseInt(process.env.CMD_TEST_INJECT_TODOS_TICK_MS??"",10);return Number.isFinite(e)&&e>0?e:1500}__name(todosTickMs,"todosTickMs");var u_=(()=>{const e=[{content:"Create initial todo items",active:"Creating initial todo items"},{content:"Update status of a todo",active:"Updating todo status"},{content:"Mark all todos as completed",active:"Marking all todos as completed"}];return Array.from({length:e.length+1},(t,n)=>e.map((e,t)=>({content:e.content,status:t<n?"completed":t===n?"in_progress":"pending",...t===n?{activeForm:e.active}:{},id:String(t+1)})))})();function maybeStartInjectedTodos(e){if(!d_)return;const t=createBlockCommittingRouter({setFeed:e.setFeed,setLiveEntries:e.setLiveEntries});let n=0;const r=setInterval(()=>{const e=u_[n];e?(t({...Xp("todo_write",yg("todo_write",{todos:e}),{}),id:`cmd-test-todo-${n}`,output:JSON.stringify(e)}),n+=1):clearInterval(r)},todosTickMs());return()=>clearInterval(r)}__name(maybeStartInjectedTodos,"maybeStartInjectedTodos");var m_=Number.parseInt(process.env.CMD_TEST_INJECT_TURNS??"0",10);function testTurnChars(){const e=Number.parseInt(process.env.CMD_TEST_INJECT_TURN_CHARS??"",10);return Number.isFinite(e)&&e>0?e:1e5}function testTurnTickMs(){const e=Number.parseInt(process.env.CMD_TEST_INJECT_TURN_TICK_MS??"",10);return Number.isFinite(e)&&e>0?e:20}function makeInjectedTurnEntry(e,t){const n=`turn ${e} `.repeat(Math.ceil(testTurnChars()/`turn ${e} `.length));return makeInjectedShellEntry(`cmd-test-turn-${e}`,t?"echo turns-done":`echo turn ${e}`,"completed",{output:t?"turns-done":n.slice(0,testTurnChars())})}function maybeStartInjectedTurns(e){if(!Number.isFinite(m_)||m_<=0)return;const{setFeed:t}=e;let n=0;const r=setInterval(()=>{const e=n===m_-1,o=makeInjectedTurnEntry(n,e);t(e=>[...e,o]),n+=1,e&&clearInterval(r)},testTurnTickMs());return()=>clearInterval(r)}function useFeed(){const[e,t]=et(()=>buildInjectedFeed()),n=ot(e=>{t(t=>applyFeedRetention("function"==typeof e?e(t):e))},[]);nt(()=>{trimStaticBuffer()},[e]);const[r,o]=et(()=>{const e=buildInjectedLiveEntry();return e?[e]:[]}),[s,a]=et([]),[i,l]=et(i_),c=tt([]),d=ot(e=>{const t="function"==typeof e?e(c.current):e;c.current=t,a(t)},[]);return nt(()=>maybeStartInjectedTurns({setFeed:n}),[n]),nt(()=>maybeStartInjectedStream({setFeed:n,setLiveEntries:o,setIsCmdCodeBusy:l}),[]),nt(()=>maybeStartInjectedTodos({setFeed:n,setLiveEntries:o}),[]),{feed:e,setFeed:n,liveEntries:r,setLiveEntries:o,queuedMessages:s,setQueuedMessages:d,isCmdCodeBusy:i,setIsCmdCodeBusy:l,queuedMessagesRef:c}}function useKeyboard({showTasteConfig:e,showSkillsConfig:t,showSettingsConfig:n,showProviderSelector:r,showModelSelector:o,showEffortSelector:s,showMemorySelector:a,showMcpManager:i,showRewindSelector:l,showTreeSelector:c,showLoginOverlay:d,showUsageOverlay:u,showAddDirModal:m,showDesignGuide:p,authComponentInfo:g,setShowModelSelector:h,setStaticKey:f,showTasteSkipBanner:y,setShowTasteSkipBanner:S,showZdrNotice:w,setShowZdrNotice:k,modelNotice:v,setModelNotice:C,transcriptMode:b,setTranscriptMode:E,isCmdCodeBusy:T,liveEntries:P,queuedMessagesRef:M,setInput:x,setQueuedMessages:I,setFeed:A,setLiveEntries:R,setIsCmdCodeBusy:O,setRetryAttempt:D,setStatus:L,pendingExitKey:N,setPendingExitKey:$,pendingExitKeyRef:_,lastExitKeyTimeRef:F,exitConfirmationTimeoutRef:U,resetPendingExitKey:j,pendingPermission:B,setPendingPermission:W,pendingQuestion:H,setPendingQuestion:G,setShouldExit:V,sessionId:z,handleToggleAutoAccept:q,handleDoubleEscapeEmpty:K,respondToPrompt:Y,createErrorEntry:J}){const Q=__name(()=>{interruptActiveTurn(),clearCommandGoalIfActive(z);const e=P.length>0;if(O(!1),D(null),R([]),L(Ef),!e){const e=J(bf);A(t=>[...t,e])}if(M.current.length>0){const e=formatQueuedMessagesForRequeue(M.current);x(t=>mergeRequeuedInput({queuedText:e,currentInput:t})),I([]),M.current=[]}},"handleInterrupt");Ye((P,M)=>{const I=getKeybindings();if(keybindingMatches(I,"app.permission.cycle",P,M)||"[Z"===P||M.meta&&"m"===P)return void q();if(y&&M.escape)return void S(!1);if(w&&M.escape)return void k(!1);if(v&&M.escape)return void C(null);if(isTodosManagerOpen())return void(N&&j());if(e||t||n||r||o||s||a||i||g||l||c||d||u||m||p)return void(N&&j());if(""===P||M.ctrl&&"c"===P){if(T)return void Q();const e=Date.now(),t=e-F.current;return F.current=e,"ctrl-c"===_.current&&t<2e3?(U.current&&(clearTimeout(U.current),U.current=null),void V(!0)):(x(()=>""),_.current="ctrl-c",$("ctrl-c"),U.current&&clearTimeout(U.current),void(U.current=setTimeout(()=>{_.current=null,$(null),U.current=null},2e3)))}if(keybindingMatches(I,"app.tools.expand",P,M)){if(H?.params.planContent)return;return FI(),E("off"===b?"limited":"off"),void f(e=>e+1)}const A=isCtrlKey({inputChar:P,key:M,letter:"e",ctrlCode:5})||isCtrlKey({inputChar:P,key:M,letter:"y",ctrlCode:25}),R=null!==B&&"function"==typeof B.params?.explain;if("off"!==b&&A&&!R)return FI(),E("limited"===b?"full":"limited"),void f(e=>e+1);if("off"===b&&getSessionTodos().length>0&&keybindingMatches(I,"app.todos.toggle",P,M))requestTodosManagerOpen();else if(keybindingMatches(I,"app.model.select",P,M)||isAltP(P))h(!0);else if(M.escape){if("off"!==b)return FI(),E("off"),void f(e=>e+1);if(H)return H.reject(new Error("Question cancelled by user")),G(null),L("Question cancelled"),hardResetForResize(),void f(e=>e+1);if(B)return Y({label:"No, and tell Command Code what to do differently",value:"no",description:"Deny and provide feedback",scope:void 0}),B.resolve(!1),W(null),void L("Permission denied");T&&Q()}})}function useHandlers({resume:e,feedState:t,onboarding:n,uiOverlays:r,exitState:o,pendingOps:s,permissionState:a,statusState:i,authState:l,sessionId:c,loadTasteStatus:d,loadCurrentProvider:u,setInput:m}){const p=ot(()=>{a.setPermissionMode(e=>{const t=cyclePermissionMode({current:e,dangerouslySkipPermissions:a.dangerouslySkipPermissions}),n=resolvePendingPromptOnModeChange(t,{pendingIsRisky:void 0!==s.pendingPermission?.params?.risk});return n&&s.pendingPermission&&("approve"===n&&a.respondToPrompt(fE),s.pendingPermission.resolve("approve"===n),s.setPendingPermission(null)),NO(c)?.setPermissionMode({mode:t}),t})},[a.setPermissionMode,a.respondToPrompt,a.dangerouslySkipPermissions,s.pendingPermission,s.setPendingPermission,c]),g=ot(()=>{a.setPermissionMode(e=>{const t="bypass"===e?e:"auto-accept";return NO(c)?.setPermissionMode({mode:t}),t})},[a.setPermissionMode,c]),h=ot(()=>{const e=!t.isCmdCodeBusy&&!s.pendingPermission&&!s.pendingQuestion,n=(NO(c)?.listCheckpoints().length??0)>0;e&&n&&r.setShowRewindSelector(!0)},[t.isCmdCodeBusy,s.pendingPermission,s.pendingQuestion,r.setShowRewindSelector,c]),f=ot(t=>{n.setOnboardingComplete(!0),n.setShowTasteOnboarding(!1),n.setAutoLearnTaste(!1),t?.skipped&&r.setShowTasteSkipBanner(!0),e&&r.setShowSessionSelector(!0)},[e,n,r]),y=ot(async()=>{try{if(await initializeCommandProjectSessions(),n.setShowTrustPrompt(!1),e)return console.log("No conversations found to resume."),void o.setShouldExit(!0);n.setProjectTrusted(!0),d(),u()}catch(e){console.error("Failed to initialize project:",e),n.setShowTrustPrompt(!1),o.setShouldExit(!0)}},[e,n,o,d,u]),S=ot(()=>{o.setShouldExit(!0)},[o.setShouldExit]);return useKeyboard({showTasteConfig:r.showTasteConfig,showSkillsConfig:r.showSkillsConfig,showSettingsConfig:r.showSettingsConfig,showProviderSelector:r.showProviderSelector,showModelSelector:r.showModelSelector,showEffortSelector:r.showEffortSelector,showMemorySelector:r.showMemorySelector,showMcpManager:r.showMcpManager,showRewindSelector:r.showRewindSelector,showTreeSelector:r.showTreeSelector,showLoginOverlay:r.showLoginOverlay,showUsageOverlay:r.showUsageOverlay,showAddDirModal:r.showAddDirModal,showDesignGuide:r.showDesignGuide,authComponentInfo:l.authComponentInfo,setShowModelSelector:r.setShowModelSelector,setStaticKey:r.setStaticKey,showTasteSkipBanner:r.showTasteSkipBanner,setShowTasteSkipBanner:r.setShowTasteSkipBanner,showZdrNotice:r.showZdrNotice,setShowZdrNotice:r.setShowZdrNotice,modelNotice:r.modelNotice,setModelNotice:r.setModelNotice,transcriptMode:r.transcriptMode,setTranscriptMode:r.setTranscriptMode,isCmdCodeBusy:t.isCmdCodeBusy,liveEntries:t.liveEntries,queuedMessagesRef:t.queuedMessagesRef,setInput:m,setQueuedMessages:t.setQueuedMessages,setFeed:t.setFeed,setLiveEntries:t.setLiveEntries,setIsCmdCodeBusy:t.setIsCmdCodeBusy,setRetryAttempt:i.setRetryAttempt,setStatus:i.setStatus,pendingExitKey:o.pendingExitKey,setPendingExitKey:o.setPendingExitKey,pendingExitKeyRef:o.pendingExitKeyRef,lastExitKeyTimeRef:o.lastExitKeyTimeRef,exitConfirmationTimeoutRef:o.exitConfirmationTimeoutRef,resetPendingExitKey:o.resetPendingExitKey,pendingPermission:s.pendingPermission,setPendingPermission:s.setPendingPermission,pendingQuestion:s.pendingQuestion,setPendingQuestion:s.setPendingQuestion,setShouldExit:o.setShouldExit,sessionId:c,handleToggleAutoAccept:p,handleDoubleEscapeEmpty:h,respondToPrompt:a.respondToPrompt,createErrorEntry:tg}),{handleToggleAutoAccept:p,handleEnableAutoAccept:g,handleDoubleEscapeEmpty:h,handleTasteOnboardingComplete:f,handleTrust:y,handleNoTrust:S}}__name(testTurnChars,"testTurnChars"),__name(testTurnTickMs,"testTurnTickMs"),__name(makeInjectedTurnEntry,"makeInjectedTurnEntry"),__name(maybeStartInjectedTurns,"maybeStartInjectedTurns"),__name(useFeed,"useFeed"),Ex(),Px(),Ex(),Px(),__name(useKeyboard,"useKeyboard"),__name(useHandlers,"useHandlers"),Ex(),Px(),Ex(),Px();var p_,g_=[],h_=[];function setModPathsOverride(e){g_=e}function setModOptionsOverride(e){h_=e}function loadCommandModHost(e={}){return p_||(p_=buildHost(e))}async function buildHost(e){try{const t=createNodeRuntime(),n=createModHost({runtime:t}),r=!1!==e.projectMods&&await isCommandProjectSessionInitialized();await loadMods({runtime:t,host:n,includeProject:r,extraPaths:g_,builtins:commandBuiltinMods()});for(const e of h_){const t=e.indexOf("=");t<=0?dlog(`[mods] ignoring malformed --mod-option "${e}"`):n.setFlagValue({name:e.slice(0,t),value:e.slice(t+1)})}for(const e of n.warnings())dlog(`[mods] ${e.path}: ${e.reason}`);return setActiveModHost(n),setRegisteredProviderModules({modules:n.providerModules()}),n}catch(e){return void dlog(`[mods] host construction failed: ${e instanceof Error?e.message:String(e)}`)}}function resolveExternalModelChange(e){return"model"!==e.setting||"string"!=typeof e.value||0===e.value.length||e.value===e.currentModel?null:{modelId:e.value}}function raceAnswerAgainstAbort(e,t){return t?t.aborted?Promise.resolve("deny"):new Promise((n,r)=>{const o=__name(()=>n("deny"),"onAbort");t.addEventListener("abort",o,{once:!0}),e.then(e=>{t.removeEventListener("abort",o),n(e)},e=>{t.removeEventListener("abort",o),r(e)})}):e}__name(setModPathsOverride,"setModPathsOverride"),__name(setModOptionsOverride,"setModOptionsOverride"),__name(loadCommandModHost,"loadCommandModHost"),__name(buildHost,"buildHost"),Ex(),__name(resolveExternalModelChange,"resolveExternalModelChange"),Ex(),__name(raceAnswerAgainstAbort,"raceAnswerAgainstAbort"),Ex();var f_={},y_={};function setStartupSessionOptions(e){f_=void 0===e.persist?{}:{persist:e.persist},y_={...e.sessionFilePath?{sessionFilePath:e.sessionFilePath}:{},...e.name?{name:e.name}:{}}}function getStickyStartupSessionOptions(){return f_}function consumeStartupSessionOverrides(){const e=y_;return y_={},e}function buildInteraction({permissionsService:e,permissionModeRef:t,setPendingQuestion:n,setStatus:r}){return{confirmTool:__name(async({toolName:n,input:r,description:o,risk:s,explain:a,signal:i})=>{if(!e)return"allow";if(i?.aborted)return"deny";const l=__name(e=>raceAnswerAgainstAbort(e.then(e=>e.allowed?"allow":"deny"),i),"withInterrupt"),c=buildToolPermissionRequest({toolName:n,input:r,description:o,...void 0!==s?{risk:s}:{},...void 0!==a?{explain:a}:{}});return"shell"===c.kind?l(e.requestShellPermission(c.request)):"generic"===c.kind?l(e.requestGenericPermission(c.request)):l(e.requestPermission(c.request,t.current))},"confirmTool"),askQuestion:__name(async e=>new Promise(t=>{n({params:{questions:e.questions.map(e=>({question:e.question,header:e.header??"",options:e.options.map(e=>({label:e.label,description:e.description??"",...void 0!==e.preview?{preview:e.preview}:{}})),multiSelect:e.multiSelect??!1})),hideCustomInput:e.hideCustomInput,exitPlanMode:e.exitPlanMode,enterPlanMode:e.enterPlanMode,planContent:e.planContent,planFilePath:e.planFilePath,compact:e.compact},resolve:__name(e=>{t({answers:e.answers.map(e=>({questionIndex:e.questionIndex,selectedOptions:[...e.selectedOptions],...void 0!==e.notes?{notes:e.notes}:{},...void 0!==e.preview?{preview:e.preview}:{},...e.images?.length?{images:e.images}:{}})),...e.disposition?{disposition:e.disposition}:{}})},"resolve"),reject:__name(()=>{t({answers:[]})},"reject")}),r("Waiting for your answer…")}),"askQuestion")}}function useHarness({sessionId:e,sessionLoaded:t,showSessionSelector:n,projectTrusted:o,permissionsService:s,permissionModeRef:a,setPermissionMode:i,permissionModeExplicit:l,dangerouslySkipPermissions:c,setPendingQuestion:d,setStatus:u,setFeed:m,queuedMessagesRef:p,setQueuedMessages:g,onSessionTitled:h,currentModel:f,setCurrentModel:y,setStaticKey:S,isCmdCodeBusy:w}){const k=tt(f);k.current=f;const v=tt(null),C=tt(w);C.current=w;const b=ot(e=>{k.current=e,y?.(e),hardResetForResize(),S?.(e=>e+1)},[y,S]);nt(()=>{if(w)return;const e=v.current;null!==e&&(v.current=null,e!==k.current&&b(e))},[w,b]);const[E,T]=et(!1),P=tt(a.current);return nt(()=>{if(!o||n)return;const t=__name(()=>Boolean(l)||a.current!==P.current,"userChoseMode");let f,y,S=!1;return(async()=>{const n=consumeStartupSessionOverrides(),{persist:o}=getStickyStartupSessionOptions(),l=await loadResumeAgentState({sessionId:e,...n.sessionFilePath?{baseDir:r(n.sessionFilePath)}:{}});if(S)return;const w=__name(()=>{const e=p?.current??[];return 0===e.length?[]:(p&&(p.current=[]),g?.(()=>[]),m?.(t=>[...t,...e.flatMap(e=>{if(e.isMeta)return[];const t=Kp(e.displayMessage??e.input);return e.ideHint&&(t.metadata={ideHint:e.ideHint}),[t]})]),e.map(e=>{const t=e.ideContext?`${e.ideContext}\n\n${e.input}`:e.input;return e.images&&0!==e.images.length?{input:[...clipboardImagesToUserContent(e.images),{type:"text",text:t}]}:{input:t}}))},"drainQueuedMessages"),E=await loadCommandModHost(),P=await LO({sessionId:e,baseUrl:getApiBaseUrl(),...t()?{permissionMode:a.current}:{},dangerouslySkipPermissions:c,drainQueuedMessages:w,peekQueuedMessageCount:__name(()=>p?.current?.length??0,"peekQueuedMessageCount"),interaction:buildInteraction({permissionsService:s,permissionModeRef:a,setPendingQuestion:d,setStatus:u}),requestSlashCommand:__name(({command:t})=>(enqueueAgentSlashCommand({sessionId:e,command:t}),{status:"accepted"}),"requestSlashCommand"),resumeState:l,modHost:E,...void 0!==o?{persist:o}:{},...n.sessionFilePath?{sessionFilePath:n.sessionFilePath}:{},ideBridge:createLocalIdeBridge()}).catch(()=>{});if(S||!P)return;n.name&&P.setSessionName(n.name),P.getPermissionMode()!==a.current&&(t()?P.setPermissionMode({mode:a.current}):(a.current=P.getPermissionMode(),i?.(P.getPermissionMode())));const M=P.getModel();M!==k.current&&b(M),E&&m&&(E.setEntrySink(e=>{m(t=>[...t,Yp(e.join("\n"))])}),y=__name(()=>E.setEntrySink(void 0),"clearModEntrySink")),f=P.events.subscribe(e=>{if("session_titled"===e.type)return void h?.(e.title);if("permission_mode_changed"===e.type)return a.current=e.mode,void i?.(e.mode);if("config_setting_changed"===e.type){"theme"===e.setting&&"string"==typeof e.value&&isCliTheme(e.value)&&applyTuiTheme(resolveCliTheme(e.value));const t=resolveExternalModelChange({setting:e.setting,value:e.value,currentModel:k.current});return void(t&&(C.current?v.current=t.modelId:b(t.modelId)))}if("notice"!==e.type||!m)return;const t=tasteNoticeToFeedEntry(e);t&&m(e=>[...e,t])}),T(!0),P.fireSessionStartHooks({source:consumeNextSessionStartSource()}).then(e=>{if(S||0===e.hooksRun||!m)return;const t=1===e.hooksRun?"":"s",n=[`Ran ${e.hooksRun} session start hook${t}`,...e.systemMessage?e.systemMessage.split("\n"):[]];m(e=>[...e,Yp(n.join("\n"))])}).catch(()=>{})})(),()=>{S=!0,f?.(),y?.()}},[e,t,n,o,s,a,i,l,c,d,u,y,S,b]),{ready:E}}function useLifecycle({exit:e,feedState:t,exitState:n,statusState:r,authState:o,onboarding:s,uiOverlays:a,skipOnboarding:i,sessionId:l,sessionTitleHolder:c}){nt(()=>{n.shouldExit&&(r.hintTimerRef.current&&clearTimeout(r.hintTimerRef.current),n.exitConfirmationTimeoutRef.current&&clearTimeout(n.exitConfirmationTimeoutRef.current),o.providerNotificationTimer.current&&clearTimeout(o.providerNotificationTimer.current),o.modelNotificationTimer.current&&clearTimeout(o.modelNotificationTimer.current),c&&(c.loadTitle=()=>loadCommandUserRenamedTitle({sessionId:l}),c.sessionId=l),(async()=>{try{await Promise.allSettled([disconnectAllMcpServers(),_O()])}catch{}try{e()}catch{process.exit(0)}})())},[n.shouldExit,e]),nt(()=>()=>{r.hintTimerRef.current&&clearTimeout(r.hintTimerRef.current),n.exitConfirmationTimeoutRef.current&&clearTimeout(n.exitConfirmationTimeoutRef.current),o.providerNotificationTimer.current&&clearTimeout(o.providerNotificationTimer.current),o.modelNotificationTimer.current&&clearTimeout(o.modelNotificationTimer.current)},[]),nt(()=>{(async()=>{const e=await checkOAuthSetupRequired({currentProvider:o.currentProvider,isOAuthMode:o.isOAuthMode,providerAuthHeaders:providerAuthHeaders});e&&r.setStatus(e)})()},[o.currentProvider,o.isOAuthMode]),nt(()=>{if(!t.isCmdCodeBusy)return void(r.pinnedStatusRef.current=!1);if(null!==r.retryAttempt)return;const e=setInterval(()=>{r.pinnedStatusRef.current||r.setStatus(mg())},vg);return()=>clearInterval(e)},[t.isCmdCodeBusy,r.retryAttempt]),nt(()=>{i||triggerTasteOnboarding({projectTrusted:s.projectTrusted,onboardingComplete:s.onboardingComplete,isOnboardingMode:s.showTasteOnboarding,tasteOnboardingCheckedRef:s.tasteOnboardingCheckedRef,setIsOnboardingMode:s.setShowTasteOnboarding})},[s.projectTrusted,s.onboardingComplete,s.showTasteOnboarding,i]),nt(()=>{if(s.showTasteOnboarding&&!s.tasteOnboardingEntryId){const e=ng();s.setTasteOnboardingEntryId(e.id),t.setFeed(t=>[...t,e])}!s.showTasteOnboarding&&s.tasteOnboardingEntryId&&(t.setFeed(e=>e.filter(e=>e.id!==s.tasteOnboardingEntryId)),s.setTasteOnboardingEntryId(null))},[s.showTasteOnboarding,s.tasteOnboardingEntryId])}async function handleCompactModeSelect({mode:e,setShowCompactModeSelector:t,setStatus:n}){try{await setCompactMode({mode:e}),t(!1),n(buildCompactModeStatusMessage(e))}catch{n(no),t(!1)}}function handleCompactModeCancel({setShowCompactModeSelector:e}){e(!1)}function showProviderNotification({setShowProviderNotification:e,providerNotificationTimer:t}){t.current&&clearTimeout(t.current),e(!0),t.current=setTimeout(()=>{e(!1),t.current=null},JE)}async function handleProviderSelect({provider:e,setCurrentProvider:t,setShowProviderSelector:n,setAuthComponentInfo:r,setStatus:o,setShowProviderNotification:s,providerNotificationTimer:a}){const i=getProviderConfig(e),l=i?.authComponent,c=await resolveProviderSelection({provider:e,requiresAuth:i?.requiresAuth,hasAuthFlow:Boolean(l),checkAuth:i?.checkAuth});return"auth-required"===c.status?(l&&r({provider:e,Component:l}),{switched:!1}):"error"===c.status?(o(c.statusMessage),n(!1),{switched:!1}):(t(e),n(!1),o(c.statusMessage),showProviderNotification({setShowProviderNotification:s,providerNotificationTimer:a}),{switched:!0})}function handleProviderCancel({setShowProviderSelector:e}){e(!1)}function handleAuthSuccess({authComponentInfo:e,setAuthComponentInfo:t,setShowProviderSelector:n,setCurrentProvider:r,setStatus:o,setShowProviderNotification:s,providerNotificationTimer:a}){return e?(t(null),n(!1),r(e.provider),o(buildProviderAuthSuccessStatus(e.provider)),showProviderNotification({setShowProviderNotification:s,providerNotificationTimer:a}),{switchedProvider:e.provider}):{switchedProvider:null}}function handleAuthCancel({setAuthComponentInfo:e}){e(null)}__name(setStartupSessionOptions,"setStartupSessionOptions"),__name(getStickyStartupSessionOptions,"getStickyStartupSessionOptions"),__name(consumeStartupSessionOverrides,"consumeStartupSessionOverrides"),__name(buildInteraction,"buildInteraction"),__name(useHarness,"useHarness"),Ex(),Px(),__name(useLifecycle,"useLifecycle"),Ex(),Ex(),Px(),__name(handleCompactModeSelect,"handleCompactModeSelect"),__name(handleCompactModeCancel,"handleCompactModeCancel"),Ex(),Px(),__name(showProviderNotification,"showProviderNotification"),__name(handleProviderSelect,"handleProviderSelect"),__name(handleProviderCancel,"handleProviderCancel"),__name(handleAuthSuccess,"handleAuthSuccess"),__name(handleAuthCancel,"handleAuthCancel");var S_=__name(e=>{},"noopBool");function useMainActionCallbacks({feedState:e,sessionState:t,statusState:n,authState:r,uiOverlays:o,setInput:s}){const a=tt({feedState:e,sessionState:t,statusState:n,authState:r,uiOverlays:o,setInput:s});a.current={feedState:e,sessionState:t,statusState:n,authState:r,uiOverlays:o,setInput:s};const i=ot(e=>{const{feedState:t,sessionState:n,statusState:r,uiOverlays:o,authState:s}=a.current;handleSelectSession({selectedSessionId:e,previousSessionId:n.sessionId,sessionLoadIdRef:n.sessionLoadIdRef,setFeed:t.setFeed,setLiveEntries:t.setLiveEntries,setSessionId:n.setSessionId,setShowSessionSelector:o.setShowSessionSelector,setSessionLoaded:n.setSessionLoaded,setStaticKey:o.setStaticKey,setShareInfo:r.setShareInfo,setCurrentModel:s.setCurrentModel,inTuiResume:!0})},[]),l=ot(({messageId:e,mode:t})=>{const{feedState:n,sessionState:r,statusState:o,uiOverlays:s,setInput:i}=a.current;handleRewindSelect({messageId:e,mode:t,sessionId:r.sessionId,setFeed:n.setFeed,setStatus:o.setStatus,setShowRewindSelector:s.setShowRewindSelector,setStaticKey:s.setStaticKey,setInput:i})},[]),c=ot(()=>{handleRewindCancel({setShowRewindSelector:a.current.uiOverlays.setShowRewindSelector})},[]),d=ot(e=>{const{feedState:t,sessionState:n,uiOverlays:r,setInput:o}=a.current;return handleTreeSelect({...e,sessionId:n.sessionId,setFeed:t.setFeed,setShowTreeSelector:r.setShowTreeSelector,setStaticKey:r.setStaticKey,setInput:o})},[]),u=ot(()=>{handleTreeCancel({setShowTreeSelector:a.current.uiOverlays.setShowTreeSelector})},[]),m=ot(e=>{const{feedState:t,sessionState:n}=a.current;handleTreeLabel({...e,sessionId:n.sessionId,setFeed:t.setFeed})},[]),p=ot(()=>{handleTreeAbortSummary({sessionId:a.current.sessionState.sessionId})},[]),g=ot((e,t)=>{const{feedState:n,statusState:r,uiOverlays:o}=a.current;handleLoginComplete({success:e,message:t,setShowLoginOverlay:o.setShowLoginOverlay,setFeed:n.setFeed,setStatus:r.setStatus})},[]),h=ot(()=>{const{feedState:e,statusState:t,uiOverlays:n}=a.current;handleLoginCancel({setShowLoginOverlay:n.setShowLoginOverlay,setFeed:e.setFeed,setStatus:t.setStatus})},[]),f=__name(e=>{if(laneServesModel({activeLane:e,modelId:a.current.authState.currentModel}))return;const t=defaultModelForLane({activeLane:e});t&&w(t,e)},"autoSwitchModelForLane"),y=ot(e=>{const{authState:t,statusState:n,uiOverlays:r}=a.current;handleProviderSelect({provider:e,setCurrentProvider:t.setCurrentProvider,setShowProviderSelector:r.setShowProviderSelector,setAuthComponentInfo:t.setAuthComponentInfo,setStatus:n.setStatus,setShowProviderNotification:t.setShowProviderNotification,providerNotificationTimer:t.providerNotificationTimer}).then(({switched:t})=>{t&&f(e)})},[]),S=ot(()=>{handleProviderCancel({setShowProviderSelector:a.current.uiOverlays.setShowProviderSelector})},[]),w=ot((e,t)=>{const{authState:n,sessionState:r,statusState:o,uiOverlays:s,feedState:i}=a.current;handleModelSelect({modelId:e,provider:t,setCurrentModel:n.setCurrentModel,setShowModelSelector:s.setShowModelSelector,setStatus:o.setStatus,modelNotificationTimer:n.modelNotificationTimer,setShowModelNotification:S_,setCurrentProvider:n.setCurrentProvider,setStaticKey:s.setStaticKey,sessionId:r.sessionId,setFeed:i.setFeed,setContextUsage:o.setContextUsage,setModelNotice:s.setModelNotice})},[]),k=ot(()=>{handleModelCancel({setShowModelSelector:a.current.uiOverlays.setShowModelSelector})},[]),v=ot(e=>{const{statusState:t,uiOverlays:n}=a.current;handleCompactModeSelect({mode:e,setShowCompactModeSelector:n.setShowCompactModeSelector,setStatus:t.setStatus})},[]),C=ot(()=>{handleCompactModeCancel({setShowCompactModeSelector:a.current.uiOverlays.setShowCompactModeSelector})},[]),b=ot(e=>{const{statusState:t,uiOverlays:n}=a.current;handleThemeSelect({theme:e,setShowThemeSelector:n.setShowThemeSelector,setStatus:t.setStatus,setStaticKey:n.setStaticKey})},[]),E=ot(()=>{handleThemeCancel({setShowThemeSelector:a.current.uiOverlays.setShowThemeSelector})},[]),T=ot(()=>{const{authState:e,statusState:t,uiOverlays:n}=a.current,{switchedProvider:r}=handleAuthSuccess({authComponentInfo:e.authComponentInfo,setAuthComponentInfo:e.setAuthComponentInfo,setShowProviderSelector:n.setShowProviderSelector,setCurrentProvider:e.setCurrentProvider,setStatus:t.setStatus,setShowProviderNotification:e.setShowProviderNotification,providerNotificationTimer:e.providerNotificationTimer});r&&f(r)},[]),P=ot(()=>{handleAuthCancel({setAuthComponentInfo:a.current.authState.setAuthComponentInfo})},[]);return{onSelectSession:i,onRewindSelect:l,onRewindCancel:c,onTreeSelect:d,onTreeCancel:u,onTreeLabel:m,onTreeAbortSummary:p,onLoginComplete:g,onLoginCancel:h,handleProviderSelect:y,handleProviderCancel:S,handleModelSelect:w,handleModelCancel:k,handleCompactModeSelect:v,handleCompactModeCancel:C,handleThemeSelect:b,handleThemeCancel:E,handleAuthSuccess:T,handleAuthCancel:P}}function useMonitorOutputWakeup({onSubmit:e}){const t=tt(e);nt(()=>{t.current=e},[e]),nt(()=>{const e=subscribeMonitorCheck(e=>{t.current(buildMonitorWakeupSubmission(e))});return()=>{e()}},[])}function useOnboarding(){const[e,t]=et(!1),[n,r]=et(!1),[o,s]=et(!0),[a,i]=et(!1),[l,c]=et(!1),[d,u]=et(null),[m,p]=et(!1);return{showTrustPrompt:e,setShowTrustPrompt:t,projectTrusted:n,setProjectTrusted:r,checkingProject:o,setCheckingProject:s,showTasteOnboarding:a,setShowTasteOnboarding:i,onboardingComplete:l,setOnboardingComplete:c,tasteOnboardingEntryId:d,setTasteOnboardingEntryId:u,autoLearnTaste:m,setAutoLearnTaste:p,tasteOnboardingCheckedRef:tt(!1)}}function usePendingOps(){const[e,t]=et(null),[n,r]=et(null);return{pendingPermission:e,setPendingPermission:t,pendingQuestion:n,setPendingQuestion:r}}function resolvePermissionSettingsPath(e){return t.join(e.projectRoot,".commandcode",e.local?"settings.local.json":"settings.json")}__name(useMainActionCallbacks,"useMainActionCallbacks"),Ex(),Px(),__name(useMonitorOutputWakeup,"useMonitorOutputWakeup"),Ex(),__name(useOnboarding,"useOnboarding"),Ex(),__name(usePendingOps,"usePendingOps"),Ex(),Px(),Ex(),Px(),__name(resolvePermissionSettingsPath,"resolvePermissionSettingsPath");var w_=__name((e={})=>{const{projectRoot:t,local:n=!1,onGenericPermissionRequest:r,onPermissionRequest:o,onPermissionResponse:s,onShellPermissionRequest:a}=e,i=t||process.cwd(),l=tt({onGenericPermissionRequest:r,onPermissionRequest:o,onPermissionResponse:s,onShellPermissionRequest:a}),[c,d]=et(null),u=tt(null),[m,p]=et(null),[g,h]=et(!1);return nt(()=>{l.current={onGenericPermissionRequest:r,onPermissionRequest:o,onPermissionResponse:s,onShellPermissionRequest:a}},[r,o,s,a]),nt(()=>{const e=resolvePermissionSettingsPath({projectRoot:i,local:n}),t=createPermissionsService(i,{configPath:e});return u.current=createPermissionPromptBridge({service:t,onFileRequest:__name(e=>{p(e),h(!0),l.current.onPermissionRequest?.(e)},"onFileRequest"),onShellRequest:__name(e=>{p(e),h(!0),l.current.onShellPermissionRequest?.(e)},"onShellRequest"),onGenericRequest:__name(e=>{p(e),h(!0),l.current.onGenericPermissionRequest?.(e)},"onGenericRequest")}),d(t),()=>{t.removeAllListeners(),u.current=null}},[n,i]),{requestPermission:ot(async e=>{if(!c)return{allowed:!0};const t=await c.requestPermission(e);return l.current.onPermissionResponse?.(t),t},[c]),requestShellPermission:ot(async e=>{if(!c)return{allowed:!0};const t=await c.requestShellPermission(e);return l.current.onPermissionResponse?.(t),t},[c]),requestGenericPermission:ot(async e=>{if(!c)return{allowed:!0};const t=await c.requestGenericPermission(e);return l.current.onPermissionResponse?.(t),t},[c]),respondToPrompt:ot(e=>{u.current?.respond(e)&&(p(null),h(!1))},[]),clearSessionPermissions:ot(()=>{c?.clearSessionPermissions()},[c]),clearProjectPermissions:ot(()=>{c?.clearProjectPermissions()},[c]),setAutoApprove:ot((e,t)=>{c?.setAutoApprove(e,t)},[c]),setEnabled:ot(e=>{c?.setEnabled(e)},[c]),currentRequest:m,isPrompting:g,service:c}},"usePermissions");function usePermissionMode({initialPermissionMode:e,local:t=!1,dangerouslySkipPermissions:n=!1,setPendingPermission:r,setStatus:o}){const[s,a]=et(()=>e||(n?"bypass":"default")),i=tt(s);nt(()=>{i.current=s},[s]);const{requestShellPermission:l,service:c,respondToPrompt:d,clearSessionPermissions:u,setEnabled:m}=w_({projectRoot:process.cwd(),local:t,onPermissionRequest:__name(e=>{r({toolName:getFileActionToolName(e.action),params:e,resolve:__name(e=>{},"resolve")}),o("Waiting for file edit permission...")},"onPermissionRequest"),onShellPermissionRequest:__name(e=>{r({toolName:"shell_command",params:e,resolve:__name(e=>{},"resolve")}),o("Waiting for shell command permission...")},"onShellPermissionRequest"),onGenericPermissionRequest:__name(e=>{r({toolName:e.toolName,params:e,resolve:__name(e=>{},"resolve")}),o("Waiting for tool permission...")},"onGenericPermissionRequest"),onPermissionResponse:__name(e=>{e.allowed?o("Permission granted"):o("Permission denied")},"onPermissionResponse")});return nt(()=>{c&&applyAutoAcceptMode({enabled:s,service:c})},[s,c]),{permissionMode:s,setPermissionMode:a,permissionModeRef:i,permissionsService:c,respondToPrompt:d,clearSessionPermissions:u,dangerouslySkipPermissions:n}}function useQueuedMessageFlush({isCmdCodeBusy:e,queuedMessages:t,queuedMessagesRef:n,setQueuedMessages:r,isSubmittingRef:o,onSubmit:s}){const a=tt(s);nt(()=>{a.current=s},[s]);const i=t.length>0;nt(()=>{if(!i||e)return;const t=setInterval(()=>{if(o.current)return;const e=n.current[0];e&&(r(e=>e.slice(1)),a.current({role:"user",input:e.input,...void 0!==e.displayMessage?{displayMessage:e.displayMessage}:{},...void 0!==e.isAutomated?{isAutomated:e.isAutomated}:{},...void 0!==e.isMeta?{isMeta:e.isMeta}:{},...void 0!==e.hiddenMessages?{hiddenMessages:e.hiddenMessages}:{},...void 0!==e.ideContext?{ideContext:e.ideContext}:{},...void 0!==e.ideHint?{ideHint:e.ideHint}:{},...e.images&&e.images.length>0?{images:e.images.map(e=>({...e}))}:{}}))},250);return()=>clearInterval(t)},[i,e,o,n,r])}function useSession(){const[e,t]=et(()=>crypto.randomUUID()),[n,r]=et(!1);return{sessionId:e,setSessionId:t,sessionLoaded:n,setSessionLoaded:r,sessionLoadIdRef:tt(null)}}__name(usePermissionMode,"usePermissionMode"),Ex(),__name(useQueuedMessageFlush,"useQueuedMessageFlush"),Ex(),__name(useSession,"useSession"),Ex(),Px(),Ex(),Px();var k_=createOSC8Link("https://commandcode.ai/docs/hooks","Docs ↗",!1);function buildHookStartupEntries(e){const t=buildHookStartupMessages(e).map(e=>({...e}));if(0===t.length)return[];const n=t[t.length-1];return n.message=`${n.message} ${k_}`,t.map(e=>e.isHookWarning?Yp(e.message,{isHookWarning:!0}):Yp(e.message))}async function submitInitialPrompt({initialPrompt:e,onCommand:t,submitAsUserMessage:n}){const r=e.trim();r.startsWith("/")&&t&&"handled"===(await t(r)).status||await n()}function useStartup({resume:e,resumeSessionId:t,continueLatest:n,trust:r,initialPrompt:o,stdout:s,feedState:a,sessionState:i,statusState:l,authState:c,onboarding:d,uiOverlays:u,permissionState:m,harnessReady:p,isSubmittingRef:g,initialPromptSubmittedRef:h,historyManagerRef:f,executeBash:y,setInput:S,onCommand:w}){const k=ot(async()=>{try{const e=await isTasteLearningEnabled();l.setTasteLearningOn(e),e&&await initTasteDir({runtime:createNodeRuntime()})}catch{}},[l.setTasteLearningOn]),v=ot(async()=>{const e=await getConfiguredProvider();c.setCurrentProvider(e);const t=await isOAuthEnforced();c.setIsOAuthMode(t)},[c.setCurrentProvider,c.setIsOAuthMode]),C=ot(()=>{},[]),b=ot(e=>{handleSelectSession({selectedSessionId:e,sessionLoadIdRef:i.sessionLoadIdRef,setFeed:a.setFeed,setLiveEntries:a.setLiveEntries,setSessionId:i.setSessionId,setShowSessionSelector:u.setShowSessionSelector,setSessionLoaded:i.setSessionLoaded,setStaticKey:u.setStaticKey,setShareInfo:l.setShareInfo,setCurrentModel:c.setCurrentModel})},[i,a,u,l,c.setCurrentModel]),E=ot(async()=>{const r=await resolveStartupSessionTarget({continueLatest:n,resumeSessionId:t,resume:e,listSessions:listCommandSessions});"load"!==r.kind?"open-picker"===r.kind&&u.setShowSessionSelector(!0):b(r.sessionId)},[n,t,e,b,u]);nt(()=>{(async()=>{const e=await resolveStartupTrust({trust:r,isProjectInitialized:isCommandProjectSessionInitialized,isDirectoryEmpty:__name(()=>isDirectoryEmpty({runtime:createNodeRuntime(),path:process.cwd()}),"isDirectoryEmpty")});if("prompt-trust"===e.kind)return d.setShowTrustPrompt(!0),void d.setCheckingProject(!1);e.initializeFirst&&await initializeCommandProjectSessions(),d.setProjectTrusted(!0),d.setCheckingProject(!1),k(),v(),C(),e.continueOrResume&&await E()})()},[e,n,r]);const T=tt(!1);nt(()=>{T.current||d.projectTrusted&&0!==getCommandZdrPausedFeatures().length&&(T.current=!0,u.setShowZdrNotice(!0))},[d.projectTrusted,u.setShowZdrNotice]);const P=tt(null);nt(()=>{d.projectTrusted&&c.currentModel!==P.current&&(P.current=c.currentModel,u.setModelNotice(getModelNotice(c.currentModel)??null))},[d.projectTrusted,c.currentModel,u.setModelNotice]);const M=tt(null);nt(()=>{if(!p||!d.projectTrusted)return;const e=i.sessionId;if(M.current===e)return;const t=NO(e);if(!t)return;M.current=e;const n=buildHookStartupEntries(t.hookSettingsWarnings);0!==n.length&&a.setFeed(e=>[...e,...n])},[p,d.projectTrusted,i.sessionId,a.setFeed]),nt(()=>{if(!d.projectTrusted)return;const e=createCommandHistoryManager();return f.current=e,e.init(),()=>{e.cleanup()}},[d.projectTrusted,f]),nt(()=>{if(!s)return;const e=createResizeHandler({getColumns:__name(()=>s.columns??0,"getColumns"),bumpStaticKey:__name(()=>u.setStaticKey(e=>e+1),"bumpStaticKey")});return s.prependListener("resize",e),()=>{s.off("resize",e)}},[s,u.setStaticKey]),nt(()=>{o&&d.projectTrusted&&!d.checkingProject&&p&&!u.showSessionSelector&&!h.current&&(h.current=!0,submitInitialPrompt({initialPrompt:o,onCommand:w,submitAsUserMessage:__name(async()=>{await handleSubmit({role:"user",input:o,feed:a.feed,setFeed:a.setFeed,setLiveEntries:a.setLiveEntries,isCmdCodeBusy:a.isCmdCodeBusy,setIsCmdCodeBusy:a.setIsCmdCodeBusy,setQueuedMessages:a.setQueuedMessages,setStatus:l.setStatus,setInteractionTokens:l.setInteractionTokens,updateStatus:l.updateStatus,setUpdateStatus:l.setUpdateStatus,billingLink:l.billingLink,setBillingLink:l.setBillingLink,currentModel:c.currentModel,currentProvider:c.currentProvider,isOAuthMode:c.isOAuthMode,premiumCreditsExhausted:c.premiumCreditsExhausted,setPremiumCreditsExhausted:c.setPremiumCreditsExhausted,setCurrentModel:c.setCurrentModel,sessionId:i.sessionId,isSubmittingRef:g,setInput:S,setStaticKey:u.setStaticKey,executeBash:y})},"submitAsUserMessage")}))},[o,d.projectTrusted,d.checkingProject,u.showSessionSelector,p,i.sessionId,c.currentProvider,c.isOAuthMode,w]);const x=tt(null);x.current={feed:a.feed,setFeed:a.setFeed,setLiveEntries:a.setLiveEntries,isCmdCodeBusy:a.isCmdCodeBusy,setIsCmdCodeBusy:a.setIsCmdCodeBusy,setQueuedMessages:a.setQueuedMessages,setStatus:l.setStatus,setInteractionTokens:l.setInteractionTokens,updateStatus:l.updateStatus,setUpdateStatus:l.setUpdateStatus,billingLink:l.billingLink,setBillingLink:l.setBillingLink,currentModel:c.currentModel,currentProvider:c.currentProvider,isOAuthMode:c.isOAuthMode,premiumCreditsExhausted:c.premiumCreditsExhausted,setPremiumCreditsExhausted:c.setPremiumCreditsExhausted,setCurrentModel:c.setCurrentModel,sessionId:i.sessionId,isSubmittingRef:g,setInput:S,setStaticKey:u.setStaticKey,executeBash:y,role:"",input:""};const I=ot(async({role:e,input:t,images:n,imageTokenPaths:r,ideContext:o,ideHint:s,displayMessage:a,isAutomated:i,isMeta:l,hiddenMessages:c})=>{u.setShowTasteSkipBanner(!1),u.setShowZdrNotice(!1),u.setModelNotice(null),await handleSubmit({...x.current,role:e,input:t,images:n,imageTokenPaths:r,ideContext:o,ideHint:s,displayMessage:a,isAutomated:i,isMeta:l,hiddenMessages:c})},[u.setShowTasteSkipBanner,u.setShowZdrNotice,u.setModelNotice]);return{loadTasteStatus:k,loadCurrentProvider:v,initializeMcpInBackground:C,onSubmit:I}}function useStatus(e){const[t,n]=et("Ready..."),r=tt(!1),[o,s]=et(""),a=tt(null),[i,l]=et(null),c=tt(i),[d,u]=et(null),[m,p]=et(!1),[g,h]=et(""),[f,y]=et(null),[S,w]=et(0),[k,v]=et(null),[C,b]=et(null),[E,T]=et(e??null);nt(()=>{c.current=i},[i]),nt(()=>{if(!E)return;const e=setTimeout(()=>{T(null)},3e4);return()=>clearTimeout(e)},[E]);const P=__name(e=>{a.current&&clearTimeout(a.current),s(e),a.current=setTimeout(()=>{s(""),a.current=null},5e3)},"showHintMessage");return{status:t,setStatus:n,pinnedStatusRef:r,hintMessage:o,setHintMessage:s,hintTimerRef:a,shareInfo:i,setShareInfo:l,shareInfoRef:c,billingLink:d,setBillingLink:u,showShareNotification:m,setShowShareNotification:p,unshareNotificationMessage:g,setUnshareNotificationMessage:h,retryAttempt:f,setRetryAttempt:y,interactionTokens:S,setInteractionTokens:w,contextUsage:k,setContextUsage:v,tasteLearningOn:C,setTasteLearningOn:b,updateStatus:E,setUpdateStatus:T,showHintMessage:P}}function useTerminalTitle({sessionId:e,isCmdCodeBusy:t}){const n=tt(process.cwd()),r=tt(e),o=tt(null),s=ot(e=>{o.current=e,setTerminalTitle(formatSessionTabTitle({sessionTitle:e,projectDir:n.current}))},[]),a=ot(e=>{(async()=>{const t=await loadCommandSessionMeta({sessionId:e});r.current===e&&t?.title&&t.title!==o.current&&s(t.title)})()},[s]);nt(()=>{r.current=e,s(null),a(e)},[e,s,a]);const i=tt(t);nt(()=>{const n=i.current;i.current=t,t!==n&&reassertTerminalTitle(),!t&&n&&(o.current||a(e))},[t,e,a]),nt(()=>{if(!process.stderr.isTTY)return;const e=setInterval(reassertTerminalTitle,5e3);return()=>{clearInterval(e)}},[]);const l=ot(e=>{s(e)},[s]);return{setRenamedTerminalTitle:l,applyGeneratedTitle:l}}function useUiOverlays(){const[e,t]=et(!1),[n,r]=et(!1),[o,s]=et(!1),[a,i]=et(!1),[l,c]=et(!1),[d,u]=et(!1),[m,p]=et(!1),[g,h]=et(!1),[f,y]=et(!1),[S,w]=et(!1),[k,v]=et(!1),[C,b]=et(!1),[E,T]=et(!1),[P,M]=et(!1),[x,I]=et("default"),[A,R]=et(!1),[O,D]=et(!1),[L,N]=et(!1),[$,_]=et(!1),[F,U]=et(!1),[j,B]=et(!1),[W,H]=et(null),[G,V]=et(!1),[z,q]=et(!1),[K,Y]=et(!1),[J,Q]=et(!1),[X,Z]=et(null),[ee,te]=et(0),[ne,re]=et(!1),[oe,se]=et(!1),[ae,ie]=et(null),[le,ce]=et("off"),de="off"!==le,ue=ot(e=>{hardResetForResize(),te(e=>e+1),e(!1)},[]);return{showFileList:e,setShowFileList:t,showAgentsConfig:n,setShowAgentsConfig:r,showTasteConfig:o,setShowTasteConfig:s,showSkillsConfig:a,setShowSkillsConfig:i,showSettingsConfig:l,setShowSettingsConfig:c,showProviderSelector:d,setShowProviderSelector:u,showModelSelector:m,setShowModelSelector:p,showEffortSelector:g,setShowEffortSelector:h,showMemorySelector:f,setShowMemorySelector:y,showMcpManager:S,setShowMcpManager:w,showSessionSelector:k,setShowSessionSelector:v,showAddDirModal:C,setShowAddDirModal:b,showRewindSelector:E,setShowRewindSelector:T,showTreeSelector:P,setShowTreeSelector:M,treeFilterMode:x,setTreeFilterMode:I,treeBranchSummarySkipPrompt:A,setTreeBranchSummarySkipPrompt:R,showLoginOverlay:O,setShowLoginOverlay:D,showCompactModeSelector:L,setShowCompactModeSelector:N,showContextView:$,setShowContextView:_,showStatusView:F,setShowStatusView:U,showPlansView:j,setShowPlansView:B,plansTarget:W,setPlansTarget:H,planBreadcrumbPending:G,setPlanBreadcrumbPending:V,showUsageOverlay:z,setShowUsageOverlay:q,showThemeSelector:K,setShowThemeSelector:Y,staticKey:ee,setStaticKey:te,closeFullScreenOverlay:ue,showTasteSkipBanner:ne,setShowTasteSkipBanner:re,showZdrNotice:oe,setShowZdrNotice:se,modelNotice:ae,setModelNotice:ie,transcriptMode:le,setTranscriptMode:ce,expandedToolOutput:de,showDesignGuide:J,setShowDesignGuide:Q,pendingDesignSuggestion:X,setPendingDesignSuggestion:Z}}__name(buildHookStartupEntries,"buildHookStartupEntries"),__name(submitInitialPrompt,"submitInitialPrompt"),__name(useStartup,"useStartup"),Ex(),__name(useStatus,"useStatus"),Ex(),Px(),__name(useTerminalTitle,"useTerminalTitle"),Ex(),__name(useUiOverlays,"useUiOverlays");var v_=__name(({resume:e=!1,resumeSessionId:t,continue:n=!1,trust:r=!1,dangerouslySkipPermissions:o=!1,updateStatus:s,updateFailedInfo:a,initialPrompt:i,skipOnboarding:l=!1,initialPermissionMode:c,local:d=!1,sessionTitleHolder:u})=>{const{exit:m}=Je(),{stdout:p}=qe();usePasteRouter(),nt(()=>{prefetchBillingContext()},[]);const[g,h]=et(""),[f,y]=et(""),S=tt(!1),w=tt(!1),k=tt(null),v=useUiOverlays(),C=useFeed(),b=useSession(),E=useStatus(s),T=useAuth(),P=usePendingOps(),M=useOnboarding(),x=useExit(),{executeBash:I,executionState:A}=H$(),R=usePermissionMode({initialPermissionMode:c,local:d,dangerouslySkipPermissions:o,setPendingPermission:P.setPendingPermission,setStatus:E.setStatus}),O=useTerminalTitle({sessionId:b.sessionId,isCmdCodeBusy:C.isCmdCodeBusy}),{ready:D}=useHarness({sessionId:b.sessionId,sessionLoaded:b.sessionLoaded,showSessionSelector:v.showSessionSelector,projectTrusted:M.projectTrusted,permissionsService:R.permissionsService,permissionModeRef:R.permissionModeRef,setPermissionMode:R.setPermissionMode,permissionModeExplicit:Boolean(c)||o,dangerouslySkipPermissions:R.dangerouslySkipPermissions,setPendingQuestion:P.setPendingQuestion,setStatus:E.setStatus,setFeed:C.setFeed,queuedMessagesRef:C.queuedMessagesRef,setQueuedMessages:C.setQueuedMessages,onSessionTitled:O.applyGeneratedTitle,currentModel:T.currentModel,setCurrentModel:T.setCurrentModel,setStaticKey:v.setStaticKey,isCmdCodeBusy:C.isCmdCodeBusy}),{onCommand:L}=useCommandCtx({feedState:C,sessionState:b,statusState:E,authState:T,uiOverlays:v,onboarding:M,exitState:x,permissionState:R,terminalTitleState:O,isSubmittingRef:S,executeBash:I,setInput:h});useAgentSlashCommandQueue({sessionId:b.sessionId,isCmdCodeBusy:C.isCmdCodeBusy,onCommand:L}),nt(()=>{v.planBreadcrumbPending&&!C.isCmdCodeBusy&&(v.setPlanBreadcrumbPending(!1),C.setFeed(e=>[...e,eg("Plan saved — run /plans to review, annotate, or execute it anytime.")]))},[v.planBreadcrumbPending,v.setPlanBreadcrumbPending,C.isCmdCodeBusy,C.setFeed]);const{loadTasteStatus:N,loadCurrentProvider:$,onSubmit:_}=useStartup({resume:e,resumeSessionId:t,continueLatest:n,trust:r,initialPrompt:i,stdout:p,feedState:C,sessionState:b,statusState:E,authState:T,onboarding:M,uiOverlays:v,permissionState:R,harnessReady:D,isSubmittingRef:S,initialPromptSubmittedRef:w,historyManagerRef:k,executeBash:I,setInput:h,onCommand:L});useMonitorOutputWakeup({onSubmit:_}),useCronWakeup({onSubmit:_}),useQueuedMessageFlush({isCmdCodeBusy:C.isCmdCodeBusy,queuedMessages:C.queuedMessages,queuedMessagesRef:C.queuedMessagesRef,setQueuedMessages:C.setQueuedMessages,isSubmittingRef:S,onSubmit:_}),useLifecycle({exit:m,feedState:C,exitState:x,statusState:E,authState:T,onboarding:M,uiOverlays:v,skipOnboarding:l,sessionId:b.sessionId,sessionTitleHolder:u});const{handleToggleAutoAccept:F,handleEnableAutoAccept:U,handleDoubleEscapeEmpty:j,handleTasteOnboardingComplete:B,handleTrust:W,handleNoTrust:H}=useHandlers({resume:e,feedState:C,onboarding:M,uiOverlays:v,exitState:x,pendingOps:P,permissionState:R,statusState:E,authState:T,sessionId:b.sessionId,loadTasteStatus:N,loadCurrentProvider:$,setInput:__name(e=>h(e),"setInput")}),G=useMainActionCallbacks({feedState:C,sessionState:b,statusState:E,authState:T,uiOverlays:v,setInput:h}),{creditWarning:V}=useCreditWarning({interactionTokens:E.interactionTokens});return renderView({feedState:C,sessionState:b,statusState:E,authState:T,uiOverlays:v,onboarding:M,exitState:x,pendingOps:P,permissionState:R,historyManagerRef:k,executionState:A,actionCallbacks:G,onSubmit:_,onCommand:L,input:g,setInput:h,fileSearchQuery:f,setFileSearchQuery:y,updateFailedInfo:a,creditWarning:V,handleTrust:W,handleNoTrust:H,handleToggleAutoAccept:F,handleEnableAutoAccept:U,handleDoubleEscapeEmpty:j,handleTasteOnboardingComplete:B,loadTasteStatus:N})},"InteractiveCLI");function renderView({feedState:e,sessionState:t,statusState:n,authState:r,uiOverlays:o,onboarding:s,exitState:a,pendingOps:i,permissionState:l,historyManagerRef:c,executionState:d,actionCallbacks:u,onSubmit:m,onCommand:p,input:g,setInput:h,fileSearchQuery:f,setFileSearchQuery:y,updateFailedInfo:S,creditWarning:w,handleTrust:k,handleNoTrust:v,handleToggleAutoAccept:C,handleEnableAutoAccept:b,handleDoubleEscapeEmpty:E,handleTasteOnboardingComplete:T,loadTasteStatus:P}){if(a.shouldExit)return null;if(s.checkingProject)return null;if(s.showTrustPrompt)return Xe.createElement(B$,{staticKey:o.staticKey,onTrust:k,onExit:v});if(o.showSessionSelector)return Xe.createElement(U$,{onSelectSession:u.onSelectSession,onClose:()=>o.closeFullScreenOverlay(o.setShowSessionSelector),currentSessionId:t.sessionId});if(!s.projectTrusted)return null;const M=o.pendingDesignSuggestion?Xe.createElement(pL,{suggestion:o.pendingDesignSuggestion,onSelect:e=>{p(`/design ${e}`)},onClose:()=>o.setPendingDesignSuggestion(null)}):null,x=i.pendingQuestion?.params.exitPlanMode?i.pendingQuestion:null,I=i.pendingQuestion&&!x?Xe.createElement(QuestionView,{pendingQuestion:i.pendingQuestion,permissionMode:l.permissionMode,setPermissionMode:l.setPermissionMode,dangerouslySkipPermissions:l.dangerouslySkipPermissions,setPendingQuestion:i.setPendingQuestion,setStatus:n.setStatus,setStaticKey:o.setStaticKey}):null,A=i.pendingPermission?Xe.createElement(rL,{pendingPermission:i.pendingPermission,permissionMode:l.permissionMode,setPendingPermission:i.setPendingPermission,setStatus:n.setStatus,respondToPrompt:l.respondToPrompt,showHintMessage:n.showHintMessage,handleEnableAutoAccept:b}):null,{closeFullScreenOverlay:R}=o;if(x){const e=__name(e=>{const t=resolvePlanModeAnswerTransition({answer:e,exitPlanMode:!0,dangerouslySkipPermissions:l.dangerouslySkipPermissions});t&&l.setPermissionMode(t),x.resolve({answers:[{questionIndex:0,selectedOptions:[e]}]}),i.setPendingQuestion(null),hardResetForResize(),o.setStaticKey(e=>e+1)},"resolveApproval");return Xe.createElement(PlanApprovalView,{staticKey:o.staticKey,planContent:x.params.planContent,planFilePath:x.params.planFilePath,onAutoAccept:t=>{e("Yes, auto-accept edits"),t&&m({role:"user",input:t})},onCancel:()=>{e("Cancel"),o.setPlanBreadcrumbPending(!0)},onSendFeedback:t=>{e("Cancel"),m({role:"user",input:t})}})}if(o.showTasteConfig)return Xe.createElement(TasteConfigView,{staticKey:o.staticKey,onClose:()=>R(o.setShowTasteConfig),loadTasteStatus:P});if(o.showSkillsConfig)return Xe.createElement(SkillsConfigView,{staticKey:o.staticKey,onClose:()=>R(o.setShowSkillsConfig)});if(o.showSettingsConfig)return Xe.createElement(SettingsConfigView,{staticKey:o.staticKey,onClose:()=>R(o.setShowSettingsConfig),loadTasteStatus:P});if(o.showUsageOverlay)return Xe.createElement(UsageView,{staticKey:o.staticKey,onClose:()=>R(o.setShowUsageOverlay)});if(o.showContextView)return Xe.createElement(ContextConfigView,{staticKey:o.staticKey,sessionId:t.sessionId,onClose:()=>R(o.setShowContextView),setInput:h});if(o.showStatusView)return Xe.createElement(StatusConfigView,{staticKey:o.staticKey,onClose:()=>R(o.setShowStatusView),setInput:h});if(o.showPlansView){const e=__name(e=>{o.setPlansTarget(null),R(o.setShowPlansView),m({role:"user",input:e})},"submitFromPlans");return Xe.createElement(PlansView,{staticKey:o.staticKey,sessionId:t.sessionId,target:o.plansTarget,onClose:()=>{o.setPlansTarget(null),R(o.setShowPlansView)},onSubmitFeedback:e,onExecute:n=>{"plan"===l.permissionModeRef.current&&(l.permissionModeRef.current="auto-accept",l.setPermissionMode("auto-accept"),NO(t.sessionId)?.setPermissionMode({mode:"auto-accept"})),e(n)}})}return Xe.createElement(d$,{feed:e.feed,liveEntries:e.liveEntries,queuedMessages:e.queuedMessages,isCmdCodeBusy:e.isCmdCodeBusy,staticKey:o.staticKey,setStaticKey:o.setStaticKey,transcriptMode:o.transcriptMode,tasteOnboardingEntryId:s.tasteOnboardingEntryId,autoLearnTaste:s.autoLearnTaste,showTasteSkipBanner:o.showTasteSkipBanner,showZdrNotice:o.showZdrNotice,modelNotice:o.modelNotice,retryAttempt:n.retryAttempt,input:g,setInput:h,fileSearchQuery:f,setFileSearchQuery:y,showFileList:o.showFileList,setShowFileList:o.setShowFileList,showProviderSelector:o.showProviderSelector,showModelSelector:o.showModelSelector,showEffortSelector:o.showEffortSelector,showMemorySelector:o.showMemorySelector,showMcpManager:o.showMcpManager,showAgentsConfig:o.showAgentsConfig,showRewindSelector:o.showRewindSelector,showTreeSelector:o.showTreeSelector,treeFilterMode:o.treeFilterMode,treeBranchSummarySkipPrompt:o.treeBranchSummarySkipPrompt,showLoginOverlay:o.showLoginOverlay,showUsageOverlay:o.showUsageOverlay,setShowUsageOverlay:o.setShowUsageOverlay,showAddDirModal:o.showAddDirModal,showCompactModeSelector:o.showCompactModeSelector,showThemeSelector:o.showThemeSelector,authComponentInfo:r.authComponentInfo,status:n.status,currentProvider:r.currentProvider,currentModel:r.currentModel,showProviderNotification:r.showProviderNotification,shareInfo:n.shareInfo,showShareNotification:n.showShareNotification,unshareNotificationMessage:n.unshareNotificationMessage,updateStatus:n.updateStatus,updateFailedInfo:S,creditWarning:w,permissionMode:l.permissionMode,hintMessage:n.hintMessage,pendingExitKey:a.pendingExitKey,interactionTokens:n.interactionTokens,contextUsage:n.contextUsage,tasteLearningOn:n.tasteLearningOn,historyManagerRef:c,executionState:d,sessionId:t.sessionId,onSubmit:m,onCommand:p,onToggleAutoAccept:C,onResetPendingExitKey:a.resetPendingExitKey,onDoubleEscapeEmpty:E,onTasteOnboardingComplete:T,permissionPanel:A,questionPanel:I,designSuggestionPanel:M,onRewindSelect:u.onRewindSelect,onRewindCancel:u.onRewindCancel,onTreeSelect:u.onTreeSelect,onTreeCancel:u.onTreeCancel,onTreeLabel:u.onTreeLabel,onTreeAbortSummary:u.onTreeAbortSummary,onLoginComplete:u.onLoginComplete,onLoginCancel:u.onLoginCancel,setShowProviderSelector:o.setShowProviderSelector,setShowModelSelector:o.setShowModelSelector,setShowEffortSelector:o.setShowEffortSelector,setShowMemorySelector:o.setShowMemorySelector,setShowMcpManager:o.setShowMcpManager,setShowAgentsConfig:o.setShowAgentsConfig,setShowRewindSelector:o.setShowRewindSelector,setShowTreeSelector:o.setShowTreeSelector,setShowLoginOverlay:o.setShowLoginOverlay,setShowAddDirModal:o.setShowAddDirModal,handleProviderSelect:u.handleProviderSelect,handleProviderCancel:u.handleProviderCancel,handleModelSelect:u.handleModelSelect,handleModelCancel:u.handleModelCancel,handleCompactModeSelect:u.handleCompactModeSelect,handleCompactModeCancel:u.handleCompactModeCancel,handleThemeSelect:u.handleThemeSelect,handleThemeCancel:u.handleThemeCancel,handleAuthSuccess:u.handleAuthSuccess,handleAuthCancel:u.handleAuthCancel,showDesignGuide:o.showDesignGuide,setShowDesignGuide:o.setShowDesignGuide})}__name(renderView,"renderView"),Px(),Ex();var C_=__name(({worktreePath:e,warning:t,onChoice:n})=>{const[r,o]=et(1);return Ye((e,t)=>{if(!t.upArrow&&!t.downArrow)return"1"===e?n("keep"):"2"===e?n("remove"):t.return?n(1===r?"keep":"remove"):t.escape||t.ctrl&&"c"===e?n("keep"):void 0;o(e=>1===e?2:1)}),Xe.createElement(_D,{title:"Exiting worktree session",subtitle:t,hint:"Enter to confirm · Esc to cancel"},Xe.createElement(Ge,{flexDirection:"column"},Xe.createElement(Ge,null,Xe.createElement(Ve,{color:1===r?Rx.CYAN:Rx.GRAY},1===r?it.pointer:" "," 1. Keep worktree"," ",Xe.createElement(Ve,{color:Rx.GRAY},"Stays at ",tildeHome(e)))),Xe.createElement(Ge,null,Xe.createElement(Ve,{color:2===r?Rx.CYAN:Rx.GRAY},2===r?it.pointer:" "," 2. Remove worktree"," ",Xe.createElement(Ve,{color:Rx.GRAY},"All changes and commits will be lost.")))))},"WorktreeExitPrompt");function promptWorktreeExit(e){return new Promise(t=>{const{unmount:n}=Ke(Xe.createElement(C_,{worktreePath:e.worktreePath,warning:e.warning,onChoice:e=>{n(),t(e)}}),{stdin:process.stdin,stdout:process.stdout,stderr:process.stderr})})}function canRespawn(){if(process.versions.bun)return!1;const e=process.argv[1];return"string"==typeof e&&e.length>0}async function writeReloadHandoff(e){const t=process.env[nT];if(t)try{await z.writeFile(t,serializeReloadCarryover(e))}catch{}}async function consumeReloadHandoff(e){try{return parseReloadCarryover(await z.readFile(e,"utf-8"))}catch{return null}finally{await z.unlink(e).catch(()=>{})}}function restoreTerminal(){try{process.stdin.isTTY&&process.stdin.setRawMode(!1)}catch{}try{process.stdout.write("[?25h")}catch{}}__name(promptWorktreeExit,"promptWorktreeExit"),Ex(),Px(),__name(canRespawn,"canRespawn"),__name(writeReloadHandoff,"writeReloadHandoff"),__name(consumeReloadHandoff,"consumeReloadHandoff"),__name(restoreTerminal,"restoreTerminal");var b_=lt.hex(Rx.DIM);function printReloadFallbackHint(){process.stdout.write(b_("Couldn't restart automatically in this build — exiting instead.\n"))}async function shutdownWrapperRuntime(){try{await Promise.allSettled([disconnectAllMcpServers(),_O()])}catch{}try{await shutdownTelemetry()}catch{}process.removeAllListeners("SIGINT"),process.removeAllListeners("SIGTERM"),process.on("SIGINT",()=>{}),process.on("SIGTERM",()=>{}),process.stdin.pause()}async function runRelaunchLoop(e){await shutdownWrapperRuntime();const n=await z.mkdtemp(t.join(N.tmpdir(),"cmd-reload-")),r=t.join(n,"handoff.json");let o=e;for(;;){const e=await commandSessionTranscriptExists(o.sessionId),t=buildRelaunchArgs({invocation:getOriginalInvocation(),request:o,resumable:e,argv:process.argv.slice(2)});clearTerminalTitle();const s=B(process.execPath,[process.argv[1],...t],{stdio:"inherit",env:{...process.env,[nT]:r,[rT]:String(process.pid)}});let a,i;try{[a,i]=await new Promise((e,t)=>{s.once("exit",(t,n)=>e([t,n])),s.once("error",t)})}catch(e){restoreTerminal(),process.stderr.write(b_(`\nCouldn't relaunch Command Code: ${e.message}\n`)),await z.rm(n,{recursive:!0,force:!0}).catch(()=>{}),process.exit(1)}if(a!==tT){if(restoreTerminal(),await z.rm(n,{recursive:!0,force:!0}).catch(()=>{}),i){const e=N.constants.signals[i];process.exit(e?128+e:1)}process.exit(a??1)}else o=await consumeReloadHandoff(r)??o}}async function handlePendingReload(e){canRespawn()?(isWrappedChild()&&(await writeReloadHandoff(e),process.exit(tT)),await runRelaunchLoop(e)):printReloadFallbackHint()}__name(printReloadFallbackHint,"printReloadFallbackHint"),__name(shutdownWrapperRuntime,"shutdownWrapperRuntime"),__name(runRelaunchLoop,"runRelaunchLoop"),__name(handlePendingReload,"handlePendingReload");var E_=__name(e=>e.replace(/\x1B\[[0-9;]*[A-Za-z]/g,"").replace(/[\x00-\x1F\x7F]/g," ").trim(),"sanitizeTitleForOutput"),T_=lt.hex(Rx.DIM),P_=__name(()=>{const e=getInvokedCommandName();return"win32"===process.platform&&"cmd"===e?"cmdc":e},"getResumeCommandName"),M_=__name((e,t)=>{const n=P_(),r=we([e]),o=t?`cd ${we([t])} && ${n} --resume ${r}`:`${n} --resume ${r}`;return`${T_("Resume this session with:")}\n${T_(o)}\n`},"formatResumeHint"),x_=__name(e=>e?{isValid:!0}:{isValid:!1,errorMessage:["Error: Interactive mode requires a TTY terminal.","Please run this command directly in your terminal, not through a pipe or redirect."].join("\n")},"validateTtyEnvironment"),I_=__name(e=>Boolean(e.resume||e.continue),"shouldValidateSessions"),A_=__name(({isInitialized:e,sessionCount:t})=>e&&0===t?{canProceed:!1,exitCode:0,message:"No conversations found to resume."}:{canProceed:!0},"validateSessionAvailability"),R_=__name(e=>e.permissionMode?e.permissionMode:e.plan?"plan":void 0,"resolveInitialPermissionMode"),O_=__name(({options:e,resumeSessionId:t,sessionTitleHolder:n})=>{const r=R_(e);return{resume:"boolean"==typeof e.resume?e.resume:void 0,resumeSessionId:t,continue:e.continue,trust:e.trust,dangerouslySkipPermissions:e.dangerouslySkipPermissions,initialPrompt:e.initialPrompt,skipOnboarding:e.skipOnboarding,initialPermissionMode:r,local:e.local,sessionTitleHolder:n}},"buildInteractiveCLIProps"),D_=__name(()=>({stdin:process.stdin,stdout:process.stdout,stderr:process.stderr,exitOnCtrlC:!1}),"getInkRenderOptions"),L_=__name(()=>{enableBracketedPasteMode(),process.on("exit",()=>{disableBracketedPasteMode()})},"setupBracketedPasteMode"),N_=__name(()=>{L_()},"initializeTerminal"),$_=__name(()=>{process.on("SIGINT",()=>{})},"swallowSigintDuringShutdown"),__=__name(async e=>{const{resumeSessionId:t,useContinue:n}=e,r=n?(await listCommandSessions())[0]?.id:void 0,o=t??r;if(!o)return console.error("--fork-session ignored: no session to fork (use with --resume <id|name> or --continue)."),null;try{const{newId:e}=await forkCommandSessionFiles({sourceId:o});return e}catch(e){const t=e instanceof Error?e.message:String(e);return console.error(`--fork-session failed: ${t}. Resuming the original session.`),null}},"forkSourceAtColdStart"),F_=__name(async(e={})=>{const t=x_(process.stdin.isTTY);let n,o;if(t.isValid||(console.error(t.errorMessage),process.exit(1)),N_(),"string"==typeof e.resume){const t=e.resume.trim();await isCommandProjectSessionInitialized()||(console.error("Project not initialized. Run cmd to start a conversation first."),process.exit(1));const r=await resolveCommandSessionRef({sessionRef:t});"not-found"===r.status&&(console.error(buildSessionRefNotFoundMessage(t)),process.exit(1)),n=r.sessionId}if("string"==typeof e.session&&!n){const t=getCommandSessionRuntime(),a=await listAllSessionsV3({runtime:t}),i=getProjectSessionDir({env:t.env(),cwd:t.cwd()}),l=resolveSessionRefFlag({ref:e.session,isExistingFile:__name(e=>y(e),"isExistingFile"),listSessionIds:__name(()=>a.map(e=>e.id),"listSessionIds")});"not-found"===l.kind&&(console.error(`--session "${e.session}" is neither an existing .jsonl transcript nor a known session-id prefix.`),process.exit(1)),"ambiguous"===l.kind&&(console.error(`--session "${e.session}" is ambiguous — matches: ${l.candidates.join(", ")}`),process.exit(1));const d="path"===l.kind?s(l.path):s(a.find(e=>e.id===l.sessionId)?.path??"");n=c(d,".jsonl"),r(d)!==i&&(o=d)}if(I_(e)&&!n){const e=await isCommandProjectSessionInitialized(),t=e?await listCommandSessions():[],n=A_({isInitialized:e,sessionCount:t.length});n.canProceed||(console.log(n.message),process.exit(n.exitCode))}if(e.forkSession){const t=await __({resumeSessionId:n,useContinue:Boolean(e.continue)});t&&(n=t,e.continue=!1)}await applyStartupTheme(),startEarlyInputCapture(),setStartupSessionOptions({...!1===e.session?{persist:!1}:{},...o?{sessionFilePath:o}:{},...e.name?{name:e.name}:{}});const a={},i=O_({options:e,resumeSessionId:n,sessionTitleHolder:a}),l=D_(),d=Ke(Xe.createElement(v_,{...i}),l);registerInkControl({clear:d.clear,stdout:process.stdout,instance:await resolveInkInstance(process.stdout)}),await d.waitUntilExit(),clearTerminalTitle(),$_();const u=consumePendingReload();u&&await handlePendingReload(u);const m=await(a.loadTitle?.())??null,p=Boolean(m);let g;const h=getAutoCreatedWorktree();if(h){const e=worktreeHasWork(h.worktreePath,h.baseSha);let t="auto";if(e||p){const n=worktreeChangeCount(h.worktreePath),r=e?n>0?`You have ${n} uncommitted file${1===n?"":"s"}. These will be lost if you remove the worktree.`:"This worktree has commits that are not on your main branch. They will be lost if you remove it.":null;t=await promptWorktreeExit({worktreePath:h.worktreePath,warning:r})}const n=finalizeAutoCreatedWorktree(t);if(n.worktreePath){const e=T_(createOSC8Link(fileUrl(n.worktreePath),tildeHome(n.worktreePath),!1));if(n.removed){const n="auto"===t?"Removed empty worktree":"Removed worktree";process.stdout.write(`${T_(n)}\n${e}\n\n`)}else if(n.kept){g=n.worktreePath;const t=n.reason&&"kept"!==n.reason?` (${n.reason})`:"";process.stdout.write(`${T_(`Kept worktree${t}`)}\n${e}\n\n`)}}}const f=a.sessionId;if(f&&await commandSessionExists(f)){const e=m?E_(m):"";process.stdout.write(M_(e||f,g))}},"interactiveMode");Ex(),Px(),Ex();function isAgentMetrics(e){if("object"!=typeof e||null===e)return!1;const t=e;return"string"==typeof t.name&&"number"==typeof t.turns&&"object"==typeof t.toolCalls&&null!==t.toolCalls&&"number"==typeof t.toolErrors&&"number"==typeof t.tokens&&"number"==typeof t.durationMs}function extractAgentMetrics(e){const t=e.indexOf("\x3c!-- BENCHMARK_AGENT_METRICS:");if(-1===t)return{cleanContent:e,metrics:null};const n=t+29,r=e.indexOf(" --\x3e",n);if(-1===r)return{cleanContent:e,metrics:null};try{const o=e.substring(n,r),s=JSON.parse(o);return isAgentMetrics(s)?{cleanContent:e.substring(0,t).trimEnd()+e.substring(r+4),metrics:s}:{cleanContent:e,metrics:null}}catch{return{cleanContent:e,metrics:null}}}__name(isAgentMetrics,"isAgentMetrics"),__name(extractAgentMetrics,"extractAgentMetrics");var U_=__name(e=>({turnNumber:e,apiDurationMs:0,toolCalls:[],toolDurationMs:0,inputTokens:0,outputTokens:0,cacheReadTokens:0,cacheCreationTokens:0}),"newTurn");function createBenchmarkCollector(e){const t=e.now??Date.now,n=e.writeFile??((e,t)=>{h.writeFileSync(e,t)}),r=t(),o=[],s=[],a=new Map,i=new Map;let l,c=!1;const d=__name(e=>{let t=e;for(;;){const{cleanContent:e,metrics:n}=extractAgentMetrics(t);if(!n)return;s.push(n),t=e}},"collectAgentMetrics"),u=__name(()=>{const e=o[o.length-1];if(e)return e;const t=U_(o.length+1);return o.push(t),t},"currentTurn"),m=__name(e=>{const n=u(),r=a.get(e.toolCallId);void 0!==r&&(n.toolDurationMs+=t()-r,a.delete(e.toolCallId));const o=i.get(e.toolCallId);o?o.isError=e.isError||o.isError:n.toolCalls.push({name:e.toolName,isError:e.isError})},"finishToolCall"),p=__name(e=>{if("turn_start"!==e.type)if("model_request_start"!==e.type){if("model_request_end"===e.type){const n=u();return void 0!==l&&(n.apiDurationMs+=t()-l,l=void 0),n.inputTokens+=e.usage.inputTokens,n.outputTokens+=e.usage.outputTokens,n.cacheReadTokens+=e.usage.cacheReadTokens,void(n.cacheCreationTokens+=e.usage.cacheWriteTokens)}if("tool_running"===e.type){const n={name:e.toolName,isError:!1};return a.set(e.toolCallId,t()),i.set(e.toolCallId,n),void u().toolCalls.push(n)}if("tool_completed"!==e.type)"tool_errored"!==e.type&&"tool_denied"!==e.type&&"tool_hook_blocked"!==e.type?"run_end"!==e.type||(c=c||"max_turns"===e.result.stopReason):m({toolCallId:e.toolCallId,toolName:e.toolName,isError:!0});else{m({toolCallId:e.toolCallId,toolName:e.toolName,isError:!1});for(const t of e.result)"text"===t.type&&d(t.text)}}else l=t();else o.push(U_(e.turnNumber))},"onEvent"),g=__name(()=>{const e={};let n=0,a=0,i=0,l=0;for(const t of o){for(const r of t.toolCalls)n++,e[r.name]=(e[r.name]??0)+1,r.isError&&a++;i+=t.inputTokens,l+=t.outputTokens}return{wallTimeMs:t()-r,turns:o.length,turnDetails:o.map(e=>({turnNumber:e.turnNumber,apiDurationMs:e.apiDurationMs,toolCalls:e.toolCalls.map(e=>({name:e.name,isError:e.isError})),toolDurationMs:e.toolDurationMs,inputTokens:e.inputTokens,outputTokens:e.outputTokens,cacheReadTokens:e.cacheReadTokens,cacheCreationTokens:e.cacheCreationTokens})),toolCalls:{total:n,byType:e,errors:a},tokens:{input:i,output:l},maxTurnsReached:c,agents:[...s]}},"snapshot"),f=__name(()=>{try{n(e.outputPath,JSON.stringify(g(),null,2))}catch{}},"write");return{onEvent:p,snapshot:g,write:f}}__name(createBenchmarkCollector,"createBenchmarkCollector");var j_=null,B_=!1;function resolveLaunchPermissionMode(e){return e.permissionMode?e.permissionMode:e.plan?"plan":e.dangerouslySkipPermissions?"bypass":void 0}function getAuthKey4(){return getCommandAuthKey({runtime:getCommandConfigRuntime(),path:getAuthFile(),env:process.env})}async function readStdin(){return new Promise((e,t)=>{let n="";const r=setTimeout(()=>{t(new Error("Timeout reading from stdin"))},3e4);process.stdin.setEncoding("utf8"),process.stdin.on("data",e=>{n+=e}),process.stdin.on("end",()=>{clearTimeout(r),e(n)}),process.stdin.on("error",e=>{clearTimeout(r),t(e)}),process.stdin.resume()})}function setupSignalHandlers(){if(B_)return;B_=!0;const e=__name(e=>{j_?.abort(),process.stderr.write(`\n${e}\n`),process.exit(ab.INTERRUPTED)},"handleTermination");process.on("SIGINT",()=>e("Interrupted.")),process.on("SIGTERM",()=>e("Terminated.")),process.stdout.on("error",e=>{"EPIPE"===e.code&&process.exit(ab.SUCCESS),process.stderr.write(`Error writing to stdout: ${e.message}\n`),process.exit(ab.ERROR)})}async function printMode(e={}){trackCommand({command:"print"}),setupSignalHandlers(),j_=new AbortController;const t=e.benchmarkOutput?createBenchmarkCollector({outputPath:e.benchmarkOutput}):null,n=resolveToolEnable({flags:e,env:process.env}),r=toolEnableWarning(n);r&&process.stderr.write(`${r}\n`);const o=await runPrintMode({options:e,stdinIsTTY:Boolean(process.stdin.isTTY),readStdin:readStdin,isAuthenticated:__name(async()=>null!==await getAuthKey4(),"isAuthenticated"),createHarness:__name(async({sessionId:t,entrypoint:r,headless:o,maxTurns:s,mods:a,resumeState:i,sessionFilePath:l})=>{const c=await createHarnessSession({sessionId:t,baseUrl:getApiBaseUrl(),entrypoint:r,headless:o,maxTurns:s,mods:a,dangerouslySkipPermissions:e.dangerouslySkipPermissions,permissionMode:resolveLaunchPermissionMode(e),...n.forceEnabledTools?{forceEnabledTools:n.forceEnabledTools}:{},modHost:await loadCommandModHost({projectMods:Boolean(e.dangerouslySkipPermissions)}),resumeState:i,persist:e.persist,sessionFilePath:l,ideBridge:createLocalIdeBridge()});return e.name&&c.setSessionName(e.name),c},"createHarness"),emit:__name(e=>{"session"===e.type&&process.stderr.write(`session: ${e.sessionId}\n`)},"emit"),writeStdout:__name(e=>{process.stdout.write(e)},"writeStdout"),...t?{runQuery:__name(e=>runHarnessQuery({...e,onEvent:__name(n=>{e.onEvent?.(n),t.onEvent(n)},"onEvent")}),"runQuery")}:{}});t?.write(),o.stdoutText&&process.stdout.write(o.stdoutText),o.stderrText&&process.stderr.write(o.stderrText),process.exit(o.exitCode)}async function ensureAuthenticated(){return ensureCommandAuthenticated({runLogin:__name(async()=>{await runLogin()},"runLogin"),getAuthKey:__name(()=>getCommandAuthKey({runtime:getCommandConfigRuntime(),path:getAuthFile(),env:process.env}),"getAuthKey"),onAuthFailed:__name(()=>{console.error(`${it.cross} Authentication failed. Please try again with: ${getBinaryCommand()} login`)},"onAuthFailed"),onLoginError:__name(e=>{console.error(`${it.cross} Login failed: ${getErrorMessage(e)}`),console.error(`Please try again with: ${getBinaryCommand()} login`)},"onLoginError"),onCheckError:__name(e=>{console.error("Error checking authentication:",e)},"onCheckError")})}function resolveModelFlag({model:e}){return resolveModelInput({model:e,models:getAllModelOptions()})}function suggestModel(e){return suggestModelInput({input:e,models:getAllModelOptions()})}function formatModelList(e={}){return formatModelListText({color:e.color,defaultModel:Vn,groups:getModelGroupsInOrder()})}function printModelList(){const e=Boolean(process.stdout.isTTY)&&void 0===process.env.NO_COLOR;process.stdout.write(`${formatModelList({color:e})}\n`)}function resolveModelFlagOrExit({model:e}){const t=resolveModelFlag({model:e});if(t)return t;const n=suggestModel(e),r=n?` Did you mean "${n}"?`:"";process.stderr.write(`Error: unknown model "${e}".${r}\nRun "${getBinaryCommand()} --list-models" to see all available models\n`),process.exit(1)}__name(resolveLaunchPermissionMode,"resolveLaunchPermissionMode"),__name(getAuthKey4,"getAuthKey"),__name(readStdin,"readStdin"),__name(setupSignalHandlers,"setupSignalHandlers"),__name(printMode,"printMode"),Ex(),Px(),__name(ensureAuthenticated,"ensureAuthenticated"),Ex(),Px(),__name(resolveModelFlag,"resolveModelFlag"),__name(suggestModel,"suggestModel"),__name(formatModelList,"formatModelList"),__name(printModelList,"printModelList"),__name(resolveModelFlagOrExit,"resolveModelFlagOrExit"),Ex(),Px();var W_=!1;function getAuthKey5(){return getCommandAuthKey({runtime:getCommandConfigRuntime(),path:getAuthFile(),env:process.env})}function setupTelemetry(){initTelemetry()&&(startSession(),registerStartupTask(trackSystemInfo()),trackCliSessionExistsEvent(),registerCleanupHandlers())}function trackSystemInfo(){return trackTelemetryIdentity({client:createApiClient({baseUrl:getApiBaseUrl()}),platform:L.platform(),arch:L.arch()})}function registerCleanupHandlers(){process.on("beforeExit",async()=>{await shutdownTelemetry()}),process.on("exit",()=>{shutdownTelemetrySync()}),process.on("SIGINT",handleShutdownSignal),process.on("SIGTERM",handleShutdownSignal)}async function disconnectMcpServers(){try{await Promise.allSettled([disconnectAllMcpServers(),_O()])}catch{}}function handleShutdownSignal(){W_||(W_=!0,abandonPendingCommandSpan(),Promise.allSettled([disconnectMcpServers(),shutdownTelemetry()]).finally(()=>{process.exit(0)}))}async function shutdownAndExit(e=0){W_=!0,abandonPendingCommandSpan();try{await Promise.allSettled([disconnectMcpServers(),shutdownTelemetry(kn)])}finally{process.exit(e)}}async function trackCliSessionExistsEvent(){try{if(!await getAuthKey5())return;const e=getSessionId();if(!e)return;const t=getPackageJson(import.meta.url).version||"unknown",n=L.platform(),r=L.arch(),o=isTTY()?"interactive":"non-interactive";await trackLifecycleEvent({eventType:"cli_session_exists",metadata:{sessionId:e,cliVersion:t,mode:o,os:`${n}-${r}`},isTelemetryEnabled:isTelemetryEnabled,createClient:__name(()=>createApiClient({baseUrl:getApiBaseUrl()}),"createClient"),log:dlog})}catch{}}__name(getAuthKey5,"getAuthKey"),__name(setupTelemetry,"setupTelemetry"),__name(trackSystemInfo,"trackSystemInfo"),__name(registerCleanupHandlers,"registerCleanupHandlers"),__name(disconnectMcpServers,"disconnectMcpServers"),__name(handleShutdownSignal,"handleShutdownSignal"),__name(shutdownAndExit,"shutdownAndExit"),__name(trackCliSessionExistsEvent,"trackCliSessionExistsEvent");var H_=__name(async()=>{await ensureAuthenticated()||process.exit(1)},"requireAuth");async function interactiveModeAction(e,t){if(trackCommand({command:"interactive"}),t.listModels)return void printModelList();if(t.addDir&&t.addDir.length>0)for(const e of t.addDir)nf.addDirectory(e);t.mod&&t.mod.length>0&&setModPathsOverride(t.mod),t.modOption&&t.modOption.length>0&&setModOptionsOverride(t.modOption);const n=(t.skill??[]).map(e=>s(e)),r=!1!==t.skills;if(setSkillLoadOverrides({extraPaths:n,discovery:r}),void 0!==t.worktree&&!1!==t.worktree){const e=void 0!==t.print;e||Boolean(t.trust||t.dangerouslySkipPermissions)||await isCommandProjectSessionInitialized()||(console.error(`Worktree error: this directory isn't trusted yet. Run \`${getInvokedCommandName()}\` here once to trust it, then retry with --worktree.`),process.exit(1));const n=enterWorktreeFromFlag(t.worktree,{quiet:e,track:!e});n.ok||(console.error(`Worktree error: ${n.error}`),process.exit(1)),await initializeCommandProjectSessions()}const o=t.model?resolveModelFlagOrExit({model:t.model}):void 0,a=t,i=__name(e=>{process.stderr.write(`${e.message}\n`),e.ok||process.exit(1)},"applySettingResult");for(const e of vD){const t=a[e.key];"string"==typeof t&&i(await e.apply(t,{model:o}))}const l=a.config;if(Array.isArray(l))for(const e of l)"string"==typeof e&&i(await applyConfigSetting(e));if((t.dangerouslySkipPermissions||"bypass"===t.permissionMode)&&isBypassPermissionsDisabled(await loadCommandCodeConfig({runtime:getCommandConfigRuntime()}))&&(process.stderr.write("Bypass permissions are disabled by settings (permissions.disableBypass); continuing with normal permission prompts.\n"),t.dangerouslySkipPermissions=!1,"bypass"===t.permissionMode&&(t.permissionMode=void 0)),void 0!==t.print){const n=extractPrintModeQuery({print:t.print,prompt:e});return void await printMode({query:n,dangerouslySkipPermissions:t.dangerouslySkipPermissions,plan:t.plan,permissionMode:t.permissionMode,maxTurns:t.maxTurns,verbose:t.verbose,toolsAll:t.toolsAll,toolsEnable:t.toolsEnable,outputFormat:t.outputFormat,model:o,benchmarkOutput:t.benchmarkOutput,name:t.name,resume:t.resume,continue:t.continue,forkSession:t.forkSession,session:"string"==typeof t.session?t.session:void 0,persist:!1!==t.session&&void 0})}o&&setModelOverride(o),setGoalMaxTurnsOverride(t.maxTurns);const c=parseInteractivePromptArgument(e);await H_();const d=buildInteractiveRuntimeOptions(t),u=resolveInteractiveLaunchConfig({options:t,runtimeOptions:d,initialPrompt:c});setOriginalInvocation({trust:d.trust,dangerouslySkipPermissions:d.dangerouslySkipPermissions,skipOnboarding:d.skipOnboarding,maxTurns:t.maxTurns,skillPaths:n,skillDiscovery:r}),await installKeybindingsFromConfig({runtime:getCommandConfigRuntime()}),await F_(u),await shutdownAndExit(0)}__name(interactiveModeAction,"interactiveModeAction"),Ex(),Px(),Ex(),Px();var G_={connected:lt.green("✔"),installed:lt.green("✔"),up_to_date:lt.green("✔"),needs_reload:lt.yellow("◌"),failed:lt.red("✖"),not_in_ide:lt.yellow("◌")};function formatSetupResult(e){const{prefix:t,ide:n,suffix:r}=getIDESetupStatusHeadline(e.status,e.ide),o=`${t}${n??""}${r}`;return["",`${G_[e.status]} ${o}`,...(e.details??[]).map(e=>lt.dim(` ${e}`)),""]}__name(formatSetupResult,"formatSetupResult"),globalThis.COMMAND_CODE_CWD=process.cwd();var V_=__name(()=>process.cwd(),"getCwd"),z_=__name(()=>process.argv.slice(2),"getArgs"),q_=__name(()=>{const e=V_(),t=z_(),n=getCliStartupEnvironment(t);dlog(`[Startup] cwd: ${e}`),dlog(`[Startup] args: ${t.join(" ")}`),dlog(`[Startup] env: ${n}`),dlog(`[Startup] traceId: ${getTraceId()??"unavailable"}`)},"logStartupInfo");function getAuthKey6(){return getCommandAuthKey({runtime:getCommandConfigRuntime(),path:getAuthFile(),env:process.env})}async function preRun(){q_();const e=resolveCliStartupPlan({args:z_()});if(e.shouldRunIdeSetup){const e=await runIdeSetup({host:G$,moduleUrl:import.meta.url});formatSetupResult(e).forEach(e=>console.log(e)),process.exit("failed"===e.status?1:0)}e.shouldRunAutoUpdate&&runCliStartupPendingUpdates({plan:e,host:t_}),await migrateDeprecatedModel(),await getAuthKey6()&&detectAndTrackFirstInstall({loadUserConfig:loadUserConfig,updateUserConfig:updateUserConfig,trackLifecycleEvent:__name(e=>trackLifecycleEvent({...e,isTelemetryEnabled:isTelemetryEnabled,createClient:__name(()=>createApiClient({baseUrl:getApiBaseUrl()}),"createClient"),log:dlog}),"trackLifecycleEvent"),getCliVersion:__name(()=>getPackageJson(import.meta.url).version??"unknown","getCliVersion"),log:dlog}).catch(()=>{}),e.shouldRunAutoUpdate&&runCliStartupUpdateCheck({plan:e,host:t_}),scheduleCliStartupIdeAutoInstall({host:G$,moduleUrl:import.meta.url})}__name(getAuthKey6,"getAuthKey"),__name(preRun,"preRun"),Ex(),Px();var K_=Object.fromEntries(Object.entries(zw).map(([e,t])=>[t,e])),Y_=new Set(VR.map(e=>e.id));function formatProviderModule(e){return Y_.has(e)?`@commandcode/provider-${e}`:e}async function buildProviderLoginRows(e={}){const t=e.hasCredential??hasProviderCredential,n=e.modules??(await loadInstalledProviderModules()).modules,r=e.moduleSources??{},o=[];for(const e of n){const n=Boolean(e.auth?.methods.length),s=K_[e.id]??e.id;o.push({provider:e.id,name:e.displayName??e.id,module:r[e.id]??formatProviderModule(e.id),description:e.transport.kind,authenticated:!!n&&await t({provider:s}),canAuthenticate:n})}return o}function formatProviderLoginRows(e){const t=getBinaryCommand(),n=[yt.bold("Providers available for login/logout"),""];for(const r of e){const e=r.authenticated?yt.green("logged in"):yt.dim("not logged in");n.push(yt.cyan(r.provider)),n.push(` Name: ${r.name}`),n.push(` Module: ${r.module}`),n.push(` Type: ${r.description}`),r.canAuthenticate?(n.push(` Status: ${e}`),n.push(` Login: ${t} login ${r.provider}`),n.push(` Logout: ${t} logout ${r.provider}`),n.push("")):(n.push(` Status: ${yt.dim("no login")}`),n.push(""))}return n.join("\n")}async function providersAction(e){const t=await loadInstalledProviderModules(),n=await buildProviderLoginRows({modules:t.modules,moduleSources:t.sources});if(e.json)console.log(JSON.stringify({providers:n,errors:t.errors}));else if(console.log(formatProviderLoginRows(n)),t.errors.length>0){console.log(yt.yellow("Provider load errors"));for(const e of t.errors)console.log(`${yt.yellow(e.id)}: ${e.error}`)}}__name(formatProviderModule,"formatProviderModule"),__name(buildProviderLoginRows,"buildProviderLoginRows"),__name(formatProviderLoginRows,"formatProviderLoginRows"),__name(providersAction,"providersAction");var J_=new Le("providers").description("List providers available for login/logout").option("--json","Output providers as JSON for automation").action(providersAction);function stopAllSpinners({state:e}){e.workingSpinner&&(e.workingSpinner.stop(),e.workingSpinner=null),e.currentSpinner&&(e.currentSpinner.stop(),e.currentSpinner=null)}function renderStatusAction({action:e,state:t}){if("replayed_setup"!==e.type)return"setup_step"===e.type?(t.currentSpinner&&t.currentSpinner.succeed(),void(t.currentSpinner=kt({stream:process.stderr,text:e.message}).start())):"running"===e.type?(t.currentSpinner&&(t.currentSpinner.succeed(),t.currentSpinner=null),void(t.workingSpinner||(t.workingSpinner=kt({stream:process.stderr}).start()))):"completed"===e.type?(t.workingSpinner&&(t.workingSpinner.succeed("Session completed"),t.workingSpinner=null),t.currentSpinner&&(t.currentSpinner.succeed(),t.currentSpinner=null),void(e.prUrl&&console.error(`PR: ${yt.cyan(e.prUrl)}`))):"failed"===e.type?(t.workingSpinner&&(t.workingSpinner.fail(e.message),t.workingSpinner=null),void(t.currentSpinner&&(t.currentSpinner.fail(e.message),t.currentSpinner=null))):"timed_out"===e.type?(t.workingSpinner&&(t.workingSpinner.fail("Session timed out"),t.workingSpinner=null),void(t.currentSpinner&&(t.currentSpinner.fail("Timed out"),t.currentSpinner=null))):void("cancelled"===e.type&&(stopAllSpinners({state:t}),console.error(`\n${yt.yellow("Cancelled.")}`)));e.message&&t.workingSpinner&&(t.workingSpinner.text=e.message)}function setupInputHandling({callbacks:e}){const t=__name(t=>{3!==t[0]?4===t[0]&&e.onDetach():e.onCancel()},"onStdinData"),n=process.rawListeners("SIGINT").slice();return process.removeAllListeners("SIGINT"),process.stdin.isTTY?(process.stdin.setRawMode(!0),process.stdin.resume(),process.stdin.on("data",t),process.on("SIGINT",()=>{})):process.on("SIGINT",()=>e.onCancel()),()=>{process.stdin.isTTY&&(process.stdin.removeListener("data",t),process.stdin.setRawMode(!1),process.stdin.pause()),process.removeAllListeners("SIGINT");for(const e of n)process.on("SIGINT",e)}}function setupResizeForwarding({handle:e}){const t=__name(()=>{e.sendResize({cols:process.stdout.columns,rows:process.stdout.rows})},"onResize");return process.stdout.on("resize",t),()=>process.stdout.removeListener("resize",t)}async function streamSession({sessionId:e,lastEventId:t=0,isResume:n=!1}){const r={currentSpinner:null,workingSpinner:null},o=await streamSandboxSession({sessionId:e,lastEventId:t,isResume:n,getTerminalSize:__name(()=>({cols:process.stdout.columns,rows:process.stdout.rows}),"getTerminalSize"),callbacks:{onOpen:__name(({isResume:t})=>{r.currentSpinner&&(r.currentSpinner.stop(),r.currentSpinner=null),console.error(""),console.error(`${yt.yellow("[Ctrl+C]")} ${yt.dim("stop")} ${yt.yellow("[Ctrl+D]")} ${yt.dim("detach")}`),console.error(`${yt.dim("Session:")} ${yt.gray(e)}`),console.error(""),t&&(r.workingSpinner=kt({stream:process.stderr}).start())},"onOpen"),onStatus:__name(({action:e})=>renderStatusAction({action:e,state:r}),"onStatus"),onPty:__name(({content:e})=>{r.workingSpinner&&r.workingSpinner.stop(),process.stdout.write(e),r.workingSpinner&&r.workingSpinner.start()},"onPty"),onErrorEvent:__name(({message:e})=>{r.currentSpinner&&(r.currentSpinner.fail(),r.currentSpinner=null),console.error(`${it.cross} ${yt.red(e)}`)},"onErrorEvent"),onDetached:__name(()=>{stopAllSpinners({state:r}),console.error(`\n${yt.yellow("Detached.")} Session still running.`),console.error(`Resume with: ${yt.cyan(`${getBinaryCommand()} --experimental sandbox --id ${e}`)}`)},"onDetached"),onCancelled:__name(()=>{stopAllSpinners({state:r}),console.error(`\n${yt.yellow("Sandbox stopped.")}`)},"onCancelled"),onDisconnected:__name(()=>{stopAllSpinners({state:r}),console.error(`\n${yt.yellow("Disconnected.")} Session still running.`),console.error(`Resume with: ${yt.cyan(`${getBinaryCommand()} --experimental sandbox --id ${e}`)}`)},"onDisconnected"),onConnectionError:__name(()=>{r.currentSpinner&&(r.currentSpinner.fail("Connection error"),r.currentSpinner=null)},"onConnectionError")}});n&&(r.currentSpinner=kt({stream:process.stderr,text:"Reconnecting..."}).start());const s=setupResizeForwarding({handle:o}),a=setupInputHandling({callbacks:{onCancel:o.cancel,onDetach:o.detach}});process.once("SIGTERM",o.detach);try{await o.done}finally{s(),a(),process.removeListener("SIGTERM",o.detach)}}async function askQuestion(e){const t=Et.createInterface({input:process.stdin,output:process.stderr});return new Promise(n=>{t.question(e,e=>{t.close(),n(e)})})}async function sandboxMode({prompt:e,resume:t}){t&&(await streamSession({sessionId:t,isResume:!0}),process.exit(0)),await ensureAuthenticated()||process.exit(1);const n=validateSandboxGitRepo({run:__name(({command:e})=>W(e,{encoding:"utf-8",stdio:["pipe","pipe","pipe"]}),"run")});n.isClean||console.error(yt.yellow("Warning: You have uncommitted changes. The sandbox clones from remote, so local changes won't be included."));const r=isInternalTeamFlagPresent(),o=await readSandboxConfigFiles({runtime:getCommandConfigRuntime(),authFilePath:getAuthFile(),configFilePath:getConfigFile()}),s=e||await askQuestion(`${yt.bold("What do you want to do?")}\n${yt.cyan(">")} `);if(!s.trim())return void console.error(yt.yellow("No prompt provided. Aborting."));const a=truncateSandboxPrompt(s),i=kt({stream:process.stderr,text:"Starting sandbox session..."}).start();try{const e=await startSandboxSession({client:createApiClient({baseUrl:getApiBaseUrl()}),request:{repoUrl:n.repoUrl,branch:n.branch,prompt:a,isInternalTeam:r,configFiles:o}});i.succeed("Sandbox started"),await streamSession({sessionId:e.sessionId,prompt:a}),process.exit(0)}catch(e){i.fail("Failed to start sandbox session");const t=classifySandboxStartFailure({error:e});if("unauthorized"===t.kind&&(console.error(yt.red(`\nAuthentication failed. Try logging in again: ${getBinaryCommand()} login`)),process.exit(1)),"github_app_not_installed"===t.kind){const e=yt.cyan(yt.underline(n.repoUrl)),t=yt.cyan(yt.underline("https://github.com/apps/command-code-ai/installations/new"));console.error(`\n${yt.red("✖")} Command Code GitHub App isn't installed on ${e}`),console.error(` Install it here: ${t}`),console.error(yt.dim(" Then run this command again.")),process.exit(1)}console.error(yt.red(`\n${t.message}`)),process.exit(1)}}function createSandboxCommand(){return new Le("sandbox").description("Run a task autonomously in a sandbox").argument("[prompt]","Task description").option("--id <sessionId>","Resume an existing sandbox session").enablePositionalOptions().action(async(e,t)=>{try{await sandboxMode({prompt:e,resume:t.id})}catch(e){const t=e instanceof Error?e.message:"Unknown error";console.error(yt.red(t)),process.exit(1)}})}Ex(),Ex(),Px(),Ex(),Px(),__name(stopAllSpinners,"stopAllSpinners"),__name(renderStatusAction,"renderStatusAction"),__name(setupInputHandling,"setupInputHandling"),__name(setupResizeForwarding,"setupResizeForwarding"),__name(streamSession,"streamSession"),__name(askQuestion,"askQuestion"),__name(sandboxMode,"sandboxMode"),__name(createSandboxCommand,"createSandboxCommand"),Ex(),Ex(),Px();var Q_=[`${yt.dim("Usage:")}`,` ${yt.cyan(`${getBinaryCommand()} skills add`)} ${yt.white("<owner/repo>")}`,"",`${yt.dim("Examples:")}`,` ${yt.cyan(`${getBinaryCommand()} skills add`)} ${yt.white("acme/my-skills")} ${yt.dim("# single-skill repo")}`,` ${yt.cyan(`${getBinaryCommand()} skills add`)} ${yt.white("acme/skills/path/to/skill")} ${yt.dim("# specific path in repo")}`,` ${yt.cyan(`${getBinaryCommand()} skills add`)} ${yt.white("acme/multi-skills -s my-skill")} ${yt.dim("# pick one from multi-skill repo")}`,` ${yt.cyan(`${getBinaryCommand()} skills add`)} ${yt.white("acme/repo@branch")} ${yt.dim("# specific branch")}`,` ${yt.cyan(`${getBinaryCommand()} skills add`)} ${yt.white("acme/repo --global")} ${yt.dim("# install to ~/.commandcode/skills/")}`],X_=__name((e,t)=>`${yt.green(it.tick)} Installed ${yt.cyan(e)} ${yt.dim(`${it.arrowRight} ${t}/`)}`,"formatInstalled"),Z_=__name(e=>`${yt.red(it.cross)} ${e}`,"formatError");async function cleanupAndExit(e,t){await removeSkillInstallTempDir(e),process.exit(t)}function validateRepoFormat(e){const t=validateSkillInstallRepoInput(e);t.valid||(console.error(Z_(t.message)),console.log(""),t.message.startsWith("Invalid repository")&&(console.log(`Expected format: ${yt.cyan("owner/repo")} or ${yt.cyan("owner/repo/path")}`),console.log("")),Q_.forEach(e=>console.log(e)),process.exit(1))}async function addAction2(e,t){const n=process.stdout.isTTY&&process.stdin.isTTY,r=t.global?"~/.commandcode/skills":".commandcode/skills";let o;validateRepoFormat(e);const s=kt({text:`Fetching ${yt.cyan(e)}...`,color:"cyan"});try{let a=[];s.start();const i=await discoverCommandSkills(e,{keepTempDir:!0}),{skills:l,tempDir:c}=i;o=c,s.stop();const d=planSkillInstallSelection({skills:l,requestedSkillName:t.skill,interactive:n,repoInput:e});if("empty"===d.kind&&(console.error(Z_(`No skills found in ${yt.cyan(e)}`)),console.log(yt.dim("The repository must contain at least one SKILL.md file.")),await cleanupAndExit(o,1)),"missing-requested-skill"===d.kind)return console.error(Z_(`Skill "${d.requestedSkillName}" not found in ${yt.cyan(d.repoInput)}`)),console.log(""),console.log(yt.dim("Available skills:")),d.availableSkillNames.forEach(e=>console.log(` ${yt.cyan(e)}`)),void await cleanupAndExit(o,1);if("prompt"===d.kind){const t=await je({message:`Select skills to install from ${e}`,options:[...d.options],required:!0});"symbol"==typeof t&&(console.log(yt.dim("Cancelled")),await cleanupAndExit(o,0)),a=resolvePromptedSkillSelection({skills:l,selectedNames:t})}let u;"selected"===d.kind&&(a=d.skills);const m=await installSelectedCommandSkills({repoInput:e,skills:a,global:t.global,force:t.force,cachedTempDir:o,onSkillStart:__name(e=>{u=kt({text:`Installing ${yt.cyan(e.name)}...`,color:"cyan"}),u.start()},"onSkillStart"),onSkillInstalled:__name(e=>{u?.stop(),console.log(X_(e.name,r))},"onSkillInstalled"),onSkillFailed:__name(({skillName:e,message:t})=>{u?.stop(),console.error(Z_(`Failed to install "${e}"`)),console.log(yt.dim(` ${t}`))},"onSkillFailed")});await cleanupAndExit(o,m.exitCode)}catch(e){s.stop();const t=e instanceof Error?e.message:String(e);console.error(Z_(t)),await cleanupAndExit(o,1)}}__name(cleanupAndExit,"cleanupAndExit"),__name(validateRepoFormat,"validateRepoFormat"),__name(addAction2,"addAction");var eF=new Le("add").description("Install a skill from a GitHub repository").argument("<repo>","GitHub repository (owner/repo or owner/repo/path)").option("-g, --global","Install to global skills (~/.commandcode/skills/)").option("-f, --force","Overwrite if skill already exists").option("-s, --skill <name>","Specific skill name to install from repo").addHelpText("after",`\n${Q_.join("\n")}`).configureOutput({outputError:__name((e,t)=>{e.includes("missing required argument")?(console.error(Z_("No repository specified.")),console.log(""),Q_.forEach(e=>console.log(e))):t(e)},"outputError")}).action(addAction2);Ex(),Px();var tF=__name((e,t)=>{const n=t.length>60?t.substring(0,57)+"...":t;return` ${yt.cyan(e)} ${yt.dim(`· ${n}`)}`},"formatSkillLine"),nF=__name((e,t)=>`${yt.bold(yt.white(e))} ${yt.dim(`(${t})`)}`,"formatSectionHeader"),rF=__name(e=>{if(0!==e.warningCount){console.log(""),console.log(`${yt.bold(yt.yellow("Skipped"))} ${yt.dim(`(${e.warningCount})`)}`);for(const t of e.warningGroups){console.log(""),console.log(` ${yt.bold(t.category)} ${yt.dim(`(${t.items.length})`)}`);for(const e of t.items)console.log(` ${yt.bold(skillIdentifier(e.path))}`),console.log(` ${yt.dim(e.reason)}`)}}},"printWarnings"),oF=__name(e=>{const t=["",yt.dim("No skills installed."),"",yt.dim("Looking in:")];for(const n of e.lookupPaths)t.push(yt.dim(` ${n.path} ${yt.white(`(${n.label})`)}`));return t.push("",`Install a skill: ${yt.cyan(e.installCommand)} ${yt.dim(e.installPlaceholder)}`,""),t},"formatEmptyHint"),sF=__name(e=>{e.forEach(e=>console.log(e))},"printLines"),aF=__name(e=>{e&&(console.log(""),console.log(yt.dim(e.replace("--debug",yt.cyan("--debug")))))},"printDebugHint");async function listAction2(){const e="true"===process.env.DEBUG;try{const{global:t,project:n,bundled:r,warnings:o}=await listCommandSkills(),s=planSkillListView({global:t,project:n,bundled:r,warnings:o,showWarnings:e});if(s.empty){const t=await buildSkillListEmptyHint({runtime:getCommandSkillRuntime(),binCommand:`${getBinaryCommand()}`});sF(oF(t));for(const e of s.sections)console.log(nF(e.title,e.skills.length)),e.skills.forEach(e=>{console.log(tF(e.name,e.description))}),console.log("");e&&(rF({warningCount:s.warningCount,warningGroups:s.warningGroups}),s.warningCount>0&&console.log("")),e||(aF(s.debugHint),console.log("")),process.exit(0)}console.log(""),console.log(heading({text:"Skills",sub:yt.dim(`${s.userInstalledTotal} installed`)}));for(const e of s.sections)console.log(""),console.log(nF(e.title,e.skills.length)),e.skills.forEach(e=>{console.log(tF(e.name,e.description))});e&&rF({warningCount:s.warningCount,warningGroups:s.warningGroups}),e||aF(s.debugHint),console.log(""),process.exit(0)}catch(e){const t=e instanceof Error?e.message:"Unknown error";console.error(`${yt.red(it.cross)} Failed to list skills: ${t}`),process.exit(1)}}__name(listAction2,"listAction");var iF=new Le("list").description("List all installed skills. Run with -d/--debug to also see why any skills were skipped.").action(listAction2);Ex(),Px();var lF=__name((e,t)=>`${yt.green(it.tick)} Removed ${yt.cyan(e)} from ${t} skills`,"formatRemoved"),cF=__name(e=>`${yt.red(it.cross)} ${e}`,"formatError"),dF=__name((e,t)=>{let n=e;for(const e of t)n=n.replace(e,yt.cyan(e));return yt.dim(n)},"formatHint");function validateSkillNameEarly(e){const t=validateSkillRemoveName(e);return t.valid?null:t.message}async function removeAction2(e,t){try{const n=process.stdout.isTTY&&process.stdin.isTTY,r=t.global?"global":"project",o=validateSkillNameEarly(e);if(o&&(console.error(cF(o)),console.log(dF(getSkillListCommandHint({binCommand:`${getBinaryCommand()}`}),[`${getBinaryCommand()} skills list`])),process.exit(1)),!t.yes&&n){const t=await Be({message:`Remove ${yt.cyan(e)} from ${r} skills?`});"symbol"!=typeof t&&t||(console.log(yt.dim("Cancelled")),process.exit(0))}await removeCommandSkill({skillName:e,global:t.global}),console.log(lF(e,r)),process.exit(0)}catch(n){const r=n instanceof Error?n.message:"Failed to remove skill",o=planSkillRemoveError({skillName:e,global:t.global,errorMessage:r,binCommand:`${getBinaryCommand()}`});if(console.error(cF(o.message)),"not-found"===o.kind)for(const t of o.hints)console.log(dF(t,[`${getBinaryCommand()} skills remove ${e} --global`,`${getBinaryCommand()} skills list`]));process.exit(1)}}__name(validateSkillNameEarly,"validateSkillNameEarly"),__name(removeAction2,"removeAction");var uF=new Le("remove").description("Remove an installed skill").argument("<skill-name>","Name of the skill to remove").option("-g, --global","Remove from global skills (~/.commandcode/skills/)").option("-y, --yes","Skip confirmation prompt").action(removeAction2),mF=new Le("skills").description("Manage skills from GitHub repositories").addCommand(eF).addCommand(uF).addCommand(iF);Ex(),Px(),Ex(),Px(),Ex(),Ex(),Px();var pF=[it.bullet,it.squareSmallFilled,it.lozenge,it.star,it.triangleRight,it.triangleUp];Ex(),Px(),Ex();var gF=[/MallocStackLogging: can't turn off malloc stack logging because it was not enabled/i];function shouldIgnoreChunk(e){return gF.some(t=>t.test(e))}function chunkToString(e){return"string"==typeof e?e:Buffer.isBuffer(e)?e.toString("utf-8"):""}async function withFilteredStderrNoise(e){const t=process.stderr.write.bind(process.stderr);process.stderr.write=(e,...n)=>{const r=chunkToString(e);return!(!r||!shouldIgnoreChunk(r))||("function"==typeof n[0]?t(e,n[0]):t(e,n[0],n[1]))};try{return await e()}finally{process.stderr.write=t}}__name(shouldIgnoreChunk,"shouldIgnoreChunk"),__name(chunkToString,"chunkToString"),__name(withFilteredStderrNoise,"withFilteredStderrNoise"),Ex(),Px(),Ex(),Ex();var hF=__name(({summary:e,elapsedSeconds:n})=>{if(!e)return null;const r=t.relative(process.cwd(),e.storage),o=e.learningCount>0;return Xe.createElement(Ge,{flexDirection:"column",marginLeft:3},Xe.createElement(Ge,{marginBottom:1,flexDirection:"row"},Xe.createElement(Ve,{color:Rx.DIM},EI),Xe.createElement(Ge,{marginLeft:2},Xe.createElement(Ve,{color:Dx.TEXT},o?`Learned ${e.learningCount} ${1===e.learningCount?"preference":"preferences"}`:"Taste profile initialized",n?` in ${n} ${1===n?"second":"seconds"}`:""))),Xe.createElement(Ge,{flexDirection:"column",marginLeft:1},Xe.createElement(Ge,null,Xe.createElement(Ve,{color:Rx.DIM},it.pointerSmall," Taste stored in"," "),Xe.createElement(fI,{url:fileUrl(e.storage),text:r||".commandcode/taste/taste.md",color:Rx.CYAN})),Xe.createElement(Ge,null,Xe.createElement(Ve,{color:Rx.DIM},it.pointerSmall," Share your coding taste:"," ",Xe.createElement(Ve,{color:Rx.CYAN},"npx taste push --all")))),Xe.createElement(Ge,{marginTop:1,marginLeft:1},Xe.createElement(Ve,{color:Rx.DIM},o?"Command Code automatically uses & updates taste files as you code.":"Command Code will learn your preferences as you code.")))},"RepoLearnCompletionSummary");Ex();var fF=__name(({message:e})=>Xe.createElement(TO,null,e),"RepoLearnErrorPanel");Ex();var yF=__name(({done:e,error:t})=>t?Xe.createElement(Ge,{marginTop:1},Xe.createElement(SA,null,"Press ",Xe.createElement(wA,null,"Esc")," to exit")):e?Xe.createElement(Ge,{marginTop:1},Xe.createElement(SA,null,"Press ",Xe.createElement(wA,null,"Enter")," to continue")):Xe.createElement(Ge,{marginTop:1},Xe.createElement(SA,null,"Esc to cancel")),"RepoLearnFooter");Ex(),Px();var SF=__name(({insights:e,insightCount:t})=>0===e.length?null:Xe.createElement(Ge,{flexDirection:"column",marginTop:1,marginLeft:4},Xe.createElement(Ve,{color:Rx.CYAN},t>0?`Recent signals · ${t} ${1===t?"preference":"preferences"} learned`:"Recent signals"),e.map((e,t)=>Xe.createElement(Ve,{key:`${t}-${e}`,color:Rx.DIM},pF[t%pF.length]," ",truncateRepoLearnPanelText(e,14)))),"RepoLearnRollingInsights");Ex(),Px();var wF=__name(({status:e})=>"active"===e?Xe.createElement(Ge,null,Xe.createElement(Ve,{color:Rx.YELLOW},Xe.createElement(gt,{type:"dots"})),Xe.createElement(Ve,null," ")):"complete"===e?Xe.createElement(Ve,{color:_x.BG},it.square," "):Xe.createElement(Ve,{color:Rx.DIM},it.circle," "),"StepStatusIndicator");function getStepLabelColor(e,t){return"complete"===e?Rx.WHITE:t?Rx.YELLOW:Rx.DIM}__name(getStepLabelColor,"getStepLabelColor");var kF=__name(({steps:e,currentMessage:t})=>Xe.createElement(Ge,{flexDirection:"column",marginTop:1},e.map(e=>{const n="active"===e.status;return Xe.createElement(Ge,{key:e.id,flexDirection:"column",marginBottom:0,marginLeft:3},Xe.createElement(Ge,null,Xe.createElement(Ge,{marginRight:1},Xe.createElement(wF,{status:e.status})),Xe.createElement(Ve,{bold:n,color:getStepLabelColor(e.status,n)},e.label)),n&&t?Xe.createElement(Ge,{marginLeft:3},Xe.createElement(Ve,{color:Rx.DIM},truncateRepoLearnPanelText(t))):null)})),"RepoLearnStepList");Ex();var vF=__name(({isComplete:e,hasError:t})=>t?Xe.createElement(Ve,{color:Rx.DIM},"learning interrupted"):e?Xe.createElement(Ve,{color:Dx.TEXT},"learned your coding taste"):Xe.createElement(wI,null),"TastePillStatus"),CF=__name(({isComplete:e,hasError:t})=>Xe.createElement(Ge,{flexDirection:"column",marginTop:1,marginBottom:0},Xe.createElement(xI,null),Xe.createElement(Ge,{marginTop:0},Xe.createElement(Ve,{color:Rx.DIM},EI),Xe.createElement(Ge,{marginLeft:2},Xe.createElement(vF,{isComplete:e,hasError:t})))),"RepoLearnTastePill");Ex();var bF=__name(({text:e,repoName:t})=>{const n=useTerminalWidth(),r=rt(()=>aA(n),[n]);return Xe.createElement(Ge,{flexDirection:"column"},Xe.createElement(Ge,{flexDirection:"column",marginBottom:1},Xe.createElement(tI,null,r.trimEnd())),e?Xe.createElement(Ve,{color:Rx.WHITE},e):Xe.createElement(Xe.Fragment,null,Xe.createElement(Ve,{color:Rx.WHITE},"Learning your coding taste from"," ",Xe.createElement(Ve,{bold:!0,color:Rx.CYAN},t??"repository")),Xe.createElement(Ve,{color:Rx.DIM},"This may take a few minutes depending on repository size")))},"RepoLearnHeader");function useRepoLearnState(e){const t=e??XP,[n,r]=et(()=>createRepoLearnProjection({stepOrder:t})),o=tt(null),[s,a]=et(null),i=ot(()=>{o.current=Date.now()},[]),l=ot(e=>{r(t=>({...t,showLogin:e}))},[]);return nt(()=>{const e=__name(()=>{r(createRepoLearnProjection({stepOrder:t})),o.current=null,a(null)},"handleReset"),n=__name(e=>{r(t=>reduceRepoLearnEvent({state:t,event:e}))},"handleEvent"),s=__name(()=>{r(e=>completeRepoLearnProjection({state:e})),o.current&&a(Math.round((Date.now()-o.current)/1e3))},"handleComplete");return Yu.on("reset",e),Yu.on("new-event",n),Yu.on("learning-complete",s),()=>{Yu.off("reset",e),Yu.off("new-event",n),Yu.off("learning-complete",s)}},[t]),{steps:n.steps,currentMessage:n.currentMessage,insights:n.insights,insightCount:n.insightCount,summary:n.summary,done:n.done,error:n.error,showLogin:n.showLogin,setShowLogin:l,elapsedSeconds:s,markStarted:i}}function StatusPanel({error:e,done:t,summary:n,elapsedSeconds:r,insights:o,insightCount:s}){return e?Xe.createElement(fF,{message:e}):t?Xe.createElement(hF,{summary:n,elapsedSeconds:r}):Xe.createElement(SF,{insights:o,insightCount:s})}function RepoLearnProgressApp({runTask:e,onExit:t,stepOrder:n,headerText:r,repoName:o}){const s=useRepoLearnState(n),a=tt(!1);return nt(()=>{a.current||(a.current=!0,s.markStarted(),e().catch(()=>{}))},[e,s.markStarted]),Ye((e,n)=>{if(s.showLogin)return;const r=n.escape||""===e,o=n.return||"\n"===e||"\r"===e;r?t({published:!1,cancelled:!0}):(s.done||s.error)&&o&&t({published:!1,cancelled:!!s.error})}),s.showLogin?Xe.createElement(Ge,{flexDirection:"column"},Xe.createElement(bF,{text:r,repoName:o}),Xe.createElement(SN,{onComplete:(e,t)=>{s.setShowLogin(!1),e?Yu.resolveAuth():Yu.rejectAuth(t)},onCancel:()=>{s.setShowLogin(!1),Yu.rejectAuth("Login cancelled"),t({published:!1,cancelled:!0})}})):Xe.createElement(Ge,{flexDirection:"column"},Xe.createElement(bF,{text:r,repoName:o}),Xe.createElement(CF,{isComplete:s.done&&!s.error,hasError:Boolean(s.error)}),Xe.createElement(kF,{steps:s.steps,currentMessage:s.currentMessage}),Xe.createElement(StatusPanel,{error:s.error,done:s.done,summary:s.summary,elapsedSeconds:s.elapsedSeconds,insights:s.insights,insightCount:s.insightCount}),Xe.createElement(yF,{done:s.done,error:s.error}))}async function runRepoLearnProgress(e){return await applyStartupTheme(),withFilteredStderrNoise(()=>renderProgressUI(e))}function renderProgressUI(e){return new Promise((t,n)=>{Yu.reset();const r=new AbortController;let o,s,a=!1,i=!1;const l=__name(async()=>{try{o=await e.runTask(r.signal)}catch(e){r.signal.aborted||(s=e,Yu.addEvent({type:"error",message:toRepoLearnErrorMessage(e)}),Yu.markLearningComplete())}},"handleRunTask"),c=__name(({published:e,cancelled:l})=>{i||(i=!0,a=e,r.abort(),d.unmount(),Yu.reset(),s?n(s):t({result:o,published:a,cancelled:l}))},"handleExit"),d=Ke(Xe.createElement(RepoLearnProgressApp,{stepOrder:e.stepOrder,headerText:e.headerText,repoName:e.repoName,runTask:l,onExit:c}));d.waitUntilExit().catch(e=>{Yu.reset(),n(e)})})}function getAuthKey7(){return getCommandAuthKey({runtime:getCommandConfigRuntime(),path:getAuthFile(),env:process.env})}function logLearnSummary(e){const{summary:t}=e;console.log(lt.cyan("\n ─── Results ───\n")),console.log(` Source: ${t.sourceName}`),console.log(` Signals: ${t.signalCount} extracted`),console.log(` Context: ${t.contextLength} chars compiled`),console.log(` Taste dir: ${t.tasteDir}`),console.log("")}Ex(),Px(),__name(useRepoLearnState,"useRepoLearnState"),__name(StatusPanel,"StatusPanel"),__name(RepoLearnProgressApp,"RepoLearnProgressApp"),__name(runRepoLearnProgress,"runRepoLearnProgress"),__name(renderProgressUI,"renderProgressUI"),__name(getAuthKey7,"getAuthKey"),__name(logLearnSummary,"logLearnSummary");var EF=__name(e=>t=>{const n=parseInt(t,10);if(isNaN(n)||n<1)throw new Error(`${e} must be a positive integer`);return n},"parsePositiveInt");function createLearnCommand(){return new Le("learn").description("Learn coding taste from repository change history").argument("[source]","Local path, GitHub URL, or owner/repo (defaults to current directory)").option("--max-commits <number>","Maximum commits to analyze",EF("--max-commits"),200).addOption(new Ne("--max-signals <number>","Maximum diff signals to extract").default(50).argParser(EF("--max-signals")).hideHelp()).option("--branch <name>","Branch to analyze (defaults to main/master)").action(async(e,t)=>{try{await learnTaste({source:e??".",maxCommits:t.maxCommits??200,maxSignals:t.maxSignals??50,branch:t.branch})}catch(e){const t=e instanceof Error?e.message:String(e);console.error(`Error: ${t}`),process.exit(1)}})}async function learnTaste(e){const t=createNodeRuntime(),n=await isLocalTasteSource({runtime:t,source:e.source}),r=isTTY(),o=await resolveDisplayName({runtime:t,source:e.source}),s=!await getAuthKey7();if(s&&!r)return console.log(""),console.log(" Login required to learn taste."),console.log(""),console.log(` Run: ${getBinaryCommand()} login`),console.log(` Then: npx taste learn ${e.source}`),void console.log("");let a;const i=__name(()=>{a?.().finally(()=>process.exit(130))},"sigintHandler");process.once("SIGINT",i);let l=!1;try{const i=__name(async r=>{const{summary:o,resolved:i}=await runLearnPipeline({runtime:t,reporter:Yu,runLearn:__name(e=>runTasteLearningAgent({...e,createSession:createHarnessSession}),"runLearn"),source:e.source,maxCommits:e.maxCommits,maxSignals:e.maxSignals,branch:e.branch,isLocalSource:n,needsAuth:s,signal:r});return a=i?.cleanup,o},"runTask");if(r){const e=n?void 0:[...ZP];({cancelled:l}=await runRepoLearnProgress({runTask:i,repoName:o,stepOrder:e}))}else logLearnSummary({summary:await i((new AbortController).signal)})}finally{process.off("SIGINT",i),a&&await a()}r&&!l||process.exit(0),FI(),await F_({skipOnboarding:!0}),await shutdownAndExit(0)}__name(createLearnCommand,"createLearnCommand"),__name(learnTaste,"learnTaste"),Ex(),Px(),Ex(),Px();var TF=lt.bgGreen.black.bold(" TASTE ");function shortenPath(e){const t=process.env.HOME??process.env.USERPROFILE??"";return t&&e.startsWith(t)?`~${e.slice(t.length)}`:e}function exitWithError(e){console.error(`${lt.red("Error:")} ${e.replace(/^Error:\s*/i,"")}`),process.exit(1)}function formatUsageLine(e){const t=e.match(/^(\s*(?:Usage:|or:)?\s*)(cmd)(\s+.+?)(\s+\(.*\))?$/);return t?`${lt.dim(t[1])}${lt.green(t[2])}${lt.white(t[3]??"")}${t[4]?lt.dim(t[4]):""}`:lt.dim(e)}function exitWithUsage({message:e,usage:t}){console.error(`${lt.red("Error:")} ${e.replace(/^Error:\s*/i,"")}`);for(const e of t)console.error(formatUsageLine(e));process.exit(1)}function exitWithTasteCliValidation(e){e.valid||(e.usage&&exitWithUsage({message:e.message,usage:e.usage}),exitWithError(e.message))}__name(shortenPath,"shortenPath"),__name(exitWithError,"exitWithError"),__name(formatUsageLine,"formatUsageLine"),__name(exitWithUsage,"exitWithUsage"),__name(exitWithTasteCliValidation,"exitWithTasteCliValidation");var PF=__name((e,t)=>t,"linkFallback");function getPackageLink({owner:e,packageName:t}){const n=buildPackageUrl({owner:e,packageName:t});return bt(`commandcode.ai/${e}/${t}`,n,{fallback:PF})}function getProfileLink(e){const t=buildProfileUrl2(e);return bt(`commandcode.ai/${e}`,t,{fallback:PF})}function wrapLine(e,t=0){const n=(process.stdout.columns||80)-t;return Tt(e,n,{trim:!1})}function logMergeReviewTip(){console.log(lt.yellow("\nTip: Review merged learnings to ensure no conflicting rules."))}function handleResultErrors(e){for(const t of e){const e=normalizeTasteResultError(t);console.error(`${lt.red("Error:")} ${e}`)}process.exit(1)}async function flushAndExit(e){await Promise.race([shutdownTelemetry(),new Promise(e=>setTimeout(e,500))]).catch(()=>{}),process.exit(e)}function withErrorHandler(e){return async(...t)=>{try{await e(...t),await flushAndExit(0)}catch(e){const t=e instanceof Error?e.message:String(e);console.error(lt.red(`Error: ${t}`)),await flushAndExit(1)}}}function formatSingleIssue(e,t){const n=[`${e.line?lt.dim(` Line ${e.line}: `):" "}${t(e.message)}`];return e.suggestion&&n.push(lt.dim(` → ${e.suggestion}`)),n}function formatIssueGroup(e,t,n){return 0===e.length?[]:[n,...e.flatMap(e=>formatSingleIssue(e,t)),""]}function formatValidationIssues(e){const{result:t,verbose:n=!0}=e;if(0===t.issues.length){const e=t.summary.charAt(0),n=t.summary.substring(2);return`${lt.green(e)} ${lt.dim(n)}`}if(!n)return t.summary;const r=t.issues.filter(e=>"error"===e.severity),o=t.issues.filter(e=>"warning"===e.severity);return[r.length>0?lt.red(t.summary):lt.yellow(t.summary),"",...formatIssueGroup(r,lt.red,lt.bold(lt.red("Errors:"))),...formatIssueGroup(o,lt.yellow,lt.bold(lt.yellow("Warnings:")))].join("\n").trim()}__name(getPackageLink,"getPackageLink"),__name(getProfileLink,"getProfileLink"),__name(wrapLine,"wrapLine"),__name(logMergeReviewTip,"logMergeReviewTip"),__name(handleResultErrors,"handleResultErrors"),__name(flushAndExit,"flushAndExit"),__name(withErrorHandler,"withErrorHandler"),Ex(),__name(formatSingleIssue,"formatSingleIssue"),__name(formatIssueGroup,"formatIssueGroup"),__name(formatValidationIssues,"formatValidationIssues");var MF=createTasteLintService({runtime:createNodeRuntime(),formatValidationIssues:formatValidationIssues});function createLintCommand(){return new Le("lint").argument("[package]","Taste package name").option("-g, --global","Validate taste packages from global storage (~/.commandcode)").option("--all","Validate all taste packages").description(`Validate taste package format ${lt.dim("(structure, style, etc.)")}`).action(withErrorHandler(async(e,t)=>runLint({packageName:e,options:t})))}function validateLintOptions({packageName:e,options:t}){exitWithTasteCliValidation(validateTasteLintCliOptions({packageName:e,options:t}))}function logLintResults(e){for(const t of e.filesLinted)console.log(t.formatted);e.filesLinted.length>1&&logLintSummary(e),e.success||process.exit(1)}function logLintSummary({filesLinted:e,totalErrors:t,totalWarnings:n}){if(console.log(""),0===t&&0===n)return void console.log(`${lt.green(it.tick)} All ${lt.green(e.length)} taste files are valid`);const r=[];t>0&&r.push(lt.red(`${t} error${t>1?"s":""}`)),n>0&&r.push(lt.yellow(`${n} warning${n>1?"s":""}`)),console.log(`Summary: ${r.join(", ")} across ${e.length} files`)}async function runLint({packageName:e,options:t}){console.log(""),validateLintOptions({packageName:e,options:t});const n=await MF.lint({packages:e?[e]:[],target:t.global?"local-global":"local-project"});if(n.errors.length>0){for(const e of n.errors)console.error(lt.red(`Error: ${e.error}`));process.exit(1)}logLintResults(n)}__name(createLintCommand,"createLintCommand"),__name(validateLintOptions,"validateLintOptions"),__name(logLintResults,"logLintResults"),__name(logLintSummary,"logLintSummary"),__name(runLint,"runLint"),Ex(),Px();var xF={};__export(xF,{downloadPackage:()=>downloadPackage,downloadRemotePackage:()=>downloadRemotePackage,getAllPackages:()=>getAllPackages,getPackage:()=>getPackage,listPackages:()=>listPackages,writePackage:()=>writePackage,writePackages:()=>writePackages}),Ex(),Px();var IF=createNodeRuntime();function getAuthKey8(){return getCommandAuthKey({runtime:getCommandConfigRuntime(),path:getAuthFile(),env:process.env})}async function requireAuthKey(){const e=await getAuthKey8();if(!e)throw new Error("No API key found. Please authenticate with: cmd login");return e}function storage(){return createTasteRemoteStorage({transport:createNodeTransport({baseUrl:getApiBaseUrl()}),requireAuthKey:requireAuthKey,getAuthKey:getAuthKey8,getAuthenticatedEntity:__name(()=>getAuthenticatedEntity({client:createApiClient({baseUrl:getApiBaseUrl()})}),"getAuthenticatedEntity"),trackError:__name(({error:e,label:t,heading:n,context:r})=>trackError({error:sanitizeErrorForTelemetry({error:e,label:t}),context:{component:co.TASTE_REMOTE_STORAGE,heading:n,...r??{}}}),"trackError"),onWarn:__name(e=>console.warn(e),"onWarn"),logDebug:__name(e=>dlog(e),"logDebug")})}function getAllPackages(){return storage().getAllPackages()}function getPackage(e){return storage().getPackage(e)}function downloadPackage(e){return storage().downloadPackage(e)}function downloadRemotePackage(e){return storage().downloadRemotePackage(e)}function writePackage(e){return storage().writePackage(e)}async function writePackages(e){const{packages:t,projectName:n,owner:r,isPublic:o,overwrite:s}=e,{rootContent:a,categoryContents:i}=await readProjectUploadFiles({runtime:IF,packages:t});return storage().writePackages({projectName:n,owner:r,isPublic:o,overwrite:s,rootContent:a,categoryContents:i,packageCount:t.length})}function listPackages(){return storage().listPackages()}__name(getAuthKey8,"getAuthKey"),__name(requireAuthKey,"requireAuthKey"),__name(storage,"storage"),__name(getAllPackages,"getAllPackages"),__name(getPackage,"getPackage"),__name(downloadPackage,"downloadPackage"),__name(downloadRemotePackage,"downloadRemotePackage"),__name(writePackage,"writePackage"),__name(writePackages,"writePackages"),__name(listPackages,"listPackages");var AF=createNodeRuntime(),RF=createTasteLocalStorage({runtime:AF,target:"local-project"}),OF=createTasteLocalStorage({runtime:AF,target:"local-global"});function list(e){return createTasteListService({runtime:AF,localProject:RF,localGlobal:OF,remote:xF}).list(e)}function getUserName(){return getCommandAuthUserName({runtime:getCommandConfigRuntime(),path:getAuthFile()})}function createListCommand(){return new Le("list").alias("ls").option("-g, --global","List global packages").addOption(new Ne("-l, --local","Use local server").hideHelp()).option("--remote","List remote packages").addOption(new Ne("--staging","Use staging environment").hideHelp()).description(`List available packages ${lt.dim("(project, global, or remote)")}`).action(withErrorHandler(async e=>runList({options:e})))}function formatPackageLine(e){return` ${lt.white(e.name)}${e.publicBadge?lt.green(e.publicBadge):""}${e.starsBadge?lt.yellow(e.starsBadge):""}${e.downloadsBadge?lt.gray(e.downloadsBadge):""}${e.padding}${lt.dim.gray(e.statsLabel)}`}function validateListOptions(e){exitWithTasteCliValidation(validateTasteListCliOptions(e))}async function fetchPackages({options:e}){const t=resolveTasteListStorage(e),n=e.remote?kt(`Fetching ${t.name} packages`).start():null,r=await list({location:t.location});return n?.stop(),{packages:r,storage:t}}async function getStorageLabel({options:e,fallback:t}){if(!e.remote)return t;const n=await getUserName();return n?getProfileLink(n):t}function printPackageTable({packages:e,subtitle:t}){console.log(`\n${TF} Packages`),console.log(`${lt.gray("⎿")} ${lt.dim(t)}\n`);const n=projectTasteListView({packages:e,symbols:{star:it.star,arrowDown:it.arrowDown}});for(const e of n.rows)console.log(formatPackageLine(e));console.log(lt.dim(`\n${n.totalLabel}\n`))}async function runList({options:e}){console.log(""),validateListOptions(e);const{packages:t,storage:n}=await fetchPackages({options:e});0!==t.length?printPackageTable({packages:t,subtitle:await getStorageLabel({options:e,fallback:n.subtitle})}):console.log(lt.yellow(`No taste packages found in ${n.name}`))}__name(list,"list"),__name(getUserName,"getUserName"),__name(createListCommand,"createListCommand"),__name(formatPackageLine,"formatPackageLine"),__name(validateListOptions,"validateListOptions"),__name(fetchPackages,"fetchPackages"),__name(getStorageLabel,"getStorageLabel"),__name(printPackageTable,"printPackageTable"),__name(runList,"runList"),Ex(),Px(),Ex(),Px();var DF=createNodeRuntime(),LF=createTasteLocalStorage({runtime:DF,target:"local-project"}),NF=createTasteLocalStorage({runtime:DF,target:"local-global"});async function open7(e){try{const t=await createTasteOpenService({runtime:DF,localProject:LF,localGlobal:NF,remote:xF}).resolveOpen(e);return t.success?(await Ct([{file:t.filePath,line:t.lineNumber}]),t):t}catch(e){return classifyTasteOpenError({error:e,platform:be.platform})}}function createOpenCommand(){return new Le("open").argument("[package]","Taste package name, or owner/package to open in browser").option("-g, --global","Open taste package from global storage (~/.commandcode)").description(`Open a taste package in your editor ${lt.dim("(use owner/package to open in browser)")}`).action(withErrorHandler(async(e,t)=>runOpen({packageName:e,options:t})))}function validateOpenOptions(e){exitWithTasteCliValidation(validateTasteOpenCliOptions(e))}async function runOpen({packageName:e,options:t}){console.log(""),validateOpenOptions(e);const n=parseOwnerPackage(e);n?await openInBrowser(n):await openInEditor2({packageName:e,options:t})}async function openInBrowser(e){const t=`https://commandcode.ai/${e.owner}/${e.packageName}`;await wt(t);const n=getPackageLink({owner:e.owner,packageName:e.packageName});console.log(`${lt.green(it.tick)} Opened ${n} in browser`)}async function openInEditor2({packageName:e,options:t}){const n=resolveTasteOpenTarget(t),r=await open7({package:e,target:n});r.success||exitWithError(r.error??"Unknown error"),console.log(`${lt.green(it.tick)} Opened ${lt.green(`'${e}'`)} taste package from ${t.global?"global":"project"}`)}__name(open7,"open"),__name(createOpenCommand,"createOpenCommand"),__name(validateOpenOptions,"validateOpenOptions"),__name(runOpen,"runOpen"),__name(openInBrowser,"openInBrowser"),__name(openInEditor2,"openInEditor"),Ex(),Px(),Ex(),Px(),Ex();var $F=null,_F=!1;function setActiveSpinner(e){$F=e}function stopActiveSpinner(e){$F&&($F.stop(e),$F=null)}function setPrompted(e){_F=e}function wasPrompted(){return _F}function logResult(e){if(wasPrompted())return _e.outro(e),void setPrompted(!1);console.log(e)}function buildPullMessage(e){const{summary:t,sourceName:n}=e,r=wasPrompted()?"":`${it.tick} `,o=t.detailPath?lt.dim(`\n ${shortenPath(t.detailPath)}`):"";return"single-replaced"===t.variant?`${lt.green(r)}Replaced ${lt.green(`'${t.packageName}'`)} taste package in project`+o:"single-merged"===t.variant?`${lt.green(r)}Pulled ${lt.green(`'${t.packageName}'`)} taste package from ${n} ${lt.gray(`(${t.mergeParts.join(", ")})`)}`+o:`${lt.green(r)}Pulled ${lt.green(`'${t.packageName}'`)} taste package from ${n}`+o}function logPullSummary(e){const{breakdown:t,sourceName:n}=e,r=[];if(t.succeeded.length>0&&r.push(wrapLine(`${lt.green("Pulled")} (${t.succeeded.length}) ${t.succeeded.join(", ")}`,wasPrompted()?4:0)),t.overwritten.length>0&&r.push(wrapLine(`${lt.yellow("Overwritten")} (${t.overwritten.length}) ${t.overwritten.join(", ")}`,wasPrompted()?4:0)),t.skipped.length>0&&r.push(wrapLine(`${lt.dim("Skipped")} (${t.skipped.length}) ${lt.dim(t.skipped.join(", "))}`,wasPrompted()?4:0)),wasPrompted())return r.length>0&&_e.log.message(r.join("\n")),_e.outro(`${t.totalLabel} from ${n}`),void setPrompted(!1);console.log(`${lt.green(it.tick)} ${t.totalLabel} from ${n}`),r.length>0&&console.log(r.join("\n"))}function logPullSuccess(e){const{result:t,sourceName:n,options:r}=e,o=projectTastePullSummary({result:t,options:r});if("multi"===o.variant)return logPullSummary({breakdown:o.breakdown,sourceName:n}),void(o.showTip&&logMergeReviewTip());"single-skipped"!==o.variant?"none"!==o.variant&&(logResult(buildPullMessage({summary:o,sourceName:n})),o.showTip&&logMergeReviewTip()):logResult(lt.yellow(o.message))}function beginPrompt(e,t){stopActiveSpinner(),_e.intro(lt.dim(e)),t&&_e.log.message(lt.dim(t)),setPrompted(!0)}function handleCancel(e){_e.isCancel(e)&&(_e.cancel("Operation cancelled"),process.exit(0))}function startStrategySpinner(e){if("skip"===e){const e=_e.spinner();return e.start("Skipping"),void e.stop("Skipped")}const t="merge"===e?"Merging":"Overwriting",n="merge"===e?"Merged":"Overwritten",r=_e.spinner();r.start(t),setActiveSpinner({stop:__name(e=>r.stop(e??n),"stop"),cancel:__name(e=>r.cancel(e),"cancel"),error:__name(e=>r.error(e),"error")})}async function runConflictPrompt(e){if(!process.stdout.isTTY||!process.stdin.isTTY)return stopActiveSpinner(e.existsMessage),setPrompted(!0),_e.log.warn(e.nonInteractive.warning),e.nonInteractive.strategy;if(beginPrompt(`${e.title.prefix}${lt.green(e.title.emphasis)}${e.title.suffix}`,e.existsMessage),_e.log.message(`${e.context.firstLine}\n${e.context.secondLine}${e.context.secondLineNote?` ${lt.dim(e.context.secondLineNote)}`:""}`),e.reviewLink){const t=bt(e.reviewLink.text,e.reviewLink.url,{fallback:__name((e,t)=>t,"fallback")});_e.log.info(`${e.reviewLink.prefix}${lt.cyan(t)} ${lt.dim(e.reviewLink.note)}`)}const t=await _e.select({message:e.selectMessage,options:e.options.map(e=>({value:e.value,label:e.label,hint:e.hint})),initialValue:e.initialValue});handleCancel(t);const n=t;return startStrategySpinner(n),n}async function promptMergeStrategy(e){const{packageName:t,owner:n,localPkg:r,remoteLearningsCount:o}=e;return runConflictPrompt(buildTastePullConflictPrompt({packageName:t,owner:n,localLearningsCount:r.learnings.length,remoteLearningsCount:o}))}async function promptGlobalPushStrategy(e){const{packageName:t,localLearningsCount:n,globalPkg:r}=e;return runConflictPrompt(buildTasteGlobalPushConflictPrompt({packageName:t,localLearningsCount:n,globalLearningsCount:r.learnings.length}))}async function promptGlobalPullStrategy(e){const{packageName:t,localPkg:n,globalLearningsCount:r}=e;return runConflictPrompt(buildTasteGlobalPullConflictPrompt({packageName:t,localLearningsCount:n.learnings.length,globalLearningsCount:r}))}async function promptTypeMismatchStrategy(e){const{packageName:t,owner:n,localLearningsCount:r,remoteLearningsCount:o}=e;return runConflictPrompt(buildTasteTypeMismatchConflictPrompt({packageName:t,owner:n,localLearningsCount:r,remoteLearningsCount:o}))}async function promptSameTypeStrategy(e){const{packageName:t,owner:n,localLearningsCount:r,remoteLearningsCount:o}=e;return runConflictPrompt(buildTasteSameTypeConflictPrompt({packageName:t,owner:n,localLearningsCount:r,remoteLearningsCount:o}))}__name(setActiveSpinner,"setActiveSpinner"),__name(stopActiveSpinner,"stopActiveSpinner"),__name(setPrompted,"setPrompted"),__name(wasPrompted,"wasPrompted"),__name(logResult,"logResult"),__name(buildPullMessage,"buildPullMessage"),__name(logPullSummary,"logPullSummary"),__name(logPullSuccess,"logPullSuccess"),Ex(),Px(),Ex(),Px(),__name(beginPrompt,"beginPrompt"),__name(handleCancel,"handleCancel"),__name(startStrategySpinner,"startStrategySpinner"),__name(runConflictPrompt,"runConflictPrompt"),__name(promptMergeStrategy,"promptMergeStrategy"),__name(promptGlobalPushStrategy,"promptGlobalPushStrategy"),__name(promptGlobalPullStrategy,"promptGlobalPullStrategy"),__name(promptTypeMismatchStrategy,"promptTypeMismatchStrategy"),__name(promptSameTypeStrategy,"promptSameTypeStrategy");var FF=createNodeRuntime(),UF=createTasteLocalStorage({runtime:FF,target:"local-project"}),jF=createTasteLocalStorage({runtime:FF,target:"local-global"});function service(){return createTastePullService({localProject:UF,localGlobal:jF,remote:xF,getDestinationPath:__name(e=>resolveTastePackageDestinationPathForRuntime({runtime:FF,...e}),"getDestinationPath"),promptGlobalPullStrategy:promptGlobalPullStrategy,promptMergeStrategy:promptMergeStrategy,validation:{formatValidationIssues:formatValidationIssues,onWarning:__name(e=>console.warn(e),"onWarning")}})}function pull(e){return service().pull(e)}function pullRemote(e){return service().pullRemote(e)}function createPullCommand(){return new Le("pull").argument("[package]","Taste package name, or owner/package to pull from remote").option("-g, --global","Pull taste package from global storage (~/.commandcode)").addOption(new Ne("--local","Use local server").hideHelp()).option("--remote","Pull taste package from commandcode.ai remote").option("--all","Pull all taste packages from global").option("--overwrite","Replace local package without prompting").option("--skip","Keep local package, skip conflicting pull").option("--merge","Auto-merge conflicting learnings without prompting").addOption(new Ne("--staging","Use staging environment").hideHelp()).description(`Pull taste packages from remote or global into the project ${lt.dim("(prompts on conflicts)")}`).action(withErrorHandler(async(e,t)=>{setPrompted(!1);const n=resolveRemoteDefault(t),{result:r,owner:o}=await runPull({packageName:e,options:n});r.success||handleResultErrors(r.errors),logPullSuccess({result:r,sourceName:n.remote?o??"remote":"global",options:n})}))}async function runPull(e){const{packageName:t,options:n}=e;console.log("");const r=planTastePullCommand({packageName:t,options:n});if(!r.valid)throw exitWithTasteCliValidation(r.validation),new Error("unreachable");return"remote-single"===r.route.type?pullRemoteSingle({options:r.options,route:r.route}):pullGlobal({options:r.options,route:r.route})}async function pullRemoteSingle(e){setActiveSpinner(kt("Pulling taste package").start());const t=await pullRemote({owner:e.route.owner,packageName:e.route.packageName,overwrite:e.options.overwrite,strategy:e.route.strategy});return stopActiveSpinner(),{result:t,owner:e.route.owner}}async function pullGlobal(e){setActiveSpinner(kt("Pulling taste package").start());const t=await pull({packages:[...e.route.packages],source:"local-global",overwrite:e.options.overwrite,strategy:e.route.strategy});return stopActiveSpinner(),{result:t}}function logResult2(e){if(wasPrompted())return _e.outro(e),void setPrompted(!1);console.log(e)}function formatAllLocation(t){return"taste-dir"===t.kind?shortenPath(e.dirname(e.dirname(t.filePath))):t.filePath}function formatDetailPath(e){return e?lt.dim(`\n ${shortenPath(e)}`):""}function renderPushSummary(e){const t=wasPrompted()?"":`${it.tick} `;if("none"!==e.variant)if("all-skipped"!==e.variant)if("all-pushed-remote"!==e.variant){if("all-replaced"===e.variant){const n=e.replacedLabel?` ${lt.gray(`(${e.replacedLabel})`)}`:"";return void logResult2(`${lt.green(t)}Replaced ${e.packageCountLabel} in ${formatAllLocation(e.location)}${n}`)}if("all-pushed"!==e.variant){if("all-merged"===e.variant){const n=e.mergeParts.length>0?` ${lt.gray(`(${e.mergeParts.join(", ")})`)}`:"";return void logResult2(`${lt.green(t)}Pushed ${e.packageCountLabel} to ${formatAllLocation(e.location)}${n}`)}"single-replaced"!==e.variant?"single-merged"!==e.variant?"single-pushed"!==e.variant?"multi"!==e.variant||logResult2(wrapLine(`${lt.green(t)}Pushed ${lt.green(e.count)} taste packages ${lt.green(`(${e.packages.join(", ")})`)} to ${e.targetName}`)):logResult2(`${lt.green(t)}Pushed ${lt.green(`'${e.packageName}'`)} taste package to ${e.locationLabel}`+formatDetailPath(e.detailPath)):logResult2(`${lt.green(t)}Pushed ${lt.green(`'${e.packageName}'`)} taste package to ${e.locationLabel} ${lt.gray(`(${e.mergeParts.join(", ")})`)}`+formatDetailPath(e.detailPath)):logResult2(`${lt.green(t)}Replaced ${lt.green(`'${e.packageName}'`)} taste package in ${e.locationLabel}`+formatDetailPath(e.detailPath))}else logResult2(`${lt.green(t)}Pushed ${e.packageCountLabel} to ${formatAllLocation(e.location)}`)}else logResult2(`${lt.green(t)}Pushed ${e.packageCountLabel} to remote`);else logResult2(`${lt.green(t)}Skipped ${e.packageCountLabel}`)}function logPushUrls(e){for(const t of collectTastePushRemoteLinks(e))console.log(lt.gray(` ${getPackageLink(t)}`))}function logConflictSummary(e){const t=projectTastePushOutcome(e.result),n=[];t.succeeded.length>0&&n.push(wrapLine(`${lt.green("Merged")} (${t.succeeded.length}) ${t.succeeded.join(", ")}`,4)),t.overwritten.length>0&&n.push(wrapLine(`${lt.yellow("Overwritten")} (${t.overwritten.length}) ${t.overwritten.join(", ")}`,4)),t.skipped.length>0&&n.push(wrapLine(`${lt.dim("Skipped")} (${t.skipped.length}) ${lt.dim(t.skipped.join(", "))}`,4)),n.length>0&&_e.log.message(n.join("\n")),_e.outro(t.totalLabel)}function logPushBreakdown(e){const t=projectTastePushOutcome(e);if(0===t.skipped.length&&0===t.overwritten.length)return;const n=[];t.succeeded.length>0&&n.push(wrapLine(`${lt.green("Pushed")} (${t.succeeded.length}) ${t.succeeded.join(", ")}`)),t.overwritten.length>0&&n.push(wrapLine(`${lt.yellow("Overwritten")} (${t.overwritten.length}) ${t.overwritten.join(", ")}`)),t.skipped.length>0&&n.push(wrapLine(`${lt.dim("Skipped")} (${t.skipped.length}) ${lt.dim(t.skipped.join(", "))}`)),n.length>0&&console.log(n.join("\n"))}function logPushSuccess(e){const{result:t,options:n}=e;if(wasPrompted())return setPrompted(!1),logConflictSummary({result:t}),void logPushUrls({result:t,options:n});const r=projectTastePushSummary({result:t,options:n});renderPushSummary(r),n.all&&logPushBreakdown(t),logPushUrls({result:t,options:n}),r.showTip&&logMergeReviewTip()}__name(service,"service"),__name(pull,"pull"),__name(pullRemote,"pullRemote"),__name(createPullCommand,"createPullCommand"),__name(runPull,"runPull"),__name(pullRemoteSingle,"pullRemoteSingle"),__name(pullGlobal,"pullGlobal"),Ex(),Px(),Ex(),Px(),__name(logResult2,"logResult"),__name(formatAllLocation,"formatAllLocation"),__name(formatDetailPath,"formatDetailPath"),__name(renderPushSummary,"renderPushSummary"),__name(logPushUrls,"logPushUrls"),__name(logConflictSummary,"logConflictSummary"),__name(logPushBreakdown,"logPushBreakdown"),__name(logPushSuccess,"logPushSuccess"),Ex(),Px();var BF=createNodeRuntime(),WF=createTasteLocalStorage({runtime:BF,target:"local-project"}),HF=createTasteLocalStorage({runtime:BF,target:"local-global"});async function getUserOwner(){try{const e=await getAuthenticatedEntity({client:createApiClient({baseUrl:getApiBaseUrl()})});if(e.success&&e.user?.userName)return e.user.userName}catch{}}function service2(){return createTastePushService({localProject:WF,localGlobal:HF,remote:xF,getUserOwner:getUserOwner,getProjectName:__name(()=>e.basename(process.cwd()),"getProjectName"),getDestinationPath:__name(e=>resolveTastePackageDestinationPathForRuntime({runtime:BF,...e}),"getDestinationPath"),promptGlobalPushStrategy:promptGlobalPushStrategy,promptTypeMismatchStrategy:promptTypeMismatchStrategy,promptSameTypeStrategy:promptSameTypeStrategy,validation:{formatValidationIssues:formatValidationIssues,onWarning:__name(e=>console.warn(e),"onWarning")}})}function push(e){return service2().push(e)}function pushRemote(e){return service2().pushRemote(e)}async function promptOwnerSelection(e){const{userName:t,orgs:n}=e;if(0===n.length)return t;const{options:r,initialValue:o}=buildTasteOwnerSelectOptions({userName:t,orgs:n}),s=await _e.select({message:"Owner",options:[...r],initialValue:o});return _e.isCancel(s)&&(_e.cancel("Operation cancelled"),process.exit(0)),s}__name(getUserOwner,"getUserOwner"),__name(service2,"service"),__name(push,"push"),__name(pushRemote,"pushRemote"),Ex(),Px(),__name(promptOwnerSelection,"promptOwnerSelection");var GF=createNodeRuntime(),VF=createTasteLocalStorage({runtime:GF,target:"local-project"});function loadUserNamespaces(){return fetchUserNamespaces({client:createApiClient({baseUrl:getApiBaseUrl()})})}function createPushCommand(){return new Le("push").description(`Push taste packages to remote ${lt.dim("(commandcode.ai)")} or global ${lt.dim("(~/.commandcode)")}`).argument("[package]","Taste package name to push (omit with --all)").option("--all","Push all taste packages to remote").option("--remote","Push to commandcode.ai remote (default)").option("-g, --global","Push to local global storage (~/.commandcode)").addOption(new Ne("--local","Use local server").hideHelp()).option("--public","Make package publicly discoverable on commandcode.ai").option("--private","Make package private (not publicly discoverable)").option("--owner <owner>","Push under a specific owner or organization").option("--overwrite","Replace existing package without prompting").option("--skip","Keep existing package, skip conflicting push").option("--merge","Auto-merge conflicting learnings without prompting").addOption(new Ne("--staging","Push to staging environment").hideHelp()).action(withErrorHandler(async(e,t)=>{setPrompted(!1);const n=resolveRemoteDefault(t),r=await runPush({packageName:e,options:n});r.success||handleResultErrors(r.errors),logPushSuccess({result:r,options:n})}))}async function validateOwnerAccess(e){const t=await checkTastePushOwnerAccess({owner:e,loadNamespaces:loadUserNamespaces});"unavailable"!==t.type?"denied"===t.type&&exitWithError(`No push access to '${e}'. Available: ${t.availableOwners.join(", ")}`):dlog(`[Auth] validateOwnerAccess: namespace service unavailable, skipping — ${t.error instanceof Error?t.error.message:String(t.error)}`)}async function resolveOwnerForPush(e){let t;return resolveTastePushOwner({ownerPlan:e,validateOwnerAccess:validateOwnerAccess,hasLocalPackage:__name(async e=>(await VF.getAllPackages()).some(t=>t.category===e),"hasLocalPackage"),loadNamespaces:loadUserNamespaces,prompt:{onPromptStart:__name(({packageName:e})=>{_e.intro(lt.dim(`pushing ${e}`)),setPrompted(!0),t=_e.spinner(),t.start("Resolving")},"onPromptStart"),onPackageMissing:__name(({packageName:e})=>{t?.error("Failed"),_e.outro(lt.red(`Taste package '${e}' not found in project`)),process.exit(1)},"onPackageMissing"),onNamespacesLoaded:__name(({willPrompt:e})=>{t?.stop(e?"Select owner to push to":"")},"onNamespacesLoaded"),selectOwner:promptOwnerSelection}})}async function runPush(e){const{packageName:t,options:n}=e;console.log("");const r=planTastePushCommand({packageName:t,options:n});if(!r.valid)throw exitWithTasteCliValidation(r.validation),new Error("unreachable");return"remote-all"===r.route.type?pushRemoteAll({options:r.options,route:r.route}):"remote-single"===r.route.type?pushRemoteSingle({options:r.options,route:r.route}):pushGlobal({options:r.options,route:r.route})}async function pushRemoteAll(t){t.route.owner&&await validateOwnerAccess(t.route.owner);const n=formatTastePackageCount((await VF.getAllPackages()).length),r=e.basename(process.cwd()),o=resolveTasteStrategyLabel({strategy:t.route.strategy,isRemote:!0});console.log(lt.dim(` Pushing ${n} to ${r} (remote)${o}`)),console.log(""),setActiveSpinner(kt("Pushing taste packages").start());const s=await push({packages:[],target:"remote-project",overwrite:t.options.overwrite,isPublic:t.route.isPublic,strategy:t.route.strategy,owner:t.route.owner});return stopActiveSpinner(),s}async function pushRemoteSingle(e){const{owner:t,packageName:n}=await resolveOwnerForPush(e.route.ownerPlan);startPushSpinner({owner:t,pkgName:n});const r=await pushRemote({owner:t,packageName:n,overwrite:e.options.overwrite,isPublic:e.route.isPublic,strategy:e.route.strategy});return stopActiveSpinner(`Pushed to ${t}/${n}`),r}function startPushSpinner(e){const{owner:t,pkgName:n}=e;if(wasPrompted()){const e=_e.spinner();return e.start(`Pushing to ${t}/${n}`),void setActiveSpinner(e)}setActiveSpinner(kt("Pushing taste package").start())}async function pushGlobal(e){const t=await VF.getAllPackages(),n=formatTastePackageCount(e.route.packages.length>0?e.route.packages.length:t.length),r=shortenPath(getTastePathForRuntime({runtime:GF,target:"local-global"})),o=resolveTasteStrategyLabel({strategy:e.route.strategy});console.log(lt.dim(` Pushing ${n} to ${r}${o}`)),console.log(""),setActiveSpinner(kt("Pushing taste packages").start());const s=await push({packages:[...e.route.packages],target:"local-global",overwrite:e.options.overwrite,strategy:e.route.strategy});return stopActiveSpinner(),s}function scopeOf(e){return e.user?"global":"project"}function whereFor(e){return"project"===e?" for this project":" for all your projects"}async function applyTasteLearning(e){await setTasteLearning({tasteLearning:e.enabled,scope:e.scope,..."project"===e.scope?{projectPath:process.cwd()}:{}})}function reportEnabled(e){console.log(`${lt.green(it.tick)} Taste learning is on${whereFor(e)}. New preferences are saved and reused across sessions.`)}function reportDisabled(e){const t=getBinaryCommand();console.log(`${lt.green(it.tick)} Taste learning is off${whereFor(e)}. Turn it back on with ${lt.cyan(`${t} taste enable`)}.`)}function createEnableCommand(){return new Le("enable").option("-u, --user","Apply at the user level (all your projects)").description("Turn on taste learning (save preferences across sessions)").action(withErrorHandler(async e=>{const t=scopeOf(e);await applyTasteLearning({enabled:!0,scope:t}),console.log(""),reportEnabled(t)}))}function createDisableCommand(){return new Le("disable").option("-u, --user","Apply at the user level (all your projects)").description("Turn off taste learning (stop saving preferences)").action(withErrorHandler(async e=>{const t=scopeOf(e);await applyTasteLearning({enabled:!1,scope:t}),console.log(""),reportDisabled(t)}))}function createTasteCommand(){const e=new Le("taste");return e.description("Manage taste learning packages").allowUnknownOption().allowExcessArguments(),e.addCommand(createEnableCommand()),e.addCommand(createDisableCommand()),e.addCommand(createPushCommand()),e.addCommand(createPullCommand()),e.addCommand(createListCommand()),e.addCommand(createLintCommand()),e.addCommand(createOpenCommand()),isExperimentalEnabled()&&e.addCommand(createLearnCommand()),e}__name(loadUserNamespaces,"loadUserNamespaces"),__name(createPushCommand,"createPushCommand"),__name(validateOwnerAccess,"validateOwnerAccess"),__name(resolveOwnerForPush,"resolveOwnerForPush"),__name(runPush,"runPush"),__name(pushRemoteAll,"pushRemoteAll"),__name(pushRemoteSingle,"pushRemoteSingle"),__name(startPushSpinner,"startPushSpinner"),__name(pushGlobal,"pushGlobal"),Ex(),Px(),__name(scopeOf,"scopeOf"),__name(whereFor,"whereFor"),__name(applyTasteLearning,"applyTasteLearning"),__name(reportEnabled,"reportEnabled"),__name(reportDisabled,"reportDisabled"),__name(createEnableCommand,"createEnableCommand"),__name(createDisableCommand,"createDisableCommand"),__name(createTasteCommand,"createTasteCommand"),Ex(),Px();var zF=`${getBinaryCommand()}`;function formatVersion(e,t,n=!1){const r=n?yt.bold(yt.green(t)):yt.white(t);return`${yt.dim(e)} ${r}`}function showVersionDetails(e){for(const t of e.versionLines)console.log(formatVersion(t.label,t.version,t.highlight));console.log("");for(const t of e.detailLines)console.log(t.replace(`${zF} update`,yt.bold(yt.green(`${zF} update`))))}function showUpdateSuccessHint(e){for(const t of e.detailLines)console.log(yt.dim(t.replace(zF,yt.cyan(zF))))}function showManualUpdateHint(e){const[t,n]=e.manualUpdateLines;t&&console.log(yt.dim(t)),n&&console.log(yt.cyan(n))}function showCheckFailure(e){for(const t of e.detailLines)console.log(yt.dim(t))}function renderUpdateEvent(e,t){if("type"in e)"updating"===e.type&&(t.text=e.text.replace("→",it.arrowRight));else{if("check-failed"===e.kind)return t.fail(e.outcome.spinnerMessage),void showCheckFailure(e.outcome);if("up-to-date"!==e.kind)return"update-available"===e.kind?(t.stop(),console.log(""),console.log(`${yt.green(it.tick)} ${e.outcome.heading}`),void showVersionDetails(e.outcome)):"update-failed"===e.kind?(t.fail(e.outcome.spinnerMessage),void showManualUpdateHint(e.outcome)):"updated"===e.kind?(t.succeed(e.outcome.spinnerMessage),void showUpdateSuccessHint(e.outcome)):void 0;t.succeed(e.outcome.spinnerMessage)}}async function updateAction2(e){const t=kt("Checking for updates...").start(),n=await runCliUpdateCommand({checkOnly:e.checkOnly,host:t_,copy:{binCommand:zF,updateCommand:"npm i -g command-code"},emit:__name(e=>renderUpdateEvent(e,t),"emit")});if("update-failed"===n.kind){const{failureReason:e}=n.outcome.telemetry;trackError({error:sanitizeErrorForTelemetry({error:new Error(e?`Update failed: ${e}`:"Update failed"),label:"cli_update_failed"}),context:{component:co.UPDATE_COMMAND,heading:n.outcome.telemetry.heading,"update.current_version":n.outcome.telemetry.currentVersion,"update.target_version":n.outcome.telemetry.targetVersion,...e&&{"update.failure_reason":e}}}),await shutdownTelemetry(),process.exit(1)}}__name(formatVersion,"formatVersion"),__name(showVersionDetails,"showVersionDetails"),__name(showUpdateSuccessHint,"showUpdateSuccessHint"),__name(showManualUpdateHint,"showManualUpdateHint"),__name(showCheckFailure,"showCheckFailure"),__name(renderUpdateEvent,"renderUpdateEvent"),__name(updateAction2,"updateAction");var qF=new Le("update").description("Update Command Code to the latest version").option("--check-only","Check for updates without installing").allowUnknownOption().allowExcessArguments().action(updateAction2);function getAuthKey9(){return getCommandAuthKey({runtime:getCommandConfigRuntime(),path:getAuthFile(),env:process.env})}Ex(),Px(),__name(getAuthKey9,"getAuthKey");var KF=__name((e,t)=>`${it.info} ${e}: ${yt.cyan(t)}`,"formatInfoLine"),YF=__name(e=>yt.bold(`${e}:`),"formatSectionHeader"),JF=__name(e=>yt.red(e),"formatError"),QF=__name(e=>e instanceof Error?e.message:"Unknown error","formatErrorMessage"),XF=__name((e,t)=>["",YF(e),...t.map(e=>KF(e.label,e.value))],"buildSection"),ZF=__name(e=>XF("User Information",projectWhoamiUserRows(e)),"buildUserOutput"),eU=__name(e=>XF("Organization",projectWhoamiOrgRows(e)),"buildOrgOutput"),tU=__name(e=>{e.forEach(e=>console.log(e))},"printLines"),nU=__name((e,t)=>{tU(ZF(e)),t&&tU(eU(t)),console.log("")},"displayUserInfo");async function whoamiAction(){const e=kt("Fetching user information...").start();try{hasCommandApiKey(await getAuthKey9())||(e.fail(JF(It)),process.exit(1));const t=await getAuthenticatedEntity({client:createApiClient({baseUrl:getApiBaseUrl()})});isAuthenticatedEntityLoaded(t)||(e.fail(JF(At)),process.exit(1)),e.succeed("User information loaded"),nU(t.user,t.org)}catch(t){e.fail(JF(`Error: ${QF(t)}`)),process.exit(1)}}__name(whoamiAction,"whoamiAction");var rU=new Le("whoami").description("Display current user information").allowUnknownOption().allowExcessArguments().action(whoamiAction);handleUnhandledErrors(),setVscodeIpcLogger(dlog),setupTelemetry(),registerBundledRipgrep(),setImmediate(()=>{const e=getTelemetryEnv();recordCliFingerprintInBackground({getAuthKey:__name(()=>getCommandAuthKey({runtime:getCommandConfigRuntime(),path:getAuthFile(),env:process.env}),"getAuthKey"),baseUrl:getApiBaseUrl(),cliEnvironment:normalizeCliEnvironment(e),cliVersion:getPackageJson(import.meta.url).version??"unknown",cmdZdr:"1"===process.env.CMD_ZDR})}),await preRun();var oU=createProgram();oU.action(interactiveModeAction),oU.addCommand(uO),oU.addCommand(vO),oU.addCommand(rU),oU.addCommand(qF),oU.addCommand(dO),oU.addCommand(cO),oU.addCommand(createTasteCommand()),oU.addCommand(createMcpCommand()),oU.addCommand(oD),oU.addCommand(oO),oU.addCommand(QR),oU.addCommand(rO),oU.addCommand(J_),oU.addCommand(mF),oU.addCommand(gD),isExperimentalEnabled()&&oU.addCommand(createSandboxCommand()),setupCommanderHooks(oU),oU.parse();
|
|
16
|
+
This is an unexpected error. Please file a bug report at https://github.com/CommandCodeAI/command-code/issues/new`,error:e,skipTelemetry:!0,exit:!1}),shutdownTelemetry().finally(()=>{process.exit(1)})})}__name(handleUnhandledErrors,"handleUnhandledErrors"),Ex(),Px(),Ex(),Ex(),Px(),Ex(),Px(),Ex(),Px(),Ex();var AD=Ox,RD=Rx.DIM,OD=Rx.DIMMER,DD=Ox,LD=Rx.WHITE,ND=Rx.GRAY,$D=Rx.GREEN;function hasContent(e){return null!=e&&""!==e}__name(hasContent,"hasContent");var _D=__name(({title:e,titleSuffix:t,subtitle:n,children:r,hint:o,footer:s,rule:a=!0,titleColor:i=AD,ruleColor:l=OD,gapAfterHeader:c=!0,boxProps:d})=>{const u=hasContent(n);return Xe.createElement(Ge,{flexDirection:"column",width:"100%",...d},a&&Xe.createElement(aI,{dividerColor:l}),Xe.createElement(Ge,null,Xe.createElement(Ve,{bold:!0,color:i},e),hasContent(t)&&Xe.createElement(Ve,{color:RD},t)),u?Xe.createElement(Ge,{marginBottom:c?1:0},Xe.createElement(Ve,{color:RD},n)):c&&Xe.createElement(Ge,{marginBottom:1}),r,s?Xe.createElement(Ge,{marginTop:1},s):o?Xe.createElement(Ge,{marginTop:1},Xe.createElement(Ve,{italic:!0,color:RD},o)):null)},"Overlay");Ex();var FD=it.pointer,UD=__name(({isSelected:e,backgroundColor:t})=>Xe.createElement(Ve,{color:e?DD:ND,backgroundColor:t,bold:e&&isLightTheme()},e?FD:" "),"OverlayCaret"),jD=__name(({isSelected:e,isActive:t,idleColor:n=LD,backgroundColor:r,children:o})=>Xe.createElement(Ve,{color:e?DD:t?$D:n,backgroundColor:r,bold:e&&isLightTheme()},o),"OverlayOptionText"),BD=__name(({isSelected:e,label:t})=>Xe.createElement(jD,{isSelected:e}," ",t),"OverlayOptionItem"),WD=__name(({backgroundColor:e})=>Xe.createElement(Ve,{color:$D,backgroundColor:e}," ",it.tick),"OverlayActiveTick"),HD=__name(({indent:e=4,children:t})=>Xe.createElement(Ve,{color:RD}," ".repeat(e),t),"OverlayOptionDescription"),GD=__name(({isSelected:e,idleColor:t=Rx.GRAY,selectedColor:n=Rx.WHITE,bold:r,children:o})=>Xe.createElement(Ve,{color:e?n:t,backgroundColor:e?eI:void 0,bold:r??e},o),"OverlayBarText"),VD=__name(({isSelected:e,label:t})=>Xe.createElement(GD,{isSelected:e}," ",t," "),"OverlayBarItem"),zD=__name(()=>null,"OverlayBarIndicator");Ex();var qD=createOSC8Link("https://commandcode.ai/docs/permissions#permission-modes","Docs ↗",!1),KD=__name(({hint:e})=>Xe.createElement(Ve,{italic:!0,color:Rx.DIM},e," · Run ",Xe.createElement(Ve,{color:Rx.WHITE},"cmd --yolo")," to bypass all permissions (",qD,")"),"PermissionFooter"),YD=__name(({request:e,onResponse:t})=>{const[n]=et(0),r=getPermissionChoicesForRisk({choices:getGenericToolPermissionChoices({toolName:e.toolName}),risk:e.risk}),o=__name(e=>{const n=r.find(t=>t.value===e.value);n&&t(n)},"handleSelect");return Xe.createElement(_D,{title:"Tool Permission",subtitle:Xe.createElement(Ve,{wrap:"wrap"},"Command Code needs to run ",Xe.createElement(Ve,{color:DD},e.toolName),"."),footer:Xe.createElement(KD,{hint:"↑/↓ navigate · enter select"})},e.risk&&Xe.createElement(Ge,{marginBottom:1},Xe.createElement(Ve,{bold:!0,color:Rx.RED,wrap:"wrap"},it.warning," ",getRiskDisplay(e.risk))),e.description&&Xe.createElement(Ge,{marginBottom:1},Xe.createElement(Ve,{color:Rx.DIM,italic:!0},e.description)),Xe.createElement(SelectInput,{items:r.map((e,t)=>({label:`${t+1}. ${e.label}`,value:e.value})),onSelect:o,initialIndex:n,indicatorComponent:UD,itemComponent:BD}))},"GenericPermissionPrompt");function buildTreeConnectors(e,t={}){const{isTruncated:n=!1,closesFrame:r=!0}=t;return e.split("\n").map((e,t,o)=>r&&!n&&t===o.length-1?EI:TI).join("\n")}Ex(),Px(),Ex(),Px(),Ex(),__name(buildTreeConnectors,"buildTreeConnectors");var JD=ft()?"⟳":"*",QD=" │ ";function DiffWordSegments({segments:e,type:t,paired:n,dimDiff:r,language:o,highlightOptions:s}){const a="removed"===t?$x.REMOVED_HIGHLIGHT_BG:$x.ADDED_HIGHLIGHT_BG,i=[];let l=0;for(const c of e){const e=c.highlighted,d=highlightSyntax(c.text,o,s),u=`${t}-${l++}-${e?"highlighted":"unchanged"}`;e?i.push(Xe.createElement(Ve,{key:u,backgroundColor:a,dimColor:r},d)):n?i.push(Xe.createElement(Ve,{key:u,color:Rx.WHITE,dimColor:r},d)):i.push(Xe.createElement(Ve,{key:u,color:"removed"===t?$x.REMOVED_TEXT:$x.ADDED_TEXT,dimColor:r},d))}return i}function DiffRow({background:e,prefix:t,wrap:n="wrap",children:r}){return Xe.createElement(Ge,{width:"100%",backgroundColor:e},Xe.createElement(Ge,{flexShrink:0},t),Xe.createElement(Ge,{flexGrow:1,flexShrink:1,minWidth:0},Xe.createElement(Ve,{wrap:n},r)))}function renderDiffLine({line:e,dimDiff:t,language:n,highlightOptions:r}){if("skip"===e.kind)return Xe.createElement(Ge,{key:e.key,width:"100%"},Xe.createElement(Ve,{color:$x.LINE_NUM,dimColor:t},e.spacer,QD,e.label));if("context"===e.kind)return Xe.createElement(DiffRow,{key:e.key,prefix:Xe.createElement(Ve,{color:$x.LINE_NUM,dimColor:t}," "+e.lineNumberLabel+QD)},Xe.createElement(Ve,{color:Rx.WHITE,dimColor:t}," ",highlightSyntax(e.text,n,r)));const o="removed"===e.kind,s=o?$x.REMOVED_TEXT:$x.ADDED_TEXT,a=o?$x.REMOVED_BG:$x.ADDED_BG;return Xe.createElement(DiffRow,{key:e.key,background:a,prefix:Xe.createElement(Ve,null,Xe.createElement(Ve,{color:s,dimColor:t}," "+e.lineNumberLabel),Xe.createElement(Ve,{color:$x.LINE_NUM,dimColor:t},QD),Xe.createElement(Ve,{color:s,dimColor:t},o?"- ":"+ "))},Xe.createElement(DiffWordSegments,{segments:e.segments,type:e.kind,paired:e.paired,dimDiff:t,language:n,highlightOptions:r}))}function DiffMetadata({metadata:e}){return e?"rejected"===e.kind?Xe.createElement(Ve,{color:Rx.RED},"Rejected update to",Xe.createElement(Ve,{color:Rx.RED},` ${e.filePath}`)):Xe.createElement(Ve,{color:Rx.GRAY},"Updated"," ",Xe.createElement(Ve,{color:Rx.WHITE,bold:!0},e.filePath)," ","with"," ",e.additions>0&&Xe.createElement(Xe.Fragment,null,Xe.createElement(Ve,{color:jx.SUCCESS},e.additions)," ","addition",1!==e.additions?"s":"",e.removals>0?" and ":""),e.removals>0&&Xe.createElement(Xe.Fragment,null,Xe.createElement(Ve,{color:jx.ERROR},e.removals)," ","removal",1!==e.removals?"s":"")):null}function generateDiff({oldValue:e,newValue:t,filePath:n,permissionDenied:r=!1,showMetadata:o=!1,marginLeft:s=2,startLine:a=1,dimDiff:i=!1,maxLines:l}){const c=projectEditDiffView({oldValue:e,newValue:t,filePath:n,permissionDenied:r,showMetadata:o,startLine:a,maxLines:l});let d="";"string"==typeof t&&t?d=t:"string"==typeof e&&(d=e);const u=syntaxLanguageFromFilePath(n,d.split("\n",1)[0]??null),m=getSyntaxHighlightOptions(isLightTheme());return{diffContent:Xe.createElement(Ge,{flexDirection:"column"},Xe.createElement(DiffMetadata,{metadata:c.metadata}),Xe.createElement(Ge,{flexDirection:"column",marginLeft:s,marginRight:s+4,width:Math.max(20,(process.stdout.columns||80)-2*s-8)},c.displayedLines.map(e=>renderDiffLine({line:e,dimDiff:i,language:u,highlightOptions:m})))),isTruncated:c.isTruncated,totalLines:c.totalLines}}function resolveTodoTextStyle(e){return"completed"===e?{textColor:jx.SUCCESS,strikethrough:!0}:"in_progress"===e?{textColor:jx.IN_PROGRESS,strikethrough:!1}:{textColor:Rx.WHITE,strikethrough:!1}}function TodoChecklist({todos:e}){return Xe.createElement(Ge,{flexDirection:"column"},e.map((e,t)=>{const n="completed"===e.status?it.checkboxOn:it.checkboxOff,{textColor:r,strikethrough:o}=resolveTodoTextStyle(e.status),s="in_progress"===e.status&&e.activeForm?`${e.activeForm}…`:e.content;return Xe.createElement(Ge,{key:e.id||t,flexDirection:"row"},Xe.createElement(Ge,{width:2},Xe.createElement(Ve,{color:r},n)),Xe.createElement(Ve,{color:r,bold:"in_progress"===e.status,strikethrough:o},s))}))}function formatTodosForDisplay(e){const t=kg(e);return t?Xe.createElement(TodoChecklist,{todos:t}):Xe.createElement(Ve,null,e)}function computeDisplayInput({input:e,isAgent:t,isShell:n,expandedOutput:r}){return e?t?summarizeAgentTaskInput(e):n&&!r?truncateCommand({command:e}):e:e}function formatToolInput({input:e,isShell:t}){return Xe.createElement(BracketWrap,null,t?e:Xe.createElement(Markdown,null,e))}function ReadToolInlineSummaryRow({summary:e}){return e?.dimText?Xe.createElement(Ve,{dimColor:!0}," ",e.dimText):null}function resolveSymbol({isPending:e,hasError:t,isThinking:n,isTodos:r,output:o}){if(e)return{symbolColor:Rx.YELLOW,symbol:it.arrowRight};if(t)return{symbolColor:Rx.RED,symbol:it.square};if(n)return{symbolColor:Lx,symbol:"✻"};if(r&&o){const e=kg(o),t=e?.every(e=>"completed"===e.status);return{symbolColor:t?jx.SUCCESS:jx.WARNING,symbol:it.square}}return{symbolColor:_x.BG,symbol:it.square}}function ToolHeader({isThinking:e,isTasteFile:t,tasteCategory:n,name:r,summaryMatch:o,expandedOutput:s,expandKey:a,input:i,output:l}){if(e){const e=estimateReasoningSeconds(i||l||"");return Xe.createElement(Xe.Fragment,null,Xe.createElement(Ve,{color:Lx},`Thought for ${e} second${1!==e?"s":""}`," "),!s&&Xe.createElement(BracketWrap,{color:Rx.DIM},`${a}+o to expand`))}if(t)return Xe.createElement(Xe.Fragment,null,Xe.createElement(Ge,{flexShrink:0},Xe.createElement(Ve,{backgroundColor:Dx.BADGE_BG,color:Dx.BADGE_FG,bold:!0},MI)),Xe.createElement(Ve,null," ","Using your taste"," ",n?"package of ":"packages",n&&Xe.createElement(Ve,{bold:!0},n)));let c=r;return"READ[n]"===r&&o&&(c=`READ[${Number(o[1])}]`),Xe.createElement(Ge,{flexShrink:0},Xe.createElement(Ve,{backgroundColor:_x.BG,color:_x.FG,bold:!0},`${PI}${c}${PI}`))}function stripAgentUsageTrailer(e){return e.replace(/\n*<usage>[\s\S]*?<\/usage>\s*$/,"").trimEnd()}function AgentStatus({agentStatus:e,hasError:t,output:n,elapsedSeconds:r,tokensUsed:o}){const s=`${formatTime(r)} | ${formatTokens(o)}`;return"running"===e?Xe.createElement(Ve,{color:Rx.GRAY},"Running (",s,")"):"interrupted"===e||n===bf?Xe.createElement(Ve,{color:Rx.GRAY,wrap:"wrap"},"Interrupted"):"error"===e||t?Xe.createElement(Ve,{color:Rx.RED,wrap:"wrap"},n," (",s,")"):Xe.createElement(Xe.Fragment,null,Xe.createElement(Ve,{wrap:"wrap"},"Done"),Xe.createElement(Ve,{color:Rx.GRAY}," (",s,")"))}function getTruncatedOutputParts({output:e,name:t,expandedOutput:n,expandKey:r}){if(n)return{text:e,isTruncated:!1,remainingLines:0,truncationMsg:null};const o=dedentText(e),{text:s,isTruncated:a,remainingLines:i}=truncateToVisualLines({output:o,maxVisualLines:"Question"===t?Tc:bc,maxChars:"Question"===t?1/0:Rc}),l=a&&"Question"!==t;return{text:s,isTruncated:l,remainingLines:i,truncationMsg:l?i>0?Xe.createElement(BracketedText,{text:`... +${i} lines [${r}+o to expand]`,color:Rx.DIM}):Xe.createElement(BracketedText,{text:`... [${r}+o to expand]`,color:Rx.DIM}):null}}function renderTruncatedOutput({output:e,name:t,expandedOutput:n,expandKey:r}){const{text:o,isTruncated:s,truncationMsg:a}=getTruncatedOutputParts({output:e,name:t,expandedOutput:n,expandKey:r});return s?Xe.createElement(Xe.Fragment,null,o,"\n",a):o}function renderEditFileDiff({input:e,metadata:t,expandedOutput:n,isPermissionDenied:r,output:o,expandKey:s}){const a=n?void 0:Pc,{diffContent:i,isTruncated:l,totalLines:c}=generateDiff({filePath:e,showMetadata:!0,oldValue:t.oldValue??"",newValue:t.newValue??"",startLine:"number"==typeof t.startLine?t.startLine:1,dimDiff:r,permissionDenied:r,maxLines:a}),d=c-Pc;return Xe.createElement(Ge,{flexDirection:"column"},i,l&&Xe.createElement(Ge,{marginTop:1},Xe.createElement(BracketedText,{text:`… (${d} more ${1===d?"line":"lines"}) [${s}+o to expand]`,color:Rx.DIM})),r&&o&&Xe.createElement(Ge,{marginTop:1},Xe.createElement(Ve,{color:Rx.RED,wrap:"wrap"},o)))}function renderWriteFileContent({input:e,metadata:t,expandedOutput:n,expandKey:r}){const o=syntaxLanguageFromFilePath(e,t.content?.split("\n",1)[0]??null),s=getSyntaxHighlightOptions(isLightTheme()),a=projectWriteFileContentView({filePath:e,content:t.content,totalLines:t.totalLines,expandedOutput:n,expandKey:r});return a.empty?Xe.createElement(Ve,{color:Rx.GRAY},"Created"," ",Xe.createElement(Ve,{color:Rx.WHITE,bold:!0},a.filePath)," ","(empty file)"):Xe.createElement(Ge,{flexDirection:"column"},Xe.createElement(Ve,{color:Rx.GRAY},"Created"," ",Xe.createElement(Ve,{color:Rx.WHITE,bold:!0},a.filePath)," ","(",a.totalLinesLabel,")"),Xe.createElement(Ge,{marginTop:1,flexDirection:"column"},a.visibleLines.map(e=>Xe.createElement(DiffRow,{key:e.lineNumber,background:$x.ADDED_BG,wrap:"truncate-end",prefix:Xe.createElement(Ve,null,Xe.createElement(Ve,{color:$x.ADDED_TEXT}," "+e.lineNumberLabel),Xe.createElement(Ve,{color:$x.LINE_NUM},QD))},Xe.createElement(Ve,{color:$x.ADDED_TEXT},highlightSyntax(e.text,o,s))))),a.isTruncated&&a.moreLinesLabel&&Xe.createElement(Ge,{marginTop:1},Xe.createElement(BracketedText,{text:a.expandHint?`… (${a.moreLinesLabel}) ${a.expandHint}`:`… (${a.moreLinesLabel})`,color:Rx.DIM})))}function renderOutputContent({isTodos:e,isThinking:t,isEditFile:n,isWriteFile:r,metadata:o,output:s,expandedOutput:a,isPermissionDenied:i,input:l,hasError:c,name:d,expandKey:u,showTreeConnector:m,closesFrame:p}){if(e)return formatTodosForDisplay(s);if(t){if(!a)return null;const e=l||s;return Xe.createElement(Ge,{width:"100%",flexDirection:"column"},Xe.createElement(Ve,null," "),Xe.createElement(Ve,{color:Lx,wrap:"wrap",italic:!0},e))}const g=p?EI:TI;if(n&&"string"==typeof o?.oldValue&&"string"==typeof o?.newValue){const e=renderEditFileDiff({input:l,metadata:o,expandedOutput:a,isPermissionDenied:i,output:s,expandKey:u});return m?Xe.createElement(Ge,{columnGap:1},Xe.createElement(Ve,{color:Zx},g," "),e):e}if(r&&o&&"content"in o){const e=renderWriteFileContent({input:l,metadata:o,expandedOutput:a,expandKey:u});return m?Xe.createElement(Ge,{columnGap:1},Xe.createElement(Ve,{color:Zx},g," "),e):e}return m?renderTextWithLongConnector({output:s,name:d,expandedOutput:a,expandKey:u,hasError:c,closesFrame:p}):Xe.createElement(Ge,{width:"100%"},Xe.createElement(Ve,{color:c?Rx.RED:"",wrap:"wrap"},renderTruncatedOutput({output:s,name:d,expandedOutput:a,expandKey:u})))}function renderTextWithLongConnector({output:e,name:t,expandedOutput:n,expandKey:r,hasError:o,closesFrame:s}){const{text:a,isTruncated:i,truncationMsg:l}=getTruncatedOutputParts({output:e,name:t,expandedOutput:n,expandKey:r}),c=o?Rx.RED:void 0,d=buildTreeConnectors(a,{isTruncated:i,closesFrame:s}),u=s?EI:TI;return Xe.createElement(Ge,{flexDirection:"column",width:"100%"},Xe.createElement(Ge,{columnGap:1,width:"100%"},Xe.createElement(Ve,{color:Zx},d),Xe.createElement(Ge,{flexGrow:1,flexShrink:1,minWidth:0},Xe.createElement(Ve,{color:c,wrap:"wrap"},a))),i&&Xe.createElement(Ge,{columnGap:1},Xe.createElement(Ve,{color:Zx},u," "),l))}function ToolMessage({name:e,input:t,output:n,isPending:r=!1,hasError:o=!1,metadata:s,expandedOutput:a=!1}){const i="thinking…"===e,l="TODOS"===e,c="EDIT"===e,d="WRITE"===e,u="READ"===e||e.startsWith("READ[")&&e.endsWith("]"),m=!0===s?.isTasteFile,p=s?.tasteCategory,g=!0===s?.permissionDenied,h=!i&&!l&&!m,f="ctrl",y=!0===s?.isAgent,S=computeDisplayInput({input:t,isAgent:y,isShell:"SHELL"===e,expandedOutput:a}),w=!i&&S&&!m,k=s?.status,v=s?.tokensUsed||0,C="number"==typeof s?.elapsedSeconds?Math.floor(s.elapsedSeconds):0,{notes:b}=extractRepairNotes(n??""),E=b.length,T=u?parseReadSummaryLine(extractRepairNotes(n??"").body):null,P=u?projectReadToolInlineSummary({name:e,summaryMatch:T}):null,M=u?projectReadToolBadge({name:e,summaryMatch:T}):e,x=y&&!0===s?.showOutput&&"done"===k,I=Boolean((n||i&&t)&&!m&&(!y||x)&&(!u||o)),{symbolColor:A,symbol:R}=resolveSymbol({isPending:r,hasError:o,isThinking:i,isTodos:l,output:n}),O=s?.preHookLines,D=s?.postHookLines,L=Boolean(O?.length),N=Boolean(D?.length),$=Boolean(s?.hookOutcome),_=r&&!y&&!$,F=!$&&!_,U=I&&!N&&!$&&!_,j=L&&!I&&!N&&!$&&!_;return Xe.createElement(Ge,null,i&&Xe.createElement(Ve,{color:A},R),Xe.createElement(Ge,{flexDirection:"column",marginLeft:i?1:0},Xe.createElement(Ge,null,Xe.createElement(ToolHeader,{isThinking:i,isTasteFile:m,tasteCategory:p,name:M,summaryMatch:T,expandedOutput:a,expandKey:f,input:t,output:n}),w&&Xe.createElement(Ve,null," ",formatToolInput({input:S,isShell:"SHELL"===e})),Xe.createElement(ReadToolInlineSummaryRow,{summary:P}),E>0&&Xe.createElement(Ve,{dimColor:!0},` ${JD}${E>1?` ${E}`:""}`)),y&&("running"===k||n)&&Xe.createElement(Ge,{columnGap:1,marginLeft:h?1:0},h&&Xe.createElement(Ve,{color:Zx},EI," "),Xe.createElement(AgentStatus,{agentStatus:k,hasError:o,output:n,elapsedSeconds:C,tokensUsed:v})),Xe.createElement(HookLines,{lines:O,showTreeConnector:h,closesFrame:j}),I&&renderOutputWithRepairNotes({output:x?stripAgentUsageTrailer(n??""):n??"",isTodos:l,isThinking:i,isEditFile:c,isWriteFile:d,metadata:s,expandedOutput:a||x,isPermissionDenied:g,input:t,hasError:o,name:e,expandKey:f,showTreeConnector:h,closesFrame:U}),Xe.createElement(HookLines,{lines:D,showTreeConnector:h,closesFrame:F}),Xe.createElement(HookOutcome,{outcome:s?.hookOutcome,showTreeConnector:h}),_&&Xe.createElement(Ge,{columnGap:1,marginLeft:1},Xe.createElement(Ve,{color:Zx},EI," "),Xe.createElement(Ve,{color:Rx.GRAY},"Processing…"))))}function renderOutputWithRepairNotes({output:e,isTodos:t,isThinking:n,isEditFile:r,isWriteFile:o,metadata:s,expandedOutput:a,isPermissionDenied:i,input:l,hasError:c,name:d,expandKey:u,showTreeConnector:m,closesFrame:p}){const{body:g}=extractRepairNotes(e);return Xe.createElement(Ge,{marginLeft:m?1:0},renderOutputContent({isTodos:t,isThinking:n,isEditFile:r,isWriteFile:o,metadata:s,output:g,expandedOutput:a,isPermissionDenied:i,input:l,hasError:c,name:d,expandKey:u,showTreeConnector:m,closesFrame:p}))}function HookLines({lines:e,showTreeConnector:t,closesFrame:n=!1}){if(!e||0===e.length)return null;const r=e.length-1;return Xe.createElement(Ge,{flexDirection:"column",marginLeft:t?1:0},e.map((e,t)=>{const o=n&&t===r?EI:TI;return Xe.createElement(Ge,{key:t,columnGap:1},Xe.createElement(Ve,{color:Zx},o),Xe.createElement(Ge,{flexGrow:1,flexShrink:1,minWidth:0},Xe.createElement(Ve,{color:Rx.DIM},e)))}))}function HookOutcome({outcome:e,showTreeConnector:t}){if(!e)return null;const n="stop"===e.kind?Rx.YELLOW:Rx.RED;return Xe.createElement(Ge,{columnGap:1,marginLeft:t?1:0},Xe.createElement(Ve,{color:Zx},EI),Xe.createElement(Ge,{flexGrow:1,flexShrink:1,minWidth:0},Xe.createElement(Ve,{color:n},e.text)))}__name(DiffWordSegments,"DiffWordSegments"),__name(DiffRow,"DiffRow"),__name(renderDiffLine,"renderDiffLine"),__name(DiffMetadata,"DiffMetadata"),__name(generateDiff,"generateDiff"),__name(resolveTodoTextStyle,"resolveTodoTextStyle"),__name(TodoChecklist,"TodoChecklist"),__name(formatTodosForDisplay,"formatTodosForDisplay"),__name(computeDisplayInput,"computeDisplayInput"),__name(formatToolInput,"formatToolInput"),__name(ReadToolInlineSummaryRow,"ReadToolInlineSummaryRow"),__name(resolveSymbol,"resolveSymbol"),__name(ToolHeader,"ToolHeader"),__name(stripAgentUsageTrailer,"stripAgentUsageTrailer"),__name(AgentStatus,"AgentStatus"),__name(getTruncatedOutputParts,"getTruncatedOutputParts"),__name(renderTruncatedOutput,"renderTruncatedOutput"),__name(renderEditFileDiff,"renderEditFileDiff"),__name(renderWriteFileContent,"renderWriteFileContent"),__name(renderOutputContent,"renderOutputContent"),__name(renderTextWithLongConnector,"renderTextWithLongConnector"),__name(ToolMessage,"ToolMessage"),__name(renderOutputWithRepairNotes,"renderOutputWithRepairNotes"),__name(HookLines,"HookLines"),__name(HookOutcome,"HookOutcome");var XD=createNodeRuntime(),ZD=__name(({label:e,isSelected:t})=>e.includes("[shift+tab]")?Xe.createElement(Xe.Fragment,null,e.split("[shift+tab]")[0],Xe.createElement(BracketWrap,{color:t?DD:LD,bold:!0},"shift+tab")):e.includes("(")?Xe.createElement(Xe.Fragment,null,e.split("(")[0],Xe.createElement(Ve,{color:Rx.GRAY},"(",e.split("(")[1])):e,"ChoiceLabel"),eL=__name(({request:e,onResponse:t,onEnableAutoAccept:n})=>{const[r]=et(0),[o,s]=et(1);nt(()=>{"edit"===e.action&&e.oldContent&&e.filePath&&resolveEditStartLine({runtime:XD,filePath:e.filePath,oldContent:e.oldContent}).then(e=>{void 0!==e&&s(e)}).catch(()=>{})},[e.filePath,e.oldContent,e.action]);const a=getPermissionChoicesForRisk({choices:SE,risk:e.risk}),i=__name(e=>{const r=a.find(t=>t.value===e.value);r&&(t(r),"yes-session"===r.value&&n&&n())},"handleSelect"),l=__name(()=>"edit"===e.action?"make this edit to":"create"===e.action?"create":"delete"===e.action?"delete":"execute"===e.action?"execute":"modify","getActionDescription"),c=getDisplayPath({filePath:e.filePath,cwd:process.cwd()}),d=__name(()=>"edit"===e.action?"Edit File":"create"===e.action?"Create File":"delete"===e.action?"Delete File":"execute"===e.action?"Execute File":"File Operation","getHeading");return Xe.createElement(_D,{title:`${d()}${"edit"===e.action?` ${c}`:""}`,footer:Xe.createElement(KD,{hint:"↑/↓ navigate · enter select"})},"edit"===e.action&&e.oldContent&&e.newContent&&Xe.createElement(Ge,{marginBottom:1},generateDiff({oldValue:e.oldContent,newValue:e.newContent,filePath:c,marginLeft:0,startLine:o}).diffContent),e.risk&&Xe.createElement(Ge,{marginBottom:1},Xe.createElement(Ve,{bold:!0,color:Rx.RED,wrap:"wrap"},it.warning," ",getRiskDisplay(e.risk))),Xe.createElement(Ge,{marginBottom:1},Xe.createElement(Ve,{bold:!0},"Do you want to ",l()," ",Xe.createElement(Ve,{color:DD},c),"?")),Xe.createElement(SelectInput,{items:a.map((e,t)=>({label:` ${t+1}. ${e.label}`,value:e.value})),onSelect:i,initialIndex:r,indicatorComponent:UD,itemComponent:({label:e,isSelected:t})=>Xe.createElement(jD,{isSelected:t},Xe.createElement(ZD,{label:e,isSelected:t}))}))},"PermissionPrompt");Ex(),Px();var tL=UC?"ctrl+y":"ctrl+e",nL=__name(({request:e,onResponse:t})=>{const[n]=et(0),[r,o]=et({phase:"idle"}),s=e.description??("done"===r.phase?r.explanation:void 0),a=void 0!==e.explain&&void 0===e.description&&"done"!==r.phase;Ye((t,n)=>{a&&"loading"!==r.phase&&(isCtrlKey({inputChar:t,key:n,letter:"e",ctrlCode:5})||isCtrlKey({inputChar:t,key:n,letter:"y",ctrlCode:25}))&&(o({phase:"loading"}),e.explain?.().then(e=>{o(e?{phase:"done",explanation:e}:{phase:"failed"})}).catch(()=>o({phase:"failed"})))});const i=getPermissionChoicesForRisk({choices:getShellPermissionChoices({command:e.command,...void 0!==e.args?{args:e.args}:{}}),risk:e.risk}),l=__name(e=>{const n=i.find(t=>t.value===e.value);n&&t(n)},"handleSelect");return Xe.createElement(_D,{title:"Execute Shell Command",subtitle:Xe.createElement(Ve,{wrap:"wrap"},"Command Code needs to execute ",Xe.createElement(Ve,{color:DD},getCommandDisplay(e)),"."),footer:Xe.createElement(KD,{hint:a?`↑/↓ navigate · enter select · ${tL} explain`:"↑/↓ navigate · enter select"})},e.risk&&Xe.createElement(Ge,{marginBottom:1},Xe.createElement(Ve,{bold:!0,color:Rx.RED,wrap:"wrap"},it.warning," ",getRiskDisplay(e.risk))),e.workingDirectory&&Xe.createElement(Ge,{marginBottom:1},Xe.createElement(Ve,{color:Rx.GRAY},"Working directory: ",e.workingDirectory)),s&&Xe.createElement(Ge,{marginBottom:1},Xe.createElement(Ve,{color:Rx.DIM,italic:!0},s)),a&&"idle"===r.phase&&Xe.createElement(Ge,{marginBottom:1},Xe.createElement(Ve,{color:Rx.DIM,italic:!0},"Press"," ",Xe.createElement(BracketWrap,{color:Rx.DIM,bold:!0},tL)," ","to explain this command")),"loading"===r.phase&&Xe.createElement(Ge,{marginBottom:1},Xe.createElement(Ve,{color:Rx.DIM,italic:!0},Xe.createElement(gt,{type:"dots"})," Explaining this command…")),"failed"===r.phase&&Xe.createElement(Ge,{marginBottom:1},Xe.createElement(Ve,{color:Rx.DIM,italic:!0},"Couldn't generate an explanation — press"," ",tL," to retry")),Xe.createElement(SelectInput,{items:i.map((e,t)=>({label:` ${t+1}. ${e.label}`,value:e.value})),onSelect:l,initialIndex:n,indicatorComponent:UD,itemComponent:({label:e,isSelected:t})=>Xe.createElement(jD,{isSelected:t},e.includes("[shift+tab]")?Xe.createElement(Xe.Fragment,null,e.split("[shift+tab]")[0],Xe.createElement(BracketWrap,{color:t?DD:LD,bold:!0},"shift+tab")):e)}))},"ShellPermissionPrompt");function handlePermissionResponse({choice:e,resolve:t,setPendingPermission:n,respondToPrompt:r,setStatus:o,permissionMode:s,showHintMessage:a,allowedStatus:i,deniedStatus:l}){r(e);const c="no"!==e.value;t(c),n(null),c?(o(i),"default"===s&&a("Use shift+tab to enable auto-accept")):o(l)}__name(handlePermissionResponse,"handlePermissionResponse");var rL=Ze(__name(function PermissionView2({pendingPermission:e,permissionMode:t,setPendingPermission:n,setStatus:r,respondToPrompt:o,showHintMessage:s,handleEnableAutoAccept:a}){const i={resolve:e.resolve,setPendingPermission:n,respondToPrompt:o,setStatus:r,permissionMode:t,showHintMessage:s};if("shell_command"===e.toolName){const t=e.params;return Xe.createElement(Ge,{marginY:1},Xe.createElement(nL,{request:t,onResponse:e=>handlePermissionResponse({...i,choice:e,allowedStatus:"Shell command allowed",deniedStatus:"Shell command denied"})}))}if("kill_shell"===e.toolName){const t=buildKillShellPermissionRequest(e.params);return Xe.createElement(Ge,{marginY:1},Xe.createElement(nL,{request:t,onResponse:e=>handlePermissionResponse({...i,choice:e,allowedStatus:"Process termination allowed",deniedStatus:"Process termination denied"})}))}if(isGenericToolRequest(e.params)){const t=e.params;return Xe.createElement(Ge,{marginY:1},Xe.createElement(YD,{request:t,onResponse:e=>handlePermissionResponse({...i,choice:e,allowedStatus:"Tool call allowed",deniedStatus:"Tool call denied"})}))}const l=isFileEditRequest(e.params)?e.params:buildFileToolPermissionRequest({toolName:e.toolName,input:e.params,fallbackDescription:`Allow ${e.toolName} operation`,useInputDescription:!1});return Xe.createElement(Ge,{marginY:1},Xe.createElement(eL,{request:l,onResponse:e=>handlePermissionResponse({...i,choice:e,allowedStatus:"File operation allowed",deniedStatus:"File operation denied"}),onEnableAutoAccept:a}))},"PermissionView"));function isGenericToolRequest(e){return"object"==typeof e&&null!==e&&"toolName"in e&&"string"==typeof e.toolName}function isFileEditRequest(e){if("object"!=typeof e||null===e)return!1;const t=e;return"string"==typeof t.action&&"string"==typeof t.filePath}function PlanPanel({content:e,filePath:n,expanded:r}){const{stdout:o}=qe(),s=trimPlanMarkdown(e,getCollapsedPlanMaxLines(o?.rows)),a=s.hiddenLineCount>0,i=r?e:s.visible,l=1!==s.hiddenLineCount?"s":"",c=`… +${s.hiddenLineCount} more line${l} · ctrl+o to expand`;return Xe.createElement(_D,{title:"Plan",titleSuffix:n?` · ${t.basename(n)}`:void 0,gapAfterHeader:!1,hint:a?r?"ctrl+o to collapse":c:void 0},Xe.createElement(Ge,{marginTop:1},Xe.createElement(Markdown,null,i)))}__name(isGenericToolRequest,"isGenericToolRequest"),__name(isFileEditRequest,"isFileEditRequest"),Ex(),Px(),Ex(),Px(),__name(PlanPanel,"PlanPanel"),Ex(),Px();var oL=__name(({preview:e})=>{const t=e.trim().split("\n"),n=t.slice(0,8),r=t.length-n.length,o="─".repeat(70),s=`─── ✂ ─── ${r} line${1===r?"":"s"} hidden `,a="─".repeat(Math.max(0,70-s.length));return Xe.createElement(Ge,{flexDirection:"column",marginTop:1,paddingLeft:4},Xe.createElement(Ve,{italic:!0,color:Rx.DIM},"Preview"),Xe.createElement(Ve,{color:Rx.DIM},`┌${o}┐`),n.map((e,t)=>{const n=e.length>68?e.slice(0,68):e,r=" ".repeat(Math.max(0,68-n.length));return Xe.createElement(Ve,{key:t},Xe.createElement(Ve,{color:Rx.DIM},"│ "),Xe.createElement(Ve,{color:Rx.GRAY},n),Xe.createElement(Ve,{color:Rx.DIM},`${r} │`))}),r>0?Xe.createElement(Ve,{color:Rx.YELLOW},`├${s}${a}┤`):null,Xe.createElement(Ve,{color:Rx.DIM},`└${o}┘`))},"OptionPreview"),sL=[{label:"1. Submit",value:"submit"},{label:"2. Cancel",value:"cancel"}],aL=__name(({checked:e})=>e?Xe.createElement(Ve,{color:Rx.GREEN},"[",it.tick,"] "):Xe.createElement(Ve,{color:Rx.DIM},"[ ] "),"MultiSelectCheckbox"),iL=__name((e,t)=>{if(!e.startsWith("option_"))return null;const n=e.slice(7),r=parseInt(n,10);return Number.isNaN(r)||r<0||r>t?null:r},"parseOptionIndex"),lL=__name((e,t)=>{const n=new Set(e);return n.has(t)?(n.delete(t),n):(n.add(t),n)},"toggleLabel"),cL=__name((e,t)=>e?{indicator:it.bullet,color:DD}:t?{indicator:it.tick,color:Rx.GREEN}:{indicator:it.circle,color:Rx.GRAY},"getTabMarker"),dL=__name(({questions:e,currentIndex:t,answeredQuestions:n,isReviewPage:r,hideReview:o=!1})=>{if(o&&1===e.length)return null;const s=[];if(e.forEach((o,a)=>{const i=a===t&&!r,l=n.has(a),{indicator:c,color:d}=cL(i,l);s.push(Xe.createElement(Ve,{key:a},Xe.createElement(Ve,{color:d},c),Xe.createElement(Ve,{color:i?DD:void 0}," ",o.header),a<e.length-1?Xe.createElement(Ve,{color:Rx.DIM}," | "):null))}),!o){const e=r;s.push(Xe.createElement(Ve,{key:"review"},Xe.createElement(Ve,{color:Rx.DIM}," | "),Xe.createElement(Ve,{color:e?DD:Rx.GRAY},e?it.bullet:it.circle),Xe.createElement(Ve,{color:e?DD:void 0,bold:e}," ","Review")))}return Xe.createElement(Ge,null,s)},"TabIndicator"),uL=__name(({questions:e,onResponse:t,hideCustomInput:n=!1,compact:r=!1})=>{const[o,s]=et(0),[a,i]=et(new Map),l=tt(null);null===l.current&&(l.current=new Map);const c=l.current,[d,u]=et(""),[m,p]=et(new Set),[g,h]=et(null),[f,y]=et(!1),[S,w]=et(!1),[k,v]=et(!1),[C,b]=et(null),[E,T]=et(!1),P=tt(null);null===P.current&&(P.current=new Map);const M=tt(null);null===M.current&&(M.current=new Map);const[x,I]=et(!1),[A,R]=et(""),[,O]=et(0),D=e[o],L=D?.multiSelect??!1,N=a.get(o),$=D?[...D.options.map((e,t)=>({label:e.label,value:`option_${t}`,description:e.description,...void 0!==e.preview?{preview:e.preview}:{}}))]:[],_=$.map((e,t)=>({label:` ${t+1}. ${e.label}`,value:e.value})),F=new Map(_.map((e,t)=>[e.label,$[t]])),U=__name((e,t)=>{t.size>0?c.set(e,Array.from(t)):c.delete(e)},"saveOrClearMultiAnswer"),j=__name(t=>{const n=e[t],r=c.get(t);if(n?.multiSelect&&r){p(new Set(r));const e=r.find(e=>!n.options.some(t=>t.label===e));return void u(e||"")}if(p(new Set),!n?.multiSelect&&1===r?.length){const e=r[0],t=!n?.options.some(t=>t.label===e);return void u(t&&e?e:"")}u("")},"restoreInputsForQuestion"),B=__name(e=>{"submit"!==e.value?"cancel"===e.value&&t({answers:[]}):K()},"handleReviewSelect"),W=__name(()=>{if(!N||0===N.length)return 0;const e=N[0],t=D.options.findIndex(t=>t.label===e);return t>=0?t:0},"getInitialIndex"),H=__name(e=>{if(f)return;if(L){const t=iL(e.value,D.options.length-1);if(null===t)return;const n=D.options[t]?.label||"";return void p(e=>lL(e,n))}const t=iL(e.value,D.options.length-1);if(null===t)return;y(!0);const n=D.options[t]?.label||"";z([n])},"handleSelect"),G=__name(()=>{if(f)return;y(!0);const e=Array.from(m);z(e)},"handleMultiSelectDone"),V=__name(()=>{if(f)return;const e=d.trim();if(e){if(L){const t=new Set(D.options.map(e=>e.label));return void p(n=>{const r=new Set;return n.forEach(e=>{t.has(e)&&r.add(e)}),r.add(e),r})}y(!0),z([e])}},"handleOtherSubmit"),z=__name(t=>{c.set(o,t);const r=new Map(c);if(i(r),o<e.length-1){const e=o+1;return j(e),s(e),y(!1),v(!1),b(null),void T(!1)}if(e.every((e,t)=>r.has(t)))return n&&1===e.length?void K():(p(new Set),u(""),v(!1),T(!1),b(null),w(!0),void y(!1));const a=e.findIndex((e,t)=>!r.has(t));-1!==a&&(j(a),s(a)),y(!1),v(!1),b(null),T(!1)},"finishQuestion"),q=__name(()=>e.map((e,t)=>{const n=c.get(t)||[],r=M.current?.get(t),o=0===n.length&&r?.length?["(Image attached)"]:n,s=P.current?.get(t)?.trim(),a=e.multiSelect||1!==n.length?void 0:e.options.find(e=>e.label===n[0]);return{questionIndex:t,selectedOptions:o,...a?.preview?{preview:a.preview}:{},...s?{notes:s}:{},...r?.length?{images:r}:{}}}),"buildAnswers"),K=__name(()=>{t({answers:q()})},"submitAnswers"),Y=__name(()=>{t({answers:q(),disposition:"chat"})},"chatAboutQuestions"),J=__name(()=>{P.current&&(A.trim()?P.current.set(o,A):P.current.delete(o)),I(!1)},"saveNotesAndClose"),Q=__name(async()=>{try{const e=await detectClipboardImage();if(!e)return;const t=M.current?.get(o)??[];M.current?.set(o,[...t,{data:e.data,mediaType:e.mediaType}]),O(e=>e+1)}catch{}},"pasteClipboardImageIntoQuestion"),X=__name(async(e,t)=>{try{const n=await openInEditor(e);n!==e&&t(n)}catch{}},"editExternally"),Z=__name(e=>{w(!1),s(e),T(!1),v(!1),b(null),j(e)},"editQuestion"),ee=__name(t=>{t<0||t>=e.length||(L&&(U(o,m),i(new Map(c))),y(!1),v(!1),b(null),T(!1),j(t),s(t))},"navigateToQuestion"),te=__name(()=>{if(!g||!L)return;if("done"===g.value)return;const e=iL(g.value,D.options.length-1);if(null===e)return;const t=D.options[e]?.label||"";p(e=>lL(e,t))},"toggleMultiSelection"),ne=__name(e=>{const t=_[0],r=_[_.length-1],o=g&&t&&g.value===t.value,s=g&&r&&g.value===r.value;if(!e.downArrow||k||E||n||!(_.length>0)||!s)return e.upArrow&&!k&&!E&&_.length>0&&o?L?void T(!0):void(n||(v(!0),b(_.length-1))):e.upArrow&&k?(v(!1),b(_.length-1),void(r&&h(r))):e.downArrow&&k?(v(!1),L?void T(!0):(b(0),void(t&&h(t)))):e.upArrow&&E?(T(!1),void v(!0)):e.downArrow&&E?(T(!1),b(0),void(t&&h(t))):void(e.return&&E&&L&&G());v(!0)},"handleVerticalNav"),re=__name(t=>{f||k||E||(S?t.leftArrow&&Z(e.length-1):t.leftArrow&&o>0?ee(o-1):t.rightArrow&&(o<e.length-1?ee(o+1):(L&&(U(o,m),i(new Map(c))),w(!0))))},"handleHorizontalNav"),oe=__name(()=>{if(!f)if(S)w(!1);else{if(k){v(!1);const e=C??_.length-1;b(e);const t=_[e];return void(t&&h(t))}if(E){T(!1);const e=_[_.length-1];e&&h(e)}}},"handleEscape");if(Ye((e,t)=>{if(x)t.escape?J():t.ctrl&&"v"===e?Q():t.ctrl&&"g"===e&&X(A,R);else if(t.ctrl&&"v"===e&&k)Q();else if(t.ctrl&&"g"===e&&k)X(d,u);else{if(" "===e&&L&&!k&&te(),"d"!==e||!L||k||S||G(),!(k||S||f||n)){if("n"===e)return R(P.current?.get(o)??""),void I(!0);if("c"===e)return void Y()}S||f||ne(t),re(t),t.escape&&oe()}}),!D&&!S)return null;if(S)return Xe.createElement(Ge,{flexDirection:"column",width:"100%"},Xe.createElement(aI,{dividerColor:OD}),Xe.createElement(Ge,{marginBottom:1},Xe.createElement(dL,{questions:e,currentIndex:e.length,answeredQuestions:new Set(a.keys()),isReviewPage:!0})),e.some((e,t)=>!a.get(t)?.length)&&Xe.createElement(Ge,{marginBottom:1},Xe.createElement(Ve,{color:Rx.YELLOW},"⚠ You have not answered all questions")),e.map((e,t)=>Xe.createElement(Ge,{key:t,marginBottom:1,flexDirection:"column"},Xe.createElement(Ve,{color:Rx.DIM},t+1,". ",e.question),Xe.createElement(Ve,{color:Rx.GREEN}," ",a.get(t)?.join(", ")||"No answer"))),Xe.createElement(SelectInput,{items:sL,onSelect:B,initialIndex:0,indicatorComponent:UD,itemComponent:BD}),Xe.createElement(Ge,{marginTop:1},Xe.createElement(Ve,{italic:!0,color:Rx.DIM},it.arrowLeft," to go back and edit")));const se=r&&1===e.length;return Xe.createElement(Ge,{flexDirection:"column",width:"100%"},!se&&Xe.createElement(aI,{dividerColor:OD}),!se&&Xe.createElement(Ge,{marginBottom:1},Xe.createElement(dL,{questions:e,currentIndex:o,answeredQuestions:new Set(a.keys()),isReviewPage:!1,hideReview:n})),Xe.createElement(Ge,{marginBottom:1},Xe.createElement(Ve,{bold:!0,color:AD},D.question)),k||E||x?Xe.createElement(Ge,{flexDirection:"column"},_.map((e,t)=>{const n=F.get(e.label),r=L&&n&&m.has(n.label),o=!L&&n&&N?.includes(n.label),s=r||o;return Xe.createElement(Ge,{key:e.value,flexDirection:"column"},Xe.createElement(Ge,null,Xe.createElement(Ve,null," "),Xe.createElement(jD,{isActive:s,idleColor:Rx.GRAY}," ",t+1,"."," "),L&&Xe.createElement(aL,{checked:s}),Xe.createElement(jD,{isActive:s,idleColor:Rx.GRAY},n?.label||""),!L&&s&&Xe.createElement(WD,null)),n?.description&&Xe.createElement(Ge,null,Xe.createElement(Ve,null," "),Xe.createElement(HD,{indent:L?7:4},n.description)))})):Xe.createElement(SelectInput,{key:`${o}-${C??"default"}`,items:_,initialIndex:C??W(),onSelect:H,onHighlight:h,indicatorComponent:UD,itemComponent:({label:e,isSelected:t})=>{const n=F.get(e),r=L&&n&&m.has(n.label),o=!L&&n&&N?.includes(n.label),s=r||o,a=e.match(/^\s*(\d+)\.\s*(.*)$/),i=a?.[1]||"",l=a?.[2]||e;return Xe.createElement(Ge,{flexDirection:"column"},Xe.createElement(Ge,null,Xe.createElement(jD,{isSelected:t,isActive:s}," ",i,"."," "),L&&Xe.createElement(aL,{checked:s}),Xe.createElement(jD,{isSelected:t,isActive:s},l),!L&&s&&Xe.createElement(WD,null)),n?.description&&Xe.createElement(HD,{indent:L?7:4},n.description))}}),!k&&!E&&(()=>{const e=(g?F.get(g.label):void 0)??$[C??W()];return e?.preview?Xe.createElement(oL,{preview:e.preview}):null})(),!n&&Xe.createElement(Ge,null,Xe.createElement(UD,{isSelected:k}),Xe.createElement(jD,{isSelected:k}," ",_.length+1,"."," "),L&&Xe.createElement(aL,{checked:m.has(d.trim())}),Xe.createElement(TextInput,{value:d,onChange:e=>{const t=e.replace(/\r\n/g," ").replace(/[\r\n]/g," "),n=d.trim();u(t),L&&p(e=>{const r=new Set(e);return n&&r.has(n)&&r.delete(n),t.trim()&&r.add(t.trim()),r})},onSubmit:V,placeholder:"Type something...",focus:k,stripBracketedPaste:!0})),x?Xe.createElement(Ge,null,Xe.createElement(UD,{isSelected:!0}),Xe.createElement(jD,{isSelected:!0}," ","notes:"," "),Xe.createElement(TextInput,{value:A,onChange:R,onSubmit:J,placeholder:"Add notes on this design…",focus:x,stripBracketedPaste:!0})):(()=>{const e=P.current?.get(o)?.trim();return e?Xe.createElement(Ge,null,Xe.createElement(Ve,{italic:!0,color:Rx.DIM}," ","notes: ",e)):null})(),(M.current?.get(o)??[]).map((e,t)=>Xe.createElement(Ge,{key:t},Xe.createElement(Ve,{color:Rx.DIM}," ","[Image #",t+1," attached —"," ",e.mediaType,"]"))),L&&Xe.createElement(Ge,null,Xe.createElement(UD,{isSelected:E}),Xe.createElement(jD,{isSelected:E}," ",o===e.length-1?"Submit":"Next")),e.length>1&&Xe.createElement(Ge,{marginTop:1},Xe.createElement(Ve,{italic:!0,color:Rx.DIM},"Enter to select | Arrow keys to navigate |"," ",n?"Esc to cancel":"1-9 quick select | n notes | c chat | Esc to cancel")))},"QuestionPrompt");function QuestionView({pendingQuestion:e,setPermissionMode:t,dangerouslySkipPermissions:n,setPendingQuestion:r,setStatus:o,setStaticKey:s}){const[a,i]=et(!1),l=e.params.planContent;return Ye((e,t)=>{l&&getIsExpandToolShortcut(t,e)&&i(e=>!e)}),Xe.createElement(Ge,{marginY:1,flexDirection:"column"},l&&Xe.createElement(Ge,{marginBottom:1},Xe.createElement(PlanPanel,{content:l,filePath:e.params.planFilePath,expanded:a})),Xe.createElement(uL,{questions:e.params.questions,hideCustomInput:e.params.hideCustomInput,compact:e.params.compact,onResponse:a=>{const i=resolvePlanModeAnswerTransition({answer:a.answers[0]?.selectedOptions[0]||"",exitPlanMode:e.params.exitPlanMode,enterPlanMode:e.params.enterPlanMode,dangerouslySkipPermissions:n});i&&t(i),e.resolve(a),r(null),o("Answers submitted"),hardResetForResize(),s(e=>e+1)}}))}__name(QuestionView,"QuestionView"),Ex(),Px();var mL="__skip__",pL=__name(({suggestion:e,onSelect:t,onClose:n})=>{const{completedMode:r,primary:o,secondary:s,description:a}=e,i=[...o.map(e=>({label:e,value:e,isPrimary:!0})),...s.map(e=>({label:e,value:e,isPrimary:!1})),{label:"skip",value:mL,isPrimary:!1}],l=new Map(i.map(e=>[e.label,e]));Ye((e,t)=>{t.escape&&n()});const c=__name(e=>{e.value!==mL?(t(e.value),n()):n()},"handleSelect");return Xe.createElement(_D,{title:`/design ${r} complete`,titleSuffix:` · ${a}`,hint:"Enter to run · Esc to dismiss"},Xe.createElement(SelectInput,{items:i,onSelect:c,indicatorComponent:zD,itemComponent:({label:e,isSelected:t})=>{const n=l.get(e),r=n?.value===mL,o=n?.isPrimary??!1,s=r?"run /design manually":Nh[e]??"";return Xe.createElement(Ge,{flexDirection:"column"},Xe.createElement(GD,{isSelected:t,idleColor:o?Rx.WHITE:Rx.DIM},r?" skip ":` /design ${e} `),s&&Xe.createElement(GD,{isSelected:t,idleColor:Rx.DIM,bold:!1},` ${s} `))}}))},"DesignModeSelector");function getUsageToneColor(e){return"danger"===e?Rx.RED:"warning"===e?Rx.YELLOW:Rx.GREEN}function getDistanceToneColor(e){return"danger"===e?Rx.RED:"warning"===e?Rx.YELLOW:Rx.GRAY}function ContextProgress({view:e,progressBarWidth:t}){const n=getUsageToneColor(e.tone),r=buildBlockBar({percentage:e.percentage,width:t});return Xe.createElement(Ge,{flexDirection:"column"},Xe.createElement(Ge,{marginBottom:1},Xe.createElement(Ge,{flexShrink:0},Xe.createElement(Ve,{backgroundColor:Rx.BLUE,color:"#f4f4f4",bold:!0},`${PI}CONTEXT${PI}`)),Xe.createElement(Ve,{color:Rx.DIM}," · "),Xe.createElement(Ve,{color:Rx.GRAY},e.modelLabel)),Xe.createElement(Ge,null,Xe.createElement(Ve,{color:n},r.filled),Xe.createElement(Ve,{color:Wx},r.empty),Xe.createElement(Ve,{bold:!0,color:n},` ${e.percentageLabel}`)),Xe.createElement(Ge,null,Xe.createElement(Ve,null,e.tokensUsedLabel),Xe.createElement(Ve,{color:Rx.GRAY},` / ${e.tokenLimitLabel}`),Xe.createElement(Ve,{color:Rx.DIM}," · "),Xe.createElement(Ve,{color:n},e.tokensRemainingLabel),Xe.createElement(Ve,{color:Rx.GRAY}," remaining"),e.isEstimated&&Xe.createElement(Ve,{color:Rx.DIM}," (estimated)")))}function CompactionDistance({view:e}){if(!e)return null;const t=getDistanceToneColor(e.tone);return Xe.createElement(Ge,{marginTop:1},Xe.createElement(Ve,{color:t},e.tokensAwayLabel),Xe.createElement(Ve,{color:Rx.DIM},e.label))}function BreakdownRow({item:e,labelWidth:t}){return Xe.createElement(Ge,null,Xe.createElement(Ve,null,e.name.padEnd(t)),Xe.createElement(Ve,{bold:!0},e.paddedValue),Xe.createElement(Ve,{color:Rx.GRAY}," tokens"),e.detail&&Xe.createElement(Ve,{color:Rx.DIM},` · ${e.detail}`))}function ContextBreakdown({view:e,labelWidth:t}){return 0===e.rows.length?null:Xe.createElement(Ge,{flexDirection:"column",marginTop:1},e.rows.map(e=>Xe.createElement(BreakdownRow,{key:e.name,item:e,labelWidth:t})))}function ContextTips({tips:e}){return 0===e.length?null:Xe.createElement(Ge,{flexDirection:"column",marginTop:1},e.map(e=>Xe.createElement(Ge,{key:e},Xe.createElement(Ve,{color:Rx.CYAN},it.pointer),Xe.createElement(Ve,{color:Rx.GRAY}," ",e))))}function ContextMessage({analysis:e}){const t=projectContextView(e,{terminalWidth:useTerminalWidth(),modelDisplayName:getModelDisplayName(e.model)});return Xe.createElement(Ge,{flexDirection:"column",paddingTop:1},Xe.createElement(ContextProgress,{view:t.progress,progressBarWidth:t.layout.progressBarWidth}),Xe.createElement(CompactionDistance,{view:t.compactionDistance}),Xe.createElement(ContextBreakdown,{view:t.breakdown,labelWidth:t.layout.labelWidth}),Xe.createElement(ContextTips,{tips:t.tips}))}function ContextConfigView({staticKey:e,sessionId:t,onClose:n,setInput:r}){const[o,s]=et(null),[a,i]=et(null);return nt(()=>{let e=!0;return __name(async()=>{const n=NO(t);if(n)try{const t=await analyzeCommandContext({messages:harnessSessionMessages(n)});e&&s(t)}catch{e&&i("Failed to analyze context.")}else e&&i("No active conversation. Start chatting first.")},"load")(),()=>{e=!1}},[t]),Ye((e,t)=>{t.escape&&(r(""),n())}),Xe.createElement(Xe.Fragment,null,Xe.createElement(XI,{staticKey:e}),Xe.createElement(Ge,{flexDirection:"column",width:"100%"},Xe.createElement(ContextBody,{error:a,analysis:o}),Xe.createElement(Ge,{marginTop:1},Xe.createElement(SA,null,"Press ",Xe.createElement(wA,null,"Esc")," to return to conversation"))))}function ContextBody({error:e,analysis:t}){return e?Xe.createElement(_D,{title:"Context",gapAfterHeader:!1},Xe.createElement(Ve,{color:Rx.DIM},e)):t?Xe.createElement(ContextMessage,{analysis:t}):Xe.createElement(_D,{title:"Context",gapAfterHeader:!1},Xe.createElement(CO,{label:"Loading context analysis"}))}Ex(),Px(),Ex(),Px(),__name(getUsageToneColor,"getUsageToneColor"),__name(getDistanceToneColor,"getDistanceToneColor"),__name(ContextProgress,"ContextProgress"),__name(CompactionDistance,"CompactionDistance"),__name(BreakdownRow,"BreakdownRow"),__name(ContextBreakdown,"ContextBreakdown"),__name(ContextTips,"ContextTips"),__name(ContextMessage,"ContextMessage"),__name(ContextConfigView,"ContextConfigView"),__name(ContextBody,"ContextBody"),Ex(),Ex(),Px(),Ex(),Px();var gL="https://commandcode.ai/studio";function getVersionStatus(){try{return{current:getPackageJson(import.meta.url).version??"Unknown",updateAvailable:null}}catch{return{current:"Unknown",updateAvailable:null}}}async function getAuthStatus(){try{const e=await checkCommandAuthStatus({runtime:getCommandConfigRuntime(),path:getAuthFile(),env:process.env}),t=e.userName||null;return{authenticated:e.authenticated,username:t}}catch{return{authenticated:!1,username:null}}}async function getModelStatus(){try{const e=await getSelectedModel(),t=getProviderDisplayName((await loadUserConfig()).provider||null);return{id:e,displayName:getModelDisplayName(e),provider:t}}catch{return{id:"Unknown",displayName:"Unknown",provider:"Unknown"}}}function getPrStatus(e){try{const t=getCachedPR(e);return t?{number:t.number,url:t.url,state:t.state}:null}catch{return null}}function gatherStatusData(e){const t=e?.runtime??createNodeRuntime();return getStatusSnapshot({runtime:t,version:getVersionStatus,auth:getAuthStatus,model:getModelStatus,pr:getPrStatus,taste:__name(()=>getTasteStatus({runtime:t,learningEnabled:isTasteLearningEnabled}),"taste"),system:__name(()=>getSystemStatus({runtime:t,arch:process.arch,nodeVersion:process.version}),"system"),disabledSkillNames:__name(async()=>(await loadCommandDisabledSkills()).names,"disabledSkillNames")})}__name(getVersionStatus,"getVersionStatus"),__name(getAuthStatus,"getAuthStatus"),__name(getModelStatus,"getModelStatus"),__name(getPrStatus,"getPrStatus"),__name(gatherStatusData,"gatherStatusData");var hL=__name(({label:e,value:t,valueColor:n,dimValue:r})=>Xe.createElement(Ge,null,Xe.createElement(Ve,{dimColor:!0},`${e}:`.padEnd(14)),r?Xe.createElement(Ve,{dimColor:!0},t):Xe.createElement(Ve,{color:n},t)),"Row");function StatusMessage({statusData:e}){const t=projectStatusView(e,{profileBaseUrl:"https://commandcode.ai"}),n=t.account.authenticated?it.tick:it.cross,r=t.account.authenticated?Rx.WHITE:jx.ERROR;return Xe.createElement(Ge,{flexDirection:"column",paddingX:0},Xe.createElement(Ge,null,Xe.createElement(Ve,{color:Ox,bold:!0},"Command Code"," "),Xe.createElement(Ve,{dimColor:!0},t.versionText)),Xe.createElement(Ge,null,Xe.createElement(Ve,{dimColor:!0},"Visit "),Xe.createElement(fI,{url:gL,text:gL,color:Rx.CYAN}),Xe.createElement(Ve,{dimColor:!0}," for usage and billing")),Xe.createElement(Ge,{marginTop:1},Xe.createElement(Ve,{dimColor:!0},"Account:".padEnd(14)),t.account.username&&t.account.profileUrl?Xe.createElement(Xe.Fragment,null,Xe.createElement(fI,{url:t.account.profileUrl,text:t.account.label,color:Rx.CYAN}),Xe.createElement(Ve,{color:r}," ",n)):t.account.authenticated?Xe.createElement(Xe.Fragment,null,Xe.createElement(Ve,null,t.account.label),Xe.createElement(Ve,{color:r}," ",n)):Xe.createElement(Xe.Fragment,null,Xe.createElement(Ve,{color:jx.WARNING},t.account.label),Xe.createElement(Ve,{color:r}," ",n),Xe.createElement(Ve,{dimColor:!0}," — run "),Xe.createElement(Ve,{bold:!0},t.account.loginHint))),Xe.createElement(hL,{label:"Model",value:t.model.value}),Xe.createElement(hL,{label:"Branch",value:t.branch.value,dimValue:t.branch.dim}),t.worktree?Xe.createElement(hL,{label:"Worktree",value:t.worktree.value}):null,t.repository?Xe.createElement(Ge,null,Xe.createElement(Ve,{dimColor:!0},"Repository:".padEnd(14)),Xe.createElement(fI,{url:t.repository.url,text:t.repository.text,color:Rx.CYAN}),t.pullRequest?Xe.createElement(Xe.Fragment,null,Xe.createElement(Ve,{dimColor:!0}," · "),Xe.createElement(fI,{url:t.pullRequest.url,text:t.pullRequest.text,color:t.pullRequest.open?Rx.CYAN:Rx.GRAY}),Xe.createElement(Ve,{dimColor:!0}," ","(",t.pullRequest.stateLabel,")")):null):t.pullRequest?Xe.createElement(Ge,null,Xe.createElement(Ve,{dimColor:!0},"Pull Request:".padEnd(14)),Xe.createElement(fI,{url:t.pullRequest.url,text:t.pullRequest.text,color:t.pullRequest.open?Rx.CYAN:Rx.GRAY}),Xe.createElement(Ve,{dimColor:!0}," (",t.pullRequest.stateLabel,")")):null,Xe.createElement(hL,{label:"Taste",value:t.taste.value,dimValue:t.taste.dim}),Xe.createElement(hL,{label:"Directory",value:t.directory.value}),Xe.createElement(hL,{label:"Skills",value:t.skills.value,dimValue:t.skills.dim}),Xe.createElement(hL,{label:"Agents",value:t.agents.value,dimValue:t.agents.dim}),Xe.createElement(hL,{label:"System",value:t.system.value}),t.proxy?Xe.createElement(hL,{label:"Proxy",value:t.proxy.value}):null)}function StatusBody({state:e}){return"ready"===e.phase?Xe.createElement(StatusMessage,{statusData:e.data}):"error"===e.phase?Xe.createElement(Ve,{dimColor:!0},"Could not load status: ",e.message):Xe.createElement(Ve,{dimColor:!0},"Gathering status…")}function StatusConfigView({staticKey:e,onClose:t,setInput:n}){const[r,o]=et({phase:"loading"});return nt(()=>{let e=!1;return gatherStatusData().then(t=>{e||o({phase:"ready",data:t})}).catch(t=>{if(e)return;const n=t instanceof Error?t.message:"Failed to gather status";o({phase:"error",message:n})}),()=>{e=!0}},[]),Ye((e,r)=>{r.escape&&(n(""),t())}),Xe.createElement(Xe.Fragment,null,Xe.createElement(XI,{staticKey:e}),Xe.createElement(Ge,{flexDirection:"column",width:"100%"},Xe.createElement(StatusBody,{state:r}),Xe.createElement(Ge,{marginTop:1},Xe.createElement(SA,null,"Press ",Xe.createElement(wA,null,"Esc")," to return to conversation"))))}__name(StatusMessage,"StatusMessage"),__name(StatusBody,"StatusBody"),__name(StatusConfigView,"StatusConfigView"),Ex(),Px(),Px(),Ex(),Px();var{addDirectory:fL,formatDirectoryForDisplay:yL,getAdditionalDirectories:SL,removeAdditionalDirectory:wL}=nf,kL=__name(({onClose:e})=>{const[t,n]=et(""),[r,o]=et(null),[s,a]=et([]),[i,l]=et(()=>SL()),[c,d]=et(()=>({zone:"input",suggestionIndex:0,activeDirIndex:0})),[u,m]=et(0);nt(()=>{a(t?getDirectorySuggestions(t):[]),d(e=>({...e,zone:"input"})),m(0)},[t]),nt(()=>{if(!r||"success"!==r.tone)return;const e=setTimeout(()=>{o(null)},5e3);return()=>clearTimeout(e)},[r]);const p=__name(e=>{const t=fL(e);"error"!==t.status?"skipped"!==t.status?(o({tone:"success",text:`Added ${t.displayPath} to directory scope`}),n(""),l(SL()),d({zone:"input",suggestionIndex:0,activeDirIndex:0})):o({tone:"warning",text:t.message}):o({tone:"error",text:t.message})},"submitPath"),g=__name(e=>{if(!wL(e))return o({tone:"error",text:`${yL(e)} is no longer in workspace scope`}),void l(SL());o({tone:"success",text:`Removed ${yL(e)} from directory scope`}),l(SL()),d(e=>{if("active-dir"!==e.zone)return e;const t=Math.max(0,e.activeDirIndex-1);return{...e,activeDirIndex:t}})},"handleRemove");Ye((t,r)=>{if(r.escape)e();else{if(r.return)return"suggestions"===c.zone&&s[c.suggestionIndex]?void p(s[c.suggestionIndex]):void 0;if((r.delete||r.backspace)&&"active-dir"===c.zone&&i[c.activeDirIndex])g(i[c.activeDirIndex]);else{if(r.tab&&s.length>0){const e=s[c.suggestionIndex]??s[0];return void(e&&(n(e),d(e=>({...e,zone:"input"})),o(null)))}r.downArrow?d(e=>moveAddDirFocusDown(e,{suggestionCount:s.length,activeDirCount:i.length})):r.upArrow&&d(e=>moveAddDirFocusUp(e,{suggestionCount:s.length,activeDirCount:i.length}))}}}),nt(()=>{"suggestions"===c.zone&&m(e=>getAdjustedSuggestionOffset({selectedIndex:c.suggestionIndex,currentOffset:e,maxVisible:px,totalSuggestions:s.length}))},[c,s.length]),nt(()=>{d(e=>"suggestions"===e.zone&&e.suggestionIndex>=s.length?{...e,zone:"input",suggestionIndex:Math.max(0,s.length-1)}:"active-dir"===e.zone&&e.activeDirIndex>=i.length?{...e,zone:"input",activeDirIndex:Math.max(0,i.length-1)}:e)},[s.length,i.length]);const h=s.slice(u,u+px),f=getAddDirFooterText({focusZone:c.zone});return Xe.createElement(_D,{title:"Add directory to workspace",subtitle:Xe.createElement(Ve,{color:Rx.GRAY},"Command Code will be able to read files in this directory and make edits when accept edits mode is on."),footer:Xe.createElement(Ve,{italic:!0,color:Rx.DIM},Xe.createElement(BracketedText,{text:f,color:Rx.DIM})),gapAfterHeader:!1},Xe.createElement(Ge,{marginTop:1,flexDirection:"column"},Xe.createElement(Ve,{color:Rx.GRAY},"Added directories"),0===i.length?Xe.createElement(Ve,{color:Rx.GRAY}," None yet"):i.map((e,t)=>{const n="active-dir"===c.zone&&c.activeDirIndex===t;return Xe.createElement(Ge,{key:e},Xe.createElement(Ve,null," "),Xe.createElement(UD,{isSelected:n}),Xe.createElement(jD,{isSelected:n,isActive:!0}," ",yL(e)))})),Xe.createElement(Ge,{marginTop:1},Xe.createElement(Ve,{bold:!0,color:Rx.WHITE},"Path")),Xe.createElement(Ge,null,Xe.createElement(TextInput,{value:t,focus:"input"===c.zone,prefix:`${"input"===c.zone?it.pointer:" "} `,prefixColor:"input"===c.zone?DD:Rx.GRAY,onChange:e=>{n(e),o(null)},onSubmit:p})),!t&&Xe.createElement(Ge,{marginTop:1},Xe.createElement(Ve,{color:Rx.GRAY},"Examples: ../shared ~/docs /abs/path")),r&&Xe.createElement(Ge,{marginTop:1},Xe.createElement(Ve,{color:{error:Rx.RED,warning:Rx.YELLOW,success:Rx.GREEN}[r.tone]},r.text)),s.length>0&&Xe.createElement(Ge,{flexDirection:"column",marginTop:1},Xe.createElement(Ve,{color:Rx.GRAY},"Suggestions"),h.map((e,t)=>{const n=u+t,r="suggestions"===c.zone&&c.suggestionIndex===n;return Xe.createElement(Ge,{key:e},Xe.createElement(Ve,null," "),Xe.createElement(UD,{isSelected:r}),Xe.createElement(jD,{isSelected:r,idleColor:Rx.GRAY}," ",e))})))},"AddDirModal");function createBillingTransport(){const e=createApiClient({baseUrl:getApiBaseUrl()});return{get:__name(({route:t})=>e.get({endpoint:t}),"get"),post:__name(({route:t,body:n})=>e.post({endpoint:t,body:n}),"post"),postMultipart:__name(()=>Promise.reject(new Error("billing transport does not upload multipart")),"postMultipart"),delete:__name(({route:t})=>e.delete({endpoint:t}),"delete"),postStream:__name(()=>Promise.reject(new Error("billing transport does not stream")),"postStream")}}Ex(),Ex(),Px(),Ex(),Px(),Ex(),Px(),Ex(),Ex(),Px(),Ex(),Px(),__name(createBillingTransport,"createBillingTransport");var vL=null;function getBilling(){return vL||(vL=createBilling({transport:createBillingTransport()})),vL}function getCachedBillingContext(){return vL?.getCached()??null}function getBillingContext(){return getBilling().get()}function prefetchBillingContext(){getBilling().prefetch()}function invalidateBillingContext(){vL=null}function buildLaneModelPickerGroups(e){const t=filterModelGroupsByRegisteredModules(mR),n=t.filter(t=>t.providerId===e.activeLane),r=n.length>0?n:t.filter(e=>e.providerId===Fr.COMMAND),o=vo[e.activeLane]?.supportedModelProviders,s=o?pR.map(e=>({...e,models:e.models.filter(e=>laneSupportsModel(o,e))})):pR;return buildModelPickerGroups({isCoMode:e.isCoMode,coModeGroups:r,normalModeGroups:s})}function laneServesModel(e){if(e.activeLane===Fr.COMMAND)return!0;const t=vo[e.activeLane]?.supportedModelProviders;if(!t)return!0;const n=Object.values(ZA).find(t=>t.id===e.modelId);return!n||laneSupportsModel(t,n)}function defaultModelForLane(e){const t=buildLaneModelPickerGroups({isCoMode:!0,activeLane:e.activeLane});return t[0]?.models[0]?.id}__name(getBilling,"getBilling"),__name(getCachedBillingContext,"getCachedBillingContext"),__name(getBillingContext,"getBillingContext"),__name(prefetchBillingContext,"prefetchBillingContext"),__name(invalidateBillingContext,"invalidateBillingContext"),Ex(),Px(),__name(buildLaneModelPickerGroups,"buildLaneModelPickerGroups"),__name(laneServesModel,"laneServesModel"),__name(defaultModelForLane,"defaultModelForLane"),Ex(),Px();var CL=__name((e,t)=>{const n=t&&e.id===lR?" (default)":"",r="free"===e.badge?" (FREE)":"";return e.label.length+n.length+r.length},"renderedLabelLength");function getModelLabelColumnWidth(e,{showDefaultBadge:t=!0}={}){return e.reduce((e,n)=>Math.max(e,CL(n,t)+2),32)}__name(getModelLabelColumnWidth,"getModelLabelColumnWidth");var bL=__name(({model:e,providerId:t,isHighlighted:n,isCurrent:r,showProviderLabel:o,showDefaultBadge:s=!0,labelColumnWidth:a=32})=>{const i=vo[t],l=o??i?.showProviderLabelInSelector??!1,c=e.vendorLabel??cR[e.provider],d=s&&e.id===lR,u="free"===e.badge,m=d?`${e.label} (default)`:e.label,p=u?" (FREE)":"",g=" ".repeat(Math.max(2,a-m.length-p.length)),h=n?eI:void 0,f=e.description?`${l?`${c} · `:""}${e.description}`:"",y=useTerminalWidth()>=a+38&&f;return Xe.createElement(Ge,null,Xe.createElement(Ve,{backgroundColor:h,color:r?Rx.GREEN:Rx.WHITE,bold:r},m),u&&Xe.createElement(Ve,{backgroundColor:h,color:Rx.GREEN,bold:!0},p),y&&Xe.createElement(Xe.Fragment,null,Xe.createElement(Ve,{backgroundColor:h},g),Xe.createElement(Ve,{backgroundColor:h,color:Rx.DIM},f)),Xe.createElement(Ve,{backgroundColor:h,color:Rx.GREEN},r?` ${it.tick} `:" "))},"ModelRow");Ex(),Px();var EL=__name((e,t)=>`${e+1}. ${t}`,"labelText"),TL=__name(({modelLabel:e,supportedEfforts:t,currentEffort:n,onSelect:r,onCancel:o})=>{const s=rt(()=>buildEffortPickerRows(t),[t]),a=rt(()=>{if(void 0===n)return 0;const e=s.findIndex(e=>e.value===n);return e>=0?e:0},[s,n]),i=rt(()=>Math.max(...s.map((e,t)=>EL(t,e.label).length))+4,[s]),{cursor:l}=useListNavigation({items:s,onSelect:__name(e=>r(e.value),"onSelect"),onCancel:o,initialIndex:a,searchQuery:"",onSearchChange:__name(()=>{},"onSearchChange"),disableSearch:!0,selectByNumber:!0});return Xe.createElement(_D,{title:`Select reasoning effort for ${e}`,hint:"↑/↓ navigate · enter to select · esc to go back"},Xe.createElement(Ge,{flexDirection:"column"},s.map((e,t)=>{const r=t===l,o=e.value===n;return Xe.createElement(Ge,{key:e.label},Xe.createElement(Ve,{color:r||!o?Rx.WHITE:Rx.GREEN,backgroundColor:r?eI:void 0,bold:r||o},EL(t,e.label).padEnd(i)),Xe.createElement(Ve,{color:r?Rx.WHITE:Rx.DIM,backgroundColor:r?eI:void 0},e.description," "),o&&Xe.createElement(Ve,{color:Rx.GREEN}," ",it.tick))})))},"ReasoningEffortSelector");function windowModelGroups(e){const{groups:t,firstSectionBase:n,windowStart:r,windowEnd:o}=e;let s=n;return t.flatMap(e=>{const t=sliceSectionForWindow({section:e.models,sectionBase:s,windowStart:r,windowEnd:o});return s+=e.models.length,t.rows.length>0?[{group:e,groupWindow:t}]:[]})}Ex(),Px(),__name(windowModelGroups,"windowModelGroups");var PL=__name(({onSelect:e,onCancel:t,currentModel:n,currentProvider:r,planId:o,purchasedCredits:s=0,freeCredits:a=0,refreshBanner:i,subtitle:l,skipEffortStep:c=!1})=>{const[d,u]=et(""),[m,p]=et(null),[g,h]=et(()=>new Set),[f,y]=et(()=>new Set),S=rt(()=>isInternalTeamFlagEnforced(),[]),w=S?vo.anthropic.id:Fr.COMMAND,k=r??m??w,v=rt(()=>buildLaneModelPickerGroups({isCoMode:S,activeLane:k}),[S,k]),C=rt(()=>filterModelPickerGroupsByAuth({groups:v,authResolvedProviders:f,unauthedProviders:g}),[v,f,g]),b=rt(()=>filterModelPickerGroups(C,d),[C,d]),E=rt(()=>{const e=new Set(C.map(e=>`${e.providerId}:${e.label}`));return v.filter(t=>!e.has(`${t.providerId}:${t.label}`))},[v,C]),T=rt(()=>filterModelPickerGroups(E,d),[E,d]),P=rt(()=>flattenModelPickerGroups(b),[b]),M=rt(()=>getModelLabelColumnWidth(v.flatMap(e=>e.models)),[v]),[x,I]=et(0),A=useTerminalHeight()-1,R=Math.max(4,A-16-2*b.length),O=void 0!==o,D=rt(()=>O?null:getCachedBillingContext(),[O]),[L,N]=et(D),[$,_]=et(!O&&!D);nt(()=>{if(O)return;if(L)return;let e=!0;return getBillingContext().then(t=>{e&&(N(t),_(!1))}),()=>{e=!1}},[O,L]);const F=!O&&!0===L?.fetchFailed,U=O?o:L?.planId??null,j=O?s:L?.purchasedCredits??0,B=O?a:L?.freeCredits??0,W=n?Math.max(0,P.findIndex(e=>e.model.id===n&&e.providerId===k)):0,[H,G]=et("model"),[V,z]=et(null),{cursor:q,error:K,setError:Y}=useListNavigation({items:P,onSelect:__name(t=>{const n=getSupportedEfforts(t.model.id);if(!c&&n&&n.length>0)return z(t),void G("effort");e(t.model.id,t.providerId)},"onSelect"),onCancel:t,initialIndex:W,searchQuery:d,onSearchChange:u,isActive:"model"===H,validate:__name(e=>validateModelPickerSelection({row:e,unauthedProviders:g,configuredProvider:m,isCoMode:S,accessDataLoading:$,billing:{planId:U,purchasedCredits:j,freeCredits:B},getProviderDisplayName:__name(e=>getProviderConfig(e)?.displayName,"getProviderDisplayName")}),"validate")});nt(()=>{I(e=>clampScrollOffset({cursor:q,total:P.length,maxVisible:R,currentOffset:e}))},[q,P.length,R]);const J=tt(!1),Q=__name(t=>{if(!V||J.current)return;J.current=!0;const{model:r,providerId:o}=V,s=getReasoningEffort(r.id),a=t!==s,l=r.id===n;(async()=>{try{a&&(await setReasoningEffort({modelId:r.id,effort:t}),l&&i?.())}catch(e){dlog(`[Model] Failed to persist reasoning effort: ${e}`)}finally{e(r.id,o)}})()},"handleEffortSelect"),X=__name(()=>{J.current||(z(null),G("model"))},"handleEffortCancel");if(nt(()=>{if($)return;if(K!==mE)return;const e=P[q];Y(e&&!F?getModelPickerAccessError({model:e.model,billing:{planId:U,purchasedCredits:j,freeCredits:B}}):null)},[$,F,K,Y,P,q,U,j,B]),nt(()=>{(async()=>{await isOAuthEnforced()&&p(await getConfiguredProvider())})()},[]),nt(()=>{let e=!0;return(async()=>{const t=new Set(v.map(e=>e.providerId)),n=new Set,r=new Set,o=await Promise.all([...t].map(async e=>{const t=getProviderConfig(e);if(!t?.requiresAuth)return null;if(!t.checkAuth)return{providerId:e,authed:!0};let n=!1;try{n=await t.checkAuth()}catch{n=!1}return{providerId:e,authed:n}}));for(const e of o)e&&(r.add(e.providerId),e.authed||n.add(e.providerId));e&&(y(r),h(n))})(),()=>{e=!1}},[v]),"effort"===H&&V){const e=getSupportedEfforts(V.model.id)??[];return Xe.createElement(TL,{modelLabel:V.model.label,supportedEfforts:e,currentEffort:getReasoningEffort(V.model.id),onSelect:Q,onCancel:X})}const Z=x,ee=x+R,te=windowModelGroups({groups:b,firstSectionBase:0,windowStart:Z,windowEnd:ee}),ne=P.length>R;return Xe.createElement(_D,{title:"Select model",subtitle:l??(S?"Select a model and provider. Sets the default for new sessions; other open sessions are unaffected. Provider is saved.":"Switch between Command Code models. Sets the default for new sessions; other open sessions are unaffected."),footer:Xe.createElement(Ve,{italic:!0,color:Rx.DIM},"type to search · ↑/↓ navigate · enter to select",d?" · esc to clear":" · esc to cancel")},Xe.createElement(Ge,{marginBottom:2,flexDirection:"column",width:"100%"},Xe.createElement(kI,{query:d,resultCount:d?P.length:void 0,placeholder:"Type to search models..."})),0===P.length?Xe.createElement(Ge,{marginY:1},Xe.createElement(Ve,{color:Rx.GRAY},T.length>0?"Provider login required. Run /provider to authenticate.":`No models match "${d}"`)):Xe.createElement(Ge,{flexDirection:"column"},te.map(({group:e,groupWindow:t},r)=>Xe.createElement(Ge,{key:`${e.providerId}-${e.label}`,flexDirection:"column",marginTop:r>0?1:0},S?Xe.createElement(Ve,{bold:!0,color:Ox},e.label):Xe.createElement(Ve,{bold:!0,dimColor:!0},e.label),t.rows.map((r,o)=>Xe.createElement(bL,{key:`${e.providerId}-${e.label}-${r.id}`,model:r,providerId:e.providerId,isHighlighted:t.baseIndex+o===q,isCurrent:r.id===n&&e.providerId===k,showProviderLabel:!!S&&void 0,labelColumnWidth:M}))))),ne&&Xe.createElement(Ge,{marginTop:1},Xe.createElement(Ve,{color:Rx.DIM},"Showing ",Z+1,"–",Math.min(ee,P.length)," of ",P.length,Z>0?" · ↑ more":"",ee<P.length?" · ↓ more":"")),K&&Xe.createElement(Ge,{marginTop:1},Xe.createElement(Ve,{color:Rx.GRAY},K)))},"ModelSelector"),ML=__name(e=>{if(!e)return"Inherit from session";for(const t of pR)for(const n of t.models)if(n.id===e)return n.label;return e},"agentModelLabel"),xL=[{value:"inherit",label:"1. Inherit from session (default)"},{value:"pick",label:"2. Pick a specific model"}],IL=__name(({selectedModel:e,onSelect:t})=>{const[n,r]=et("choice"),[o,s]=et(e?1:0);return Ye((e,n)=>{if(n.upArrow)s(e=>Math.max(0,e-1));else if(n.downArrow)s(e=>Math.min(xL.length-1,e+1));else if("1"!==e)if("2"!==e){if(n.return){const e=xL[o];if(!e)return;"inherit"===e.value?t(null):r("picker")}}else r("picker");else t(null)},{isActive:"choice"===n}),"picker"===n?Xe.createElement(PL,{onSelect:e=>t(e),onCancel:()=>r("choice"),currentModel:e,subtitle:"Pin a model for this agent. It will always run on this model, independent of the session's /model.",skipEffortStep:!0}):Xe.createElement(Ge,{flexDirection:"column"},xL.map((e,t)=>{const n=t===o;return Xe.createElement(Ge,{key:e.value},Xe.createElement(Ve,{color:n?Rx.WHITE:Rx.GRAY,backgroundColor:n?eI:void 0,bold:n},n?">":" "," ",e.label))}),e&&Xe.createElement(Ge,{marginTop:1},Xe.createElement(Ve,{color:Rx.GRAY},"Currently pinned: ",ML(e))),Xe.createElement(kA,{hints:["↑↓ navigate","Enter to select","Inherit follows /model; pinned agents keep their own model and prompt cache"]}))},"AgentModelSelector"),AL=__name(({config:e,onSaveComplete:t,viewOnly:n=!1})=>{const[r,o]=et("idle"),[s,a]=et(""),i=__name(async()=>{if(!e.location||!e.agentType||!e.sysPrompt)return o("error"),void a("Agent configuration is incomplete");o("saving");try{await saveAgentDefinition({runtime:createNodeRuntime(),location:e.location,name:e.agentType,description:e.ccToolDefinition,systemPrompt:e.sysPrompt,selectedTools:[...e.selectedTools],allToolNames:Qf,model:e.model}),t(e.agentType)}catch(e){console.error("Error saving agent:",e),o("error"),a(e instanceof Error?e.message:"Unknown error occurred")}},"handleSaveAgent");Ye((e,t)=>{n||!t.return||"idle"!==r&&"error"!==r||i()});const l=formatAgentToolAccessForDisplay({access:[...e.selectedTools],allToolNames:Qf,displayNameByToolName:ey,displayNameToToolName:ty}),c=e.location&&e.agentType?getAgentDisplayPath({location:e.location,name:e.agentType}):"";return Xe.createElement(Ge,{flexDirection:"column",gap:1},Xe.createElement(Ge,{flexDirection:"column"},Xe.createElement(Ge,{gap:1},Xe.createElement(Ve,{color:Rx.WHITE,bold:!0},"Name:"),Xe.createElement(Ve,{color:Rx.GRAY},e.agentType)),Xe.createElement(Ge,{gap:1},Xe.createElement(Ve,{color:Rx.WHITE,bold:!0},"Location:"),Xe.createElement(Ve,{color:Rx.GRAY},c)),Xe.createElement(Ge,{gap:1},Xe.createElement(Ve,{color:Rx.WHITE,bold:!0},"Tools:"),Xe.createElement(Ve,{color:Rx.GRAY},l)),Xe.createElement(Ge,{gap:1},Xe.createElement(Ve,{color:Rx.WHITE,bold:!0},"Model:"),Xe.createElement(Ve,{color:Rx.GRAY},ML(e.model)))),Xe.createElement(Ge,{gap:1},Xe.createElement(Ve,{color:Rx.WHITE,bold:!0},"Description"),Xe.createElement(Ve,{color:Rx.GRAY},"(Tells ","Command Code"," when to use this agent):")),Xe.createElement(Ve,{color:Rx.GRAY},e.ccToolDefinition),Xe.createElement(Ge,{gap:1},Xe.createElement(Ve,{color:Rx.WHITE,bold:!0},"System Prompt:")),Xe.createElement(Ve,{color:Rx.GRAY},e.sysPrompt),!n&&Xe.createElement(Ge,{marginTop:1},"idle"===r&&Xe.createElement(SA,null,"Press ",Xe.createElement(wA,null,"Enter")," to save ·"," ",Xe.createElement(wA,null,"Esc")," to cancel"),"saving"===r&&Xe.createElement(Ve,{color:Rx.YELLOW},"Saving agent…"),"saved"===r&&Xe.createElement(EO,null,s),"error"===r&&Xe.createElement(Ge,{flexDirection:"column"},Xe.createElement(bO,null,"Error: ",s),Xe.createElement(SA,null,"Press ",Xe.createElement(wA,null,"Enter")," to retry"))))},"AgentSummary"),RL=[{label:"1. Yes, delete",value:"confirm-delete"},{label:"2. No, cancel",value:"cancel"}],OL=__name(({agent:e,onBack:t,setRevalidateAgent:n,isReadOnly:r=!1})=>{const[o,s]=et("menu"),a=new Set(resolveAgentToolSelection({access:e.tools,allToolNames:Qf,displayNameToToolName:ty})),i={location:e.location,method:"manual",agentType:e.name,sysPrompt:e.sysPrompt,ccToolDefinition:e.description,recommendedMethodDescription:"",selectedTools:a,model:e.model??null},l=[{label:"1. View agent",value:"view"},...r?[]:[{label:"2. Delete agent",value:"delete"}],{label:r?"2. Back":"3. Back",value:"back"}],c=__name(e=>{"back"!==e.value?"view"!==e.value?"edit"!==e.value?"delete"===e.value&&s("delete"):s("edit"):s("view"):t()},"handleMenuSelect"),d=__name(async r=>{if("confirm-delete"===r.value)try{await deleteAgentDefinition({runtime:createNodeRuntime(),filePath:e.filePath}),n(!0),t()}catch(e){console.error(`Failed to delete agent: ${e}`),s("menu")}else s("menu")},"handleDeleteSelect");return Ye((e,n)=>{if(n.escape)return"menu"===o?void t():void s("menu");if(n.return&&"view"===o)return void s("menu");if(1!==e.length||e<"1"||e>"9")return;const r=Number(e)-1;if("menu"===o){const e=l[r];return void(e&&c(e))}if("delete"===o){const e=RL[r];e&&d(e)}}),"view"===o?Xe.createElement(_D,{title:e.name,gapAfterHeader:!1,footer:Xe.createElement(SA,null,"Press ",Xe.createElement(wA,null,"Enter")," to go back")},Xe.createElement(AL,{config:i,onSaveComplete:()=>s("menu"),viewOnly:!0})):"edit"===o?Xe.createElement(_D,{title:e.name,gapAfterHeader:!1},Xe.createElement(Ve,{color:Rx.YELLOW},"Edit functionality coming soon..."),Xe.createElement(SA,null,"Press ",Xe.createElement(wA,null,"Esc")," to go back")):"delete"===o?Xe.createElement(_D,{title:"Delete agent",subtitle:`Are you sure you want to delete the agent ${e.name}?`},Xe.createElement(Ge,null,Xe.createElement(SelectInput,{items:RL,onSelect:d,indicatorComponent:zD,itemComponent:VD}))):Xe.createElement(_D,{title:e.name,footer:Xe.createElement(SA,null,"Press ",Xe.createElement(wA,null,"↑↓")," to navigate ·"," ",Xe.createElement(wA,null,"Enter")," to select · ",Xe.createElement(wA,null,"Esc")," ","to go back")},Xe.createElement(SelectInput,{items:l,onSelect:c,indicatorComponent:zD,itemComponent:VD}))},"AgentDetails");Ex();var DL="https://commandcode.ai/docs/core-concepts/custom-agents",LL=__name(({onDone:e})=>(Ye((t,n)=>{n.return&&e()}),Xe.createElement(_D,{title:"Create agents with Command Code",gapAfterHeader:!1,boxProps:{gap:1}},Xe.createElement(Ge,{flexDirection:"column"},Xe.createElement(Ve,{color:Rx.GRAY},"Ask Command Code to create or update subagents for you, e.g."),Xe.createElement(Ve,{color:Rx.GRAY}," ",it.pointerSmall," “create a code-reviewer subagent that reviews diffs for bugs”"),Xe.createElement(Ve,{color:Rx.GRAY}," ",it.pointerSmall," “make a changelog agent that uses a fast model”")),Xe.createElement(Ge,{flexDirection:"column"},Xe.createElement(Ve,{color:Rx.GRAY},"Or edit the files directly:"),Xe.createElement(Ve,{color:Rx.GRAY}," • .commandcode/agents/ (this project)"),Xe.createElement(Ve,{color:Rx.GRAY}," • ~/.commandcode/agents/ (all projects)")),Xe.createElement(Ve,{color:Rx.GRAY},"Docs: ",DL),Xe.createElement(SA,null,"Press ",Xe.createElement(wA,null,"Enter")," to go back and just ask"))),"AskCommandCodeGuide"),NL=__name(({handleSelect:e,createdAgentName:t})=>{const[n,r]=et([]),[o,s]=et([]),[a,i]=et([]),[l,c]=et(!0),[d,u]=et(!1),[m,p]=et(null),[g,h]=et(!1),[f,y]=et(0),[S,w]=et(0),k=useTerminalHeight();nt(()=>{__name(async()=>{c(!0),u(!1);const{personal:e,project:t}=await discoverAgents({runtime:createNodeRuntime()}),n=listDefaultAgentsForDisplay();r(e.map(e=>toDisplayAgent({definition:e,location:"personal"}))),s(t.map(e=>toDisplayAgent({definition:e,location:"project"}))),i(n),c(!1)},"loadAgents")()},[d]);const v=[{label:"1. Create agents with Command Code (recommended)",value:"ask_command_code"},{label:"2. Create manually",value:"create_new_agent"}];n.forEach(e=>{v.push({label:e.name,value:e.filePath})}),o.forEach(e=>{v.push({label:e.name,value:e.filePath})}),a.forEach(e=>{v.push({label:e.name.charAt(0).toUpperCase()+e.name.slice(1),value:e.filePath})});const C=n.length+o.length,b=(n.length>0?1:0)+(o.length>0?1:0)+(a.length>0?1:0),E=__name(e=>e<2?"action":e<2+n.length?"user":e<2+n.length+o.length?"project":"default","sectionOf"),T=k-1,P=Math.max(4,T-12-2*b),M=__name(t=>{if("ask_command_code"===t.value||"create_new_agent"===t.value)return void e(t);const r=[...n,...o,...a].find(e=>e.filePath===t.value);r&&(p(r),h(!0))},"handleAgentSelect");if(Ye((e,t)=>{if(t.upArrow)y(e=>Math.max(0,e-1));else if(t.downArrow)y(e=>Math.min(v.length-1,e+1));else if(t.return){const e=v[f];e&&M(e)}},{isActive:!l&&!g}),nt(()=>{y(e=>Math.min(e,Math.max(0,v.length-1)))},[v.length]),nt(()=>{w(e=>clampScrollOffset({cursor:f,total:v.length,maxVisible:P,currentOffset:e}))},[f,v.length,P]),l)return Xe.createElement(CO,{label:"Loading agents"});if(g&&m){const e=isBuiltinAgentPath(m.filePath);return Xe.createElement(OL,{agent:m,onBack:()=>{h(!1),p(null)},setRevalidateAgent:u,isReadOnly:e})}const x=S,I=S+P,A=v.slice(x,I),R=v.length>P;let O=null;return Xe.createElement(_D,{title:"Agents",titleSuffix:C>0?` (${C} agent${C>1?"s":""})`:" (No custom agents)"},t&&Xe.createElement(Ge,{flexDirection:"column",marginBottom:1},Xe.createElement(Ve,{color:Rx.GREEN,dimColor:!0},"Created agent: ",t)),Xe.createElement(Ge,{flexDirection:"column"},A.map((e,t)=>{const n=x+t,r=E(n),o="action"!==r&&r!==O;O=r;const s=n===f,a="user"===r?"User agents":"project"===r?"Project agents":"Default agents (read-only)";return Xe.createElement(Xe.Fragment,{key:e.value},o&&Xe.createElement(Ge,{marginTop:0===t?0:1},Xe.createElement(Ve,{color:Wx,bold:!0},a)),Xe.createElement(Ge,null,Xe.createElement(Ve,{color:s?Rx.WHITE:Rx.GRAY,backgroundColor:s?eI:void 0,bold:s},s?"> ":" ",e.label," ")))})),R&&Xe.createElement(Ge,{marginTop:1},Xe.createElement(Ve,{color:Rx.DIM},"Showing ",x+1,"–",Math.min(I,v.length)," of ",v.length,x>0?" · ↑ more":"",I<v.length?" · ↓ more":"")),Xe.createElement(Ge,{flexDirection:"column",marginTop:1},Xe.createElement(kA,{hints:["↑↓ navigate","Enter to select","Esc to close"],marginTop:0}),Xe.createElement(Ve,{color:Rx.DIM},"Agents live in .commandcode/agents/ (project) and ~/.commandcode/agents/ (all projects) — edit the files directly anytime."),Xe.createElement(Ve,{color:Rx.DIM},"Docs: ",DL)))},"ManageAgents");Ex(),Px(),Ex(),Ex();var $L=[{label:"1. Project (.commandcode/agents/)",value:"project"},{label:"2. Personal (~/.commandcode/agents/)",value:"personal"}],_L=__name(({onSelect:e})=>Xe.createElement(SelectInput,{items:$L,onSelect:t=>{"project"!==t.value&&"personal"!==t.value||e(t.value)},indicatorComponent:UD,itemComponent:BD}),"LocationSelector");Ex(),Px();var FL=__name(({step:e,agentType:t,sysPrompt:n,ccToolDefinition:r,onAgentTypeChange:o,onSysPromptChange:s,onCCToolDefinitionChange:a,onAgentTypeSubmit:i,onSysPromptSubmit:l,onCCToolDefinitionSubmit:c})=>{const d=t?validateAgentName({name:t,displayNameByToolName:ey}):null,u=usePasteAwareChange({onChange:s}),m=usePasteAwareChange({onChange:a});return"agentType"===e?Xe.createElement(Xe.Fragment,null,Xe.createElement(Ge,{flexDirection:"column"},Xe.createElement(Ve,{color:Rx.WHITE},"Enter a unique identifier for your agent:"),"tool_conflict"===d?.issue&&Xe.createElement(Ve,{color:Rx.RED},it.warning," This name conflicts with an existing tool name. Please choose a different name."),"reserved"===d?.issue&&Xe.createElement(Ve,{color:Rx.RED},it.warning," This name is reserved. Reserved names: ",mS.join(", "))),Xe.createElement(TextInput,{showCursor:!0,value:t||"",onSubmit:()=>{canSubmitAgentManualStep({manualStep:"agentType",config:{agentType:t,sysPrompt:n,ccToolDefinition:r}})&&i()},onChange:o,placeholder:"e.g. code-reviewer, unit-tester"})):"sysPrompt"===e?Xe.createElement(Xe.Fragment,null,Xe.createElement(Ge,{flexDirection:"column"},Xe.createElement(Ve,{color:Rx.WHITE},"Enter the system prompt for your agent:"),Xe.createElement(Ve,{color:Rx.GRAY},"Be comprehensive for best results.")),Xe.createElement(TextInput,{showCursor:!0,value:n||"",onSubmit:()=>{canSubmitAgentManualStep({manualStep:"sysPrompt",config:{agentType:t,sysPrompt:n,ccToolDefinition:r}})&&l()},onChange:u,placeholder:"You are a helpful coding reviewer..."})):"ccToolDefinition"===e?Xe.createElement(Xe.Fragment,null,Xe.createElement(Ve,{color:Rx.WHITE},"When should ","Command Code"," use this agent?"),Xe.createElement(TextInput,{showCursor:!0,value:r,onSubmit:()=>{canSubmitAgentManualStep({manualStep:"ccToolDefinition",config:{agentType:t,sysPrompt:n,ccToolDefinition:r}})&&c()},onChange:m,placeholder:"e.g., Use this agent when you are done writing code..."})):null},"ManualFlow");Ex(),Px();var UL=__name((e,t)=>e?"[x]":"[ ]","categoryCheckbox"),jL=__name(({selectedTools:e,onToggleTool:t,onToggleCategory:n,onComplete:r})=>{const[o,s]=et(!1),[a,i]=et(0),[l,c]=et(0),d=useTerminalHeight(),u=rt(()=>{const e=[];return e.push({type:"continue",value:"continue"}),e.push({type:"divider",value:"divider-1"}),iy.forEach(t=>{e.push({type:"category",value:t.name})}),o?(e.push({type:"divider",value:"divider-3"}),e.push({type:"toggle",value:"hide-advanced"}),e.push({type:"spacer",value:"spacer-1"}),e.push({type:"label",value:"Individual Tools:"}),Qf.forEach(t=>{e.push({type:"tool",value:t})}),e):(e.push({type:"divider",value:"divider-2"}),e.push({type:"toggle",value:"show-advanced"}),e)},[o]),m=u.map((t,n)=>{if("divider"===t.type)return{label:"─".repeat(30),value:n,type:"divider"};if("spacer"===t.type)return{label:"",value:n,type:"spacer"};if("label"===t.type)return{label:t.value,value:n,type:"label"};if("continue"===t.type)return{label:"[ Continue ]",value:n,type:"continue"};if("toggle"===t.type)return{label:"show-advanced"===t.value?"[ Show advanced options ]":"[ Hide advanced options ]",value:n,type:"toggle"};if("category"===t.type){const r=iy.find(e=>e.name===t.value),o=r?.tools.every(t=>e.has(t)),s=r?.tools.some(t=>e.has(t));return{label:`${UL(Boolean(o),Boolean(s))} ${t.value}`,value:n,type:"category"}}return"tool"===t.type?{label:` ${e.has(t.value)?"[x]":"[ ]"} ${ey[t.value]||t.value}`,value:n,type:"tool"}:{label:"",value:n,type:"unknown"}}),p=m.filter(e=>"divider"!==e.type&&"spacer"!==e.type&&"label"!==e.type),g=Math.max(5,d-1-10),h=p[a]?.value??0;nt(()=>{c(e=>clampScrollOffset({cursor:h,total:m.length,maxVisible:g,currentOffset:e}))},[h,m.length,g]);const f=l,y=l+g,S=m.slice(f,y),w=m.length>g;return Ye((e,l)=>{if(l.upArrow)return void i(e=>{const t=e-1;return t<0?p.length-1:t});if(l.downArrow)return void i(e=>{const t=e+1;return t>=p.length?0:t});if(!l.return&&" "!==e)return;const c=p[a];if(!c)return;const d=u[c.value];if(d){if("continue"!==d.type)return"toggle"===d.type?(s(!o),void i(0)):void("category"!==d.type?"tool"===d.type&&t(d.value):n(d.value));r()}}),Xe.createElement(Ge,{flexDirection:"column"},S.map(e=>{const t=p.findIndex(t=>t.value===e.value),n=-1!==t&&t===a;if("divider"===e.type)return Xe.createElement(Ge,{key:`divider-${e.value}`},Xe.createElement(Ve,{color:Rx.GRAY}," ",e.label));if("spacer"===e.type)return Xe.createElement(Ge,{key:`spacer-${e.value}`,height:1});if("label"===e.type)return Xe.createElement(Ge,{key:`label-${e.value}`},Xe.createElement(Ve,{color:Rx.GRAY}," ",e.label));const r="continue"===e.type;return Xe.createElement(Ge,{key:`item-${e.value}`},Xe.createElement(Ve,{color:n?Rx.WHITE:Rx.GRAY,bold:r&&n},n?">":" "," ",e.label))}),w&&Xe.createElement(Ge,null,Xe.createElement(Ve,{color:Rx.GRAY}," ","Showing ",f+1,"–",Math.min(y,m.length)," of"," ",m.length,f>0?" · ↑ more":"",y<m.length?" · ↓ more":"")),Xe.createElement(Ge,{marginTop:1},e.size===Qf.length&&Xe.createElement(Ve,{color:Rx.GRAY},"All tools selected"),e.size>0&&e.size<Qf.length&&Xe.createElement(Ve,{color:Rx.GRAY},e.size," tools selected"),0===e.size&&Xe.createElement(Ve,{color:Rx.GRAY},"No tools selected")))},"ToolsSelector"),BL=__name(({onComplete:e})=>{const[t,n]=et(createAgentCreationState),{step:r,manualStep:o,config:s}=t,a=__name(e=>n(t=>reduceAgentCreation({state:t,event:e})),"dispatch"),i=__name(t=>{a({type:"reset"}),e(t)},"resetToDefaults"),l=__name(()=>{if("location"===r)return"Choose location";if("configuration"===r){if("agentType"===o)return"Agent type (identifier)";if("sysPrompt"===o)return"System prompt";if("ccToolDefinition"===o)return"Description (Tell Command Code when to use this agent)"}return"tools"===r?"Select tools":"model"===r?"Select model":"summary"===r?"Confirm and save":""},"getSubText"),c=__name(e=>{a({type:"select_location",location:e}),a({type:"select_method",method:"manual"})},"handleLocationSelect");return Xe.createElement(_D,{title:"Create new agent",subtitle:l()},Xe.createElement(Ge,null,"location"===r&&Xe.createElement(_L,{onSelect:c}),"configuration"===r&&Xe.createElement(Ge,{flexDirection:"column",gap:1},Xe.createElement(FL,{step:o,agentType:s.agentType,sysPrompt:s.sysPrompt,ccToolDefinition:s.ccToolDefinition,onAgentTypeChange:e=>a({type:"set_agent_type",value:e}),onSysPromptChange:e=>a({type:"set_sys_prompt",value:e}),onCCToolDefinitionChange:e=>a({type:"set_cc_tool_definition",value:e}),onAgentTypeSubmit:()=>a({type:"submit_agent_type"}),onSysPromptSubmit:()=>a({type:"submit_sys_prompt"}),onCCToolDefinitionSubmit:()=>a({type:"submit_cc_tool_definition"})})),"tools"===r&&Xe.createElement(jL,{selectedTools:s.selectedTools,onToggleTool:e=>a({type:"toggle_tool",tool:e}),onToggleCategory:e=>a({type:"toggle_category",category:e}),onComplete:()=>a({type:"complete_tools"})}),"model"===r&&Xe.createElement(IL,{selectedModel:s.model,onSelect:e=>a({type:"select_model",model:e})}),"summary"===r&&Xe.createElement(AL,{config:s,onSaveComplete:i})))},"AgentNew"),WL=__name(({onCancel:e})=>{const[t,n]=et(null),[r,o]=et(null),s=__name(e=>{n(e.value),o(null)},"handleSelect");return Ye((t,n)=>{n.escape&&e()}),Xe.createElement(Ge,{width:"100%",flexDirection:"column"},null===t&&Xe.createElement(NL,{handleSelect:s,createdAgentName:r}),"ask_command_code"===t&&Xe.createElement(LL,{onDone:e}),"create_new_agent"===t&&Xe.createElement(BL,{onComplete:e=>{o(e),n(null)}}))},"AgentsConfig");function isToggleShortcut(e,t){return""===e||!0===t.ctrl&&"b"===e}Ex(),Px(),__name(isToggleShortcut,"isToggleShortcut");var HL=new Set;function requestBackgroundTasksExpand(){for(const e of HL)e()}function formatShellTaskCounts(e){const t=e.filter(e=>"running"===e.status),n=t.filter(e=>"shell"===e.kind).length,r=t.filter(e=>"monitor"===e.kind).length,o=[];return n>0&&o.push(`${n} shell${1===n?"":"s"}`),r>0&&o.push(`${r} monitor${1===r?"":"s"}`),o.join(", ")}function formatPanelSubtitle(e){const t=e.filter(e=>"running"===e.status);if(0===t.length)return"none running";const n=t.filter(e=>"shell"===e.kind).length,r=t.filter(e=>"monitor"===e.kind).length;return n>0&&0===r?`${n} active shell${1===n?"":"s"}`:r>0&&0===n?`${r} active monitor${1===r?"":"s"}`:formatShellTaskCounts(e)}function formatTaskRuntime(e){const t=Date.parse(e.startedAt);if(Number.isNaN(t))return;const n=e.stoppedAt?Date.parse(e.stoppedAt):Date.now();if(Number.isNaN(n))return;const r=Math.max(0,Math.floor((n-t)/1e3)),o=Math.floor(r/3600),s=Math.floor(r%3600/60),a=r%60;return o>0?`${o}h ${s}m ${a}s`:s>0?`${s}m ${a}s`:`${a}s`}function useShellTaskSnapshot(){const[e,t]=et(()=>listShellTasks({includeStopped:!0}));return nt(()=>{const e=setInterval(__name(()=>t(listShellTasks({includeStopped:!0})),"refresh"),1e3);return()=>clearInterval(e)},[]),e}__name(requestBackgroundTasksExpand,"requestBackgroundTasksExpand"),__name(formatShellTaskCounts,"formatShellTaskCounts"),__name(formatPanelSubtitle,"formatPanelSubtitle"),__name(formatTaskRuntime,"formatTaskRuntime"),__name(useShellTaskSnapshot,"useShellTaskSnapshot");var GL=getShellTaskLabel,VL=getShellTaskStatusText,zL=getVisibleShellTasks,qL=latestShellTaskOutputLines,KL={running:Rx.CYAN,completed:Rx.GREEN,failed:Rx.RED,"auto-stopped":Rx.YELLOW,stopped:Rx.GRAY};function getStatusColor(e){return KL[getShellTaskStatusTone(e)]}function TaskRow({task:e,selected:t}){const n=truncateString2({text:GL(e),maxChars:56}),r=t?eI:void 0;return Xe.createElement(Ge,null,Xe.createElement(UD,{isSelected:t,backgroundColor:r}),Xe.createElement(Ve,{color:t?DD:void 0,backgroundColor:r}," ",n),Xe.createElement(Ve,{color:Rx.DIM,backgroundColor:r}," ","(",VL(e),")"))}function TaskGroup({title:e,tasks:t,selectedTaskId:n}){return 0===t.length?null:Xe.createElement(Ge,{flexDirection:"column",marginTop:1},Xe.createElement(Ve,{color:Rx.DIM,bold:!0},e," (",t.length,")"),t.map(e=>Xe.createElement(TaskRow,{key:e.id,task:e,selected:e.id===n})))}function TaskDetailsBody({task:e,output:t}){const n=qL(t,10),r=formatTaskRuntime(e);return Xe.createElement(Ge,{flexDirection:"column"},Xe.createElement(Ge,null,Xe.createElement(Ve,{bold:!0},"Status: "),Xe.createElement(Ve,{color:getStatusColor(e)},VL(e))),void 0!==r&&Xe.createElement(Ge,null,Xe.createElement(Ve,{bold:!0},"Runtime: "),Xe.createElement(Ve,null,r)),Xe.createElement(Ge,null,Xe.createElement(Ve,{bold:!0},"Script: "),Xe.createElement(Ve,{wrap:"wrap"},e.command)),Xe.createElement(Ge,{flexDirection:"column",marginTop:1},Xe.createElement(Ve,{bold:!0},"Output:"),Xe.createElement(Ge,{flexDirection:"column",borderStyle:"single",borderColor:Rx.DIM,paddingX:1},n.length>0?n.map((t,n)=>Xe.createElement(Ve,{key:`${e.id}-${n}`},truncateString2({text:t,maxChars:100}))):Xe.createElement(Ve,{color:Rx.DIM},"No output yet.")),Xe.createElement(Ve,{italic:!0,color:Rx.DIM},"Showing ",n.length," line",1===n.length?"":"s")))}function BackgroundTasksPanel({onExpandedChange:e}={}){const t=useShellTaskSnapshot(),n=t.filter(e=>"running"===e.status),[r,o]=et(!1),[s,a]=et("list"),[i,l]=et(0),[c,d]=et(""),u=rt(()=>zL(t),[t]),m=u[i]??u[0];nt(()=>{e?.(r)},[r,e]),nt(()=>{const e=__name(()=>{a("list"),o(!0)},"listener");return HL.add(e),()=>{HL.delete(e)}},[]),nt(()=>{if(0===u.length)return o(!1),a("list"),void l(0);l(e=>Math.min(e,Math.max(0,u.length-1)))},[u.length]),nt(()=>{if(!r||"details"!==s||!m)return void d("");const e=readShellTaskOutputTail({taskId:m.id,maxBytes:4096});d(e?.content??"")},[r,s,m?.id,t]);const p=__name(()=>{o(!1),a("list")},"closePanel");if(Ye((e,t)=>isToggleShortcut(e,t)&&(n.length>0||r)?(a("list"),void o(e=>!e)):r?"details"===s?t.leftArrow?void a("list"):t.escape||t.return||" "===e?void p():void("x"===e&&"running"===m?.status&&stopShellTaskById(m.id)):void(t.escape||t.leftArrow?p():0!==u.length&&(t.upArrow?l(e=>Math.max(0,e-1)):t.downArrow?l(e=>Math.min(u.length-1,e+1)):t.return&&m?a("details"):"x"===e&&"running"===m?.status&&stopShellTaskById(m.id))):void 0,{isActive:n.length>0||r}),!r)return null;if("details"===s&&m)return Xe.createElement(_D,{title:"monitor"===m.kind?"Monitor details":"Shell details",titleColor:Rx.CYAN,ruleColor:Rx.CYAN,subtitle:truncateString2({text:GL(m),maxChars:80}),hint:"← to go back · Esc/Enter/Space to close · x to stop",boxProps:{marginTop:1,marginBottom:1}},Xe.createElement(TaskDetailsBody,{task:m,output:c}));const g=u.filter(e=>"monitor"===e.kind),h=u.filter(e=>"shell"===e.kind),f=g.length>0&&h.length>0;return Xe.createElement(_D,{title:"Background",titleColor:Rx.CYAN,ruleColor:Rx.CYAN,subtitle:formatPanelSubtitle(t),hint:"↑/↓ to select · Enter to view · x to stop · ←/Esc to go back to feed",gapAfterHeader:!1,boxProps:{marginTop:1,marginBottom:1}},f?Xe.createElement(Xe.Fragment,null,Xe.createElement(TaskGroup,{title:"Monitors",tasks:g,selectedTaskId:m?.id}),Xe.createElement(TaskGroup,{title:"Shells",tasks:h,selectedTaskId:m?.id})):Xe.createElement(Ge,{flexDirection:"column",marginTop:1},u.map(e=>Xe.createElement(TaskRow,{key:e.id,task:e,selected:e.id===m?.id}))))}__name(getStatusColor,"getStatusColor"),__name(TaskRow,"TaskRow"),__name(TaskGroup,"TaskGroup"),__name(TaskDetailsBody,"TaskDetailsBody"),__name(BackgroundTasksPanel,"BackgroundTasksPanel"),Ex(),Px();var YL=[{label:"Compact Normal (default)",value:"default",description:"Summarize session when context limit reached."},{label:"Compact Fast",value:"fast",description:"Fast tiered compaction. Higher quality, uses more tokens."}],JL=__name(({onSelect:e,onCancel:t})=>{const[n,r]=et(null);nt(()=>{loadUserConfig().then(e=>{r(e.compactMode??"default")})},[]);const o=__name(t=>{e(t.value)},"handleSelect");if(Ye((e,n)=>{n.escape&&t()}),null===n)return null;const s=YL.findIndex(e=>e.value===n);return Xe.createElement(_D,{title:"Select a compact mode to compact sessions",subtitle:"Choose how Command Code handles automatic context compaction.",footer:Xe.createElement(Ve,{italic:!0,color:Rx.DIM},"Press ",Xe.createElement(Ve,{bold:!0},"Esc")," to cancel")},Xe.createElement(SelectInput,{items:YL,onSelect:o,initialIndex:s>=0?s:0,indicatorComponent:zD,itemComponent:({isSelected:e,label:t})=>{const r=YL.find(e=>e.label===t),o=r?.value===n,s=YL.findIndex(e=>e.label===t);return Xe.createElement(Ge,{flexDirection:"column"},Xe.createElement(Ge,null,Xe.createElement(GD,{isSelected:e,idleColor:o?Rx.GREEN:Rx.WHITE,bold:e||o},` ${s+1}. ${r?.label??t} `),o&&Xe.createElement(WD,null)),Xe.createElement(GD,{isSelected:e,idleColor:Rx.DIM,bold:!1},` ${r?.description??""} `))}}))},"CompactModeSelector");Ex(),Ex(),Px();var QL=["·","○","◇","☆","✧","☆","◇","○","⌘"],XL=[12,5,4,4,4,4,4,5,16],ZL=[5,4,4,4,4,4,5];function getWaveSymbol(e){const t=e%88;let n=0;for(let e=0;e<XL.length;e++)if(n+=XL[e],t<n)return QL[e];const r=t-58;n=0;for(let e=0;e<ZL.length;e++)if(n+=ZL[e],r<n)return QL[7-e];return QL[0]}function ShimmerText({text:e,offset:t,bg:n}){const r=rt(()=>e.split(""),[e]),o=__name(e=>{const n=e-(t-5);return n>=0&&n<Jx.length?Jx[n]:Qx},"getCharColor");return Xe.createElement(Ve,null,r.map((e,t)=>Xe.createElement(Ve,{key:`${t}:${e}`,color:o(t),backgroundColor:n},e)))}function CMDIcon({frame:e,color:t}){return Xe.createElement(Ve,{color:t??Ox,bold:!0},`${getWaveSymbol(e)} `)}__name(getWaveSymbol,"getWaveSymbol"),__name(ShimmerText,"ShimmerText"),__name(CMDIcon,"CMDIcon");var eN=formatStatusTokenCount,tN=formatElapsedMs,nN=__name(({status:e,timeElapsed:t,tokens:n})=>{const[r,o]=et(0),[s,a]=et(n),i=tt(n);i.current=n;const l=getTerminalWidth(),[c,d]=et(()=>l>=72?"all":l>=42?"medium":"none");nt(()=>{d(e=>"all"===e?l<68?l>=42?"medium":"none":"all":"medium"===e?l>=72?"all":l<38?"none":"medium":l>=72?"all":l>=42?"medium":"none")},[l]),nt(()=>{const e=setInterval(()=>{o(e=>(e+1)%88),a(e=>{const t=i.current;if(e===t)return e;const n=t-e,r=e+Math.sign(n)*Math.max(1,Math.ceil(Math.abs(n)/10));return n>0?Math.min(r,t):Math.max(r,t)})},80);return()=>clearInterval(e)},[]);const u=r%(e.length+10),m="all"===c,p="medium"===c;return _I.statusRender({width:l,layoutMode:c,status:e,frame:r}),Xe.createElement(Ge,{width:l,height:1,paddingLeft:0,marginLeft:0},Xe.createElement(Ge,{flexShrink:0},Xe.createElement(Ve,{backgroundColor:Fx.BG,color:Fx.FG}," "),Xe.createElement(Ve,{backgroundColor:Fx.BG},Xe.createElement(CMDIcon,{frame:4*r,color:Fx.FG})),Xe.createElement(ShimmerText,{text:e,offset:u,bg:Fx.BG}),Xe.createElement(Ve,{backgroundColor:Fx.BG,color:Fx.FG}," ")),m&&Xe.createElement(Ge,{columnGap:1,marginLeft:1},Xe.createElement(Ve,{bold:!0,color:Rx.GRAY},"esc"),Xe.createElement(Ve,{color:Rx.DIM},"to interrupt"),Xe.createElement(Ve,{color:Rx.DIM},"•"),Xe.createElement(Ve,{color:Rx.DIM},tN(t)),Xe.createElement(Ve,{color:Rx.DIM},"•"),Xe.createElement(Ve,{color:Rx.GRAY},it.arrowDown),Xe.createElement(Ve,{color:Rx.DIM},eN(Math.round(s)))),p&&Xe.createElement(Ge,{marginLeft:1},Xe.createElement(Ve,{color:Rx.DIM},eN(Math.round(s)))))},"Status");function useExternalEditor({input:e,setInput:t,setInputKey:n,detectedContent:r,setDetectedContent:o,onEditorClose:s}){const[a,i]=et(!1),[l,c]=et(null),d=ot(async()=>{if(!a){i(!0),c(null);try{const a=resolvePastedTextTokens({input:e.replace(/\n+$/,""),detectedContent:r}),i=await openInEditor(a);t(i),o([]),n(e=>e+1),s?.()}catch(e){if(e instanceof wh)return void c("No text editor found. Set your EDITOR environment variable.\n\nSee: https://commandcode.ai/docs/core-concepts/interactive-mode#setting-up-your-editor");c(`Editor error: ${e instanceof Error?e.message:String(e)}`)}finally{i(!1)}}},[e,t,n,r,o,s,a]),u=ot(()=>{c(null)},[]);return{isEditorOpen:a,editorError:l,handleOpenInEditor:d,clearEditorError:u}}Ex(),Px(),Ex(),Px(),__name(useExternalEditor,"useExternalEditor"),Ex(),Px();var rN=__name((e={})=>{const{enabled:t=!0,paused:n=!1}=e,[r,o]=et(null),[s,a]=et(!1),[i,l]=et({visible:!1,type:"connected"}),c=tt(null);null===c.current&&(c.current=IC({onConnectedChange:a,onContext:o,onIndicatorChange:l}));const d=c.current;nt(()=>{d.setPaused(n)},[d,n]),nt(()=>{if(t)return d.start(),()=>{d.stop()}},[t,d]);const u=dC(),m=u?LC[u]??"IDE":"IDE",p={visible:i.visible,message:"connected"===i.type?`${m} ${it.tick}`:"run /ide",type:i.type};return{context:r,connected:s,refresh:d.refresh,connectionIndicator:p}},"useVSCodeContext");Ex(),Px();var oN=__name((e={})=>{const{enabled:t=!0}=e,[n,r]=et(null),o=tt(!1);return nt(()=>{if(!t||o.current)return;let e=!0;return o.current=!0,detectPR().then(t=>{e&&r(t)}),()=>{e=!1}},[t]),{pr:n}},"usePRDetection");function pushEntry(e,t){e.push(t),e.length>50&&e.shift()}function commitBurst({stack:e,burstStart:t,inBurst:n,timer:r}){r.current&&(clearTimeout(r.current),r.current=null),n.current=!1,pushEntry(e,t)}function useUndoStack({input:e,setInput:t,initialCursorRef:n,incrementInputKey:r}){const o=tt([]),s=tt(""),a=tt(!1),i=tt(null),l=tt(!1),c=tt("");return nt(()=>{if(l.current)return l.current=!1,void(c.current=e);if(e===c.current)return;const t=c.current;return c.current=e,a.current||(s.current=t,a.current=!0),i.current&&clearTimeout(i.current),i.current=setTimeout(()=>{a.current=!1,i.current=null,pushEntry(o.current,s.current)},400),()=>{i.current&&(clearTimeout(i.current),i.current=null)}},[e]),{commitUndo:__name(()=>{a.current&&commitBurst({stack:o.current,burstStart:s.current,inBurst:a,timer:i});const e=o.current.pop();void 0!==e&&(l.current=!0,t(e),n.current=e.length,r())},"commitUndo")}}function getCommandHintLayout(e){const t=getCommandMenuDescriptionWidth(e.terminalWidth);return{descriptionWidth:t,text:truncateString2({text:e.text,maxChars:t})}}function getModelHintText(e){return formatCurrentModelHint({modelId:e,findModelById:findModelById})}Ex(),__name(pushEntry,"pushEntry"),__name(commitBurst,"commitBurst"),__name(useUndoStack,"useUndoStack"),Ex(),Px(),__name(getCommandHintLayout,"getCommandHintLayout"),__name(getModelHintText,"getModelHintText"),Ex(),Px();var sN=createNodeRuntime(),aN=__name(({onSelectFile:e,onClose:t,searchQuery:n=""})=>{const[r,o]=et(()=>process.cwd()),[a,i]=et([]),[l,c]=et(0),[d,u]=et(0),m=n.trim()?15:10;nt(()=>{invalidateFileIndex()},[]),nt(()=>{let e=!1;return __name(async()=>{if(n.trim()){const t=await searchFiles({runtime:sN,searchTerm:n,basePath:process.cwd()});if(e)return;return i(t),c(0),void u(0)}try{const t=await browseDirectory({runtime:sN,dirPath:r,basePath:process.cwd()});if(e)return;i(t),c(0),u(0)}catch{}},"run")(),()=>{e=!0}},[r,n]),Ye((r,i)=>{if(i.escape)t();else if(i.upArrow)c(e=>{const t=Math.max(0,e-1);return t<d&&u(t),t});else if(i.downArrow)c(e=>{const t=Math.min(a.length-1,e+1);return t>=d+m&&u(t-m+1),t});else{if(i.rightArrow){const e=a[l];if(!e)return;return void(e.isDirectory&&!n.trim()&&o(s(e.path)))}if(i.return){const t=a[l];if(!t)return;return void e(t.path)}}});const p=a.slice(d,d+m);return Xe.createElement(Ge,{flexDirection:"column",paddingLeft:1},Xe.createElement(Ge,{marginBottom:1},Xe.createElement(Ve,{color:Rx.DIM},n.trim()?`Searching for: "${n}"`:`Files: ${r}`)),0===p.length?Xe.createElement(PO,{message:n.trim()?`No files found matching "${n}"`:"No files found in this directory"}):p.map((e,t)=>{const n=d+t,r=e.name,o=n===l;return Xe.createElement(Ve,{key:e.path,color:o?DD:Rx.DIM,bold:o&&isLightTheme()},e.isDirectory?`${r}/`:r)}),Xe.createElement(kA,{hints:["↑↓ navigate",!n.trim()&&"→ to open folder","Enter to select","Esc to close"]}))},"FileList");Ex(),Px();var iN=__name(()=>Xe.createElement(Ge,{paddingRight:3},Xe.createElement(Ve,{color:Rx.DIM,wrap:"truncate"},it.pointerSmall," ","stashed")),"StashBadge"),lN=__name(({tasteLearningOn:e,showSeparator:t=!0})=>null==e?null:Xe.createElement(Xe.Fragment,null,t&&Xe.createElement(Ve,{color:Rx.DIM}," · "),Xe.createElement(Ve,{color:e?Dx.TEXT:Rx.DIM},"taste ",e?"on":"off")),"TasteStateBadge");function useBackgroundTasksSummary(){const[e,t]=et(()=>formatShellTaskCounts(listShellTasks({includeStopped:!1})));return nt(()=>{const e=setInterval(__name(()=>t(formatShellTaskCounts(listShellTasks({includeStopped:!1}))),"refresh"),1e3);return()=>clearInterval(e)},[]),e}__name(useBackgroundTasksSummary,"useBackgroundTasksSummary");var cN=__name(({showSeparator:e=!0,armed:t=!1})=>{const n=useBackgroundTasksSummary();return n?Xe.createElement(Xe.Fragment,null,e&&Xe.createElement(Ve,{color:Rx.DIM}," · "),t?Xe.createElement(Xe.Fragment,null,Xe.createElement(Ve,{color:Rx.CYAN,inverse:!0},` ${n} `),Xe.createElement(Ve,{color:Rx.DIM}," · Enter to open")):Xe.createElement(Xe.Fragment,null,Xe.createElement(Ve,{color:Rx.CYAN},n),Xe.createElement(Ve,{color:Rx.DIM}," · ↓ to manage"))):null},"BackgroundTasksBadge"),dN=__name(({indicator:e,showSeparator:t=!0})=>e?.visible?Xe.createElement(Xe.Fragment,null,t&&Xe.createElement(Ve,{color:Rx.DIM}," · "),Xe.createElement(Ve,{color:"connected"===e.type?Rx.GREEN:Rx.YELLOW},e.message)):null,"ConnectionIndicatorBadge"),uN=__name(({termWidth:e,indicatorText:t,isIDEIndicator:n,permissionMode:r="default",prInfo:o,contextUsage:s,connectionIndicator:a,pendingExitKey:i,updateStatus:l,updateFailedInfo:c,currentProvider:d,showProviderInfo:u,isBashMode:m,shareInfo:p,showShareNotification:g,unshareNotificationMessage:h,tasteNotificationMessage:f,creditWarning:y,hasStashedPrompt:S,tasteLearningOn:w,backgroundTasksArmed:k})=>{const v=e>=60;return Xe.createElement(Xe.Fragment,null,Xe.createElement(Ge,{flexDirection:"column",paddingLeft:2},"auto-accept"!==r&&"plan"!==r&&"bypass"!==r&&"dont-ask"!==r||i?Xe.createElement(Ge,{flexDirection:"row",justifyContent:"space-between",width:e-1},Xe.createElement(Ge,{flexDirection:"row",columnGap:0},n&&!i?Xe.createElement(Ve,{color:Bx},t):Xe.createElement(hI,{mode:r,pendingExitKey:i}),!i&&Xe.createElement(yI,{prInfo:o}),!i&&Xe.createElement(dN,{indicator:a}),!i&&v&&Xe.createElement(lN,{tasteLearningOn:w}),!i&&Xe.createElement(cN,{armed:k})),(v||S)&&Xe.createElement(Ge,{flexDirection:"column",alignItems:"flex-end"},S?Xe.createElement(iN,null):null,!S&&v&&s&&Xe.createElement(sI,{usage:s}))):Xe.createElement(Xe.Fragment,null,Xe.createElement(Ge,{flexDirection:"row",justifyContent:"space-between",width:e-1},Xe.createElement(hI,{mode:r}),S?Xe.createElement(iN,null):null),Xe.createElement(Ge,{flexDirection:"row",justifyContent:"space-between",width:e-1},Xe.createElement(Ge,{flexDirection:"row",columnGap:0},Xe.createElement(Ve,{color:n?Bx:Rx.DIM},t),Xe.createElement(yI,{prInfo:o}),Xe.createElement(dN,{indicator:a}),v&&Xe.createElement(lN,{tasteLearningOn:w}),Xe.createElement(cN,{armed:k})),Xe.createElement(Ge,{flexDirection:"row",columnGap:2},v&&s&&Xe.createElement(sI,{usage:s})))),(l||c||u&&d)&&Xe.createElement(Ge,{flexDirection:"row",columnGap:1},l&&Xe.createElement(Ve,null,it.tick," ","Command Code"," updated:"," ",Xe.createElement(Ve,{color:Rx.DIM},"v",l.updatedFrom),Xe.createElement(Ve,{color:Rx.DIM}," ",it.arrowRight," "),Xe.createElement(Ve,null,"v",l.updatedTo)),!l&&c&&Xe.createElement(Ve,{color:Rx.YELLOW,dimColor:!0},it.info," Update available:"," ",c.currentVersion," ",it.arrowRight," ",c.latestVersion),u&&d&&Xe.createElement(Ve,{color:Rx.GREEN,dimColor:!0},it.bullet," Provider:"," ",getProviderDisplayName(d)))),m&&Xe.createElement(Ge,{paddingLeft:2},Xe.createElement(Ve,{color:Rx.GREEN},"! for bash mode")),g&&p&&Xe.createElement(Ge,{paddingLeft:2},Xe.createElement(Ve,{color:Ox},"SHARED: ",p.url," (copied to clipboard)")),h&&Xe.createElement(Ge,{paddingLeft:2},Xe.createElement(Ve,{color:h.includes("NOT SHARED")?Rx.RED:Ox},h)),f&&Xe.createElement(Ge,{paddingLeft:2},Xe.createElement(Ve,{color:Ox},f)),y&&Xe.createElement(Ge,{paddingLeft:2},Xe.createElement(Ve,{color:Rx.YELLOW},it.warning," ",y)))},"BottomIndicator"),mN=["","[118;5u","[118;5u"];function removeAltPCharacter(e){return e.includes("π")?e.replace(/π/g,""):null}function buildFileMentionInput(e){const{currentInput:t,mentionPath:n,isSearchMode:r}=e;if(!r)return`${t}${n} `;const o=t.lastIndexOf("@");return-1===o?`${n} `:`${t.substring(0,o+1)}${n} `}__name(removeAltPCharacter,"removeAltPCharacter"),__name(buildFileMentionInput,"buildFileMentionInput");var pN=__name(()=>Xe.createElement(Ge,{flexDirection:"column",paddingLeft:1},Xe.createElement(Ve,{color:Rx.DIM,bold:!0},"Available Shortcuts:"),Xe.createElement(Ge,{columnGap:4},Xe.createElement(Ge,{flexDirection:"column"},Xe.createElement(Ve,{color:Rx.DIM},"! for bash mode"),Xe.createElement(Ve,{color:Rx.DIM},"/ for commands"),Xe.createElement(Ve,{color:Rx.DIM},"@ for file paths"),Xe.createElement(Ve,{color:Rx.DIM},getModeToggleShortcutHint()," to toggle auto-accept")),Xe.createElement(Ge,{flexDirection:"column"},Xe.createElement(Ve,{color:Rx.DIM},"double tap esc to clear input"),Xe.createElement(Ve,{color:Rx.DIM},"ctrl + j / shift + ⏎ for newline"),Xe.createElement(Ve,{color:Rx.DIM},"ctrl + g to open in editor"),Xe.createElement(Ve,{color:Rx.DIM},"ctrl + z to undo"),Xe.createElement(Ve,{color:Rx.DIM},"ctrl + s to stash prompt")))),"ShortcutMenu"),gN=__name(({input:e,onSubmit:t,setInput:n,showCursor:r=!0,placeholder:o="Enter your input…",showFileList:s,setShowFileList:i,fileSearchQuery:l,setFileSearchQuery:c,onCommand:d,contextUsage:u,tasteLearningOn:m,tasteUsage:p=!1,shareInfo:g,showShareNotification:h,unshareNotificationMessage:f,tasteNotificationMessage:y,creditWarning:S,updateStatus:w,updateFailedInfo:k,currentProvider:v,currentModel:C,showProviderInfo:b,permissionMode:E="default",onToggleAutoAccept:T,hintMessage:P,historyManager:M,pendingExitKey:x=null,onOverlayVisibilityChange:I,onDoubleEscapeEmpty:A,onAltP:R,isProcessing:O=!1,ideContextEnabled:D=!0})=>{const[L,N]=et(0),[$,_]=et(!1),[F,U]=et(!1),[j,B]=et(!1),[W,H]=et(""),[G,V]=et(null),z=tt(0),q=tt(0),[K,Y]=et([]),[J,Q]=et([]),[X,Z]=et(null),ee=tt(!1),te=tt(!1),[ne,re]=et(!1),oe=tt(!1),se=ot(e=>{oe.current=e,re(e)},[]),ae=tt(!1),ie=tt(void 0),[le,ce]=et(-1),[de,ue]=et(""),me=tt(0),{commitUndo:pe}=useUndoStack({input:e,setInput:n,initialCursorRef:ie,incrementInputKey:__name(()=>N(e=>e+1),"incrementInputKey")}),{isEditorOpen:ge,editorError:he,handleOpenInEditor:fe,clearEditorError:ye}=useExternalEditor({input:e,setInput:n,setInputKey:N,detectedContent:K,setDetectedContent:Y,onEditorClose:__name(()=>{ee.current=!1},"onEditorClose")}),Se=rt(()=>shouldCollapsePastedText(),[]),{handlePaste:we,resetPasteState:ke,isPasting:ve}=useBracketedPaste({input:e,setInput:n,setDetectedImages:Q,setDetectedContent:Y,incrementInputKey:__name(()=>N(e=>e+1),"incrementInputKey"),setInitialCursor:__name(e=>{ie.current=e},"setInitialCursor"),collapsePastedText:Se,nextImageNumber:nextImagePasteNumber(J)}),Ce=tt(()=>{});Ce.current=t=>{ge||(async()=>{const n=me.current,r=e.slice(0,n),o=e.slice(n);await we(`${r}[200~${t}[201~${o}`)&&(ae.current=!0)})()},nt(()=>registerPasteConsumer(e=>Ce.current(e)),[]);const be=tt(new Map),Ee=rt(()=>{const e=be.current,t=new Map,n=new Map;for(const r of J){const o=e.has(r)?e.get(r)??null:saveTempImage(r.image,r.imageNumber);t.set(r,o),n.set(r.imageNumber,o)}return be.current=t,n},[J]),{skills:Te,customMenuItems:Pe}=useSlashMenuData(),Me=rt(()=>{const e=resolveSlashMenuItems({searchQuery:"",customMenuItems:Pe,skills:Te,showProviderCommand:!0,showTerminalSetupCommand:isVSCodeTerminal2()});return new Set([...e.map(e=>e.command),...Te.map(e=>buildSkillNamespacedCommand(e.name))])},[Te,Pe]),xe=ot(e=>Me.has(e),[Me]),{context:Ie,connected:Ae,refresh:Re,connectionIndicator:Oe}=rN({enabled:D,paused:O}),{stdout:De}=qe(),Le=De?.columns??80,{pr:Ne}=oN();nt(()=>{const e=s||j;I?.(e)},[s,j,I]),nt(()=>{if(!ae.current)return;ae.current=!1;const t=Vh(e);!j&&t.showCommandMenu||(B(t.showCommandMenu),H(t.showCommandMenu?t.commandSearchQuery:""))},[e,j]);const $e=ot(()=>{Q([])},[]),_e=ot(()=>{B(!1),V(null)},[]),Fe=ot(()=>{_e(),H(""),i(!1),c(""),ce(-1),ue(""),ie.current=void 0,N(e=>e+1)},[_e,c,i]),Ue=ot(t=>!(null===X||!t?.replaceCurrentInput&&e.trim().length>0||(ee.current=!0,n(X),Z(null),Fe(),setTimeout(()=>{ee.current=!1},0),0)),[e,Fe,n,X]),je=ot(()=>{n(""),U(!1),_e(),H(""),Y([]),$e(),ke(),ce(-1),ue(""),N(e=>e+1)},[n,ke,$e,_e]),Be=ot(()=>{ee.current=!0;const{text:t,cursor:r}=insertTextAt(e,me.current,"\n");n(t),ie.current=r,N(e=>e+1),setTimeout(()=>{ee.current=!1},0)},[e,n]);Ye(async(t,r)=>{if(oe.current&&!r.downArrow&&!r.return&&"\r"!==t&&(se(!1),r.upArrow))return;if(r.upArrow){if(s||j)return;const t=e.indexOf("\n"),r=-1===t||me.current<=t;if(0!==e.length&&-1===le&&!r)return;const o=M?.count()??0;if(0===o)return;-1===le&&ue(e);const a=Math.min(le+1,o-1);return void(a!==le&&(ce(a),n(M?.getAt(a)||""),N(e=>e+1)))}if(r.downArrow){if(s||j)return;if(-1===le){const t=e.lastIndexOf("\n"),n=-1===t||me.current>t;return void((0===e.length||n)&&listShellTasks().some(e=>"running"===e.status)&&se(!0))}const t=e.lastIndexOf("\n");if(!(-1===t||me.current>t))return;const r=le-1;return ce(r),n(-1===r?de:M?.getAt(r)||""),void N(e=>e+1)}if(""===t||r.ctrl&&"c"===t)return void $e();if(isCtrlKey({inputChar:t,key:r,letter:"g",ctrlCode:7}))return ee.current=!0,void fe();if(isCtrlKey({inputChar:t,key:r,letter:"s",ctrlCode:19})){const t=e.trim().length>0;if(!t&&null===X)return;if(!t&&Ue())return;ee.current=!0;const r=X??"";return Z(t?e:null),n(r),Fe(),void setTimeout(()=>{ee.current=!1},0)}if(getIsExpandToolShortcut(r,t))return ee.current=!0,n(e),N(e=>e+1),void setTimeout(()=>{ee.current=!1},0);if(isNewlineShortcutKey({inputChar:t,key:r,isPasting:ve()}))return te.current=!0,Be(),void setTimeout(()=>{te.current=!1},0);if(r.meta&&"w"===t)return ee.current=!0,void je();const o=r.ctrl&&"v"===t||mN.includes(t),a=r.meta&&"v"===t;if(o||a){if(o&&"darwin"===process.platform){const t=e;ee.current=!0;const r=await detectClipboardImage();if(r){const e=nextImagePasteNumber(J),{text:o,cursor:s}=insertTextAt(t,me.current,imagePasteToken(e));Q(t=>[...t,{imageNumber:e,image:r}]),n(o),ie.current=s,N(e=>e+1)}return void(ee.current=!1)}}else if(!r.ctrl&&!r.meta||"u"!==t)if(r.ctrl&&"z"===t?.toLowerCase())pe();else{if(r.escape){if(j)return;const t=Date.now();return t-z.current<500?(e.length>0?je():A?.(),z.current=0,q.current=0,_(!1),void U(!1)):(z.current=t,$||F||(q.current=t),_(!1),void U(!1))}$&&(r.backspace||r.delete)&&0===e.length&&_(!1)}});const We=ot(async t=>{if(ge)return;const r=removeAltPCharacter(t);if(null!==r)return n(r),void R?.();const o=processBracketedPaste(t),a=findInsertion({before:e,after:t}),d=null!==a&&looksLikeDroppedImagePath(a.text);if((o.isPasteStart||o.isPasteEnd||d||ve())&&await we(t))return void(ae.current=!0);if(ee.current)return void(ee.current=!1);-1!==le&&ce(-1),Q(e=>{if(0===e.length)return e;const n=prunePastedImages({input:t,images:e});return n===e?e:[...n]});const u=1===t.length,m=t.slice(-1);if(u){if("?"===m&&!$)return _(!0),n(""),void N(e=>e+1);if("!"===m&&!F)return _(!1),U(!0),n(""),void N(e=>e+1)}const p=Vh(t),g=t.length<e.length&&!e.startsWith(t),h=!g&&t.length<e.length,f=t.length===e.length+1||h,y=zh({canOpenMenu:f,deletedFromMiddle:g,menuState:p,showCommandMenu:j});j===y&&W===p.commandSearchQuery||(B(y),H(y?p.commandSearchQuery:""));const S=reduceFileMentionInput({prevInput:e,nextInput:t,state:{showFileList:s,query:l}});S.showFileList!==s&&i(S.showFileList),S.query!==l&&c(S.query),$&&(t!==e||t.length<e.length)&&_(!1),he&&ye(),0===t.length&&(U(!1),_e(),H(""),Y([]),c(""),ke()),n(t)},[$,e,n,s,i,l,c,j,W,F,le,we,ke,ve,R,he,ye,ge,_e]),He=ot(async()=>{if(Re(),q.current=0,$)return void _(!1);const r=e.trim(),o=!F&&r.startsWith("/");let s=r;!F&&K.length>0&&(s=resolvePastedTextTokens({input:s,detectedContent:K}));const a=F?[]:resolvePastedImageTokens({input:r,images:J}),i={};if(!F)for(const e of J){if(!r.includes(imagePasteToken(e.imageNumber)))continue;const t=Ee.get(e.imageNumber);t&&(i[e.imageNumber]=t)}const l=Object.keys(i).length>0,c=Ie?CC(Ie):void 0;if(o&&d&&(n(""),"handled"===(await d(s,a,c)).status))return M?.add(s),U(!1),_e(),H(""),$e(),Y([]),ce(-1),ue(""),void Ue({replaceCurrentInput:!0});ce(-1),ue(""),s.length>0&&M?.add(s);const u=buildIdeContextHint({ideContext:Ie});t({input:s,role:F?"bash":"user",images:a,ideContext:c,ideHint:u,imageTokenPaths:l?i:void 0}),U(!1),_e(),H(""),$e(),Y([]),Ue({replaceCurrentInput:!0})},[t,d,$,e,F,J,Ee,K,M,Re,Ie,$e,_e,Ue,n]),ze=ot(t=>{const r=a(process.cwd(),t),o=r.includes(" ")?`"${r}"`:r,d=buildFileMentionInput({currentInput:e,mentionPath:o,isSearchMode:s&&""!==l});n(d),i(!1),c(""),N(e=>e+1)},[n,i,e,s,l,c]),Ke=ot(()=>{i(!1),c("")},[i,c]),Je=ot(e=>{const t=jh.has(e),r="/design"===e.trimEnd();if(t||r){const t=e.trimEnd();return n(t+" "),H(t.substring(1)+" "),void N(e=>e+1)}_e(),H(""),n(e+" "),N(e=>e+1)},[n,_e]),Qe=ot(t=>{if("/design help"===t)return _e(),H(""),n(""),N(e=>e+1),M?.add(t),void d?.("/design help");if(Uh.has(t))return _e(),H(""),M?.add(t),ce(-1),ue(""),n(""),N(e=>e+1),void d?.(t);const r=jh.has(t),o=Ks.has(t),s=Ys.has(t);if(r)Je(t);else{if(_e(),H(""),!o&&!s&&e!==t)return n(t+" "),void N(e=>e+1);M?.add(t),ce(-1),ue(""),n(""),N(e=>e+1),d?.(t)}},[d,n,e,M,Je,_e]),Ze=ot(()=>{_e(),H(""),ce(-1),ue(""),N(e=>e+1)},[_e]),st=ot(e=>{me.current=e,ie.current=void 0},[]),at=rt(()=>formatSlashCommandInputHint({value:e,selectedCommand:j?G:null}),[e,j,G]),lt=Boolean(at)&&!x,ct=rt(()=>{const t=Ne&&("OPEN"===Ne.state||"MERGED"===Ne.state);return"auto-accept"===E||"plan"===E||"bypass"===E||"dont-ask"===E||Ae||t?!$:!$&&0===e.length&&!F},[$,e,F,E,Ae,Ne]),dt=null!==X,ut=__name(()=>$||s||j?0:lt||ct||x||F?3:4,"getBottomMargin");return Xe.createElement(Ge,{width:"100%",flexDirection:"column",marginBottom:ut()},Xe.createElement(Ge,{flexDirection:"column",width:"100%"},Xe.createElement(Ve,{color:F?Rx.GREEN:Rx.GRAY},it.line.repeat(Le)),(()=>{const t=__name(()=>{if(oe.current&&(se(!1),listShellTasks().some(e=>"running"===e.status)))requestBackgroundTasksExpand();else{if(!te.current)return Date.now()-q.current<100?(q.current=0,void Be()):void(s||j||ge||He());te.current=!1}},"handleTextInputSubmit"),n=__name(n=>Xe.createElement(TextInput,{key:L,value:e,placeholder:ge?"Save and close the editor to continue...":o,onChange:We,onSubmit:t,showCursor:!ge&&r,onCursorChange:st,initialCursor:ie.current,prefix:`${F?"!":it.pointer} `,prefixColor:F?Rx.GREEN:Rx.WHITE,singleLine:n?.singleLine,maxWidth:n?.maxWidth,imageTokenLinks:Ee,isRecognizedSlashCommand:xe,disablePasteRouting:!0}),"renderTextInput"),a=j?"/model"===G&&C?getModelHintText(C):at:null,i=a?getCommandHintLayout({text:a,terminalWidth:Le}):null;return i?Xe.createElement(Ge,{flexDirection:"row",width:"100%"},Xe.createElement(Ge,{width:25},n({singleLine:!0,maxWidth:25})),Xe.createElement(Ge,{width:i.descriptionWidth},Xe.createElement(Ve,{color:Rx.DIM,wrap:"truncate"},i.text))):n()})(),Xe.createElement(Ve,{color:F?Rx.GREEN:Rx.GRAY},it.line.repeat(Le))),$&&Xe.createElement(pN,null),s&&Xe.createElement(aN,{onSelectFile:ze,onClose:Ke,searchQuery:l}),j&&Xe.createElement(rI,{onSelectCommand:Qe,onInsertCommand:Je,onSubmitSearch:He,onClose:Ze,searchQuery:W,onSelectedCommandChange:V}),!j&&!s&<&&Xe.createElement(Ge,null,Xe.createElement(Ve,{color:Rx.DIM,wrap:"truncate"},at)),!j&&!s&&!lt&&(ct||x||dt)&&Xe.createElement(uN,{termWidth:Le,indicatorText:getIdeInputIndicatorText(Ae,Ie,Le),isIDEIndicator:hasIdeInputIndicatorContext(Ae,Ie),permissionMode:E,prInfo:Ne,contextUsage:u,tasteLearningOn:m,connectionIndicator:Oe,pendingExitKey:x,updateStatus:w,updateFailedInfo:k,currentProvider:v,showProviderInfo:b,isBashMode:F,shareInfo:g,showShareNotification:h,unshareNotificationMessage:f,tasteNotificationMessage:y,creditWarning:S,hasStashedPrompt:dt,backgroundTasksArmed:ne}),he&&Xe.createElement(Ge,{paddingLeft:1,flexDirection:"column"},Xe.createElement(Ve,{color:Rx.YELLOW},he)))},"InputBox");Ex(),Px();var hN=__name(()=>{const[e,t]=et([]);return nt(()=>subscribeModStatus(t),[]),0===e.length?null:Xe.createElement(Ge,{paddingLeft:2},Xe.createElement(Ve,{wrap:"truncate"},e.map(e=>e.text).join(" ")))},"ModStatusLine");Ex(),Px();var fN=__name(({messages:e})=>{const t=countVisibleQueuedMessages(e);if(0===t)return null;const n=getQueuedDisplayRows(e);return Xe.createElement(Ge,{flexDirection:"column",marginBottom:1},Xe.createElement(Ge,{marginBottom:0},Xe.createElement(Ve,{color:Nx,inverse:!0},` Queued (${t}) `)),n.map(e=>Xe.createElement(Ge,{key:e.text},Xe.createElement(Ve,{color:Rx.DIM},it.pointerSmall," "),Xe.createElement(Ve,{color:Rx.DIM},truncateString2({text:e.count>1?`${e.text} (${e.count})`:e.text,maxChars:80})))))},"QueuedMessages");function useWorkedDuration(e,t){const n=tt(null),[r,o]=et(null);return nt(()=>{n.current=null,o(null)},[t]),nt(()=>{if(e)return n.current??=Date.now(),void o(null);null!==n.current&&(o(Date.now()-n.current),n.current=null)},[e]),r}function WorkedDurationNote({durationMs:e}){return null===e||e<1e3?null:Xe.createElement(Ge,{marginLeft:1,marginBottom:1},Xe.createElement(Ve,{color:Rx.DIM},`✻ Worked for ${formatElapsedMs(e)}`))}Ex(),Px(),__name(useWorkedDuration,"useWorkedDuration"),__name(WorkedDurationNote,"WorkedDurationNote");var yN=Xe.memo(({queuedMessages:e,isProcessing:t,processingStartedAt:n=null,executionState:r,status:o,input:s,setInput:a,onSubmit:i,showFileList:l,setShowFileList:c,fileSearchQuery:d,setFileSearchQuery:u,onCommand:m,outputTokens:p=0,contextUsage:g,tasteLearningOn:h,tasteUsage:f,shareInfo:y,showShareNotification:S,unshareNotificationMessage:w,tasteNotificationMessage:k,updateStatus:v,updateFailedInfo:C,creditWarning:b,currentProvider:E,currentModel:T,showProviderInfo:P,permissionMode:M,onToggleAutoAccept:x,hintMessage:I,historyManager:A,pendingExitKey:R,onResetPendingExitKey:O,onDoubleEscapeEmpty:D,retryAttempt:L,onAltP:N,inputActive:$=!0,inactiveHint:_,sessionId:F})=>{const[U,j]=et(()=>null===n?0:Date.now()-n),B=tt(s),W=t||r.isExecuting,H=useWorkedDuration(W,F);return nt(()=>{R&&s!==B.current&&s.length>0&&O?.(),B.current=s},[s,R,O]),nt(()=>{if(!t||null===n)return void j(0);j(Date.now()-n);const e=setInterval(()=>{j(Date.now()-n)},1e3);return()=>{clearInterval(e)}},[t,n]),Xe.createElement(Ge,{flexDirection:"column"},Xe.createElement(fN,{messages:e}),Xe.createElement(Ge,{flexDirection:"row",justifyContent:"space-between"},Xe.createElement(Ge,{flexDirection:"column"},W&&null===L&&Xe.createElement(nN,{tokens:p,timeElapsed:U,status:r.isExecuting?`Executing: ${r.currentCommand}`:o}),!W&&Xe.createElement(WorkedDurationNote,{durationMs:H}),W&&null===L&&I&&Xe.createElement(Ge,{marginLeft:1},Xe.createElement(Ve,{color:Rx.DIM}," ","⎿"," ","Tip: ",I)))),$?Xe.createElement(gN,{input:s,setInput:a,onSubmit:i,placeholder:"Ask your question...",showFileList:l,setShowFileList:c,fileSearchQuery:d,setFileSearchQuery:u,onCommand:m,contextUsage:g,tasteLearningOn:h,tasteUsage:f,shareInfo:y,showShareNotification:S,unshareNotificationMessage:w,tasteNotificationMessage:k,updateStatus:v,updateFailedInfo:C,creditWarning:b,currentProvider:E,currentModel:T,showProviderInfo:P,permissionMode:M,onToggleAutoAccept:x,hintMessage:I,historyManager:A,pendingExitKey:!R||t||r.isExecuting?null:R,onDoubleEscapeEmpty:D,onAltP:N,isProcessing:t}):Xe.createElement(Ge,{marginLeft:1},Xe.createElement(SA,null,_??"Background focused · ↑/↓ to select · Enter to view · x to stop · ←/Esc to go back to feed")),Xe.createElement(hN,null))});Ex();var SN=__name(({onComplete:e,onCancel:t})=>{const{authState:n,statusMessage:r,browserUrl:o,apiKeyInput:s,setApiKeyInput:a,handleApiKeySubmit:i,cancel:l}=useAuthFlow({onSuccess:__name((t,n)=>{const r=t.userName&&"API Key"!==t.userName&&"Manual API Key"!==t.userName?t.userName:"";e(!0,r?`Logged in as ${r}`:"Logged in successfully")},"onSuccess"),onFailure:__name((t,n)=>{e(!1,n)},"onFailure"),onCancel:__name(()=>{t()},"onCancel")});return Ye((e,t)=>{t.ctrl&&"c"===e&&l()}),Xe.createElement(CA,{authState:n,statusMessage:r,browserUrl:o,apiKeyInput:s,setApiKeyInput:a,handleApiKeySubmit:i})},"LoginOverlay");function getStatusTextColor(e){return"connected"===e?Rx.GREEN:"connecting"===e||"authenticated"===e?Rx.CYAN:"requires_auth"===e?Rx.YELLOW:Rx.GRAY}Ex(),Px(),__name(getStatusTextColor,"getStatusTextColor");var wN=__name((e,t)=>{const n=__name((e,n)=>Xe.createElement(Ve,{color:e,backgroundColor:t},n),"icon");return"connected"===e?n(Rx.GREEN,it.tick):"connecting"===e?n(Rx.CYAN,it.circle):"authenticated"===e?n(Rx.CYAN,it.tick):"requires_auth"===e?n(Rx.YELLOW,it.warning):"error"===e?n(Rx.RED,it.cross):n(Rx.GRAY,it.circle)},"getStatusIcon"),kN=__name(({onClose:e,mcp:t})=>{const[n,r]=et([]),[o,s]=et(!0),[a,i]=et(0),[l,c]=et("list"),[d,u]=et(null),[m,p]=et(0),g=useTerminalHeight(),h=ot(async()=>{try{const e=await listMcpServers(),n=t?mcpManagerConnectionsFromRegistry(t):mcpManagerConnectionsFromPool(getConnectedMcpServers()),o=await buildMcpManagerServerInfos({configuredServers:e,connectedServers:n,hasTokens:hasTokens});r([...o])}catch{}finally{s(!1)}},[t]);nt(()=>{h()},[h]),nt(()=>{if(t)return t.onChange(()=>{h()})},[t,h]);const f=rt(()=>[...orderMcpManagerServers(n)],[n]),y=f[a]??null,S=g-1,w=rt(()=>new Set(f.map(e=>e.scope)).size,[f]),k=Math.max(4,S-8-2*w);nt(()=>{p(e=>clampScrollOffset({cursor:a,total:f.length,maxVisible:k,currentOffset:e}))},[a,f.length,k]),Ye((t,n)=>{if(n.ctrl&&"c"===t)e();else{if(n.escape)return"actions"===l||"confirm-remove"===l?(c("list"),void u(null)):void e();if("list"===l){if(n.upArrow&&(i(e=>Math.max(0,e-1)),u(null)),n.downArrow){if(0===f.length)return;const e=Math.max(0,f.length-1);i(t=>Math.min(e,t+1)),u(null)}n.return&&y&&(c("actions"),u(null))}}});const v=__name(async e=>{if(y)if("back"!==e.value)if("connected"!==e.value)if("authenticated"!==e.value)if("connect"!==e.value)if("auth"!==e.value)if("remove"!==e.value)if("disable"!==e.value)if("enable"!==e.value);else{u({text:`Enabling ${y.name}...`,color:Rx.CYAN,loading:!0});try{if(!await updateMcpServerStatus({name:y.name,enabled:!0,scope:y.scope}))return void u({text:`${it.cross} Failed to enable ${y.name}, server may no longer exist in ${y.scope} scope`,color:Rx.YELLOW});await h(),u({text:`${it.tick} Enabled ${y.name}`,color:Rx.GREEN})}catch(e){u({text:`${it.cross} Failed: ${e instanceof Error?e.message:String(e)}`,color:Rx.RED})}}else{u({text:`Disabling ${y.name}...`,color:Rx.CYAN,loading:!0});try{if(!await updateMcpServerStatus({name:y.name,enabled:!1,scope:y.scope}))return void u({text:`${it.cross} Failed to disable ${y.name}, server may no longer exist in ${y.scope} scope`,color:Rx.YELLOW});await disconnectMcpServer({name:y.name,registry:t}),await h(),u({text:`${it.tick} Disabled ${y.name}`,color:Rx.GREEN})}catch(e){u({text:`${it.cross} Failed: ${e instanceof Error?e.message:String(e)}`,color:Rx.RED})}}else c("confirm-remove");else{u({text:`Authenticating ${y.name}...`,color:Rx.CYAN,loading:!0});try{const e=await runMcpServerAuthFlow({serverName:y.name,config:y.config,connectAfterAuth:__name(({name:e})=>connectMcpServer({name:e,registry:t}),"connectAfterAuth")});if("unsupported"===e.kind)return void u({text:e.message,color:Rx.YELLOW});"success"===e.kind?(u({text:`${it.tick} Authenticated with ${y.name}`,color:Rx.GREEN}),await h()):u({text:`${it.cross} Auth failed: ${e.message}`,color:Rx.RED})}catch(e){u({text:`${it.cross} Failed: ${e instanceof Error?e.message:String(e)}`,color:Rx.RED})}}else{u({text:`Connecting ${y.name}...`,color:Rx.CYAN,loading:!0});try{await connectMcpServer({name:y.name,registry:t}),u({text:`${it.tick} Connected to ${y.name}`,color:Rx.GREEN}),await h()}catch(e){u({text:`${it.cross} Failed: ${e instanceof Error?e.message:String(e)}`,color:Rx.RED})}}else u({text:"Already authenticated",color:Rx.GREEN});else u({text:"Already connected",color:Rx.GREEN});else c("list")},"handleActionSelect"),C=__name(async e=>{if(y)if("yes"===e.value)try{"connected"===y.status&&await disconnectMcpServer({name:y.name,registry:t}),await removeMcpServer({name:y.name,scope:y.scope}),c("list"),await h(),i(e=>Math.min(e,Math.max(0,f.length-2)))}catch(e){u({text:`${it.cross} Failed: ${e instanceof Error?e.message:String(e)}`,color:Rx.RED}),c("actions")}else c("actions")},"handleRemoveConfirm");if(o)return Xe.createElement(_D,{title:"Manage MCP servers"},Xe.createElement(Ve,{color:Rx.DIM},"Loading..."));if("confirm-remove"===l&&y)return Xe.createElement(_D,{title:`Remove ${y.name}?`,titleColor:Rx.RED,hint:"↑↓ navigate · Enter to select · Esc to cancel"},Xe.createElement(Ve,{color:Rx.DIM},"This will remove the server from ",y.scope," ","config."),Xe.createElement(Ge,{marginTop:1},Xe.createElement(SelectInput,{items:[{label:"Yes, remove",value:"yes"},{label:"Cancel",value:"no"}],onSelect:C,indicatorComponent:zD,itemComponent:VD})));if("actions"===l&&y){const e=buildMcpManagerActionItems(y);return Xe.createElement(_D,{title:y.name,hint:"↑↓ navigate · Enter to select · Esc to go back"},Xe.createElement(Ge,null,wN(y.status),Xe.createElement(Ve,{color:Rx.DIM}," ",getMcpManagerStatusText(y))),Xe.createElement(Ge,{marginTop:1},Xe.createElement(SelectInput,{items:[...e],onSelect:v,indicatorComponent:zD,itemComponent:VD})),d&&Xe.createElement(Ge,{marginTop:1},d.loading&&Xe.createElement(Ve,{color:d.color},Xe.createElement(gt,{type:"dots"})," "),Xe.createElement(Ve,{color:d.color},d.text)))}let b=null;const E=m,T=m+k,P=f.slice(E,T),M=f.length>k;return Xe.createElement(_D,{title:"Manage MCP servers",hint:0===n.length?"Esc to close":"↑↓ navigate · Enter to select · Esc to close"},Xe.createElement(Ve,{color:Rx.DIM},n.length," ",1===n.length?"server":"servers"),0===n.length?Xe.createElement(Ge,{marginTop:1,flexDirection:"column"},Xe.createElement(Ve,{color:Rx.DIM},"No MCP servers configured."),Xe.createElement(Ve,{color:Rx.DIM},'Use "',getBinaryCommand(),' mcp add" to add a server.'),Xe.createElement(fI,{url:"https://commandcode.ai/docs/mcp",text:"View MCP Docs ↗",color:Rx.CYAN,dimColor:!0})):Xe.createElement(Ge,{marginTop:1,flexDirection:"column"},P.map((e,t)=>{const n=E+t,r=e.scope!==b;b=e.scope;const o=n===a;return Xe.createElement(Xe.Fragment,{key:e.name},r&&Xe.createElement(Ge,{marginTop:0===t?0:1},Xe.createElement(Ve,{bold:!0},getMcpManagerScopeLabel(e.scope)),Xe.createElement(Ve,{color:Rx.DIM}," ","(",getMcpManagerScopePath(e.scope),")")),Xe.createElement(Ge,null,Xe.createElement(Ve,{color:o?Rx.WHITE:void 0,backgroundColor:o?eI:void 0,bold:o},e.name),Xe.createElement(Ve,{color:Rx.DIM,backgroundColor:o?eI:void 0}," · "),wN(e.status,o?eI:void 0),Xe.createElement(Ve,{color:getStatusTextColor(e.status),backgroundColor:o?eI:void 0}," ",getMcpManagerStatusText(e)," ")))})),M&&Xe.createElement(Ge,{marginTop:1},Xe.createElement(Ve,{color:Rx.DIM},"Showing ",E+1,"–",Math.min(T,f.length)," of"," ",f.length,E>0?" · ↑ more":"",T<f.length?" · ↓ more":"")),d&&Xe.createElement(Ge,{marginTop:1},d.loading&&Xe.createElement(Ve,{color:d.color},Xe.createElement(gt,{type:"dots"})," "),Xe.createElement(Ve,{color:d.color},d.text)))},"McpManager");Ex(),Px();var vN=__name(({onClose:e})=>{const[t,n]=et([]),[r,o]=et(0),[s,a]=et(!0),[i,l]=et(null);nt(()=>{__name(async()=>{try{const e=await discoverCommandMemoryFiles(process.cwd());n(e),a(!1)}catch(e){l(e instanceof Error?e.message:"Failed to discover memory files"),a(!1)}},"loadMemoryFiles")()},[]);const c=__name(async t=>{try{await openMemoryFileInEditor(t.path,{logError:__name(e=>console.error(e),"logError")}),e()}catch(t){console.error("Error opening memory file. Please ensure you have an editor set up."),e()}},"handleOpenInEditor"),d=filterEditableMemoryLocations(t);if(Ye((t,n)=>{n.escape?e():n.upArrow?o(e=>Math.max(0,e-1)):n.downArrow?o(e=>Math.min(d.length-1,e+1)):(n.return&&d[r]&&c(d[r]),"1"===t&&d[0]&&c(d[0]),"2"===t&&d[1]&&c(d[1]))}),s)return Xe.createElement(_D,{title:"Select memory to edit:"},Xe.createElement(Ve,{color:Rx.DIM},"Loading memory files..."));if(i)return Xe.createElement(_D,{title:"Select memory to edit:"},Xe.createElement(Ve,{color:Rx.RED},it.cross," ",i));const u=projectMemorySelectorOptions(d);return Xe.createElement(_D,{title:"Select memory to edit:",hint:"↑/↓ to navigate · enter to edit · esc to cancel"},Xe.createElement(Ge,{columnGap:4},Xe.createElement(Ge,{flexDirection:"column"},u.map((e,t)=>Xe.createElement(Ge,{key:e.label},Xe.createElement(UD,{isSelected:r===t}),Xe.createElement(jD,{isSelected:r===t,idleColor:ND}," ",e.label)))),Xe.createElement(Ge,{flexDirection:"column"},u.map((e,t)=>Xe.createElement(jD,{key:e.label,isSelected:r===t,idleColor:ND},e.description)))))},"MemorySelector");function linkImageTokens(e,t){if(!t)return e;const n=new RegExp(KE.source,"g");return e.replace(n,(e,n)=>{const r=t[Number(n)];return r?createOSC8Link(fileUrl(r),e,!1):e})}function UserMessage({content:e,ideHint:t,imageTokenPaths:n}){const r=isSpecialUserMessageContent(e),o=r&&isInterruptedByUserMessage(e)?Rx.DIM:Rx.RED,s=r?getSpecialUserMessageContent({content:e,billingUrl:xo}):linkImageTokens(e,n);return Xe.createElement(Ge,{flexDirection:"column"},Xe.createElement(Ge,{backgroundColor:r?void 0:Hx.BG,paddingRight:1},Xe.createElement(Ve,{color:r?o:Hx.POINTER,bold:!r},it.pointer),Xe.createElement(Ge,{marginLeft:1},Xe.createElement(Ve,{color:r?o:Hx.FG,wrap:"wrap"},s))),t&&!r&&Xe.createElement(Ge,{marginLeft:2},Xe.createElement(Ve,{color:Zx},EI),Xe.createElement(Ve,{color:Rx.DIM}," ","Selected ",t.lines," ",1===t.lines?"line":"lines"," from"," ",t.file," in ",t.ide)))}Ex(),Px(),Ex(),Px(),__name(linkImageTokens,"linkImageTokens"),__name(UserMessage,"UserMessage");var CN=it.squareSmallFilled;function goalStatusGlyph(e){return"completed"===e?it.tick:"paused"===e?"⏸":"idle"===e?it.circle:CN}function goalStatusHeadColor(e){return"completed"===e?Rx.GREEN:"paused"===e?Rx.YELLOW:Rx.DIM}function goalNoticeGlyph(e){return"cleared"===e?it.tick:"none"===e?it.circle:"paused"===e?"⏸":CN}function AutoCompactMessage({content:e}){return Xe.createElement(Ge,{flexGrow:1,flexShrink:1,minWidth:0},Xe.createElement(Ve,{color:Rx.DIM},CN," ",e))}function ZdrPausedMessage(){return Xe.createElement(Ge,{marginTop:1,marginBottom:1},Xe.createElement(Ve,null,Xe.createElement(Ve,{color:Rx.DIM},CN," "),Xe.createElement(Ve,{color:Rx.DIM},"Per-task model overrides reverted to ZDR safe defaults. Run"," "),Xe.createElement(Ve,{color:Yx.CODE},"/config"),Xe.createElement(Ve,{color:Rx.DIM}," to review · esc to dismiss")))}function ModelNoticeMessage({text:e}){return Xe.createElement(Ge,{marginTop:1,marginBottom:1},Xe.createElement(Ve,null,Xe.createElement(Ve,{color:Rx.DIM},CN," "),Xe.createElement(Ve,{color:Rx.DIM},e),Xe.createElement(Ve,{color:Rx.DIM}," · esc to dismiss")))}function TasteSkipMessage(){return Xe.createElement(Ge,{marginTop:1,marginBottom:1},Xe.createElement(Ge,{flexShrink:0},Xe.createElement(Ve,{backgroundColor:Dx.BADGE_BG,color:Dx.BADGE_FG,bold:!0},MI)),Xe.createElement(Ve,{color:Rx.DIM}," Skipped. Run "),Xe.createElement(Ve,{color:Yx.CODE},"/learn-taste"),Xe.createElement(Ve,{color:Rx.DIM}," or "),Xe.createElement(Ve,{color:Yx.CODE},"cmd learn-taste"),Xe.createElement(Ve,{color:Rx.DIM}," anytime."))}function TasteNoticeMessage({notice:e}){const t=e.path?`${tasteDirForRoot({projectRoot:process.cwd()})}/${e.path}`:null;return Xe.createElement(Ge,{flexDirection:"column"},Xe.createElement(Ge,null,Xe.createElement(Ge,{flexShrink:0},Xe.createElement(Ve,{backgroundColor:Dx.BADGE_BG,color:Dx.BADGE_FG,bold:!0},MI)),Xe.createElement(Ve,{color:Dx.TEXT}," ",e.label)),Xe.createElement(Ge,{columnGap:1,marginLeft:1},Xe.createElement(Ve,{color:Zx},EI),Xe.createElement(Ge,{flexGrow:1,flexShrink:1,minWidth:0},Xe.createElement(Ve,{wrap:"wrap"},e.text,e.confidence&&Xe.createElement(Ve,{color:Rx.DIM},` [Confidence ${e.confidence}]`)))),e.path&&t&&Xe.createElement(Ge,{marginLeft:3},Xe.createElement(fI,{url:fileUrl(t),text:e.path,color:Rx.DIM})))}function SkillLoadedMessage({name:e}){return Xe.createElement(Ge,null,Xe.createElement(Ge,{flexShrink:0},Xe.createElement(Ve,{backgroundColor:_x.BG,color:_x.FG,bold:!0},`${PI}SKILL${PI}`)),Xe.createElement(Ve,null," ",e),Xe.createElement(Ve,{color:Rx.DIM}," loaded"))}function HookWarningMessage({content:e}){return Xe.createElement(Ge,null,Xe.createElement(Ve,{color:Rx.YELLOW},it.warning),Xe.createElement(Ge,{marginLeft:1,flexGrow:1,flexShrink:1,minWidth:0},Xe.createElement(Ve,{color:Rx.YELLOW},e)))}function HookLineMessage({content:e}){return Xe.createElement(Ge,{flexGrow:1,flexShrink:1,minWidth:0},Xe.createElement(Ve,{color:Rx.DIM},` ${e}`))}function HookLineContinuationMessage({content:e}){return Xe.createElement(Ge,{flexGrow:1,flexShrink:1,minWidth:0},Xe.createElement(Ve,{color:Rx.DIM},` ${e}`))}function HookFrameMessage({lines:e,header:t}){return Xe.createElement(Ge,{flexDirection:"column"},void 0!==t&&Xe.createElement(Ge,{flexGrow:1,flexShrink:1,minWidth:0},Xe.createElement(Ve,{color:Rx.DIM},` ${t}`)),e.map((e,t)=>Xe.createElement(Ge,{key:t,flexGrow:1,flexShrink:1,minWidth:0},Xe.createElement(Ve,{color:Rx.DIM},e.primary?` └ ${e.text}`:` ${e.text}`))))}function GoalLineMessage({content:e,subline:t}){return Xe.createElement(Ge,{flexDirection:"column"},Xe.createElement(Ge,{marginLeft:2,flexGrow:1,flexShrink:1,minWidth:0},Xe.createElement(Ve,{color:Zx},EI),Xe.createElement(Ve,{color:Rx.DIM,wrap:"wrap"}," ",e)),t?Xe.createElement(Ge,{marginLeft:4,flexGrow:1,flexShrink:1,minWidth:0},Xe.createElement(Ve,{color:Rx.DIM,wrap:"wrap"},t)):null)}function GoalAcceptMessage({command:e,acceptLine:t,hint:n}){return Xe.createElement(Ge,{flexDirection:"column"},Xe.createElement(UserMessage,{content:e}),Xe.createElement(GoalLineMessage,{content:t,subline:n}))}function GoalCompleteMessage({elapsed:e,turns:t,goal:n}){const r=`${t} ${1===t?"turn":"turns"}`;return Xe.createElement(Ge,{flexDirection:"column"},Xe.createElement(Ge,{flexGrow:1,flexShrink:1,minWidth:0},Xe.createElement(Ve,null,Xe.createElement(Ve,{color:Rx.GREEN},it.tick," Goal achieved"),Xe.createElement(Ve,{color:Rx.DIM},` (${e} · ${r})`))),Xe.createElement(Ge,{marginLeft:2,flexGrow:1,flexShrink:1,minWidth:0},Xe.createElement(Ve,{color:Rx.DIM,wrap:"wrap"},"Goal: ",n)))}function GoalStatusMessage({state:e,headline:t,goal:n,detail:r,hint:o}){const s=goalStatusGlyph(e),a=goalStatusHeadColor(e);return Xe.createElement(Ge,{flexDirection:"column"},Xe.createElement(Ge,{flexGrow:1,flexShrink:1,minWidth:0},Xe.createElement(Ve,{color:a},s," ",t)),Xe.createElement(Ge,{marginLeft:2,flexGrow:1,flexShrink:1,minWidth:0},Xe.createElement(Ve,{color:Rx.DIM,wrap:"wrap"},n)),r?Xe.createElement(Ge,{marginLeft:2,flexGrow:1,flexShrink:1,minWidth:0},Xe.createElement(Ve,{color:Rx.DIM,wrap:"wrap"},r)):null,o?Xe.createElement(Ge,{marginLeft:2,flexGrow:1,flexShrink:1,minWidth:0},Xe.createElement(Ve,{color:Rx.DIM},o)):null)}function BranchResultMessage({title:e}){return Xe.createElement(Ge,{flexDirection:"column"},Xe.createElement(Ge,{flexGrow:1,flexShrink:1,minWidth:0},e?Xe.createElement(Ve,null,Xe.createElement(Ve,{color:Rx.GREEN},"⑂ Forked."),Xe.createElement(Ve,null," You're now in "),Xe.createElement(Ve,{bold:!0},'"',e,'"')):Xe.createElement(Ve,null,Xe.createElement(Ve,{color:Rx.GREEN},"⑂ Forked."),Xe.createElement(Ve,null," You're now in the new session"))),Xe.createElement(Ge,{marginLeft:2,flexGrow:1,flexShrink:1,minWidth:0},Xe.createElement(Ve,{color:Rx.DIM},"Original session saved · /resume to switch back")))}function SessionFileMessage({sessionId:e,fileLine:t}){return Xe.createElement(Ge,{flexDirection:"column"},Xe.createElement(Ge,{flexGrow:1,flexShrink:1,minWidth:0},Xe.createElement(Ve,{color:Rx.DIM},CN," Session ID: "),Xe.createElement(Ve,null,e)),Xe.createElement(Ge,{marginLeft:2,flexGrow:1,flexShrink:1,minWidth:0},Xe.createElement(Ve,{color:Zx},EI," "),Xe.createElement(Ve,{color:Rx.DIM,wrap:"wrap"},t)))}function InfoMessage({content:e,metadata:t}){if(t?.isTasteSkip)return Xe.createElement(TasteSkipMessage,null);if(t?.tasteNotice)return Xe.createElement(TasteNoticeMessage,{notice:t.tasteNotice});if(t?.skillLoaded)return Xe.createElement(SkillLoadedMessage,{name:t.skillLoaded.name});if(t?.isAutoCompact)return Xe.createElement(AutoCompactMessage,{content:e});if(t?.hookFrame&&t.hookFrame.length>0)return Xe.createElement(HookFrameMessage,{lines:t.hookFrame,header:t.hookFrameHeader});if(t?.isHookLine)return Xe.createElement(HookLineMessage,{content:e});if(t?.isHookLineContinuation)return Xe.createElement(HookLineContinuationMessage,{content:e});if(t?.isHookWarning)return Xe.createElement(HookWarningMessage,{content:e});if(t?.isSuccess)return Xe.createElement(Ge,{flexGrow:1,flexShrink:1,minWidth:0},Xe.createElement(Ve,{color:Rx.GREEN},it.tick," ",e));if(t?.isGoalAccept)return Xe.createElement(GoalAcceptMessage,{command:e,acceptLine:t.goalAcceptLine??"",hint:t.goalSubline});if(t?.isGoalComplete)return Xe.createElement(GoalCompleteMessage,{elapsed:t.goalElapsed??"",turns:t.goalTurns??1,goal:t.goalText??""});if(t?.isGoalStatus)return Xe.createElement(GoalStatusMessage,{state:t.goalState??"running",headline:t.goalHeadline??"",goal:t.goalText??"",detail:t.goalDetail,hint:t.goalSubline});if(t?.isBranchResult)return Xe.createElement(BranchResultMessage,{title:t.branchTitle});if(t?.isSessionFile)return Xe.createElement(SessionFileMessage,{sessionId:t.sessionFileId??"",fileLine:t.sessionFileLine??""});if(t?.isGoalNotice){const n=goalNoticeGlyph(t.goalNoticeKind);return Xe.createElement(Ge,{flexGrow:1,flexShrink:1,minWidth:0},Xe.createElement(Ve,{color:Rx.DIM},n," ",e))}return t?.isGoalLine?Xe.createElement(GoalLineMessage,{content:e,subline:t.goalSubline}):Xe.createElement(Ge,{flexGrow:1,flexShrink:1,minWidth:0},Xe.createElement(Ve,{color:Rx.DIM},CN," ",e))}__name(goalStatusGlyph,"goalStatusGlyph"),__name(goalStatusHeadColor,"goalStatusHeadColor"),__name(goalNoticeGlyph,"goalNoticeGlyph"),__name(AutoCompactMessage,"AutoCompactMessage"),__name(ZdrPausedMessage,"ZdrPausedMessage"),__name(ModelNoticeMessage,"ModelNoticeMessage"),__name(TasteSkipMessage,"TasteSkipMessage"),__name(TasteNoticeMessage,"TasteNoticeMessage"),__name(SkillLoadedMessage,"SkillLoadedMessage"),__name(HookWarningMessage,"HookWarningMessage"),__name(HookLineMessage,"HookLineMessage"),__name(HookLineContinuationMessage,"HookLineContinuationMessage"),__name(HookFrameMessage,"HookFrameMessage"),__name(GoalLineMessage,"GoalLineMessage"),__name(GoalAcceptMessage,"GoalAcceptMessage"),__name(GoalCompleteMessage,"GoalCompleteMessage"),__name(GoalStatusMessage,"GoalStatusMessage"),__name(BranchResultMessage,"BranchResultMessage"),__name(SessionFileMessage,"SessionFileMessage"),__name(InfoMessage,"InfoMessage"),Ex(),Px(),Ex(),Ex(),Ex(),Ex();var bN=/\[\^[^\]]+\]/;function splitMarkdownBlocks(e){return e?bN.test(e)?[e]:dt.lex(e,{gfm:!0}).map(e=>e.raw):[]}function isWhitespaceOnly2(e){return 0===e.trim().length}function createBlockStream(){let e="",t=0,n=!1;function frozenAdvance(n){return{newlyCompleted:[],openTail:n.startsWith(e)?n.slice(e.length):n,committedBlockCount:t,frozen:!0}}function advance(r){if(n)return frozenAdvance(r);if(!r.startsWith(e))return n=!0,frozenAdvance(r);const o=splitMarkdownBlocks(r);if(o.length<=1)return{newlyCompleted:[],openTail:r.slice(e.length),committedBlockCount:t,frozen:!1};const s=o.slice(0,-1),a=[];let i=0;for(const o of s){const s=i+o.length;if(s<=e.length){if(e.slice(i,s)!==o)return n=!0,frozenAdvance(r)}else{if(i!==e.length)return n=!0,frozenAdvance(r);a.push(o),e+=o,isWhitespaceOnly2(o)||(t+=1)}i=s}return{newlyCompleted:a,openTail:r.slice(e.length),committedBlockCount:t,frozen:!1}}function finalize(r){if(n||!r.startsWith(e)){const n=r.startsWith(e)?r.slice(e.length):r;return{remaining:n?[n]:[],committedBlockCount:t}}const o=r.slice(e.length);return o?{remaining:splitMarkdownBlocks(o),committedBlockCount:t}:{remaining:[],committedBlockCount:t}}return __name(frozenAdvance,"frozenAdvance"),__name(advance,"advance"),__name(finalize,"finalize"),{advance:advance,finalize:finalize}}__name(splitMarkdownBlocks,"splitMarkdownBlocks"),__name(isWhitespaceOnly2,"isWhitespaceOnly"),__name(createBlockStream,"createBlockStream"),Ex();var EN=String.fromCharCode(8203),TN=new Set(["_","~","*","`"]),PN=/!?\[[^\]]*\]\([^)]*$/,MN=/!?\[[^\]]*$/;function isSpace(e){return" "===e||"\t"===e||"\n"===e||"\r"===e}function isOnlyMarkersOrSpace(e){for(const t of e)if(!isSpace(t)&&!TN.has(t))return!1;return!0}function isShortSetextUnderline(e){if(0===e.length||e.length>2)return!1;const t=e[0];if("-"!==t&&"="!==t)return!1;for(const n of e)if(n!==t)return!1;return!0}function isTagOpener(e){const t=e.startsWith("</")?e[2]:e[1];return void 0!==t&&/[a-zA-Z]/.test(t)}function countFenceMarkers(e){let t=0;for(let n=0;n<e.length;n+=1)"\\"!==e[n]||"`"!==e[n+1]?e.startsWith("```",n)&&(t+=1,n+=2):n+=1;return t}function countMarkerOutsideCode(e,t){let n=0,r=!1,o=!1;for(let s=0;s<e.length;s+=1){const a=e[s];"\\"!==a?e.startsWith("```",s)?(r=!r,s+=2):r||("`"!==a?o||e.startsWith(t,s)&&(n+=1,s+=t.length-1):o=!o):s+=1}return n}function countSingleBackticks(e){let t=0,n=!1;for(let r=0;r<e.length;r+=1)"\\"!==e[r]||"`"!==e[r+1]?e.startsWith("```",r)?(n=!n,r+=2):n||"`"!==e[r]||(t+=1):r+=1;return t}function stripDanglingHtmlTag(e){const t=e.lastIndexOf("<");if(-1===t)return e;const n=e.slice(t);return n.includes(">")?e:isTagOpener(n)?e.slice(0,t).trimEnd():e}function stripDanglingLink(e){const t=e.match(PN);if(void 0!==t?.index)return e.slice(0,t.index).trimEnd();const n=e.match(MN);return void 0!==n?.index?e.slice(0,n.index).trimEnd():e}function guardSetextUnderline(e){const t=e.lastIndexOf("\n");if(-1===t)return e;const n=e.slice(t+1),r=n.trim();if(!isShortSetextUnderline(r))return e;if(n!==r&&n.endsWith(" "))return e;const o=e.slice(0,t).split("\n").at(-1);return o&&0!==o.trim().length?`${e}${EN}`:e}function closeUnbalancedMarker(e,t,n){if(countMarkerOutsideCode(e,t)%2==0)return e;const r=e.lastIndexOf(t),o=e.slice(r+t.length);return isOnlyMarkersOrSpace(o)?e:n&&o.endsWith(n)?`${e}${n}`:`${e}${t}`}function completeInlineTripleFence(e){if(e.includes("\n"))return null;if(!e.startsWith("```"))return null;if(!e.endsWith("``")||e.endsWith("```"))return null;const t=e.slice(3,-2);return 0===t.length||t.includes("`")?null:`${e}\``}function closeInlineCode(e){if(countSingleBackticks(e)%2==0)return e;const t=e.lastIndexOf("`");return isOnlyMarkersOrSpace(e.slice(t+1))?e:`${e}\``}function mendMarkdown(e){if(!e)return e;const t=completeInlineTripleFence(e);if(null!==t)return t;if(countFenceMarkers(e)%2==1)return e;let n=e;return n=stripDanglingHtmlTag(n),n=stripDanglingLink(n),n=guardSetextUnderline(n),n=closeUnbalancedMarker(n,"***",""),n=closeUnbalancedMarker(n,"**","*"),n=closeUnbalancedMarker(n,"__","_"),n=closeUnbalancedMarker(n,"~~","~"),n=closeInlineCode(n),n}__name(isSpace,"isSpace"),__name(isOnlyMarkersOrSpace,"isOnlyMarkersOrSpace"),__name(isShortSetextUnderline,"isShortSetextUnderline"),__name(isTagOpener,"isTagOpener"),__name(countFenceMarkers,"countFenceMarkers"),__name(countMarkerOutsideCode,"countMarkerOutsideCode"),__name(countSingleBackticks,"countSingleBackticks"),__name(stripDanglingHtmlTag,"stripDanglingHtmlTag"),__name(stripDanglingLink,"stripDanglingLink"),__name(guardSetextUnderline,"guardSetextUnderline"),__name(closeUnbalancedMarker,"closeUnbalancedMarker"),__name(completeInlineTripleFence,"completeInlineTripleFence"),__name(closeInlineCode,"closeInlineCode"),__name(mendMarkdown,"mendMarkdown");var xN=ft()?"⠶":"#";function streamingMaxRows(e){return Math.max(8,e-12)}function AssistantMessage({content:e,isStreaming:t=!1,continuation:n=!1}){const r=useTerminalRows(),o=t?mendMarkdown(e):e;return Xe.createElement(Ge,null,n?Xe.createElement(Ge,{width:2,flexShrink:0}):Xe.createElement(Ve,{color:Gx},xN),Xe.createElement(Ge,{marginLeft:n?0:1,flexGrow:1,flexShrink:1,minWidth:0,flexDirection:"column"},Xe.createElement(Markdown,{maxPhysicalRows:t?streamingMaxRows(r):void 0},o)))}function BashMessage({command:e,output:t,isPending:n=!1,hasError:r=!1}){let o=Rx.GREEN,s=it.tick,a="default",i=t||"(No output)";n&&(o=Rx.YELLOW,s=it.arrowRight,a=Rx.YELLOW,i="Executing…"),r&&(o=Rx.RED,s=it.cross,a=Rx.RED);const l=rt(()=>buildTreeConnectors(i),[i]);return Xe.createElement(Ge,null,Xe.createElement(Ve,{color:o},s),Xe.createElement(Ge,{flexDirection:"column",marginLeft:1},Xe.createElement(Ge,null,Xe.createElement(Ve,{color:Rx.GRAY},"$ "),Xe.createElement(Ve,{color:o,bold:!0},e)),Xe.createElement(Ge,{columnGap:1,marginLeft:1},Xe.createElement(Ve,{color:Zx},l),Xe.createElement(Ve,{color:a,wrap:"wrap"},i))))}function CommandResultMessage({message:e,details:t,hasError:n=!1}){const r=n?Rx.YELLOW:void 0,o=rt(()=>buildTreeConnectors(e),[e]);return Xe.createElement(Ge,{flexDirection:"column",marginBottom:0,marginTop:-1},Xe.createElement(Ge,{columnGap:1},Xe.createElement(Ve,{color:Zx},o),Xe.createElement(Ge,{flexGrow:1,flexShrink:1,minWidth:0},Xe.createElement(Ve,{color:r},e))),t&&Xe.createElement(Ge,{marginLeft:3},Xe.createElement(Ve,{color:Rx.DIM},"See ",t)))}function ErrorMessage({content:e}){return isInterruptedByUserMessage(e)?Xe.createElement(Ge,null,Xe.createElement(Ve,{color:Rx.DIM},it.pointer),Xe.createElement(Ge,{marginLeft:1,flexGrow:1,flexShrink:1,minWidth:0},Xe.createElement(Ve,{color:Rx.DIM,wrap:"wrap"},Ef))):Xe.createElement(Ge,null,Xe.createElement(Ve,{color:Rx.RED},it.warning),Xe.createElement(Ge,{marginLeft:1,flexGrow:1,flexShrink:1,minWidth:0},Xe.createElement(Markdown,{color:Rx.RED},e)))}__name(streamingMaxRows,"streamingMaxRows"),__name(AssistantMessage,"AssistantMessage"),Ex(),__name(BashMessage,"BashMessage"),Ex(),__name(CommandResultMessage,"CommandResultMessage"),Ex(),Px(),__name(ErrorMessage,"ErrorMessage"),Ex(),Px();var IN={connected:{char:it.tick,color:Rx.GREEN},installed:{char:it.tick,color:Rx.GREEN},up_to_date:{char:it.tick,color:Rx.GREEN},needs_reload:{char:it.circle,color:Rx.YELLOW},failed:{char:it.cross,color:Rx.RED},not_in_ide:{char:it.circle,color:Rx.YELLOW}};function IDEStatusMessage({status:e,ide:t,details:n}){const{prefix:r,ide:o,suffix:s}=getIDESetupStatusHeadline(e,t),a=IN[e];return Xe.createElement(Ge,{flexDirection:"column"},Xe.createElement(Ge,null,Xe.createElement(Ve,null,Xe.createElement(Ve,{color:a.color},a.char),Xe.createElement(Ve,null," ",r),o&&Xe.createElement(Ve,{color:Rx.CYAN},o),s&&Xe.createElement(Ve,null,s))),n?.map(e=>Xe.createElement(Ve,{key:e,color:Rx.DIM}," ",e)))}function reasoningBodyColumns(e){const t=Math.floor(.9*Math.floor(.9*e));return Math.max(1,t-2)}function ReasoningMessage({content:e,expandedOutput:t,expandKey:n,isStreaming:r=!1}){const o=projectReasoningView({content:e,expandedOutput:t,expandKey:n,isStreaming:r,columns:reasoningBodyColumns(useTerminalWidth()),measureWidth:Ie});return Xe.createElement(Ge,{flexDirection:"column",width:"90%"},Xe.createElement(Ge,null,Xe.createElement(Ve,{color:Lx},"✻"," "),Xe.createElement(Ve,{color:Lx},o.showExpandHint?`${o.headerLabel} `:o.headerLabel),o.showExpandHint&&Xe.createElement(BracketWrap,{color:Rx.DIM},o.expandHint)),o.showBody&&o.hiddenAboveLabel&&Xe.createElement(Ge,{marginLeft:2},Xe.createElement(Ve,{color:Rx.DIM},o.hiddenAboveLabel)),o.showBody&&Xe.createElement(Ge,{marginLeft:2,flexDirection:"column"},Xe.createElement(Ve,{color:Lx,wrap:"wrap",italic:!0},o.bodyText)))}__name(IDEStatusMessage,"IDEStatusMessage"),Ex(),Px(),__name(reasoningBodyColumns,"reasoningBodyColumns"),__name(ReasoningMessage,"ReasoningMessage"),Ex(),Px(),Ex(),Px();function HelpMessage(){const e=getInvokedCommandName(),t=rt(()=>getVisibleSlashCommands(),[]);return Xe.createElement(Ge,{flexDirection:"column",paddingY:1},Xe.createElement(Ge,{flexDirection:"column",marginBottom:1},Xe.createElement(Ge,null,Xe.createElement(Ve,{bold:!0},"Command Code"),Xe.createElement(Ve,{color:Rx.GRAY}," v","1.27.1")),Xe.createElement(Ve,{color:Rx.GRAY},Ms)),Xe.createElement(Ge,{flexDirection:"column",marginBottom:1},Xe.createElement(Ve,{bold:!0},"Usage"),Xe.createElement(Ge,{paddingLeft:2},Xe.createElement(Ve,null,e," <command> [options]"))),Xe.createElement(Ge,{flexDirection:"column",marginBottom:1},Xe.createElement(Ve,{bold:!0},"Options"),Xe.createElement(Ge,{flexDirection:"column",paddingLeft:2},Ds.map(t=>Xe.createElement(Ge,{key:t.key},Xe.createElement(Ve,null,t.key.replace(/^cmd/,e).padEnd(xs)),Xe.createElement(Ve,{color:Rx.GRAY},t.description))))),Xe.createElement(Ge,{flexDirection:"column",marginBottom:1},Xe.createElement(Ve,{bold:!0},"Commands"),Xe.createElement(Ge,{flexDirection:"column",paddingLeft:2},Ns.map(t=>Xe.createElement(Ge,{key:t.key},Xe.createElement(Ve,null,t.key.replace(/^cmd/,e).padEnd(xs)),Xe.createElement(Ve,{color:Rx.GRAY},t.description))))),Xe.createElement(Ge,{flexDirection:"column",marginBottom:1},Xe.createElement(Ve,{bold:!0},"Slash Commands"),Xe.createElement(Ge,{flexDirection:"column",paddingLeft:2},t.map(e=>Xe.createElement(Ge,{key:e.key},Xe.createElement(Ve,null,e.key.padEnd(xs)),Xe.createElement(Ve,{color:Rx.GRAY},e.description))))),Xe.createElement(Ge,{flexDirection:"column",marginBottom:1},Xe.createElement(Ve,{bold:!0},"Keyboard Shortcuts"),Xe.createElement(Ge,{flexDirection:"column",paddingLeft:2},Os.map(e=>Xe.createElement(Ge,{key:e.key},Xe.createElement(Ve,null,e.key.padEnd(xs)),Xe.createElement(Ve,{color:Rx.GRAY},e.description))))),Xe.createElement(Ge,{flexDirection:"column",marginBottom:1},Xe.createElement(Ve,{bold:!0},"Examples"),Xe.createElement(Ge,{flexDirection:"column",paddingLeft:2},_s.map(t=>Xe.createElement(Ge,{key:t.key},Xe.createElement(Ve,null,t.key.replace(/^cmd/,e).padEnd(xs)),Xe.createElement(Ve,{color:Rx.GRAY},t.description))))),Xe.createElement(Ge,{marginBottom:1},Xe.createElement(Ve,{color:Rx.CYAN},it.pointer),Xe.createElement(Ve,{color:Rx.GRAY}," ",Is.replace(/cmd/,e))),Xe.createElement(Ge,{flexDirection:"column"},Xe.createElement(Ve,{bold:!0},"Links"),Xe.createElement(Ge,{flexDirection:"column",paddingLeft:2},$s.map(e=>Xe.createElement(Ge,{key:e.key},Xe.createElement(Ve,null,e.key.padEnd(xs)),Xe.createElement(Ve,{color:Rx.CYAN},e.description))))))}function SystemMessage({content:e}){return isHelpSystemEntryContent(e)?Xe.createElement(HelpMessage,null):Xe.createElement(Ge,{flexDirection:"column"},Xe.createElement(Ve,{wrap:"wrap"},Xe.createElement(Markdown,null,e)))}function FeedEntryView({entry:e,expandedToolOutput:t}){return renderFeedEntry(e,t)}function renderFeedEntry(e,t){if("user"===e.role){const t=e.metadata?.ideHint,n=e.metadata?.imageTokenPaths;return Xe.createElement(UserMessage,{content:e.input,ideHint:t,imageTokenPaths:n})}return"assistant"===e.role?Xe.createElement(AssistantMessage,{content:e.input,isStreaming:"running"===e.metadata?.status,continuation:!0===e.metadata?.continuation}):"reasoning"===e.role?Xe.createElement(ReasoningMessage,{content:e.input,expandedOutput:t,expandKey:"ctrl",isStreaming:"running"===e.metadata?.status}):"tool"===e.role?Xe.createElement(ToolMessage,{name:gg(e.name||""),input:e.input,output:e.output||"",isPending:dg(e),hasError:cg(e),metadata:e.metadata,expandedOutput:t}):"bash"===e.role?Xe.createElement(BashMessage,{command:e.command||"",output:e.output||"",isPending:dg(e),hasError:cg(e)}):"system"===e.role?Xe.createElement(SystemMessage,{content:e.input}):"info"===e.role?Xe.createElement(InfoMessage,{content:e.input,metadata:e.metadata}):"error"===e.role?Xe.createElement(ErrorMessage,{content:e.input}):"command-result"===e.role?Xe.createElement(CommandResultMessage,{message:e.input,details:e.details,hasError:e.hasError??!1}):"ide-status"===e.role?Xe.createElement(IDEStatusMessage,{status:e.status,ide:e.ide,details:e.details}):null}__name(HelpMessage,"HelpMessage"),__name(SystemMessage,"SystemMessage"),__name(FeedEntryView,"FeedEntryView"),__name(renderFeedEntry,"renderFeedEntry");var AN=__name(e=>getModelShortName({modelId:e,findModelById:findModelById}),"getModelShortName");function TranscriptDivider({count:e,width:t}){const n=` ${e} hidden messages [${UC?"ctrl+y":"ctrl+e"} to expand more] `,r=Math.max(0,Math.floor((t-n.length)/2)),o="─".repeat(r);return Xe.createElement(Ge,{marginBottom:1},Xe.createElement(Ve,{color:Wx},o),Xe.createElement(BracketedText,{text:n,color:Wx}),Xe.createElement(Ve,{color:Wx},o))}__name(TranscriptDivider,"TranscriptDivider");var RN=Xe.memo(({feed:e,showHeader:t=!1,staticKey:n,expandedToolOutput:r=!1,currentModel:o,currentProvider:s,hiddenCount:a=0})=>{const i=a>0?{role:"transcript-divider",count:a}:null,l=[...t?["header"]:[],...i?[i]:[],...e],c=useTerminalWidth(),d=rt(()=>aA(c),[c]),u=rt(()=>uA(c),[c]),m=rt(()=>getPackageJson(import.meta.url).version||"0.0.0",[]),p=rt(()=>getGitHeaderInfo(),[]),g=rt(()=>{const e=process.cwd(),t=process.env.HOME??process.env.USERPROFILE??"";return e.replace(t,"~")},[]),h=o?AN(o):"sonnet-4.6",f="taste-1",y=rt(()=>{if(!o)return"";if(!modelSupportsReasoningEffort(o))return"";const e=getReasoningEffort(o);return e?` with ${e} effort`:""},[o,n]),S=isInternalTeamFlagEnforced()&&!process.env.CMD_DEMO,w=S?" · co":"",k=S&&s?` · ${getProviderShortName(s)}`:"";return Xe.createElement(ze,{items:l,key:n,style:{width:"100%"}},e=>{if("object"==typeof e&&"transcript-divider"===e.role)return Xe.createElement(TranscriptDivider,{key:"transcript-divider",count:e.count,width:c});if("header"===e)return"compact"===u?Xe.createElement(Ge,{key:"header",marginBottom:1,flexDirection:"row"},Xe.createElement(Ge,{width:cA,flexShrink:0},Xe.createElement(tI,null,lA)),Xe.createElement(Ge,{flexDirection:"column",marginLeft:2},Xe.createElement(Ge,null,Xe.createElement(Ve,{bold:!0},"Command Code"),Xe.createElement(Ve,{color:Wx}," ","v",m)),Xe.createElement(Ve,{color:Wx},"models: ",h,y," ·"," ",f,w),Xe.createElement(Ve,{color:Wx},g,p&&p.isLocal&&p.branch&&` (${p.branch})`))):Xe.createElement(Ge,{key:"header",marginBottom:1,flexDirection:"column"},Xe.createElement(tI,null,d.trimEnd()),Xe.createElement(Ge,{flexDirection:"column",marginTop:1},Xe.createElement(Ge,null,Xe.createElement(Ve,{color:Wx},"# "),Xe.createElement(Ve,{bold:!0},"Command Code"),Xe.createElement(Ve,{color:Wx}," v",m)),Xe.createElement(Ve,{color:Wx},"# models: ",h,y," · ",f,k,w),Xe.createElement(Ge,null,Xe.createElement(Ve,{color:Wx},"# ",g,p&&p.isLocal&&p.branch&&Xe.createElement(Ve,{color:Wx}," ","(branch:"," ",p.branch,")")))));const t=e,n=renderFeedEntry(t,r);return Xe.createElement(Ge,{key:t.id,paddingBottom:1,width:"90%"},n)})});Ex(),Px();var ON=Ze(__name(function LiveAgentStatusInner2({entry:e}){const t=gg(e.name||"Agent"),n=summarizeAgentTaskInput(e.input||""),r=e.metadata?.tokensUsed||0,o=e.metadata?.elapsedSeconds||0,s=e.metadata?.recentTools||[],[a,i]=et(".");return nt(()=>{const e=setInterval(()=>{i(e=>"..."===e?".":e+".")},500);return()=>clearInterval(e)},[]),Xe.createElement(Ge,{flexDirection:"column",marginBottom:1,width:"90%"},Xe.createElement(Ge,null,Xe.createElement(Ve,{backgroundColor:Ux.BG,color:Ux.FG,bold:!0},` ${t} `),n&&Xe.createElement(Ve,null," (",n,")")),Xe.createElement(Ge,{columnGap:1,marginLeft:1},Xe.createElement(Ve,null,"⎿"," "),Xe.createElement(Ve,{color:Rx.GRAY},"Running (",formatTime(o)," |"," ",formatTokens(r),")",a)),s.length>0&&Xe.createElement(Ge,{flexDirection:"column",marginLeft:1},s.map((e,t)=>{const n=gg(e.name);return Xe.createElement(Ge,{key:t,columnGap:1},Xe.createElement(Ve,{color:Rx.GRAY},"⎿"),Xe.createElement(Ve,{color:Rx.GRAY}," ",n),e.input&&Xe.createElement(Ve,{color:Rx.GRAY},"(",e.input,")"))})))},"LiveAgentStatusInner")),DN=Ze(__name(function LiveAgentStatus2({entry:e}){return"tool"!==e.role?null:Xe.createElement(ON,{entry:e})},"LiveAgentStatus"));Ex(),Ex(),Px();var LN=[],NN=LN,$N=!1,_N=null,FN="",UN=new Set,jN=new Set,BN=new Set;function shapeOf(e){return e.map(e=>e.content.replace(/\d+/g,"#")).join("\0")}function emit2(){for(const e of BN)e()}function cancelPeek(){_N&&clearTimeout(_N),_N=null,$N=!1}function armPeek(){_N&&clearTimeout(_N),$N=!0,_N=setTimeout(()=>{_N=null,$N=!1,emit2()},5e3),_N.unref?.()}function projectUserEdits(e){return e.filter(e=>!UN.has(e.content)).map(e=>"completed"!==e.status&&jN.has(e.content)?{...e,status:"completed"}:e)}function setSessionTodos(e){const t=projectUserEdits(e);if(t.length>0&&jN.size>0&&t.every(e=>"completed"===e.status))return void clearSessionTodos();const n=shapeOf(t),r=n!==FN;(r||JSON.stringify(t)!==JSON.stringify(NN))&&(NN=t.length>0?t:LN,FN=n,NN.length>0&&r&&armPeek(),emit2())}function adoptSettled(e){NN=e.length>0?[...e]:LN,FN=shapeOf(NN),cancelPeek(),emit2()}function seedSessionTodos(e){UN.clear(),jN.clear(),adoptSettled(e)}function removeSessionTodoAt(e){const t=NN[e];return t&&UN.add(t.content),adoptSettled(NN.filter((t,n)=>n!==e)),NN}function seedTodosFromFeedEntries(e){for(let t=e.length-1;t>=0;t-=1){const n=e[t];if(!n||"tool"!==n.role||"todo_write"!==n.name)continue;const r="output"in n?n.output:void 0,o="string"==typeof r?kg(r):null;if(o){if(o.every(e=>"completed"===e.status))break;return seedSessionTodos(o),NN}}return clearSessionTodos(),LN}function clearSessionTodos(){(NN!==LN||$N||0!==UN.size||0!==jN.size)&&(NN=LN,FN="",UN.clear(),jN.clear(),cancelPeek(),emit2())}function getSessionTodos(){return NN}function isTodoPanelCollapsed(){return!$N}function completeSessionTodoAt(e){const t=NN[e];return t&&jN.add(t.content),adoptSettled(NN.map((t,n)=>n===e?{...t,status:"completed"}:t)),NN}function completeAllSessionTodos(){const e=NN.map(e=>e.content);for(const t of e)jN.add(t);return adoptSettled(LN),e}function subscribe(e){return BN.add(e),()=>BN.delete(e)}function useSessionTodos(){return at(subscribe,getSessionTodos)}function useTodoPanelCollapsed(){return at(subscribe,isTodoPanelCollapsed)}function usePausedLabel(e){const[t,n]=et(!e);return nt(()=>{if(e)return void n(!1);const t=setTimeout(()=>n(!0),1500);return t.unref?.(),()=>clearTimeout(t)},[e]),t}function projectVisibleTodos(e){if(e.length<=8)return{foldedDone:0,visible:e,hiddenTail:0};const t=e.filter(e=>"completed"!==e.status),n=e.length-t.length,r=8-(n>0?1:0),o=t.slice(0,Math.max(1,r));return{foldedDone:n,visible:o,hiddenTail:t.length-o.length}}function currentTaskLabel(e){const t=e.find(e=>"in_progress"===e.status);if(t)return t.activeForm?`${t.activeForm}…`:t.content;const n=e.find(e=>"pending"===e.status);return n?n.content:null}function TodoPanel({active:e=!0}){const t=useSessionTodos(),n=useTodoPanelCollapsed(),r=usePausedLabel(e);if(0===t.length)return null;const o=t.filter(e=>"completed"===e.status).length,s=o>0?`${t.length} items · ${o} done`:`${t.length} items`,a=n?currentTaskLabel(t):null;return Xe.createElement(Ge,{flexDirection:"column",marginBottom:1},Xe.createElement(Ge,null,Xe.createElement(Ge,{flexShrink:0},Xe.createElement(Ve,{backgroundColor:_x.BG,color:_x.FG,bold:!0},`${PI}TODOS${PI}`)),Xe.createElement(Ge,{flexShrink:0},Xe.createElement(Ve,null," ",Xe.createElement(BracketWrap,null,s))),a&&Xe.createElement(Ge,{flexShrink:1,minWidth:0},Xe.createElement(Ve,{color:r?Rx.DIM:jx.IN_PROGRESS,bold:!r,wrap:"truncate-end"},` ${a}${r?" (paused)":""}`)),Xe.createElement(Ge,{flexShrink:0},Xe.createElement(Ve,null," ",Xe.createElement(BracketWrap,{color:Rx.DIM},n?"ctrl+x to expand":"ctrl+x to manage")))),!n&&Xe.createElement(CappedChecklist,{todos:t}))}function CappedChecklist({todos:e}){const{foldedDone:t,visible:n,hiddenTail:r}=projectVisibleTodos(e);return Xe.createElement(Ge,{flexDirection:"column"},t>0&&Xe.createElement(Ge,{flexDirection:"row"},Xe.createElement(Ge,{width:2},Xe.createElement(Ve,{color:jx.SUCCESS},it.checkboxOn)),Xe.createElement(Ve,{color:jx.SUCCESS,strikethrough:!0},t," completed")),Xe.createElement(TodoChecklist,{todos:n}),r>0&&Xe.createElement(Ve,{color:Rx.DIM},` … +${r} more`))}__name(shapeOf,"shapeOf"),__name(emit2,"emit"),__name(cancelPeek,"cancelPeek"),__name(armPeek,"armPeek"),__name(projectUserEdits,"projectUserEdits"),__name(setSessionTodos,"setSessionTodos"),__name(adoptSettled,"adoptSettled"),__name(seedSessionTodos,"seedSessionTodos"),__name(removeSessionTodoAt,"removeSessionTodoAt"),__name(seedTodosFromFeedEntries,"seedTodosFromFeedEntries"),__name(clearSessionTodos,"clearSessionTodos"),__name(getSessionTodos,"getSessionTodos"),__name(isTodoPanelCollapsed,"isTodoPanelCollapsed"),__name(completeSessionTodoAt,"completeSessionTodoAt"),__name(completeAllSessionTodos,"completeAllSessionTodos"),__name(subscribe,"subscribe"),__name(useSessionTodos,"useSessionTodos"),__name(useTodoPanelCollapsed,"useTodoPanelCollapsed"),__name(usePausedLabel,"usePausedLabel"),__name(projectVisibleTodos,"projectVisibleTodos"),__name(currentTaskLabel,"currentTaskLabel"),__name(TodoPanel,"TodoPanel"),__name(CappedChecklist,"CappedChecklist"),Ex();var WN=new Set,HN=!1;function isTodosManagerOpen(){return HN}function requestTodosManagerOpen(){for(const e of WN)e()}function statusColor(e){return"completed"===e?Rx.GREEN:"in_progress"===e?Rx.CYAN:Rx.WHITE}function TodoRow({todo:e,selected:t}){const n="completed"===e.status?it.checkboxOn:it.checkboxOff,r=t?eI:void 0;return Xe.createElement(Ge,null,Xe.createElement(UD,{isSelected:t,backgroundColor:r}),Xe.createElement(Ve,{color:statusColor(e.status),backgroundColor:r}," ",n),Xe.createElement(Ve,{color:t?DD:statusColor(e.status),strikethrough:"completed"===e.status,backgroundColor:r,wrap:"truncate-end"}," ",e.content),"in_progress"===e.status&&Xe.createElement(Ve,{color:Rx.DIM,backgroundColor:r}," ","(in progress)"))}function TodosManagerPanel({sessionId:e,onExpandedChange:t}){const n=useSessionTodos(),[r,o]=et(!1),[s,a]=et(0);nt(()=>(HN=r,t?.(r),()=>{HN=!1,t?.(!1)}),[r,t]),nt(()=>{const e=__name(()=>{a(0),o(!0)},"listener");return WN.add(e),()=>{WN.delete(e)}},[]),nt(()=>{if(0===n.length)return o(!1),void a(0);a(e=>Math.min(e,n.length-1))},[n.length]);const i=__name(t=>{NO(e)?.applyTodoUserEdit(t)},"syncHarness");if(Ye((e,t)=>{if(t.escape||t.leftArrow||t.ctrl&&"x"===e||""===e)o(!1);else if(0!==n.length)if(t.upArrow)a(e=>Math.max(0,e-1));else if(t.downArrow)a(e=>Math.min(n.length-1,e+1));else{if("c"===e){const e=n[s];return void i({todos:completeSessionTodoAt(s),...e?{completedContents:[e.content]}:{}})}if("x"===e){const e=n[s];return void i({todos:removeSessionTodoAt(s),...e?{removedContents:[e.content]}:{}})}"a"===e&&i({todos:[],completedContents:completeAllSessionTodos()})}},{isActive:r}),!r)return null;const l=n.filter(e=>"completed"===e.status).length;return Xe.createElement(_D,{title:"Todos",subtitle:l>0?`${n.length} items · ${l} done`:`${n.length} items`,gapAfterHeader:!1,boxProps:{marginTop:1,marginBottom:1}},Xe.createElement(Ge,{flexDirection:"column",marginTop:1},n.map((e,t)=>Xe.createElement(TodoRow,{key:e.id??t,todo:e,selected:t===s}))))}__name(isTodosManagerOpen,"isTodosManagerOpen"),__name(requestTodosManagerOpen,"requestTodosManagerOpen"),__name(statusColor,"statusColor"),__name(TodoRow,"TodoRow"),__name(TodosManagerPanel,"TodosManagerPanel"),Ex(),Px(),Px();var GN=__name(({currentModel:e,onClose:t,refreshBanner:n,sessionId:r})=>{const o=getSupportedEfforts(e)??[],s=findModelById(e)?.label??getModelDisplayName(e),a=tt(!1),i=__name(o=>{if(a.current)return;a.current=!0;const s=o!==getReasoningEffort(e);(async()=>{try{s&&(await setReasoningEffort({modelId:e,effort:o}),n(),void 0!==o&&r&&NO(r)?.recordEffortChange({model:e,effort:o}))}catch(e){dlog(`[Effort] Failed to persist reasoning effort: ${e}`)}finally{t()}})()},"handleSelect"),l=__name(()=>{a.current||t()},"handleCancel");return Xe.createElement(TL,{modelLabel:s,supportedEfforts:o,currentEffort:getReasoningEffort(e),onSelect:i,onCancel:l})},"EffortSelector");Ex(),Px();var VN=__name(({onSelect:e,onCancel:t,currentProvider:n})=>{const r=getProviderOptions(),o=__name(t=>{e(t.value)},"handleSelect");Ye((e,n)=>{n.escape&&t()});const s=n?r.findIndex(e=>e.value===n):0,a=n&&-1===s;return Xe.createElement(_D,{title:"Select AI Provider",titleSuffix:n?Xe.createElement(Xe.Fragment,null," Current: ",Xe.createElement(Ve,{color:Rx.GREEN},getProviderDisplayName(n)),a&&Xe.createElement(Ve,{color:Rx.YELLOW}," ","[OAuth enforced]")):void 0,subtitle:"Available Providers:",hint:"Press ESC to cancel"},Xe.createElement(SelectInput,{items:r,onSelect:o,initialIndex:s>=0?s:0,indicatorComponent:UD,itemComponent:BD}))},"ProviderSelector");Ex(),Px();var zN=__name(e=>0===e?"No code changes":`${e} file${e>1?"s":""} changed`,"formatFileCountLabel"),qN=__name(({checkpoints:e,onSelect:t,onCancel:n})=>{const r=rt(()=>[...e].sort((e,t)=>new Date(e.createdAt).getTime()-new Date(t.createdAt).getTime()),[e]),[o,s]=et(()=>Math.max(0,r.length-1)),[a,i]=et(()=>Math.max(0,r.length-8)),[l,c]=et("checkpoint"),[d,u]=et(null),[m,p]=et(0),g=rt(()=>hasCodeChangesToRestore({sortedCheckpoints:r,selectedCheckpoint:d}),[d,r]),h=rt(()=>g?jT:jT.filter(e=>"conversation"===e.mode),[g]);if(nt(()=>{if(r.length>0){const e=r.length-1;s(e),i(Math.max(0,r.length-8))}},[r.length,8]),Ye((e,g)=>{if(g.escape)return"mode"===l?(c("checkpoint"),u(null),void p(0)):void n();"checkpoint"===l&&g.upArrow?s(e=>{const t=Math.max(0,e-1);return t<a&&i(t),t}):"checkpoint"===l&&g.downArrow?s(e=>{const t=Math.min(r.length-1,e+1);return t>=a+8&&i(t-8+1),t}):"checkpoint"===l&&g.return?r.length>0&&(u(r[o]),c("mode"),p(0)):"mode"===l&&g.upArrow?p(e=>Math.max(0,e-1)):"mode"===l&&g.downArrow?p(e=>Math.min(h.length-1,e+1)):"mode"===l&&g.return&&d&&h[m]&&t({messageId:d.messageId,mode:h[m].mode})}),0===r.length)return Xe.createElement(_D,{title:"Rewind",subtitle:"No checkpoints available. Start a conversation to create checkpoints.",gapAfterHeader:!1,footer:Xe.createElement(SA,null,"Press ",Xe.createElement(wA,null,"Esc")," to close")});if("mode"===l&&d)return Xe.createElement(_D,{title:"Rewind",subtitle:Xe.createElement(Xe.Fragment,null,"Restore to:"," ",Xe.createElement(Ve,{color:Rx.WHITE},truncateString2({text:d.prompt||"checkpoint",maxChars:50}))),footer:Xe.createElement(SA,null,"Press ",Xe.createElement(wA,null,"Enter")," to confirm ·"," ",Xe.createElement(wA,null,"Esc")," to go back")},Xe.createElement(Ge,{flexDirection:"column"},h.map((e,t)=>{const n=m===t,r=t===h.length-1;return Xe.createElement(Ge,{key:e.mode,flexDirection:"column"},Xe.createElement(Ge,{flexDirection:"row"},Xe.createElement(Ve,{color:n?Ox:void 0},n?`${bI} `:" "),Xe.createElement(Ge,{flexDirection:"column"},Xe.createElement(Ve,{color:n?Ox:Rx.WHITE},e.label),Xe.createElement(Ve,{color:Rx.DIM},e.description))),!r&&Xe.createElement(Ve,null," "))})));const f=r.slice(a,a+8);return Xe.createElement(_D,{title:"Rewind",subtitle:"Select a checkpoint to restore your session",gapAfterHeader:!1,footer:Xe.createElement(SA,null,"Press ",Xe.createElement(wA,null,"Enter")," to select ·"," ",Xe.createElement(wA,null,"Esc")," to cancel")},r.length>8&&Xe.createElement(Ge,{marginTop:1},Xe.createElement(Ve,{color:Rx.DIM},"Showing ",a+1,"-",Math.min(a+8,r.length)," ","of ",r.length)),Xe.createElement(Ge,{marginTop:1}),Xe.createElement(Ge,{flexDirection:"column"},f.map((e,t)=>{const n=a+t,s=o===n,i=e.filesModified.length,l=t===f.length-1,c=n===r.length-1;return Xe.createElement(Ge,{key:e.messageId,flexDirection:"column"},Xe.createElement(Ge,{flexDirection:"row"},Xe.createElement(Ve,{color:s?Ox:void 0},s?`${bI} `:" "),Xe.createElement(Ge,{flexDirection:"column"},Xe.createElement(Ge,null,Xe.createElement(Ve,{color:s?Ox:Rx.WHITE},truncateString2({text:e.prompt||"(no prompt)",maxChars:60})),Xe.createElement(Ve,{color:Rx.DIM}," • "),Xe.createElement(Ve,{color:Rx.DIM},getRelativeTimeString({timestamp:e.createdAt}),c&&" (latest)")),Xe.createElement(Ve,{color:Rx.DIM},zN(i)))),!l&&Xe.createElement(Ve,null," "))})))},"RewindSelector");Ex(),Px();var KN=["default","no-tools","user-only","labeled-only","all"],YN={default:"","no-tools":"[no-tools]","user-only":"[user]","labeled-only":"[labeled]",all:"[all]"};function nextFilterMode(e){const t=KN.indexOf(e);return KN[(t+1)%KN.length]}function previousFilterMode(e){const t=KN.indexOf(e);return KN[(t-1+KN.length)%KN.length]}function buildToolCallMap(e){const t=new Map,n=__name(e=>{for(const r of e){const{entry:e}=r;if("message"===e.type&&"assistant"===e.message.role)for(const n of e.message.content)"tool_use"===n.type&&t.set(n.id,{name:n.name,input:n.input});n(r.children)}},"visit");return n(e),t}function pathArgOf(e){const t=e.file_path??e.path;return"string"==typeof t?toRelativePath(t):"?"}function formatToolBracket(e){const{name:t,input:n}=e;if("read_file"===t){const e=pathArgOf(n),t=n.offset,r=n.limit;return"number"==typeof t&&"number"==typeof r?`[read: ${e}:${t}-${t+r}]`:`[read: ${e}]`}return"write_file"===t?`[write: ${pathArgOf(n)}]`:"edit_file"===t?`[edit: ${pathArgOf(n)}]`:"shell_command"===t?`[bash: ${truncateString2({text:"string"==typeof n.command?n.command:"",maxChars:50})}]`:"grep"===t?`[grep: /${"string"==typeof n.pattern?n.pattern:""}/ in ${"string"==typeof n.directory?toRelativePath(n.directory):"."}]`:"glob"===t?`[glob: ${"string"==typeof n.pattern?n.pattern:""}]`:"read_directory"===t?`[ls: ${pathArgOf(n)}]`:`[${t}: ${truncateString2({text:JSON.stringify(n),maxChars:40})}]`}function messageText5(e){return extractTextFromMessageContent({content:e.content})}function isToolResultOnlyUserMessage2(e){return"user"===e.role&&e.content.length>0&&e.content.every(e=>"tool_result"===e.type)}__name(nextFilterMode,"nextFilterMode"),__name(previousFilterMode,"previousFilterMode"),__name(buildToolCallMap,"buildToolCallMap"),__name(pathArgOf,"pathArgOf"),__name(formatToolBracket,"formatToolBracket"),__name(messageText5,"messageText"),__name(isToolResultOnlyUserMessage2,"isToolResultOnlyUserMessage");var JN=new Set(["label","custom","model_change","effort_change","session_info"]);function isContentlessAssistantMessage(e){return"message"===e.type&&"assistant"===e.message.role&&0===messageText5(e.message).trim().length}function passesFilter(e){const{entry:t,mode:n,isCurrentLeaf:r,hasLabel:o}=e;return"all"===n||("labeled-only"===n?o:"user-only"===n?"message"===t.type&&"user"===t.message.role&&!isToolResultOnlyUserMessage2(t.message)&&messageText5(t.message).trim().length>0:!JN.has(t.type)&&(!(isContentlessAssistantMessage(t)&&!r)&&("no-tools"!==n||"message"!==t.type||"user"!==t.message.role||!isToolResultOnlyUserMessage2(t.message))))}function buildVisibleNodes(e){const{nodes:t,mode:n,currentLeafId:r}=e,o=[];for(const e of t){const t=buildVisibleNodes({nodes:e.children,mode:n,currentLeafId:r});passesFilter({entry:e.entry,mode:n,isCurrentLeaf:e.entry.id===r,hasLabel:void 0!==e.label})?o.push({entry:e.entry,children:t,...void 0!==e.label?{label:e.label}:{},...void 0!==e.labelTimestamp?{labelTimestamp:e.labelTimestamp}:{}}):o.push(...t)}return o}function containsId(e,t){return e.entry.id===t||e.children.some(e=>containsId(e,t))}function reorderActiveFirst(e,t){for(const n of e)n.children=reorderActiveFirst(n.children,t);if(null===t)return e;const n=e.findIndex(e=>containsId(e,t));return n<=0?e:[e[n],...e.slice(0,n),...e.slice(n+1)]}function connectorGlyph(e){return e.folded?"⊞":e.foldable?"⊟":"─"}function buildRowPrefix(e){const{displayIndent:t,gutters:n,connectorVisible:r,isLast:o,folded:s,foldable:a}=e,i=r?t-1:-1,l=[];for(let e=0;e<3*t;e++){const t=Math.floor(e/3),r=e%3,c=n.find(e=>e.position===t);c?l.push(0===r&&c.show?"│":" "):t!==i?l.push(" "):0===r?l.push(o?"└":"├"):1===r?l.push(connectorGlyph({folded:s,foldable:a})):l.push(" ")}const c=s&&!r?"⊞ ":"";return l.join("")+c}function flattenVisibleTree(e){const{roots:t,activePathIds:n,foldedNodes:r}=e,o=[],s=new Map,a=t.length>1;function visit(e){const{node:t,parentId:i,indent:l,justBranched:c,isLast:d,gutters:u}=e,m=t.children.map(e=>e.entry.id);s.set(t.entry.id,m);const p=r.has(t.entry.id),g=t.children.length>0,h=e.showConnector&&!e.isVirtualRootChild,f=a?Math.max(0,l-1):l;if(o.push({id:t.entry.id,entry:t.entry,parentId:i,prefix:buildRowPrefix({displayIndent:f,gutters:u,connectorVisible:h,isLast:d,folded:p,foldable:g}),isActivePath:n.has(t.entry.id),isBranchChild:e.showConnector,hasVisibleChildren:g,...void 0!==t.label?{label:t.label}:{},...void 0!==t.labelTimestamp?{labelTimestamp:t.labelTimestamp}:{}}),p)return;const y=t.children.length>1,S=y||c&&l>0?l+1:l,w=h?[...u,{position:Math.max(0,f-1),show:!d}]:u;t.children.forEach((e,n)=>{visit({node:e,parentId:t.entry.id,indent:S,justBranched:y,showConnector:y,isLast:n===t.children.length-1,gutters:w,isVirtualRootChild:!1})})}return __name(visit,"visit"),t.forEach((e,n)=>{visit({node:e,parentId:null,indent:a?1:0,justBranched:a,showConnector:a,isLast:n===t.length-1,gutters:[],isVirtualRootChild:a})}),{rows:o,visibleChildrenIds:s}}function normalizeRowText(e){return truncateString2({text:e.replace(/[\n\t]+/g," ").trim(),maxChars:200})}function describeRow(e,t){if("message"===e.type){const{message:n}=e;if("user"===n.role){if(isToolResultOnlyUserMessage2(n)){const e=n.content.find(e=>"tool_result"===e.type),r=e?t.get(e.tool_use_id):void 0;return{text:r?formatToolBracket(r):"[tool result]",color:Rx.DIM}}return{text:`user: ${normalizeRowText(messageText5(n))}`,color:Rx.CYAN}}const r=messageText5(n).trim();return r?{text:`assistant: ${normalizeRowText(r)}`,color:Rx.GREEN}:{text:"assistant: (no content)",color:Rx.DIM}}return"compaction"===e.type?{text:`[compaction: ${Math.round(e.tokensBefore/1e3)}k tokens]`,color:Rx.CYAN}:"branch_summary"===e.type?{text:`[branch summary]: ${normalizeRowText(e.summary)}`,color:Rx.YELLOW}:"custom_message"===e.type?{text:`[${e.customType}]: ${normalizeRowText(extractTextFromMessageContent({content:e.content}))}`,color:Rx.MAGENTA}:"custom"===e.type?{text:`[custom: ${e.customType}]`,color:Rx.DIM}:"model_change"===e.type?{text:`[model: ${e.model}]`,color:Rx.DIM}:"effort_change"===e.type?{text:`[effort: ${e.effort}]`,color:Rx.DIM}:"label"===e.type?{text:`[label: ${e.label??"(cleared)"}]`,color:Rx.DIM}:{text:e.name?`[title: ${e.name}]`:"[title: (empty)]",color:Rx.DIM}}__name(isContentlessAssistantMessage,"isContentlessAssistantMessage"),__name(passesFilter,"passesFilter"),__name(buildVisibleNodes,"buildVisibleNodes"),__name(containsId,"containsId"),__name(reorderActiveFirst,"reorderActiveFirst"),__name(connectorGlyph,"connectorGlyph"),__name(buildRowPrefix,"buildRowPrefix"),__name(flattenVisibleTree,"flattenVisibleTree"),__name(normalizeRowText,"normalizeRowText"),__name(describeRow,"describeRow");var QN={compaction:"compaction",branch_summary:"branch summary",session_info:"title",model_change:"model",effort_change:"effort",custom:"custom",custom_message:"custom",label:"label"};function searchableText(e){const{entry:t,label:n,toolCallMap:r}=e,o=[t.type];n&&o.push(n);const s=QN[t.type];if(s&&o.push(s),"message"===t.type)if(o.push(t.message.role),isToolResultOnlyUserMessage2(t.message)){const e=t.message.content.find(e=>"tool_result"===e.type),n=e?r.get(e.tool_use_id):void 0;if(n){o.push(n.name);const e=n.input.command;"string"==typeof e&&o.push(e);const t=n.input.file_path??n.input.path;"string"==typeof t&&o.push(t)}}else o.push(messageText5(t.message));return"branch_summary"===t.type&&o.push(t.summary),"custom_message"===t.type&&o.push(extractTextFromMessageContent({content:t.content})),o.join(" ").toLowerCase()}function matchesSearch(e,t){const n=t.toLowerCase().split(/\s+/).filter(Boolean);return 0===n.length||n.every(t=>e.includes(t))}function formatLabelTimestamp(e,t){const n=new Date(e),r=__name(e=>String(e).padStart(2,"0"),"pad"),o=`${r(n.getHours())}:${r(n.getMinutes())}`;return n.getFullYear()===t.getFullYear()&&n.getMonth()===t.getMonth()&&n.getDate()===t.getDate()?o:n.getFullYear()===t.getFullYear()?`${n.getMonth()+1}/${n.getDate()} ${o}`:`${String(n.getFullYear()).slice(-2)}/${n.getMonth()+1}/${n.getDate()} ${o}`}function previousSegmentStart(e,t,n){let r=t.get(n),o=null;for(;r?.parentId;){const e=t.get(r.parentId);if(!e)break;if(e.isBranchChild)return e.id;o=e.id,r=e}return o}function nextSegmentStart(e,t,n){const r=t.get(n)?.[0];if(void 0===r)return null;let o=r;for(let n=0;n<1e4;n++){const n=e.get(o);if(!n||n.isBranchChild)return o;const r=t.get(o)?.[0];if(void 0===r)return o;o=r}return o}function resolveTargetLocally(e){const t=e.byId.get(e.entryId);return t?"message"===t.type&&"user"===t.message.role&&messageText5(t.message).trim().length>0||"custom_message"===t.type?{targetId:t.parentId}:{targetId:t.id}:{targetId:e.entryId}}function isOnPathLocally(e){if(null===e.ancestorId)return!0;if(null===e.targetId)return!1;let t=e.targetId;const n=new Set;for(;null!==t;){if(t===e.ancestorId)return!0;if(n.has(t))return!1;n.add(t);const r=e.byId.get(t);t=r?r.parentId:null}return!1}__name(searchableText,"searchableText"),__name(matchesSearch,"matchesSearch"),__name(formatLabelTimestamp,"formatLabelTimestamp"),__name(previousSegmentStart,"previousSegmentStart"),__name(nextSegmentStart,"nextSegmentStart"),__name(resolveTargetLocally,"resolveTargetLocally"),__name(isOnPathLocally,"isOnPathLocally");var XN=[{value:"none",label:"No summary"},{value:"summarize",label:"Summarize"},{value:"custom",label:"Summarize with custom prompt"}],ZN=__name(({tree:e,currentLeafId:t,initialSelectedId:n,initialFilterMode:r,branchSummarySkipPrompt:o,onSelect:s,onAbortSummary:a,onCancel:i,onLabelChange:l})=>{const[c,d]=et(r),[u,m]=et(""),[p,g]=et(()=>new Set),h=__name(e=>{d(e),g(new Set)},"applyFilterMode"),f=__name(e=>{h(t=>t===e?"default":e)},"toggleFilterMode"),[y,S]=et(!1),[w,k]=et("browse"),[v,C]=et(""),[b,E]=et(""),[T,P]=et(0),[M,x]=et(null),[I,A]=et(0),[R,O]=et(0),[D,L]=et(n??t??void 0),N=useTerminalHeight(),$=rt(()=>{const t=new Map,n=__name(e=>{for(const r of e)t.set(r.entry.id,r.entry),n(r.children)},"visit");return n(e),t},[e]),_=rt(()=>buildToolCallMap(e),[e]),F=rt(()=>{const e=new Set;let n=t;for(;null!==n;){e.add(n);const t=$.get(n);n=t?t.parentId:null}return e},[$,t]),U=rt(()=>reorderActiveFirst(buildVisibleNodes({nodes:e,mode:c,currentLeafId:t}),t),[e,c,t]),{rows:j,visibleChildrenIds:B}=rt(()=>flattenVisibleTree({roots:U,activePathIds:F,foldedNodes:p}),[U,F,p]),W=rt(()=>new Map(j.map(e=>[e.id,e])),[j]),H=rt(()=>u?j.filter(e=>matchesSearch(searchableText({entry:e.entry,label:e.label,toolCallMap:_}),u)):j,[j,u,_]);nt(()=>{if(0===H.length)return void A(0);let e=D;for(;e;){const t=H.findIndex(t=>t.id===e);if(t>=0)return void A(t);e=$.get(e)?.parentId}A(H.length-1)},[H,c,u,$]);const G=H[I]?.id,V=tt(!1);nt(()=>{V.current?G&&L(G):V.current=!0},[G]);const z=N-1,q=Math.max(6,z-10);nt(()=>{O(e=>clampScrollOffset({cursor:I,total:H.length,maxVisible:q,currentOffset:e}))},[I,H.length,q]);const K=H[I],Y=__name(e=>{L(e.entryId),e.summarize?(k("summarizing"),s(e).then(e=>{e.aborted&&k("browse")})):s(e)},"commitSelection"),J=__name(()=>{if(!K)return;L(K.id);const{targetId:e}=resolveTargetLocally({byId:$,entryId:K.id});isOnPathLocally({byId:$,ancestorId:t,targetId:e})||o?Y({entryId:K.id,summarize:!1}):(x(K.id),P(0),k("confirm-summary"))},"handleEnterInBrowse");Ye((e,t)=>{if("summarizing"===w)return void(t.escape&&a());if("label"===w)return void(t.escape&&k("browse"));if("custom-prompt"===w)return void(t.escape&&k("confirm-summary"));if("confirm-summary"===w){if(t.escape)return void k("browse");if(t.upArrow)return void P(e=>Math.max(0,e-1));if(t.downArrow)return void P(e=>Math.min(XN.length-1,e+1));if(t.return&&M){const e=XN[T]?.value;"none"===e?(Y({entryId:M,summarize:!1}),k("browse")):"summarize"===e?Y({entryId:M,summarize:!0}):(E(""),k("custom-prompt"))}return}const n=getKeybindings();if(t.escape)return u?void m(""):void i();if(t.upArrow)A(e=>0===H.length?0:(e-1+H.length)%H.length);else if(t.downArrow)A(e=>0===H.length?0:(e+1)%H.length);else if(!t.leftArrow||t.ctrl||t.meta)if(!t.rightArrow||t.ctrl||t.meta){if((keybindingMatches(n,"app.tree.foldOrPrevBranch",e,t)||isWordLeftSequence(e)||(t.ctrl||t.meta)&&t.leftArrow)&&K){if(K.hasVisibleChildren&&!p.has(K.id))return void g(e=>new Set(e).add(K.id));const e=previousSegmentStart(0,W,K.id);if(e&&L(e),e){const t=H.findIndex(t=>t.id===e);t>=0&&A(t)}return}if((keybindingMatches(n,"app.tree.unfoldOrNextBranch",e,t)||isWordRightSequence(e)||(t.ctrl||t.meta)&&t.rightArrow)&&K){if(p.has(K.id))return void g(e=>{const t=new Set(e);return t.delete(K.id),t});const e=nextSegmentStart(W,B,K.id);if(e){L(e);const t=H.findIndex(t=>t.id===e);t>=0&&A(t)}return}if(t.return)J();else if(t.ctrl&&"O"===e||keybindingMatches(n,"app.tree.filter.cycleBack",e,t))h(e=>previousFilterMode(e));else if(keybindingMatches(n,"app.tree.filter.cycle",e,t))h(e=>nextFilterMode(e));else if(keybindingMatches(n,"app.tree.filter.default",e,t))h("default");else if(keybindingMatches(n,"app.tree.filter.noTools",e,t))f("no-tools");else if(keybindingMatches(n,"app.tree.filter.userOnly",e,t))f("user-only");else if(keybindingMatches(n,"app.tree.filter.labeledOnly",e,t))f("labeled-only");else if(keybindingMatches(n,"app.tree.filter.all",e,t))f("all");else{if("L"===e||keybindingMatches(n,"app.tree.label",e,t)){if(!K)return;return C(K.label??""),void k("label")}"T"===e||keybindingMatches(n,"app.tree.labelTime",e,t)?S(e=>!e):t.backspace||t.delete?u&&m(e=>e.slice(0,-1)):!t.ctrl&&!t.meta&&!t.tab&&e&&1===e.length&&e>=" "&&m(t=>t+e)}}else A(e=>Math.min(H.length-1,e+q));else A(e=>Math.max(0,e-q))});const Q=__name(e=>{if(K){const t=e.trim();l({entryId:K.id,label:t.length>0?t:void 0})}k("browse")},"submitLabel"),X=__name(e=>{if(M){const t=e.trim();Y({entryId:M,summarize:!0,...t.length>0?{customInstructions:t}:{}})}},"submitCustomPrompt");if("summarizing"===w)return Xe.createElement(_D,{title:"/tree",gapAfterHeader:!1},Xe.createElement(Ve,{color:Rx.CYAN},"Summarizing abandoned branch… (Esc to cancel)"));if("confirm-summary"===w)return Xe.createElement(_D,{title:"/tree",subtitle:"You're leaving work behind on this branch. Summarize it before jumping?",hint:"enter confirm · esc back"},Xe.createElement(Ge,{flexDirection:"column"},XN.map((e,t)=>Xe.createElement(Ve,{key:e.value,color:t===T?Ox:Rx.WHITE,bold:t===T},t===T?`${bI} `:" ",e.label))));if("custom-prompt"===w)return Xe.createElement(_D,{title:"/tree",subtitle:"Focus instructions for the summary:",gapAfterHeader:!1,hint:"enter confirm · esc back"},Xe.createElement(TextInput,{value:b,focus:!0,prefix:`${bI} `,prefixColor:"cyan",onChange:E,onSubmit:X}));if("label"===w&&K)return Xe.createElement(_D,{title:"/tree",subtitle:"Label:",gapAfterHeader:!1,hint:"enter save (empty clears) · esc cancel"},Xe.createElement(TextInput,{value:v,focus:!0,prefix:`${bI} `,prefixColor:"cyan",onChange:C,onSubmit:Q}));const Z=H.slice(R,R+q),ee=new Date,te=YN[c];return Xe.createElement(Ge,{flexDirection:"column",paddingLeft:1,width:"100%"},Xe.createElement(Ve,{color:Ox,bold:!0},"/tree"),Xe.createElement(Ge,{marginBottom:1,width:"100%"},Xe.createElement(kI,{query:u,resultCount:u?H.length:void 0,placeholder:"Type to search…"})),0===H.length?Xe.createElement(Ge,{marginBottom:1},Xe.createElement(PO,{message:"No entries found"})):Xe.createElement(Ge,{flexDirection:"column"},Z.map((e,t)=>{const n=R+t===I,{text:r,color:o}=describeRow(e.entry,_);return Xe.createElement(Ve,{key:e.id,backgroundColor:n?eI:void 0,bold:n,wrap:"truncate-end"},n?`${bI} `:" ",Xe.createElement(Ve,{color:Zx},e.prefix),e.isActivePath?Xe.createElement(Ve,{color:Ox},"• "):null,void 0!==e.label?Xe.createElement(Ve,{color:Rx.YELLOW},"[",e.label,"]"," "):null,y&&e.labelTimestamp?Xe.createElement(Ve,{color:Rx.DIM},formatLabelTimestamp(e.labelTimestamp,ee)," "):null,Xe.createElement(Ve,{color:o},r))})),Xe.createElement(Ge,{marginTop:1},Xe.createElement(Ve,{color:Rx.DIM},"(",0===H.length?0:I+1,"/",H.length,")",te?` ${te}`:"",y?" [+label time]":"")),Xe.createElement(Ge,{flexDirection:"column"},Xe.createElement(SA,null,"↑/↓ move · ←/→ page · tab / alt+←/→ branch · shift+L label · shift+T label time"),Xe.createElement(SA,null,"filters ctrl+d/t/u/l/a · cycle ctrl+o · type to search · rebind via ~/.commandcode/keybindings.json")))},"TreeSelector");Ex(),Px();var e$=[{label:"Complete brief",desc:"If the target, goal, audience, or artifact is clear, act without asking."},{label:"Composition",desc:"Choose layout from the work pattern: monitor, operate, compare, configure, learn, decide, or explore."},{label:"Scope",desc:"Broad prompts get the full mode pass. Narrow prompts stay narrow."},{label:"Truth",desc:"Only claim changes that exist in files and are visible or verifiable."},{label:"Templates",desc:"design-html and report-html are documentation templates, not UI inspiration."},{label:"Reports",desc:"Follow-up modes read markdown reports, apply relevant findings, then still run their own full mode pass."}],t$=['/design redesign "Make this dashboard feel like an operator console"','/design motion "Animate the whole page and add missing interactions"','/design checkup "Audit this UI and generate the design report"','/design "Build a landing page for a privacy-first contract review tool"'],n$=__name(({onCancel:e})=>(Ye((t,n)=>{n.escape&&e()}),Xe.createElement(Ge,{flexDirection:"column",paddingLeft:2,paddingRight:2},Xe.createElement(Ge,{marginBottom:1,flexDirection:"column"},Xe.createElement(Ve,{bold:!0,color:Ox},"Use"),Xe.createElement(Ge,{paddingLeft:2,flexDirection:"column"},Xe.createElement(Ve,{color:Rx.DIM},'/design <mode> "target or request"'),Xe.createElement(Ve,{color:Rx.DIM},'/design "freeform request" also works. The closest mode is inferred.'))),Xe.createElement(Ge,{marginBottom:1,flexDirection:"column"},Xe.createElement(Ve,{bold:!0,color:Ox},"Modes"),Xe.createElement(Ge,{paddingLeft:2,flexDirection:"column"},Dh.map(e=>Xe.createElement(Ge,{key:e.name,columnGap:2},Xe.createElement(Ge,{width:18,flexShrink:0},Xe.createElement(Ve,{color:Rx.CYAN},"/design ",e.name)),Xe.createElement(Ge,null,Xe.createElement(Ve,{color:Rx.DIM},e.description)))))),Xe.createElement(Ge,{marginBottom:1,marginTop:1,flexDirection:"column"},Xe.createElement(Ve,{bold:!0,color:Ox},"Working rules"),Xe.createElement(Ge,{paddingLeft:2,flexDirection:"column"},e$.map(e=>Xe.createElement(Ge,{key:e.label,columnGap:2},Xe.createElement(Ge,{width:16,flexShrink:0},Xe.createElement(Ve,{color:Rx.CYAN},e.label)),Xe.createElement(Ge,null,Xe.createElement(Ve,{color:Rx.DIM},e.desc)))))),Xe.createElement(Ge,{marginBottom:1,marginTop:1,flexDirection:"column"},Xe.createElement(Ve,{bold:!0,color:Ox},"Quick examples:"),Xe.createElement(Ge,{paddingLeft:2,flexDirection:"column"},t$.map(e=>Xe.createElement(Ve,{key:e,color:Rx.DIM},e)))),Xe.createElement(Ge,{marginTop:1},Xe.createElement(Ve,{color:Rx.DIM},"Press Esc to close. Type /design help anytime to return.")))),"DesignGuide");Ex(),Px(),Ex(),Ex();var r$=__name(({error:e,traceId:t})=>Xe.createElement(Ge,{padding:1},Xe.createElement(TO,{title:"Error initializing onboarding:"},e,t&&Xe.createElement(Ve,{color:Rx.DIM},"\n\n","Trace ID: ",t),"\n\n","Continuing without onboarding...")),"OnboardingError");Ex(),Ex();var o$=__name(()=>Xe.createElement(Ve,null,"Skip"),"SkipOptionText"),s$=__name(({sessionCount:e,agentSessions:t,onImport:n,onSkip:r})=>{const[o,s]=et(1);return Ye((e,t)=>{t.escape?r():"n"!==e&&"N"!==e?t.upArrow||t.downArrow?s(e=>1===e?2:1):"1"!==e?"2"!==e?t.return&&(1===o?n():r()):r():n():dismissOnboardingForeverForProject().then(()=>r())}),Xe.createElement(Ge,{flexDirection:"column",borderStyle:"single",borderColor:Dx.TEXT,paddingX:1,paddingY:0},Xe.createElement(Ve,{color:Dx.TEXT,bold:!0},"Build Your Coding Taste"),Xe.createElement(Ge,{marginTop:1,flexDirection:"column"},Xe.createElement(Ve,null,"Found"," ",1===e?"one session":`${e} sessions`," ","from"," ",t.map(e=>e.displayName).join(", ")," ","for this project."),Xe.createElement(Ge,{marginTop:1},Xe.createElement(Ve,null,"Analyze"," ",1===e?"that session":"those sessions"," ","to build your coding taste package?"))),Xe.createElement(Ge,{marginTop:1,flexDirection:"column"},Xe.createElement(Ge,null,Xe.createElement(Ve,{color:1===o?Dx.TEXT:Rx.GRAY},1===o?it.pointer:" "," 1. Yes, learn (recommended)")),Xe.createElement(Ge,null,Xe.createElement(Ve,{color:2===o?Dx.TEXT:Rx.GRAY},2===o?it.pointer:" "," 2."," ",Xe.createElement(o$,null)))),Xe.createElement(Ge,{marginTop:1},Xe.createElement(Ve,{color:Rx.DIM},"↑↓ · "),Xe.createElement(Ve,{color:Yx.CODE},"enter"),Xe.createElement(Ve,{color:Rx.DIM}," ok · "),Xe.createElement(Ve,{color:Yx.CODE},"esc"),Xe.createElement(Ve,{color:Rx.DIM}," skip · "),Xe.createElement(Ve,{color:Yx.CODE},"n"),Xe.createElement(Ve,{color:Rx.DIM}," never")))},"ImportChoice"),a$=__name(({step:e,conditions:t,onImportStart:n,onImportComplete:r,onImportError:o,onErrorDismiss:s,onSkip:a})=>"asking"===e?t&&"has_sessions"===t.reason?Xe.createElement(s$,{sessionCount:t.sessionCount,agentSessions:t.agentSessions,onImport:n,onSkip:a}):null:"learning"===e?Xe.createElement(rD,{onComplete:r,onCancel:a,onError:o,onErrorDismiss:s}):null,"OnboardingStepRenderer"),i$=__name(({onComplete:e,autoLearn:t=!1})=>{nt(()=>(dlog("[UI:Onboarding] mounted"),()=>{dlog("[UI:Onboarding] unmounted")}),[]);const{conditions:n,error:r,traceId:o,isLoading:s}=HO({autoLearn:t,onShouldSkip:e}),{step:a,setStep:i}=GO({conditions:n,autoLearn:t}),{handleImportStart:l,handleImportComplete:c,handleImportError:d,handleErrorDismiss:u,handleSkip:m}=VO({onStepChange:__name(e=>{i(e)},"onStepChange"),onError:__name(()=>{},"onError"),onCompleteCallback:e});return dlog(`[UI:Onboarding] render: ${a}${n?.reason?` (${n.reason})`:""}${r?" ERROR":""}`),s?null:r?Xe.createElement(r$,{error:r,traceId:o}):"done"===a||"asking"!==a&&"learning"!==a?null:Xe.createElement(a$,{step:a,conditions:n,onImportStart:l,onImportComplete:c,onImportError:d,onErrorDismiss:u,onSkip:m})},"TasteOnboarding");Ex(),Px();var l$=[{label:"Auto theme",value:"auto",description:"Automatically detect your terminal background and use light or dark to match."},{label:"Dark theme",value:"dark",description:"Use purple accent colors on dark backgrounds."},{label:"Light theme",value:"light",description:"Use higher-contrast colors for white terminal backgrounds."}];function labelFor(e,t){return"auto"===e.value?`${e.label} (${t})`:e.label}__name(labelFor,"labelFor");var c$=__name(({onSelect:e,onCancel:t})=>{const[n]=et(()=>getCliTheme()),[r]=et(()=>resolveCliTheme("auto")),o=rt(()=>l$.map(e=>({...e,label:labelFor(e,r)})),[r]),s=__name(t=>{const n=o.find(e=>e.value===t.value)?.value;n&&e(n)},"handleSelect");Ye((e,n)=>{n.escape&&t()});const a=o.findIndex(e=>e.value===n),i=o.find(e=>e.value===n)?.label??`${n} theme`;return Xe.createElement(_D,{title:"Select a theme",subtitle:`Choose the color palette for this terminal · currently ${i}`,footer:Xe.createElement(Ve,{italic:!0,color:Rx.DIM},"Press ",Xe.createElement(Ve,{bold:!0},"Esc")," to cancel")},Xe.createElement(SelectInput,{items:o,onSelect:s,initialIndex:a>=0?a:0,indicatorComponent:UD,itemComponent:({isSelected:e,label:t})=>{const r=o.findIndex(e=>e.label===t),s=o[r],a=s?.value===n,i=r===o.length-1;return Xe.createElement(Ge,{flexDirection:"column",marginBottom:i?0:1},Xe.createElement(Ge,null,Xe.createElement(jD,{isSelected:e,isActive:a,idleColor:Rx.DIM},` ${r+1}. ${s?.label??t}`),a&&Xe.createElement(WD,null)),Xe.createElement(HD,null,s?.description??""))}}))},"ThemeSelector"),d$=Ze(__name(function MainView2({feed:e,liveEntries:t,queuedMessages:n,isCmdCodeBusy:r,staticKey:o,setStaticKey:s,transcriptMode:a,tasteOnboardingEntryId:i,autoLearnTaste:l,showTasteSkipBanner:c,showZdrNotice:d,modelNotice:u,retryAttempt:m,input:p,setInput:g,fileSearchQuery:h,setFileSearchQuery:f,showFileList:y,setShowFileList:S,showProviderSelector:w,showModelSelector:k,showEffortSelector:v,showMemorySelector:C,showMcpManager:b,showAgentsConfig:E,showRewindSelector:T,showTreeSelector:P,treeFilterMode:M,treeBranchSummarySkipPrompt:x,showLoginOverlay:I,showUsageOverlay:A,showAddDirModal:R,showCompactModeSelector:O,showThemeSelector:D,authComponentInfo:L,status:N,currentProvider:$,currentModel:_,showProviderNotification:F,shareInfo:U,showShareNotification:j,unshareNotificationMessage:B,updateStatus:W,updateFailedInfo:H,creditWarning:G,permissionMode:V,hintMessage:z,pendingExitKey:q,interactionTokens:K,contextUsage:Y,tasteLearningOn:J,historyManagerRef:Q,executionState:X,sessionId:Z,onSubmit:ee,onCommand:te,onToggleAutoAccept:ne,onResetPendingExitKey:re,onDoubleEscapeEmpty:oe,onTasteOnboardingComplete:se,permissionPanel:ae,questionPanel:ie,designSuggestionPanel:le,onRewindSelect:ce,onRewindCancel:de,onTreeSelect:ue,onTreeCancel:me,onTreeLabel:pe,onTreeAbortSummary:ge,onLoginComplete:he,onLoginCancel:fe,setShowProviderSelector:ye,setShowModelSelector:Se,setShowEffortSelector:we,setShowMemorySelector:ke,setShowMcpManager:ve,setShowAgentsConfig:Ce,setShowAddDirModal:be,setShowUsageOverlay:Ee,handleProviderSelect:Te,handleProviderCancel:Pe,handleModelSelect:Me,handleModelCancel:xe,handleCompactModeSelect:Ie,handleCompactModeCancel:Ae,handleThemeSelect:Re,handleThemeCancel:Oe,handleAuthSuccess:De,handleAuthCancel:Le,showDesignGuide:Ne,setShowDesignGuide:$e}){const _e=rt(()=>e.filter(e=>"taste-onboarding"!==e.role),[e]),Fe=ot(()=>$e(!1),[$e]),Ue=useTerminalWidth(),[je,Be]=et(!1),[We,He]=et(!1),ze=tt(null);ze.current=r?ze.current??Date.now():null;const qe=rt(()=>"off"===a?_e:projectTranscriptWindow({feed:_e,mode:a}),[_e,a]),Ke=rt(()=>"off"===a?0:Math.max(0,_e.length-qe.length),[_e.length,qe.length,a]),Ye=rt(()=>0===Ke?qe:qe.filter(e=>"user"!==e.role),[qe,Ke]),Je=ot(()=>Ce(!1),[Ce]),Qe=ot(()=>ke(!1),[ke]),Ze=ot(()=>ve(!1),[ve]),nt=ot(()=>be(!1),[be]),st=ot(()=>Se(!0),[Se]),at=ot(()=>we(!1),[we]),it=ot(()=>{hardResetForResize(),s(e=>e+1)},[s]),lt=!("off"!==a||ae||ie||le||w||k||v||L||C||b||E||T||P||I||A||R||O||D||Ne||i);return Xe.createElement(Ge,{flexDirection:"column",width:"100%"},Xe.createElement(RN,{staticKey:o,feed:Ye,showHeader:!0,expandedToolOutput:"off"!==a,currentModel:_,currentProvider:$,hiddenCount:Ke}),i&&Xe.createElement(i$,{onComplete:se,autoLearn:l}),c&&Xe.createElement(TasteSkipMessage,null),d&&Xe.createElement(ZdrPausedMessage,null),u&&Xe.createElement(ModelNoticeMessage,{text:u}),t.map(e=>e.metadata?.isAgent?Xe.createElement(DN,{key:e.id,entry:e}):Xe.createElement(Ge,{key:e.id,marginBottom:1,width:"90%"},Xe.createElement(FeedEntryView,{entry:e,expandedToolOutput:"off"!==a}))),Xe.createElement(RetryMessage,{attempt:m}),"off"===a&&!i&&!We&&Xe.createElement(TodoPanel,{active:r}),le,ie,ae,"off"!==a&&Xe.createElement(Ge,{flexDirection:"column",marginTop:1},Xe.createElement(Ge,null,Xe.createElement(Ve,{color:Rx.DIM},"─".repeat(Ue))),Xe.createElement(Ge,{paddingRight:1},Xe.createElement(Ve,{backgroundColor:_x.BG,color:_x.FG,bold:!0},`${PI}DETAILED TRANSCRIPT${PI}`),Xe.createElement(Ve,{color:Rx.DIM}," · "),Xe.createElement(Ve,{bold:!0},"ctrl+o"),Xe.createElement(Ve,{color:Rx.DIM}," to toggle"),Xe.createElement(Ve,{color:Rx.DIM}," · "),Xe.createElement(Ve,{bold:!0},UC?"ctrl+y":"ctrl+e"),Xe.createElement(Ve,{color:Rx.DIM}," ","to"," ","limited"===a?"show all":"collapse"),Xe.createElement(Ve,{color:Rx.DIM}," · "),Xe.createElement(Ve,{bold:!0},"esc"),Xe.createElement(Ve,{color:Rx.DIM}," to exit"))),lt&&Xe.createElement(Xe.Fragment,null,Xe.createElement(BackgroundTasksPanel,{onExpandedChange:Be}),Xe.createElement(TodosManagerPanel,{sessionId:Z,onExpandedChange:He}),Xe.createElement(yN,{queuedMessages:n,sessionId:Z,isProcessing:r,processingStartedAt:ze.current,executionState:X,status:N,input:p,setInput:g,onSubmit:ee,showFileList:y,setShowFileList:S,fileSearchQuery:h,setFileSearchQuery:f,onCommand:te,outputTokens:K,contextUsage:Y,tasteLearningOn:J,shareInfo:U,showShareNotification:j,unshareNotificationMessage:B,updateStatus:W,updateFailedInfo:H,creditWarning:G,currentProvider:$,currentModel:_,showProviderInfo:F,permissionMode:V,onToggleAutoAccept:ne,hintMessage:z,historyManager:Q.current,pendingExitKey:q,onResetPendingExitKey:re,onDoubleEscapeEmpty:oe,retryAttempt:m,onAltP:st,renderKey:o,inputActive:!je&&!We,inactiveHint:We?"Todos focused · ↑/↓ to select · c to complete · x to remove · a all done · Esc to go back to feed":void 0})),w&&Xe.createElement(Ge,{marginY:1},Xe.createElement(VN,{onSelect:Te,onCancel:Pe,currentProvider:$})),k&&Xe.createElement(Ge,{marginY:1},Xe.createElement(PL,{onSelect:Me,onCancel:xe,currentModel:_,currentProvider:$,refreshBanner:it})),v&&Xe.createElement(Ge,{marginY:1},Xe.createElement(GN,{currentModel:_,sessionId:Z,onClose:at,refreshBanner:it})),Ne&&Xe.createElement(Ge,{marginY:1},Xe.createElement(n$,{onCancel:Fe})),O&&Xe.createElement(Ge,{marginY:1},Xe.createElement(JL,{onSelect:Ie,onCancel:Ae})),D&&Xe.createElement(Ge,{marginY:1},Xe.createElement(c$,{onSelect:Re,onCancel:Oe})),E&&Xe.createElement(Ge,{marginY:1},Xe.createElement(WL,{onCancel:Je})),C&&Xe.createElement(Ge,{marginY:1},Xe.createElement(vN,{onClose:Qe})),b&&Xe.createElement(Ge,{marginY:1},Xe.createElement(kN,{onClose:Ze,mcp:NO(Z)?.mcp})),T&&NO(Z)&&Xe.createElement(Ge,{marginY:1},Xe.createElement(qN,{checkpoints:[...NO(Z).listCheckpoints()],onSelect:ce,onCancel:de})),P&&NO(Z)&&Xe.createElement(Ge,{marginY:1},Xe.createElement(ZN,{tree:NO(Z).getSessionTree(),currentLeafId:NO(Z).getSessionLeafId(),initialFilterMode:M,branchSummarySkipPrompt:x,onSelect:ue,onAbortSummary:ge,onCancel:me,onLabelChange:pe})),L&&Xe.createElement(Ge,{marginY:1},Xe.createElement(L.Component,{onSuccess:De,onCancel:Le})),I&&Xe.createElement(Ge,{marginY:1},Xe.createElement(SN,{onComplete:he,onCancel:fe})),R&&Xe.createElement(Ge,{marginY:1},Xe.createElement(kL,{onClose:nt})))},"MainView"));function useFeatureModelCatalog(){const e=rt(()=>isInternalTeamFlagEnforced(),[]),[t,n]=et(()=>getCachedBillingContext());nt(()=>{if(t)return;let e=!0;return getBillingContext().then(t=>{e&&n(t)}),()=>{e=!1}},[t]);const[r,o]=et(null);nt(()=>{let e=!0;return getConfiguredProvider().then(t=>{e&&o(t)}),()=>{e=!1}},[]);const s=e?vo.anthropic.id:Fr.COMMAND,a=r??s,i=rt(()=>buildLaneModelPickerGroups({isCoMode:e,activeLane:a}),[e,a]),l=rt(()=>filterModelPickerGroupsByPlan({groups:i,billing:t}),[i,t]),c=rt(()=>flattenModelPickerGroups(l).map(e=>({id:e.model.id,label:getModelDisplayName(e.model.id)})),[l]);return{isCoMode:e,groups:l,catalog:c,resolved:null!==t}}Ex(),Ex(),Px(),Ex(),Px(),__name(useFeatureModelCatalog,"useFeatureModelCatalog"),Ex(),Px();var u$=__name(({featureLabel:e,defaultLabel:t,currentModelId:n,modelFilter:r,onPick:o,onBack:s})=>{const[a,i]=et(""),{isCoMode:l,groups:c,resolved:d}=useFeatureModelCatalog(),u=rt(()=>r?c.map(e=>({...e,models:e.models.filter(e=>r(e))})).filter(e=>e.models.length>0):c,[c,r]),m=rt(()=>filterModelPickerGroups(u,a),[u,a]),p=rt(()=>getModelLabelColumnWidth(u.flatMap(e=>e.models),{showDefaultBadge:!1}),[u]),g=rt(()=>[{kind:"reset"},...flattenModelPickerGroups(m).map(e=>({kind:"model",providerId:e.providerId,model:e.model}))],[m]),h=rt(()=>{if(!n)return 0;const e=g.findIndex(e=>"model"===e.kind&&e.model.id===n);return e>=0?e:0},[g,n]),{cursor:f}=useListNavigation({items:g,initialIndex:h,searchCursorIndex:1,searchQuery:a,onSearchChange:i,onSelect:__name(e=>{d&&o("reset"===e.kind?void 0:e.model.id)},"onSelect"),onCancel:s}),[y,S]=et(0),w=useTerminalHeight()-1,k=Math.max(4,w-13-2*m.length);nt(()=>{S(e=>clampScrollOffset({cursor:f,total:g.length,maxVisible:k,currentOffset:e}))},[f,g.length,k]);const v=y,C=y+k,b=0===v,E=windowModelGroups({groups:m,firstSectionBase:1,windowStart:v,windowEnd:C}),T=g.length>k;return Xe.createElement(_D,{title:`${e} › select model`,subtitle:Xe.createElement(Xe.Fragment,null,"Pick a model for this task, or reset it to the default."," ",createOSC8Link("https://commandcode.ai/docs/troubleshooting/faqs#why-do-i-see-small-background-requests","Why background requests?",!1)),footer:Xe.createElement(Ve,{italic:!0,color:Rx.DIM},"type to search · ↑/↓ navigate · enter select",a?" · esc to clear":" · esc back")},isCmdZdrEnabled()&&Xe.createElement(Ge,{marginBottom:1},Xe.createElement(Ve,{color:Rx.YELLOW},"Your pick is saved but stays paused until CMD_ZDR is unset.")),Xe.createElement(Ge,{marginBottom:2,flexDirection:"column",width:"100%"},Xe.createElement(kI,{query:a,resultCount:a?g.length-1:void 0,placeholder:"Type to search models..."})),d?Xe.createElement(Xe.Fragment,null,Xe.createElement(Ge,{flexDirection:"column"},b&&Xe.createElement(Ge,{flexDirection:"column"},Xe.createElement(Ve,{bold:!0,dimColor:!0},"Default"),Xe.createElement(Ge,null,Xe.createElement(Ve,{backgroundColor:0===f?eI:void 0,color:n?Rx.WHITE:Rx.GREEN},t," "),!n&&Xe.createElement(Ve,{color:Rx.GREEN},it.tick))),E.map(({group:e,groupWindow:t},r)=>Xe.createElement(Ge,{key:`${e.providerId}-${e.label}`,flexDirection:"column",marginTop:0!==r||b?1:0},Xe.createElement(Ve,{bold:!0,dimColor:!0},e.label),t.rows.map((r,o)=>Xe.createElement(bL,{key:`${e.providerId}-${e.label}-${r.id}`,model:r,providerId:e.providerId,isHighlighted:t.baseIndex+o===f,isCurrent:r.id===n,showProviderLabel:!!l&&void 0,showDefaultBadge:!1,labelColumnWidth:p}))))),T&&Xe.createElement(Ge,{marginTop:1},Xe.createElement(Ve,{color:Rx.DIM},"Showing ",v+1,"–",Math.min(C,g.length)," of"," ",g.length,v>0?" · ↑ more":"",C<g.length?" · ↓ more":""))):Xe.createElement(Ge,null,Xe.createElement(Ve,{color:Rx.DIM},"Loading available models…")))},"FeatureModelPicker");function clampDescriptionLines(e){const t=Math.max(e.width,10),{maxLines:n}=e,r=e.text.trim().split(/\s+/).filter(Boolean);if(0===r.length||n<=0)return[];const o=[];let s="",a=0,i=!1;for(;a<r.length;){let e=r[a];e.length>t&&(r.splice(a,1,e.slice(0,t),e.slice(t)),e=r[a]);const l=s?`${s} ${e}`:e;if(l.length<=t)s=l,a+=1;else if(o.push(s),s="",o.length===n){i=!0;break}}if(!i)return s&&o.push(s),o;const l=o[n-1];return o[n-1]=l.length>=t?`${l.slice(0,t-1)}…`:`${l}…`,o}function formatSettingValue(e){if(void 0!==e.displayValue)return e.displayValue;if("boolean"===e.kind)return!0===e.currentValue?"Enabled":"Disabled";const t=(e.options??[]).find(t=>t.value===e.currentValue);return t?t.label:String(e.currentValue)}function startsNewGroup(e,t){return 0===t||e[t-1]?.group!==e[t]?.group}__name(clampDescriptionLines,"clampDescriptionLines"),__name(formatSettingValue,"formatSettingValue"),__name(startsNewGroup,"startsNewGroup");var m$=__name(({onClose:e,staticKey:t,loadTasteStatus:n})=>{const[r,o]=et([]),[s,a]=et(!0),[i,l]=et(""),[c,d]=et(null),{catalog:u}=useFeatureModelCatalog(),m=ot(()=>listConfigSettings({modelCatalog:u}).then(e=>o(e)),[u]);nt(()=>{let e=!0;return listConfigSettings({modelCatalog:u}).then(t=>{e&&o(t)}).finally(()=>{e&&a(!1)}),()=>{e=!1}},[u]);const p=rt(()=>filterConfigSettings({settings:r,query:i}),[r,i]),g=rt(()=>r.reduce((e,t)=>Math.max(e,t.label.length),0)+2,[r]),h=__name((e,t)=>{"theme"!==e.id||"string"!=typeof t?"taste-learning"!==e.id&&e.id!==lm||n():applyTuiTheme(resolveCliTheme(t))},"applyLiveSideEffect"),f=__name(async e=>{if(e.featureModelKey)return void d(e);const t=nextSettingValue(e),n=r;o(n=>n.map(n=>n.id===e.id?{...n,currentValue:t}:n));try{await updateConfigSetting({id:e.id,value:t}),h(e,t)}catch{o(n)}},"selectSetting"),y=__name(async(e,t)=>{try{await updateConfigSetting({id:e.id,value:t??hm}),await m()}catch{}d(null)},"pickFeatureModel"),{cursor:S,error:w,setError:k}=useListNavigation({items:[...p],onSelect:__name(e=>{f(e)},"onSelect"),onReset:__name(e=>{v(e)},"onReset"),onCancel:e,searchQuery:i,onSearchChange:l,isActive:!s&&null===c,validate:__name(e=>e.locked?`${e.label} is locked by settings.local.json — edit that file to change it.`:null,"validate")}),v=__name(async e=>{if(e.locked)return void k(`${e.label} is locked by settings.local.json — edit that file to change it.`);if(e.currentValue===e.defaultValue)return void k(`${e.label} is already at its default.`);if(e.featureModelKey){try{await updateConfigSetting({id:e.id,value:e.defaultValue}),await m()}catch{}return}const t=r;o(t=>t.map(t=>t.id===e.id?{...t,currentValue:e.defaultValue}:t));try{await updateConfigSetting({id:e.id,value:e.defaultValue}),h(e,e.defaultValue)}catch{o(t)}},"resetSetting"),C=useTerminalWidth(),b=p[S],E=rt(()=>b?clampDescriptionLines({text:b.description,width:Math.max(20,C-2),maxLines:2}):[],[b,C]);if(c?.featureModelKey){const e=Ju.find(e=>e.key===c.featureModelKey),t="string"==typeof c.currentValue&&c.currentValue!==hm?c.currentValue:void 0;return Xe.createElement(u$,{featureLabel:c.label,defaultLabel:e?getFeatureDefaultLabel({meta:e,getModelDisplayName:getModelDisplayName}):"",currentModelId:t,modelFilter:"vision"===c.featureModelKey?e=>modelSupportsVision(e.id):void 0,onBack:()=>d(null),onPick:e=>{y(c,e)}})}return s?Xe.createElement(_D,{key:t,title:"Settings",gapAfterHeader:!1},Xe.createElement(CO,{label:"Loading settings"})):Xe.createElement(_D,{title:"Settings",footer:Xe.createElement(Ge,{flexDirection:"column",width:"100%"},Xe.createElement(Ge,{flexDirection:"column",height:2,width:"100%"},E.map((e,t)=>Xe.createElement(Ve,{key:t,color:Rx.DIM,wrap:"truncate-end"},e))),Xe.createElement(kA,{marginTop:0,hints:["type to filter","↑↓ navigate","enter to change","tab to reset",i?"esc to clear":"esc to close"]}))},Xe.createElement(Ge,{marginBottom:1,flexDirection:"column",width:"100%"},Xe.createElement(kI,{query:i,resultCount:i?p.length:void 0,placeholder:"Search settings..."})),0===p.length?Xe.createElement(Ge,{marginY:1},Xe.createElement(Ve,{color:Rx.GRAY},'No settings match "',i,'"')):Xe.createElement(Ge,{flexDirection:"column"},p.map((e,t)=>{const n=t===S?eI:void 0,r=!i&&startsNewGroup(p,t);return Xe.createElement(Xe.Fragment,{key:e.id},r&&Xe.createElement(Ge,{marginTop:0===t?0:1},Xe.createElement(Ve,{color:Rx.DIM,bold:!0},e.group)),Xe.createElement(Ge,null,Xe.createElement(Ve,{color:e.locked?Rx.DIM:Rx.WHITE,backgroundColor:n},e.label.padEnd(g)),Xe.createElement(Ve,{color:e.locked?Rx.DIM:Rx.GREEN,backgroundColor:n},formatSettingValue(e)),e.locked&&Xe.createElement(Ve,{color:Rx.DIM,backgroundColor:n}," (locked by settings.local.json)")))})),w&&Xe.createElement(Ge,{marginTop:1},Xe.createElement(Ve,{color:Rx.GRAY},w)))},"SettingsConfig");function SettingsConfigView({staticKey:e,onClose:t,loadTasteStatus:n}){return Xe.useEffect(()=>{hardResetForResize()},[]),Xe.createElement(Xe.Fragment,null,Xe.createElement(XI,{staticKey:e}),Xe.createElement(Ge,{flexDirection:"column",width:"100%"},Xe.createElement(m$,{onClose:t,staticKey:e,loadTasteStatus:n})))}function categoryColor(e){return isFatalWarningCategory(e)?Rx.RED:Rx.YELLOW}__name(SettingsConfigView,"SettingsConfigView"),Ex(),Ex(),Px(),Ex(),Ex(),Px(),__name(categoryColor,"categoryColor");var p$=formatSkillWarningsAsMarkdown;async function copyAllWarnings(e,t){try{const{writeClipboardText:n}=await Promise.resolve().then(()=>(Px(),Tx));if(!await n(p$(e)))throw new Error("clipboard unavailable");const r=e.length;t({text:`Copied ${r} issue${1===r?"":"s"} to clipboard`,color:Rx.GREEN})}catch{t({text:"Clipboard write failed",color:Rx.YELLOW})}}__name(copyAllWarnings,"copyAllWarnings");var g$=__name(({warnings:e,onClose:t,isActive:n=!0})=>{const r=groupWarnings(e),o=e.length>0,[s,a]=et(null),i=tt(null),l=tt(!0);nt(()=>()=>{l.current=!1,i.current&&(clearTimeout(i.current),i.current=null)},[]);const c=__name(e=>{l.current&&(i.current&&clearTimeout(i.current),a(e),i.current=setTimeout(()=>{l.current&&(a(null),i.current=null)},3e3))},"showStatus");return Ye((n,r)=>r.escape||" "===n&&o?(FI(),void t()):void("c"===n&&o&©AllWarnings(e,c)),{isActive:n}),Xe.createElement(Ge,{flexDirection:"column",paddingX:0,width:"100%"},Xe.createElement(Ge,null,Xe.createElement(Ve,{color:Ox,bold:!0},"Skills"," "),Xe.createElement(Ve,{color:Rx.DIM},"› "),Xe.createElement(Ve,{color:Ox,bold:!0},"Skipped"," "),Xe.createElement(Ve,{color:Rx.WHITE},e.length)),o&&Xe.createElement(Ge,{marginBottom:1},Xe.createElement(Ve,{color:Rx.DIM},"Press c to copy all issues")),o?Xe.createElement(Ge,{flexDirection:"column"},r.map(e=>Xe.createElement(Ge,{key:e.category,flexDirection:"column"},Xe.createElement(Ge,null,Xe.createElement(Ve,{color:categoryColor(e.category)},e.category)),e.items.map(e=>Xe.createElement(Ge,{key:e.path,flexDirection:"column",marginBottom:1},Xe.createElement(Ge,{paddingLeft:2},Xe.createElement(fI,{url:p(e.path).href,text:skillIdentifier(e.path),color:Rx.WHITE})),Xe.createElement(Ge,{paddingLeft:4},Xe.createElement(Ve,{color:Rx.WHITE},e.reason))))))):Xe.createElement(Ge,{marginTop:1},Xe.createElement(Ve,{color:Rx.DIM},"No issues — every skill loaded.")),s&&Xe.createElement(Ge,{marginTop:1},Xe.createElement(Ve,{color:s.color},s.text)),Xe.createElement(Ge,{marginTop:1,flexDirection:"column"},Xe.createElement(Ve,{color:Rx.DIM},o?"c copy all issues · esc back to skills":"esc back to skills")))},"SkillsConfigIssues"),h$=[],f$=__name(({warnings:e=h$,onClose:t})=>{const[n,r]=et("list");return Ye((o,s)=>{"list"===n&&(s.escape&&t?t():" "===o&&!s.ctrl&&!s.meta&&e.length>0&&r("issues"))},{isActive:"list"===n}),"issues"===n?Xe.createElement(g$,{warnings:e,onClose:()=>r("list"),isActive:!0}):Xe.createElement(Ge,{flexDirection:"column",paddingX:0,width:"100%"},Xe.createElement(Ge,null,Xe.createElement(Ve,{color:Ox,bold:!0},"Skills"),e.length>0&&Xe.createElement(Xe.Fragment,null,Xe.createElement(Ve,{color:Rx.DIM}," · "),Xe.createElement(Ve,{color:Rx.YELLOW},e.length," skipped"))),Xe.createElement(Ge,{marginBottom:1},Xe.createElement(Ve,{color:Rx.DIM},"No skills found")),Xe.createElement(Ve,{color:Rx.DIM},"Create skills in:"),Xe.createElement(Ve,{color:Rx.DIM}," ","~/",".commandcode","/","skills","/ (user)"),Xe.createElement(Ve,{color:Rx.DIM}," ","~/.agents/","skills","/ (user, .agents)"),Xe.createElement(Ve,{color:Rx.DIM}," ",".commandcode","/","skills","/ (project)"),Xe.createElement(Ve,{color:Rx.DIM}," ",".agents/","skills","/ (project, .agents)"),Xe.createElement(Ge,{marginTop:1},Xe.createElement(Ve,{color:Rx.DIM},e.length>0&&"space to view issues · ","Press ",Xe.createElement(Ve,{bold:!0},"Esc")," to close")))},"SkillsConfigEmpty");Ex();var y$=__name(()=>"win32"===process.platform?'No editor found. Set $EDITOR: setx EDITOR "code"':"No editor found. Set $EDITOR: echo 'export EDITOR=\"code\"' >> "+("darwin"===process.platform?"~/.zshrc":"~/.bashrc"),"getEditorSetupMessage");Ex();var S$=__name(({title:e,subtitle:t,skills:n,baseIndex:r,cursor:o,disabled:s})=>Xe.createElement(Ge,{flexDirection:"column",marginTop:1},Xe.createElement(Ge,null,Xe.createElement(Ve,{color:Wx,bold:!0},e," "),Xe.createElement(Ve,{color:Wx},t)),n.map((e,t)=>{const n=r+t===o,a=s.has(e.label),i=n?eI:void 0;return Xe.createElement(Ge,{key:e.filePath},Xe.createElement(Ve,{color:a?Rx.DIM:Rx.GREEN,backgroundColor:i},a?"[off] ":"[on] "),Xe.createElement(Ve,{color:a?Rx.DIM:Rx.WHITE,backgroundColor:i},e.label),e.fromAgents&&Xe.createElement(Ve,{color:Rx.DIM,backgroundColor:i}," [.agents]"),Xe.createElement(Ve,{color:Rx.DIM,backgroundColor:i}," · ~",e.estimatedTokens," tokens "))})),"SkillSection"),w$=__name(({onClose:e})=>{const[t,n]=et([]),[r,o]=et([]),[s,a]=et(!0),[i,l]=et(null),[c,d]=et(""),[u,m]=et(new Set),[p,g]=et(new Map),[h,f]=et(!1),[y,S]=et(null),[w,k]=et("list"),[v,C]=et(0),b=useTerminalHeight(),E=tt(!1);nt(()=>{__name(async()=>{try{const e=await loadCommandSkillPickerState();n([...e.skills]),o([...e.warnings]),m(new Set(e.disabled)),g(new Map(e.disabledScopes)),f(e.noProjectRoot)}catch(e){l(e instanceof Error?e.message:"Failed to load skills")}finally{a(!1)}},"load")()},[]);const T=rt(()=>filterSkillPickerRowsForQuery({rows:t,searchQuery:c}),[t,c]),P=T.sections.project,M=T.sections.user,x=T.sections.bundled,I=T.rows,A=b-1,R=(P.length>0?1:0)+(M.length>0?1:0)+(x.length>0?1:0),O=Math.max(4,A-14-2*R),D=__name(async e=>{if(E.current)return;const t=getSkillTogglePolicy({skillName:e.label,disabled:u,disabledScopes:p,noProjectRoot:h});if(!t.allowed)return void S(t.notice);E.current=!0;const n=new Set(u);t.enabling&&n.delete(e.label),t.enabling||n.add(e.label),m(n),S(null);try{const n=await setCommandSkillEnabled(e.label,t.enabling),r=new Map(p);t.enabling&&r.delete(e.label),t.enabling||r.set(e.label,n),g(r),S(getSkillPickerNoProjectWriteNotice(n))}catch(e){m(u),S(`Failed to save: ${e instanceof Error?e.message:String(e)}`)}finally{E.current=!1}},"toggleSkill");nt(()=>{"issues"===w&&d("")},[w]);const L="list"===w&&t.length>0,{cursor:N}=useListNavigation({items:I,onSelect:D,onCancel:e,searchQuery:c,onSearchChange:d,initialIndex:0,isActive:L});if(nt(()=>{C(e=>clampScrollOffset({cursor:N,total:I.length,maxVisible:O,currentOffset:e}))},[N,I.length,O]),Ye((t,n)=>{if(!n.tab)return;const r=I[N];r&&(async()=>{try{await Ct([{file:r.filePath,line:1}]),e()}catch(e){if(e instanceof Error&&e.message.includes("$EDITOR environment variable"))return void l(y$());l(e instanceof Error?e.message:"Failed to open skill in editor")}})()},{isActive:L}),Ye((e,n)=>{"list"===w&&0!==t.length&&" "===e&&!n.ctrl&&!n.meta&&r.length>0&&0===c.length&&k("issues")},{isActive:"list"===w&&t.length>0}),s)return Xe.createElement(_D,{title:"Skills",gapAfterHeader:!1},Xe.createElement(Ve,{color:Rx.DIM},"Loading skills..."));if(i)return Xe.createElement(_D,{title:"Skills",titleColor:Rx.RED,gapAfterHeader:!1,footer:Xe.createElement(Ve,{italic:!0,color:Rx.DIM},"Press ",Xe.createElement(Ve,{bold:!0},"Esc")," to close")},Xe.createElement(Ve,{color:Rx.DIM},i));if(0===t.length)return Xe.createElement(f$,{warnings:r,onClose:e});if("issues"===w)return Xe.createElement(g$,{warnings:r,onClose:()=>k("list"),isActive:!0});const $=t.filter(e=>u.has(e.label)).length,_=v,F=v+O,U=sliceSectionForWindow({section:P,sectionBase:0,windowStart:_,windowEnd:F}),j=sliceSectionForWindow({section:M,sectionBase:P.length,windowStart:_,windowEnd:F}),B=sliceSectionForWindow({section:x,sectionBase:P.length+M.length,windowStart:_,windowEnd:F}),W=I.length>O;return Xe.createElement(_D,{title:"Skills",titleSuffix:Xe.createElement(Xe.Fragment,null," ",t.length," skill",1===t.length?"":"s",$>0&&Xe.createElement(Xe.Fragment,null,Xe.createElement(Ve,{color:Rx.DIM}," · "),Xe.createElement(Ve,{color:Rx.YELLOW},$," off")),r.length>0&&Xe.createElement(Xe.Fragment,null,Xe.createElement(Ve,{color:Rx.DIM}," · "),Xe.createElement(Ve,{color:Rx.YELLOW},r.length," skipped"))),subtitle:getSkillPickerNoProjectNotice(h),footer:Xe.createElement(Ge,{flexDirection:"column"},Xe.createElement(Ve,{italic:!0,color:Rx.DIM},"type to search · ↑/↓ navigate · enter to toggle · tab to edit",r.length>0&&!c&&" · space to view issues",c?" · esc to clear":" · esc to close"),Xe.createElement(Ve,{color:Rx.DIM},"add skills:"," ",Xe.createElement(Ve,{color:Rx.CYAN},getBinaryCommand()," skills add ","<owner/repo>")))},Xe.createElement(Ge,{marginBottom:1,flexDirection:"column",width:"100%"},Xe.createElement(kI,{query:c,resultCount:c?I.length:void 0,placeholder:"Type to search skills..."})),0===I.length?Xe.createElement(Ge,{marginY:1},Xe.createElement(Ve,{color:Rx.GRAY},'No skills match "',c,'"')):Xe.createElement(Xe.Fragment,null,Xe.createElement(Ge,{flexDirection:"column"},U.rows.length>0&&Xe.createElement(S$,{title:"Project skills",subtitle:"(.commandcode/skills or .agents/skills)",skills:U.rows,baseIndex:U.baseIndex,cursor:N,disabled:u}),j.rows.length>0&&Xe.createElement(S$,{title:"User skills",subtitle:"(~/.commandcode/skills or ~/.agents/skills)",skills:j.rows,baseIndex:j.baseIndex,cursor:N,disabled:u}),B.rows.length>0&&Xe.createElement(S$,{title:"Bundled skills",subtitle:"(ships with Command Code)",skills:B.rows,baseIndex:B.baseIndex,cursor:N,disabled:u})),W&&Xe.createElement(Ge,{marginTop:1},Xe.createElement(Ve,{color:Rx.DIM},"Showing ",_+1,"–",Math.min(F,I.length)," of"," ",I.length,_>0?" · ↑ more":"",F<I.length?" · ↓ more":""))),y&&Xe.createElement(Ge,{marginTop:1},Xe.createElement(Ve,{color:Rx.YELLOW},y)))},"SkillsConfig");function SkillsConfigView({staticKey:e,onClose:t}){return Xe.useEffect(()=>{hardResetForResize()},[]),Xe.createElement(Xe.Fragment,null,Xe.createElement(XI,{staticKey:e}),Xe.createElement(Ge,{flexDirection:"column",width:"100%"},Xe.createElement(w$,{onClose:t,staticKey:e})))}__name(SkillsConfigView,"SkillsConfigView"),Ex(),Ex(),Px();var k$=[{scope:"project",label:"This project"},{scope:"global",label:"User"}],v$=__name(({onClose:e,onSettingsChange:t,staticKey:n})=>{const[r,o]=et(!0),[s,a]=et(void 0),[i,l]=et(void 0),[c,d]=et(!0),u=isProjectTasteToggleLocked(i),m=ot(async()=>{try{const e=await getTasteLearningSettings();o(e.global),a(e.project),l(e.projectSource)}catch{}},[]);nt(()=>{m().finally(()=>d(!1))},[m]);const p=__name(async(e,n,r)=>{e();try{await r(),t?.(),await m()}catch(e){n()}},"persist"),g=__name(e=>{const t=resolveTasteScopeToggle({scope:e.scope,globalEnabled:r,projectOverride:s,projectSource:i});if("locked"===t.kind)return;if("global"===t.scope)return p(()=>o(t.value),()=>o(!t.value),()=>setTasteLearning({tasteLearning:t.value,scope:"global"}));const n=s;return p(()=>a(t.value),()=>a(n),()=>setTasteLearning({tasteLearning:t.value,scope:"project"}))},"toggleRow"),h=__name(e=>{const t=resolveTasteScopeReset({scope:e.scope,globalEnabled:r,projectOverride:s,projectSource:i});if("noop"===t.kind)return;if("save-global"===t.kind)return p(()=>o(!0),()=>o(!1),()=>setTasteLearning({tasteLearning:!0,scope:"global"}));const n=s;return p(()=>a(void 0),()=>a(n),()=>clearProjectTasteLearning())},"resetRow"),{cursor:f}=useListNavigation({items:k$,onSelect:__name(e=>{g(e)},"onSelect"),onReset:__name(e=>{h(e)},"onReset"),onCancel:e,searchQuery:"",onSearchChange:__name(()=>{},"onSearchChange"),disableSearch:!0,isActive:!c});if(c)return Xe.createElement(_D,{key:n,title:"Taste Learning",gapAfterHeader:!1},Xe.createElement(CO,{label:"Loading configuration"}));const y=__name(e=>"project"===e.scope?s??r:r,"valueFor");return Xe.createElement(_D,{key:n,title:"Taste Learning",subtitle:"Learn from your interactions.",hint:"↑/↓ navigate · enter to toggle · r reset to default · esc to close"},k$.map((e,t)=>{const n=t===f,r=y(e),o="project"===e.scope&&u;return Xe.createElement(Ge,{key:e.scope},Xe.createElement(Ve,{color:n?Rx.CYAN:Rx.GRAY},n?`${it.pointer} `:" "),Xe.createElement(Ve,{color:n?Rx.CYAN:Rx.WHITE},e.label.padEnd(16)),Xe.createElement(Ve,{color:r?Rx.GREEN:Rx.DIM},r?"enabled":"disabled"),o?Xe.createElement(Ve,{color:Rx.DIM}," ","(set in settings.local.json)"):null)}),Xe.createElement(Ge,{marginTop:1,flexDirection:"column"},Xe.createElement(Ve,{color:Rx.DIM},"Taste data stored in .commandcode/taste/taste.md"),u?Xe.createElement(Ve,{color:Rx.DIM},"This project is pinned by .commandcode/settings.local.json — edit that file to change it."):null))},"TasteConfig");function TasteConfigView({staticKey:e,onClose:t,loadTasteStatus:n}){return Xe.createElement(Xe.Fragment,null,Xe.createElement(XI,{staticKey:e}),Xe.createElement(Ge,{flexDirection:"column",width:"100%"},Xe.createElement(v$,{onClose:t,onSettingsChange:n,staticKey:e})))}function fetchUsageData2(){return fetchUsageData({getAuthKey:getAuthKey2,getApiBaseUrl:getApiBaseUrl,createRequest:__name(({baseUrl:e})=>createApiClient({baseUrl:e}),"createRequest")})}function getAuthKey2(){return getCommandAuthKey({runtime:getCommandConfigRuntime(),path:getAuthFile(),env:process.env})}function WindowLimitMeter({label:e,used:t,cap:n,resetAt:r,width:o,now:s}){const a=n>0?Math.min(100,t/n*100):0,i=getUsageColor(a),l=buildBlockBar({percentage:a,width:o}),c=r>s?` · resets in ${formatDuration(r-s)}`:"";return Xe.createElement(Ge,null,Xe.createElement(Ve,{color:Rx.DIM},e.padEnd(7)," "),Xe.createElement(Ve,{color:i},l.filled),Xe.createElement(Ve,{color:Wx},l.empty),Xe.createElement(Ve,{bold:!0,color:i},` ${Math.round(a)}%`),Xe.createElement(Ve,{color:Rx.DIM},c))}function getProgressBarWidth({terminalWidth:e}){return e<50?Math.max(10,e-10):e<70?Math.max(15,e-15):Math.min(30,e-15)}function getDaysColor(e){const t=getRenewalUrgency(e);return"critical"===t?Rx.RED:"warning"===t?Rx.YELLOW:void 0}__name(TasteConfigView,"TasteConfigView"),Ex(),Ex(),Px(),__name(fetchUsageData2,"fetchUsageData"),__name(getAuthKey2,"getAuthKey"),__name(WindowLimitMeter,"WindowLimitMeter"),__name(getProgressBarWidth,"getProgressBarWidth"),__name(getDaysColor,"getDaysColor");var C$=__name(({plan:e,status:t})=>Xe.createElement(Ge,{marginBottom:0},Xe.createElement(Ge,{flexShrink:0},Xe.createElement(Ve,{backgroundColor:Rx.BLUE,color:"#f4f4f4",bold:!0},`${PI}USAGE${PI}`)),e&&Xe.createElement(Xe.Fragment,null,Xe.createElement(Ve,null," "),Xe.createElement(Ve,{color:Rx.GRAY},`${e.name} Plan`)),t&&Xe.createElement(Xe.Fragment,null,Xe.createElement(Ve,{color:Rx.DIM}," · "),Xe.createElement(Ve,{color:"active"===t?Rx.GREEN:Rx.YELLOW},t))),"UsageBadge"),b$=__name(({showRetry:e})=>Xe.createElement(Ge,{marginTop:1},Xe.createElement(SA,null,e&&Xe.createElement(Xe.Fragment,null,Xe.createElement(wA,null,"r")," to retry · "),"Press ",Xe.createElement(wA,null,"Esc")," to close")),"UsageFooter"),E$=__name(({onClose:e})=>{const[t,n]=et("loading"),[r,o]=et(null),[s,a]=et(!1),i=getProgressBarWidth({terminalWidth:useTerminalWidth()}),l=ot(async e=>{try{a(!1);const t=await fetchUsageData2();if(e.aborted)return;if(!t.whoami){const e=t.errors.some(isAuthErrorMessage);return a(e),void n("error")}o(t),n("loaded")}catch{if(e.aborted)return;n("error")}},[]),c=Xe.useRef(null);Ye((r,o)=>{if(o.escape&&e(),"r"===r&&"error"===t){n("loading"),c.current?.abort();const e=new AbortController;c.current=e,l(e.signal)}}),nt(()=>{const e=new AbortController;return c.current=e,l(e.signal),()=>e.abort()},[l]);const d=r?projectUsageView({usageData:r}):null,u=d?.subscription??null,m=d?.plan??null;if("loading"===t)return Xe.createElement(Ge,{flexDirection:"column",paddingX:0,width:"100%"},Xe.createElement(C$,{plan:m,status:u?.status??null}),Xe.createElement(CO,null),Xe.createElement(b$,null));if("error"===t)return Xe.createElement(Ge,{flexDirection:"column",paddingX:0,width:"100%"},Xe.createElement(C$,{plan:m,status:u?.status??null}),Xe.createElement(Ge,{marginTop:1},Xe.createElement(Ve,{color:Rx.DIM},s?"Not authenticated. Run /login to connect your account.":"Something went wrong.")),Xe.createElement(b$,{showRetry:!s}));if(!r)return null;const p=d?.hasBillingData??!1,g=d?.usageUrl??null;if(!p)return Xe.createElement(Ge,{flexDirection:"column",paddingX:0,width:"100%"},Xe.createElement(C$,{plan:m,status:u?.status??null}),Xe.createElement(Ge,{marginTop:1,flexDirection:"column"},Xe.createElement(PO,{message:"No billing data found."}),g&&Xe.createElement(Ge,null,Xe.createElement(Ve,{color:Rx.DIM},"Visit "),Xe.createElement(fI,{url:g,text:"Studio",color:Rx.CYAN}),Xe.createElement(Ve,{color:Rx.DIM}," for usage details."))),Xe.createElement(b$,null));const h=d?.windowLimits??null,f=d?.summary??null,y=d?.now??Date.now(),S=d?.credits,w=S?.totalRemaining??0,k=S?.usagePercent??0,v=Boolean(S?.hasCreditsInfo),C=d?.daysLeft??null,b=getDaysColor(C),E=getUsageColor(k),T=buildBlockBar({percentage:k,width:i});return Xe.createElement(Ge,{flexDirection:"column",paddingX:0,width:"100%"},Xe.createElement(Ge,{marginBottom:1},Xe.createElement(C$,{plan:m,status:u?.status??null})),v?Xe.createElement(Ge,null,Xe.createElement(Ve,{color:E},T.filled),Xe.createElement(Ve,{color:Wx},T.empty),Xe.createElement(Ve,{bold:!0,color:E},` ${Math.round(k)}% used`)):Xe.createElement(Ve,{color:Rx.DIM},"Plan details unavailable"),v&&Xe.createElement(Ge,null,u?.currentPeriodEnd&&Xe.createElement(Ve,{color:Rx.DIM},"Cycle: "),Xe.createElement(Ve,null,formatCredits(w)),Xe.createElement(Ve,{color:Rx.DIM}," left"),f&&Xe.createElement(Xe.Fragment,null,Xe.createElement(Ve,{color:Rx.DIM}," · "),Xe.createElement(Ve,null,f.totalCount.toLocaleString()),Xe.createElement(Ve,{color:Rx.DIM}," requests")),null!==C&&Xe.createElement(Xe.Fragment,null,Xe.createElement(Ve,{color:Rx.DIM}," · "),0===C?Xe.createElement(Ve,{color:b},"renewal today"):Xe.createElement(Xe.Fragment,null,Xe.createElement(Ve,{color:b},`${C} day${1===C?"":"s"}`),Xe.createElement(Ve,{color:Rx.DIM}," to renewal")))),h?.limited&&Xe.createElement(Ge,{flexDirection:"column",marginTop:1},Xe.createElement(Ve,{color:Rx.DIM},"Usage limits"),h.fiveHour&&Xe.createElement(WindowLimitMeter,{label:"5-hour",used:h.fiveHour.used,cap:h.fiveHour.cap,resetAt:h.fiveHour.resetAt,width:i,now:y}),h.weekly&&Xe.createElement(Ge,{marginTop:h.fiveHour?1:0,flexDirection:"column"},Xe.createElement(WindowLimitMeter,{label:"Weekly",used:h.weekly.used,cap:h.weekly.cap,resetAt:h.weekly.resetAt,width:i,now:y}))),g&&Xe.createElement(Ge,{marginTop:1},Xe.createElement(Ve,{color:Rx.DIM},"Full breakdown at "),Xe.createElement(fI,{url:g,text:d?.usageUrlDisplay??g,color:Rx.CYAN})),Xe.createElement(b$,null))},"UsageOverlay");function UsageView({staticKey:e,onClose:t}){return Xe.createElement(Xe.Fragment,null,Xe.createElement(XI,{staticKey:e}),Xe.createElement(Ge,{flexDirection:"column",width:"100%"},Xe.createElement(E$,{onClose:t})))}__name(UsageView,"UsageView"),Ex(),Px(),Ex(),Px(),Ex();var T$="@last";function shortenHomePath(e){const t=$();return e.startsWith(t)?`~${e.slice(t.length)}`:e}__name(shortenHomePath,"shortenHomePath");var P$={approved:{label:`${it.tick} approved`,color:Rx.GREEN},"not-implemented":{label:`${it.circleDotted} set aside`,color:Rx.YELLOW},pending:{label:`${it.dot} pending`,color:Rx.DIM}},M$=createNodeRuntime(),x$={"?":"Why? Explain the reasoning behind this.",x:"Cut this — remove it from the plan.","!":"Risky — double-check this before implementing."};function lineStyleProps(e){if(e.changed)return{color:Rx.GREEN,bold:!1,italic:!1};const t={color:Rx.WHITE,bold:!1,italic:!1};if(!e.style)return t;switch(e.style.role){case"heading":return{color:Yx.HEADING,bold:!0,italic:!1};case"code":case"code-fence":return{color:Yx.CODE,bold:!1,italic:!1};case"quote":return{color:Rx.DIM,bold:!1,italic:!0};case"table":return{color:Rx.CYAN,bold:!1,italic:!1};default:return t}}__name(lineStyleProps,"lineStyleProps");var I$=__name(({plan:e,variant:t="browse",fallbackContent:n,onBack:r,onSubmitFeedback:o,onExecute:s,onAutoAccept:a})=>{const[i,l]=et(null),[c,d]=et(e.annotations),[u,m]=et(!1);nt(()=>{u||d(e.annotations)},[e.annotations,u]);const[p,g]=et({kind:"line",lineNumber:1}),[h,f]=et(null),[y,S]=et(null),[w,k]=et(null),[v,C]=et(!1),[b,E]=et(0),[T,P]=et(null),M=useTerminalHeight(),x=useTerminalWidth();nt(()=>{__name(async()=>{const t=await readPlanContent({runtime:M$,filePath:e.filePath})??n??null;l(null===t?[]:splitPlanLines(t))},"load")()},[e.filePath,n]);const I=e.version??1;nt(()=>{I<=1||!e.filePath||readPlanVersionSnapshot({runtime:M$,filePath:e.filePath,version:I-1}).then(P).catch(()=>{})},[I,e.filePath]);const A=rt(()=>null!==T&&null!==i?diffPlanChangedLines({previous:T,current:i}):new Set,[T,i]),R=c.length,O=rt(()=>{const e={id:"feedback",label:`Submit review (${R})`,chord:"ctrl+r",color:Rx.CYAN,hint:"agent revises the plan, returns it for review"};return"approval"===t?[...R>0?[e]:[],{id:"auto-accept",label:"Approve",chord:"ctrl+a",color:Rx.GREEN,hint:R>0?"executes the plan · comments go along as notes":"executes the plan"},{id:"cancel",label:"Cancel",chord:"esc",color:Rx.YELLOW,hint:""}]:[...R>0?[e]:[],{id:"execute",label:"Execute plan",chord:"ctrl+e",color:Rx.GREEN,hint:"executes the plan as written"},{id:"cancel",label:"Back",chord:"esc",color:Rx.YELLOW,hint:""}]},[t,R]),D=rt(()=>h?c.filter(e=>e.line!==h.line):c,[c,h]),L=rt(()=>buildPlanReaderRows({lines:i??[],annotations:D}),[i,D]),N=rt(()=>classifyPlanLines(i??[]),[i]),$=i?.length??0,_=resolvePlanWrapWidth(Math.max(20,x-7-2)),F=rt(()=>buildPlanReaderDisplayRows({rows:L,width:_}),[L,_]),U=getPlanReaderCursorDisplaySpan({displayRows:F,cursor:p}),j=M-1,B=Math.max(4,j-10-7),W=h?1:0,H=-1===U.first?F.length-1:U.first,G=-1===U.last?F.length-1:U.last+W;nt(()=>{E(e=>{const t=clampScrollOffset({cursor:Math.max(0,G),total:F.length+W,maxVisible:B,currentOffset:e});return clampScrollOffset({cursor:Math.max(0,H),total:F.length+W,maxVisible:B,currentOffset:t})})},[H,G,F.length,W,B]),nt(()=>{g(e=>snapPlanReaderCursor({cursor:e,lineCount:$,actions:[]}))},[$]),nt(()=>{g(e=>"action"!==e.kind||O.some(t=>t.id===e.id)?e:{kind:"line",lineNumber:Math.max(1,$)})},[O,$]);const V=__name(t=>{m(!0),d(t),e.filePath&&setPlanAnnotations({runtime:M$,filePath:e.filePath,annotations:t}).catch(()=>k("Failed to save comments to disk"))},"persistAnnotations"),z="line"===p.kind?c.find(e=>e.line===p.lineNumber):void 0,q=__name(()=>{if(0===c.length||!i)return;const t=buildPlanAnnotationsPrompt({title:e.title,filePath:e.filePath||"(plan not saved to a file yet)",lines:i,annotations:c});e.filePath&&snapshotPlanVersion({runtime:M$,filePath:e.filePath}).catch(()=>{}),V([]),o(t)},"submitFeedback"),K=__name(t=>{if(t&&c.length>0&&i){const t=buildPlanApprovalNotesPrompt({title:e.title,...e.filePath?{filePath:e.filePath}:{},lines:i,annotations:c});return V([]),void a?.(t)}V([]),a?.()},"approve"),Y=__name(()=>{"approval"===t&&(R>0?S({kind:"approve",choice:"notes"}):K(!1))},"requestApprove"),J=__name(()=>{R>0&&!e.filePath?S({kind:"cancel"}):r()},"requestCancel"),Q=__name(t=>{"feedback"!==t?"execute"!==t?"auto-accept"!==t?"cancel"===t&&J():Y():(s??o)(buildPlanExecutePrompt({title:e.title,filePath:e.filePath||e.fileName})):q()},"runAction"),X=__name(()=>{e.filePath?(C(!0),openFileInEditor(e.filePath).then(async()=>{const t=await readPlanContent({runtime:M$,filePath:e.filePath});null!==t&&l(splitPlanLines(t))}).catch(e=>k(e instanceof Error?e.message:"Failed to open the editor")).finally(()=>{C(!1),hardResetForResize()})):k("This plan is not saved to a file yet")},"openExternalEditor"),Z=__name(e=>{"line"!==p.kind||p.lineNumber<1||p.lineNumber>$||f({line:p.lineNumber,value:e||(z?.text??""),hadExisting:void 0!==z})},"openDraft"),ee=__name(e=>{h&&(V(upsertPlanAnnotation({annotations:c,line:h.line,text:e,createdAt:(new Date).toISOString()})),f(null))},"commitDraft"),te=rt(()=>{const e=new Set;for(const t of c)e.add(t.line);for(const t of A)e.add(t);return[...e].sort((e,t)=>e-t)},[c,A]),ne=__name(e=>{if(0===te.length)return;const t="line"===p.kind?p.lineNumber:$+1,n="next"===e?te.find(e=>e>t)??te[0]:[...te].reverse().find(e=>e<t)??te[te.length-1];void 0!==n&&g({kind:"line",lineNumber:n})},"jumpMarked");Ye((e,t)=>{t.escape&&f(null)},{isActive:null!==h}),Ye((e,t)=>{if(y)if(t.escape)S(null);else if("approve"===y.kind&&(t.leftArrow||t.rightArrow||t.tab))S({kind:"approve",choice:"notes"===y.choice?"original":"notes"});else if(t.return){if("approve"===y.kind)return S(null),void K("notes"===y.choice);S(null),r()}},{isActive:null!==y}),Ye((e,n)=>{if(n.escape)return void J();if(n.upArrow||n.downArrow)return k(null),void g(e=>{if("action"===e.kind){const t=O.findIndex(t=>t.id===e.id);if(n.upArrow){if(t<=0&&$>0)return{kind:"line",lineNumber:$};const n=O[Math.max(0,t-1)];return n?{kind:"action",id:n.id}:e}const r=O[Math.min(O.length-1,t+1)];return r?{kind:"action",id:r.id}:e}if(n.upArrow)return{kind:"line",lineNumber:Math.max(1,e.lineNumber-1)};if(e.lineNumber>=$){const t=O[0];return t?{kind:"action",id:t.id}:e}return{kind:"line",lineNumber:e.lineNumber+1}});if(n.pageUp||n.pageDown)return k(null),void g(e=>"action"===e.kind&&n.pageDown?e:movePlanReaderCursorByPage({displayRows:F,cursor:e,direction:n.pageDown?"down":"up",pageRows:Math.max(1,B-1)}));if(n.home||n.end)return k(null),void($>0&&g({kind:"line",lineNumber:n.home?1:$}));if(n.leftArrow||n.rightArrow){if("action"!==p.kind)return;const e=O.findIndex(e=>e.id===p.id);if(-1===e)return;const t=n.leftArrow?Math.max(0,e-1):Math.min(O.length-1,e+1),r=O[t];return void(r&&g({kind:"action",id:r.id}))}if(n.ctrl&&"r"===e)return void q();if(n.ctrl&&"a"===e&&"approval"===t)return void Y();if(n.ctrl&&"e"===e&&"browse"===t)return void Q("execute");if(n.ctrl&&"g"===e)return void X();if(n.ctrl&&"n"===e)return void ne("next");if(n.ctrl&&"p"===e)return void ne("previous");if(n.return)return"action"===p.kind?void Q(p.id):void Z("");const r=x$[e];"line"!==p.kind||!r||n.ctrl||n.meta?"line"===p.kind&&e.length>0&&!n.ctrl&&!n.meta&&Z(e):V(upsertPlanAnnotation({annotations:c,line:p.lineNumber,text:z?.text===r?"":r,createdAt:(new Date).toISOString()}))},{isActive:null===h&&null===y&&null!==i&&!v});const re=P$[e.status],oe=b,se=b+B-W,ae=F.slice(oe,se),ie=h?h.hadExisting?"enter to keep · clear + enter removes · esc keep as was":"enter to pin · esc discard":y?"approve"===y.kind?"←/→ choose · enter confirm · esc back":"enter discard · esc back":"action"===p.kind?"↑/↓ choose · enter to run":["type + enter to comment",...te.length>0?["ctrl+n/p jump "+(A.size>0?"changes":"comments")]:[],"quick: ? why x cut ! risky","ctrl+g $EDITOR"].join(" · ");return Xe.createElement(_D,{title:"approval"===t?`Plan review: ${e.title}`:e.title,titleSuffix:"approval"===t?Xe.createElement(Xe.Fragment,null," ","· ",shortenHomePath(e.filePath)||e.fileName," · v",e.version??1):Xe.createElement(Xe.Fragment,null," ","· ",shortenHomePath(e.filePath)||e.fileName," · v",e.version??1," ",Xe.createElement(Ve,{color:re.color},re.label)),subtitle:"approval"===t?"Review the plan like a PR — type on any line to comment, enter pins it under the line.":void 0,footer:Xe.createElement(Ve,{italic:!0,color:Rx.DIM},ie)},null===i?Xe.createElement(Ve,{color:Rx.DIM},"Loading plan..."):0===$?Xe.createElement(Ve,{color:Rx.DIM},"Plan file is empty or missing on disk."):Xe.createElement(Ge,{flexDirection:"column"},ae.map((e,t)=>{const n=oe+t,{row:r}=e;if("action"===r.kind)return null;if("annotation"===r.kind)return Xe.createElement(Ge,{key:`annotation-${r.lineNumber}-${n}`},Xe.createElement(Ve,{color:Rx.DIMMER}," ".repeat(5)),Xe.createElement(Ve,{backgroundColor:Dx.BADGE_BG,color:Dx.BADGE_FG}," ",e.isFirstSegment?"↳ ":" ",e.text," "));const o="line"===p.kind&&p.lineNumber===r.lineNumber,s=lineStyleProps({style:N[r.lineNumber-1],changed:A.has(r.lineNumber)}),a=F[n+1],i=!a||"line"!==a.row.kind||a.row.lineNumber!==r.lineNumber,l=n===se-1,c=null!==h&&h.line===r.lineNumber&&(i||l);return Xe.createElement(Xe.Fragment,{key:`line-${r.lineNumber}-${n}`},Xe.createElement(Ge,null,Xe.createElement(Ve,{color:Rx.DIMMER},e.isFirstSegment?String(r.lineNumber).padStart(4," "):" "," "),Xe.createElement(Ve,{color:r.hasAnnotation?Rx.CYAN:Rx.DIMMER},e.isFirstSegment&&r.hasAnnotation?`${it.bullet} `:" "),Xe.createElement(Ve,{color:s.color,bold:s.bold,italic:s.italic,backgroundColor:o?eI:void 0},e.text||" ")),c&&h&&Xe.createElement(Ge,null,Xe.createElement(Ve,{color:Rx.CYAN}," ┃ ",it.bullet," "),Xe.createElement(TextInput,{value:h.value,onChange:e=>f(t=>t?{...t,value:e}:t),onSubmit:ee,placeholder:"Type your comment…",focus:null!==h,stripBracketedPaste:!0})))})),Xe.createElement(Ge,{flexDirection:"column",marginTop:1},Xe.createElement(aI,{dividerColor:Rx.DIMMER}),Xe.createElement(Ge,null,Xe.createElement(Ve,{bold:!0,backgroundColor:Dx.BADGE_BG,color:Rx.WHITE}," REVIEW "),Xe.createElement(Ve,{color:Rx.DIM},R>0&&` ${R} pending comment${1===R?"":"s"}`,I>1&&` · round ${I}${A.size>0?` · ${A.size} line${1===A.size?"":"s"} changed`:""}`)),y?"approve"===y.kind?Xe.createElement(Ge,null,Xe.createElement(Ve,{bold:!0,color:Rx.GREEN},"Approve"," "),Xe.createElement(Ve,{color:"notes"===y.choice?Rx.WHITE:Rx.DIM,backgroundColor:"notes"===y.choice?eI:void 0},"notes"===y.choice?"(•)":"( )"," ","with ",R," comment",1===R?"":"s"," as notes"),Xe.createElement(Ve,{color:Rx.DIMMER}," "),Xe.createElement(Ve,{color:"original"===y.choice?Rx.WHITE:Rx.DIM,backgroundColor:"original"===y.choice?eI:void 0},"original"===y.choice?"(•)":"( )"," ","original plan · discard comments")):Xe.createElement(Ge,null,Xe.createElement(Ve,{color:Rx.YELLOW},"Discard ",R," pending comment",1===R?"":"s"," and exit review?")):O.map(e=>{const t="action"===p.kind&&p.id===e.id;return Xe.createElement(Ge,{key:e.id},Xe.createElement(Ve,{bold:!0,color:e.color,backgroundColor:t?eI:void 0},t?`${it.pointer} ${e.label} `:e.label),Xe.createElement(Ve,{color:Rx.DIM}," ",e.chord),e.hint&&Xe.createElement(Ve,{color:Rx.DIMMER}," ",e.hint))}),w&&Xe.createElement(Ve,{color:Rx.YELLOW},w)))},"PlanReader"),A$=createNodeRuntime();function PlanApprovalView({staticKey:e,planContent:t,planFilePath:n,onAutoAccept:r,onCancel:o,onSendFeedback:s}){nt(()=>{hardResetForResize()},[]);const[a,i]=et(null);nt(()=>{n&&listPlans({runtime:A$}).then(e=>i(e.find(e=>e.filePath===n)??null)).catch(()=>{})},[n]);const l=rt(()=>{if(a)return a;const e=n?.split("/").pop()??"plan.md";return{fileName:e,filePath:n??"",title:derivePlanTitle({content:t,fileName:e}),status:"pending",createdAt:"",updatedAt:"",annotations:[]}},[a,n,t]);return Xe.createElement(Xe.Fragment,null,Xe.createElement(XI,{staticKey:e}),Xe.createElement(Ge,{flexDirection:"column",width:"100%"},Xe.createElement(I$,{plan:l,variant:"approval",fallbackContent:t,onBack:o,onSubmitFeedback:s,onAutoAccept:r})))}__name(PlanApprovalView,"PlanApprovalView"),Ex(),Ex(),Px();var R$=Date.now(),O$=createNodeRuntime();function matchesTarget(e,t){const n=t.toLowerCase();return e.fileName.toLowerCase()===n||e.fileName.toLowerCase().replace(/\.md$/,"")===n||e.title.toLowerCase()===n}__name(matchesTarget,"matchesTarget");var D$=__name(({sessionId:e,target:t,onClose:n,onSubmitFeedback:r,onExecute:o})=>{const[s,a]=et([]),[i,l]=et([]),[c,d]=et(!0),[u,m]=et(null),[p,g]=et("session"),[h,f]=et(null),[y,S]=et(""),[w,k]=et(0),[v,C]=et(0),b=useTerminalHeight(),E=tt(!1);nt(()=>{__name(async()=>{try{const[n,r]=await Promise.all([listPlans({runtime:O$,sessionId:e,sessionStartMs:R$}),listPlans({runtime:O$})]);if(a([...n]),l([...r]),t&&!E.current)if(E.current=!0,t===T$){const e=n[0];e&&f(e)}else{const e=r.find(e=>matchesTarget(e,t.trim()));e?f(e):S(t.trim())}}catch(e){m(e instanceof Error?e.message:"Failed to load plans")}finally{d(!1)}},"load")()},[e,v]);const T="session"===p?s:i,P=rt(()=>{const e=y.trim().toLowerCase();return e?T.filter(t=>t.title.toLowerCase().includes(e)||t.fileName.toLowerCase().includes(e)):T},[T,y]),M=b-1,x=Math.max(3,M-9),I=null===h&&!c,{cursor:A}=useListNavigation({items:P,onSelect:__name(e=>f(e),"onSelect"),onCancel:n,searchQuery:y,onSearchChange:S,initialIndex:0,isActive:I});if(nt(()=>{k(e=>clampScrollOffset({cursor:A,total:P.length,maxVisible:x,currentOffset:e}))},[A,P.length,x]),Ye((e,t)=>{(t.leftArrow||t.rightArrow)&&(g(e=>"session"===e?"all":"session"),k(0))},{isActive:I}),h)return Xe.createElement(I$,{plan:h,onBack:()=>{f(null),C(e=>e+1)},onSubmitFeedback:r,onExecute:o});if(c)return Xe.createElement(_D,{title:"Plans",gapAfterHeader:!1},Xe.createElement(Ve,{color:Rx.DIM},"Loading plans..."));if(u)return Xe.createElement(_D,{title:"Plans",titleColor:Rx.RED,gapAfterHeader:!1,hint:"Esc to close"},Xe.createElement(Ve,{color:Rx.DIM},u));const R=w,O=w+x,D=P.slice(R,O),L=P.length>x;return Xe.createElement(_D,{title:"Plans",titleSuffix:Xe.createElement(Xe.Fragment,null," ",P.length," plan",1===P.length?"":"s"),subtitle:Xe.createElement(Xe.Fragment,null,Xe.createElement(Ve,{bold:"session"===p,color:"session"===p?AD:Rx.DIM},"This session"),Xe.createElement(Ve,{color:Rx.DIMMER},` ${it.triangleLeftSmall} ${it.triangleRightSmall} `),Xe.createElement(Ve,{bold:"all"===p,color:"all"===p?AD:Rx.DIM},"All plans")),footer:Xe.createElement(Ve,{italic:!0,color:Rx.DIM},"type to search · ↑/↓ navigate · ←/→ switch tab · enter to open",y?" · esc to clear":" · esc to close")},Xe.createElement(Ge,{marginBottom:1,flexDirection:"column",width:"100%"},Xe.createElement(kI,{query:y,resultCount:y?P.length:void 0,placeholder:"Type to search plans..."})),0===P.length?Xe.createElement(Ge,{marginY:1},Xe.createElement(Ve,{color:Rx.GRAY},y?`No plans match "${y}"`:"session"===p?"No plans in this session yet — use /plan or plan mode to create one. Press → for all plans.":"No saved plans yet — plans land in ~/.commandcode/plans when you use plan mode.")):Xe.createElement(Xe.Fragment,null,Xe.createElement(Ge,{flexDirection:"column"},D.map((e,t)=>{const n=R+t===A,r=P$[e.status];return Xe.createElement(Ge,{key:e.fileName},Xe.createElement(Ve,{color:n?DD:Rx.GRAY},n?`${it.pointer} `:" "),Xe.createElement(Ve,{bold:n,color:n?DD:Rx.WHITE},e.title),Xe.createElement(Ve,{color:r.color}," ",r.label),(e.version??1)>1&&Xe.createElement(Ve,{color:Rx.DIM}," ","v",e.version),e.annotations.length>0&&Xe.createElement(Ve,{color:Rx.CYAN}," ",e.annotations.length," comment",1===e.annotations.length?"":"s"),Xe.createElement(Ve,{color:Rx.DIM}," ",formatRelativeTimeShort({timestamp:e.updatedAt})))})),L&&Xe.createElement(Ge,{marginTop:1},Xe.createElement(Ve,{color:Rx.DIM},"Showing ",R+1,"–",Math.min(O,P.length)," of"," ",P.length,R>0?" · ↑ more":"",O<P.length?" · ↓ more":""))))},"PlansScreen");function PlansView({staticKey:e,sessionId:t,target:n,onClose:r,onSubmitFeedback:o,onExecute:s}){return Xe.useEffect(()=>{hardResetForResize()},[]),Xe.createElement(Xe.Fragment,null,Xe.createElement(XI,{staticKey:e}),Xe.createElement(Ge,{flexDirection:"column",width:"100%"},Xe.createElement(D$,{sessionId:t,target:n,onClose:r,onSubmitFeedback:o,onExecute:s})))}function ForkSummary({session:e,isSelected:t,nameColor:n}){if(!e.forkProvenance)return null;const r=t?void 0:Rx.DIM,o=e.userRenamed&&e.title?e.title:null;return o?Xe.createElement(Ve,{color:n},`${o} `,Xe.createElement(Ve,{color:r},`· ${e.forkProvenance}`)):Xe.createElement(Ve,{color:r},e.forkProvenance)}__name(PlansView,"PlansView"),Ex(),Ex(),Px(),Ex(),__name(ForkSummary,"ForkSummary");var L$=__name((e,t)=>e.padEnd(t),"padCell"),N$=__name(e=>e instanceof Error&&e.message?e.message:"Unknown error","getActionErrorMessage");function resolveRowColor(e){return e.isDeletePending?Rx.RED:e.isCurrentSession?Ox:e.isSelected?Rx.WHITE:Rx.GRAY}function renderRowSummary(e){const{session:t,isSelected:n,nameColor:r}=e;if(t.forkProvenance)return Xe.createElement(ForkSummary,{session:t,isSelected:n,nameColor:r});const o=getSessionSummary({session:t});return t.userRenamed&&t.title?Xe.createElement(Ve,{color:r},o):o}__name(resolveRowColor,"resolveRowColor"),__name(renderRowSummary,"renderRowSummary");var $$=["recent","created","messages"],_$={recent:"Recent",created:"Created",messages:"Messages"};function nextSortMode(e){const t=$$.indexOf(e);return $$[(t+1)%$$.length]}function sortSessions(e,t){return"created"===t?[...e].sort((e,t)=>Date.parse(t.createdAt)-Date.parse(e.createdAt)):"messages"===t?[...e].sort((e,t)=>t.messageCount-e.messageCount):e}function matchesSearch2(e,t){const n=t.toLowerCase().split(/\s+/).filter(Boolean);if(0===n.length)return!0;const r=[e.id,e.title??"",e.firstMessage,e.gitBranch??""].join(" ").toLowerCase();return n.every(e=>r.includes(e))}function getFilteredEmptyState(e){return e.namedOnly?{text:"No named sessions.",hint:"Press ctrl+n to show all."}:e.searchQuery?{text:`No sessions match "${e.searchQuery}"`,hint:"Press Esc to clear search."}:e.branchFilter&&e.currentBranch?{text:`No sessions found for branch "${e.currentBranch}"`,hint:"Press ctrl+b to show all branches, Esc to cancel"}:{text:"No previous sessions found",hint:"Press Esc to go back"}}function resolveProjectBaseDir(){const e=getCommandSessionRuntime();return getProjectSessionDir({env:e.env(),cwd:e.cwd()})}__name(nextSortMode,"nextSortMode"),__name(sortSessions,"sortSessions"),__name(matchesSearch2,"matchesSearch"),__name(getFilteredEmptyState,"getFilteredEmptyState"),__name(resolveProjectBaseDir,"resolveProjectBaseDir");var F$=__name(({onSelectSession:e,onClose:t,currentSessionId:n})=>{const[r,o]=et([]),[s,a]=et(0),[i,l]=et(0),[c,d]=et(!0),[u,m]=et(!1),[p,g]=et(!1),[h,f]=et(null),[y,S]=et(null),[w,k]=et(""),[v,C]=et(!1),[b,E]=et("recent"),[T,P]=et(!1),[M,x]=et("list"),[I,A]=et(null),[R,O]=et(""),[D,L]=et(null),[N]=et(()=>getCurrentGitBranch()),[$]=et(()=>resolveProjectBaseDir()),_=useTerminalHeight(),F=Math.max(6,_-19),U=ot(async()=>{d(!0);const e=await listCommandSessions();o(e),d(!1)},[]);nt(()=>{U()},[U]),nt(()=>{if(!y)return;const e=setTimeout(()=>S(null),3e3);return()=>clearTimeout(e)},[y]);const j=ot(async e=>{try{const t=getCommandSessionRuntime(),{method:n}=await deleteSessionV3({runtime:t,baseDir:$,id:e});g(!1),f(null),a(0),l(0),S("trash"===n?"Session moved to trash":"Session deleted"),await U()}catch(e){g(!1),f(`Failed to delete session: ${N$(e)}`)}},[U,$]),B=ot(async e=>{const t=I;if(t)try{const n=getCommandSessionRuntime();await renameSessionFile({runtime:n,cwd:n.cwd(),baseDir:$,id:t,name:e}),x("list"),A(null),L(null),await U()}catch(e){L(`Failed to rename session: ${N$(e)}`)}else x("list")},[I,U,$]),W=filterSessionsByBranch({sessions:r,branchFilter:u,currentBranch:N}),H=T?W.filter(e=>e.userRenamed):W,G=sortSessions(w?H.filter(e=>matchesSearch2(e,w)):H,b);if(nt(()=>{a(e=>Math.min(e,Math.max(0,G.length-1)))},[G.length]),Ye((r,o)=>{if("rename"===M)return o.escape?(x("list"),void A(null)):void 0;if(p){if(!o.return)return void g(!1);if(G.length>0&&s<G.length){const e=G[s];j(e.id)}}else{if(o.delete||isCtrlKey({inputChar:r,key:o,letter:"d",ctrlCode:4})){if(0===G.length)return;return G[s]?.id===n?void f("Cannot delete the current session"):(f(null),void g(!0))}if(isCtrlKey({inputChar:r,key:o,letter:"r",ctrlCode:18})){if(c)return;const e=G[s];if(!e)return;return L(null),O(e.title??""),A(e.id),void x("rename")}if(isCtrlKey({inputChar:r,key:o,letter:"p",ctrlCode:16}))C(e=>!e);else{if(!isCtrlKey({inputChar:r,key:o,letter:"s",ctrlCode:19}))return isCtrlKey({inputChar:r,key:o,letter:"n",ctrlCode:14})?(P(e=>!e),a(0),void l(0)):o.escape?w?(k(""),a(0),void l(0)):void t():isCtrlKey({inputChar:r,key:o,letter:"b",ctrlCode:2})?(m(e=>!e),a(0),void l(0)):void(o.upArrow?a(e=>{const t=Math.max(0,e-1);return t<i&&l(t),t}):o.downArrow?a(e=>{const t=Math.min(G.length-1,e+1);return t>=i+F&&l(t-F+1),t}):o.return?G.length>0&&s<G.length&&e(G[s].id):o.backspace?w&&(k(e=>e.slice(0,-1)),a(0),l(0)):!o.ctrl&&!o.meta&&!o.tab&&r&&1===r.length&&r>=" "&&(k(e=>e+r),a(0),l(0)));E(e=>nextSortMode(e))}}}),c)return Xe.createElement(Ge,{flexDirection:"column",paddingLeft:2},Xe.createElement(CO,{label:"Loading sessions"}));if(0===r.length)return Xe.createElement(Ge,{flexDirection:"column",paddingLeft:2},Xe.createElement(PO,{message:"No previous sessions found",hint:"Press Esc to go back"}));const V=G.slice(i,i+F),z=s<G.length?G[s]:null,q=p&&z?`Delete "${getSessionSummary({session:z})}"? Press Enter to confirm, any other key to cancel.`:null,K=getFilteredEmptyState({namedOnly:T,searchQuery:w,branchFilter:u,currentBranch:N});return Xe.createElement(_D,{title:"Resume Session",subtitle:`Sort: ${_$[b]} · Name: ${T?"Named":"All"} · Branch: ${u?N??"unknown":"All"}`},Xe.createElement(Ge,{marginBottom:1,width:"100%"},Xe.createElement(kI,{query:w,resultCount:w?G.length:void 0,placeholder:"Type to search sessions..."})),Xe.createElement(Ge,{marginBottom:1},Xe.createElement(Ve,{color:Wx,bold:!0},L$("#",6),L$("Modified",12),L$("Git Branch",22),L$("Messages",12),"Summary",v?" · Path":"")),0===G.length?Xe.createElement(Ge,{marginBottom:1},Xe.createElement(PO,{message:K.text,hint:K.hint})):Xe.createElement(Ge,{flexDirection:"column"},V.map((e,t)=>{const r=i+t,o=s===r,a=p&&o,l=a?void 0:Rx.YELLOW,c=resolveRowColor({isDeletePending:a,isCurrentSession:e.id===n,isSelected:o}),d=truncateString2({text:e.gitBranch||"-",maxChars:20}),u=v?toRelativePath(`${$}/${e.id}.jsonl`):null;return Xe.createElement(Ve,{key:e.id,color:c,backgroundColor:o?eI:void 0,bold:o,wrap:"truncate-end"},L$(`${r+1}.`,6),L$(formatRelativeTimeShort({timestamp:e.lastModified}),12),L$(d,22),L$(String(e.messageCount),12),renderRowSummary({session:e,isSelected:o,nameColor:l}),u?Xe.createElement(Ve,{color:Rx.DIM},` ${u}`):null," ")})),Xe.createElement(Ge,{marginTop:1}),"rename"===M&&Xe.createElement(Ge,{marginBottom:1},Xe.createElement(Ve,{color:Rx.CYAN},"Rename: "),Xe.createElement(TextInput,{value:R,onChange:O,onSubmit:B,singleLine:!0,stripBracketedPaste:!0})),D&&Xe.createElement(Ge,{marginBottom:1},Xe.createElement(bO,{glyph:!1},D)),q&&Xe.createElement(Ge,{marginBottom:1},Xe.createElement(Ve,{color:Rx.RED},q)),h&&Xe.createElement(Ge,{marginBottom:1},Xe.createElement(bO,{glyph:!1},h)),y&&Xe.createElement(Ge,{marginBottom:1},Xe.createElement(EO,{glyph:!1},y)),G.length>F&&Xe.createElement(Ve,{color:Rx.DIM},"Showing ",i+1,"–",Math.min(i+F,G.length)," ","of ",G.length,i>0?" · ↑ more":"",i+F<G.length?" · ↓ more":""),Xe.createElement(kA,{marginTop:0,hints:["enter resume","ctrl+s sort","ctrl+n named","ctrl+r rename","ctrl+d delete","ctrl+p path","ctrl+b branch","type to search"]}))},"SessionsResumeTable"),U$=Ze(__name(function SessionView2({onSelectSession:e,onClose:t,currentSessionId:n}){return Xe.createElement(F$,{onSelectSession:e,onClose:t,currentSessionId:n})},"SessionView"));Ex(),Ex();var j$=__name(({onTrust:e,onExit:t})=>{const{exit:n}=Je(),[r,o]=et(1),s=process.cwd(),a=$(),i=a&&s.startsWith(a)?`~${s.slice(a.length)}`:s;return Ye((s,a)=>{if(a.upArrow||a.downArrow)o(1===r?2:1);else{if(a.return)return 1===r?void e():(t(),void n());if("1"!==s)return"2"===s?(t(),void n()):void((a.escape||a.ctrl&&"c"===s)&&(t(),n()));e()}}),Xe.createElement(_D,{title:"Do you trust the files in this folder?",subtitle:i,hint:"↑/↓ to navigate · enter to select · esc to exit"},Xe.createElement(Ge,{flexDirection:"column"},Xe.createElement(Ve,null,"Command Code may read files in this folder. Reading untrusted files may lead Command Code to behave in unexpected ways."),Xe.createElement(Ge,{marginTop:1},Xe.createElement(Ve,null,"With your permission Command Code may execute files in this folder. Executing untrusted code is unsafe."))),Xe.createElement(Ge,{marginTop:1,flexDirection:"column"},Xe.createElement(Ge,null,Xe.createElement(UD,{isSelected:1===r}),Xe.createElement(jD,{isSelected:1===r,idleColor:ND}," ","1. Yes, proceed")),Xe.createElement(Ge,null,Xe.createElement(UD,{isSelected:2===r}),Xe.createElement(jD,{isSelected:2===r,idleColor:ND}," ","2. No, exit"))))},"TrustPrompt"),B$=Ze(__name(function TrustView2({staticKey:e,onTrust:t,onExit:n}){return Xe.createElement(Xe.Fragment,null,Xe.createElement(XI,{staticKey:e}),Xe.createElement(j$,{onTrust:t,onExit:n}))},"TrustView"));Ex(),Ex();var W$=new Map;function enqueueAgentSlashCommand(e){const t=W$.get(e.sessionId);t?t.push(e.command):W$.set(e.sessionId,[e.command])}function drainAgentSlashCommands(e){const t=W$.get(e.sessionId);return t&&0!==t.length?(W$.delete(e.sessionId),t):[]}function useAgentSlashCommandQueue({sessionId:e,isCmdCodeBusy:t,onCommand:n}){const r=tt(!1);nt(()=>{if(t||r.current)return;const o=drainAgentSlashCommands({sessionId:e});0!==o.length&&(r.current=!0,(async()=>{try{for(const e of o)await n(e)}finally{r.current=!1}})())},[t,e,n])}function useAuth(){const[e,t]=et(null),[n,r]=et(()=>getConfiguredModel()),[o,s]=et(!1),[a,i]=et(null),[l,c]=et(!1),[d,u]=et(!1);return{currentProvider:e,setCurrentProvider:t,currentModel:n,setCurrentModel:r,isOAuthMode:o,setIsOAuthMode:s,authComponentInfo:a,setAuthComponentInfo:i,showProviderNotification:l,setShowProviderNotification:c,premiumCreditsExhausted:d,setPremiumCreditsExhausted:u,providerNotificationTimer:tt(null),modelNotificationTimer:tt(null)}}__name(enqueueAgentSlashCommand,"enqueueAgentSlashCommand"),__name(drainAgentSlashCommands,"drainAgentSlashCommands"),__name(useAgentSlashCommandQueue,"useAgentSlashCommandQueue"),Ex(),Px(),__name(useAuth,"useAuth"),Ex(),Px();var H$=__name(()=>{const[e,t]=et({isExecuting:!1,currentCommand:null});return{executeBash:ot(async(e,n,r)=>{t({isExecuting:!0,currentCommand:e});try{const t=await runUserBashCommand({command:e});n(n=>completePendingBashEntry({feed:n,command:e,output:t})),r()}finally{t({isExecuting:!1,currentCommand:null})}},[]),executionState:e}},"useBashExecution");Ex(),Ex(),Px(),Ex(),Px();var G$={detectIDE:dC,isIdeIpcConnected:__name(async e=>{const t=kC(),n=await t.connect(e);return t.disconnect(),n},"isIdeIpcConnected"),log:dlog,platform:__name(()=>process.platform,"platform")};Ex();var V$=null,z$={};function requestReload(e){V$=e}function discardPendingReload(){V$=null}function consumePendingReload(){const e=V$;return V$=null,e}function setOriginalInvocation(e){z$=e}function getOriginalInvocation(){return z$}function resolveProviderOrReport(e){return resolveCommandProviderId(e.provider)||(e.setFeed(t=>[...t,tg(`Unknown provider '${e.provider}'. Run /provider to see available providers.`)]),null)}async function handleLoginCommand({provider:e,setFeed:t,setShowLoginOverlay:n,setAuthComponentInfo:r}){const o=e?.trim();if(o){const e=resolveProviderOrReport({provider:o,setFeed:t});if(!e)return;const n=getProviderConfig(e),s=n?.authComponent;return n?.requiresAuth&&s?r?void r({provider:e,Component:s}):void t(e=>[...e,tg("Provider login is not available here.")]):void t(t=>[...t,Yp(`${getProviderDisplayName(e)} does not use provider login. Run /login without a provider for Command Code account auth.`)])}const s=await resolveLoginCommand({onDebugError:__name(e=>{process.env.DEBUG&&console.error("Failed to load credentials for display:",e)},"onDebugError")});"already-logged-in"!==s.kind?n(!0):t(e=>[...e,Yp(s.message)])}function handleLoginComplete({success:e,message:t,setShowLoginOverlay:n,setFeed:r,setStatus:o}){if(n(!1),!e)return r(e=>[...e,tg(t)]),void o("Ready...");r(e=>[...e,Yp(t)]),invalidateBillingContext(),o("Ready...")}function handleLoginCancel({setShowLoginOverlay:e,setFeed:t,setStatus:n}){e(!1),t(e=>[...e,Yp("Authentication cancelled")]),n("Ready...")}async function handleLogoutCommand({provider:e,setFeed:t,setRetryAttempt:n,setIsCmdCodeBusy:r}){const o=e?.trim();if(o){const e=resolveProviderOrReport({provider:o,setFeed:t});if(!e)return;const n=getProviderConfig(e);if(!n?.requiresAuth)return void t(t=>[...t,Yp(`${getProviderDisplayName(e)} does not use provider logout. Run /logout without a provider for Command Code account auth.`)]);try{const n=await providerLogout({provider:e}),r=getProviderDisplayName(e);t(e=>[...e,Yp(n?`Logged out of ${r}`:`No saved ${r} credential found`)])}catch(n){const r=n instanceof Error?n.message:"Unknown error";t(t=>[...t,tg(`Failed to log out of ${getProviderDisplayName(e)}: ${r}`)])}return}const s=await runCommandLogoutFlow({env:process.env});s.success&&invalidateBillingContext(),s.turnInterrupted&&(n(null),r(!1)),t(e=>[...e,"error"===s.notice.kind?tg(s.notice.message):Yp(s.notice.message)])}function parseChangelogVersions(e){return e.split(/^(?=## )/m).map(e=>e.trim()).filter(e=>e.startsWith("## "))}function findChangelogPath(e){let t=r(m(e));for(let e=0;e<6;e++){const e=n(t,"CHANGELOG.md");if(y(e))return e;const o=r(t);if(o===t)return null;t=o}return null}function handleChangelog({setFeed:e,rawArguments:t="",moduleUrl:n}){const r=findChangelogPath(n??import.meta.url);if(!r)return void e(e=>[...e,Yp("No changelog available in this build.")]);const o=parseChangelogVersions(S(r,"utf8"));if(0===o.length)return void e(e=>[...e,Yp("The changelog is empty.")]);const s="all"===t.trim().toLowerCase()?o.length:10,a=o.slice(0,s).join("\n\n"),i=o.length-s,l=i>0?`\n\n_…and ${i} earlier releases · /changelog all_`:"";e(e=>[...e,eg(`**What's new**\n\n${a}${l}`)])}async function releaseHarness(e){if(e){try{await(NO(e)?.flush())}catch{}$O(e)}}async function handleSelectSession({selectedSessionId:e,previousSessionId:t,sessionLoadIdRef:n,setFeed:r,setLiveEntries:o,setSessionId:s,setShowSessionSelector:a,setSessionLoaded:i,setStaticKey:l,setShareInfo:c,setCurrentModel:d,inTuiResume:u=!1}){const m=crypto.randomUUID();n.current=m;const p=__name(()=>n.current!==m,"isStale");t&&t!==e&&await releaseHarness(t),r([]),o([]),clearSessionTodos(),setNextSessionStartSource("resume"),s(e),a(!1),i(!0);const g=await resolveSessionSwitch({sessionId:e,inTuiResume:u,isStale:p,onDebug:dlog});if("superseded"===g.status)return;if("error"===g.status){if(p())return;return console.error("Failed to load session:",g.message),r([tg(g.message)]),a(!1),i(!1),void s(crypto.randomUUID())}if(g.adoptedModel&&d?.(g.adoptedModel),g.shareInfo&&c({url:g.shareInfo.url,secret:g.shareInfo.secret}),p())return;r(g.feed);const h=seedTodosFromFeedEntries(g.feed);NO(e)?.applyTodoUserEdit({todos:h}),g.bannerModelChanged||isWrappedChild()?hardResetForResize():FI(),l(e=>e+1)}__name(requestReload,"requestReload"),__name(discardPendingReload,"discardPendingReload"),__name(consumePendingReload,"consumePendingReload"),__name(setOriginalInvocation,"setOriginalInvocation"),__name(getOriginalInvocation,"getOriginalInvocation"),Ex(),Px(),__name(resolveProviderOrReport,"resolveProviderOrReport"),__name(handleLoginCommand,"handleLoginCommand"),__name(handleLoginComplete,"handleLoginComplete"),__name(handleLoginCancel,"handleLoginCancel"),__name(handleLogoutCommand,"handleLogoutCommand"),Ex(),Px(),__name(parseChangelogVersions,"parseChangelogVersions"),__name(findChangelogPath,"findChangelogPath"),__name(handleChangelog,"handleChangelog"),Ex(),Px(),Ex(),Px(),__name(releaseHarness,"releaseHarness"),__name(handleSelectSession,"handleSelectSession");var q$="Nothing to clone yet.";async function handleCloneCommand(e){const t=NO(e.sessionId);if(t)try{const n=await t.cloneSession();if(!n)return void e.setFeed(e=>[...e,Yp(q$)]);e.setFeed(e=>[...e,Yp(`Cloned to ${n.newId} — switching…`)]),await handleSelectSession({selectedSessionId:n.newId,previousSessionId:e.sessionId,sessionLoadIdRef:e.sessionLoadIdRef,setFeed:e.setFeed,setLiveEntries:e.setLiveEntries,setSessionId:e.setSessionId,setShowSessionSelector:e.setShowSessionSelector,setSessionLoaded:e.setSessionLoaded,setStaticKey:e.setStaticKey,setShareInfo:e.setShareInfo,setCurrentModel:e.setCurrentModel,inTuiResume:!0})}catch{e.setFeed(e=>[...e,tg("Couldn't clone the session (storage error). Staying on the current session.")])}else e.setFeed(e=>[...e,Yp(q$)])}async function handleCompactCommand({sessionId:e,setFeed:t,setStatus:n,setIsCmdCodeBusy:r,setContextUsage:o,setStaticKey:s}){try{r(!0),n("Compacting conversation...");const a=await LO({sessionId:e,baseUrl:getApiBaseUrl()}),i=await a.compact();FI(),s(e=>e+1);const l=buildCompactCommandNotice(i);t(e=>[...e,Yp(l.message)]),r(!1),n("Ready..."),o(buildPostCompactContextUsage())}catch(e){t(t=>[...t,tg(buildCompactErrorNotice(e).message)]),r(!1),n("Ready...")}}__name(handleCloneCommand,"handleCloneCommand"),Ex(),Px(),__name(handleCompactCommand,"handleCompactCommand"),Ex(),Px();var K$=__name(e=>{const t=e.metadata?.blockOf;return"string"==typeof t?t:e.id},"groupIdOf"),Y$=__name(e=>e.replace(/^(?:[^\S\n]*\n)+/,"").replace(/\s+$/,""),"stripOuterBlankLines");function findLastAssistantText(e){for(let t=e.length-1;t>=0;t--){const n=e[t];if(!n||"assistant"!==n.role)continue;if(!n.input.trim())continue;const r=K$(n),o=[];for(let n=t;n>=0;n--){const t=e[n];if(!t||"assistant"!==t.role||K$(t)!==r)break;const s=Y$(t.input);s&&o.unshift(s)}return o.length>1?o.join("\n\n"):n.input}return null}async function handleCopy({feed:e,setFeed:t}){const n=findLastAssistantText(e);if(!n)return void t(e=>[...e,Yp("Nothing to copy yet — no reply in this session.")]);const r=await writeClipboardText(n),o=n.length.toLocaleString("en-US");t(e=>[...e,Yp(r?`Copied the last reply to the clipboard (${o} chars).`:"Could not reach the clipboard — is this a headless terminal?")])}function getAuthKey3(){return getCommandAuthKey({runtime:getCommandConfigRuntime(),path:getAuthFile(),env:process.env})}function trackFirstMessage(){(async()=>{await getAuthKey3()&&await detectAndTrackFirstMessage({loadUserConfig:loadUserConfig,updateUserConfig:updateUserConfig,trackLifecycleEvent:__name(e=>trackLifecycleEvent({...e,isTelemetryEnabled:isTelemetryEnabled,createClient:__name(()=>createApiClient({baseUrl:getApiBaseUrl()}),"createClient"),log:dlog}),"trackLifecycleEvent"),log:dlog})})().catch(()=>{})}function isWhitespaceOnly3(e){return 0===e.trim().length}function routeTodoWriteEntry(e){const{entry:t,setFeed:n,setLiveEntries:r}=e;if("running"===t.metadata?.status)return!0;const o="output"in t?t.output:void 0,s="string"==typeof o?kg(o):null;if(!s)return!1;const a=projectUserEdits(s);return a.every(e=>"completed"===e.status)?(clearSessionTodos(),a.length>0&&routeHarnessFeedEntry({entry:{...t,output:JSON.stringify(a)},setFeed:n,setLiveEntries:r}),!0):(setSessionTodos(s),!0)}function createBlockCommittingRouter(e){const{setFeed:t,setLiveEntries:n}=e,r=new Map;function buildBlockEntries(e,t,n){const r=[];for(const o of n){if(isWhitespaceOnly3(o))continue;const n=t.committedEntryCount;t.committedEntryCount+=1;const{status:s,...a}=e.metadata??{};r.push({...e,id:`${e.id}-block-${n}`,input:o,metadata:{...a,continuation:n>0,blockOf:e.id}})}return r}function routeRunningAssistant(e){let o=r.get(e.id);o||(o={stream:createBlockStream(),committedEntryCount:0},r.set(e.id,o));const s=o.stream.advance(e.input),a=buildBlockEntries(e,o,s.newlyCompleted);a.length>0&&t(e=>[...e,...a]);const i={...e,input:s.openTail,metadata:{...e.metadata,continuation:o.committedEntryCount>0}};n(t=>{const n=t.findIndex(t=>t.id===e.id);if(-1===n)return[...t,i];const r=[...t];return r[n]=i,r})}function routeFinalAssistant(e){n(t=>t.filter(t=>t.id!==e.id));const o=r.get(e.id);if(!o)return void(isWhitespaceOnly3(e.input)||t(t=>[...t,e]));r.delete(e.id);const s=o.stream.finalize(e.input);if(0===o.committedEntryCount&&s.remaining.length<=1)return void(isWhitespaceOnly3(e.input)||t(t=>[...t,e]));const a=buildBlockEntries(e,o,s.remaining);a.length>0&&t(e=>[...e,...a])}return __name(buildBlockEntries,"buildBlockEntries"),__name(routeRunningAssistant,"routeRunningAssistant"),__name(routeFinalAssistant,"routeFinalAssistant"),__name(function routeEntry(e){if(isDiscardedEntry(e))return r.delete(e.id),void routeHarnessFeedEntry({entry:e,setFeed:t,setLiveEntries:n});if("assistant"===e.role)"running"!==e.metadata?.status?routeFinalAssistant(e):routeRunningAssistant(e);else{if("tool"===e.role&&"todo_write"===e.name&&routeTodoWriteEntry({entry:e,setFeed:t,setLiveEntries:n}))return;routeHarnessFeedEntry({entry:e,setFeed:t,setLiveEntries:n})}},"routeEntry")}async function getBillingLink({billingLink:e,setBillingLink:t}){return resolveCommandBillingLink({existingBillingLink:e,client:createApiClient({baseUrl:getApiBaseUrl()}),onResolvedBillingLink:t})}async function runModInputInterception(e){const t=getActiveModHost();if(!t||"user"!==e.role||e.isAutomated||e.isMeta||e.isGoalContinuation||0===e.input.length||(e.images?.length??0)>0)return{action:"continue"};try{return await t.transformInput({text:e.input})}catch{return{action:"continue"}}}async function handleSubmit(e){const{role:t,input:n,images:r,imageTokenPaths:o,ideContext:s,ideHint:a,displayMessage:i,isAutomated:l,isMeta:c,hiddenMessages:d,isGoalContinuation:u,isGoalBootstrap:m,suppressUserEcho:p,feed:g,setFeed:h,setLiveEntries:f,isCmdCodeBusy:y,setIsCmdCodeBusy:S,setQueuedMessages:w,setStatus:k,setInteractionTokens:v,updateStatus:C,setUpdateStatus:b,billingLink:E,setBillingLink:T,currentModel:P,currentProvider:M,isOAuthMode:x,premiumCreditsExhausted:I,setPremiumCreditsExhausted:A,setCurrentModel:R,sessionId:O,isSubmittingRef:D,setInput:L,setStaticKey:N,executeBash:$}=e,_=resolveSubmitStartPlan({role:t,input:n,isCmdCodeBusy:y,isSubmitting:D.current,displayMessage:i,isAutomated:l,isMeta:c,hiddenMessages:d,images:r,ideContext:s,ideHint:a});if("skip"===_.kind&&!n.length)return _.outcome;if(C&&b(null),v(0),"skip"===_.kind)return _.outcome;if("bash"===_.kind){D.current=!0;const e=Zp(n);return h([...g,e]),L(""),await $(n,e=>{h(e)},()=>{FI(),N(e=>e+1)}),D.current=!1,"completed"}if("queue"===_.kind)return w(e=>[...e,_.queuedMessage]),l||L(""),_.outcome;D.current=!0;const F=await runModInputInterception(e);if("handled"===F.action){D.current=!1;const e=F.message;return e&&h(t=>[...t,Yp(e)]),"skipped"}const U="transform"===F.action?F.text:n,j=await checkOAuthSetupRequired({currentProvider:M??null,isOAuthMode:x??!1,providerAuthHeaders:providerAuthHeaders});if(j)return D.current=!1,k(j),h(e=>[...e,tg(j)]),"skipped";S(!0),k(mg()),l||L("");let B=!1,W=null,H=null,G=null,V=0;const z=createSubmitGoalSupervisor(e);let q=null;const K=resolvePremiumCreditsPreflight({premiumCreditsExhausted:I,currentModel:P});if(K.blocked)return B=!0,k(K.status),h(e=>[...e,Yp(K.message)]),S(!1),D.current=!1,K.outcome;try{q=await z.getGoalTurnBudget();const e=await LO({sessionId:O,baseUrl:getApiBaseUrl()});if(m&&!isCommandGoalLoopArmed(O))return"skipped";const t=clipboardImagesToUserContent(r),n=s?`${s}\n\n${U}`:U,l=t.length>0?[...t,{type:"text",text:n}]:s?[{type:"text",text:n}]:void 0,c={...r&&r.length>0?{images:r,...o?{imageTokenPaths:o}:{}}:{},...a?{ideHint:a}:{}};trackFirstMessage();const u=await runHarnessTurnIntoFeed({harness:e,input:U,turnUserInput:l,runQuery:runHarnessQuery,setFeed:h,setLiveEntries:f,displayMessage:i,suppressUserEcho:p,additionalContent:hiddenMessagesToUserContent(d),inputMeta:_.inputMeta,maxTurns:q?.remainingTurns,onRoundTrip:__name(e=>{V=e},"onRoundTrip"),echoMetadata:Object.keys(c).length>0?c:void 0,setStatus:k,onInteractionTokens:v,onRunError:__name(e=>{H=e},"onRunError"),routeEntry:createBlockCommittingRouter({setFeed:h,setLiveEntries:f}),scrubGoalCompleteMarker:isCommandGoalLoopArmed(O)});if(H)throw formatRunError(H);return G=u.finalText,V=u.turnCount,"completed"}catch(e){const t=resolveSubmitErrorAction({error:e,sessionId:O});if("interrupted"===t.kind)return B=!0,t.outcome;if(trackError({error:sanitizeErrorForTelemetry({error:e instanceof Error?e:new Error(String(e)),label:"submit_error"}),context:{component:co.SUBMIT,heading:"Prompt submission failed",code:t.kind}}),B=!0,W=t.goalErrorKind,"insufficient-credits"===t.kind){k(t.status);const e=await getBillingLink({billingLink:E,setBillingLink:T});return h(t=>[...t,tg(buildInsufficientCreditsSubmitActionMessage({billingUrl:e}))]),t.outcome}if("premium-credits-exhausted"===t.kind)return A?.(!0),R?.(t.fallbackModelId),FI(),N(e=>e+1),k(t.status),h(e=>[...e,Yp(t.message)]),t.outcome;k(t.status);const n="info"===t.renderKind?Yp(t.message):tg(t.message);return h(e=>[...e,n]),t.outcome}finally{S(!1),B||k("Ready..."),D.current=!1,await z.afterTurn({assistantText:B?null:G,errorKind:B?W:null,isGoalContinuation:u,turnsUsed:V,goalStartedAt:q?.startedAt})}return"skipped"}function emitGoalNotice(e,t){e(e=>[...e,Yp(t.message,buildGoalNoticeMetadata(t))])}function createSubmitGoalSupervisor(e){const{sessionId:t,setFeed:n}=e;return createGoalTurnSupervisor({sessionId:t,isArmed:__name(()=>isCommandGoalLoopArmed(t),"isArmed"),disarm:__name(()=>disarmCommandGoalLoop(t),"disarm"),loadSessionMeta:__name(()=>loadCommandSessionMeta({sessionId:t}),"loadSessionMeta"),saveGoal:__name(e=>saveCommandSessionMeta({sessionId:t,meta:{goal:e}}),"saveGoal"),verifyCompletion:__name(async e=>(NO(t)??await LO({sessionId:t,baseUrl:getApiBaseUrl()})).verifyGoal(e),"verifyCompletion"),getEvidence:__name(()=>{const e=NO(t);return e?harnessRecentToolEvidence(e):""},"getEvidence"),emitCompletion:__name(e=>{n(t=>[...t,Yp("",e)])},"emitCompletion"),emitNotice:__name(e=>emitGoalNotice(n,e),"emitNotice"),runContinuation:__name(({prompt:t})=>handleSubmit({...e,...buildGoalContinuationTurnFields({prompt:t})}),"runContinuation")})}async function handleDesignCommand({ctx:e,rawArguments:t,positionalArgs:n,command:r}){try{const o=await resolveDesignCommand({runtime:createNodeRuntime(),rawArguments:t,positionalArgs:n});if("help"===o.status)return void e.setShowDesignGuide(!0);if("missing-skill"===o.status)return void e.setFeed(e=>[...e,tg(qk)]);const s=await handleSubmit({input:o.command.visible,hiddenMessages:[{role:"user",content:o.command.hidden}],role:"user",displayMessage:r,isAutomated:!0,feed:e.feed,setFeed:e.setFeed,setLiveEntries:e.setLiveEntries,isCmdCodeBusy:e.isCmdCodeBusy,setIsCmdCodeBusy:e.setIsCmdCodeBusy,setQueuedMessages:e.setQueuedMessages,setStatus:e.setStatus,setInteractionTokens:e.setInteractionTokens,updateStatus:e.updateStatus,setUpdateStatus:e.setUpdateStatus,billingLink:e.billingLink,setBillingLink:e.setBillingLink,currentModel:e.currentModel,currentProvider:e.currentProvider,isOAuthMode:e.isOAuthMode,premiumCreditsExhausted:e.premiumCreditsExhausted,setPremiumCreditsExhausted:e.setPremiumCreditsExhausted,setCurrentModel:e.setCurrentModel,sessionId:e.sessionId,isSubmittingRef:e.isSubmittingRef,setInput:e.setInput,setStaticKey:e.setStaticKey,executeBash:e.executeBash}),{modeName:a}=o.command;if("completed"===s&&a&&isDesignMode(a)){const t=getDesignModeSuggestions(a);t&&e.setPendingDesignSuggestion?.(t)}}catch(t){e.setFeed(e=>[...e,tg(buildDesignSkillLoadErrorMessage(t))])}}__name(findLastAssistantText,"findLastAssistantText"),__name(handleCopy,"handleCopy"),Ex(),Px(),Ex(),Px(),Ex(),Px(),__name(getAuthKey3,"getAuthKey"),__name(trackFirstMessage,"trackFirstMessage"),Ex(),Px(),__name(isWhitespaceOnly3,"isWhitespaceOnly"),__name(routeTodoWriteEntry,"routeTodoWriteEntry"),__name(createBlockCommittingRouter,"createBlockCommittingRouter"),__name(getBillingLink,"getBillingLink"),__name(runModInputInterception,"runModInputInterception"),__name(handleSubmit,"handleSubmit"),__name(emitGoalNotice,"emitGoalNotice"),__name(createSubmitGoalSupervisor,"createSubmitGoalSupervisor"),__name(handleDesignCommand,"handleDesignCommand"),Ex(),Px();var J$="Nothing to export yet — the transcript is created on the first message.",Q$=new Set(["html","jsonl","md"]);function matchFormatKeyword(e){const t=e.toLowerCase();return Q$.has(t)?t:void 0}function resolveConfiguredExportFormat(e){return e?matchFormatKeyword(e)??"html":"html"}function defaultExportFilename(e,t){return`command-code-session-${e.slice(0,8)}.${t}`}function resolveExportRoute(e){const t=e.rawPath.trim();if(!t){const t=e.defaultFormat??"html";return{kind:"target",format:t,path:n(e.cwd,defaultExportFilename(e.sessionId,t))}}const r=matchFormatKeyword(t);if(r)return{kind:"target",format:r,path:n(e.cwd,defaultExportFilename(e.sessionId,r))};const o=i(t)?t:s(e.cwd,t);if(y(o)&&b(o).isDirectory())return{kind:"target",format:"html",path:n(o,defaultExportFilename(e.sessionId,"html"))};const a=d(o).toLowerCase();return a?".html"===a?{kind:"target",format:"html",path:o}:".jsonl"===a?{kind:"target",format:"jsonl",path:o}:".md"===a?{kind:"target",format:"md",path:o}:{kind:"unknown-extension",extension:a}:{kind:"target",format:"html",path:n(o,defaultExportFilename(e.sessionId,"html"))}}function exportedMessage(e){const t=toRelativePath(e.path),n=bt.isSupported?createOSC8Link(fileUrl(e.path),t,!1):t;return`Exported ${e.formatLabel} session to ${n}`}async function buildSessionHtmlExport(e){const{messages:t}=await loadCommandSessionMessages({sessionId:e.sessionId});if(0===t.length)return null;const n=await loadCommandUserRenamedTitle({sessionId:e.sessionId})??e.sessionId;return renderSessionHtml({messages:fromV2(t.map(e=>e.message)),title:n,sessionId:e.sessionId,exportedAt:(new Date).toISOString(),...e.currentModel?{model:e.currentModel}:{}})}async function buildSessionMarkdownExport(e){const{messages:t}=await loadCommandSessionMessages({sessionId:e.sessionId});if(0===t.length)return null;const n=await loadCommandUserRenamedTitle({sessionId:e.sessionId})??e.sessionId;return renderSessionMarkdown({messages:fromV2(t.map(e=>e.message)),title:n,sessionId:e.sessionId,exportedAt:(new Date).toISOString(),...e.currentModel?{model:e.currentModel}:{}})}async function exportJsonl(e){const t=n(getProjectSessionDir({env:process.env,cwd:e.cwd}),`${e.sessionId}.jsonl`);if(y(t)){try{P(t,e.target)}catch(t){const n=t instanceof Error?t.message:String(t);return void e.setFeed(e=>[...e,Yp(`Export failed: ${n}`)])}e.setFeed(t=>[...t,Yp(exportedMessage({path:e.target,formatLabel:"JSONL"}))])}else e.setFeed(e=>[...e,Yp(J$)])}async function exportHtml(e){let t;try{t=await buildSessionHtmlExport({sessionId:e.sessionId,currentModel:e.currentModel})}catch(t){const n=t instanceof Error?t.message:String(t);return void e.setFeed(e=>[...e,Yp(`Export failed: ${n}`)])}if(t){try{k(e.target,t,"utf8")}catch(t){const n=t instanceof Error?t.message:String(t);return void e.setFeed(e=>[...e,Yp(`Export failed: ${n}`)])}e.setFeed(t=>[...t,Yp(exportedMessage({path:e.target,formatLabel:"HTML"}))])}else e.setFeed(e=>[...e,Yp(J$)])}async function exportMarkdown(e){let t;try{t=await buildSessionMarkdownExport({sessionId:e.sessionId,currentModel:e.currentModel})}catch(t){const n=t instanceof Error?t.message:String(t);return void e.setFeed(e=>[...e,Yp(`Export failed: ${n}`)])}if(t){try{k(e.target,t,"utf8")}catch(t){const n=t instanceof Error?t.message:String(t);return void e.setFeed(e=>[...e,Yp(`Export failed: ${n}`)])}e.setFeed(t=>[...t,Yp(exportedMessage({path:e.target,formatLabel:"Markdown"}))])}else e.setFeed(e=>[...e,Yp(J$)])}async function handleExport(e){const t=getCurrentWorkingDirectory(),n=await loadUserConfig(),r=resolveExportRoute({rawPath:e.rawPath,cwd:t,sessionId:e.sessionId,defaultFormat:resolveConfiguredExportFormat(n.defaultExportFormat)});"unknown-extension"!==r.kind?"jsonl"!==r.format?"md"!==r.format?await exportHtml({sessionId:e.sessionId,target:r.path,currentModel:e.currentModel,setFeed:e.setFeed}):await exportMarkdown({sessionId:e.sessionId,target:r.path,currentModel:e.currentModel,setFeed:e.setFeed}):await exportJsonl({sessionId:e.sessionId,target:r.path,cwd:t,setFeed:e.setFeed}):e.setFeed(e=>[...e,Yp(`Unknown export extension "${r.extension}". Supported export formats: .html, .jsonl, .md`)])}async function handleForkCommand(e,t){const n=NO(e.sessionId),r=await resolveForkCommand({sourceId:e.sessionId,rawName:t,hasActiveSession:Boolean(n),messageCount:n?harnessSessionMessages(n).length:0});if("notice"!==r.kind)try{await handleSelectSession({selectedSessionId:r.newId,previousSessionId:e.sessionId,sessionLoadIdRef:e.sessionLoadIdRef,setFeed:e.setFeed,setLiveEntries:e.setLiveEntries,setSessionId:e.setSessionId,setShowSessionSelector:e.setShowSessionSelector,setSessionLoaded:e.setSessionLoaded,setStaticKey:e.setStaticKey,setShareInfo:e.setShareInfo,setCurrentModel:e.setCurrentModel,inTuiResume:!0}),e.setFeed(e=>[...e,Jp({name:r.title})])}catch{e.setFeed(e=>[...e,tg(oh)])}else e.setFeed(e=>[...e,"error"===r.notice.kind?tg(r.notice.message):Yp(r.notice.message)])}function setMode(e,t){e.permissionModeRef.current=t,e.setPermissionMode(t),NO(e.sessionId)?.setPermissionMode({mode:t})}async function handlePlanCommand({rawArguments:e,ctx:t}){const n=resolvePlanCommand({rawArguments:e,currentMode:t.permissionModeRef.current});if(t.permissionModeRef.current!==n.nextMode&&setMode(t,n.nextMode),"notice"===n.kind)return t.setFeed(e=>[...e,Yp(n.message)]),void(n.clearInput&&t.setInput(""));await handleSubmit({input:n.task,role:"user",displayMessage:n.displayMessage,isAutomated:!0,feed:t.feed,setFeed:t.setFeed,setLiveEntries:t.setLiveEntries,isCmdCodeBusy:t.isCmdCodeBusy,setIsCmdCodeBusy:t.setIsCmdCodeBusy,setQueuedMessages:t.setQueuedMessages,setStatus:t.setStatus,setInteractionTokens:t.setInteractionTokens,updateStatus:t.updateStatus,setUpdateStatus:t.setUpdateStatus,billingLink:t.billingLink,setBillingLink:t.setBillingLink,currentModel:t.currentModel,currentProvider:t.currentProvider,isOAuthMode:t.isOAuthMode,premiumCreditsExhausted:t.premiumCreditsExhausted,setPremiumCreditsExhausted:t.setPremiumCreditsExhausted,setCurrentModel:t.setCurrentModel,sessionId:t.sessionId,isSubmittingRef:t.isSubmittingRef,setInput:t.setInput,setStaticKey:t.setStaticKey,executeBash:t.executeBash})}__name(matchFormatKeyword,"matchFormatKeyword"),__name(resolveConfiguredExportFormat,"resolveConfiguredExportFormat"),__name(defaultExportFilename,"defaultExportFilename"),__name(resolveExportRoute,"resolveExportRoute"),__name(exportedMessage,"exportedMessage"),__name(buildSessionHtmlExport,"buildSessionHtmlExport"),__name(buildSessionMarkdownExport,"buildSessionMarkdownExport"),__name(exportJsonl,"exportJsonl"),__name(exportHtml,"exportHtml"),__name(exportMarkdown,"exportMarkdown"),__name(handleExport,"handleExport"),Ex(),Px(),__name(handleForkCommand,"handleForkCommand"),Ex(),Px(),__name(setMode,"setMode"),__name(handlePlanCommand,"handlePlanCommand"),Ex(),Px();var X$=[{title:"Composing",rows:[{keys:"Enter",action:"Send the prompt"},{keys:"Shift+Enter / Alt+Enter",action:"Insert a newline"},{keys:"Ctrl+G",action:"Edit the prompt in $EDITOR"},{keys:"Ctrl+S",action:"Stash / restore the current prompt"},{keys:"↑ / ↓",action:"Browse prompt history"},{keys:"@",action:"Mention a file (fuzzy search)"},{keys:"/",action:"Open the command menu"},{keys:"!",action:"Bash mode — run a shell command"}]},{title:"While it works",rows:[{keys:"Esc",action:"Interrupt the current turn"},{keys:"Type + Enter",action:"Queue a steering message"},{keys:"Ctrl+X",action:"Open the todo manager (/todos) for the current plan"}]},{title:"Transcript",rows:[{keys:"Ctrl+O",action:"Toggle expanded tool output"},{keys:"Ctrl+E / Ctrl+Y",action:"Toggle the full transcript"}]},{title:"Session & modes",rows:[{keys:"Shift+Tab",action:"Cycle mode: standard → accept edits → plan"},{keys:"Alt+P",action:"Quick model switch"},{keys:"Esc Esc",action:"Rewind to a checkpoint"},{keys:"Ctrl+C Ctrl+C",action:"Exit"}]}];function buildHotkeysMarkdown(){const e=["**Keyboard shortcuts**"];for(const t of X$){e.push("",`**${t.title}**`);for(const n of t.rows)e.push(`- \`${n.keys}\` — ${n.action}`)}return e.join("\n")}function handleHotkeys({setFeed:e}){e(e=>[...e,eg(buildHotkeysMarkdown())])}async function handleImportCommand({setFeed:e},t=""){const n=resolveAgentImportSourceArg(t);if(!n.ok)return void e(e=>[...e,tg(n.message)]);const r=createNodeRuntime();try{const t=await detectAgentImport({runtime:r,sources:n.sources});if(0===t.items.length&&0===t.sourceErrors.length)return void e(e=>[...e,Yp("No setup was found to import (looked for Claude Code, Codex, Cursor, Pi, OpenCode, and Gemini CLI config in your home directory and this project).")]);const o=await importAgentSetup({runtime:r,inventory:t});e(e=>[...e,Yp(formatAgentImportSummary(o))])}catch(t){e(e=>[...e,tg(`Import failed: ${t instanceof Error?t.message:"unknown error"}`)])}}function setMode2(e,t){e.permissionModeRef.current=t,e.setPermissionMode(t),NO(e.sessionId)?.setPermissionMode({mode:t})}async function handleModeCommand({rawArguments:e,ctx:t}){const n=resolveModeCommand({rawArguments:e,currentMode:t.permissionModeRef.current});n.nextMode&&setMode2(t,n.nextMode),t.setFeed(e=>[...e,Yp(n.message)]),t.setInput("")}async function applyRenameResult(e){const t=await resolveRenameCommand({name:e.name,sessionId:e.sessionId});if(e.setFeed(e=>[...e,"error"===t.notice.kind?tg(t.notice.message):Yp(t.notice.message)]),"renamed"===t.kind){e.setRenamedTerminalTitle(t.name);try{(e.harness??await LO({sessionId:e.sessionId,baseUrl:getApiBaseUrl()})).setSessionName(t.name)}catch{}}}async function autoRenameSession({sessionId:e,setFeed:t,setRenamedTerminalTitle:n,setStatus:r,setIsCmdCodeBusy:o}){o(!0),r("Naming session…");try{const r=await LO({sessionId:e,baseUrl:getApiBaseUrl()}),o=await r.regenerateTitle();if(!o)return void t(e=>[...e,Yp("Nothing to name yet — send a message first, or use /rename <name>.")]);await applyRenameResult({name:o,sessionId:e,setFeed:t,setRenamedTerminalTitle:n,harness:r})}catch{t(e=>[...e,Yp("Could not generate a title. Try /rename <name> instead.")])}finally{o(!1),r("Ready...")}}async function handleRenameCommand(e){e.name.trim()?await applyRenameResult({name:e.name,sessionId:e.sessionId,setFeed:e.setFeed,setRenamedTerminalTitle:e.setRenamedTerminalTitle}):await autoRenameSession(e)}async function handleNameCommand(e){if(e.name.trim())return void await applyRenameResult({name:e.name,sessionId:e.sessionId,setFeed:e.setFeed,setRenamedTerminalTitle:e.setRenamedTerminalTitle});const t=NO(e.sessionId)?.getSessionStats().name,n=t?null:await loadCommandSessionMeta({sessionId:e.sessionId}).catch(()=>null),r=t??n?.title;e.setFeed(e=>[...e,Yp(r?`Current name: ${r}`:"This session has no name yet. Use /name <name> to set one.")])}function handleRewindCommand({sessionId:e,setFeed:t,setShowRewindSelector:n}){const r=NO(e),o=resolveRewindCommand({hasActiveConversation:Boolean(r),checkpointCount:r?.listCheckpoints().length??0});"notice"!==o.kind?n(!0):t(e=>[...e,"error"===o.notice.kind?tg(o.notice.message):Yp(o.notice.message)])}async function handleRewindSelect({messageId:e,mode:t,sessionId:n,setFeed:r,setStatus:o,setShowRewindSelector:s,setStaticKey:a,setInput:i}){s(!1);const l=NO(n);if(!l)return;o("Restoring checkpoint...");const c=await performRewindRestore({harness:l,messageId:e,mode:t});if("restored"===c.kind)return r(c.feed),l.applyTodoUserEdit({todos:seedTodosFromFeedEntries(c.feed)}),FI(),a(e=>e+1),c.promptToRestore&&i(c.promptToRestore),r(e=>[...e,Yp(c.notice.message)]),void o(c.statusMessage);r(e=>[...e,"error"===c.notice.kind?tg(c.notice.message):Yp(c.notice.message)]),o(c.statusMessage)}function handleRewindCancel({setShowRewindSelector:e}){e(!1)}function compactTranscriptPath(e){return`${toRelativePath(getProjectsBasePath({env:process.env}))}/…/${c(e)}`}function formatSessionFileLine(e){const{absolutePath:t,exists:n,linksSupported:r}=e;return n?r?createOSC8Link(fileUrl(t),compactTranscriptPath(t),!1):t:`${t} (not created yet)`}function handleSessionFile({sessionId:e,setFeed:t}){if(!e)return void t(e=>[...e,Yp("No active session.")]);const r=n(getProjectSessionDir({env:process.env,cwd:getCurrentWorkingDirectory()}),`${e}.jsonl`),o=formatSessionFileLine({absolutePath:r,exists:y(r),linksSupported:bt.isSupported});t(t=>[...t,Yp(`Session ID: ${e}\nCurrent session file: ${r}`,{isSessionFile:!0,sessionFileId:e,sessionFileLine:o})])}__name(buildHotkeysMarkdown,"buildHotkeysMarkdown"),__name(handleHotkeys,"handleHotkeys"),Ex(),Px(),__name(handleImportCommand,"handleImportCommand"),Ex(),Px(),__name(setMode2,"setMode"),__name(handleModeCommand,"handleModeCommand"),Ex(),Px(),__name(applyRenameResult,"applyRenameResult"),__name(autoRenameSession,"autoRenameSession"),__name(handleRenameCommand,"handleRenameCommand"),__name(handleNameCommand,"handleNameCommand"),Ex(),Px(),__name(handleRewindCommand,"handleRewindCommand"),__name(handleRewindSelect,"handleRewindSelect"),__name(handleRewindCancel,"handleRewindCancel"),Ex(),Px(),__name(compactTranscriptPath,"compactTranscriptPath"),__name(formatSessionFileLine,"formatSessionFileLine"),__name(handleSessionFile,"handleSessionFile"),Ex(),Px();var Z$=Te(U),e_=/https:\/\/gist\.github\.com\/\S+/;function parseGistUrl(e){const t=e_.exec(e);return t?t[0]:null}function execErrorText(e){if(!(e instanceof Error))return String(e);const t=e;return("string"==typeof t.stderr?t.stderr.trim():"")||e.message}async function defaultCreateGist(e){const{stdout:t}=await Z$("gh",["gist","create",e,"--desc","Command Code session"],{encoding:"utf8"});return{stdout:String(t)}}async function resolveShareGistFormat(e){const t=(e??"").trim();return t?matchFormatKeyword(t):resolveConfiguredExportFormat((await loadUserConfig()).defaultShareGistFormat)}async function writeGistPayload(e){const t=n(e.tempDir,`command-code-session-${e.sessionId.slice(0,8)}.${e.format}`);if("jsonl"===e.format){const r=n(getProjectSessionDir({env:process.env,cwd:getCurrentWorkingDirectory()}),`${e.sessionId}.jsonl`);return y(r)?(P(r,t),t):null}if("md"===e.format){const n=await e.buildMarkdownExport({sessionId:e.sessionId,currentModel:e.currentModel});return n?(await q(t,n,"utf8"),t):null}const r=await e.buildHtmlExport({sessionId:e.sessionId,currentModel:e.currentModel});return r?(await q(t,r,"utf8"),t):null}async function handleShareGistCommand(e){const{isCommandAvailable:t=isCommandAvailable,buildHtmlExport:r=buildSessionHtmlExport,buildMarkdownExport:o=buildSessionMarkdownExport,createGist:s=defaultCreateGist,writeClipboardText:a=writeClipboardText}=e.deps??{},i=__name(t=>e.setFeed(e=>[...e,Yp(t)]),"info");if(!t("gh"))return void i("Requires the GitHub CLI (gh) — https://cli.github.com");const l=await resolveShareGistFormat(e.rawFormatArg);if(!l)return void i(`Unknown gist format "${(e.rawFormatArg??"").trim()}". Supported gist formats: html, jsonl, md`);let c;try{c=await ie(n(_(),"cmd-share-"));const t=await writeGistPayload({format:l,sessionId:e.sessionId,currentModel:e.currentModel,tempDir:c,buildHtmlExport:r,buildMarkdownExport:o});if(!t)return void i("Nothing to share yet — the transcript is created on the first message.");const{stdout:d}=await s(t),u=parseGistUrl(d);if(!u)return void i(`gh gist create did not return a URL: ${d.trim()}`);await a(u),i(`Shared session gist: ${bt.isSupported?createOSC8Link(u,u,!1):u}`)}catch(e){const t=execErrorText(e);i(/auth/i.test(t)?`${t} — run gh auth login`:`Share failed: ${t}`)}finally{c&&await ee(c,{recursive:!0,force:!0}).catch(()=>{})}}async function copyOrFallback(e,t){return!!await writeClipboardText(e)||(t(buildShareClipboardFallbackStatus(e)),!1)}async function handleShareCommand({sessionId:e,shareInfo:t,setShareInfo:n,setStatus:r,setShowShareNotification:o}){!t&&e&&r("Creating share link...");const s=createApiClient({baseUrl:getApiBaseUrl()}),a=await createCommandSessionShareLink({client:s,sessionId:e,existingShareInfo:t,harness:e?NO(e):void 0,projectRoot:global.COMMAND_CODE_CWD||process.cwd()});"no-session"!==a.status&&"error"!==a.status?(n(a.shareInfo),await copyOrFallback(a.shareInfo.url,r)&&(r(""),o(!0),setTimeout(()=>{o(!1)},shareNotificationDurationMs(a.status)))):r(a.message)}async function handleUnshareCommand({sessionId:e,shareInfo:t,setShareInfo:n,setStatus:r,setUnshareNotificationMessage:o}){e&&t&&r("Removing share link...");const s=createApiClient({baseUrl:getApiBaseUrl()}),a=await deleteCommandSessionShareLink({client:s,sessionId:e,shareInfo:t,harness:e?NO(e):void 0});if("no-session"!==a.status){if("not-shared"===a.status)return o(a.message),void setTimeout(()=>o(""),kk);if("error"===a.status)return r(a.message),void setTimeout(()=>r(""),kk);o(a.message),r(""),n(null),setTimeout(()=>{o("")},kk)}else r(a.message)}async function loadPersistedTraceIds(e){if(e.loadTraceIds)return e.loadTraceIds();if(!e.sessionId)return[];const t=await loadCommandSessionMeta({sessionId:e.sessionId}).catch(()=>null),n=t?.traceIds;return Array.isArray(n)?n.filter(e=>"string"==typeof e&&e.length>0):[]}async function handleTrace({setFeed:e,sessionId:t,loadTraceIds:n}){const r=getTraceId();if(r){const t=await writeClipboardText(r)?" (copied to clipboard)":"";return void e(e=>[...e,Yp(`Trace ID: ${r}${t}`)])}const o=await loadPersistedTraceIds({sessionId:t,loadTraceIds:n});if(o.length>0){const t=o[o.length-1],n=await writeClipboardText(t)?" (copied to clipboard)":"";return void e(e=>[...e,Yp(`Trace ID: ${t}${n}`)])}const s=isTelemetryInitialized()?"Trace ID not generated: Send a message first":"No trace ID — request tracing is off this session.";e(e=>[...e,Yp(s)])}function actionErrorMessage(e){return e instanceof Error?e.message:"Unknown error"}async function handleTreeCommand({sessionId:e,setFeed:t,setShowTreeSelector:n,setTreeFilterMode:r,setTreeBranchSummarySkipPrompt:o}){const s=NO(e),a=resolveTreeCommand({hasActiveConversation:Boolean(s),treeEntryCount:s?.getSessionTree().length??0});if("notice"===a.kind)return void t(e=>[...e,"error"===a.notice.kind?tg(a.notice.message):Yp(a.notice.message)]);const[i,l]=await Promise.all([getTreeFilterMode(),getBranchSummarySkipPrompt()]);r(i),o(l),n(!0)}async function handleTreeSelect({entryId:e,summarize:t,customInstructions:n,sessionId:r,setFeed:o,setShowTreeSelector:s,setStaticKey:a,setInput:i}){const l=NO(r);if(!l)return{aborted:!1};try{const r=await l.navigateTree({targetId:e,summarize:t,...n?{customInstructions:n}:{}});return r.aborted?{aborted:!0}:r.cancelled?(o(e=>[...e,Yp("Already at this point")]),{aborted:!1}):(s(!1),o(reconstructFeedFromMessages(harnessSessionMessages(l))),FI(),a(e=>e+1),r.editorText&&i(r.editorText),o(e=>[...e,Yp("Navigated to selected point")]),{aborted:!1})}catch(e){return o(t=>[...t,tg(`Failed to navigate: ${actionErrorMessage(e)}`)]),{aborted:!1}}}function handleTreeCancel({setShowTreeSelector:e}){e(!1)}function handleTreeAbortSummary({sessionId:e}){NO(e)?.abortBranchSummary()}function handleTreeLabel({entryId:e,label:t,sessionId:n,setFeed:r}){const o=NO(n);if(o)try{o.setTreeLabel({targetId:e,label:t})}catch(e){r(t=>[...t,tg(`Failed to set label: ${actionErrorMessage(e)}`)])}}function announceCompletedUpdate({fromVersion:e,toVersion:t}){console.log(yt.green(`Updated ${e} → ${t}`))}function trackUpdateFailure({fromVersion:e,targetVersion:t,trigger:n,userName:r,failureReason:o}){trackError({error:new Error(`Update failed: ${e} -> ${t}${o?`: ${o}`:""}`),context:{component:co.UPDATER,heading:"CLI update failed (atomic + fallback)","cmd.update.from_version":e,"cmd.update.target_version":t,"cmd.update.trigger":n,...o&&{"cmd.update.failure_reason":o},...r&&{"user.name":r}}})}__name(parseGistUrl,"parseGistUrl"),__name(execErrorText,"execErrorText"),__name(defaultCreateGist,"defaultCreateGist"),__name(resolveShareGistFormat,"resolveShareGistFormat"),__name(writeGistPayload,"writeGistPayload"),__name(handleShareGistCommand,"handleShareGistCommand"),__name(copyOrFallback,"copyOrFallback"),__name(handleShareCommand,"handleShareCommand"),__name(handleUnshareCommand,"handleUnshareCommand"),Ex(),Px(),__name(loadPersistedTraceIds,"loadPersistedTraceIds"),__name(handleTrace,"handleTrace"),Ex(),Px(),__name(actionErrorMessage,"actionErrorMessage"),__name(handleTreeCommand,"handleTreeCommand"),__name(handleTreeSelect,"handleTreeSelect"),__name(handleTreeCancel,"handleTreeCancel"),__name(handleTreeAbortSummary,"handleTreeAbortSummary"),__name(handleTreeLabel,"handleTreeLabel"),Ex(),Px(),Ex(),Px(),__name(announceCompletedUpdate,"announceCompletedUpdate"),__name(trackUpdateFailure,"trackUpdateFailure");var t_={createLifecycleEventClient:__name(()=>createApiClient({baseUrl:getApiBaseUrl()}),"createLifecycleEventClient"),isTelemetryEnabled:isTelemetryEnabled,log:dlog,onCompletedUpdate:announceCompletedUpdate,trackUpdateFailure:trackUpdateFailure},n_={updatedVersionThisSession:null};async function handleUpdateCommand({setFeed:e,setStatus:t,setIsCmdCodeBusy:n,setUpdateStatus:r,pinnedStatusRef:o}){const s=__name(e=>{"busy"===e.type&&n(e.value),"pin-status"===e.type&&(o.current=e.value),"status"===e.type&&t(e.value),"update-status"===e.type&&r(e.value)},"emit"),a=await runTuiUpdateCommand({state:n_,host:t_,copy:{binCommand:`${getBinaryCommand()}`,updateCommand:"npm i -g command-code"},emit:s});trackTuiUpdateCommandTelemetry(a),"error"!==a.level?e(e=>[...e,Yp(a.message,a.metadata)]):e(e=>[...e,tg(a.message)])}function tildeHome(e){const t=N.homedir();return t&&e.startsWith(t)?`~${e.slice(t.length)}`:e}function formatWorktreePathLine(e){return` ${lt.dim(it.arrowRight)} ${createOSC8Link(fileUrl(e),tildeHome(e))}`}function enterWorktreeFromFlag(e,t={}){const{quiet:n=!1,track:r=!0}=t,o=process.cwd();if(!isGitRepo(o))return{ok:!1,error:"--worktree requires a git repository (none found here)."};const s=getMainWorktreeRoot(o)??o,a=createWorktree({spec:"string"==typeof e?e.trim():void 0,cwd:o});if(!a.ok)return{ok:!1,error:a.error};try{process.chdir(a.target.worktreePath),global.COMMAND_CODE_CWD=a.target.worktreePath}catch(e){return{ok:!1,error:`couldn't enter worktree: ${e instanceof Error?e.message:String(e)}`}}if(r&&a.created&&markAutoCreatedWorktree({worktreePath:a.target.worktreePath,branch:a.target.branch,baseSha:a.baseSha,mainRoot:s}),!n){const e=a.created?"Created":"Entered",t=a.created?lt.dim(` (branch ${a.target.branch}${a.usedRemote?", from origin":""})`):"",n=a.created&&a.copiedFiles>0?lt.dim(` · copied ${a.copiedFiles} file(s)`):"",r=a.created&&a.copyFailedFiles.length>0?lt.dim(` · ${a.copyFailedFiles.length} include copy failure(s)`):"";process.stdout.write(`${lt.cyan(it.squareSmallFilled)} ${e} worktree ${lt.bold(a.target.name)}${t}${n}${r}\n${formatWorktreePathLine(a.target.worktreePath)}\n`)}return dlog(`[worktree] entered ${a.target.worktreePath} (created=${a.created})`),{ok:!0,name:a.target.name,path:a.target.worktreePath}}__name(handleUpdateCommand,"handleUpdateCommand"),Ex(),Px(),Ex(),Px(),__name(tildeHome,"tildeHome"),__name(formatWorktreePathLine,"formatWorktreePathLine"),__name(enterWorktreeFromFlag,"enterWorktreeFromFlag");var r_=__name((e,t)=>e.setFeed(e=>[...e,Yp(t)]),"info"),o_=__name((e,t)=>e.setFeed(e=>[...e,tg(t)]),"error");function renderList(e,n){const r=listWorktrees(e);return 0===r.length?"No worktrees found.":["Worktrees:",...r.map(r=>{const o=samePath(r.path,e)?"●":"○",s=t.relative(n,r.path),a=r.isMain?".":s&&!s.startsWith("..")?s:tildeHome(r.path);return` ${o} ${r.isMain?`${a} (main)`:a}${r.branch?` [${r.branch}]`:" [detached]"}`}),"","Switch with /worktree <name>."].join("\n")}async function handleWorktreeCommand(e,t){const n=process.cwd();if(!isGitRepo(n))return void o_(e,"/worktree requires a git repository.");const r=getMainWorktreeRoot(n)??n,o=t[0]?.toLowerCase();if(!o||"list"===o||"ls"===o)return void r_(e,renderList(n,r));if("remove"===o||"rm"===o){const o=t[1];return o?void await handleRemove(e,o,n,r):void o_(e,"Usage: /worktree remove <name>")}const s="new"===o||"create"===o||"add"===o?t[1]:t[0];await handleSwitch(e,s,n)}async function handleRemove(e,n,r,o){const s=resolveTarget(n,o);if(samePath(s.worktreePath,r))return void o_(e,"Can't remove the worktree you're in. Switch away first, then remove it.");if(!listWorktrees(r).some(e=>samePath(e.path,s.worktreePath)))return void o_(e,`No worktree named "${n}".`);const a=removeWorktree({worktreePath:s.worktreePath,cwd:r,deleteBranch:isManagedWorktreePath(s.worktreePath,o)?s.branch:void 0});a.ok?r_(e,`Removed worktree "${n}".`):o_(e,`Couldn't remove "${n}": ${a.message}. Commit or stash changes, or remove it manually with: git worktree remove --force ${t.relative(o,s.worktreePath)}`)}async function handleSwitch(e,t,n){const r=createWorktree({spec:t,cwd:n});if(!r.ok)return void o_(e,`Couldn't create worktree: ${r.error}`);if(samePath(r.target.worktreePath,n))return void r_(e,`Already in worktree "${r.target.name}".`);const o=r.created?"Created":"Reusing",s=r.created&&r.copiedFiles>0?` (copied ${r.copiedFiles} file(s))`:"",a=r.created&&r.copyFailedFiles.length>0?` (${r.copyFailedFiles.length} include copy failure(s))`:"";r_(e,`${o} worktree "${r.target.name}"${s}${a}. Switching… (a fresh session starts in the worktree; this one stays resumable).`),await(NO(e.sessionId)?.flush().catch(()=>{})),requestReload(buildReloadCarryoverState({sessionId:e.sessionId,permissionMode:e.permissionModeRef.current,worktree:r.target.name})),e.setShouldExit(!0)}function handleHelpCommand({setFeed:e}){e(e=>[...e,eg(Cg)])}async function handleTerminalSetupCommand({setFeed:e}){const t=Kp("/terminal-setup"),n=setupVSCodeTerminal(),r=rg(n.message,!n.success,n.details),o=rg("Terminal tab titles need no setup — titles are set automatically via standard escape sequences (VS Code 1.117+ honors them out of the box).",!1);e(e=>[...e,t,r,o])}async function handleIDESetupCommand({setFeed:e}){const t=await runIdeSetup({host:G$,moduleUrl:import.meta.url}),n=og(t.status,t.ide,t.details);e(e=>[...e,n])}async function handleClearCommand({setFeed:e,setLiveEntries:t,setQueuedMessages:n,setShareInfo:r,setShowShareNotification:o,setUnshareNotificationMessage:s,setStaticKey:a,setContextUsage:i,setInteractionTokens:l,sessionId:c,setSessionId:d,clearSessionPermissions:u}){e([]),t([]),n([]),clearSessionTodos(),clearShellTasks(),FI(),r(null),o(!1),s(""),await deleteCommandSessionShareInfo({sessionId:c}).catch(()=>{});const m=NO(c);m?.stopBackgroundLearning(),await(m?.flush().catch(()=>{})),$O(c),setNextSessionStartSource("clear"),d(crypto.randomUUID()),u(),a(e=>e+1),i(null),l(0)}async function handleInitCommand({setFeed:e}){const t=await resolveInitMemoryCommand({projectRoot:process.cwd()});e(e=>[...e,Yp(t.message)])}async function runGoalTurn(e,t,n,r){await handleSubmit({role:"user",input:buildSlashCommandMessage({commandName:"/goal",skillName:"goal",rawArguments:t}),images:n,ideContext:r,suppressUserEcho:!0,persistVisibleMessage:!0,isAutomated:!0,isGoalBootstrap:!0,hiddenMessages:[{role:"user",content:buildGoalPrompt({kind:"bootstrap",goalText:t})}],feed:e.feed,setFeed:e.setFeed,setLiveEntries:e.setLiveEntries,isCmdCodeBusy:e.isCmdCodeBusy,setIsCmdCodeBusy:e.setIsCmdCodeBusy,setQueuedMessages:e.setQueuedMessages,setStatus:e.setStatus,setInteractionTokens:e.setInteractionTokens,updateStatus:e.updateStatus,setUpdateStatus:e.setUpdateStatus,billingLink:e.billingLink,setBillingLink:e.setBillingLink,currentModel:e.currentModel,currentProvider:e.currentProvider,isOAuthMode:e.isOAuthMode,premiumCreditsExhausted:e.premiumCreditsExhausted,setPremiumCreditsExhausted:e.setPremiumCreditsExhausted,setCurrentModel:e.setCurrentModel,sessionId:e.sessionId,isSubmittingRef:e.isSubmittingRef,setInput:e.setInput,setStaticKey:e.setStaticKey,executeBash:e.executeBash})}async function handleGoalCommand(e,t,n,r){const o=e.isSubmittingRef.current||e.isCmdCodeBusy,s=await resolveGoalSlashCommand({rawArguments:t,sessionId:e.sessionId,isSubmitting:o,permissionMode:e.permissionModeRef.current,maxTurnsOverride:getGoalMaxTurnsOverride(),loadSessionMeta:__name(async e=>await loadCommandSessionMeta(e),"loadSessionMeta"),saveSessionMeta:__name(async e=>saveCommandSessionMeta(e),"saveSessionMeta"),armGoalLoop:armCommandGoalLoop,disarmGoalLoop:disarmCommandGoalLoop,isGoalLoopArmed:isCommandGoalLoopArmed});e.setFeed(e=>[...e,Yp(s.notice.message,s.notice.metadata)]),o&&"notice"===s.status&&"cleared"===s.notice.metadata?.goalNoticeKind&&NO(e.sessionId)?.requestStopAfterTurn(),"start"===s.status&&await runGoalTurn(e,s.goalText,n,r)}async function openExternalSlashCommandTarget({setFeed:e,target:t}){e(e=>[...e,Yp(`Opening ${createOSC8Link(t.url,t.noticeLabel,!1)} in your browser…`)]);try{await wt(t.url,{wait:!1,background:!0})}catch{const{fallback:n}=t;if("info"===n.kind)return void e(e=>[...e,Yp(n.message)]);e(e=>[...e,tg("Failed to open browser"),eg(createOSC8Link(t.url,n.label,!1))])}}function handleLearnCommand({setAutoLearnTaste:e,setShowTasteOnboarding:t,setTasteOnboardingEntryId:n,setFeed:r}){e(!0),t(!0);const o=ng();n(o.id),r(e=>[...e,o])}async function handleCommand(e,t,n,r){const o=e.trim().split(/\s+/)[0]??"",s=o.split(":")[0]?.replace(/^\//,"")||"unknown";return withSpan({name:`command:${s}`,attributes:{"cmd.command.name":s,"cmd.command.arg_length":Math.max(e.trim().length-o.length,0)},fn:__name(async o=>{const s=await dispatchCommand(e,t,n,r);return o.setAttribute("cmd.command.status",s.status),s},"fn")})}async function dispatchCommand(e,t,n,r){const o=resolveSlashCommandRoute({command:e,isBusy:t.isCmdCodeBusy});if("blocked"===o.kind)return t.setFeed(e=>[...e,Yp(o.message)]),{status:"handled"};if("resume-by-id"===o.kind)return await handleSelectSession({selectedSessionId:o.selectedSessionId,previousSessionId:t.sessionId,sessionLoadIdRef:t.sessionLoadIdRef,setFeed:t.setFeed,setLiveEntries:t.setLiveEntries,setSessionId:t.setSessionId,setShowSessionSelector:t.setShowSessionSelector,setSessionLoaded:t.setSessionLoaded,setStaticKey:t.setStaticKey,setShareInfo:t.setShareInfo,setCurrentModel:t.setCurrentModel,inTuiResume:!0}),{status:"handled"};if("skill"===o.kind){if(0===o.skillName.length)return t.setFeed(e=>[...e,Yp("Name a skill to run: /skill:<name>. Run /skills to see what is installed.")]),{status:"handled"};const e=buildSkillNamespacedCommand(o.skillName);return await handleSkillCommand({commandName:`/${o.skillName}`,command:`${e}${o.rawArguments?` ${o.rawArguments}`:""}`,rawArguments:o.rawArguments,positionalArgs:o.positionalArgs,ctx:t})||(t.setFeed(e=>[...e,tg(`No skill named "${o.skillName}". Run /skills to see what is installed.`)]),{status:"handled"})}if("unknown"===o.kind)return{status:"unknown"};const{commandName:s,rawArguments:a,positionalArgs:i}=o;if("/exit"===s||"/quit"===s)return discardPendingReload(),t.setShouldExit(!0),{status:"handled"};if("/reload"===s)return await(NO(t.sessionId)?.flush().catch(()=>{})),requestReload(buildReloadCarryoverState({sessionId:t.sessionId,permissionMode:t.permissionModeRef.current})),t.setShouldExit(!0),{status:"handled"};if("/clear"===s)return await handleClearCommand(t),{status:"handled"};if("/help"===s)return await handleHelpCommand(t),{status:"handled"};if("/share"===s){const e=a.trim();return"gist"===e||e.startsWith("gist ")?(await handleShareGistCommand({sessionId:t.sessionId,currentModel:t.currentModel,rawFormatArg:e.slice(4).trim(),setFeed:t.setFeed}),{status:"handled"}):(await handleShareCommand({sessionId:t.sessionId,shareInfo:t.shareInfo,setShareInfo:t.setShareInfo,setStatus:t.setStatus,setShowShareNotification:t.setShowShareNotification}),{status:"handled"})}if("/unshare"===s)return await handleUnshareCommand({sessionId:t.sessionId,shareInfo:t.shareInfo,setShareInfo:t.setShareInfo,setStatus:t.setStatus,setUnshareNotificationMessage:t.setUnshareNotificationMessage}),{status:"handled"};if("/taste"===s)return t.setShowTasteConfig(!0),{status:"handled"};if("/learn-taste"===s)return handleLearnCommand(t),{status:"handled"};if("/design"===s)return await handleDesignCommand({ctx:t,rawArguments:a,positionalArgs:i,command:e}),{status:"handled"};if("/skills"===s)return t.setShowSkillsConfig(!0),{status:"handled"};if("/plans"===s)return t.setPlansTarget(a.trim()||null),t.setShowPlansView(!0),{status:"handled"};if("/plan-review"===s)return t.setPlansTarget(T$),t.setShowPlansView(!0),{status:"handled"};if("/config"===s)return t.setShowSettingsConfig(!0),{status:"handled"};if("/provider"===s)return t.setShowProviderSelector(!0),{status:"handled"};if("/model"===s)return await handleModelCommand(t,a),{status:"handled"};if("/effort"===s)return await handleEffortCommand(t,a),{status:"handled"};if("/memory"===s)return t.setShowMemorySelector(!0),{status:"handled"};if("/resume"===s||"/sessions"===s)return t.setShowSessionSelector(!0),{status:"handled"};if("/fork"===s)return await handleForkCommand(t,a.trim()||void 0),{status:"handled"};if("/worktree"===s)return await handleWorktreeCommand(t,i),{status:"handled"};if("/clone"===s)return await handleCloneCommand(t),{status:"handled"};if("/init"===s)return await handleInitCommand(t),{status:"handled"};if("/import"===s)return await handleImportCommand(t,a),{status:"handled"};if("/goal"===s)return await handleGoalCommand(t,a,n,r),{status:"handled"};if("/agents"===s)return t.setShowAgentsConfig(!0),{status:"handled"};if("/mcp"===s)return t.setShowMcpManager(!0),{status:"handled"};if("/compact"===s)return await handleCompactCommand({sessionId:t.sessionId,setFeed:t.setFeed,setStatus:t.setStatus,setIsCmdCodeBusy:t.setIsCmdCodeBusy,setContextUsage:t.setContextUsage,setStaticKey:t.setStaticKey}),{status:"handled"};if("/compact-mode"===s)return t.setShowCompactModeSelector(!0),{status:"handled"};if("/update"===s)return t.setInput(""),await handleUpdateCommand({setFeed:t.setFeed,setStatus:t.setStatus,setIsCmdCodeBusy:t.setIsCmdCodeBusy,setUpdateStatus:t.setUpdateStatus,pinnedStatusRef:t.pinnedStatusRef}),{status:"handled"};if("/context"===s)return t.setShowContextView(!0),{status:"handled"};if("/rewind"===s)return handleRewindCommand({sessionId:t.sessionId,setFeed:t.setFeed,setShowRewindSelector:t.setShowRewindSelector}),{status:"handled"};if("/tree"===s)return await handleTreeCommand({sessionId:t.sessionId,setFeed:t.setFeed,setShowTreeSelector:t.setShowTreeSelector,setTreeFilterMode:t.setTreeFilterMode,setTreeBranchSummarySkipPrompt:t.setTreeBranchSummarySkipPrompt}),{status:"handled"};if("/login"===s)return await handleLoginCommand({provider:a,setFeed:t.setFeed,setShowLoginOverlay:t.setShowLoginOverlay,setAuthComponentInfo:t.setAuthComponentInfo}),t.setInput(""),{status:"handled"};if("/logout"===s)return await handleLogoutCommand({provider:a,setFeed:t.setFeed,setRetryAttempt:t.setRetryAttempt,setIsCmdCodeBusy:t.setIsCmdCodeBusy}),t.setInput(""),{status:"handled"};if("/courses"===s){const e=resolveExternalSlashCommandTarget({commandName:s});return e&&await openExternalSlashCommandTarget({setFeed:t.setFeed,target:e}),{status:"handled"}}if("/feedback"===s){const e=resolveExternalSlashCommandTarget({commandName:s,rawArguments:a});return e&&await openExternalSlashCommandTarget({setFeed:t.setFeed,target:e}),t.setInput(""),{status:"handled"}}if("/trace"===s)return await handleTrace({setFeed:t.setFeed,sessionId:t.sessionId}),t.setInput(""),{status:"handled"};if("/copy"===s)return await handleCopy({feed:t.feed,setFeed:t.setFeed}),t.setInput(""),{status:"handled"};if("/export"===s)return await handleExport({sessionId:t.sessionId,rawPath:a,currentModel:t.currentModel,setFeed:t.setFeed}),t.setInput(""),{status:"handled"};if("/changelog"===s)return handleChangelog({setFeed:t.setFeed,rawArguments:a}),t.setInput(""),{status:"handled"};if("/hotkeys"===s)return handleHotkeys({setFeed:t.setFeed}),t.setInput(""),{status:"handled"};if("/todos"===s)return 0===getSessionTodos().length?t.setFeed(e=>[...e,Yp("No todos in this session yet.")]):requestTodosManagerOpen(),t.setInput(""),{status:"handled"};if("/session-file"===s)return handleSessionFile({sessionId:t.sessionId,setFeed:t.setFeed}),t.setInput(""),{status:"handled"};if("/terminal-setup"===s)return await handleTerminalSetupCommand(t),{status:"handled"};if("/ide"===s)return await handleIDESetupCommand(t),{status:"handled"};if("/add-dir"===s)return t.setShowAddDirModal(!0),{status:"handled"};if("/rename"===s)return await handleRenameCommand({name:a.trim(),sessionId:t.sessionId,setFeed:t.setFeed,setRenamedTerminalTitle:t.setRenamedTerminalTitle,setStatus:t.setStatus,setIsCmdCodeBusy:t.setIsCmdCodeBusy}),t.setInput(""),{status:"handled"};if("/name"===s)return await handleNameCommand({name:a.trim(),sessionId:t.sessionId,setFeed:t.setFeed,setRenamedTerminalTitle:t.setRenamedTerminalTitle}),t.setInput(""),{status:"handled"};if("/usage"===s)return t.setShowUsageOverlay(!0),{status:"handled"};if("/theme"===s)return await handleThemeCommand(t,a),{status:"handled"};if("/plan"===s)return await handlePlanCommand({rawArguments:a,ctx:t}),{status:"handled"};if("/mode"===s||s.startsWith("/mode:")){const e=s.startsWith("/mode:")?s.slice(6):a;return await handleModeCommand({rawArguments:e,ctx:t}),{status:"handled"}}if("/review"===s){const e=await resolveReviewSlashCommand({rawArguments:a});return"missing-gh"===e.status?(t.setFeed(t=>[...t,Yp(e.message,e.metadata)]),t.setInput(""),{status:"handled"}):(await submitAutomatedSlashTurn({turn:e.turn,ctx:t}),{status:"handled"})}if("/pr-comments"===s){await submitAutomatedSlashTurn({turn:buildPrCommentsSlashTurn(),ctx:t});const e=NO(t.sessionId),n=resolvePrCommentsFollowUpInput(e?harnessSessionMessages(e):[]);return n&&t.setInput(n),{status:"handled"}}if("/status"===s)return t.setShowStatusView(!0),{status:"handled"};if("/upgrade"===s){const e=resolveExternalSlashCommandTarget({commandName:s,billingUrl:await getBillingLink({billingLink:t.billingLink,setBillingLink:t.setBillingLink})});return e&&await openExternalSlashCommandTarget({setFeed:t.setFeed,target:e}),{status:"handled"}}if("/extra"===s){const e=resolveExternalSlashCommandTarget({commandName:s,billingUrl:await getBillingLink({billingLink:t.billingLink,setBillingLink:t.setBillingLink})});return e&&await openExternalSlashCommandTarget({setFeed:t.setFeed,target:e}),{status:"handled"}}const l=getActiveModHost(),c=s.slice(1);if(l?.commands().some(e=>e.name===c)){try{const e=await l.runCommand({name:c,args:a}),n=e?.message;n&&t.setFeed(e=>[...e,Yp(n)]),e?.prompt&&await submitAutomatedSlashTurn({turn:buildAutomatedSlashTurn({commandName:c,rawArguments:a,fullPrompt:e.prompt}),ctx:t})}catch(e){t.setFeed(t=>[...t,tg(`Mod command /${c} failed: ${e instanceof Error?e.message:String(e)}`)])}return{status:"handled"}}const d=await resolveCustomSlashTurn({runtime:createNodeRuntime(),commandName:s,rawArguments:a,positionalArgs:i});if(d)return await submitAutomatedSlashTurn({turn:d,ctx:t}),{status:"handled"};return await handleSkillCommand({commandName:s,command:e,rawArguments:a,positionalArgs:i,ctx:t})||{status:"unknown"}}async function submitAutomatedSlashTurn({turn:e,ctx:t}){await handleSubmit({input:e.input,role:"user",displayMessage:e.displayMessage,hiddenMessages:e.hiddenMessages,isAutomated:!0,feed:t.feed,setFeed:t.setFeed,setLiveEntries:t.setLiveEntries,isCmdCodeBusy:t.isCmdCodeBusy,setIsCmdCodeBusy:t.setIsCmdCodeBusy,setQueuedMessages:t.setQueuedMessages,setStatus:t.setStatus,setInteractionTokens:t.setInteractionTokens,updateStatus:t.updateStatus,setUpdateStatus:t.setUpdateStatus,billingLink:t.billingLink,setBillingLink:t.setBillingLink,currentModel:t.currentModel,currentProvider:t.currentProvider,isOAuthMode:t.isOAuthMode,premiumCreditsExhausted:t.premiumCreditsExhausted,setPremiumCreditsExhausted:t.setPremiumCreditsExhausted,setCurrentModel:t.setCurrentModel,sessionId:t.sessionId,isSubmittingRef:t.isSubmittingRef,setInput:t.setInput,setStaticKey:t.setStaticKey,executeBash:t.executeBash})}async function handleSkillCommand({commandName:e,command:t,rawArguments:n,positionalArgs:r,ctx:o}){const s=await resolveSkillSlashTurn({runtime:createNodeRuntime(),commandName:e,command:t,rawArguments:n,positionalArgs:r});return"not-found"===s.status?null:"disabled"===s.status?(o.setFeed(e=>[...e,Yp(s.message)]),{status:"handled"}):"load-error"===s.status?(o.setFeed(e=>[...e,tg(s.message)]),{status:"handled"}):(await submitAutomatedSlashTurn({turn:s.turn,ctx:o}),{status:"handled"})}function useCommandCtx({feedState:e,sessionState:t,statusState:n,authState:r,uiOverlays:o,onboarding:s,exitState:a,permissionState:i,terminalTitleState:l,isSubmittingRef:c,executeBash:d,setInput:u}){const m=rt(()=>({feed:e.feed,setFeed:e.setFeed,setLiveEntries:e.setLiveEntries,setQueuedMessages:e.setQueuedMessages,setStatus:n.setStatus,setInteractionTokens:n.setInteractionTokens,setContextUsage:n.setContextUsage,contextUsage:n.contextUsage,setStaticKey:o.setStaticKey,updateStatus:n.updateStatus,setUpdateStatus:n.setUpdateStatus,billingLink:n.billingLink,setBillingLink:n.setBillingLink,currentModel:r.currentModel,premiumCreditsExhausted:r.premiumCreditsExhausted,setPremiumCreditsExhausted:r.setPremiumCreditsExhausted,setCurrentModel:r.setCurrentModel,setModelNotice:o.setModelNotice,currentProvider:r.currentProvider,isOAuthMode:r.isOAuthMode,setAuthComponentInfo:r.setAuthComponentInfo,shareInfo:n.shareInfo,setShareInfo:n.setShareInfo,setShowShareNotification:n.setShowShareNotification,setUnshareNotificationMessage:n.setUnshareNotificationMessage,setRetryAttempt:n.setRetryAttempt,pinnedStatusRef:n.pinnedStatusRef,setShowTasteConfig:o.setShowTasteConfig,setShowSkillsConfig:o.setShowSkillsConfig,setShowSettingsConfig:o.setShowSettingsConfig,setShowProviderSelector:o.setShowProviderSelector,setShowModelSelector:o.setShowModelSelector,setShowEffortSelector:o.setShowEffortSelector,setShowMemorySelector:o.setShowMemorySelector,setShowAgentsConfig:o.setShowAgentsConfig,setShowMcpManager:o.setShowMcpManager,setShowRewindSelector:o.setShowRewindSelector,setShowTreeSelector:o.setShowTreeSelector,setTreeFilterMode:o.setTreeFilterMode,setTreeBranchSummarySkipPrompt:o.setTreeBranchSummarySkipPrompt,setShowCompactModeSelector:o.setShowCompactModeSelector,setShowContextView:o.setShowContextView,setShowAddDirModal:o.setShowAddDirModal,setShowLoginOverlay:o.setShowLoginOverlay,setShowStatusView:o.setShowStatusView,setShowPlansView:o.setShowPlansView,setPlansTarget:o.setPlansTarget,setShowUsageOverlay:o.setShowUsageOverlay,setShowThemeSelector:o.setShowThemeSelector,setShowDesignGuide:o.setShowDesignGuide,setPendingDesignSuggestion:o.setPendingDesignSuggestion,setShowTasteOnboarding:s.setShowTasteOnboarding,setAutoLearnTaste:s.setAutoLearnTaste,setTasteOnboardingEntryId:s.setTasteOnboardingEntryId,sessionId:t.sessionId,setSessionId:t.setSessionId,sessionLoadIdRef:t.sessionLoadIdRef,sessionLoaded:t.sessionLoaded,setSessionLoaded:t.setSessionLoaded,setShowSessionSelector:o.setShowSessionSelector,setPermissionMode:i.setPermissionMode,permissionModeRef:i.permissionModeRef,clearSessionPermissions:i.clearSessionPermissions,setShouldExit:a.setShouldExit,setInput:u,isSubmittingRef:c,isCmdCodeBusy:e.isCmdCodeBusy,setIsCmdCodeBusy:e.setIsCmdCodeBusy,executeBash:d,setRenamedTerminalTitle:l.setRenamedTerminalTitle}),[e,t,n,r,o,s,a,i,l,c,d,u]),p=tt(m);return p.current=m,{commandCtx:m,onCommand:ot((e,t,n)=>handleCommand(e,p.current,t,n),[])}}__name(renderList,"renderList"),__name(handleWorktreeCommand,"handleWorktreeCommand"),__name(handleRemove,"handleRemove"),__name(handleSwitch,"handleSwitch"),__name(handleHelpCommand,"handleHelpCommand"),__name(handleTerminalSetupCommand,"handleTerminalSetupCommand"),__name(handleIDESetupCommand,"handleIDESetupCommand"),__name(handleClearCommand,"handleClearCommand"),__name(handleInitCommand,"handleInitCommand"),__name(runGoalTurn,"runGoalTurn"),__name(handleGoalCommand,"handleGoalCommand"),__name(openExternalSlashCommandTarget,"openExternalSlashCommandTarget"),__name(handleLearnCommand,"handleLearnCommand"),__name(handleCommand,"handleCommand"),__name(dispatchCommand,"dispatchCommand"),__name(submitAutomatedSlashTurn,"submitAutomatedSlashTurn"),__name(handleSkillCommand,"handleSkillCommand"),__name(useCommandCtx,"useCommandCtx"),Ex(),Px();var s_=Ro,a_=Oo;function useCreditWarning({interactionTokens:e}){const[t,n]=et(null),r=tt(null),o=tt(null),s=tt(null),a=ot(async()=>{try{const e=createApiClient({baseUrl:getApiBaseUrl()});r.current??=createCreditWarningState();const t=await checkCreditWarning({client:e,state:r.current});if(r.current=t.state,!t.message)return;n(t.message),s.current&&clearTimeout(s.current),s.current=setTimeout(()=>{n(null),s.current=null},s_)}catch{}},[]);return nt(()=>{if(0!==e)return o.current&&clearTimeout(o.current),o.current=setTimeout(()=>{a(),o.current=null},a_),()=>{o.current&&clearTimeout(o.current)}},[e,a]),nt(()=>()=>{s.current&&clearTimeout(s.current),o.current&&clearTimeout(o.current)},[]),{creditWarning:t}}function useCronWakeup({onSubmit:e}){const t=tt(e);nt(()=>{t.current=e},[e]),nt(()=>{const e=subscribeCronFire(e=>{t.current(buildCronWakeupSubmission(e))});return()=>{e()}},[])}function useExit(){const[e,t]=et(!1),[n,r]=et(null),o=tt(null),s=tt(0),a=tt(null),i=ot(()=>{o.current=null,r(null),a.current&&(clearTimeout(a.current),a.current=null)},[]);return{shouldExit:e,setShouldExit:t,pendingExitKey:n,setPendingExitKey:r,pendingExitKeyRef:o,lastExitKeyTimeRef:s,exitConfirmationTimeoutRef:a,resetPendingExitKey:i}}__name(useCreditWarning,"useCreditWarning"),Ex(),Px(),__name(useCronWakeup,"useCronWakeup"),Ex(),__name(useExit,"useExit"),Ex(),Px(),Ex(),Px();var i_="1"===process.env.CMD_TEST_INJECT_LIVE_ENTRY;function makeInjectedShellEntry(e,t,n,r={}){return{...Xp("shell_command",t,{status:n}),id:e,...r}}function buildInjectedLiveEntry(){return i_?makeInjectedShellEntry("cmd-test-injected-live-entry",process.env.CMD_TEST_INJECT_INPUT??"sleep 60","running"):null}function buildInjectedFeed(){const e=Number.parseInt(process.env.CMD_TEST_INJECT_FEED_ITEMS??"0",10);return!Number.isFinite(e)||e<=0?[]:Array.from({length:e},(e,t)=>makeInjectedShellEntry(`cmd-test-feed-${t}`,`echo item ${t}`,"completed",{output:`item ${t}`}))}__name(makeInjectedShellEntry,"makeInjectedShellEntry"),__name(buildInjectedLiveEntry,"buildInjectedLiveEntry"),__name(buildInjectedFeed,"buildInjectedFeed");var l_="1"===process.env.CMD_TEST_INJECT_STREAM,c_="cmd-test-injected-stream-entry";function streamRole(){const e=process.env.CMD_TEST_INJECT_STREAM_ROLE;return"reasoning"===e||"tool"===e||"agent"===e?e:"assistant"}function streamContentKind(){const e=process.env.CMD_TEST_INJECT_STREAM_CONTENT;return"code"===e||"paragraph"===e||"reasoning"===e||"mixed"===e||"huge"===e?e:"table"}function streamTickMs(){const e=Number.parseInt(process.env.CMD_TEST_INJECT_STREAM_TICK_MS??"",10);return Number.isFinite(e)&&e>0?e:100}function buildHugeStreamContent(){const e=[];e.push("# Huge streaming gauntlet","A very long reply exercising **every** markdown flavor while it streams. Scroll up mid-stream — the position must hold; finished blocks land in the scrollback above.");for(let t=0;t<6;t+=1){e.push(`## Section ${t} — prose, lists and a table`),e.push(...Array.from({length:4},(e,n)=>`Section ${t} paragraph ${n}: the quick brown fox keeps streaming words so this block wraps a couple of rows, with **bold**, *italic*, ***both***, ~~strikethrough~~, \`inline_code(${n})\` and a [link](https://example.com/s${t}/p${n}) mixed in.`)),e.push([`- Section ${t} unordered item one`,`- Section ${t} unordered item two`," - nested child with `code`"," - nested child with **bold**",`- Section ${t} unordered item three`].join("\n"),[`1. Section ${t} ordered first`,`2. Section ${t} ordered second`,`3. Section ${t} ordered third`].join("\n"),`> Section ${t} blockquote: streaming should never mangle a quote.\n> > And a nested quote inside it still reads fine.`);const n=Array.from({length:6},(e,n)=>`| s${t}-row-${n} | huge demo detail ${n} | ${3*n} |`);e.push(["| Key | Detail | N |","| --- | --- | --- |",...n].join("\n"),"---")}e.push("## Task list and headings ladder"),e.push(["- [x] streamed a task that is done","- [ ] a pending task with `code`","- [x] another finished task with **bold**","- [ ] the last pending task"].join("\n"),"### Heading three","#### Heading four","##### Heading five","###### Heading six"),e.push("## Code in several languages"),e.push(["```ts","const total = rows.reduce(sum);","export function streamGauntlet(rows: number[]): number {","\treturn rows.filter(Boolean).length;","}","```"].join("\n"),["```python","def stream_gauntlet(rows):",' """Docstring survives streaming."""'," return [row * 2 for row in rows if row]","```"].join("\n"),["```json","{",' "stream": "gauntlet",',' "blocks": ["table", "code", "list"],',' "huge": true',"}","```"].join("\n"),["```bash","for block in table code list; do",' echo "streaming $block"',"done","```"].join("\n"),["```diff","- const cap = 10;","+ const cap = viewportRows - reserved;","```"].join("\n")),e.push("## Wide table (column fitting / wrap layout)");const t=Array.from({length:10},(e,t)=>`| wide-${t} | alpha ${t} | beta ${t} | gamma ${t} | a longer cell that should wrap gracefully ${t} | ${11*t} |`);e.push(["| Id | Alpha | Beta | Gamma | Long description column | N |","| --- | --- | --- | --- | --- | --- |",...t].join("\n")),e.push("## Huge table (taller than the viewport — the one capped-while-open case)");const n=Array.from({length:40},(e,t)=>`| huge-row-${t} | streaming stress row number ${t} | ${7*t} |`);return e.push(["| Row | Description | N |","| --- | --- | --- |",...n].join("\n")),e.push("## Width edge cases"),e.push("CJK 漢字が流れても幅計算は崩れない、そしてまた漢字。Emoji too: 🚀🔥✨🎉🧪 — double-width glyphs must wrap correctly.","A single extremely long unbroken paragraph follows to force soft wrapping across many physical rows: "+Array.from({length:12},(e,t)=>`clause ${t} keeps the sentence rolling without a newline`).join(", ")+"."),e.push("## The end","Everything above should now sit in your scrollback exactly once.","Huge demo closing paragraph."),e.join("\n\n")}function buildStreamContent(e){return"code"===e?["```ts",...Array.from({length:34},(e,t)=>`const value_${t} = compute(${t});`),"```"].join("\n"):"paragraph"===e?Array.from({length:16},(e,t)=>`Paragraph ${t} adds a little more of the streaming story so the reply keeps growing past the viewport.`).join("\n\n"):"reasoning"===e?Array.from({length:40},(e,t)=>`step ${t}: consider the next detail`).join("\n"):"huge"===e?buildHugeStreamContent():"mixed"===e?`${Array.from({length:3},(e,t)=>`Mixed intro paragraph ${t} with enough words.`).join("\n\n")}\n\n${["| Col | Detail |","| --- | --- |",...Array.from({length:8},(e,t)=>`| row-${t} | mixed detail ${t} |`)].join("\n")}\n\nMixed closing paragraph.`:["| Item | Description | Value |","| --- | --- | --- |",...Array.from({length:20},(e,t)=>`| item-${t} | detail for row number ${t} | ${7*t} |`)].join("\n")}function buildStreamFrames(e){const t=e.split("\n");return t.length>1?t.map((e,n)=>t.slice(0,n+1).join("\n")):Array.from({length:20},(t,n)=>{const r=Math.ceil(e.length*(n+1)/20);return e.slice(0,r)})}function makeStreamRunningEntry(e,t){return"reasoning"===e?sg(t,{id:c_,status:"running"}):"tool"===e?{...Xp("shell_command",t,{status:"running"}),id:c_}:"agent"===e?{...ag({name:"Task",input:t}),id:c_}:{...Qp(t),id:c_,metadata:{status:"running"}}}function makeStreamFinalEntry(e,t){return"reasoning"===e?sg(t,{id:c_}):"tool"===e||"agent"===e?{...Xp("shell_command",t,{}),id:c_,output:"done"}:{...Qp(t),id:c_}}function maybeStartInjectedStream(e){if(!l_)return;const{setFeed:t,setLiveEntries:n,setIsCmdCodeBusy:r}=e,o=streamRole(),s=buildStreamFrames(buildStreamContent(streamContentKind())),a=streamTickMs();r(!0);const i=createBlockCommittingRouter({setFeed:t,setLiveEntries:n});i(makeStreamRunningEntry(o,s[0]??""));let l=0;const c=setInterval(()=>{if(l+=1,l<s.length)return void i(makeStreamRunningEntry(o,s[l]??""));clearInterval(c);const e=s[s.length-1]??"";i(makeStreamFinalEntry(o,e)),r(!1)},a);return()=>clearInterval(c)}__name(streamRole,"streamRole"),__name(streamContentKind,"streamContentKind"),__name(streamTickMs,"streamTickMs"),__name(buildHugeStreamContent,"buildHugeStreamContent"),__name(buildStreamContent,"buildStreamContent"),__name(buildStreamFrames,"buildStreamFrames"),__name(makeStreamRunningEntry,"makeStreamRunningEntry"),__name(makeStreamFinalEntry,"makeStreamFinalEntry"),__name(maybeStartInjectedStream,"maybeStartInjectedStream");var d_="1"===process.env.CMD_TEST_INJECT_TODOS;function todosTickMs(){const e=Number.parseInt(process.env.CMD_TEST_INJECT_TODOS_TICK_MS??"",10);return Number.isFinite(e)&&e>0?e:1500}__name(todosTickMs,"todosTickMs");var u_=(()=>{const e=[{content:"Create initial todo items",active:"Creating initial todo items"},{content:"Update status of a todo",active:"Updating todo status"},{content:"Mark all todos as completed",active:"Marking all todos as completed"}];return Array.from({length:e.length+1},(t,n)=>e.map((e,t)=>({content:e.content,status:t<n?"completed":t===n?"in_progress":"pending",...t===n?{activeForm:e.active}:{},id:String(t+1)})))})();function maybeStartInjectedTodos(e){if(!d_)return;const t=createBlockCommittingRouter({setFeed:e.setFeed,setLiveEntries:e.setLiveEntries});let n=0;const r=setInterval(()=>{const e=u_[n];e?(t({...Xp("todo_write",yg("todo_write",{todos:e}),{}),id:`cmd-test-todo-${n}`,output:JSON.stringify(e)}),n+=1):clearInterval(r)},todosTickMs());return()=>clearInterval(r)}__name(maybeStartInjectedTodos,"maybeStartInjectedTodos");var m_=Number.parseInt(process.env.CMD_TEST_INJECT_TURNS??"0",10);function testTurnChars(){const e=Number.parseInt(process.env.CMD_TEST_INJECT_TURN_CHARS??"",10);return Number.isFinite(e)&&e>0?e:1e5}function testTurnTickMs(){const e=Number.parseInt(process.env.CMD_TEST_INJECT_TURN_TICK_MS??"",10);return Number.isFinite(e)&&e>0?e:20}function makeInjectedTurnEntry(e,t){const n=`turn ${e} `.repeat(Math.ceil(testTurnChars()/`turn ${e} `.length));return makeInjectedShellEntry(`cmd-test-turn-${e}`,t?"echo turns-done":`echo turn ${e}`,"completed",{output:t?"turns-done":n.slice(0,testTurnChars())})}function maybeStartInjectedTurns(e){if(!Number.isFinite(m_)||m_<=0)return;const{setFeed:t}=e;let n=0;const r=setInterval(()=>{const e=n===m_-1,o=makeInjectedTurnEntry(n,e);t(e=>[...e,o]),n+=1,e&&clearInterval(r)},testTurnTickMs());return()=>clearInterval(r)}function useFeed(){const[e,t]=et(()=>buildInjectedFeed()),n=ot(e=>{t(t=>applyFeedRetention("function"==typeof e?e(t):e))},[]);nt(()=>{trimStaticBuffer()},[e]);const[r,o]=et(()=>{const e=buildInjectedLiveEntry();return e?[e]:[]}),[s,a]=et([]),[i,l]=et(i_),c=tt([]),d=ot(e=>{const t="function"==typeof e?e(c.current):e;c.current=t,a(t)},[]);return nt(()=>maybeStartInjectedTurns({setFeed:n}),[n]),nt(()=>maybeStartInjectedStream({setFeed:n,setLiveEntries:o,setIsCmdCodeBusy:l}),[]),nt(()=>maybeStartInjectedTodos({setFeed:n,setLiveEntries:o}),[]),{feed:e,setFeed:n,liveEntries:r,setLiveEntries:o,queuedMessages:s,setQueuedMessages:d,isCmdCodeBusy:i,setIsCmdCodeBusy:l,queuedMessagesRef:c}}function useKeyboard({showTasteConfig:e,showSkillsConfig:t,showSettingsConfig:n,showProviderSelector:r,showModelSelector:o,showEffortSelector:s,showMemorySelector:a,showMcpManager:i,showRewindSelector:l,showTreeSelector:c,showLoginOverlay:d,showUsageOverlay:u,showAddDirModal:m,showDesignGuide:p,authComponentInfo:g,setShowModelSelector:h,setStaticKey:f,showTasteSkipBanner:y,setShowTasteSkipBanner:S,showZdrNotice:w,setShowZdrNotice:k,modelNotice:v,setModelNotice:C,transcriptMode:b,setTranscriptMode:E,isCmdCodeBusy:T,liveEntries:P,queuedMessagesRef:M,setInput:x,setQueuedMessages:I,setFeed:A,setLiveEntries:R,setIsCmdCodeBusy:O,setRetryAttempt:D,setStatus:L,pendingExitKey:N,setPendingExitKey:$,pendingExitKeyRef:_,lastExitKeyTimeRef:F,exitConfirmationTimeoutRef:U,resetPendingExitKey:j,pendingPermission:B,setPendingPermission:W,pendingQuestion:H,setPendingQuestion:G,setShouldExit:V,sessionId:z,handleToggleAutoAccept:q,handleDoubleEscapeEmpty:K,respondToPrompt:Y,createErrorEntry:J}){const Q=__name(()=>{interruptActiveTurn(),clearCommandGoalIfActive(z);const e=P.length>0;if(O(!1),D(null),R([]),L(Ef),!e){const e=J(bf);A(t=>[...t,e])}if(M.current.length>0){const e=formatQueuedMessagesForRequeue(M.current);x(t=>mergeRequeuedInput({queuedText:e,currentInput:t})),I([]),M.current=[]}},"handleInterrupt");Ye((P,M)=>{const I=getKeybindings();if(keybindingMatches(I,"app.permission.cycle",P,M)||"[Z"===P||M.meta&&"m"===P)return void q();if(y&&M.escape)return void S(!1);if(w&&M.escape)return void k(!1);if(v&&M.escape)return void C(null);if(isTodosManagerOpen())return void(N&&j());if(e||t||n||r||o||s||a||i||g||l||c||d||u||m||p)return void(N&&j());if(""===P||M.ctrl&&"c"===P){if(T)return void Q();const e=Date.now(),t=e-F.current;return F.current=e,"ctrl-c"===_.current&&t<2e3?(U.current&&(clearTimeout(U.current),U.current=null),void V(!0)):(x(()=>""),_.current="ctrl-c",$("ctrl-c"),U.current&&clearTimeout(U.current),void(U.current=setTimeout(()=>{_.current=null,$(null),U.current=null},2e3)))}if(keybindingMatches(I,"app.tools.expand",P,M)){if(H?.params.planContent)return;return FI(),E("off"===b?"limited":"off"),void f(e=>e+1)}const A=isCtrlKey({inputChar:P,key:M,letter:"e",ctrlCode:5})||isCtrlKey({inputChar:P,key:M,letter:"y",ctrlCode:25}),R=null!==B&&"function"==typeof B.params?.explain;if("off"!==b&&A&&!R)return FI(),E("limited"===b?"full":"limited"),void f(e=>e+1);if("off"===b&&getSessionTodos().length>0&&keybindingMatches(I,"app.todos.toggle",P,M))requestTodosManagerOpen();else if(keybindingMatches(I,"app.model.select",P,M)||isAltP(P))h(!0);else if(M.escape){if("off"!==b)return FI(),E("off"),void f(e=>e+1);if(H)return H.reject(new Error("Question cancelled by user")),G(null),L("Question cancelled"),hardResetForResize(),void f(e=>e+1);if(B)return Y({label:"No, and tell Command Code what to do differently",value:"no",description:"Deny and provide feedback",scope:void 0}),B.resolve(!1),W(null),void L("Permission denied");T&&Q()}})}function useHandlers({resume:e,feedState:t,onboarding:n,uiOverlays:r,exitState:o,pendingOps:s,permissionState:a,statusState:i,authState:l,sessionId:c,loadTasteStatus:d,loadCurrentProvider:u,setInput:m}){const p=ot(()=>{a.setPermissionMode(e=>{const t=cyclePermissionMode({current:e,dangerouslySkipPermissions:a.dangerouslySkipPermissions}),n=resolvePendingPromptOnModeChange(t,{pendingIsRisky:void 0!==s.pendingPermission?.params?.risk});return n&&s.pendingPermission&&("approve"===n&&a.respondToPrompt(fE),s.pendingPermission.resolve("approve"===n),s.setPendingPermission(null)),NO(c)?.setPermissionMode({mode:t}),t})},[a.setPermissionMode,a.respondToPrompt,a.dangerouslySkipPermissions,s.pendingPermission,s.setPendingPermission,c]),g=ot(()=>{a.setPermissionMode(e=>{const t="bypass"===e?e:"auto-accept";return NO(c)?.setPermissionMode({mode:t}),t})},[a.setPermissionMode,c]),h=ot(()=>{const e=!t.isCmdCodeBusy&&!s.pendingPermission&&!s.pendingQuestion,n=(NO(c)?.listCheckpoints().length??0)>0;e&&n&&r.setShowRewindSelector(!0)},[t.isCmdCodeBusy,s.pendingPermission,s.pendingQuestion,r.setShowRewindSelector,c]),f=ot(t=>{n.setOnboardingComplete(!0),n.setShowTasteOnboarding(!1),n.setAutoLearnTaste(!1),t?.skipped&&r.setShowTasteSkipBanner(!0),e&&r.setShowSessionSelector(!0)},[e,n,r]),y=ot(async()=>{try{if(await initializeCommandProjectSessions(),n.setShowTrustPrompt(!1),e)return console.log("No conversations found to resume."),void o.setShouldExit(!0);n.setProjectTrusted(!0),d(),u()}catch(e){console.error("Failed to initialize project:",e),n.setShowTrustPrompt(!1),o.setShouldExit(!0)}},[e,n,o,d,u]),S=ot(()=>{o.setShouldExit(!0)},[o.setShouldExit]);return useKeyboard({showTasteConfig:r.showTasteConfig,showSkillsConfig:r.showSkillsConfig,showSettingsConfig:r.showSettingsConfig,showProviderSelector:r.showProviderSelector,showModelSelector:r.showModelSelector,showEffortSelector:r.showEffortSelector,showMemorySelector:r.showMemorySelector,showMcpManager:r.showMcpManager,showRewindSelector:r.showRewindSelector,showTreeSelector:r.showTreeSelector,showLoginOverlay:r.showLoginOverlay,showUsageOverlay:r.showUsageOverlay,showAddDirModal:r.showAddDirModal,showDesignGuide:r.showDesignGuide,authComponentInfo:l.authComponentInfo,setShowModelSelector:r.setShowModelSelector,setStaticKey:r.setStaticKey,showTasteSkipBanner:r.showTasteSkipBanner,setShowTasteSkipBanner:r.setShowTasteSkipBanner,showZdrNotice:r.showZdrNotice,setShowZdrNotice:r.setShowZdrNotice,modelNotice:r.modelNotice,setModelNotice:r.setModelNotice,transcriptMode:r.transcriptMode,setTranscriptMode:r.setTranscriptMode,isCmdCodeBusy:t.isCmdCodeBusy,liveEntries:t.liveEntries,queuedMessagesRef:t.queuedMessagesRef,setInput:m,setQueuedMessages:t.setQueuedMessages,setFeed:t.setFeed,setLiveEntries:t.setLiveEntries,setIsCmdCodeBusy:t.setIsCmdCodeBusy,setRetryAttempt:i.setRetryAttempt,setStatus:i.setStatus,pendingExitKey:o.pendingExitKey,setPendingExitKey:o.setPendingExitKey,pendingExitKeyRef:o.pendingExitKeyRef,lastExitKeyTimeRef:o.lastExitKeyTimeRef,exitConfirmationTimeoutRef:o.exitConfirmationTimeoutRef,resetPendingExitKey:o.resetPendingExitKey,pendingPermission:s.pendingPermission,setPendingPermission:s.setPendingPermission,pendingQuestion:s.pendingQuestion,setPendingQuestion:s.setPendingQuestion,setShouldExit:o.setShouldExit,sessionId:c,handleToggleAutoAccept:p,handleDoubleEscapeEmpty:h,respondToPrompt:a.respondToPrompt,createErrorEntry:tg}),{handleToggleAutoAccept:p,handleEnableAutoAccept:g,handleDoubleEscapeEmpty:h,handleTasteOnboardingComplete:f,handleTrust:y,handleNoTrust:S}}__name(testTurnChars,"testTurnChars"),__name(testTurnTickMs,"testTurnTickMs"),__name(makeInjectedTurnEntry,"makeInjectedTurnEntry"),__name(maybeStartInjectedTurns,"maybeStartInjectedTurns"),__name(useFeed,"useFeed"),Ex(),Px(),Ex(),Px(),__name(useKeyboard,"useKeyboard"),__name(useHandlers,"useHandlers"),Ex(),Px(),Ex(),Px();var p_,g_=[],h_=[];function setModPathsOverride(e){g_=e}function setModOptionsOverride(e){h_=e}function loadCommandModHost(e={}){return p_||(p_=buildHost(e))}async function buildHost(e){try{const t=createNodeRuntime(),n=createModHost({runtime:t}),r=!1!==e.projectMods&&await isCommandProjectSessionInitialized();await loadMods({runtime:t,host:n,includeProject:r,extraPaths:g_,builtins:commandBuiltinMods()});for(const e of h_){const t=e.indexOf("=");t<=0?dlog(`[mods] ignoring malformed --mod-option "${e}"`):n.setFlagValue({name:e.slice(0,t),value:e.slice(t+1)})}for(const e of n.warnings())dlog(`[mods] ${e.path}: ${e.reason}`);return setActiveModHost(n),setRegisteredProviderModules({modules:n.providerModules()}),n}catch(e){return void dlog(`[mods] host construction failed: ${e instanceof Error?e.message:String(e)}`)}}function resolveExternalModelChange(e){return"model"!==e.setting||"string"!=typeof e.value||0===e.value.length||e.value===e.currentModel?null:{modelId:e.value}}function raceAnswerAgainstAbort(e,t){return t?t.aborted?Promise.resolve("deny"):new Promise((n,r)=>{const o=__name(()=>n("deny"),"onAbort");t.addEventListener("abort",o,{once:!0}),e.then(e=>{t.removeEventListener("abort",o),n(e)},e=>{t.removeEventListener("abort",o),r(e)})}):e}__name(setModPathsOverride,"setModPathsOverride"),__name(setModOptionsOverride,"setModOptionsOverride"),__name(loadCommandModHost,"loadCommandModHost"),__name(buildHost,"buildHost"),Ex(),__name(resolveExternalModelChange,"resolveExternalModelChange"),Ex(),__name(raceAnswerAgainstAbort,"raceAnswerAgainstAbort"),Ex();var f_={},y_={};function setStartupSessionOptions(e){f_=void 0===e.persist?{}:{persist:e.persist},y_={...e.sessionFilePath?{sessionFilePath:e.sessionFilePath}:{},...e.name?{name:e.name}:{}}}function getStickyStartupSessionOptions(){return f_}function consumeStartupSessionOverrides(){const e=y_;return y_={},e}function buildInteraction({permissionsService:e,permissionModeRef:t,setPendingQuestion:n,setStatus:r}){return{confirmTool:__name(async({toolName:n,input:r,description:o,risk:s,explain:a,signal:i})=>{if(!e)return"allow";if(i?.aborted)return"deny";const l=__name(e=>raceAnswerAgainstAbort(e.then(e=>e.allowed?"allow":"deny"),i),"withInterrupt"),c=buildToolPermissionRequest({toolName:n,input:r,description:o,...void 0!==s?{risk:s}:{},...void 0!==a?{explain:a}:{}});return"shell"===c.kind?l(e.requestShellPermission(c.request)):"generic"===c.kind?l(e.requestGenericPermission(c.request)):l(e.requestPermission(c.request,t.current))},"confirmTool"),askQuestion:__name(async e=>new Promise(t=>{n({params:{questions:e.questions.map(e=>({question:e.question,header:e.header??"",options:e.options.map(e=>({label:e.label,description:e.description??"",...void 0!==e.preview?{preview:e.preview}:{}})),multiSelect:e.multiSelect??!1})),hideCustomInput:e.hideCustomInput,exitPlanMode:e.exitPlanMode,enterPlanMode:e.enterPlanMode,planContent:e.planContent,planFilePath:e.planFilePath,compact:e.compact},resolve:__name(e=>{t({answers:e.answers.map(e=>({questionIndex:e.questionIndex,selectedOptions:[...e.selectedOptions],...void 0!==e.notes?{notes:e.notes}:{},...void 0!==e.preview?{preview:e.preview}:{},...e.images?.length?{images:e.images}:{}})),...e.disposition?{disposition:e.disposition}:{}})},"resolve"),reject:__name(()=>{t({answers:[]})},"reject")}),r("Waiting for your answer…")}),"askQuestion")}}function useHarness({sessionId:e,sessionLoaded:t,showSessionSelector:n,projectTrusted:o,permissionsService:s,permissionModeRef:a,setPermissionMode:i,permissionModeExplicit:l,dangerouslySkipPermissions:c,setPendingQuestion:d,setStatus:u,setFeed:m,queuedMessagesRef:p,setQueuedMessages:g,onSessionTitled:h,currentModel:f,setCurrentModel:y,setStaticKey:S,isCmdCodeBusy:w}){const k=tt(f);k.current=f;const v=tt(null),C=tt(w);C.current=w;const b=ot(e=>{k.current=e,y?.(e),hardResetForResize(),S?.(e=>e+1)},[y,S]);nt(()=>{if(w)return;const e=v.current;null!==e&&(v.current=null,e!==k.current&&b(e))},[w,b]);const[E,T]=et(!1),P=tt(a.current);return nt(()=>{if(!o||n)return;const t=__name(()=>Boolean(l)||a.current!==P.current,"userChoseMode");let f,y,S=!1;return(async()=>{const n=consumeStartupSessionOverrides(),{persist:o}=getStickyStartupSessionOptions(),l=await loadResumeAgentState({sessionId:e,...n.sessionFilePath?{baseDir:r(n.sessionFilePath)}:{}});if(S)return;const w=__name(()=>{const e=p?.current??[];return 0===e.length?[]:(p&&(p.current=[]),g?.(()=>[]),m?.(t=>[...t,...e.flatMap(e=>{if(e.isMeta)return[];const t=Kp(e.displayMessage??e.input);return e.ideHint&&(t.metadata={ideHint:e.ideHint}),[t]})]),e.map(e=>{const t=e.ideContext?`${e.ideContext}\n\n${e.input}`:e.input;return e.images&&0!==e.images.length?{input:[...clipboardImagesToUserContent(e.images),{type:"text",text:t}]}:{input:t}}))},"drainQueuedMessages"),E=await loadCommandModHost(),P=await LO({sessionId:e,baseUrl:getApiBaseUrl(),...t()?{permissionMode:a.current}:{},dangerouslySkipPermissions:c,drainQueuedMessages:w,peekQueuedMessageCount:__name(()=>p?.current?.length??0,"peekQueuedMessageCount"),interaction:buildInteraction({permissionsService:s,permissionModeRef:a,setPendingQuestion:d,setStatus:u}),requestSlashCommand:__name(({command:t})=>(enqueueAgentSlashCommand({sessionId:e,command:t}),{status:"accepted"}),"requestSlashCommand"),resumeState:l,modHost:E,...void 0!==o?{persist:o}:{},...n.sessionFilePath?{sessionFilePath:n.sessionFilePath}:{},ideBridge:createLocalIdeBridge()}).catch(()=>{});if(S||!P)return;n.name&&P.setSessionName(n.name),P.getPermissionMode()!==a.current&&(t()?P.setPermissionMode({mode:a.current}):(a.current=P.getPermissionMode(),i?.(P.getPermissionMode())));const M=P.getModel();M!==k.current&&b(M),E&&m&&(E.setEntrySink(e=>{m(t=>[...t,Yp(e.join("\n"))])}),y=__name(()=>E.setEntrySink(void 0),"clearModEntrySink")),f=P.events.subscribe(e=>{if("session_titled"===e.type)return void h?.(e.title);if("permission_mode_changed"===e.type)return a.current=e.mode,void i?.(e.mode);if("config_setting_changed"===e.type){"theme"===e.setting&&"string"==typeof e.value&&isCliTheme(e.value)&&applyTuiTheme(resolveCliTheme(e.value));const t=resolveExternalModelChange({setting:e.setting,value:e.value,currentModel:k.current});return void(t&&(C.current?v.current=t.modelId:b(t.modelId)))}if("notice"!==e.type||!m)return;const t=tasteNoticeToFeedEntry(e);t&&m(e=>[...e,t])}),T(!0),P.fireSessionStartHooks({source:consumeNextSessionStartSource()}).then(e=>{if(S||0===e.hooksRun||!m)return;const t=1===e.hooksRun?"":"s",n=[`Ran ${e.hooksRun} session start hook${t}`,...e.systemMessage?e.systemMessage.split("\n"):[]];m(e=>[...e,Yp(n.join("\n"))])}).catch(()=>{})})(),()=>{S=!0,f?.(),y?.()}},[e,t,n,o,s,a,i,l,c,d,u,y,S,b]),{ready:E}}function useLifecycle({exit:e,feedState:t,exitState:n,statusState:r,authState:o,onboarding:s,uiOverlays:a,skipOnboarding:i,sessionId:l,sessionTitleHolder:c}){nt(()=>{n.shouldExit&&(r.hintTimerRef.current&&clearTimeout(r.hintTimerRef.current),n.exitConfirmationTimeoutRef.current&&clearTimeout(n.exitConfirmationTimeoutRef.current),o.providerNotificationTimer.current&&clearTimeout(o.providerNotificationTimer.current),o.modelNotificationTimer.current&&clearTimeout(o.modelNotificationTimer.current),c&&(c.loadTitle=()=>loadCommandUserRenamedTitle({sessionId:l}),c.sessionId=l),(async()=>{try{await Promise.allSettled([disconnectAllMcpServers(),_O()])}catch{}try{e()}catch{process.exit(0)}})())},[n.shouldExit,e]),nt(()=>()=>{r.hintTimerRef.current&&clearTimeout(r.hintTimerRef.current),n.exitConfirmationTimeoutRef.current&&clearTimeout(n.exitConfirmationTimeoutRef.current),o.providerNotificationTimer.current&&clearTimeout(o.providerNotificationTimer.current),o.modelNotificationTimer.current&&clearTimeout(o.modelNotificationTimer.current)},[]),nt(()=>{(async()=>{const e=await checkOAuthSetupRequired({currentProvider:o.currentProvider,isOAuthMode:o.isOAuthMode,providerAuthHeaders:providerAuthHeaders});e&&r.setStatus(e)})()},[o.currentProvider,o.isOAuthMode]),nt(()=>{if(!t.isCmdCodeBusy)return void(r.pinnedStatusRef.current=!1);if(null!==r.retryAttempt)return;const e=setInterval(()=>{r.pinnedStatusRef.current||r.setStatus(mg())},vg);return()=>clearInterval(e)},[t.isCmdCodeBusy,r.retryAttempt]),nt(()=>{i||triggerTasteOnboarding({projectTrusted:s.projectTrusted,onboardingComplete:s.onboardingComplete,isOnboardingMode:s.showTasteOnboarding,tasteOnboardingCheckedRef:s.tasteOnboardingCheckedRef,setIsOnboardingMode:s.setShowTasteOnboarding})},[s.projectTrusted,s.onboardingComplete,s.showTasteOnboarding,i]),nt(()=>{if(s.showTasteOnboarding&&!s.tasteOnboardingEntryId){const e=ng();s.setTasteOnboardingEntryId(e.id),t.setFeed(t=>[...t,e])}!s.showTasteOnboarding&&s.tasteOnboardingEntryId&&(t.setFeed(e=>e.filter(e=>e.id!==s.tasteOnboardingEntryId)),s.setTasteOnboardingEntryId(null))},[s.showTasteOnboarding,s.tasteOnboardingEntryId])}async function handleCompactModeSelect({mode:e,setShowCompactModeSelector:t,setStatus:n}){try{await setCompactMode({mode:e}),t(!1),n(buildCompactModeStatusMessage(e))}catch{n(no),t(!1)}}function handleCompactModeCancel({setShowCompactModeSelector:e}){e(!1)}function showProviderNotification({setShowProviderNotification:e,providerNotificationTimer:t}){t.current&&clearTimeout(t.current),e(!0),t.current=setTimeout(()=>{e(!1),t.current=null},JE)}async function handleProviderSelect({provider:e,setCurrentProvider:t,setShowProviderSelector:n,setAuthComponentInfo:r,setStatus:o,setShowProviderNotification:s,providerNotificationTimer:a}){const i=getProviderConfig(e),l=i?.authComponent,c=await resolveProviderSelection({provider:e,requiresAuth:i?.requiresAuth,hasAuthFlow:Boolean(l),checkAuth:i?.checkAuth});return"auth-required"===c.status?(l&&r({provider:e,Component:l}),{switched:!1}):"error"===c.status?(o(c.statusMessage),n(!1),{switched:!1}):(t(e),n(!1),o(c.statusMessage),showProviderNotification({setShowProviderNotification:s,providerNotificationTimer:a}),{switched:!0})}function handleProviderCancel({setShowProviderSelector:e}){e(!1)}function handleAuthSuccess({authComponentInfo:e,setAuthComponentInfo:t,setShowProviderSelector:n,setCurrentProvider:r,setStatus:o,setShowProviderNotification:s,providerNotificationTimer:a}){return e?(t(null),n(!1),r(e.provider),o(buildProviderAuthSuccessStatus(e.provider)),showProviderNotification({setShowProviderNotification:s,providerNotificationTimer:a}),{switchedProvider:e.provider}):{switchedProvider:null}}function handleAuthCancel({setAuthComponentInfo:e}){e(null)}__name(setStartupSessionOptions,"setStartupSessionOptions"),__name(getStickyStartupSessionOptions,"getStickyStartupSessionOptions"),__name(consumeStartupSessionOverrides,"consumeStartupSessionOverrides"),__name(buildInteraction,"buildInteraction"),__name(useHarness,"useHarness"),Ex(),Px(),__name(useLifecycle,"useLifecycle"),Ex(),Ex(),Px(),__name(handleCompactModeSelect,"handleCompactModeSelect"),__name(handleCompactModeCancel,"handleCompactModeCancel"),Ex(),Px(),__name(showProviderNotification,"showProviderNotification"),__name(handleProviderSelect,"handleProviderSelect"),__name(handleProviderCancel,"handleProviderCancel"),__name(handleAuthSuccess,"handleAuthSuccess"),__name(handleAuthCancel,"handleAuthCancel");var S_=__name(e=>{},"noopBool");function useMainActionCallbacks({feedState:e,sessionState:t,statusState:n,authState:r,uiOverlays:o,setInput:s}){const a=tt({feedState:e,sessionState:t,statusState:n,authState:r,uiOverlays:o,setInput:s});a.current={feedState:e,sessionState:t,statusState:n,authState:r,uiOverlays:o,setInput:s};const i=ot(e=>{const{feedState:t,sessionState:n,statusState:r,uiOverlays:o,authState:s}=a.current;handleSelectSession({selectedSessionId:e,previousSessionId:n.sessionId,sessionLoadIdRef:n.sessionLoadIdRef,setFeed:t.setFeed,setLiveEntries:t.setLiveEntries,setSessionId:n.setSessionId,setShowSessionSelector:o.setShowSessionSelector,setSessionLoaded:n.setSessionLoaded,setStaticKey:o.setStaticKey,setShareInfo:r.setShareInfo,setCurrentModel:s.setCurrentModel,inTuiResume:!0})},[]),l=ot(({messageId:e,mode:t})=>{const{feedState:n,sessionState:r,statusState:o,uiOverlays:s,setInput:i}=a.current;handleRewindSelect({messageId:e,mode:t,sessionId:r.sessionId,setFeed:n.setFeed,setStatus:o.setStatus,setShowRewindSelector:s.setShowRewindSelector,setStaticKey:s.setStaticKey,setInput:i})},[]),c=ot(()=>{handleRewindCancel({setShowRewindSelector:a.current.uiOverlays.setShowRewindSelector})},[]),d=ot(e=>{const{feedState:t,sessionState:n,uiOverlays:r,setInput:o}=a.current;return handleTreeSelect({...e,sessionId:n.sessionId,setFeed:t.setFeed,setShowTreeSelector:r.setShowTreeSelector,setStaticKey:r.setStaticKey,setInput:o})},[]),u=ot(()=>{handleTreeCancel({setShowTreeSelector:a.current.uiOverlays.setShowTreeSelector})},[]),m=ot(e=>{const{feedState:t,sessionState:n}=a.current;handleTreeLabel({...e,sessionId:n.sessionId,setFeed:t.setFeed})},[]),p=ot(()=>{handleTreeAbortSummary({sessionId:a.current.sessionState.sessionId})},[]),g=ot((e,t)=>{const{feedState:n,statusState:r,uiOverlays:o}=a.current;handleLoginComplete({success:e,message:t,setShowLoginOverlay:o.setShowLoginOverlay,setFeed:n.setFeed,setStatus:r.setStatus})},[]),h=ot(()=>{const{feedState:e,statusState:t,uiOverlays:n}=a.current;handleLoginCancel({setShowLoginOverlay:n.setShowLoginOverlay,setFeed:e.setFeed,setStatus:t.setStatus})},[]),f=__name(e=>{if(laneServesModel({activeLane:e,modelId:a.current.authState.currentModel}))return;const t=defaultModelForLane({activeLane:e});t&&w(t,e)},"autoSwitchModelForLane"),y=ot(e=>{const{authState:t,statusState:n,uiOverlays:r}=a.current;handleProviderSelect({provider:e,setCurrentProvider:t.setCurrentProvider,setShowProviderSelector:r.setShowProviderSelector,setAuthComponentInfo:t.setAuthComponentInfo,setStatus:n.setStatus,setShowProviderNotification:t.setShowProviderNotification,providerNotificationTimer:t.providerNotificationTimer}).then(({switched:t})=>{t&&f(e)})},[]),S=ot(()=>{handleProviderCancel({setShowProviderSelector:a.current.uiOverlays.setShowProviderSelector})},[]),w=ot((e,t)=>{const{authState:n,sessionState:r,statusState:o,uiOverlays:s,feedState:i}=a.current;handleModelSelect({modelId:e,provider:t,setCurrentModel:n.setCurrentModel,setShowModelSelector:s.setShowModelSelector,setStatus:o.setStatus,modelNotificationTimer:n.modelNotificationTimer,setShowModelNotification:S_,setCurrentProvider:n.setCurrentProvider,setStaticKey:s.setStaticKey,sessionId:r.sessionId,setFeed:i.setFeed,setContextUsage:o.setContextUsage,setModelNotice:s.setModelNotice})},[]),k=ot(()=>{handleModelCancel({setShowModelSelector:a.current.uiOverlays.setShowModelSelector})},[]),v=ot(e=>{const{statusState:t,uiOverlays:n}=a.current;handleCompactModeSelect({mode:e,setShowCompactModeSelector:n.setShowCompactModeSelector,setStatus:t.setStatus})},[]),C=ot(()=>{handleCompactModeCancel({setShowCompactModeSelector:a.current.uiOverlays.setShowCompactModeSelector})},[]),b=ot(e=>{const{statusState:t,uiOverlays:n}=a.current;handleThemeSelect({theme:e,setShowThemeSelector:n.setShowThemeSelector,setStatus:t.setStatus,setStaticKey:n.setStaticKey})},[]),E=ot(()=>{handleThemeCancel({setShowThemeSelector:a.current.uiOverlays.setShowThemeSelector})},[]),T=ot(()=>{const{authState:e,statusState:t,uiOverlays:n}=a.current,{switchedProvider:r}=handleAuthSuccess({authComponentInfo:e.authComponentInfo,setAuthComponentInfo:e.setAuthComponentInfo,setShowProviderSelector:n.setShowProviderSelector,setCurrentProvider:e.setCurrentProvider,setStatus:t.setStatus,setShowProviderNotification:e.setShowProviderNotification,providerNotificationTimer:e.providerNotificationTimer});r&&f(r)},[]),P=ot(()=>{handleAuthCancel({setAuthComponentInfo:a.current.authState.setAuthComponentInfo})},[]);return{onSelectSession:i,onRewindSelect:l,onRewindCancel:c,onTreeSelect:d,onTreeCancel:u,onTreeLabel:m,onTreeAbortSummary:p,onLoginComplete:g,onLoginCancel:h,handleProviderSelect:y,handleProviderCancel:S,handleModelSelect:w,handleModelCancel:k,handleCompactModeSelect:v,handleCompactModeCancel:C,handleThemeSelect:b,handleThemeCancel:E,handleAuthSuccess:T,handleAuthCancel:P}}function useMonitorOutputWakeup({onSubmit:e}){const t=tt(e);nt(()=>{t.current=e},[e]),nt(()=>{const e=subscribeMonitorCheck(e=>{t.current(buildMonitorWakeupSubmission(e))});return()=>{e()}},[])}function useOnboarding(){const[e,t]=et(!1),[n,r]=et(!1),[o,s]=et(!0),[a,i]=et(!1),[l,c]=et(!1),[d,u]=et(null),[m,p]=et(!1);return{showTrustPrompt:e,setShowTrustPrompt:t,projectTrusted:n,setProjectTrusted:r,checkingProject:o,setCheckingProject:s,showTasteOnboarding:a,setShowTasteOnboarding:i,onboardingComplete:l,setOnboardingComplete:c,tasteOnboardingEntryId:d,setTasteOnboardingEntryId:u,autoLearnTaste:m,setAutoLearnTaste:p,tasteOnboardingCheckedRef:tt(!1)}}function usePendingOps(){const[e,t]=et(null),[n,r]=et(null);return{pendingPermission:e,setPendingPermission:t,pendingQuestion:n,setPendingQuestion:r}}function resolvePermissionSettingsPath(e){return t.join(e.projectRoot,".commandcode",e.local?"settings.local.json":"settings.json")}__name(useMainActionCallbacks,"useMainActionCallbacks"),Ex(),Px(),__name(useMonitorOutputWakeup,"useMonitorOutputWakeup"),Ex(),__name(useOnboarding,"useOnboarding"),Ex(),__name(usePendingOps,"usePendingOps"),Ex(),Px(),Ex(),Px(),__name(resolvePermissionSettingsPath,"resolvePermissionSettingsPath");var w_=__name((e={})=>{const{projectRoot:t,local:n=!1,onGenericPermissionRequest:r,onPermissionRequest:o,onPermissionResponse:s,onShellPermissionRequest:a}=e,i=t||process.cwd(),l=tt({onGenericPermissionRequest:r,onPermissionRequest:o,onPermissionResponse:s,onShellPermissionRequest:a}),[c,d]=et(null),u=tt(null),[m,p]=et(null),[g,h]=et(!1);return nt(()=>{l.current={onGenericPermissionRequest:r,onPermissionRequest:o,onPermissionResponse:s,onShellPermissionRequest:a}},[r,o,s,a]),nt(()=>{const e=resolvePermissionSettingsPath({projectRoot:i,local:n}),t=createPermissionsService(i,{configPath:e});return u.current=createPermissionPromptBridge({service:t,onFileRequest:__name(e=>{p(e),h(!0),l.current.onPermissionRequest?.(e)},"onFileRequest"),onShellRequest:__name(e=>{p(e),h(!0),l.current.onShellPermissionRequest?.(e)},"onShellRequest"),onGenericRequest:__name(e=>{p(e),h(!0),l.current.onGenericPermissionRequest?.(e)},"onGenericRequest")}),d(t),()=>{t.removeAllListeners(),u.current=null}},[n,i]),{requestPermission:ot(async e=>{if(!c)return{allowed:!0};const t=await c.requestPermission(e);return l.current.onPermissionResponse?.(t),t},[c]),requestShellPermission:ot(async e=>{if(!c)return{allowed:!0};const t=await c.requestShellPermission(e);return l.current.onPermissionResponse?.(t),t},[c]),requestGenericPermission:ot(async e=>{if(!c)return{allowed:!0};const t=await c.requestGenericPermission(e);return l.current.onPermissionResponse?.(t),t},[c]),respondToPrompt:ot(e=>{u.current?.respond(e)&&(p(null),h(!1))},[]),clearSessionPermissions:ot(()=>{c?.clearSessionPermissions()},[c]),clearProjectPermissions:ot(()=>{c?.clearProjectPermissions()},[c]),setAutoApprove:ot((e,t)=>{c?.setAutoApprove(e,t)},[c]),setEnabled:ot(e=>{c?.setEnabled(e)},[c]),currentRequest:m,isPrompting:g,service:c}},"usePermissions");function usePermissionMode({initialPermissionMode:e,local:t=!1,dangerouslySkipPermissions:n=!1,setPendingPermission:r,setStatus:o}){const[s,a]=et(()=>e||(n?"bypass":"default")),i=tt(s);nt(()=>{i.current=s},[s]);const{requestShellPermission:l,service:c,respondToPrompt:d,clearSessionPermissions:u,setEnabled:m}=w_({projectRoot:process.cwd(),local:t,onPermissionRequest:__name(e=>{r({toolName:getFileActionToolName(e.action),params:e,resolve:__name(e=>{},"resolve")}),o("Waiting for file edit permission...")},"onPermissionRequest"),onShellPermissionRequest:__name(e=>{r({toolName:"shell_command",params:e,resolve:__name(e=>{},"resolve")}),o("Waiting for shell command permission...")},"onShellPermissionRequest"),onGenericPermissionRequest:__name(e=>{r({toolName:e.toolName,params:e,resolve:__name(e=>{},"resolve")}),o("Waiting for tool permission...")},"onGenericPermissionRequest"),onPermissionResponse:__name(e=>{e.allowed?o("Permission granted"):o("Permission denied")},"onPermissionResponse")});return nt(()=>{c&&applyAutoAcceptMode({enabled:s,service:c})},[s,c]),{permissionMode:s,setPermissionMode:a,permissionModeRef:i,permissionsService:c,respondToPrompt:d,clearSessionPermissions:u,dangerouslySkipPermissions:n}}function useQueuedMessageFlush({isCmdCodeBusy:e,queuedMessages:t,queuedMessagesRef:n,setQueuedMessages:r,isSubmittingRef:o,onSubmit:s}){const a=tt(s);nt(()=>{a.current=s},[s]);const i=t.length>0;nt(()=>{if(!i||e)return;const t=setInterval(()=>{if(o.current)return;const e=n.current[0];e&&(r(e=>e.slice(1)),a.current({role:"user",input:e.input,...void 0!==e.displayMessage?{displayMessage:e.displayMessage}:{},...void 0!==e.isAutomated?{isAutomated:e.isAutomated}:{},...void 0!==e.isMeta?{isMeta:e.isMeta}:{},...void 0!==e.hiddenMessages?{hiddenMessages:e.hiddenMessages}:{},...void 0!==e.ideContext?{ideContext:e.ideContext}:{},...void 0!==e.ideHint?{ideHint:e.ideHint}:{},...e.images&&e.images.length>0?{images:e.images.map(e=>({...e}))}:{}}))},250);return()=>clearInterval(t)},[i,e,o,n,r])}function useSession(){const[e,t]=et(()=>crypto.randomUUID()),[n,r]=et(!1);return{sessionId:e,setSessionId:t,sessionLoaded:n,setSessionLoaded:r,sessionLoadIdRef:tt(null)}}__name(usePermissionMode,"usePermissionMode"),Ex(),__name(useQueuedMessageFlush,"useQueuedMessageFlush"),Ex(),__name(useSession,"useSession"),Ex(),Px(),Ex(),Px();var k_=createOSC8Link("https://commandcode.ai/docs/hooks","Docs ↗",!1);function buildHookStartupEntries(e){const t=buildHookStartupMessages(e).map(e=>({...e}));if(0===t.length)return[];const n=t[t.length-1];return n.message=`${n.message} ${k_}`,t.map(e=>e.isHookWarning?Yp(e.message,{isHookWarning:!0}):Yp(e.message))}async function submitInitialPrompt({initialPrompt:e,onCommand:t,submitAsUserMessage:n}){const r=e.trim();r.startsWith("/")&&t&&"handled"===(await t(r)).status||await n()}function useStartup({resume:e,resumeSessionId:t,continueLatest:n,trust:r,initialPrompt:o,stdout:s,feedState:a,sessionState:i,statusState:l,authState:c,onboarding:d,uiOverlays:u,permissionState:m,harnessReady:p,isSubmittingRef:g,initialPromptSubmittedRef:h,historyManagerRef:f,executeBash:y,setInput:S,onCommand:w}){const k=ot(async()=>{try{const e=await isTasteLearningEnabled();l.setTasteLearningOn(e),e&&await initTasteDir({runtime:createNodeRuntime()})}catch{}},[l.setTasteLearningOn]),v=ot(async()=>{const e=await getConfiguredProvider();c.setCurrentProvider(e);const t=await isOAuthEnforced();c.setIsOAuthMode(t)},[c.setCurrentProvider,c.setIsOAuthMode]),C=ot(()=>{},[]),b=ot(e=>{handleSelectSession({selectedSessionId:e,sessionLoadIdRef:i.sessionLoadIdRef,setFeed:a.setFeed,setLiveEntries:a.setLiveEntries,setSessionId:i.setSessionId,setShowSessionSelector:u.setShowSessionSelector,setSessionLoaded:i.setSessionLoaded,setStaticKey:u.setStaticKey,setShareInfo:l.setShareInfo,setCurrentModel:c.setCurrentModel})},[i,a,u,l,c.setCurrentModel]),E=ot(async()=>{const r=await resolveStartupSessionTarget({continueLatest:n,resumeSessionId:t,resume:e,listSessions:listCommandSessions});"load"!==r.kind?"open-picker"===r.kind&&u.setShowSessionSelector(!0):b(r.sessionId)},[n,t,e,b,u]);nt(()=>{(async()=>{const e=await resolveStartupTrust({trust:r,isProjectInitialized:isCommandProjectSessionInitialized,isDirectoryEmpty:__name(()=>isDirectoryEmpty({runtime:createNodeRuntime(),path:process.cwd()}),"isDirectoryEmpty")});if("prompt-trust"===e.kind)return d.setShowTrustPrompt(!0),void d.setCheckingProject(!1);e.initializeFirst&&await initializeCommandProjectSessions(),d.setProjectTrusted(!0),d.setCheckingProject(!1),k(),v(),C(),e.continueOrResume&&await E()})()},[e,n,r]);const T=tt(!1);nt(()=>{T.current||d.projectTrusted&&0!==getCommandZdrPausedFeatures().length&&(T.current=!0,u.setShowZdrNotice(!0))},[d.projectTrusted,u.setShowZdrNotice]);const P=tt(null);nt(()=>{d.projectTrusted&&c.currentModel!==P.current&&(P.current=c.currentModel,u.setModelNotice(getModelNotice(c.currentModel)??null))},[d.projectTrusted,c.currentModel,u.setModelNotice]);const M=tt(null);nt(()=>{if(!p||!d.projectTrusted)return;const e=i.sessionId;if(M.current===e)return;const t=NO(e);if(!t)return;M.current=e;const n=buildHookStartupEntries(t.hookSettingsWarnings);0!==n.length&&a.setFeed(e=>[...e,...n])},[p,d.projectTrusted,i.sessionId,a.setFeed]),nt(()=>{if(!d.projectTrusted)return;const e=createCommandHistoryManager();return f.current=e,e.init(),()=>{e.cleanup()}},[d.projectTrusted,f]),nt(()=>{if(!s)return;const e=createResizeHandler({getColumns:__name(()=>s.columns??0,"getColumns"),bumpStaticKey:__name(()=>u.setStaticKey(e=>e+1),"bumpStaticKey")});return s.prependListener("resize",e),()=>{s.off("resize",e)}},[s,u.setStaticKey]),nt(()=>{o&&d.projectTrusted&&!d.checkingProject&&p&&!u.showSessionSelector&&!h.current&&(h.current=!0,submitInitialPrompt({initialPrompt:o,onCommand:w,submitAsUserMessage:__name(async()=>{await handleSubmit({role:"user",input:o,feed:a.feed,setFeed:a.setFeed,setLiveEntries:a.setLiveEntries,isCmdCodeBusy:a.isCmdCodeBusy,setIsCmdCodeBusy:a.setIsCmdCodeBusy,setQueuedMessages:a.setQueuedMessages,setStatus:l.setStatus,setInteractionTokens:l.setInteractionTokens,updateStatus:l.updateStatus,setUpdateStatus:l.setUpdateStatus,billingLink:l.billingLink,setBillingLink:l.setBillingLink,currentModel:c.currentModel,currentProvider:c.currentProvider,isOAuthMode:c.isOAuthMode,premiumCreditsExhausted:c.premiumCreditsExhausted,setPremiumCreditsExhausted:c.setPremiumCreditsExhausted,setCurrentModel:c.setCurrentModel,sessionId:i.sessionId,isSubmittingRef:g,setInput:S,setStaticKey:u.setStaticKey,executeBash:y})},"submitAsUserMessage")}))},[o,d.projectTrusted,d.checkingProject,u.showSessionSelector,p,i.sessionId,c.currentProvider,c.isOAuthMode,w]);const x=tt(null);x.current={feed:a.feed,setFeed:a.setFeed,setLiveEntries:a.setLiveEntries,isCmdCodeBusy:a.isCmdCodeBusy,setIsCmdCodeBusy:a.setIsCmdCodeBusy,setQueuedMessages:a.setQueuedMessages,setStatus:l.setStatus,setInteractionTokens:l.setInteractionTokens,updateStatus:l.updateStatus,setUpdateStatus:l.setUpdateStatus,billingLink:l.billingLink,setBillingLink:l.setBillingLink,currentModel:c.currentModel,currentProvider:c.currentProvider,isOAuthMode:c.isOAuthMode,premiumCreditsExhausted:c.premiumCreditsExhausted,setPremiumCreditsExhausted:c.setPremiumCreditsExhausted,setCurrentModel:c.setCurrentModel,sessionId:i.sessionId,isSubmittingRef:g,setInput:S,setStaticKey:u.setStaticKey,executeBash:y,role:"",input:""};const I=ot(async({role:e,input:t,images:n,imageTokenPaths:r,ideContext:o,ideHint:s,displayMessage:a,isAutomated:i,isMeta:l,hiddenMessages:c})=>{u.setShowTasteSkipBanner(!1),u.setShowZdrNotice(!1),u.setModelNotice(null),await handleSubmit({...x.current,role:e,input:t,images:n,imageTokenPaths:r,ideContext:o,ideHint:s,displayMessage:a,isAutomated:i,isMeta:l,hiddenMessages:c})},[u.setShowTasteSkipBanner,u.setShowZdrNotice,u.setModelNotice]);return{loadTasteStatus:k,loadCurrentProvider:v,initializeMcpInBackground:C,onSubmit:I}}function useStatus(e){const[t,n]=et("Ready..."),r=tt(!1),[o,s]=et(""),a=tt(null),[i,l]=et(null),c=tt(i),[d,u]=et(null),[m,p]=et(!1),[g,h]=et(""),[f,y]=et(null),[S,w]=et(0),[k,v]=et(null),[C,b]=et(null),[E,T]=et(e??null);nt(()=>{c.current=i},[i]),nt(()=>{if(!E)return;const e=setTimeout(()=>{T(null)},3e4);return()=>clearTimeout(e)},[E]);const P=__name(e=>{a.current&&clearTimeout(a.current),s(e),a.current=setTimeout(()=>{s(""),a.current=null},5e3)},"showHintMessage");return{status:t,setStatus:n,pinnedStatusRef:r,hintMessage:o,setHintMessage:s,hintTimerRef:a,shareInfo:i,setShareInfo:l,shareInfoRef:c,billingLink:d,setBillingLink:u,showShareNotification:m,setShowShareNotification:p,unshareNotificationMessage:g,setUnshareNotificationMessage:h,retryAttempt:f,setRetryAttempt:y,interactionTokens:S,setInteractionTokens:w,contextUsage:k,setContextUsage:v,tasteLearningOn:C,setTasteLearningOn:b,updateStatus:E,setUpdateStatus:T,showHintMessage:P}}function useTerminalTitle({sessionId:e,isCmdCodeBusy:t}){const n=tt(process.cwd()),r=tt(e),o=tt(null),s=ot(e=>{o.current=e,setTerminalTitle(formatSessionTabTitle({sessionTitle:e,projectDir:n.current}))},[]),a=ot(e=>{(async()=>{const t=await loadCommandSessionMeta({sessionId:e});r.current===e&&t?.title&&t.title!==o.current&&s(t.title)})()},[s]);nt(()=>{r.current=e,s(null),a(e)},[e,s,a]);const i=tt(t);nt(()=>{const n=i.current;i.current=t,t!==n&&reassertTerminalTitle(),!t&&n&&(o.current||a(e))},[t,e,a]),nt(()=>{if(!process.stderr.isTTY)return;const e=setInterval(reassertTerminalTitle,5e3);return()=>{clearInterval(e)}},[]);const l=ot(e=>{s(e)},[s]);return{setRenamedTerminalTitle:l,applyGeneratedTitle:l}}function useUiOverlays(){const[e,t]=et(!1),[n,r]=et(!1),[o,s]=et(!1),[a,i]=et(!1),[l,c]=et(!1),[d,u]=et(!1),[m,p]=et(!1),[g,h]=et(!1),[f,y]=et(!1),[S,w]=et(!1),[k,v]=et(!1),[C,b]=et(!1),[E,T]=et(!1),[P,M]=et(!1),[x,I]=et("default"),[A,R]=et(!1),[O,D]=et(!1),[L,N]=et(!1),[$,_]=et(!1),[F,U]=et(!1),[j,B]=et(!1),[W,H]=et(null),[G,V]=et(!1),[z,q]=et(!1),[K,Y]=et(!1),[J,Q]=et(!1),[X,Z]=et(null),[ee,te]=et(0),[ne,re]=et(!1),[oe,se]=et(!1),[ae,ie]=et(null),[le,ce]=et("off"),de="off"!==le,ue=ot(e=>{hardResetForResize(),te(e=>e+1),e(!1)},[]);return{showFileList:e,setShowFileList:t,showAgentsConfig:n,setShowAgentsConfig:r,showTasteConfig:o,setShowTasteConfig:s,showSkillsConfig:a,setShowSkillsConfig:i,showSettingsConfig:l,setShowSettingsConfig:c,showProviderSelector:d,setShowProviderSelector:u,showModelSelector:m,setShowModelSelector:p,showEffortSelector:g,setShowEffortSelector:h,showMemorySelector:f,setShowMemorySelector:y,showMcpManager:S,setShowMcpManager:w,showSessionSelector:k,setShowSessionSelector:v,showAddDirModal:C,setShowAddDirModal:b,showRewindSelector:E,setShowRewindSelector:T,showTreeSelector:P,setShowTreeSelector:M,treeFilterMode:x,setTreeFilterMode:I,treeBranchSummarySkipPrompt:A,setTreeBranchSummarySkipPrompt:R,showLoginOverlay:O,setShowLoginOverlay:D,showCompactModeSelector:L,setShowCompactModeSelector:N,showContextView:$,setShowContextView:_,showStatusView:F,setShowStatusView:U,showPlansView:j,setShowPlansView:B,plansTarget:W,setPlansTarget:H,planBreadcrumbPending:G,setPlanBreadcrumbPending:V,showUsageOverlay:z,setShowUsageOverlay:q,showThemeSelector:K,setShowThemeSelector:Y,staticKey:ee,setStaticKey:te,closeFullScreenOverlay:ue,showTasteSkipBanner:ne,setShowTasteSkipBanner:re,showZdrNotice:oe,setShowZdrNotice:se,modelNotice:ae,setModelNotice:ie,transcriptMode:le,setTranscriptMode:ce,expandedToolOutput:de,showDesignGuide:J,setShowDesignGuide:Q,pendingDesignSuggestion:X,setPendingDesignSuggestion:Z}}__name(buildHookStartupEntries,"buildHookStartupEntries"),__name(submitInitialPrompt,"submitInitialPrompt"),__name(useStartup,"useStartup"),Ex(),__name(useStatus,"useStatus"),Ex(),Px(),__name(useTerminalTitle,"useTerminalTitle"),Ex(),__name(useUiOverlays,"useUiOverlays");var v_=__name(({resume:e=!1,resumeSessionId:t,continue:n=!1,trust:r=!1,dangerouslySkipPermissions:o=!1,updateStatus:s,updateFailedInfo:a,initialPrompt:i,skipOnboarding:l=!1,initialPermissionMode:c,local:d=!1,sessionTitleHolder:u})=>{const{exit:m}=Je(),{stdout:p}=qe();usePasteRouter(),nt(()=>{prefetchBillingContext()},[]);const[g,h]=et(""),[f,y]=et(""),S=tt(!1),w=tt(!1),k=tt(null),v=useUiOverlays(),C=useFeed(),b=useSession(),E=useStatus(s),T=useAuth(),P=usePendingOps(),M=useOnboarding(),x=useExit(),{executeBash:I,executionState:A}=H$(),R=usePermissionMode({initialPermissionMode:c,local:d,dangerouslySkipPermissions:o,setPendingPermission:P.setPendingPermission,setStatus:E.setStatus}),O=useTerminalTitle({sessionId:b.sessionId,isCmdCodeBusy:C.isCmdCodeBusy}),{ready:D}=useHarness({sessionId:b.sessionId,sessionLoaded:b.sessionLoaded,showSessionSelector:v.showSessionSelector,projectTrusted:M.projectTrusted,permissionsService:R.permissionsService,permissionModeRef:R.permissionModeRef,setPermissionMode:R.setPermissionMode,permissionModeExplicit:Boolean(c)||o,dangerouslySkipPermissions:R.dangerouslySkipPermissions,setPendingQuestion:P.setPendingQuestion,setStatus:E.setStatus,setFeed:C.setFeed,queuedMessagesRef:C.queuedMessagesRef,setQueuedMessages:C.setQueuedMessages,onSessionTitled:O.applyGeneratedTitle,currentModel:T.currentModel,setCurrentModel:T.setCurrentModel,setStaticKey:v.setStaticKey,isCmdCodeBusy:C.isCmdCodeBusy}),{onCommand:L}=useCommandCtx({feedState:C,sessionState:b,statusState:E,authState:T,uiOverlays:v,onboarding:M,exitState:x,permissionState:R,terminalTitleState:O,isSubmittingRef:S,executeBash:I,setInput:h});useAgentSlashCommandQueue({sessionId:b.sessionId,isCmdCodeBusy:C.isCmdCodeBusy,onCommand:L}),nt(()=>{v.planBreadcrumbPending&&!C.isCmdCodeBusy&&(v.setPlanBreadcrumbPending(!1),C.setFeed(e=>[...e,eg("Plan saved — run /plans to review, annotate, or execute it anytime.")]))},[v.planBreadcrumbPending,v.setPlanBreadcrumbPending,C.isCmdCodeBusy,C.setFeed]);const{loadTasteStatus:N,loadCurrentProvider:$,onSubmit:_}=useStartup({resume:e,resumeSessionId:t,continueLatest:n,trust:r,initialPrompt:i,stdout:p,feedState:C,sessionState:b,statusState:E,authState:T,onboarding:M,uiOverlays:v,permissionState:R,harnessReady:D,isSubmittingRef:S,initialPromptSubmittedRef:w,historyManagerRef:k,executeBash:I,setInput:h,onCommand:L});useMonitorOutputWakeup({onSubmit:_}),useCronWakeup({onSubmit:_}),useQueuedMessageFlush({isCmdCodeBusy:C.isCmdCodeBusy,queuedMessages:C.queuedMessages,queuedMessagesRef:C.queuedMessagesRef,setQueuedMessages:C.setQueuedMessages,isSubmittingRef:S,onSubmit:_}),useLifecycle({exit:m,feedState:C,exitState:x,statusState:E,authState:T,onboarding:M,uiOverlays:v,skipOnboarding:l,sessionId:b.sessionId,sessionTitleHolder:u});const{handleToggleAutoAccept:F,handleEnableAutoAccept:U,handleDoubleEscapeEmpty:j,handleTasteOnboardingComplete:B,handleTrust:W,handleNoTrust:H}=useHandlers({resume:e,feedState:C,onboarding:M,uiOverlays:v,exitState:x,pendingOps:P,permissionState:R,statusState:E,authState:T,sessionId:b.sessionId,loadTasteStatus:N,loadCurrentProvider:$,setInput:__name(e=>h(e),"setInput")}),G=useMainActionCallbacks({feedState:C,sessionState:b,statusState:E,authState:T,uiOverlays:v,setInput:h}),{creditWarning:V}=useCreditWarning({interactionTokens:E.interactionTokens});return renderView({feedState:C,sessionState:b,statusState:E,authState:T,uiOverlays:v,onboarding:M,exitState:x,pendingOps:P,permissionState:R,historyManagerRef:k,executionState:A,actionCallbacks:G,onSubmit:_,onCommand:L,input:g,setInput:h,fileSearchQuery:f,setFileSearchQuery:y,updateFailedInfo:a,creditWarning:V,handleTrust:W,handleNoTrust:H,handleToggleAutoAccept:F,handleEnableAutoAccept:U,handleDoubleEscapeEmpty:j,handleTasteOnboardingComplete:B,loadTasteStatus:N})},"InteractiveCLI");function renderView({feedState:e,sessionState:t,statusState:n,authState:r,uiOverlays:o,onboarding:s,exitState:a,pendingOps:i,permissionState:l,historyManagerRef:c,executionState:d,actionCallbacks:u,onSubmit:m,onCommand:p,input:g,setInput:h,fileSearchQuery:f,setFileSearchQuery:y,updateFailedInfo:S,creditWarning:w,handleTrust:k,handleNoTrust:v,handleToggleAutoAccept:C,handleEnableAutoAccept:b,handleDoubleEscapeEmpty:E,handleTasteOnboardingComplete:T,loadTasteStatus:P}){if(a.shouldExit)return null;if(s.checkingProject)return null;if(s.showTrustPrompt)return Xe.createElement(B$,{staticKey:o.staticKey,onTrust:k,onExit:v});if(o.showSessionSelector)return Xe.createElement(U$,{onSelectSession:u.onSelectSession,onClose:()=>o.closeFullScreenOverlay(o.setShowSessionSelector),currentSessionId:t.sessionId});if(!s.projectTrusted)return null;const M=o.pendingDesignSuggestion?Xe.createElement(pL,{suggestion:o.pendingDesignSuggestion,onSelect:e=>{p(`/design ${e}`)},onClose:()=>o.setPendingDesignSuggestion(null)}):null,x=i.pendingQuestion?.params.exitPlanMode?i.pendingQuestion:null,I=i.pendingQuestion&&!x?Xe.createElement(QuestionView,{pendingQuestion:i.pendingQuestion,permissionMode:l.permissionMode,setPermissionMode:l.setPermissionMode,dangerouslySkipPermissions:l.dangerouslySkipPermissions,setPendingQuestion:i.setPendingQuestion,setStatus:n.setStatus,setStaticKey:o.setStaticKey}):null,A=i.pendingPermission?Xe.createElement(rL,{pendingPermission:i.pendingPermission,permissionMode:l.permissionMode,setPendingPermission:i.setPendingPermission,setStatus:n.setStatus,respondToPrompt:l.respondToPrompt,showHintMessage:n.showHintMessage,handleEnableAutoAccept:b}):null,{closeFullScreenOverlay:R}=o;if(x){const e=__name(e=>{const t=resolvePlanModeAnswerTransition({answer:e,exitPlanMode:!0,dangerouslySkipPermissions:l.dangerouslySkipPermissions});t&&l.setPermissionMode(t),x.resolve({answers:[{questionIndex:0,selectedOptions:[e]}]}),i.setPendingQuestion(null),hardResetForResize(),o.setStaticKey(e=>e+1)},"resolveApproval");return Xe.createElement(PlanApprovalView,{staticKey:o.staticKey,planContent:x.params.planContent,planFilePath:x.params.planFilePath,onAutoAccept:t=>{e("Yes, auto-accept edits"),t&&m({role:"user",input:t})},onCancel:()=>{e("Cancel"),o.setPlanBreadcrumbPending(!0)},onSendFeedback:t=>{e("Cancel"),m({role:"user",input:t})}})}if(o.showTasteConfig)return Xe.createElement(TasteConfigView,{staticKey:o.staticKey,onClose:()=>R(o.setShowTasteConfig),loadTasteStatus:P});if(o.showSkillsConfig)return Xe.createElement(SkillsConfigView,{staticKey:o.staticKey,onClose:()=>R(o.setShowSkillsConfig)});if(o.showSettingsConfig)return Xe.createElement(SettingsConfigView,{staticKey:o.staticKey,onClose:()=>R(o.setShowSettingsConfig),loadTasteStatus:P});if(o.showUsageOverlay)return Xe.createElement(UsageView,{staticKey:o.staticKey,onClose:()=>R(o.setShowUsageOverlay)});if(o.showContextView)return Xe.createElement(ContextConfigView,{staticKey:o.staticKey,sessionId:t.sessionId,onClose:()=>R(o.setShowContextView),setInput:h});if(o.showStatusView)return Xe.createElement(StatusConfigView,{staticKey:o.staticKey,onClose:()=>R(o.setShowStatusView),setInput:h});if(o.showPlansView){const e=__name(e=>{o.setPlansTarget(null),R(o.setShowPlansView),m({role:"user",input:e})},"submitFromPlans");return Xe.createElement(PlansView,{staticKey:o.staticKey,sessionId:t.sessionId,target:o.plansTarget,onClose:()=>{o.setPlansTarget(null),R(o.setShowPlansView)},onSubmitFeedback:e,onExecute:n=>{"plan"===l.permissionModeRef.current&&(l.permissionModeRef.current="auto-accept",l.setPermissionMode("auto-accept"),NO(t.sessionId)?.setPermissionMode({mode:"auto-accept"})),e(n)}})}return Xe.createElement(d$,{feed:e.feed,liveEntries:e.liveEntries,queuedMessages:e.queuedMessages,isCmdCodeBusy:e.isCmdCodeBusy,staticKey:o.staticKey,setStaticKey:o.setStaticKey,transcriptMode:o.transcriptMode,tasteOnboardingEntryId:s.tasteOnboardingEntryId,autoLearnTaste:s.autoLearnTaste,showTasteSkipBanner:o.showTasteSkipBanner,showZdrNotice:o.showZdrNotice,modelNotice:o.modelNotice,retryAttempt:n.retryAttempt,input:g,setInput:h,fileSearchQuery:f,setFileSearchQuery:y,showFileList:o.showFileList,setShowFileList:o.setShowFileList,showProviderSelector:o.showProviderSelector,showModelSelector:o.showModelSelector,showEffortSelector:o.showEffortSelector,showMemorySelector:o.showMemorySelector,showMcpManager:o.showMcpManager,showAgentsConfig:o.showAgentsConfig,showRewindSelector:o.showRewindSelector,showTreeSelector:o.showTreeSelector,treeFilterMode:o.treeFilterMode,treeBranchSummarySkipPrompt:o.treeBranchSummarySkipPrompt,showLoginOverlay:o.showLoginOverlay,showUsageOverlay:o.showUsageOverlay,setShowUsageOverlay:o.setShowUsageOverlay,showAddDirModal:o.showAddDirModal,showCompactModeSelector:o.showCompactModeSelector,showThemeSelector:o.showThemeSelector,authComponentInfo:r.authComponentInfo,status:n.status,currentProvider:r.currentProvider,currentModel:r.currentModel,showProviderNotification:r.showProviderNotification,shareInfo:n.shareInfo,showShareNotification:n.showShareNotification,unshareNotificationMessage:n.unshareNotificationMessage,updateStatus:n.updateStatus,updateFailedInfo:S,creditWarning:w,permissionMode:l.permissionMode,hintMessage:n.hintMessage,pendingExitKey:a.pendingExitKey,interactionTokens:n.interactionTokens,contextUsage:n.contextUsage,tasteLearningOn:n.tasteLearningOn,historyManagerRef:c,executionState:d,sessionId:t.sessionId,onSubmit:m,onCommand:p,onToggleAutoAccept:C,onResetPendingExitKey:a.resetPendingExitKey,onDoubleEscapeEmpty:E,onTasteOnboardingComplete:T,permissionPanel:A,questionPanel:I,designSuggestionPanel:M,onRewindSelect:u.onRewindSelect,onRewindCancel:u.onRewindCancel,onTreeSelect:u.onTreeSelect,onTreeCancel:u.onTreeCancel,onTreeLabel:u.onTreeLabel,onTreeAbortSummary:u.onTreeAbortSummary,onLoginComplete:u.onLoginComplete,onLoginCancel:u.onLoginCancel,setShowProviderSelector:o.setShowProviderSelector,setShowModelSelector:o.setShowModelSelector,setShowEffortSelector:o.setShowEffortSelector,setShowMemorySelector:o.setShowMemorySelector,setShowMcpManager:o.setShowMcpManager,setShowAgentsConfig:o.setShowAgentsConfig,setShowRewindSelector:o.setShowRewindSelector,setShowTreeSelector:o.setShowTreeSelector,setShowLoginOverlay:o.setShowLoginOverlay,setShowAddDirModal:o.setShowAddDirModal,handleProviderSelect:u.handleProviderSelect,handleProviderCancel:u.handleProviderCancel,handleModelSelect:u.handleModelSelect,handleModelCancel:u.handleModelCancel,handleCompactModeSelect:u.handleCompactModeSelect,handleCompactModeCancel:u.handleCompactModeCancel,handleThemeSelect:u.handleThemeSelect,handleThemeCancel:u.handleThemeCancel,handleAuthSuccess:u.handleAuthSuccess,handleAuthCancel:u.handleAuthCancel,showDesignGuide:o.showDesignGuide,setShowDesignGuide:o.setShowDesignGuide})}__name(renderView,"renderView"),Px(),Ex();var C_=__name(({worktreePath:e,warning:t,onChoice:n})=>{const[r,o]=et(1);return Ye((e,t)=>{if(!t.upArrow&&!t.downArrow)return"1"===e?n("keep"):"2"===e?n("remove"):t.return?n(1===r?"keep":"remove"):t.escape||t.ctrl&&"c"===e?n("keep"):void 0;o(e=>1===e?2:1)}),Xe.createElement(_D,{title:"Exiting worktree session",subtitle:t,hint:"Enter to confirm · Esc to cancel"},Xe.createElement(Ge,{flexDirection:"column"},Xe.createElement(Ge,null,Xe.createElement(Ve,{color:1===r?Rx.CYAN:Rx.GRAY},1===r?it.pointer:" "," 1. Keep worktree"," ",Xe.createElement(Ve,{color:Rx.GRAY},"Stays at ",tildeHome(e)))),Xe.createElement(Ge,null,Xe.createElement(Ve,{color:2===r?Rx.CYAN:Rx.GRAY},2===r?it.pointer:" "," 2. Remove worktree"," ",Xe.createElement(Ve,{color:Rx.GRAY},"All changes and commits will be lost.")))))},"WorktreeExitPrompt");function promptWorktreeExit(e){return new Promise(t=>{const{unmount:n}=Ke(Xe.createElement(C_,{worktreePath:e.worktreePath,warning:e.warning,onChoice:e=>{n(),t(e)}}),{stdin:process.stdin,stdout:process.stdout,stderr:process.stderr})})}function canRespawn(){if(process.versions.bun)return!1;const e=process.argv[1];return"string"==typeof e&&e.length>0}async function writeReloadHandoff(e){const t=process.env[nT];if(t)try{await z.writeFile(t,serializeReloadCarryover(e))}catch{}}async function consumeReloadHandoff(e){try{return parseReloadCarryover(await z.readFile(e,"utf-8"))}catch{return null}finally{await z.unlink(e).catch(()=>{})}}function restoreTerminal(){try{process.stdin.isTTY&&process.stdin.setRawMode(!1)}catch{}try{process.stdout.write("[?25h")}catch{}}__name(promptWorktreeExit,"promptWorktreeExit"),Ex(),Px(),__name(canRespawn,"canRespawn"),__name(writeReloadHandoff,"writeReloadHandoff"),__name(consumeReloadHandoff,"consumeReloadHandoff"),__name(restoreTerminal,"restoreTerminal");var b_=lt.hex(Rx.DIM);function printReloadFallbackHint(){process.stdout.write(b_("Couldn't restart automatically in this build — exiting instead.\n"))}async function shutdownWrapperRuntime(){try{await Promise.allSettled([disconnectAllMcpServers(),_O()])}catch{}try{await shutdownTelemetry()}catch{}process.removeAllListeners("SIGINT"),process.removeAllListeners("SIGTERM"),process.on("SIGINT",()=>{}),process.on("SIGTERM",()=>{}),process.stdin.pause()}async function runRelaunchLoop(e){await shutdownWrapperRuntime();const n=await z.mkdtemp(t.join(N.tmpdir(),"cmd-reload-")),r=t.join(n,"handoff.json");let o=e;for(;;){const e=await commandSessionTranscriptExists(o.sessionId),t=buildRelaunchArgs({invocation:getOriginalInvocation(),request:o,resumable:e,argv:process.argv.slice(2)});clearTerminalTitle();const s=B(process.execPath,[process.argv[1],...t],{stdio:"inherit",env:{...process.env,[nT]:r,[rT]:String(process.pid)}});let a,i;try{[a,i]=await new Promise((e,t)=>{s.once("exit",(t,n)=>e([t,n])),s.once("error",t)})}catch(e){restoreTerminal(),process.stderr.write(b_(`\nCouldn't relaunch Command Code: ${e.message}\n`)),await z.rm(n,{recursive:!0,force:!0}).catch(()=>{}),process.exit(1)}if(a!==tT){if(restoreTerminal(),await z.rm(n,{recursive:!0,force:!0}).catch(()=>{}),i){const e=N.constants.signals[i];process.exit(e?128+e:1)}process.exit(a??1)}else o=await consumeReloadHandoff(r)??o}}async function handlePendingReload(e){canRespawn()?(isWrappedChild()&&(await writeReloadHandoff(e),process.exit(tT)),await runRelaunchLoop(e)):printReloadFallbackHint()}__name(printReloadFallbackHint,"printReloadFallbackHint"),__name(shutdownWrapperRuntime,"shutdownWrapperRuntime"),__name(runRelaunchLoop,"runRelaunchLoop"),__name(handlePendingReload,"handlePendingReload");var E_=__name(e=>e.replace(/\x1B\[[0-9;]*[A-Za-z]/g,"").replace(/[\x00-\x1F\x7F]/g," ").trim(),"sanitizeTitleForOutput"),T_=lt.hex(Rx.DIM),P_=__name(()=>{const e=getInvokedCommandName();return"win32"===process.platform&&"cmd"===e?"cmdc":e},"getResumeCommandName"),M_=__name((e,t)=>{const n=P_(),r=we([e]),o=t?`cd ${we([t])} && ${n} --resume ${r}`:`${n} --resume ${r}`;return`${T_("Resume this session with:")}\n${T_(o)}\n`},"formatResumeHint"),x_=__name(e=>e?{isValid:!0}:{isValid:!1,errorMessage:["Error: Interactive mode requires a TTY terminal.","Please run this command directly in your terminal, not through a pipe or redirect."].join("\n")},"validateTtyEnvironment"),I_=__name(e=>Boolean(e.resume||e.continue),"shouldValidateSessions"),A_=__name(({isInitialized:e,sessionCount:t})=>e&&0===t?{canProceed:!1,exitCode:0,message:"No conversations found to resume."}:{canProceed:!0},"validateSessionAvailability"),R_=__name(e=>e.permissionMode?e.permissionMode:e.plan?"plan":void 0,"resolveInitialPermissionMode"),O_=__name(({options:e,resumeSessionId:t,sessionTitleHolder:n})=>{const r=R_(e);return{resume:"boolean"==typeof e.resume?e.resume:void 0,resumeSessionId:t,continue:e.continue,trust:e.trust,dangerouslySkipPermissions:e.dangerouslySkipPermissions,initialPrompt:e.initialPrompt,skipOnboarding:e.skipOnboarding,initialPermissionMode:r,local:e.local,sessionTitleHolder:n}},"buildInteractiveCLIProps"),D_=__name(()=>({stdin:process.stdin,stdout:process.stdout,stderr:process.stderr,exitOnCtrlC:!1}),"getInkRenderOptions"),L_=__name(()=>{enableBracketedPasteMode(),process.on("exit",()=>{disableBracketedPasteMode()})},"setupBracketedPasteMode"),N_=__name(()=>{L_()},"initializeTerminal"),$_=__name(()=>{process.on("SIGINT",()=>{})},"swallowSigintDuringShutdown"),__=__name(async e=>{const{resumeSessionId:t,useContinue:n}=e,r=n?(await listCommandSessions())[0]?.id:void 0,o=t??r;if(!o)return console.error("--fork-session ignored: no session to fork (use with --resume <id|name> or --continue)."),null;try{const{newId:e}=await forkCommandSessionFiles({sourceId:o});return e}catch(e){const t=e instanceof Error?e.message:String(e);return console.error(`--fork-session failed: ${t}. Resuming the original session.`),null}},"forkSourceAtColdStart"),F_=__name(async(e={})=>{const t=x_(process.stdin.isTTY);let n,o;if(t.isValid||(console.error(t.errorMessage),process.exit(1)),N_(),"string"==typeof e.resume){const t=e.resume.trim();await isCommandProjectSessionInitialized()||(console.error("Project not initialized. Run cmd to start a conversation first."),process.exit(1));const r=await resolveCommandSessionRef({sessionRef:t});"not-found"===r.status&&(console.error(buildSessionRefNotFoundMessage(t)),process.exit(1)),n=r.sessionId}if("string"==typeof e.session&&!n){const t=getCommandSessionRuntime(),a=await listAllSessionsV3({runtime:t}),i=getProjectSessionDir({env:t.env(),cwd:t.cwd()}),l=resolveSessionRefFlag({ref:e.session,isExistingFile:__name(e=>y(e),"isExistingFile"),listSessionIds:__name(()=>a.map(e=>e.id),"listSessionIds")});"not-found"===l.kind&&(console.error(`--session "${e.session}" is neither an existing .jsonl transcript nor a known session-id prefix.`),process.exit(1)),"ambiguous"===l.kind&&(console.error(`--session "${e.session}" is ambiguous — matches: ${l.candidates.join(", ")}`),process.exit(1));const d="path"===l.kind?s(l.path):s(a.find(e=>e.id===l.sessionId)?.path??"");n=c(d,".jsonl"),r(d)!==i&&(o=d)}if(I_(e)&&!n){const e=await isCommandProjectSessionInitialized(),t=e?await listCommandSessions():[],n=A_({isInitialized:e,sessionCount:t.length});n.canProceed||(console.log(n.message),process.exit(n.exitCode))}if(e.forkSession){const t=await __({resumeSessionId:n,useContinue:Boolean(e.continue)});t&&(n=t,e.continue=!1)}await applyStartupTheme(),startEarlyInputCapture(),setStartupSessionOptions({...!1===e.session?{persist:!1}:{},...o?{sessionFilePath:o}:{},...e.name?{name:e.name}:{}});const a={},i=O_({options:e,resumeSessionId:n,sessionTitleHolder:a}),l=D_(),d=Ke(Xe.createElement(v_,{...i}),l);registerInkControl({clear:d.clear,stdout:process.stdout,instance:await resolveInkInstance(process.stdout)}),await d.waitUntilExit(),clearTerminalTitle(),$_();const u=consumePendingReload();u&&await handlePendingReload(u);const m=await(a.loadTitle?.())??null,p=Boolean(m);let g;const h=getAutoCreatedWorktree();if(h){const e=worktreeHasWork(h.worktreePath,h.baseSha);let t="auto";if(e||p){const n=worktreeChangeCount(h.worktreePath),r=e?n>0?`You have ${n} uncommitted file${1===n?"":"s"}. These will be lost if you remove the worktree.`:"This worktree has commits that are not on your main branch. They will be lost if you remove it.":null;t=await promptWorktreeExit({worktreePath:h.worktreePath,warning:r})}const n=finalizeAutoCreatedWorktree(t);if(n.worktreePath){const e=T_(createOSC8Link(fileUrl(n.worktreePath),tildeHome(n.worktreePath),!1));if(n.removed){const n="auto"===t?"Removed empty worktree":"Removed worktree";process.stdout.write(`${T_(n)}\n${e}\n\n`)}else if(n.kept){g=n.worktreePath;const t=n.reason&&"kept"!==n.reason?` (${n.reason})`:"";process.stdout.write(`${T_(`Kept worktree${t}`)}\n${e}\n\n`)}}}const f=a.sessionId;if(f&&await commandSessionExists(f)){const e=m?E_(m):"";process.stdout.write(M_(e||f,g))}},"interactiveMode");Ex(),Px(),Ex();function isAgentMetrics(e){if("object"!=typeof e||null===e)return!1;const t=e;return"string"==typeof t.name&&"number"==typeof t.turns&&"object"==typeof t.toolCalls&&null!==t.toolCalls&&"number"==typeof t.toolErrors&&"number"==typeof t.tokens&&"number"==typeof t.durationMs}function extractAgentMetrics(e){const t=e.indexOf("\x3c!-- BENCHMARK_AGENT_METRICS:");if(-1===t)return{cleanContent:e,metrics:null};const n=t+29,r=e.indexOf(" --\x3e",n);if(-1===r)return{cleanContent:e,metrics:null};try{const o=e.substring(n,r),s=JSON.parse(o);return isAgentMetrics(s)?{cleanContent:e.substring(0,t).trimEnd()+e.substring(r+4),metrics:s}:{cleanContent:e,metrics:null}}catch{return{cleanContent:e,metrics:null}}}__name(isAgentMetrics,"isAgentMetrics"),__name(extractAgentMetrics,"extractAgentMetrics");var U_=__name(e=>({turnNumber:e,apiDurationMs:0,toolCalls:[],toolDurationMs:0,inputTokens:0,outputTokens:0,cacheReadTokens:0,cacheCreationTokens:0}),"newTurn");function createBenchmarkCollector(e){const t=e.now??Date.now,n=e.writeFile??((e,t)=>{h.writeFileSync(e,t)}),r=t(),o=[],s=[],a=new Map,i=new Map;let l,c=!1;const d=__name(e=>{let t=e;for(;;){const{cleanContent:e,metrics:n}=extractAgentMetrics(t);if(!n)return;s.push(n),t=e}},"collectAgentMetrics"),u=__name(()=>{const e=o[o.length-1];if(e)return e;const t=U_(o.length+1);return o.push(t),t},"currentTurn"),m=__name(e=>{const n=u(),r=a.get(e.toolCallId);void 0!==r&&(n.toolDurationMs+=t()-r,a.delete(e.toolCallId));const o=i.get(e.toolCallId);o?o.isError=e.isError||o.isError:n.toolCalls.push({name:e.toolName,isError:e.isError})},"finishToolCall"),p=__name(e=>{if("turn_start"!==e.type)if("model_request_start"!==e.type){if("model_request_end"===e.type){const n=u();return void 0!==l&&(n.apiDurationMs+=t()-l,l=void 0),n.inputTokens+=e.usage.inputTokens,n.outputTokens+=e.usage.outputTokens,n.cacheReadTokens+=e.usage.cacheReadTokens,void(n.cacheCreationTokens+=e.usage.cacheWriteTokens)}if("tool_running"===e.type){const n={name:e.toolName,isError:!1};return a.set(e.toolCallId,t()),i.set(e.toolCallId,n),void u().toolCalls.push(n)}if("tool_completed"!==e.type)"tool_errored"!==e.type&&"tool_denied"!==e.type&&"tool_hook_blocked"!==e.type?"run_end"!==e.type||(c=c||"max_turns"===e.result.stopReason):m({toolCallId:e.toolCallId,toolName:e.toolName,isError:!0});else{m({toolCallId:e.toolCallId,toolName:e.toolName,isError:!1});for(const t of e.result)"text"===t.type&&d(t.text)}}else l=t();else o.push(U_(e.turnNumber))},"onEvent"),g=__name(()=>{const e={};let n=0,a=0,i=0,l=0;for(const t of o){for(const r of t.toolCalls)n++,e[r.name]=(e[r.name]??0)+1,r.isError&&a++;i+=t.inputTokens,l+=t.outputTokens}return{wallTimeMs:t()-r,turns:o.length,turnDetails:o.map(e=>({turnNumber:e.turnNumber,apiDurationMs:e.apiDurationMs,toolCalls:e.toolCalls.map(e=>({name:e.name,isError:e.isError})),toolDurationMs:e.toolDurationMs,inputTokens:e.inputTokens,outputTokens:e.outputTokens,cacheReadTokens:e.cacheReadTokens,cacheCreationTokens:e.cacheCreationTokens})),toolCalls:{total:n,byType:e,errors:a},tokens:{input:i,output:l},maxTurnsReached:c,agents:[...s]}},"snapshot"),f=__name(()=>{try{n(e.outputPath,JSON.stringify(g(),null,2))}catch{}},"write");return{onEvent:p,snapshot:g,write:f}}__name(createBenchmarkCollector,"createBenchmarkCollector");var j_=null,B_=!1;function resolveLaunchPermissionMode(e){return e.permissionMode?e.permissionMode:e.plan?"plan":e.dangerouslySkipPermissions?"bypass":void 0}function getAuthKey4(){return getCommandAuthKey({runtime:getCommandConfigRuntime(),path:getAuthFile(),env:process.env})}async function readStdin(){return new Promise((e,t)=>{let n="";const r=setTimeout(()=>{t(new Error("Timeout reading from stdin"))},3e4);process.stdin.setEncoding("utf8"),process.stdin.on("data",e=>{n+=e}),process.stdin.on("end",()=>{clearTimeout(r),e(n)}),process.stdin.on("error",e=>{clearTimeout(r),t(e)}),process.stdin.resume()})}function setupSignalHandlers(){if(B_)return;B_=!0;const e=__name(e=>{j_?.abort(),process.stderr.write(`\n${e}\n`),process.exit(ab.INTERRUPTED)},"handleTermination");process.on("SIGINT",()=>e("Interrupted.")),process.on("SIGTERM",()=>e("Terminated.")),process.stdout.on("error",e=>{"EPIPE"===e.code&&process.exit(ab.SUCCESS),process.stderr.write(`Error writing to stdout: ${e.message}\n`),process.exit(ab.ERROR)})}async function printMode(e={}){trackCommand({command:"print"}),setupSignalHandlers(),j_=new AbortController;const t=e.benchmarkOutput?createBenchmarkCollector({outputPath:e.benchmarkOutput}):null,n=resolveToolEnable({flags:e,env:process.env}),r=toolEnableWarning(n);r&&process.stderr.write(`${r}\n`);const o=await runPrintMode({options:e,stdinIsTTY:Boolean(process.stdin.isTTY),readStdin:readStdin,isAuthenticated:__name(async()=>null!==await getAuthKey4(),"isAuthenticated"),createHarness:__name(async({sessionId:t,entrypoint:r,headless:o,maxTurns:s,mods:a,resumeState:i,sessionFilePath:l})=>{const c=await createHarnessSession({sessionId:t,baseUrl:getApiBaseUrl(),entrypoint:r,headless:o,maxTurns:s,mods:a,dangerouslySkipPermissions:e.dangerouslySkipPermissions,permissionMode:resolveLaunchPermissionMode(e),...n.forceEnabledTools?{forceEnabledTools:n.forceEnabledTools}:{},modHost:await loadCommandModHost({projectMods:Boolean(e.dangerouslySkipPermissions)}),resumeState:i,persist:e.persist,sessionFilePath:l,ideBridge:createLocalIdeBridge()});return e.name&&c.setSessionName(e.name),c},"createHarness"),emit:__name(e=>{"session"===e.type&&process.stderr.write(`session: ${e.sessionId}\n`)},"emit"),writeStdout:__name(e=>{process.stdout.write(e)},"writeStdout"),...t?{runQuery:__name(e=>runHarnessQuery({...e,onEvent:__name(n=>{e.onEvent?.(n),t.onEvent(n)},"onEvent")}),"runQuery")}:{}});t?.write(),o.stdoutText&&process.stdout.write(o.stdoutText),o.stderrText&&process.stderr.write(o.stderrText),process.exit(o.exitCode)}async function ensureAuthenticated(){return ensureCommandAuthenticated({runLogin:__name(async()=>{await runLogin()},"runLogin"),getAuthKey:__name(()=>getCommandAuthKey({runtime:getCommandConfigRuntime(),path:getAuthFile(),env:process.env}),"getAuthKey"),onAuthFailed:__name(()=>{console.error(`${it.cross} Authentication failed. Please try again with: ${getBinaryCommand()} login`)},"onAuthFailed"),onLoginError:__name(e=>{console.error(`${it.cross} Login failed: ${getErrorMessage(e)}`),console.error(`Please try again with: ${getBinaryCommand()} login`)},"onLoginError"),onCheckError:__name(e=>{console.error("Error checking authentication:",e)},"onCheckError")})}function resolveModelFlag({model:e}){return resolveModelInput({model:e,models:getAllModelOptions()})}function suggestModel(e){return suggestModelInput({input:e,models:getAllModelOptions()})}function formatModelList(e={}){return formatModelListText({color:e.color,defaultModel:Vn,groups:getModelGroupsInOrder()})}function printModelList(){const e=Boolean(process.stdout.isTTY)&&void 0===process.env.NO_COLOR;process.stdout.write(`${formatModelList({color:e})}\n`)}function resolveModelFlagOrExit({model:e}){const t=resolveModelFlag({model:e});if(t)return t;const n=suggestModel(e),r=n?` Did you mean "${n}"?`:"";process.stderr.write(`Error: unknown model "${e}".${r}\nRun "${getBinaryCommand()} --list-models" to see all available models\n`),process.exit(1)}__name(resolveLaunchPermissionMode,"resolveLaunchPermissionMode"),__name(getAuthKey4,"getAuthKey"),__name(readStdin,"readStdin"),__name(setupSignalHandlers,"setupSignalHandlers"),__name(printMode,"printMode"),Ex(),Px(),__name(ensureAuthenticated,"ensureAuthenticated"),Ex(),Px(),__name(resolveModelFlag,"resolveModelFlag"),__name(suggestModel,"suggestModel"),__name(formatModelList,"formatModelList"),__name(printModelList,"printModelList"),__name(resolveModelFlagOrExit,"resolveModelFlagOrExit"),Ex(),Px();var W_=!1;function getAuthKey5(){return getCommandAuthKey({runtime:getCommandConfigRuntime(),path:getAuthFile(),env:process.env})}function setupTelemetry(){initTelemetry()&&(startSession(),registerStartupTask(trackSystemInfo()),trackCliSessionExistsEvent(),registerCleanupHandlers())}function trackSystemInfo(){return trackTelemetryIdentity({client:createApiClient({baseUrl:getApiBaseUrl()}),platform:L.platform(),arch:L.arch()})}function registerCleanupHandlers(){process.on("beforeExit",async()=>{await shutdownTelemetry()}),process.on("exit",()=>{shutdownTelemetrySync()}),process.on("SIGINT",handleShutdownSignal),process.on("SIGTERM",handleShutdownSignal)}async function disconnectMcpServers(){try{await Promise.allSettled([disconnectAllMcpServers(),_O()])}catch{}}function handleShutdownSignal(){W_||(W_=!0,abandonPendingCommandSpan(),Promise.allSettled([disconnectMcpServers(),shutdownTelemetry()]).finally(()=>{process.exit(0)}))}async function shutdownAndExit(e=0){W_=!0,abandonPendingCommandSpan();try{await Promise.allSettled([disconnectMcpServers(),shutdownTelemetry(kn)])}finally{process.exit(e)}}async function trackCliSessionExistsEvent(){try{if(!await getAuthKey5())return;const e=getSessionId();if(!e)return;const t=getPackageJson(import.meta.url).version||"unknown",n=L.platform(),r=L.arch(),o=isTTY()?"interactive":"non-interactive";await trackLifecycleEvent({eventType:"cli_session_exists",metadata:{sessionId:e,cliVersion:t,mode:o,os:`${n}-${r}`},isTelemetryEnabled:isTelemetryEnabled,createClient:__name(()=>createApiClient({baseUrl:getApiBaseUrl()}),"createClient"),log:dlog})}catch{}}__name(getAuthKey5,"getAuthKey"),__name(setupTelemetry,"setupTelemetry"),__name(trackSystemInfo,"trackSystemInfo"),__name(registerCleanupHandlers,"registerCleanupHandlers"),__name(disconnectMcpServers,"disconnectMcpServers"),__name(handleShutdownSignal,"handleShutdownSignal"),__name(shutdownAndExit,"shutdownAndExit"),__name(trackCliSessionExistsEvent,"trackCliSessionExistsEvent");var H_=__name(async()=>{await ensureAuthenticated()||process.exit(1)},"requireAuth");async function interactiveModeAction(e,t){if(trackCommand({command:"interactive"}),t.listModels)return void printModelList();if(t.addDir&&t.addDir.length>0)for(const e of t.addDir)nf.addDirectory(e);t.mod&&t.mod.length>0&&setModPathsOverride(t.mod),t.modOption&&t.modOption.length>0&&setModOptionsOverride(t.modOption);const n=(t.skill??[]).map(e=>s(e)),r=!1!==t.skills;if(setSkillLoadOverrides({extraPaths:n,discovery:r}),void 0!==t.worktree&&!1!==t.worktree){const e=void 0!==t.print;e||Boolean(t.trust||t.dangerouslySkipPermissions)||await isCommandProjectSessionInitialized()||(console.error(`Worktree error: this directory isn't trusted yet. Run \`${getInvokedCommandName()}\` here once to trust it, then retry with --worktree.`),process.exit(1));const n=enterWorktreeFromFlag(t.worktree,{quiet:e,track:!e});n.ok||(console.error(`Worktree error: ${n.error}`),process.exit(1)),await initializeCommandProjectSessions()}const o=t.model?resolveModelFlagOrExit({model:t.model}):void 0,a=t,i=__name(e=>{process.stderr.write(`${e.message}\n`),e.ok||process.exit(1)},"applySettingResult");for(const e of vD){const t=a[e.key];"string"==typeof t&&i(await e.apply(t,{model:o}))}const l=a.config;if(Array.isArray(l))for(const e of l)"string"==typeof e&&i(await applyConfigSetting(e));if((t.dangerouslySkipPermissions||"bypass"===t.permissionMode)&&isBypassPermissionsDisabled(await loadCommandCodeConfig({runtime:getCommandConfigRuntime()}))&&(process.stderr.write("Bypass permissions are disabled by settings (permissions.disableBypass); continuing with normal permission prompts.\n"),t.dangerouslySkipPermissions=!1,"bypass"===t.permissionMode&&(t.permissionMode=void 0)),void 0!==t.print){const n=extractPrintModeQuery({print:t.print,prompt:e});return void await printMode({query:n,dangerouslySkipPermissions:t.dangerouslySkipPermissions,plan:t.plan,permissionMode:t.permissionMode,maxTurns:t.maxTurns,verbose:t.verbose,toolsAll:t.toolsAll,toolsEnable:t.toolsEnable,outputFormat:t.outputFormat,model:o,benchmarkOutput:t.benchmarkOutput,name:t.name,resume:t.resume,continue:t.continue,forkSession:t.forkSession,session:"string"==typeof t.session?t.session:void 0,persist:!1!==t.session&&void 0})}o&&setModelOverride(o),setGoalMaxTurnsOverride(t.maxTurns);const c=parseInteractivePromptArgument(e);await H_();const d=buildInteractiveRuntimeOptions(t),u=resolveInteractiveLaunchConfig({options:t,runtimeOptions:d,initialPrompt:c});setOriginalInvocation({trust:d.trust,dangerouslySkipPermissions:d.dangerouslySkipPermissions,skipOnboarding:d.skipOnboarding,maxTurns:t.maxTurns,skillPaths:n,skillDiscovery:r}),await installKeybindingsFromConfig({runtime:getCommandConfigRuntime()}),await F_(u),await shutdownAndExit(0)}__name(interactiveModeAction,"interactiveModeAction"),Ex(),Px(),Ex(),Px();var G_={connected:lt.green("✔"),installed:lt.green("✔"),up_to_date:lt.green("✔"),needs_reload:lt.yellow("◌"),failed:lt.red("✖"),not_in_ide:lt.yellow("◌")};function formatSetupResult(e){const{prefix:t,ide:n,suffix:r}=getIDESetupStatusHeadline(e.status,e.ide),o=`${t}${n??""}${r}`;return["",`${G_[e.status]} ${o}`,...(e.details??[]).map(e=>lt.dim(` ${e}`)),""]}__name(formatSetupResult,"formatSetupResult"),globalThis.COMMAND_CODE_CWD=process.cwd();var V_=__name(()=>process.cwd(),"getCwd"),z_=__name(()=>process.argv.slice(2),"getArgs"),q_=__name(()=>{const e=V_(),t=z_(),n=getCliStartupEnvironment(t);dlog(`[Startup] cwd: ${e}`),dlog(`[Startup] args: ${t.join(" ")}`),dlog(`[Startup] env: ${n}`),dlog(`[Startup] traceId: ${getTraceId()??"unavailable"}`)},"logStartupInfo");function getAuthKey6(){return getCommandAuthKey({runtime:getCommandConfigRuntime(),path:getAuthFile(),env:process.env})}async function preRun(){q_();const e=resolveCliStartupPlan({args:z_()});if(e.shouldRunIdeSetup){const e=await runIdeSetup({host:G$,moduleUrl:import.meta.url});formatSetupResult(e).forEach(e=>console.log(e)),process.exit("failed"===e.status?1:0)}e.shouldRunAutoUpdate&&runCliStartupPendingUpdates({plan:e,host:t_}),await migrateDeprecatedModel(),await getAuthKey6()&&detectAndTrackFirstInstall({loadUserConfig:loadUserConfig,updateUserConfig:updateUserConfig,trackLifecycleEvent:__name(e=>trackLifecycleEvent({...e,isTelemetryEnabled:isTelemetryEnabled,createClient:__name(()=>createApiClient({baseUrl:getApiBaseUrl()}),"createClient"),log:dlog}),"trackLifecycleEvent"),getCliVersion:__name(()=>getPackageJson(import.meta.url).version??"unknown","getCliVersion"),log:dlog}).catch(()=>{}),e.shouldRunAutoUpdate&&runCliStartupUpdateCheck({plan:e,host:t_}),scheduleCliStartupIdeAutoInstall({host:G$,moduleUrl:import.meta.url})}__name(getAuthKey6,"getAuthKey"),__name(preRun,"preRun"),Ex(),Px();var K_=Object.fromEntries(Object.entries(zw).map(([e,t])=>[t,e])),Y_=new Set(VR.map(e=>e.id));function formatProviderModule(e){return Y_.has(e)?`@commandcode/provider-${e}`:e}async function buildProviderLoginRows(e={}){const t=e.hasCredential??hasProviderCredential,n=e.modules??(await loadInstalledProviderModules()).modules,r=e.moduleSources??{},o=[];for(const e of n){const n=Boolean(e.auth?.methods.length),s=K_[e.id]??e.id;o.push({provider:e.id,name:e.displayName??e.id,module:r[e.id]??formatProviderModule(e.id),description:e.transport.kind,authenticated:!!n&&await t({provider:s}),canAuthenticate:n})}return o}function formatProviderLoginRows(e){const t=getBinaryCommand(),n=[yt.bold("Providers available for login/logout"),""];for(const r of e){const e=r.authenticated?yt.green("logged in"):yt.dim("not logged in");n.push(yt.cyan(r.provider)),n.push(` Name: ${r.name}`),n.push(` Module: ${r.module}`),n.push(` Type: ${r.description}`),r.canAuthenticate?(n.push(` Status: ${e}`),n.push(` Login: ${t} login ${r.provider}`),n.push(` Logout: ${t} logout ${r.provider}`),n.push("")):(n.push(` Status: ${yt.dim("no login")}`),n.push(""))}return n.join("\n")}async function providersAction(e){const t=await loadInstalledProviderModules(),n=await buildProviderLoginRows({modules:t.modules,moduleSources:t.sources});if(e.json)console.log(JSON.stringify({providers:n,errors:t.errors}));else if(console.log(formatProviderLoginRows(n)),t.errors.length>0){console.log(yt.yellow("Provider load errors"));for(const e of t.errors)console.log(`${yt.yellow(e.id)}: ${e.error}`)}}__name(formatProviderModule,"formatProviderModule"),__name(buildProviderLoginRows,"buildProviderLoginRows"),__name(formatProviderLoginRows,"formatProviderLoginRows"),__name(providersAction,"providersAction");var J_=new Le("providers").description("List providers available for login/logout").option("--json","Output providers as JSON for automation").action(providersAction);function stopAllSpinners({state:e}){e.workingSpinner&&(e.workingSpinner.stop(),e.workingSpinner=null),e.currentSpinner&&(e.currentSpinner.stop(),e.currentSpinner=null)}function renderStatusAction({action:e,state:t}){if("replayed_setup"!==e.type)return"setup_step"===e.type?(t.currentSpinner&&t.currentSpinner.succeed(),void(t.currentSpinner=kt({stream:process.stderr,text:e.message}).start())):"running"===e.type?(t.currentSpinner&&(t.currentSpinner.succeed(),t.currentSpinner=null),void(t.workingSpinner||(t.workingSpinner=kt({stream:process.stderr}).start()))):"completed"===e.type?(t.workingSpinner&&(t.workingSpinner.succeed("Session completed"),t.workingSpinner=null),t.currentSpinner&&(t.currentSpinner.succeed(),t.currentSpinner=null),void(e.prUrl&&console.error(`PR: ${yt.cyan(e.prUrl)}`))):"failed"===e.type?(t.workingSpinner&&(t.workingSpinner.fail(e.message),t.workingSpinner=null),void(t.currentSpinner&&(t.currentSpinner.fail(e.message),t.currentSpinner=null))):"timed_out"===e.type?(t.workingSpinner&&(t.workingSpinner.fail("Session timed out"),t.workingSpinner=null),void(t.currentSpinner&&(t.currentSpinner.fail("Timed out"),t.currentSpinner=null))):void("cancelled"===e.type&&(stopAllSpinners({state:t}),console.error(`\n${yt.yellow("Cancelled.")}`)));e.message&&t.workingSpinner&&(t.workingSpinner.text=e.message)}function setupInputHandling({callbacks:e}){const t=__name(t=>{3!==t[0]?4===t[0]&&e.onDetach():e.onCancel()},"onStdinData"),n=process.rawListeners("SIGINT").slice();return process.removeAllListeners("SIGINT"),process.stdin.isTTY?(process.stdin.setRawMode(!0),process.stdin.resume(),process.stdin.on("data",t),process.on("SIGINT",()=>{})):process.on("SIGINT",()=>e.onCancel()),()=>{process.stdin.isTTY&&(process.stdin.removeListener("data",t),process.stdin.setRawMode(!1),process.stdin.pause()),process.removeAllListeners("SIGINT");for(const e of n)process.on("SIGINT",e)}}function setupResizeForwarding({handle:e}){const t=__name(()=>{e.sendResize({cols:process.stdout.columns,rows:process.stdout.rows})},"onResize");return process.stdout.on("resize",t),()=>process.stdout.removeListener("resize",t)}async function streamSession({sessionId:e,lastEventId:t=0,isResume:n=!1}){const r={currentSpinner:null,workingSpinner:null},o=await streamSandboxSession({sessionId:e,lastEventId:t,isResume:n,getTerminalSize:__name(()=>({cols:process.stdout.columns,rows:process.stdout.rows}),"getTerminalSize"),callbacks:{onOpen:__name(({isResume:t})=>{r.currentSpinner&&(r.currentSpinner.stop(),r.currentSpinner=null),console.error(""),console.error(`${yt.yellow("[Ctrl+C]")} ${yt.dim("stop")} ${yt.yellow("[Ctrl+D]")} ${yt.dim("detach")}`),console.error(`${yt.dim("Session:")} ${yt.gray(e)}`),console.error(""),t&&(r.workingSpinner=kt({stream:process.stderr}).start())},"onOpen"),onStatus:__name(({action:e})=>renderStatusAction({action:e,state:r}),"onStatus"),onPty:__name(({content:e})=>{r.workingSpinner&&r.workingSpinner.stop(),process.stdout.write(e),r.workingSpinner&&r.workingSpinner.start()},"onPty"),onErrorEvent:__name(({message:e})=>{r.currentSpinner&&(r.currentSpinner.fail(),r.currentSpinner=null),console.error(`${it.cross} ${yt.red(e)}`)},"onErrorEvent"),onDetached:__name(()=>{stopAllSpinners({state:r}),console.error(`\n${yt.yellow("Detached.")} Session still running.`),console.error(`Resume with: ${yt.cyan(`${getBinaryCommand()} --experimental sandbox --id ${e}`)}`)},"onDetached"),onCancelled:__name(()=>{stopAllSpinners({state:r}),console.error(`\n${yt.yellow("Sandbox stopped.")}`)},"onCancelled"),onDisconnected:__name(()=>{stopAllSpinners({state:r}),console.error(`\n${yt.yellow("Disconnected.")} Session still running.`),console.error(`Resume with: ${yt.cyan(`${getBinaryCommand()} --experimental sandbox --id ${e}`)}`)},"onDisconnected"),onConnectionError:__name(()=>{r.currentSpinner&&(r.currentSpinner.fail("Connection error"),r.currentSpinner=null)},"onConnectionError")}});n&&(r.currentSpinner=kt({stream:process.stderr,text:"Reconnecting..."}).start());const s=setupResizeForwarding({handle:o}),a=setupInputHandling({callbacks:{onCancel:o.cancel,onDetach:o.detach}});process.once("SIGTERM",o.detach);try{await o.done}finally{s(),a(),process.removeListener("SIGTERM",o.detach)}}async function askQuestion(e){const t=Et.createInterface({input:process.stdin,output:process.stderr});return new Promise(n=>{t.question(e,e=>{t.close(),n(e)})})}async function sandboxMode({prompt:e,resume:t}){t&&(await streamSession({sessionId:t,isResume:!0}),process.exit(0)),await ensureAuthenticated()||process.exit(1);const n=validateSandboxGitRepo({run:__name(({command:e})=>W(e,{encoding:"utf-8",stdio:["pipe","pipe","pipe"]}),"run")});n.isClean||console.error(yt.yellow("Warning: You have uncommitted changes. The sandbox clones from remote, so local changes won't be included."));const r=isInternalTeamFlagPresent(),o=await readSandboxConfigFiles({runtime:getCommandConfigRuntime(),authFilePath:getAuthFile(),configFilePath:getConfigFile()}),s=e||await askQuestion(`${yt.bold("What do you want to do?")}\n${yt.cyan(">")} `);if(!s.trim())return void console.error(yt.yellow("No prompt provided. Aborting."));const a=truncateSandboxPrompt(s),i=kt({stream:process.stderr,text:"Starting sandbox session..."}).start();try{const e=await startSandboxSession({client:createApiClient({baseUrl:getApiBaseUrl()}),request:{repoUrl:n.repoUrl,branch:n.branch,prompt:a,isInternalTeam:r,configFiles:o}});i.succeed("Sandbox started"),await streamSession({sessionId:e.sessionId,prompt:a}),process.exit(0)}catch(e){i.fail("Failed to start sandbox session");const t=classifySandboxStartFailure({error:e});if("unauthorized"===t.kind&&(console.error(yt.red(`\nAuthentication failed. Try logging in again: ${getBinaryCommand()} login`)),process.exit(1)),"github_app_not_installed"===t.kind){const e=yt.cyan(yt.underline(n.repoUrl)),t=yt.cyan(yt.underline("https://github.com/apps/command-code-ai/installations/new"));console.error(`\n${yt.red("✖")} Command Code GitHub App isn't installed on ${e}`),console.error(` Install it here: ${t}`),console.error(yt.dim(" Then run this command again.")),process.exit(1)}console.error(yt.red(`\n${t.message}`)),process.exit(1)}}function createSandboxCommand(){return new Le("sandbox").description("Run a task autonomously in a sandbox").argument("[prompt]","Task description").option("--id <sessionId>","Resume an existing sandbox session").enablePositionalOptions().action(async(e,t)=>{try{await sandboxMode({prompt:e,resume:t.id})}catch(e){const t=e instanceof Error?e.message:"Unknown error";console.error(yt.red(t)),process.exit(1)}})}Ex(),Ex(),Px(),Ex(),Px(),__name(stopAllSpinners,"stopAllSpinners"),__name(renderStatusAction,"renderStatusAction"),__name(setupInputHandling,"setupInputHandling"),__name(setupResizeForwarding,"setupResizeForwarding"),__name(streamSession,"streamSession"),__name(askQuestion,"askQuestion"),__name(sandboxMode,"sandboxMode"),__name(createSandboxCommand,"createSandboxCommand"),Ex(),Ex(),Px();var Q_=[`${yt.dim("Usage:")}`,` ${yt.cyan(`${getBinaryCommand()} skills add`)} ${yt.white("<owner/repo>")}`,"",`${yt.dim("Examples:")}`,` ${yt.cyan(`${getBinaryCommand()} skills add`)} ${yt.white("acme/my-skills")} ${yt.dim("# single-skill repo")}`,` ${yt.cyan(`${getBinaryCommand()} skills add`)} ${yt.white("acme/skills/path/to/skill")} ${yt.dim("# specific path in repo")}`,` ${yt.cyan(`${getBinaryCommand()} skills add`)} ${yt.white("acme/multi-skills -s my-skill")} ${yt.dim("# pick one from multi-skill repo")}`,` ${yt.cyan(`${getBinaryCommand()} skills add`)} ${yt.white("acme/repo@branch")} ${yt.dim("# specific branch")}`,` ${yt.cyan(`${getBinaryCommand()} skills add`)} ${yt.white("acme/repo --global")} ${yt.dim("# install to ~/.commandcode/skills/")}`],X_=__name((e,t)=>`${yt.green(it.tick)} Installed ${yt.cyan(e)} ${yt.dim(`${it.arrowRight} ${t}/`)}`,"formatInstalled"),Z_=__name(e=>`${yt.red(it.cross)} ${e}`,"formatError");async function cleanupAndExit(e,t){await removeSkillInstallTempDir(e),process.exit(t)}function validateRepoFormat(e){const t=validateSkillInstallRepoInput(e);t.valid||(console.error(Z_(t.message)),console.log(""),t.message.startsWith("Invalid repository")&&(console.log(`Expected format: ${yt.cyan("owner/repo")} or ${yt.cyan("owner/repo/path")}`),console.log("")),Q_.forEach(e=>console.log(e)),process.exit(1))}async function addAction2(e,t){const n=process.stdout.isTTY&&process.stdin.isTTY,r=t.global?"~/.commandcode/skills":".commandcode/skills";let o;validateRepoFormat(e);const s=kt({text:`Fetching ${yt.cyan(e)}...`,color:"cyan"});try{let a=[];s.start();const i=await discoverCommandSkills(e,{keepTempDir:!0}),{skills:l,tempDir:c}=i;o=c,s.stop();const d=planSkillInstallSelection({skills:l,requestedSkillName:t.skill,interactive:n,repoInput:e});if("empty"===d.kind&&(console.error(Z_(`No skills found in ${yt.cyan(e)}`)),console.log(yt.dim("The repository must contain at least one SKILL.md file.")),await cleanupAndExit(o,1)),"missing-requested-skill"===d.kind)return console.error(Z_(`Skill "${d.requestedSkillName}" not found in ${yt.cyan(d.repoInput)}`)),console.log(""),console.log(yt.dim("Available skills:")),d.availableSkillNames.forEach(e=>console.log(` ${yt.cyan(e)}`)),void await cleanupAndExit(o,1);if("prompt"===d.kind){const t=await je({message:`Select skills to install from ${e}`,options:[...d.options],required:!0});"symbol"==typeof t&&(console.log(yt.dim("Cancelled")),await cleanupAndExit(o,0)),a=resolvePromptedSkillSelection({skills:l,selectedNames:t})}let u;"selected"===d.kind&&(a=d.skills);const m=await installSelectedCommandSkills({repoInput:e,skills:a,global:t.global,force:t.force,cachedTempDir:o,onSkillStart:__name(e=>{u=kt({text:`Installing ${yt.cyan(e.name)}...`,color:"cyan"}),u.start()},"onSkillStart"),onSkillInstalled:__name(e=>{u?.stop(),console.log(X_(e.name,r))},"onSkillInstalled"),onSkillFailed:__name(({skillName:e,message:t})=>{u?.stop(),console.error(Z_(`Failed to install "${e}"`)),console.log(yt.dim(` ${t}`))},"onSkillFailed")});await cleanupAndExit(o,m.exitCode)}catch(e){s.stop();const t=e instanceof Error?e.message:String(e);console.error(Z_(t)),await cleanupAndExit(o,1)}}__name(cleanupAndExit,"cleanupAndExit"),__name(validateRepoFormat,"validateRepoFormat"),__name(addAction2,"addAction");var eF=new Le("add").description("Install a skill from a GitHub repository").argument("<repo>","GitHub repository (owner/repo or owner/repo/path)").option("-g, --global","Install to global skills (~/.commandcode/skills/)").option("-f, --force","Overwrite if skill already exists").option("-s, --skill <name>","Specific skill name to install from repo").addHelpText("after",`\n${Q_.join("\n")}`).configureOutput({outputError:__name((e,t)=>{e.includes("missing required argument")?(console.error(Z_("No repository specified.")),console.log(""),Q_.forEach(e=>console.log(e))):t(e)},"outputError")}).action(addAction2);Ex(),Px();var tF=__name((e,t)=>{const n=t.length>60?t.substring(0,57)+"...":t;return` ${yt.cyan(e)} ${yt.dim(`· ${n}`)}`},"formatSkillLine"),nF=__name((e,t)=>`${yt.bold(yt.white(e))} ${yt.dim(`(${t})`)}`,"formatSectionHeader"),rF=__name(e=>{if(0!==e.warningCount){console.log(""),console.log(`${yt.bold(yt.yellow("Skipped"))} ${yt.dim(`(${e.warningCount})`)}`);for(const t of e.warningGroups){console.log(""),console.log(` ${yt.bold(t.category)} ${yt.dim(`(${t.items.length})`)}`);for(const e of t.items)console.log(` ${yt.bold(skillIdentifier(e.path))}`),console.log(` ${yt.dim(e.reason)}`)}}},"printWarnings"),oF=__name(e=>{const t=["",yt.dim("No skills installed."),"",yt.dim("Looking in:")];for(const n of e.lookupPaths)t.push(yt.dim(` ${n.path} ${yt.white(`(${n.label})`)}`));return t.push("",`Install a skill: ${yt.cyan(e.installCommand)} ${yt.dim(e.installPlaceholder)}`,""),t},"formatEmptyHint"),sF=__name(e=>{e.forEach(e=>console.log(e))},"printLines"),aF=__name(e=>{e&&(console.log(""),console.log(yt.dim(e.replace("--debug",yt.cyan("--debug")))))},"printDebugHint");async function listAction2(){const e="true"===process.env.DEBUG;try{const{global:t,project:n,bundled:r,warnings:o}=await listCommandSkills(),s=planSkillListView({global:t,project:n,bundled:r,warnings:o,showWarnings:e});if(s.empty){const t=await buildSkillListEmptyHint({runtime:getCommandSkillRuntime(),binCommand:`${getBinaryCommand()}`});sF(oF(t));for(const e of s.sections)console.log(nF(e.title,e.skills.length)),e.skills.forEach(e=>{console.log(tF(e.name,e.description))}),console.log("");e&&(rF({warningCount:s.warningCount,warningGroups:s.warningGroups}),s.warningCount>0&&console.log("")),e||(aF(s.debugHint),console.log("")),process.exit(0)}console.log(""),console.log(heading({text:"Skills",sub:yt.dim(`${s.userInstalledTotal} installed`)}));for(const e of s.sections)console.log(""),console.log(nF(e.title,e.skills.length)),e.skills.forEach(e=>{console.log(tF(e.name,e.description))});e&&rF({warningCount:s.warningCount,warningGroups:s.warningGroups}),e||aF(s.debugHint),console.log(""),process.exit(0)}catch(e){const t=e instanceof Error?e.message:"Unknown error";console.error(`${yt.red(it.cross)} Failed to list skills: ${t}`),process.exit(1)}}__name(listAction2,"listAction");var iF=new Le("list").description("List all installed skills. Run with -d/--debug to also see why any skills were skipped.").action(listAction2);Ex(),Px();var lF=__name((e,t)=>`${yt.green(it.tick)} Removed ${yt.cyan(e)} from ${t} skills`,"formatRemoved"),cF=__name(e=>`${yt.red(it.cross)} ${e}`,"formatError"),dF=__name((e,t)=>{let n=e;for(const e of t)n=n.replace(e,yt.cyan(e));return yt.dim(n)},"formatHint");function validateSkillNameEarly(e){const t=validateSkillRemoveName(e);return t.valid?null:t.message}async function removeAction2(e,t){try{const n=process.stdout.isTTY&&process.stdin.isTTY,r=t.global?"global":"project",o=validateSkillNameEarly(e);if(o&&(console.error(cF(o)),console.log(dF(getSkillListCommandHint({binCommand:`${getBinaryCommand()}`}),[`${getBinaryCommand()} skills list`])),process.exit(1)),!t.yes&&n){const t=await Be({message:`Remove ${yt.cyan(e)} from ${r} skills?`});"symbol"!=typeof t&&t||(console.log(yt.dim("Cancelled")),process.exit(0))}await removeCommandSkill({skillName:e,global:t.global}),console.log(lF(e,r)),process.exit(0)}catch(n){const r=n instanceof Error?n.message:"Failed to remove skill",o=planSkillRemoveError({skillName:e,global:t.global,errorMessage:r,binCommand:`${getBinaryCommand()}`});if(console.error(cF(o.message)),"not-found"===o.kind)for(const t of o.hints)console.log(dF(t,[`${getBinaryCommand()} skills remove ${e} --global`,`${getBinaryCommand()} skills list`]));process.exit(1)}}__name(validateSkillNameEarly,"validateSkillNameEarly"),__name(removeAction2,"removeAction");var uF=new Le("remove").description("Remove an installed skill").argument("<skill-name>","Name of the skill to remove").option("-g, --global","Remove from global skills (~/.commandcode/skills/)").option("-y, --yes","Skip confirmation prompt").action(removeAction2),mF=new Le("skills").description("Manage skills from GitHub repositories").addCommand(eF).addCommand(uF).addCommand(iF);Ex(),Px(),Ex(),Px(),Ex(),Ex(),Px();var pF=[it.bullet,it.squareSmallFilled,it.lozenge,it.star,it.triangleRight,it.triangleUp];Ex(),Px(),Ex();var gF=[/MallocStackLogging: can't turn off malloc stack logging because it was not enabled/i];function shouldIgnoreChunk(e){return gF.some(t=>t.test(e))}function chunkToString(e){return"string"==typeof e?e:Buffer.isBuffer(e)?e.toString("utf-8"):""}async function withFilteredStderrNoise(e){const t=process.stderr.write.bind(process.stderr);process.stderr.write=(e,...n)=>{const r=chunkToString(e);return!(!r||!shouldIgnoreChunk(r))||("function"==typeof n[0]?t(e,n[0]):t(e,n[0],n[1]))};try{return await e()}finally{process.stderr.write=t}}__name(shouldIgnoreChunk,"shouldIgnoreChunk"),__name(chunkToString,"chunkToString"),__name(withFilteredStderrNoise,"withFilteredStderrNoise"),Ex(),Px(),Ex(),Ex();var hF=__name(({summary:e,elapsedSeconds:n})=>{if(!e)return null;const r=t.relative(process.cwd(),e.storage),o=e.learningCount>0;return Xe.createElement(Ge,{flexDirection:"column",marginLeft:3},Xe.createElement(Ge,{marginBottom:1,flexDirection:"row"},Xe.createElement(Ve,{color:Rx.DIM},EI),Xe.createElement(Ge,{marginLeft:2},Xe.createElement(Ve,{color:Dx.TEXT},o?`Learned ${e.learningCount} ${1===e.learningCount?"preference":"preferences"}`:"Taste profile initialized",n?` in ${n} ${1===n?"second":"seconds"}`:""))),Xe.createElement(Ge,{flexDirection:"column",marginLeft:1},Xe.createElement(Ge,null,Xe.createElement(Ve,{color:Rx.DIM},it.pointerSmall," Taste stored in"," "),Xe.createElement(fI,{url:fileUrl(e.storage),text:r||".commandcode/taste/taste.md",color:Rx.CYAN})),Xe.createElement(Ge,null,Xe.createElement(Ve,{color:Rx.DIM},it.pointerSmall," Share your coding taste:"," ",Xe.createElement(Ve,{color:Rx.CYAN},"npx taste push --all")))),Xe.createElement(Ge,{marginTop:1,marginLeft:1},Xe.createElement(Ve,{color:Rx.DIM},o?"Command Code automatically uses & updates taste files as you code.":"Command Code will learn your preferences as you code.")))},"RepoLearnCompletionSummary");Ex();var fF=__name(({message:e})=>Xe.createElement(TO,null,e),"RepoLearnErrorPanel");Ex();var yF=__name(({done:e,error:t})=>t?Xe.createElement(Ge,{marginTop:1},Xe.createElement(SA,null,"Press ",Xe.createElement(wA,null,"Esc")," to exit")):e?Xe.createElement(Ge,{marginTop:1},Xe.createElement(SA,null,"Press ",Xe.createElement(wA,null,"Enter")," to continue")):Xe.createElement(Ge,{marginTop:1},Xe.createElement(SA,null,"Esc to cancel")),"RepoLearnFooter");Ex(),Px();var SF=__name(({insights:e,insightCount:t})=>0===e.length?null:Xe.createElement(Ge,{flexDirection:"column",marginTop:1,marginLeft:4},Xe.createElement(Ve,{color:Rx.CYAN},t>0?`Recent signals · ${t} ${1===t?"preference":"preferences"} learned`:"Recent signals"),e.map((e,t)=>Xe.createElement(Ve,{key:`${t}-${e}`,color:Rx.DIM},pF[t%pF.length]," ",truncateRepoLearnPanelText(e,14)))),"RepoLearnRollingInsights");Ex(),Px();var wF=__name(({status:e})=>"active"===e?Xe.createElement(Ge,null,Xe.createElement(Ve,{color:Rx.YELLOW},Xe.createElement(gt,{type:"dots"})),Xe.createElement(Ve,null," ")):"complete"===e?Xe.createElement(Ve,{color:_x.BG},it.square," "):Xe.createElement(Ve,{color:Rx.DIM},it.circle," "),"StepStatusIndicator");function getStepLabelColor(e,t){return"complete"===e?Rx.WHITE:t?Rx.YELLOW:Rx.DIM}__name(getStepLabelColor,"getStepLabelColor");var kF=__name(({steps:e,currentMessage:t})=>Xe.createElement(Ge,{flexDirection:"column",marginTop:1},e.map(e=>{const n="active"===e.status;return Xe.createElement(Ge,{key:e.id,flexDirection:"column",marginBottom:0,marginLeft:3},Xe.createElement(Ge,null,Xe.createElement(Ge,{marginRight:1},Xe.createElement(wF,{status:e.status})),Xe.createElement(Ve,{bold:n,color:getStepLabelColor(e.status,n)},e.label)),n&&t?Xe.createElement(Ge,{marginLeft:3},Xe.createElement(Ve,{color:Rx.DIM},truncateRepoLearnPanelText(t))):null)})),"RepoLearnStepList");Ex();var vF=__name(({isComplete:e,hasError:t})=>t?Xe.createElement(Ve,{color:Rx.DIM},"learning interrupted"):e?Xe.createElement(Ve,{color:Dx.TEXT},"learned your coding taste"):Xe.createElement(wI,null),"TastePillStatus"),CF=__name(({isComplete:e,hasError:t})=>Xe.createElement(Ge,{flexDirection:"column",marginTop:1,marginBottom:0},Xe.createElement(xI,null),Xe.createElement(Ge,{marginTop:0},Xe.createElement(Ve,{color:Rx.DIM},EI),Xe.createElement(Ge,{marginLeft:2},Xe.createElement(vF,{isComplete:e,hasError:t})))),"RepoLearnTastePill");Ex();var bF=__name(({text:e,repoName:t})=>{const n=useTerminalWidth(),r=rt(()=>aA(n),[n]);return Xe.createElement(Ge,{flexDirection:"column"},Xe.createElement(Ge,{flexDirection:"column",marginBottom:1},Xe.createElement(tI,null,r.trimEnd())),e?Xe.createElement(Ve,{color:Rx.WHITE},e):Xe.createElement(Xe.Fragment,null,Xe.createElement(Ve,{color:Rx.WHITE},"Learning your coding taste from"," ",Xe.createElement(Ve,{bold:!0,color:Rx.CYAN},t??"repository")),Xe.createElement(Ve,{color:Rx.DIM},"This may take a few minutes depending on repository size")))},"RepoLearnHeader");function useRepoLearnState(e){const t=e??XP,[n,r]=et(()=>createRepoLearnProjection({stepOrder:t})),o=tt(null),[s,a]=et(null),i=ot(()=>{o.current=Date.now()},[]),l=ot(e=>{r(t=>({...t,showLogin:e}))},[]);return nt(()=>{const e=__name(()=>{r(createRepoLearnProjection({stepOrder:t})),o.current=null,a(null)},"handleReset"),n=__name(e=>{r(t=>reduceRepoLearnEvent({state:t,event:e}))},"handleEvent"),s=__name(()=>{r(e=>completeRepoLearnProjection({state:e})),o.current&&a(Math.round((Date.now()-o.current)/1e3))},"handleComplete");return Yu.on("reset",e),Yu.on("new-event",n),Yu.on("learning-complete",s),()=>{Yu.off("reset",e),Yu.off("new-event",n),Yu.off("learning-complete",s)}},[t]),{steps:n.steps,currentMessage:n.currentMessage,insights:n.insights,insightCount:n.insightCount,summary:n.summary,done:n.done,error:n.error,showLogin:n.showLogin,setShowLogin:l,elapsedSeconds:s,markStarted:i}}function StatusPanel({error:e,done:t,summary:n,elapsedSeconds:r,insights:o,insightCount:s}){return e?Xe.createElement(fF,{message:e}):t?Xe.createElement(hF,{summary:n,elapsedSeconds:r}):Xe.createElement(SF,{insights:o,insightCount:s})}function RepoLearnProgressApp({runTask:e,onExit:t,stepOrder:n,headerText:r,repoName:o}){const s=useRepoLearnState(n),a=tt(!1);return nt(()=>{a.current||(a.current=!0,s.markStarted(),e().catch(()=>{}))},[e,s.markStarted]),Ye((e,n)=>{if(s.showLogin)return;const r=n.escape||""===e,o=n.return||"\n"===e||"\r"===e;r?t({published:!1,cancelled:!0}):(s.done||s.error)&&o&&t({published:!1,cancelled:!!s.error})}),s.showLogin?Xe.createElement(Ge,{flexDirection:"column"},Xe.createElement(bF,{text:r,repoName:o}),Xe.createElement(SN,{onComplete:(e,t)=>{s.setShowLogin(!1),e?Yu.resolveAuth():Yu.rejectAuth(t)},onCancel:()=>{s.setShowLogin(!1),Yu.rejectAuth("Login cancelled"),t({published:!1,cancelled:!0})}})):Xe.createElement(Ge,{flexDirection:"column"},Xe.createElement(bF,{text:r,repoName:o}),Xe.createElement(CF,{isComplete:s.done&&!s.error,hasError:Boolean(s.error)}),Xe.createElement(kF,{steps:s.steps,currentMessage:s.currentMessage}),Xe.createElement(StatusPanel,{error:s.error,done:s.done,summary:s.summary,elapsedSeconds:s.elapsedSeconds,insights:s.insights,insightCount:s.insightCount}),Xe.createElement(yF,{done:s.done,error:s.error}))}async function runRepoLearnProgress(e){return await applyStartupTheme(),withFilteredStderrNoise(()=>renderProgressUI(e))}function renderProgressUI(e){return new Promise((t,n)=>{Yu.reset();const r=new AbortController;let o,s,a=!1,i=!1;const l=__name(async()=>{try{o=await e.runTask(r.signal)}catch(e){r.signal.aborted||(s=e,Yu.addEvent({type:"error",message:toRepoLearnErrorMessage(e)}),Yu.markLearningComplete())}},"handleRunTask"),c=__name(({published:e,cancelled:l})=>{i||(i=!0,a=e,r.abort(),d.unmount(),Yu.reset(),s?n(s):t({result:o,published:a,cancelled:l}))},"handleExit"),d=Ke(Xe.createElement(RepoLearnProgressApp,{stepOrder:e.stepOrder,headerText:e.headerText,repoName:e.repoName,runTask:l,onExit:c}));d.waitUntilExit().catch(e=>{Yu.reset(),n(e)})})}function getAuthKey7(){return getCommandAuthKey({runtime:getCommandConfigRuntime(),path:getAuthFile(),env:process.env})}function logLearnSummary(e){const{summary:t}=e;console.log(lt.cyan("\n ─── Results ───\n")),console.log(` Source: ${t.sourceName}`),console.log(` Signals: ${t.signalCount} extracted`),console.log(` Context: ${t.contextLength} chars compiled`),console.log(` Taste dir: ${t.tasteDir}`),console.log("")}Ex(),Px(),__name(useRepoLearnState,"useRepoLearnState"),__name(StatusPanel,"StatusPanel"),__name(RepoLearnProgressApp,"RepoLearnProgressApp"),__name(runRepoLearnProgress,"runRepoLearnProgress"),__name(renderProgressUI,"renderProgressUI"),__name(getAuthKey7,"getAuthKey"),__name(logLearnSummary,"logLearnSummary");var EF=__name(e=>t=>{const n=parseInt(t,10);if(isNaN(n)||n<1)throw new Error(`${e} must be a positive integer`);return n},"parsePositiveInt");function createLearnCommand(){return new Le("learn").description("Learn coding taste from repository change history").argument("[source]","Local path, GitHub URL, or owner/repo (defaults to current directory)").option("--max-commits <number>","Maximum commits to analyze",EF("--max-commits"),200).addOption(new Ne("--max-signals <number>","Maximum diff signals to extract").default(50).argParser(EF("--max-signals")).hideHelp()).option("--branch <name>","Branch to analyze (defaults to main/master)").action(async(e,t)=>{try{await learnTaste({source:e??".",maxCommits:t.maxCommits??200,maxSignals:t.maxSignals??50,branch:t.branch})}catch(e){const t=e instanceof Error?e.message:String(e);console.error(`Error: ${t}`),process.exit(1)}})}async function learnTaste(e){const t=createNodeRuntime(),n=await isLocalTasteSource({runtime:t,source:e.source}),r=isTTY(),o=await resolveDisplayName({runtime:t,source:e.source}),s=!await getAuthKey7();if(s&&!r)return console.log(""),console.log(" Login required to learn taste."),console.log(""),console.log(` Run: ${getBinaryCommand()} login`),console.log(` Then: npx taste learn ${e.source}`),void console.log("");let a;const i=__name(()=>{a?.().finally(()=>process.exit(130))},"sigintHandler");process.once("SIGINT",i);let l=!1;try{const i=__name(async r=>{const{summary:o,resolved:i}=await runLearnPipeline({runtime:t,reporter:Yu,runLearn:__name(e=>runTasteLearningAgent({...e,createSession:createHarnessSession}),"runLearn"),source:e.source,maxCommits:e.maxCommits,maxSignals:e.maxSignals,branch:e.branch,isLocalSource:n,needsAuth:s,signal:r});return a=i?.cleanup,o},"runTask");if(r){const e=n?void 0:[...ZP];({cancelled:l}=await runRepoLearnProgress({runTask:i,repoName:o,stepOrder:e}))}else logLearnSummary({summary:await i((new AbortController).signal)})}finally{process.off("SIGINT",i),a&&await a()}r&&!l||process.exit(0),FI(),await F_({skipOnboarding:!0}),await shutdownAndExit(0)}__name(createLearnCommand,"createLearnCommand"),__name(learnTaste,"learnTaste"),Ex(),Px(),Ex(),Px();var TF=lt.bgGreen.black.bold(" TASTE ");function shortenPath(e){const t=process.env.HOME??process.env.USERPROFILE??"";return t&&e.startsWith(t)?`~${e.slice(t.length)}`:e}function exitWithError(e){console.error(`${lt.red("Error:")} ${e.replace(/^Error:\s*/i,"")}`),process.exit(1)}function formatUsageLine(e){const t=e.match(/^(\s*(?:Usage:|or:)?\s*)(cmd)(\s+.+?)(\s+\(.*\))?$/);return t?`${lt.dim(t[1])}${lt.green(t[2])}${lt.white(t[3]??"")}${t[4]?lt.dim(t[4]):""}`:lt.dim(e)}function exitWithUsage({message:e,usage:t}){console.error(`${lt.red("Error:")} ${e.replace(/^Error:\s*/i,"")}`);for(const e of t)console.error(formatUsageLine(e));process.exit(1)}function exitWithTasteCliValidation(e){e.valid||(e.usage&&exitWithUsage({message:e.message,usage:e.usage}),exitWithError(e.message))}__name(shortenPath,"shortenPath"),__name(exitWithError,"exitWithError"),__name(formatUsageLine,"formatUsageLine"),__name(exitWithUsage,"exitWithUsage"),__name(exitWithTasteCliValidation,"exitWithTasteCliValidation");var PF=__name((e,t)=>t,"linkFallback");function getPackageLink({owner:e,packageName:t}){const n=buildPackageUrl({owner:e,packageName:t});return bt(`commandcode.ai/${e}/${t}`,n,{fallback:PF})}function getProfileLink(e){const t=buildProfileUrl2(e);return bt(`commandcode.ai/${e}`,t,{fallback:PF})}function wrapLine(e,t=0){const n=(process.stdout.columns||80)-t;return Tt(e,n,{trim:!1})}function logMergeReviewTip(){console.log(lt.yellow("\nTip: Review merged learnings to ensure no conflicting rules."))}function handleResultErrors(e){for(const t of e){const e=normalizeTasteResultError(t);console.error(`${lt.red("Error:")} ${e}`)}process.exit(1)}async function flushAndExit(e){await Promise.race([shutdownTelemetry(),new Promise(e=>setTimeout(e,500))]).catch(()=>{}),process.exit(e)}function withErrorHandler(e){return async(...t)=>{try{await e(...t),await flushAndExit(0)}catch(e){const t=e instanceof Error?e.message:String(e);console.error(lt.red(`Error: ${t}`)),await flushAndExit(1)}}}function formatSingleIssue(e,t){const n=[`${e.line?lt.dim(` Line ${e.line}: `):" "}${t(e.message)}`];return e.suggestion&&n.push(lt.dim(` → ${e.suggestion}`)),n}function formatIssueGroup(e,t,n){return 0===e.length?[]:[n,...e.flatMap(e=>formatSingleIssue(e,t)),""]}function formatValidationIssues(e){const{result:t,verbose:n=!0}=e;if(0===t.issues.length){const e=t.summary.charAt(0),n=t.summary.substring(2);return`${lt.green(e)} ${lt.dim(n)}`}if(!n)return t.summary;const r=t.issues.filter(e=>"error"===e.severity),o=t.issues.filter(e=>"warning"===e.severity);return[r.length>0?lt.red(t.summary):lt.yellow(t.summary),"",...formatIssueGroup(r,lt.red,lt.bold(lt.red("Errors:"))),...formatIssueGroup(o,lt.yellow,lt.bold(lt.yellow("Warnings:")))].join("\n").trim()}__name(getPackageLink,"getPackageLink"),__name(getProfileLink,"getProfileLink"),__name(wrapLine,"wrapLine"),__name(logMergeReviewTip,"logMergeReviewTip"),__name(handleResultErrors,"handleResultErrors"),__name(flushAndExit,"flushAndExit"),__name(withErrorHandler,"withErrorHandler"),Ex(),__name(formatSingleIssue,"formatSingleIssue"),__name(formatIssueGroup,"formatIssueGroup"),__name(formatValidationIssues,"formatValidationIssues");var MF=createTasteLintService({runtime:createNodeRuntime(),formatValidationIssues:formatValidationIssues});function createLintCommand(){return new Le("lint").argument("[package]","Taste package name").option("-g, --global","Validate taste packages from global storage (~/.commandcode)").option("--all","Validate all taste packages").description(`Validate taste package format ${lt.dim("(structure, style, etc.)")}`).action(withErrorHandler(async(e,t)=>runLint({packageName:e,options:t})))}function validateLintOptions({packageName:e,options:t}){exitWithTasteCliValidation(validateTasteLintCliOptions({packageName:e,options:t}))}function logLintResults(e){for(const t of e.filesLinted)console.log(t.formatted);e.filesLinted.length>1&&logLintSummary(e),e.success||process.exit(1)}function logLintSummary({filesLinted:e,totalErrors:t,totalWarnings:n}){if(console.log(""),0===t&&0===n)return void console.log(`${lt.green(it.tick)} All ${lt.green(e.length)} taste files are valid`);const r=[];t>0&&r.push(lt.red(`${t} error${t>1?"s":""}`)),n>0&&r.push(lt.yellow(`${n} warning${n>1?"s":""}`)),console.log(`Summary: ${r.join(", ")} across ${e.length} files`)}async function runLint({packageName:e,options:t}){console.log(""),validateLintOptions({packageName:e,options:t});const n=await MF.lint({packages:e?[e]:[],target:t.global?"local-global":"local-project"});if(n.errors.length>0){for(const e of n.errors)console.error(lt.red(`Error: ${e.error}`));process.exit(1)}logLintResults(n)}__name(createLintCommand,"createLintCommand"),__name(validateLintOptions,"validateLintOptions"),__name(logLintResults,"logLintResults"),__name(logLintSummary,"logLintSummary"),__name(runLint,"runLint"),Ex(),Px();var xF={};__export(xF,{downloadPackage:()=>downloadPackage,downloadRemotePackage:()=>downloadRemotePackage,getAllPackages:()=>getAllPackages,getPackage:()=>getPackage,listPackages:()=>listPackages,writePackage:()=>writePackage,writePackages:()=>writePackages}),Ex(),Px();var IF=createNodeRuntime();function getAuthKey8(){return getCommandAuthKey({runtime:getCommandConfigRuntime(),path:getAuthFile(),env:process.env})}async function requireAuthKey(){const e=await getAuthKey8();if(!e)throw new Error("No API key found. Please authenticate with: cmd login");return e}function storage(){return createTasteRemoteStorage({transport:createNodeTransport({baseUrl:getApiBaseUrl()}),requireAuthKey:requireAuthKey,getAuthKey:getAuthKey8,getAuthenticatedEntity:__name(()=>getAuthenticatedEntity({client:createApiClient({baseUrl:getApiBaseUrl()})}),"getAuthenticatedEntity"),trackError:__name(({error:e,label:t,heading:n,context:r})=>trackError({error:sanitizeErrorForTelemetry({error:e,label:t}),context:{component:co.TASTE_REMOTE_STORAGE,heading:n,...r??{}}}),"trackError"),onWarn:__name(e=>console.warn(e),"onWarn"),logDebug:__name(e=>dlog(e),"logDebug")})}function getAllPackages(){return storage().getAllPackages()}function getPackage(e){return storage().getPackage(e)}function downloadPackage(e){return storage().downloadPackage(e)}function downloadRemotePackage(e){return storage().downloadRemotePackage(e)}function writePackage(e){return storage().writePackage(e)}async function writePackages(e){const{packages:t,projectName:n,owner:r,isPublic:o,overwrite:s}=e,{rootContent:a,categoryContents:i}=await readProjectUploadFiles({runtime:IF,packages:t});return storage().writePackages({projectName:n,owner:r,isPublic:o,overwrite:s,rootContent:a,categoryContents:i,packageCount:t.length})}function listPackages(){return storage().listPackages()}__name(getAuthKey8,"getAuthKey"),__name(requireAuthKey,"requireAuthKey"),__name(storage,"storage"),__name(getAllPackages,"getAllPackages"),__name(getPackage,"getPackage"),__name(downloadPackage,"downloadPackage"),__name(downloadRemotePackage,"downloadRemotePackage"),__name(writePackage,"writePackage"),__name(writePackages,"writePackages"),__name(listPackages,"listPackages");var AF=createNodeRuntime(),RF=createTasteLocalStorage({runtime:AF,target:"local-project"}),OF=createTasteLocalStorage({runtime:AF,target:"local-global"});function list(e){return createTasteListService({runtime:AF,localProject:RF,localGlobal:OF,remote:xF}).list(e)}function getUserName(){return getCommandAuthUserName({runtime:getCommandConfigRuntime(),path:getAuthFile()})}function createListCommand(){return new Le("list").alias("ls").option("-g, --global","List global packages").addOption(new Ne("-l, --local","Use local server").hideHelp()).option("--remote","List remote packages").addOption(new Ne("--staging","Use staging environment").hideHelp()).description(`List available packages ${lt.dim("(project, global, or remote)")}`).action(withErrorHandler(async e=>runList({options:e})))}function formatPackageLine(e){return` ${lt.white(e.name)}${e.publicBadge?lt.green(e.publicBadge):""}${e.starsBadge?lt.yellow(e.starsBadge):""}${e.downloadsBadge?lt.gray(e.downloadsBadge):""}${e.padding}${lt.dim.gray(e.statsLabel)}`}function validateListOptions(e){exitWithTasteCliValidation(validateTasteListCliOptions(e))}async function fetchPackages({options:e}){const t=resolveTasteListStorage(e),n=e.remote?kt(`Fetching ${t.name} packages`).start():null,r=await list({location:t.location});return n?.stop(),{packages:r,storage:t}}async function getStorageLabel({options:e,fallback:t}){if(!e.remote)return t;const n=await getUserName();return n?getProfileLink(n):t}function printPackageTable({packages:e,subtitle:t}){console.log(`\n${TF} Packages`),console.log(`${lt.gray("⎿")} ${lt.dim(t)}\n`);const n=projectTasteListView({packages:e,symbols:{star:it.star,arrowDown:it.arrowDown}});for(const e of n.rows)console.log(formatPackageLine(e));console.log(lt.dim(`\n${n.totalLabel}\n`))}async function runList({options:e}){console.log(""),validateListOptions(e);const{packages:t,storage:n}=await fetchPackages({options:e});0!==t.length?printPackageTable({packages:t,subtitle:await getStorageLabel({options:e,fallback:n.subtitle})}):console.log(lt.yellow(`No taste packages found in ${n.name}`))}__name(list,"list"),__name(getUserName,"getUserName"),__name(createListCommand,"createListCommand"),__name(formatPackageLine,"formatPackageLine"),__name(validateListOptions,"validateListOptions"),__name(fetchPackages,"fetchPackages"),__name(getStorageLabel,"getStorageLabel"),__name(printPackageTable,"printPackageTable"),__name(runList,"runList"),Ex(),Px(),Ex(),Px();var DF=createNodeRuntime(),LF=createTasteLocalStorage({runtime:DF,target:"local-project"}),NF=createTasteLocalStorage({runtime:DF,target:"local-global"});async function open7(e){try{const t=await createTasteOpenService({runtime:DF,localProject:LF,localGlobal:NF,remote:xF}).resolveOpen(e);return t.success?(await Ct([{file:t.filePath,line:t.lineNumber}]),t):t}catch(e){return classifyTasteOpenError({error:e,platform:be.platform})}}function createOpenCommand(){return new Le("open").argument("[package]","Taste package name, or owner/package to open in browser").option("-g, --global","Open taste package from global storage (~/.commandcode)").description(`Open a taste package in your editor ${lt.dim("(use owner/package to open in browser)")}`).action(withErrorHandler(async(e,t)=>runOpen({packageName:e,options:t})))}function validateOpenOptions(e){exitWithTasteCliValidation(validateTasteOpenCliOptions(e))}async function runOpen({packageName:e,options:t}){console.log(""),validateOpenOptions(e);const n=parseOwnerPackage(e);n?await openInBrowser(n):await openInEditor2({packageName:e,options:t})}async function openInBrowser(e){const t=`https://commandcode.ai/${e.owner}/${e.packageName}`;await wt(t);const n=getPackageLink({owner:e.owner,packageName:e.packageName});console.log(`${lt.green(it.tick)} Opened ${n} in browser`)}async function openInEditor2({packageName:e,options:t}){const n=resolveTasteOpenTarget(t),r=await open7({package:e,target:n});r.success||exitWithError(r.error??"Unknown error"),console.log(`${lt.green(it.tick)} Opened ${lt.green(`'${e}'`)} taste package from ${t.global?"global":"project"}`)}__name(open7,"open"),__name(createOpenCommand,"createOpenCommand"),__name(validateOpenOptions,"validateOpenOptions"),__name(runOpen,"runOpen"),__name(openInBrowser,"openInBrowser"),__name(openInEditor2,"openInEditor"),Ex(),Px(),Ex(),Px(),Ex();var $F=null,_F=!1;function setActiveSpinner(e){$F=e}function stopActiveSpinner(e){$F&&($F.stop(e),$F=null)}function setPrompted(e){_F=e}function wasPrompted(){return _F}function logResult(e){if(wasPrompted())return _e.outro(e),void setPrompted(!1);console.log(e)}function buildPullMessage(e){const{summary:t,sourceName:n}=e,r=wasPrompted()?"":`${it.tick} `,o=t.detailPath?lt.dim(`\n ${shortenPath(t.detailPath)}`):"";return"single-replaced"===t.variant?`${lt.green(r)}Replaced ${lt.green(`'${t.packageName}'`)} taste package in project`+o:"single-merged"===t.variant?`${lt.green(r)}Pulled ${lt.green(`'${t.packageName}'`)} taste package from ${n} ${lt.gray(`(${t.mergeParts.join(", ")})`)}`+o:`${lt.green(r)}Pulled ${lt.green(`'${t.packageName}'`)} taste package from ${n}`+o}function logPullSummary(e){const{breakdown:t,sourceName:n}=e,r=[];if(t.succeeded.length>0&&r.push(wrapLine(`${lt.green("Pulled")} (${t.succeeded.length}) ${t.succeeded.join(", ")}`,wasPrompted()?4:0)),t.overwritten.length>0&&r.push(wrapLine(`${lt.yellow("Overwritten")} (${t.overwritten.length}) ${t.overwritten.join(", ")}`,wasPrompted()?4:0)),t.skipped.length>0&&r.push(wrapLine(`${lt.dim("Skipped")} (${t.skipped.length}) ${lt.dim(t.skipped.join(", "))}`,wasPrompted()?4:0)),wasPrompted())return r.length>0&&_e.log.message(r.join("\n")),_e.outro(`${t.totalLabel} from ${n}`),void setPrompted(!1);console.log(`${lt.green(it.tick)} ${t.totalLabel} from ${n}`),r.length>0&&console.log(r.join("\n"))}function logPullSuccess(e){const{result:t,sourceName:n,options:r}=e,o=projectTastePullSummary({result:t,options:r});if("multi"===o.variant)return logPullSummary({breakdown:o.breakdown,sourceName:n}),void(o.showTip&&logMergeReviewTip());"single-skipped"!==o.variant?"none"!==o.variant&&(logResult(buildPullMessage({summary:o,sourceName:n})),o.showTip&&logMergeReviewTip()):logResult(lt.yellow(o.message))}function beginPrompt(e,t){stopActiveSpinner(),_e.intro(lt.dim(e)),t&&_e.log.message(lt.dim(t)),setPrompted(!0)}function handleCancel(e){_e.isCancel(e)&&(_e.cancel("Operation cancelled"),process.exit(0))}function startStrategySpinner(e){if("skip"===e){const e=_e.spinner();return e.start("Skipping"),void e.stop("Skipped")}const t="merge"===e?"Merging":"Overwriting",n="merge"===e?"Merged":"Overwritten",r=_e.spinner();r.start(t),setActiveSpinner({stop:__name(e=>r.stop(e??n),"stop"),cancel:__name(e=>r.cancel(e),"cancel"),error:__name(e=>r.error(e),"error")})}async function runConflictPrompt(e){if(!process.stdout.isTTY||!process.stdin.isTTY)return stopActiveSpinner(e.existsMessage),setPrompted(!0),_e.log.warn(e.nonInteractive.warning),e.nonInteractive.strategy;if(beginPrompt(`${e.title.prefix}${lt.green(e.title.emphasis)}${e.title.suffix}`,e.existsMessage),_e.log.message(`${e.context.firstLine}\n${e.context.secondLine}${e.context.secondLineNote?` ${lt.dim(e.context.secondLineNote)}`:""}`),e.reviewLink){const t=bt(e.reviewLink.text,e.reviewLink.url,{fallback:__name((e,t)=>t,"fallback")});_e.log.info(`${e.reviewLink.prefix}${lt.cyan(t)} ${lt.dim(e.reviewLink.note)}`)}const t=await _e.select({message:e.selectMessage,options:e.options.map(e=>({value:e.value,label:e.label,hint:e.hint})),initialValue:e.initialValue});handleCancel(t);const n=t;return startStrategySpinner(n),n}async function promptMergeStrategy(e){const{packageName:t,owner:n,localPkg:r,remoteLearningsCount:o}=e;return runConflictPrompt(buildTastePullConflictPrompt({packageName:t,owner:n,localLearningsCount:r.learnings.length,remoteLearningsCount:o}))}async function promptGlobalPushStrategy(e){const{packageName:t,localLearningsCount:n,globalPkg:r}=e;return runConflictPrompt(buildTasteGlobalPushConflictPrompt({packageName:t,localLearningsCount:n,globalLearningsCount:r.learnings.length}))}async function promptGlobalPullStrategy(e){const{packageName:t,localPkg:n,globalLearningsCount:r}=e;return runConflictPrompt(buildTasteGlobalPullConflictPrompt({packageName:t,localLearningsCount:n.learnings.length,globalLearningsCount:r}))}async function promptTypeMismatchStrategy(e){const{packageName:t,owner:n,localLearningsCount:r,remoteLearningsCount:o}=e;return runConflictPrompt(buildTasteTypeMismatchConflictPrompt({packageName:t,owner:n,localLearningsCount:r,remoteLearningsCount:o}))}async function promptSameTypeStrategy(e){const{packageName:t,owner:n,localLearningsCount:r,remoteLearningsCount:o}=e;return runConflictPrompt(buildTasteSameTypeConflictPrompt({packageName:t,owner:n,localLearningsCount:r,remoteLearningsCount:o}))}__name(setActiveSpinner,"setActiveSpinner"),__name(stopActiveSpinner,"stopActiveSpinner"),__name(setPrompted,"setPrompted"),__name(wasPrompted,"wasPrompted"),__name(logResult,"logResult"),__name(buildPullMessage,"buildPullMessage"),__name(logPullSummary,"logPullSummary"),__name(logPullSuccess,"logPullSuccess"),Ex(),Px(),Ex(),Px(),__name(beginPrompt,"beginPrompt"),__name(handleCancel,"handleCancel"),__name(startStrategySpinner,"startStrategySpinner"),__name(runConflictPrompt,"runConflictPrompt"),__name(promptMergeStrategy,"promptMergeStrategy"),__name(promptGlobalPushStrategy,"promptGlobalPushStrategy"),__name(promptGlobalPullStrategy,"promptGlobalPullStrategy"),__name(promptTypeMismatchStrategy,"promptTypeMismatchStrategy"),__name(promptSameTypeStrategy,"promptSameTypeStrategy");var FF=createNodeRuntime(),UF=createTasteLocalStorage({runtime:FF,target:"local-project"}),jF=createTasteLocalStorage({runtime:FF,target:"local-global"});function service(){return createTastePullService({localProject:UF,localGlobal:jF,remote:xF,getDestinationPath:__name(e=>resolveTastePackageDestinationPathForRuntime({runtime:FF,...e}),"getDestinationPath"),promptGlobalPullStrategy:promptGlobalPullStrategy,promptMergeStrategy:promptMergeStrategy,validation:{formatValidationIssues:formatValidationIssues,onWarning:__name(e=>console.warn(e),"onWarning")}})}function pull(e){return service().pull(e)}function pullRemote(e){return service().pullRemote(e)}function createPullCommand(){return new Le("pull").argument("[package]","Taste package name, or owner/package to pull from remote").option("-g, --global","Pull taste package from global storage (~/.commandcode)").addOption(new Ne("--local","Use local server").hideHelp()).option("--remote","Pull taste package from commandcode.ai remote").option("--all","Pull all taste packages from global").option("--overwrite","Replace local package without prompting").option("--skip","Keep local package, skip conflicting pull").option("--merge","Auto-merge conflicting learnings without prompting").addOption(new Ne("--staging","Use staging environment").hideHelp()).description(`Pull taste packages from remote or global into the project ${lt.dim("(prompts on conflicts)")}`).action(withErrorHandler(async(e,t)=>{setPrompted(!1);const n=resolveRemoteDefault(t),{result:r,owner:o}=await runPull({packageName:e,options:n});r.success||handleResultErrors(r.errors),logPullSuccess({result:r,sourceName:n.remote?o??"remote":"global",options:n})}))}async function runPull(e){const{packageName:t,options:n}=e;console.log("");const r=planTastePullCommand({packageName:t,options:n});if(!r.valid)throw exitWithTasteCliValidation(r.validation),new Error("unreachable");return"remote-single"===r.route.type?pullRemoteSingle({options:r.options,route:r.route}):pullGlobal({options:r.options,route:r.route})}async function pullRemoteSingle(e){setActiveSpinner(kt("Pulling taste package").start());const t=await pullRemote({owner:e.route.owner,packageName:e.route.packageName,overwrite:e.options.overwrite,strategy:e.route.strategy});return stopActiveSpinner(),{result:t,owner:e.route.owner}}async function pullGlobal(e){setActiveSpinner(kt("Pulling taste package").start());const t=await pull({packages:[...e.route.packages],source:"local-global",overwrite:e.options.overwrite,strategy:e.route.strategy});return stopActiveSpinner(),{result:t}}function logResult2(e){if(wasPrompted())return _e.outro(e),void setPrompted(!1);console.log(e)}function formatAllLocation(t){return"taste-dir"===t.kind?shortenPath(e.dirname(e.dirname(t.filePath))):t.filePath}function formatDetailPath(e){return e?lt.dim(`\n ${shortenPath(e)}`):""}function renderPushSummary(e){const t=wasPrompted()?"":`${it.tick} `;if("none"!==e.variant)if("all-skipped"!==e.variant)if("all-pushed-remote"!==e.variant){if("all-replaced"===e.variant){const n=e.replacedLabel?` ${lt.gray(`(${e.replacedLabel})`)}`:"";return void logResult2(`${lt.green(t)}Replaced ${e.packageCountLabel} in ${formatAllLocation(e.location)}${n}`)}if("all-pushed"!==e.variant){if("all-merged"===e.variant){const n=e.mergeParts.length>0?` ${lt.gray(`(${e.mergeParts.join(", ")})`)}`:"";return void logResult2(`${lt.green(t)}Pushed ${e.packageCountLabel} to ${formatAllLocation(e.location)}${n}`)}"single-replaced"!==e.variant?"single-merged"!==e.variant?"single-pushed"!==e.variant?"multi"!==e.variant||logResult2(wrapLine(`${lt.green(t)}Pushed ${lt.green(e.count)} taste packages ${lt.green(`(${e.packages.join(", ")})`)} to ${e.targetName}`)):logResult2(`${lt.green(t)}Pushed ${lt.green(`'${e.packageName}'`)} taste package to ${e.locationLabel}`+formatDetailPath(e.detailPath)):logResult2(`${lt.green(t)}Pushed ${lt.green(`'${e.packageName}'`)} taste package to ${e.locationLabel} ${lt.gray(`(${e.mergeParts.join(", ")})`)}`+formatDetailPath(e.detailPath)):logResult2(`${lt.green(t)}Replaced ${lt.green(`'${e.packageName}'`)} taste package in ${e.locationLabel}`+formatDetailPath(e.detailPath))}else logResult2(`${lt.green(t)}Pushed ${e.packageCountLabel} to ${formatAllLocation(e.location)}`)}else logResult2(`${lt.green(t)}Pushed ${e.packageCountLabel} to remote`);else logResult2(`${lt.green(t)}Skipped ${e.packageCountLabel}`)}function logPushUrls(e){for(const t of collectTastePushRemoteLinks(e))console.log(lt.gray(` ${getPackageLink(t)}`))}function logConflictSummary(e){const t=projectTastePushOutcome(e.result),n=[];t.succeeded.length>0&&n.push(wrapLine(`${lt.green("Merged")} (${t.succeeded.length}) ${t.succeeded.join(", ")}`,4)),t.overwritten.length>0&&n.push(wrapLine(`${lt.yellow("Overwritten")} (${t.overwritten.length}) ${t.overwritten.join(", ")}`,4)),t.skipped.length>0&&n.push(wrapLine(`${lt.dim("Skipped")} (${t.skipped.length}) ${lt.dim(t.skipped.join(", "))}`,4)),n.length>0&&_e.log.message(n.join("\n")),_e.outro(t.totalLabel)}function logPushBreakdown(e){const t=projectTastePushOutcome(e);if(0===t.skipped.length&&0===t.overwritten.length)return;const n=[];t.succeeded.length>0&&n.push(wrapLine(`${lt.green("Pushed")} (${t.succeeded.length}) ${t.succeeded.join(", ")}`)),t.overwritten.length>0&&n.push(wrapLine(`${lt.yellow("Overwritten")} (${t.overwritten.length}) ${t.overwritten.join(", ")}`)),t.skipped.length>0&&n.push(wrapLine(`${lt.dim("Skipped")} (${t.skipped.length}) ${lt.dim(t.skipped.join(", "))}`)),n.length>0&&console.log(n.join("\n"))}function logPushSuccess(e){const{result:t,options:n}=e;if(wasPrompted())return setPrompted(!1),logConflictSummary({result:t}),void logPushUrls({result:t,options:n});const r=projectTastePushSummary({result:t,options:n});renderPushSummary(r),n.all&&logPushBreakdown(t),logPushUrls({result:t,options:n}),r.showTip&&logMergeReviewTip()}__name(service,"service"),__name(pull,"pull"),__name(pullRemote,"pullRemote"),__name(createPullCommand,"createPullCommand"),__name(runPull,"runPull"),__name(pullRemoteSingle,"pullRemoteSingle"),__name(pullGlobal,"pullGlobal"),Ex(),Px(),Ex(),Px(),__name(logResult2,"logResult"),__name(formatAllLocation,"formatAllLocation"),__name(formatDetailPath,"formatDetailPath"),__name(renderPushSummary,"renderPushSummary"),__name(logPushUrls,"logPushUrls"),__name(logConflictSummary,"logConflictSummary"),__name(logPushBreakdown,"logPushBreakdown"),__name(logPushSuccess,"logPushSuccess"),Ex(),Px();var BF=createNodeRuntime(),WF=createTasteLocalStorage({runtime:BF,target:"local-project"}),HF=createTasteLocalStorage({runtime:BF,target:"local-global"});async function getUserOwner(){try{const e=await getAuthenticatedEntity({client:createApiClient({baseUrl:getApiBaseUrl()})});if(e.success&&e.user?.userName)return e.user.userName}catch{}}function service2(){return createTastePushService({localProject:WF,localGlobal:HF,remote:xF,getUserOwner:getUserOwner,getProjectName:__name(()=>e.basename(process.cwd()),"getProjectName"),getDestinationPath:__name(e=>resolveTastePackageDestinationPathForRuntime({runtime:BF,...e}),"getDestinationPath"),promptGlobalPushStrategy:promptGlobalPushStrategy,promptTypeMismatchStrategy:promptTypeMismatchStrategy,promptSameTypeStrategy:promptSameTypeStrategy,validation:{formatValidationIssues:formatValidationIssues,onWarning:__name(e=>console.warn(e),"onWarning")}})}function push(e){return service2().push(e)}function pushRemote(e){return service2().pushRemote(e)}async function promptOwnerSelection(e){const{userName:t,orgs:n}=e;if(0===n.length)return t;const{options:r,initialValue:o}=buildTasteOwnerSelectOptions({userName:t,orgs:n}),s=await _e.select({message:"Owner",options:[...r],initialValue:o});return _e.isCancel(s)&&(_e.cancel("Operation cancelled"),process.exit(0)),s}__name(getUserOwner,"getUserOwner"),__name(service2,"service"),__name(push,"push"),__name(pushRemote,"pushRemote"),Ex(),Px(),__name(promptOwnerSelection,"promptOwnerSelection");var GF=createNodeRuntime(),VF=createTasteLocalStorage({runtime:GF,target:"local-project"});function loadUserNamespaces(){return fetchUserNamespaces({client:createApiClient({baseUrl:getApiBaseUrl()})})}function createPushCommand(){return new Le("push").description(`Push taste packages to remote ${lt.dim("(commandcode.ai)")} or global ${lt.dim("(~/.commandcode)")}`).argument("[package]","Taste package name to push (omit with --all)").option("--all","Push all taste packages to remote").option("--remote","Push to commandcode.ai remote (default)").option("-g, --global","Push to local global storage (~/.commandcode)").addOption(new Ne("--local","Use local server").hideHelp()).option("--public","Make package publicly discoverable on commandcode.ai").option("--private","Make package private (not publicly discoverable)").option("--owner <owner>","Push under a specific owner or organization").option("--overwrite","Replace existing package without prompting").option("--skip","Keep existing package, skip conflicting push").option("--merge","Auto-merge conflicting learnings without prompting").addOption(new Ne("--staging","Push to staging environment").hideHelp()).action(withErrorHandler(async(e,t)=>{setPrompted(!1);const n=resolveRemoteDefault(t),r=await runPush({packageName:e,options:n});r.success||handleResultErrors(r.errors),logPushSuccess({result:r,options:n})}))}async function validateOwnerAccess(e){const t=await checkTastePushOwnerAccess({owner:e,loadNamespaces:loadUserNamespaces});"unavailable"!==t.type?"denied"===t.type&&exitWithError(`No push access to '${e}'. Available: ${t.availableOwners.join(", ")}`):dlog(`[Auth] validateOwnerAccess: namespace service unavailable, skipping — ${t.error instanceof Error?t.error.message:String(t.error)}`)}async function resolveOwnerForPush(e){let t;return resolveTastePushOwner({ownerPlan:e,validateOwnerAccess:validateOwnerAccess,hasLocalPackage:__name(async e=>(await VF.getAllPackages()).some(t=>t.category===e),"hasLocalPackage"),loadNamespaces:loadUserNamespaces,prompt:{onPromptStart:__name(({packageName:e})=>{_e.intro(lt.dim(`pushing ${e}`)),setPrompted(!0),t=_e.spinner(),t.start("Resolving")},"onPromptStart"),onPackageMissing:__name(({packageName:e})=>{t?.error("Failed"),_e.outro(lt.red(`Taste package '${e}' not found in project`)),process.exit(1)},"onPackageMissing"),onNamespacesLoaded:__name(({willPrompt:e})=>{t?.stop(e?"Select owner to push to":"")},"onNamespacesLoaded"),selectOwner:promptOwnerSelection}})}async function runPush(e){const{packageName:t,options:n}=e;console.log("");const r=planTastePushCommand({packageName:t,options:n});if(!r.valid)throw exitWithTasteCliValidation(r.validation),new Error("unreachable");return"remote-all"===r.route.type?pushRemoteAll({options:r.options,route:r.route}):"remote-single"===r.route.type?pushRemoteSingle({options:r.options,route:r.route}):pushGlobal({options:r.options,route:r.route})}async function pushRemoteAll(t){t.route.owner&&await validateOwnerAccess(t.route.owner);const n=formatTastePackageCount((await VF.getAllPackages()).length),r=e.basename(process.cwd()),o=resolveTasteStrategyLabel({strategy:t.route.strategy,isRemote:!0});console.log(lt.dim(` Pushing ${n} to ${r} (remote)${o}`)),console.log(""),setActiveSpinner(kt("Pushing taste packages").start());const s=await push({packages:[],target:"remote-project",overwrite:t.options.overwrite,isPublic:t.route.isPublic,strategy:t.route.strategy,owner:t.route.owner});return stopActiveSpinner(),s}async function pushRemoteSingle(e){const{owner:t,packageName:n}=await resolveOwnerForPush(e.route.ownerPlan);startPushSpinner({owner:t,pkgName:n});const r=await pushRemote({owner:t,packageName:n,overwrite:e.options.overwrite,isPublic:e.route.isPublic,strategy:e.route.strategy});return stopActiveSpinner(`Pushed to ${t}/${n}`),r}function startPushSpinner(e){const{owner:t,pkgName:n}=e;if(wasPrompted()){const e=_e.spinner();return e.start(`Pushing to ${t}/${n}`),void setActiveSpinner(e)}setActiveSpinner(kt("Pushing taste package").start())}async function pushGlobal(e){const t=await VF.getAllPackages(),n=formatTastePackageCount(e.route.packages.length>0?e.route.packages.length:t.length),r=shortenPath(getTastePathForRuntime({runtime:GF,target:"local-global"})),o=resolveTasteStrategyLabel({strategy:e.route.strategy});console.log(lt.dim(` Pushing ${n} to ${r}${o}`)),console.log(""),setActiveSpinner(kt("Pushing taste packages").start());const s=await push({packages:[...e.route.packages],target:"local-global",overwrite:e.options.overwrite,strategy:e.route.strategy});return stopActiveSpinner(),s}function scopeOf(e){return e.user?"global":"project"}function whereFor(e){return"project"===e?" for this project":" for all your projects"}async function applyTasteLearning(e){await setTasteLearning({tasteLearning:e.enabled,scope:e.scope,..."project"===e.scope?{projectPath:process.cwd()}:{}})}function reportEnabled(e){console.log(`${lt.green(it.tick)} Taste learning is on${whereFor(e)}. New preferences are saved and reused across sessions.`)}function reportDisabled(e){const t=getBinaryCommand();console.log(`${lt.green(it.tick)} Taste learning is off${whereFor(e)}. Turn it back on with ${lt.cyan(`${t} taste enable`)}.`)}function createEnableCommand(){return new Le("enable").option("-u, --user","Apply at the user level (all your projects)").description("Turn on taste learning (save preferences across sessions)").action(withErrorHandler(async e=>{const t=scopeOf(e);await applyTasteLearning({enabled:!0,scope:t}),console.log(""),reportEnabled(t)}))}function createDisableCommand(){return new Le("disable").option("-u, --user","Apply at the user level (all your projects)").description("Turn off taste learning (stop saving preferences)").action(withErrorHandler(async e=>{const t=scopeOf(e);await applyTasteLearning({enabled:!1,scope:t}),console.log(""),reportDisabled(t)}))}function createTasteCommand(){const e=new Le("taste");return e.description("Manage taste learning packages").allowUnknownOption().allowExcessArguments(),e.addCommand(createEnableCommand()),e.addCommand(createDisableCommand()),e.addCommand(createPushCommand()),e.addCommand(createPullCommand()),e.addCommand(createListCommand()),e.addCommand(createLintCommand()),e.addCommand(createOpenCommand()),isExperimentalEnabled()&&e.addCommand(createLearnCommand()),e}__name(loadUserNamespaces,"loadUserNamespaces"),__name(createPushCommand,"createPushCommand"),__name(validateOwnerAccess,"validateOwnerAccess"),__name(resolveOwnerForPush,"resolveOwnerForPush"),__name(runPush,"runPush"),__name(pushRemoteAll,"pushRemoteAll"),__name(pushRemoteSingle,"pushRemoteSingle"),__name(startPushSpinner,"startPushSpinner"),__name(pushGlobal,"pushGlobal"),Ex(),Px(),__name(scopeOf,"scopeOf"),__name(whereFor,"whereFor"),__name(applyTasteLearning,"applyTasteLearning"),__name(reportEnabled,"reportEnabled"),__name(reportDisabled,"reportDisabled"),__name(createEnableCommand,"createEnableCommand"),__name(createDisableCommand,"createDisableCommand"),__name(createTasteCommand,"createTasteCommand"),Ex(),Px();var zF=`${getBinaryCommand()}`;function formatVersion(e,t,n=!1){const r=n?yt.bold(yt.green(t)):yt.white(t);return`${yt.dim(e)} ${r}`}function showVersionDetails(e){for(const t of e.versionLines)console.log(formatVersion(t.label,t.version,t.highlight));console.log("");for(const t of e.detailLines)console.log(t.replace(`${zF} update`,yt.bold(yt.green(`${zF} update`))))}function showUpdateSuccessHint(e){for(const t of e.detailLines)console.log(yt.dim(t.replace(zF,yt.cyan(zF))))}function showManualUpdateHint(e){const[t,n]=e.manualUpdateLines;t&&console.log(yt.dim(t)),n&&console.log(yt.cyan(n))}function showCheckFailure(e){for(const t of e.detailLines)console.log(yt.dim(t))}function renderUpdateEvent(e,t){if("type"in e)"updating"===e.type&&(t.text=e.text.replace("→",it.arrowRight));else{if("check-failed"===e.kind)return t.fail(e.outcome.spinnerMessage),void showCheckFailure(e.outcome);if("up-to-date"!==e.kind)return"update-available"===e.kind?(t.stop(),console.log(""),console.log(`${yt.green(it.tick)} ${e.outcome.heading}`),void showVersionDetails(e.outcome)):"update-failed"===e.kind?(t.fail(e.outcome.spinnerMessage),void showManualUpdateHint(e.outcome)):"updated"===e.kind?(t.succeed(e.outcome.spinnerMessage),void showUpdateSuccessHint(e.outcome)):void 0;t.succeed(e.outcome.spinnerMessage)}}async function updateAction2(e){const t=kt("Checking for updates...").start(),n=await runCliUpdateCommand({checkOnly:e.checkOnly,host:t_,copy:{binCommand:zF,updateCommand:"npm i -g command-code"},emit:__name(e=>renderUpdateEvent(e,t),"emit")});if("update-failed"===n.kind){const{failureReason:e}=n.outcome.telemetry;trackError({error:sanitizeErrorForTelemetry({error:new Error(e?`Update failed: ${e}`:"Update failed"),label:"cli_update_failed"}),context:{component:co.UPDATE_COMMAND,heading:n.outcome.telemetry.heading,"update.current_version":n.outcome.telemetry.currentVersion,"update.target_version":n.outcome.telemetry.targetVersion,...e&&{"update.failure_reason":e}}}),await shutdownTelemetry(),process.exit(1)}}__name(formatVersion,"formatVersion"),__name(showVersionDetails,"showVersionDetails"),__name(showUpdateSuccessHint,"showUpdateSuccessHint"),__name(showManualUpdateHint,"showManualUpdateHint"),__name(showCheckFailure,"showCheckFailure"),__name(renderUpdateEvent,"renderUpdateEvent"),__name(updateAction2,"updateAction");var qF=new Le("update").description("Update Command Code to the latest version").option("--check-only","Check for updates without installing").allowUnknownOption().allowExcessArguments().action(updateAction2);function getAuthKey9(){return getCommandAuthKey({runtime:getCommandConfigRuntime(),path:getAuthFile(),env:process.env})}Ex(),Px(),__name(getAuthKey9,"getAuthKey");var KF=__name((e,t)=>`${it.info} ${e}: ${yt.cyan(t)}`,"formatInfoLine"),YF=__name(e=>yt.bold(`${e}:`),"formatSectionHeader"),JF=__name(e=>yt.red(e),"formatError"),QF=__name(e=>e instanceof Error?e.message:"Unknown error","formatErrorMessage"),XF=__name((e,t)=>["",YF(e),...t.map(e=>KF(e.label,e.value))],"buildSection"),ZF=__name(e=>XF("User Information",projectWhoamiUserRows(e)),"buildUserOutput"),eU=__name(e=>XF("Organization",projectWhoamiOrgRows(e)),"buildOrgOutput"),tU=__name(e=>{e.forEach(e=>console.log(e))},"printLines"),nU=__name((e,t)=>{tU(ZF(e)),t&&tU(eU(t)),console.log("")},"displayUserInfo");async function whoamiAction(){const e=kt("Fetching user information...").start();try{hasCommandApiKey(await getAuthKey9())||(e.fail(JF(It)),process.exit(1));const t=await getAuthenticatedEntity({client:createApiClient({baseUrl:getApiBaseUrl()})});isAuthenticatedEntityLoaded(t)||(e.fail(JF(At)),process.exit(1)),e.succeed("User information loaded"),nU(t.user,t.org)}catch(t){e.fail(JF(`Error: ${QF(t)}`)),process.exit(1)}}__name(whoamiAction,"whoamiAction");var rU=new Le("whoami").description("Display current user information").allowUnknownOption().allowExcessArguments().action(whoamiAction);handleUnhandledErrors(),setVscodeIpcLogger(dlog),setupTelemetry(),registerBundledRipgrep(),setImmediate(()=>{const e=getTelemetryEnv();recordCliFingerprintInBackground({getAuthKey:__name(()=>getCommandAuthKey({runtime:getCommandConfigRuntime(),path:getAuthFile(),env:process.env}),"getAuthKey"),baseUrl:getApiBaseUrl(),cliEnvironment:normalizeCliEnvironment(e),cliVersion:getPackageJson(import.meta.url).version??"unknown",cmdZdr:"1"===process.env.CMD_ZDR})}),await preRun();var oU=createProgram();oU.action(interactiveModeAction),oU.addCommand(uO),oU.addCommand(vO),oU.addCommand(rU),oU.addCommand(qF),oU.addCommand(dO),oU.addCommand(cO),oU.addCommand(createTasteCommand()),oU.addCommand(createMcpCommand()),oU.addCommand(oD),oU.addCommand(oO),oU.addCommand(QR),oU.addCommand(rO),oU.addCommand(J_),oU.addCommand(mF),oU.addCommand(gD),isExperimentalEnabled()&&oU.addCommand(createSandboxCommand()),setupCommanderHooks(oU),oU.parse();
|