@puku/puku-cli 1.8.37 → 1.8.38
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 +13 -13
- package/package.json +1 -1
package/dist/cli.mjs
CHANGED
|
@@ -5214,7 +5214,7 @@ To fix this issue:
|
|
|
5214
5214
|
`),"install_failed";let{hasPermissions:K}=await Eqq();if(!K)return"no_permissions";let _=q?`@puku/puku-cli@${q}`:"@puku/puku-cli",A=pq.isRunningWithBun()?"bun":"npm",z=await Fq(A,["install","-g",_],{cwd:N06()});if(z.code!==0){let Y=new q78(`Failed to install new version of claude: ${z.stdout} ${z.stderr}`);return A6(Y),"install_failed"}return B8((Y)=>({...Y,installMethod:"global"})),"success"}finally{await XoA()}}async function WoA(){let q=Yc();for(let[,K]of Object.entries(q))try{let _=await k06(K);if(!_)continue;let{filtered:A,hadAlias:z}=s_8(_);if(z)await t_8(K,A),V(`Removed claude alias from ${K}`)}catch(_){V(`Failed to remove alias from ${K}: ${_}`,{level:"error"})}}var q78,LM_=300000;var OE=h(()=>{d7();Wq();Q7();z8();n5();x8();N8();J7();AK();bY();y8();Vq();e_8();Q8();q78=class q78 extends S16{}});import{readFile as DoA}from"fs/promises";function _78(q,K){return K.includes(q.id)||q.idLike.some((_)=>K.includes(_))}function Lqq(){let q=process.execPath||process.argv[0]||"";if(/[/\\]mise[/\\]installs[/\\]/i.test(q))return V(`Detected mise installation: ${q}`),!0;return!1}function hqq(){let q=process.execPath||process.argv[0]||"";if(/[/\\]\.?asdf[/\\]installs[/\\]/i.test(q))return V(`Detected asdf installation: ${q}`),!0;return!1}function A78(){let q=_q();if(q!=="macos"&&q!=="linux"&&q!=="wsl")return!1;let K=process.execPath||process.argv[0]||"";if(K.includes("/Caskroom/"))return V(`Detected Homebrew cask installation: ${K}`),!0;return!1}function Sqq(){if(_q()!=="windows")return!1;let K=process.execPath||process.argv[0]||"",_=[/Microsoft[/\\]WinGet[/\\]Packages/i,/Microsoft[/\\]WinGet[/\\]Links/i];for(let A of _)if(A.test(K))return V(`Detected winget installation: ${K}`),!0;return!1}var K78,Cqq,bqq,Iqq,xqq,_O6;var z78=h(()=>{C_();z8();J7();s_();K78=n8(async()=>{try{let q=await DoA("/etc/os-release","utf8"),K=q.match(/^ID=["']?(\S+?)["']?\s*$/m),_=q.match(/^ID_LIKE=["']?(.+?)["']?\s*$/m);return{id:K?.[1]??"",idLike:_?.[1]?.split(" ")??[]}}catch{return null}});Cqq=n8(async()=>{if(_q()!=="linux")return!1;let K=await K78();if(K&&!_78(K,["arch"]))return!1;let _=process.execPath||process.argv[0]||"",A=await r8("pacman",["-Qo",_],{timeout:5000,useCwd:!1});if(A.code===0&&A.stdout)return V(`Detected pacman installation: ${A.stdout.trim()}`),!0;return!1}),bqq=n8(async()=>{if(_q()!=="linux")return!1;let K=await K78();if(K&&!_78(K,["debian"]))return!1;let _=process.execPath||process.argv[0]||"",A=await r8("dpkg",["-S",_],{timeout:5000,useCwd:!1});if(A.code===0&&A.stdout)return V(`Detected deb installation: ${A.stdout.trim()}`),!0;return!1}),Iqq=n8(async()=>{if(_q()!=="linux")return!1;let K=await K78();if(K&&!_78(K,["fedora","rhel","suse"]))return!1;let _=process.execPath||process.argv[0]||"",A=await r8("rpm",["-qf",_],{timeout:5000,useCwd:!1});if(A.code===0&&A.stdout)return V(`Detected rpm installation: ${A.stdout.trim()}`),!0;return!1}),xqq=n8(async()=>{if(_q()!=="linux")return!1;let K=await K78();if(K&&!_78(K,["alpine"]))return!1;let _=process.execPath||process.argv[0]||"",A=await r8("apk",["info","--who-owns",_],{timeout:5000,useCwd:!1});if(A.code===0&&A.stdout)return V(`Detected apk installation: ${A.stdout.trim()}`),!0;return!1}),_O6=n8(async()=>{if(A78())return"homebrew";if(Sqq())return"winget";if(Lqq())return"mise";if(hqq())return"asdf";if(await Cqq())return"pacman";if(await xqq())return"apk";if(await bqq())return"deb";if(await Iqq())return"rpm";return"unknown"})});import{readFile as ZoA,realpath as pM_}from"fs/promises";import{homedir as Ma}from"os";import{delimiter as GoA,join as r0,posix as y06,win32 as R06}from"path";function voA(){let q=process.argv[1]||"",K=process.execPath||process.argv[0]||"";if(_q()==="windows")q=q.split(R06.sep).join(y06.sep),K=K.split(R06.sep).join(y06.sep);return[q,K]}async function Ja(){let[q]=voA();if(aw()){if(A78()||Sqq()||Lqq()||hqq()||await Cqq()||await bqq()||await Iqq()||await xqq())return"package-manager";return"native"}if(NM_())return"npm-local";if(["/usr/local/lib/node_modules","/usr/lib/node_modules","/opt/homebrew/lib/node_modules","/opt/homebrew/bin","/usr/local/bin","/.nvm/versions/node/"].some((z)=>q.includes(z)))return"npm-global";if(q.includes("/npm/")||q.includes("/nvm/"))return"npm-global";let _=await Az("npm config get prefix",{shell:!0,reject:!1}),A=_.exitCode===0?_.stdout.trim():null;if(A&&q.startsWith(A))return"npm-global";return"unknown"}async function ToA(){if(aw()){try{return await pM_(process.execPath)}catch{}try{let q=await l1("puku-cli");if(q)return q}catch{}try{return await $8().stat(r0(Ma(),".local/bin/puku-cli")),r0(Ma(),".local/bin/puku-cli")}catch{}return"native"}try{return process.argv[0]||"unknown"}catch{return"unknown"}}function koA(){try{if(aw())return process.execPath||"unknown";return process.argv[1]||"unknown"}catch{return"unknown"}}async function NoA(){let q=$8(),K=[],_=r0(Ma(),".puku-cli","local");if(await Ha())K.push({type:"npm-local",path:_});let A=["@anthropic-ai/claude-code"];A.push("@puku/puku-cli");let z=await r8("npm",["-g","config","get","prefix"]);if(z.code===0&&z.stdout){let $=z.stdout.trim(),w=_q()==="windows",H=w?r0($,"puku-cli"):r0($,"bin","puku-cli"),j=!1;try{await q.stat(H),j=!0}catch{}if(j){let M=!1;try{if((await pM_(H)).includes("/Caskroom/"))M=A78()}catch{}if(!M)K.push({type:"npm-global",path:H})}else for(let M of A){let J=w?r0($,"node_modules",M):r0($,"lib","node_modules",M);try{await q.stat(J),K.push({type:"npm-global-orphan",path:J})}catch{}}}let Y=r0(Ma(),".local","bin","puku-cli");try{await q.stat(Y),K.push({type:"native",path:Y})}catch{}if(j8().installMethod==="native"){let $=r0(Ma(),".local","share","puku-cli");try{if(await q.stat($),!K.some((w)=>w.type==="native"))K.push({type:"native",path:$})}catch{}}return K}async function VoA(q){let K=[];try{let Y=await ZoA(r0(r1(),"managed-settings.json"),"utf-8"),O=p8(Y),$=O&&typeof O==="object"?O.strictPluginOnlyCustomization:void 0;if($!==void 0&&typeof $!=="boolean")if(!Array.isArray($))K.push({issue:`managed-settings.json: strictPluginOnlyCustomization has an invalid value (expected true or an array, got ${typeof $})`,fix:`The field is silently ignored (schema .catch rescues it). Set it to true, or an array of: ${Re.join(", ")}.`});else{let w=$.filter((H)=>typeof H==="string"&&!Re.includes(H));if(w.length>0)K.push({issue:`managed-settings.json: strictPluginOnlyCustomization has ${w.length} value(s) this client doesn't recognize: ${w.map(String).join(", ")}`,fix:`These are silently ignored (forwards-compat). Known surfaces for this version: ${Re.join(", ")}. Either remove them, or this client is older than the managed-settings intended.`})}}catch{}let _=j8();if(q==="development")return K;if(q==="native"){let O=(process.env.PATH||"").split(GoA),$=Ma(),w=r0($,".local","bin"),H=w;if(_q()==="windows")H=w.split(R06.sep).join(y06.sep);if(!O.some((M)=>{let J=M;if(_q()==="windows")J=M.split(R06.sep).join(y06.sep);let X=J.replace(/\/+$/,""),P=M.replace(/[/\\]+$/,"");return X===H||P==="~/.local/bin"||P==="$HOME/.local/bin"}))if(_q()==="windows"){let J=w.split(y06.sep).join(R06.sep);K.push({issue:`Native installation exists but ${J} is not in your PATH`,fix:"Add it by opening: System Properties → Environment Variables → Edit User PATH → New → Add the path above. Then restart your terminal."})}else{let J=qO6(),P=Yc()[J],f=P?P.replace(Ma(),"~"):"your shell config file";K.push({issue:"Native installation exists but ~/.local/bin is not in your PATH",fix:`Run: echo 'export PATH="$HOME/.local/bin:$PATH"' >> ${f} then open a new terminal or run: source ${f}`})}}if(!u6(process.env.DISABLE_INSTALLATION_CHECKS)){if(q==="npm-local"&&_.installMethod!=="local")K.push({issue:`Running from local installation but config install method is '${_.installMethod}'`,fix:"Consider using native installation: puku-cli install"});if(q==="native"&&_.installMethod!=="native")K.push({issue:`Running native installation but config install method is '${_.installMethod}'`,fix:"Run puku-cli install to update configuration"})}if(q==="npm-global"&&await Ha())K.push({issue:"Local installation exists but not being used",fix:"Consider using native installation: puku-cli install"});let A=await Rqq(),z=await RM_();if(q==="npm-local"){if(!await l1("puku-cli")&&!z)if(A)K.push({issue:"Local installation not accessible",fix:`Alias exists but points to invalid target: ${A}. Update alias: alias puku-cli="~/.puku-cli/local/puku-cli"`});else K.push({issue:"Local installation not accessible",fix:'Create alias: alias puku-cli="~/.puku-cli/local/puku-cli"'})}return K}function yoA(){if(_q()!=="linux")return[];let q=[],K=Cq.getLinuxGlobPatternWarnings();if(K.length>0){let _=K.slice(0,3).join(", "),A=K.length-3,z=A>0?`${_} (${A} more)`:_;q.push({issue:"Glob patterns in sandbox permission rules are not fully supported on Linux",fix:`Found ${K.length} pattern(s): ${z}. On Linux, glob patterns in Edit/Read rules will be ignored.`})}return q}async function Xa(){let q=await Ja(),K=typeof MACRO<"u"?"99.0.0":"unknown",_=await ToA(),A=koA(),z=await NoA(),Y=await VoA(q);if(Y.push(...yoA()),q==="native"){let X=z.filter((f)=>f.type==="npm-global"||f.type==="npm-global-orphan"||f.type==="npm-local"),P=_q()==="windows";for(let f of X)if(f.type==="npm-global")Y.push({issue:`Leftover npm global installation at ${f.path}`,fix:"Run: npm -g uninstall @puku/puku-cli"});else if(f.type==="npm-global-orphan")Y.push({issue:`Orphaned npm global package at ${f.path}`,fix:P?`Run: rmdir /s /q "${f.path}"`:`Run: rm -rf ${f.path}`});else if(f.type==="npm-local")Y.push({issue:`Leftover npm local installation at ${f.path}`,fix:P?`Run: rmdir /s /q "${f.path}"`:`Run: rm -rf ${f.path}`})}let $=j8().installMethod||"not set",w=null;if(q==="npm-global"&&Jq()==="firstParty"){if(w=(await Eqq()).hasPermissions,!w&&!jd())Y.push({issue:"Insufficient permissions for auto-updates",fix:"Do one of: (1) Re-install node without sudo, or (2) Use `puku-cli install` for native installation"})}let H=sTK(),j={working:H.working??!0,mode:H.mode,systemPath:H.mode==="system"?H.path:null},M=q==="package-manager"?await _O6():void 0;return{installationType:q,version:K,installationPath:_,invokedBinary:A,configInstallMethod:$,autoUpdates:(()=>{let X=jd();return X?`disabled (${$j6(X)})`:"enabled"})(),hasUpdatePermissions:w,multipleInstallations:z,warnings:Y,packageManager:M,ripgrepStatus:j}}var Pa=h(()=>{eH();OE();Wq();nq();x8();J7();AK();ja();Q7();z78();s_();VG();Tz();LT();kZ();e_8();Q8();WZ()});import{homedir as RoA}from"os";import{join as Y78}from"path";function O78(q){return{env:q?.env??process.env,home:q?.homedir??process.env.HOME??RoA()}}function $78(q){let{env:K,home:_}=O78(q);return K.XDG_STATE_HOME??Y78(_,".local","state")}function mM_(q){let{env:K,home:_}=O78(q);return K.XDG_CACHE_HOME??Y78(_,".cache")}function gM_(q){let{env:K,home:_}=O78(q);return K.XDG_DATA_HOME??Y78(_,".local","share")}function BM_(q){let{home:K}=O78(q);return Y78(K,".local","bin")}var uqq=()=>{};async function cM_(){return""}async function FM_(){throw Error("Native installer is not available in puku-cli.")}var UM_=()=>{};import{basename as EoA,join as dM_}from"path";function $c(){let q=process.env.ENABLE_PID_BASED_VERSION_LOCKING;if(u6(q))return!0;if(y4(q))return!1;return s8("ev_event",!1)}function w78(q){if(q<=1)return!1;try{return process.kill(q,0),!0}catch{return!1}}function hoA(q,K){if(!w78(q))return!1;if(q===process.pid)return!0;try{let _=OLK(q);if(!_)return!0;let A=_.toLowerCase(),z=K.toLowerCase();return A.includes("puku-cli")||A.includes(z)}catch{return!0}}function fa(q){let K=$8();try{let _=K.readFileSync(q,{encoding:"utf8"});if(!_||_.trim()==="")return null;let A=p8(_);if(typeof A.pid!=="number"||!A.version||!A.execPath)return null;return A}catch{return null}}function E06(q){let K=fa(q);if(!K)return!1;let{pid:_,execPath:A}=K;if(!w78(_))return!1;if(!hoA(_,A))return V(`Lock PID ${_} is running but does not appear to be Claude - treating as stale`),!1;let z=$8();try{let Y=z.statSync(q);if(Date.now()-Y.mtimeMs>LoA){if(!w78(_))return!1}}catch{}return!0}function SoA(q,K){let _=$8(),A=`${q}.tmp.${process.pid}.${Date.now()}`;try{s3(A,p6(K,null,2),{encoding:"utf8",flush:!0}),_.renameSync(A,q)}catch(z){try{_.unlinkSync(A)}catch{}throw z}}async function QM_(q,K){let _=$8(),A=EoA(q);if(E06(K)){let Y=fa(K);return V(`Cannot acquire lock for ${A} - held by PID ${Y?.pid}`),null}let z={pid:process.pid,version:A,execPath:process.execPath,acquiredAt:Date.now()};try{if(SoA(K,z),fa(K)?.pid!==process.pid)return null;return V(`Acquired PID lock for ${A} (PID ${process.pid})`),()=>{try{if(fa(K)?.pid===process.pid)_.unlinkSync(K),V(`Released PID lock for ${A}`)}catch(O){V(`Failed to release lock for ${A}: ${O}`)}}}catch(Y){return V(`Failed to acquire lock for ${A}: ${Y}`),null}}async function lM_(q,K){let _=await QM_(q,K);if(!_)return!1;let A=()=>{try{_()}catch{}};return process.on("exit",A),process.on("SIGINT",A),process.on("SIGTERM",A),!0}async function iM_(q,K,_){let A=await QM_(q,K);if(!A)return!1;try{return await _(),!0}finally{A()}}function nM_(q){let K=$8(),_=[];try{let A=K.readdirStringSync(q).filter((z)=>z.endsWith(".lock"));for(let z of A){let Y=dM_(q,z),O=fa(Y);if(O)_.push({version:O.version,pid:O.pid,isProcessRunning:w78(O.pid),execPath:O.execPath,acquiredAt:new Date(O.acquiredAt),lockFilePath:Y})}}catch(A){if(yq(A))return _;A6(Gq(A))}return _}function H78(q){let K=$8(),_=0;try{let A=K.readdirStringSync(q).filter((z)=>z.endsWith(".lock"));for(let z of A){let Y=dM_(q,z);try{if(K.lstatSync(Y).isDirectory())K.rmSync(Y,{recursive:!0,force:!0}),_++,V(`Cleaned up legacy directory lock: ${z}`);else if(!E06(Y))K.unlinkSync(Y),_++,V(`Cleaned up stale lock: ${z}`)}catch{}}}catch(A){if(yq(A))return 0;A6(Gq(A))}return _}var LoA=7200000;var pqq=h(()=>{z8();x8();N8();AK();$76();y8();Q8()});import{constants as CoA}from"fs";import{access as sM_,chmod as boA,copyFile as gqq,lstat as IoA,mkdir as Da,readdir as M78,readlink as Bqq,realpath as xoA,rename as J78,rm as P78,rmdir as uoA,stat as a0,symlink as poA,unlink as $E,writeFile as moA}from"fs/promises";import{homedir as tM_}from"os";import{basename as goA,delimiter as BoA,dirname as Qb,join as E1,resolve as lb}from"path";function Za(){let q=pq.platform,K=process.arch==="x64"?"x64":process.arch==="arm64"?"arm64":null;if(!K){let _=Error(`Unsupported architecture: ${process.arch}`);throw V(`Native installer does not support architecture: ${process.arch}`,{level:"error"}),_}if(q==="linux"&&QG.isMuslEnvironment())return`linux-${K}-musl`;return`${q}-${K}`}function eM_(q){return q.startsWith("win32")?"puku-cli.exe":"puku-cli"}function wE(){let q=Za(),K=eM_(q);return{versions:E1(gM_(),"puku-cli","versions"),staging:E1(mM_(),"puku-cli","staging"),locks:E1($78(),"puku-cli","locks"),executable:E1(BM_(),K)}}async function Wa(q){try{let K=await a0(q);if(!K.isFile()||K.size===0)return!1;return await sM_(q,CoA.X_OK),!0}catch{return!1}}async function Fqq(q){let K=wE(),_=[K.versions,K.staging,K.locks];await Promise.all(_.map((Y)=>Da(Y,{recursive:!0})));let A=Qb(K.executable);await Da(A,{recursive:!0});let z=E1(K.versions,q);try{await a0(z)}catch{await moA(z,"",{encoding:"utf8"})}return{stagingPath:E1(K.staging,q),installPath:z}}async function qJ_(q,K,_=0){let A=wE(),z=h06(A,q);if(await Da(A.locks,{recursive:!0}),$c()){let O=0,$=_+1,w=_>0?1000:100,H=_>0?5000:500;while(O<$){if(await iM_(q,z,async()=>{try{await K()}catch(M){throw A6(M),M}}))return Q("ev_event",{is_pid_based:!0,is_lifetime_lock:!1,attempts:O+1}),!0;if(O++,O<$){let M=Math.min(w*Math.pow(2,O-1),H);await eK(M)}}return Q("ev_event",{is_pid_based:!0,is_lifetime_lock:!1,attempts:$}),X78(q,Error("Lock held by another process")),!1}let Y=null;try{try{Y=await D3(q,{stale:cqq,retries:{retries:_,minTimeout:_>0?1000:100,maxTimeout:_>0?5000:500},lockfilePath:z,onCompromised:(O)=>{V(`NON-FATAL: Version lock was compromised during operation: ${O.message}`,{level:"info"})}})}catch(O){return Q("ev_event",{is_pid_based:!1,is_lifetime_lock:!1}),X78(q,O),!1}try{return await K(),Q("ev_event",{is_pid_based:!1,is_lifetime_lock:!1}),!0}catch(O){throw A6(O),O}}finally{if(Y)await Y()}}async function KJ_(q,K){await Da(Qb(K),{recursive:!0});let _=`${K}.tmp.${process.pid}.${Date.now()}`;try{await gqq(q,_),await boA(_,493),await J78(_,K),V(`Atomically installed binary to ${K}`)}catch(A){try{await $E(_)}catch{}throw A}}async function coA(q,K){try{let _=E1(q,"node_modules","@anthropic-ai"),z=(await M78(_)).find((O)=>O.startsWith("claude-cli-native-"));if(!z)throw Q("ev_event",{stage_find_package:!0,error_package_not_found:!0}),Error("Could not find platform-specific native package");let Y=E1(_,z,"cli");try{await a0(Y)}catch{throw Q("ev_event",{stage_binary_exists:!0,error_binary_not_found:!0}),Error("Native binary not found in staged package")}await KJ_(Y,K),await P78(q,{recursive:!0,force:!0}),Q("ev_event",{})}catch(_){let A=d6(_);if(!A.includes("Could not find platform-specific")&&!A.includes("Native binary not found"))Q("ev_event",{stage_atomic_move:!0,error_move_failed:!0});throw A6(Gq(_)),_}}async function FoA(q,K){try{let _=Za(),A=eM_(_),z=E1(q,A);try{await a0(z)}catch{throw Q("ev_event",{stage_binary_exists:!0,error_binary_not_found:!0}),Error("Staged binary not found")}await KJ_(z,K),await P78(q,{recursive:!0,force:!0}),Q("ev_event",{})}catch(_){if(!d6(_).includes("Staged binary not found"))Q("ev_event",{stage_atomic_move:!0,error_move_failed:!0});throw A6(Gq(_)),_}}async function UoA(q,K,_){if(_==="npm")await coA(q,K);else await FoA(q,K)}async function rM_(q,K){let{stagingPath:_,installPath:A}=await Fqq(q),{executable:z}=wE(),Y=u6(process.env.ENABLE_LOCKLESS_UPDATES)?`${_}.${process.pid}.${Date.now()}`:_,O=!await _J_(q)||K;if(O){V(K?`Force reinstalling native installer version ${q}`:`Downloading native installer version ${q}`);let $=await FM_(q,Y);await UoA(Y,A,$)}else V(`Version ${q} already installed, updating symlink`);if(await QoA(z),await loA(z,A),!await Wa(z)){let $=!1;try{await a0(A),$=!0}catch{}throw Error(`Failed to create executable at ${z}. Source file exists: ${$}. Check write permissions to ${z}.`)}return O}async function _J_(q){let{installPath:K}=await Fqq(q);return Wa(K)}async function doA(q,K=!1){let _=Date.now(),A=await cM_(q),{executable:z}=wE();if(V(`Checking for native installer update to version ${A}`),!K){let $=await Oc();if($&&aM(A,$)){if(V(`Native installer: maxVersion ${$} is set, capping update from ${A} to ${$}`),Yw("99.0.0",$))return V(`Native installer: current version 99.0.0 is already at or above maxVersion ${$}, skipping update`),Q("ev_event",{latency_ms:Date.now()-_,max_version:$,available_version:A}),{success:!0,latestVersion:A};A=$}}if(!K&&A==="99.0.0"&&await _J_(A)&&await Wa(z))return V(`Found ${A} at ${z}, skipping install`),Q("ev_event",{latency_ms:Date.now()-_,was_new_install:!1,was_force_reinstall:!1,was_already_running:!0}),{success:!0,latestVersion:A};if(!K&&KO6(A))return Q("ev_event",{latency_ms:Date.now()-_,target_version:A}),{success:!0,latestVersion:A};let Y=!1,O;if(u6(process.env.ENABLE_LOCKLESS_UPDATES))Y=await rM_(A,K),O=Date.now()-_;else{let{installPath:$}=await Fqq(A);if(K)await noA($);let w=await qJ_($,async()=>{Y=await rM_(A,K)},3);if(O=Date.now()-_,!w){let H=wE(),j;if($c()){let M=h06(H,$);if(E06(M))j=fa(M)?.pid}return Q("ev_event",{latency_ms:O,lock_holder_pid:j}),{success:!1,latestVersion:A,lockFailed:!0,lockHolderPid:j}}}return Q("ev_event",{latency_ms:O,was_new_install:Y,was_force_reinstall:K}),V(`Successfully updated to version ${A}`),{success:!0,latestVersion:A}}async function QoA(q){try{await uoA(q),V(`Removed empty directory at ${q}`)}catch(K){let _=Lq(K);if(_!=="ENOTDIR"&&_!=="ENOENT"&&_!=="ENOTEMPTY")V(`Could not remove directory at ${q}: ${K}`)}}async function loA(q,K){if(Za().startsWith("win32"))try{let O=Qb(q);await Da(O,{recursive:!0});let $;try{$=await a0(q)}catch{}if($){try{let H=await a0(K);if($.size===H.size)return!1}catch{}let w=`${q}.old.${Date.now()}`;await J78(q,w);try{await gqq(K,q);try{await $E(w)}catch{}}catch(H){try{await J78(w,q)}catch(j){let M=Error(`Failed to restore old executable: ${j}`,{cause:H});throw A6(M),M}throw H}}else try{await gqq(K,q)}catch(w){if(yq(w))throw Error(`Source file does not exist: ${K}`);throw w}return!0}catch(O){return A6(Error(`Failed to copy executable from ${K} to ${q}: ${O}`)),!1}let z=Qb(q);try{await Da(z,{recursive:!0}),V(`Created directory ${z} for symlink`)}catch(O){return A6(Error(`Failed to create directory ${z}: ${O}`)),!1}try{let O=!1;try{await a0(q),O=!0}catch{}if(O){try{let $=await Bqq(q),w=lb(Qb(q),$),H=lb(K);if(w===H)return!1}catch{}await $E(q)}}catch(O){A6(Error(`Failed to check/remove existing symlink: ${O}`))}let Y=`${q}.tmp.${process.pid}.${Date.now()}`;try{return await poA(K,Y),await J78(Y,q),V(`Atomically updated symlink ${q} -> ${K}`),!0}catch(O){try{await $E(Y)}catch{}return A6(Error(`Failed to create symlink from ${q} to ${K}: ${O}`)),!1}}async function Ga(q=!1){if(u6(process.env.DISABLE_INSTALLATION_CHECKS))return[];let K=await Ja();if(K==="development")return[];let _=j8();if(!(q||K==="native"||_.installMethod==="native"))return[];let z=wE(),Y=[],O=Qb(z.executable),$=lb(O),H=Za().startsWith("win32");try{await sM_(O)}catch{Y.push({message:`installMethod is native, but directory ${O} does not exist`,userActionRequired:!0,type:"error"})}if(H){if(!await Wa(z.executable))Y.push({message:`installMethod is native, but claude command is missing or invalid at ${z.executable}`,userActionRequired:!0,type:"error"})}else try{let M=await Bqq(z.executable),J=lb(Qb(z.executable),M);if(!await Wa(J))Y.push({message:`Claude symlink points to missing or invalid binary: ${M}`,userActionRequired:!0,type:"error"})}catch(M){if(yq(M))Y.push({message:`installMethod is native, but claude command not found at ${z.executable}`,userActionRequired:!0,type:"error"});else if(!await Wa(z.executable))Y.push({message:`${z.executable} exists but is not a valid Claude binary`,userActionRequired:!0,type:"error"})}if(!(process.env.PATH||"").split(BoA).some((M)=>{try{let J=lb(M);if(H)return J.toLowerCase()===$.toLowerCase();return J===$}catch{return!1}}))if(H){let M=O.replace(/\//g,"\\");Y.push({message:`Native installation exists but ${M} is not in your PATH. Add it by opening: System Properties → Environment Variables → Edit User PATH → New → Add the path above. Then restart your terminal.`,userActionRequired:!0,type:"path"})}else{let M=qO6(),X=Yc()[M],P=X?X.replace(tM_(),"~"):"your shell config file";Y.push({message:`Native installation exists but ~/.local/bin is not in your PATH. Run:
|
|
5215
5215
|
|
|
5216
5216
|
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ${P} && source ${P}`,userActionRequired:!0,type:"path"})}return Y}function L06(q,K=!1){if(K)return aM_(q,K);if(j78)return V("installLatest: joining in-flight call"),j78;let _=aM_(q,K);j78=_;let A=()=>{j78=null};return _.then(A,A),_}async function aM_(q,K=!1){let _=await doA(q,K);if(!_.success)return{latestVersion:null,wasUpdated:!1,lockFailed:_.lockFailed,lockHolderPid:_.lockHolderPid};if(j8().installMethod!=="native")B8((z)=>({...z,installMethod:"native",autoUpdates:!1,autoUpdatesProtectedForNative:!0})),V('Native installer: Set installMethod to "native" and disabled legacy auto-updater for protection');return AO6(),{latestVersion:_.latestVersion,wasUpdated:_.success,lockFailed:!1}}async function ioA(q){try{let K=await Bqq(q),_=lb(Qb(q),K);if(await Wa(_))return _}catch{}return null}function h06(q,K){let _=goA(K);return E1(q.locks,`${_}.lock`)}async function Uqq(){let q=wE();if(!process.execPath.includes(q.versions))return;let K=lb(process.execPath);try{let _=h06(q,K);if(await Da(q.locks,{recursive:!0}),$c()){if(!await lM_(K,_)){Q("ev_event",{is_pid_based:!0,is_lifetime_lock:!0}),X78(K,Error("Lock already held by another process"));return}Q("ev_event",{is_pid_based:!0,is_lifetime_lock:!0}),V(`Acquired PID lock on running version: ${K}`)}else{let A;try{A=await D3(K,{stale:cqq,retries:0,lockfilePath:_,onCompromised:(z)=>{V(`NON-FATAL: Lock on running version was compromised: ${z.message}`,{level:"info"})}}),Q("ev_event",{is_pid_based:!1,is_lifetime_lock:!0}),V(`Acquired mtime-based lock on running version: ${K}`),oK(async()=>{try{await A?.()}catch{}})}catch(z){if(yq(z)){V(`Cannot lock current version - file does not exist: ${K}`,{level:"info"});return}Q("ev_event",{is_pid_based:!1,is_lifetime_lock:!0}),X78(K,z);return}}}catch(_){if(yq(_)){V(`Cannot lock current version - file does not exist: ${K}`,{level:"info"});return}V(`NON-FATAL: Failed to lock current version during execution ${d6(_)}`,{level:"info"})}}function X78(q,K){A6(Error(`NON-FATAL: Lock acquisition failed for ${q} (expected in multi-process scenarios)`,{cause:K}))}async function noA(q){let K=wE(),_=h06(K,q);try{await $E(_),V(`Force-removed lock file at ${_}`)}catch(A){V(`Failed to force-remove lock file: ${d6(A)}`)}}async function AO6(){await Promise.resolve();let q=wE(),K=Date.now()-3600000;if(Za().startsWith("win32")){let Y=Qb(q.executable);try{let O=await M78(Y),$=0;for(let w of O){if(!/^puku-cli\.exe\.old\.\d+$/.test(w))continue;try{await $E(E1(Y,w)),$++}catch{}}if($>0)V(`Cleaned up ${$} old Windows executables on startup`)}catch(O){if(!yq(O))V(`Failed to clean up old Windows executables: ${O}`)}}try{let Y=await M78(q.staging),O=0;for(let $ of Y){let w=E1(q.staging,$);try{if((await a0(w)).mtime.getTime()<K)await P78(w,{recursive:!0,force:!0}),O++,V(`Cleaned up old staging directory: ${$}`)}catch{}}if(O>0)V(`Cleaned up ${O} orphaned staging directories`),Q("ev_event",{cleaned_count:O})}catch(Y){if(!yq(Y))V(`Failed to clean up staging directories: ${Y}`)}if($c()){let Y=H78(q.locks);if(Y>0)V(`Cleaned up ${Y} stale version locks`),Q("ev_event",{cleaned_count:Y})}let _;try{_=await M78(q.versions)}catch(Y){if(!yq(Y))V(`Failed to readdir versions directory: ${Y}`);return}let A=[],z=0;for(let Y of _){let O=E1(q.versions,Y);if(/\.tmp\.\d+\.\d+$/.test(Y)){try{if((await a0(O)).mtime.getTime()<K)await $E(O),z++,V(`Cleaned up orphaned temp install file: ${Y}`)}catch{}continue}try{let $=await a0(O);if(!$.isFile())continue;if(process.platform!=="win32"&&$.size>0&&($.mode&73)===0)continue;A.push({name:Y,path:O,resolvedPath:lb(O),mtime:$.mtime})}catch{}}if(z>0)V(`Cleaned up ${z} orphaned temp install files`),Q("ev_event",{cleaned_count:z});if(A.length===0)return;try{let Y=process.execPath,O=new Set;if(Y&&Y.includes(q.versions))O.add(lb(Y));let $=await ioA(q.executable);if($)O.add($);for(let X of A){if(O.has(X.resolvedPath))continue;let P=h06(q,X.resolvedPath),f=!1;if($c())f=E06(P);else try{f=await RRq(X.resolvedPath,{stale:cqq,lockfilePath:P})}catch{f=!1}if(f)O.add(X.resolvedPath),V(`Protecting locked version from cleanup: ${X.name}`)}let H=A.filter((X)=>!O.has(X.resolvedPath)).sort((X,P)=>P.mtime.getTime()-X.mtime.getTime()).slice(mqq);if(H.length===0){Q("ev_event",{total_count:A.length,deleted_count:0,protected_count:O.size,retained_count:mqq,lock_failed_count:0,error_count:0});return}let j=0,M=0,J=0;await Promise.all(H.map(async(X)=>{try{if(await qJ_(X.path,async()=>{await $E(X.path)}))j++;else M++,V(`Skipping deletion of ${X.name} - locked by another process`)}catch(P){J++,A6(Error(`Failed to delete version ${X.name}: ${P}`))}})),Q("ev_event",{total_count:A.length,deleted_count:j,protected_count:O.size,retained_count:mqq,lock_failed_count:M,error_count:J})}catch(Y){if(!yq(Y))A6(Error(`Version cleanup failed: ${Y}`))}}async function roA(q){let K=q;if((await IoA(q)).isSymbolicLink())K=await xoA(q);return K.endsWith(".js")||K.includes("node_modules")}async function S06(){let q=wE();try{if(await roA(q.executable)){V(`Skipping removal of ${q.executable} - appears to be npm-managed`);return}await $E(q.executable),V(`Removed claude symlink at ${q.executable}`)}catch(K){if(yq(K))return;A6(Error(`Failed to remove claude symlink: ${K}`))}}async function dqq(){let q=[],K=Yc();for(let[_,A]of Object.entries(K))try{let z=await k06(A);if(!z)continue;let{filtered:Y,hadAlias:O}=s_8(z);if(O)await t_8(A,Y),q.push({message:`Removed claude alias from ${A}. Run: unalias claude`,userActionRequired:!0,type:"alias"}),V(`Cleaned up claude alias from ${_} config`)}catch(z){A6(z),q.push({message:`Failed to clean up ${A}: ${z}`,userActionRequired:!1,type:"error"})}return q}async function aoA(q){try{let K=await Fq("npm",["config","get","prefix"]);if(K.code!==0||!K.stdout)return{success:!1,error:"Failed to get npm global prefix"};let _=K.stdout.trim(),A=!1;async function z(Y,O){try{return await $E(Y),V(`Manually removed ${O}: ${Y}`),!0}catch{return!1}}if(Za().startsWith("win32")){let Y=E1(_,"puku-cli.cmd"),O=E1(_,"puku-cli.ps1"),$=E1(_,"puku-cli");if(await z(Y,"bin script"))A=!0;if(await z(O,"PowerShell script"))A=!0;if(await z($,"bin executable"))A=!0}else{let Y=E1(_,"bin","puku-cli");if(await z(Y,"bin symlink"))A=!0}if(A){V(`Successfully removed ${q} manually`);let Y=Za().startsWith("win32")?E1(_,"node_modules",q):E1(_,"lib","node_modules",q);return{success:!0,warning:`${q} executables removed, but node_modules directory was left intact for safety. You may manually delete it later at: ${Y}`}}else return{success:!1}}catch(K){return V(`Manual removal failed: ${K}`,{level:"error"}),{success:!1,error:`Manual removal failed: ${K}`}}}async function oM_(q){let{code:K,stderr:_}=await Fq("npm",["uninstall","-g",q],{cwd:process.cwd()});if(K===0)return V(`Removed global npm installation of ${q}`),{success:!0};else if(_&&!_.includes("npm ERR! code E404")){if(_.includes("npm error code ENOTEMPTY")){V(`Failed to uninstall global npm package ${q}: ${_}`,{level:"error"}),V("Attempting manual removal due to ENOTEMPTY error");let A=await aoA(q);if(A.success)return{success:!0,warning:A.warning};else if(A.error)return{success:!1,error:`Failed to remove global npm installation of ${q}: ${_}. Manual removal also failed: ${A.error}`}}return V(`Failed to uninstall global npm package ${q}: ${_}`,{level:"error"}),{success:!1,error:`Failed to remove global npm installation of ${q}: ${_}`}}return{success:!1}}async function Qqq(){let q=[],K=[],_=0,A=await oM_("@anthropic-ai/claude-code");if(A.success){if(_++,A.warning)K.push(A.warning)}else if(A.error)q.push(A.error);{let Y=await oM_("@puku/puku-cli");if(Y.success){if(_++,Y.warning)K.push(Y.warning)}else if(Y.error)q.push(Y.error)}let z=E1(tM_(),".puku-cli","local");try{await P78(z,{recursive:!0}),_++,V(`Removed local installation at ${z}`)}catch(Y){if(!yq(Y))q.push(`Failed to remove ${z}: ${Y}`),V(`Failed to remove local installation: ${Y}`,{level:"error"})}return{removed:_,errors:q,warnings:K}}var mqq=2,cqq=604800000,j78=null;var AJ_=h(()=>{OE();lA();Wq();z8();Pa();n5();w76();x8();N8();J7();ja();y8();e_8();uqq();UM_();pqq()});var HE=h(()=>{AJ_()});function ib(){let q=iL(),_=["user","project","local"].flatMap((A)=>W$(A).errors);return{settings:q.settings,errors:[...q.errors,..._]}}var C06=h(()=>{Qj();Vq()});function zJ_(){return[]}function YJ_(q,K=null,_){let A=q?.find((z)=>z.name==="ide");if(K){let z=p3(K.ideType),Y=O0(K.ideType)?"plugin":"extension";if(K.error)return[{label:"IDE",value:y(T,{children:[aq("error",_)(s6.cross)," Error installing ",z," ",Y,": ",K.error,`
|
|
5217
|
-
`,"Please restart your IDE and try again."]})}];if(K.installed)if(A&&A.type==="connected")if(K.installedVersion!==A.serverInfo?.version)return[{label:"IDE",value:`Connected to ${z} ${Y} version ${K.installedVersion} (server version: ${A.serverInfo?.version})`}];else return[{label:"IDE",value:`Connected to ${z} ${Y} version ${K.installedVersion}`}];else return[{label:"IDE",value:`Installed ${z} ${Y}`}]}else if(A){let z=Wd8(A)??"IDE";if(A.type==="connected")return[{label:"IDE",value:`Connected to ${z} extension`}];else return[{label:"IDE",value:`${aq("error",_)(s6.cross)} Not connected to ${z}`}]}return[]}function OJ_(q=[],K){let _=q.filter((Y)=>Y.name!=="ide");if(!_.length)return[];let A={connected:0,pending:0,needsAuth:0,failed:0};for(let Y of _)if(Y.type==="connected")A.connected++;else if(Y.type==="pending")A.pending++;else if(Y.type==="needs-auth")A.needsAuth++;else A.failed++;let z=[];if(A.connected)z.push(aq("success",K)(`${A.connected} connected`));if(A.needsAuth)z.push(aq("warning",K)(`${A.needsAuth} need auth`));if(A.pending)z.push(aq("inactive",K)(`${A.pending} pending`));if(A.failed)z.push(aq("error",K)(`${A.failed} failed`));return[{label:"MCP servers",value:`${z.join(", ")} ${aq("inactive",K)("· /mcp")}`}]}async function $J_(){let q=await i$(),K=rl(q),_=[];return K.forEach((A)=>{let z=s7(A.path);_.push(`Large ${z} will impact performance (${$7(A.content.length)} chars > ${$7(rS)})`)}),_}function wJ_(){return[{label:"Setting sources",value:dL().filter((A)=>{let z=Oq(A);return z!==null&&Object.keys(z).length>0}).map((A)=>{if(A==="policySettings"){let z=gkq();if(z===null)return null;switch(z){case"remote":return"Enterprise managed settings (remote)";case"plist":return"Enterprise managed settings (plist)";case"hklm":return"Enterprise managed settings (HKLM)";case"file":{let{hasBase:Y,hasDropIns:O}=ukq();if(Y&&O)return"Enterprise managed settings (file + drop-ins)";if(O)return"Enterprise managed settings (drop-ins)";return"Enterprise managed settings (file)"}case"hkcu":return"Enterprise managed settings (HKCU)"}}return kTq(A)}).filter((A)=>A!==null)}]}async function HJ_(){return(await Ga()).map((K)=>K.message)}async function jJ_(){let q=await Xa(),K=[],{errors:_}=ib();if(_.length>0){let z=Array.from(new Set(_.map((Y)=>Y.file))).join(", ");K.push(`Found invalid settings files: ${z}. They will be ignored.`)}if(q.warnings.forEach((A)=>{K.push(A.issue)}),q.hasUpdatePermissions===!1)K.push("No write permissions for auto-updates (requires sudo)");return K}function ooA(q){return{ANTHROPIC_AUTH_TOKEN:"Environment variable",PUKU_CLI_OAUTH_TOKEN:"Puku OAuth token",PUKU_CLI_OAUTH_TOKEN_FILE_DESCRIPTOR:"Puku OAuth token (file descriptor)",CCR_OAUTH_TOKEN_FILE:"Puku OAuth token (CCR)",apiKeyHelper:"API key helper","claude.ai":"Puku.ai",none:"Not set"}[q]??q}function soA(q){return{PUKU_AI_API_KEY:"Environment variable",apiKeyHelper:"API key helper","/login managed key":"Managed by Puku",none:"Not set"}[q]??q}function MJ_(){let q=Xq6();if(!q)return[];let K=[];if(q.subscription)K.push({label:"Login method",value:`${q.subscription} Account`});if(q.tokenSource)K.push({label:"Auth token",value:ooA(q.tokenSource)});if(q.apiKeySource)K.push({label:"API key",value:soA(q.apiKeySource)});if(q.organization&&!process.env.IS_DEMO)K.push({label:"Organization",value:q.organization});if(q.email&&!process.env.IS_DEMO)K.push({label:"Email",value:q.email});return K}function JJ_(){let q=Jq(),K=[];if(q!=="firstParty"){let z={bedrock:"AWS Bedrock",vertex:"Google Vertex AI",foundry:"Microsoft Foundry",openai:"OpenAI-compatible",codex:"Codex",gemini:"Google Gemini"}[q];K.push({label:"API provider",value:z})}if(q==="bedrock"){let z=process.env.BEDROCK_BASE_URL;if(z)K.push({label:"Bedrock base URL",value:z});if(K.push({label:"AWS region",value:uF()}),u6(process.env.PUKU_CLI_SKIP_BEDROCK_AUTH))K.push({value:"AWS auth skipped"})}else if(q==="vertex"){let z=process.env.VERTEX_BASE_URL;if(z)K.push({label:"Vertex base URL",value:z});let Y=process.env.ANTHROPIC_VERTEX_PROJECT_ID;if(Y)K.push({label:"GCP project",value:Y});if(K.push({label:"Default region",value:fR6()}),u6(process.env.PUKU_CLI_SKIP_VERTEX_AUTH))K.push({value:"GCP auth skipped"})}else if(q==="foundry"){let z=process.env.ANTHROPIC_FOUNDRY_BASE_URL;if(z)K.push({label:"Microsoft Foundry base URL",value:z});let Y=process.env.ANTHROPIC_FOUNDRY_RESOURCE;if(Y)K.push({label:"Microsoft Foundry resource",value:Y});if(u6(process.env.PUKU_CLI_SKIP_FOUNDRY_AUTH))K.push({value:"Microsoft Foundry auth skipped"})}else if(q==="openai"){let z=process.env.OPENAI_BASE_URL;if(z)K.push({label:"OpenAI base URL",value:Nf(z,process.env)??z});let Y=process.env.OPENAI_MODEL;if(Y){let O=Y,$=Bw({model:Y}),w=$.resolvedModel,H=$.reasoning?.effort;if(w&&w!==Y.toLowerCase())O=w;if(H)O=`${O} (${H})`;K.push({label:"Model",value:Nf(O,process.env)??O})}}else if(q==="codex"){let z=process.env.OPENAI_BASE_URL;if(z)K.push({label:"Codex base URL",value:Nf(z,process.env)??z});let Y=process.env.OPENAI_MODEL;if(Y){let O=Y,$=Bw({model:Y}),w=$.resolvedModel,H=$.reasoning?.effort;if(w&&w!==Y.toLowerCase())O=w;if(H)O=`${O} (${H})`;K.push({label:"Model",value:Nf(O,process.env)??O})}}else if(q==="gemini"){let z=process.env.GEMINI_BASE_URL;if(z)K.push({label:"Gemini base URL",value:Nf(z,process.env)??z});let Y=process.env.GEMINI_MODEL;if(Y)K.push({label:"Model",value:Nf(Y,process.env)??Y})}let _=qG();if(_)K.push({label:"Proxy",value:_});let A=cZ();if(process.env.NODE_EXTRA_CA_CERTS)K.push({label:"Additional CA cert(s)",value:process.env.NODE_EXTRA_CA_CERTS});if(A){if(A.cert&&process.env.PUKU_CLI_CLIENT_CERT)K.push({label:"mTLS client cert",value:process.env.PUKU_CLI_CLIENT_CERT});if(A.key&&process.env.PUKU_CLI_CLIENT_KEY)K.push({label:"mTLS client key",value:process.env.PUKU_CLI_CLIENT_KEY})}return K}function XJ_(q){let K=j2(q);if(q===null&&DK()){let _=A26();K=`${M8.bold("Default")} ${_}`}return K}var PJ_=h(()=>{L4();mK();n6();wK();w1();Pa();x8();X7();OK();z3();cK();Q7();_L();hV();HE();uX();Tz();C06();yO();Vq();_96();r()});function toA(){let q=T8(),_=oj(q)??W(T,{dimColor:!0,children:"/rename to add a name"});return[{label:"Version",value:"1.8.37"},{label:"Session name",value:_},{label:"Session ID",value:q},{label:"cwd",value:W8()},...MJ_(),...JJ_()]}function eoA({mainLoopModel:q,mcp:K,theme:_,context:A}){return[{label:"Model",value:XJ_(q)},...YJ_(K.clients,A.options.ideInstallationStatus,_),...OJ_(K.clients,_),...zJ_(),...wJ_()]}async function fJ_(){return[...await HJ_(),...await jJ_(),...await $J_()]}function qsA(q){let K=f78.c(8),{value:_}=q;if(Array.isArray(_)){let A;if(K[0]!==_){let Y;if(K[2]!==_.length)Y=(O,$)=>y(T,{children:[O,$<_.length-1?",":""]},$),K[2]=_.length,K[3]=Y;else Y=K[3];A=_.map(Y),K[0]=_,K[1]=A}else A=K[1];let z;if(K[4]!==A)z=W(x,{flexWrap:"wrap",columnGap:1,flexShrink:99,children:A}),K[4]=A,K[5]=z;else z=K[5];return z}if(typeof _==="string"){let A;if(K[6]!==_)A=W(T,{children:_}),K[6]=_,K[7]=A;else A=K[7];return A}return _}function WJ_(q){let K=f78.c(20),{context:_,diagnosticsPromise:A}=q,z=X8(zsA),Y=X8(AsA),[O]=fK(),$;if(K[0]===Symbol.for("react.memo_cache_sentinel"))$=toA(),K[0]=$;else $=K[0];let w;if(K[1]!==_||K[2]!==z||K[3]!==Y||K[4]!==O)w=eoA({mainLoopModel:z,mcp:Y,theme:O,context:_}),K[1]=_,K[2]=z,K[3]=Y,K[4]=O,K[5]=w;else w=K[5];let H;if(K[6]!==w)H=[$,w],K[6]=w,K[7]=H;else H=K[7];let j=H,M=NP()?1:void 0,J;if(K[8]!==j)J=j.map(KsA),K[8]=j,K[9]=J;else J=K[9];let X;if(K[10]!==A)X=W(W78.Suspense,{fallback:null,children:W(YsA,{promise:A})}),K[10]=A,K[11]=X;else X=K[11];let P;if(K[12]!==M||K[13]!==J||K[14]!==X)P=y(x,{flexDirection:"column",gap:1,flexGrow:M,children:[J,X]}),K[12]=M,K[13]=J,K[14]=X,K[15]=P;else P=K[15];let f;if(K[16]===Symbol.for("react.memo_cache_sentinel"))f=W(T,{dimColor:!0,children:W(a8,{action:"confirm:no",context:"Settings",fallback:"Esc",description:"cancel"})}),K[16]=f;else f=K[16];let D;if(K[17]!==M||K[18]!==P)D=y(x,{flexDirection:"column",flexGrow:M,children:[P,f]}),K[17]=M,K[18]=P,K[19]=D;else D=K[19];return D}function KsA(q,K){return q.length>0&&W(x,{flexDirection:"column",children:q.map(_sA)},K)}function _sA(q,K){let{label:_,value:A}=q;return y(x,{flexDirection:"row",gap:1,flexShrink:0,children:[_!==void 0&&y(T,{bold:!0,children:[_,":"]}),W(qsA,{value:A})]},K)}function AsA(q){return q.mcp}function zsA(q){return q.mainLoopModel}function YsA(q){let K=f78.c(5),{promise:_}=q,A=W78.use(_);if(A.length===0)return null;let z;if(K[0]===Symbol.for("react.memo_cache_sentinel"))z=W(T,{bold:!0,children:"System Diagnostics"}),K[0]=z;else z=K[0];let Y;if(K[1]!==A)Y=A.map(OsA),K[1]=A,K[2]=Y;else Y=K[2];let O;if(K[3]!==Y)O=y(x,{flexDirection:"column",paddingBottom:1,children:[z,Y]}),K[3]=Y,K[4]=O;else O=K[4];return O}function OsA(q,K){return y(x,{flexDirection:"row",gap:1,paddingX:1,children:[W(T,{color:"error",children:s6.warning}),typeof q==="string"?W(T,{wrap:"wrap",children:q}):q]},K)}var f78,W78;var DJ_=h(()=>{mK();G8();_R();n6();dq();nq();S_();PJ_();F7();r();f78=q6(K8(),1),W78=q6(q8(),1)});function lqq(){return!1}async function ZJ_(){return!1}function iqq(){return!1}function GJ_(){return!0}function vJ_(){return null}var zO6=h(()=>{wK();x8()});function YO6(q){let K=TJ_.c(59),{onThemeSelect:_,showIntroText:A,helpText:z,showHelpTextBelow:Y,hideEscToCancel:O,skipExitHandling:$,onCancel:w}=q,H=A===void 0?!1:A,j=z===void 0?"":z,M=Y===void 0?!1:Y,J=O===void 0?!1:O,X=$===void 0?!1:$,[P]=fK(),f=Uq6(),{columns:D}=Eq(),Z;if(K[0]===Symbol.for("react.memo_cache_sentinel"))Z=PT6(),K[0]=Z;else Z=K[0];let G=Z,v;if(K[1]!==P)v=G===null?l8_(P):null,K[1]=P,K[2]=v;else v=K[2];let k=v,{setPreviewTheme:N,savePreview:L,cancelPreview:C}=dc6(),b=X8(wsA)??!1,I=sq();Zr6("ThemePicker");let p=m7("theme:toggleSyntaxHighlighting","ThemePicker","ctrl+t"),m;if(K[3]!==I||K[4]!==b)m=()=>{if(G===null){let K6=!b;Sq("userSettings",{syntaxHighlightingDisabled:K6}),I(($6)=>({...$6,settings:{...$6.settings,syntaxHighlightingDisabled:K6}}))}},K[3]=I,K[4]=b,K[5]=m;else m=K[5];let B;if(K[6]===Symbol.for("react.memo_cache_sentinel"))B={context:"ThemePicker"},K[6]=B;else B=K[6];Kq("theme:toggleSyntaxHighlighting",m,B);let g=_4(X?$sA:void 0),u;if(K[7]===Symbol.for("react.memo_cache_sentinel"))u=[...[],{label:"Dark mode",value:"dark"},{label:"Light mode",value:"light"},{label:"Dark mode (colorblind-friendly)",value:"dark-daltonized"},{label:"Light mode (colorblind-friendly)",value:"light-daltonized"},{label:"Dark mode (ANSI colors only)",value:"dark-ansi"},{label:"Light mode (ANSI colors only)",value:"light-ansi"}],K[7]=u;else u=K[7];let F=u,U;if(K[8]!==H)U=H?W(T,{children:"Let's get started."}):W(T,{bold:!0,color:"permission",children:"Theme"}),K[8]=H,K[9]=U;else U=K[9];let d;if(K[10]===Symbol.for("react.memo_cache_sentinel"))d=W(T,{bold:!0,children:"Choose the text style that looks best with your terminal"}),K[10]=d;else d=K[10];let n;if(K[11]!==j||K[12]!==M)n=j&&!M&&W(T,{dimColor:!0,children:j}),K[11]=j,K[12]=M,K[13]=n;else n=K[13];let _6;if(K[14]!==n)_6=y(x,{flexDirection:"column",children:[d,n]}),K[14]=n,K[15]=_6;else _6=K[15];let o;if(K[16]!==N)o=(K6)=>{N(K6)},K[16]=N,K[17]=o;else o=K[17];let t;if(K[18]!==_||K[19]!==L)t=(K6)=>{L(),_(K6)},K[18]=_,K[19]=L,K[20]=t;else t=K[20];let a;if(K[21]!==C||K[22]!==w||K[23]!==X)a=X?()=>{C(),w?.()}:async()=>{C(),await j7(0)},K[21]=C,K[22]=w,K[23]=X,K[24]=a;else a=K[24];let s;if(K[25]!==o||K[26]!==t||K[27]!==a||K[28]!==f)s=W(l8,{options:F,onFocus:o,onChange:t,onCancel:a,visibleOptionCount:F.length,defaultValue:f,defaultFocusValue:f}),K[25]=o,K[26]=t,K[27]=a,K[28]=f,K[29]=s;else s=K[29];let e;if(K[30]!==U||K[31]!==_6||K[32]!==s)e=y(x,{flexDirection:"column",gap:1,children:[U,_6,s]}),K[30]=U,K[31]=_6,K[32]=s,K[33]=e;else e=K[33];let P6;if(K[34]===Symbol.for("react.memo_cache_sentinel"))P6={oldStart:1,newStart:1,oldLines:3,newLines:3,lines:[" function greet() {",'- console.log("Hello, World!");','+ console.log("Hello, Puku CLI!");'," }"]},K[34]=P6;else P6=K[34];let O6;if(K[35]!==D)O6=W(x,{flexDirection:"column",borderTop:!0,borderBottom:!0,borderLeft:!1,borderRight:!1,borderStyle:"dashed",borderColor:"subtle",children:W(pR,{patch:P6,dim:!1,filePath:"demo.js",firstLine:null,width:D})}),K[35]=D,K[36]=O6;else O6=K[36];let k6=G==="env"?`Syntax highlighting disabled (via PUKU_CLI_SYNTAX_HIGHLIGHT=${process.env.PUKU_CLI_SYNTAX_HIGHLIGHT})`:b?`Syntax highlighting disabled (${p} to enable)`:k?`Syntax theme: ${k.theme}${k.source?` (from ${k.source})`:""} (${p} to disable)`:`Syntax highlighting enabled (${p} to disable)`,H6;if(K[37]!==k6)H6=y(T,{dimColor:!0,children:[" ",k6]}),K[37]=k6,K[38]=H6;else H6=K[38];let J6;if(K[39]!==O6||K[40]!==H6)J6=y(x,{flexDirection:"column",width:"100%",children:[O6,H6]}),K[39]=O6,K[40]=H6,K[41]=J6;else J6=K[41];let w6;if(K[42]!==e||K[43]!==J6)w6=y(x,{flexDirection:"column",gap:1,children:[e,J6]}),K[42]=e,K[43]=J6,K[44]=w6;else w6=K[44];let j6=w6;if(!H){let K6;if(K[45]!==j6)K6=W(x,{flexDirection:"column",children:j6}),K[45]=j6,K[46]=K6;else K6=K[46];let $6;if(K[47]!==j||K[48]!==M)$6=M&&j&&W(x,{marginLeft:3,children:W(T,{dimColor:!0,children:j})}),K[47]=j,K[48]=M,K[49]=$6;else $6=K[49];let T6;if(K[50]!==g||K[51]!==J)T6=!J&&W(x,{children:W(T,{dimColor:!0,italic:!0,children:g.pending?y(Y8,{children:["Press ",g.keyName," again to exit"]}):y(Pq,{children:[W(c8,{shortcut:"Enter",action:"select"}),W(c8,{shortcut:"Esc",action:"cancel"})]})})}),K[50]=g,K[51]=J,K[52]=T6;else T6=K[52];let c6;if(K[53]!==$6||K[54]!==T6)c6=y(x,{marginTop:1,children:[$6,T6]}),K[53]=$6,K[54]=T6,K[55]=c6;else c6=K[55];let x6;if(K[56]!==K6||K[57]!==c6)x6=y(Y8,{children:[K6,c6]}),K[56]=K6,K[57]=c6,K[58]=x6;else x6=K[58];return x6}return j6}function $sA(){}function wsA(q){return q.settings.syntaxHighlightingDisabled}var TJ_;var Z78=h(()=>{A3();I_();n6();ZC();XK();P1();dq();bY();Vq();w5();q7();R7();c68();$z6();r();TJ_=q6(K8(),1)});function OO6(q){switch(q){case"low":return CTq;case"medium":return bTq;case"high":return LP8;case"max":return ITq;default:return LP8}}var G78=h(()=>{l5();eM()});function va(q){let K=aqq.c(82),{initial:_,sessionModel:A,onSelect:z,onCancel:Y,isStandaloneCommand:O,showFastModeNotice:$,headerText:w,skipSettingsWrite:H}=q,j=sq(),M=_4(),J=_===null?T78:_,[X,P]=v78.useState(J),f=X8(JsA),[D,Z]=v78.useState(!1),G=X8(MsA),v;if(K[0]!==G)v=G!==void 0?xl(G):void 0,K[0]=G,K[1]=v;else v=K[1];let[k,N]=v78.useState(v),L=f??!1,C;if(K[2]!==L)C=xB(L),K[2]=L,K[3]=C;else C=K[3];let b=C,I;q:{if(_!==null&&!b.some((Z6)=>Z6.value===_)){let Z6;if(K[4]!==_)Z6=j2(_),K[4]=_,K[5]=Z6;else Z6=K[5];let W6;if(K[6]!==_||K[7]!==Z6)W6={value:_,label:Z6,description:"Current model"},K[6]=_,K[7]=Z6,K[8]=W6;else W6=K[8];let E6;if(K[9]!==b||K[10]!==W6)E6=[...b,W6],K[9]=b,K[10]=W6,K[11]=E6;else E6=K[11];I=E6;break q}I=b}let p=I,m;if(K[12]!==p)m=p.map(jsA),K[12]=p,K[13]=m;else m=K[13];let B=m,g;if(K[14]!==J||K[15]!==B)g=B.some((Z6)=>Z6.value===J)?J:B[0]?.value??void 0,K[14]=J,K[15]=B,K[16]=g;else g=K[16];let u=g,F=Math.min(10,B.length),U=Math.max(0,B.length-F),d;if(K[17]!==X||K[18]!==B)d=B.find((Z6)=>Z6.value===X)?.label,K[17]=X,K[18]=B,K[19]=d;else d=K[19];let n=d,_6,o;if(K[20]!==X){let Z6=rqq(X);_6=Z6?tX(Z6):!1,o=Z6?j_6(Z6):!1,K[20]=X,K[21]=_6,K[22]=o}else _6=K[21],o=K[22];let t=o,a;if(K[23]!==X)a=nqq(X),K[23]=X,K[24]=a;else a=K[24];let s=a,e=k==="max"&&!t?"high":k,P6;if(K[25]!==G||K[26]!==D)P6=(Z6)=>{if(P(Z6),!D&&G===void 0)N(nqq(Z6))},K[25]=G,K[26]=D,K[27]=P6;else P6=K[27];let O6=P6,k6;if(K[28]!==s||K[29]!==_6||K[30]!==t)k6=(Z6)=>{if(!_6)return;N((W6)=>XsA(W6??s,Z6,t)),Z(!0)},K[28]=s,K[29]=_6,K[30]=t,K[31]=k6;else k6=K[31];let H6=k6,J6;if(K[32]!==H6)J6={"modelPicker:decreaseEffort":()=>H6("left"),"modelPicker:increaseEffort":()=>H6("right")},K[32]=H6,K[33]=J6;else J6=K[33];let w6;if(K[34]===Symbol.for("react.memo_cache_sentinel"))w6={context:"ModelPicker"},K[34]=w6;else w6=K[34];vK(J6,w6);let j6;if(K[35]!==k||K[36]!==D||K[37]!==z||K[38]!==j||K[39]!==H)j6=function(W6){if(Q("ev_event",{effort:k}),!H){let N6=ckK(k,nqq(W6),Oq("userSettings")?.effortLevel,D),U6=Gm(N6);if(U6!==void 0)Sq("userSettings",{effortLevel:U6});j((A8)=>({...A8,effortValue:N6}))}let E6=rqq(W6),C6=D&&E6&&tX(E6)?k:void 0;if(W6===T78){z(null,C6);return}z(W6,C6)},K[35]=k,K[36]=D,K[37]=z,K[38]=j,K[39]=H,K[40]=j6;else j6=K[40];let K6=j6,$6;if(K[41]===Symbol.for("react.memo_cache_sentinel"))$6=W(T,{color:"remember",bold:!0,children:"Select model"}),K[41]=$6;else $6=K[41];let T6=w??"Switch between puku-ai models. Applies to this session and future puku-cli sessions. For other/previous model names, specify with --model.",c6;if(K[42]!==T6)c6=W(T,{dimColor:!0,children:T6}),K[42]=T6,K[43]=c6;else c6=K[43];let x6;if(K[44]!==A)x6=A&&y(T,{dimColor:!0,children:["Currently using ",j2(A)," for this session (set by plan mode). Selecting a model will undo this."]}),K[44]=A,K[45]=x6;else x6=K[45];let F6;if(K[46]!==c6||K[47]!==x6)F6=y(x,{marginBottom:1,flexDirection:"column",children:[$6,c6,x6]}),K[46]=c6,K[47]=x6,K[48]=F6;else F6=K[48];let a6=Y??HsA,b6;if(K[49]!==O6||K[50]!==K6||K[51]!==u||K[52]!==J||K[53]!==B||K[54]!==a6||K[55]!==F)b6=W(x,{flexDirection:"column",children:W(l8,{defaultValue:J,defaultFocusValue:u,options:B,onChange:K6,onFocus:O6,onCancel:a6,visibleOptionCount:F})}),K[49]=O6,K[50]=K6,K[51]=u,K[52]=J,K[53]=B,K[54]=a6,K[55]=F,K[56]=b6;else b6=K[56];let L6;if(K[57]!==U)L6=U>0&&W(x,{paddingLeft:3,children:y(T,{dimColor:!0,children:["and ",U," more…"]})}),K[57]=U,K[58]=L6;else L6=K[58];let f6;if(K[59]!==b6||K[60]!==L6)f6=y(x,{flexDirection:"column",marginBottom:1,children:[b6,L6]}),K[59]=b6,K[60]=L6,K[61]=f6;else f6=K[61];let D6;if(K[62]!==e||K[63]!==s||K[64]!==n||K[65]!==_6)D6=W(x,{marginBottom:1,flexDirection:"column",children:_6?y(T,{dimColor:!0,children:[W(kJ_,{effort:e})," ",EC(e)," effort",e===s?" (default)":""," ",W(T,{color:"subtle",children:"← → to adjust"})]}):y(T,{color:"subtle",children:[W(kJ_,{effort:void 0})," Effort not supported",n?` for ${n}`:""]})}),K[62]=e,K[63]=s,K[64]=n,K[65]=_6,K[66]=D6;else D6=K[66];let i6;if(K[67]!==$)i6=K7()?$?W(x,{marginBottom:1,children:y(T,{dimColor:!0,children:["Fast mode is ",W(T,{bold:!0,children:"ON"})," and available with"," ",tT," only (/fast). Switching to other models turn off fast mode."]})}):T9()&&!FV()?W(x,{marginBottom:1,children:y(T,{dimColor:!0,children:["Use ",W(T,{bold:!0,children:"/fast"})," to turn on Fast mode (",tT," only)."]})}):null:null,K[67]=$,K[68]=i6;else i6=K[68];let o6;if(K[69]!==F6||K[70]!==f6||K[71]!==D6||K[72]!==i6)o6=y(x,{flexDirection:"column",children:[F6,f6,D6,i6]}),K[69]=F6,K[70]=f6,K[71]=D6,K[72]=i6,K[73]=o6;else o6=K[73];let h6;if(K[74]!==M||K[75]!==O)h6=O&&W(T,{dimColor:!0,italic:!0,children:M.pending?y(Y8,{children:["Press ",M.keyName," again to exit"]}):y(Pq,{children:[W(c8,{shortcut:"Enter",action:"confirm"}),W(a8,{action:"select:cancel",context:"Select",fallback:"Esc",description:"exit"})]})}),K[74]=M,K[75]=O,K[76]=h6;else h6=K[76];let V6;if(K[77]!==o6||K[78]!==h6)V6=y(x,{flexDirection:"column",children:[o6,h6]}),K[77]=o6,K[78]=h6,K[79]=V6;else V6=K[79];let g6=V6;if(!O)return g6;let G6;if(K[80]!==g6)G6=W($5,{color:"permission",children:g6}),K[80]=g6,K[81]=G6;else G6=K[81];return G6}function HsA(){}function jsA(q){return{...q,value:q.value===null?T78:q.value}}function MsA(q){return q.effortValue}function JsA(q){return K7()?q.fastMode:!1}function rqq(q){if(!q)return;return q===T78?fj():W7(q)}function kJ_(q){let K=aqq.c(5),{effort:_}=q,A=_?"puku":"subtle",z=_??"low",Y;if(K[0]!==z)Y=OO6(z),K[0]=z,K[1]=Y;else Y=K[1];let O;if(K[2]!==A||K[3]!==Y)O=W(T,{color:A,children:Y}),K[2]=A,K[3]=Y,K[4]=O;else O=K[4];return O}function XsA(q,K,_){let A=_?["low","medium","high","max"]:["low","medium","high"],z=A.indexOf(q),Y=z!==-1?z:A.indexOf("high");if(K==="right")return A[(Y+1)%A.length];else return A[(Y-1+A.length)%A.length]}function nqq(q){let K=rqq(q)??fj(),_=Lf6(K);return _!==void 0?xl(_):"high"}var aqq,v78,T78="__NO_PREFERENCE__";var k78=h(()=>{LZ6();A3();Pj();n6();XK();dq();eM();cK();oT6();Vq();F7();w5();q7();R7();vH();G78();r();aqq=q6(K8(),1),v78=q6(q8(),1)});function Ta(q,K,_){if(!DK())return!1;if(K)return!0;if(q===null||!fW(q))return!1;let A=q.toLowerCase().replace(/\[1m\]$/,"").trim(),z=A==="opus"||A.includes("opus-4-6"),Y=A==="sonnet"||A.includes("sonnet-4-6");if(z&&_)return!1;return z||Y}var N78=h(()=>{wK();_w()});var yJ_={};S8(yJ_,{PukuMdExternalIncludesDialog:()=>oqq});function oqq(q){let K=NJ_.c(18),{onDone:_,isStandaloneDialog:A,externalIncludes:z}=q,Y;if(K[0]===Symbol.for("react.memo_cache_sentinel"))Y=[],K[0]=Y;else Y=K[0];VJ_.default.useEffect(DsA,Y);let O;if(K[1]!==_)O=(G)=>{if(G==="no")Q("ev_event",{}),EO(WsA);else Q("ev_event",{}),EO(fsA);_()},K[1]=_,K[2]=O;else O=K[2];let $=O,w;if(K[3]!==$)w=()=>{$("no")},K[3]=$,K[4]=w;else w=K[4];let H=w,j=!A,M=!A,J;if(K[5]===Symbol.for("react.memo_cache_sentinel"))J=W(T,{children:"This project's CLAUDE.md imports files outside the current working directory. Never allow this for third-party repositories."}),K[5]=J;else J=K[5];let X;if(K[6]!==z)X=z&&z.length>0&&y(x,{flexDirection:"column",children:[W(T,{dimColor:!0,children:"External imports:"}),z.map(PsA)]}),K[6]=z,K[7]=X;else X=K[7];let P;if(K[8]===Symbol.for("react.memo_cache_sentinel"))P=y(T,{dimColor:!0,children:["Important: Only use Puku with files you trust. Accessing untrusted files may pose security risks"," ",W(aK,{url:"https://puku.sh/docs/en/security"})," "]}),K[8]=P;else P=K[8];let f;if(K[9]===Symbol.for("react.memo_cache_sentinel"))f=[{label:"Yes, allow external imports",value:"yes"},{label:"No, disable external imports",value:"no"}],K[9]=f;else f=K[9];let D;if(K[10]!==$)D=W(l8,{options:f,onChange:(G)=>$(G)}),K[10]=$,K[11]=D;else D=K[11];let Z;if(K[12]!==H||K[13]!==D||K[14]!==j||K[15]!==M||K[16]!==X)Z=y(Hq,{title:"Allow external CLAUDE.md file imports?",color:"warning",onCancel:H,hideBorder:j,hideInputGuide:M,children:[J,X,P,D]}),K[12]=H,K[13]=D,K[14]=j,K[15]=M,K[16]=X,K[17]=Z;else Z=K[17];return Z}function PsA(q,K){return y(T,{dimColor:!0,children:[" ",q.path]},K)}function fsA(q){return{...q,hasClaudeMdExternalIncludesApproved:!0,hasClaudeMdExternalIncludesWarningShown:!0}}function WsA(q){return{...q,hasClaudeMdExternalIncludesApproved:!1,hasClaudeMdExternalIncludesWarningShown:!0}}function DsA(){Q("ev_event",{})}var NJ_,VJ_;var sqq=h(()=>{n6();Wq();w5();c_();r();NJ_=q6(K8(),1),VJ_=q6(q8(),1)});function EJ_(q){let K=RJ_.c(17),{currentVersion:_,onChoice:A}=q,z;if(K[0]!==A)z=function(D){A(D)},K[0]=A,K[1]=z;else z=K[1];let Y=z,O;if(K[2]!==A)O=function(){A("cancel")},K[2]=A,K[3]=O;else O=K[3];let $=O,w;if(K[4]!==_)w=y(T,{children:["The stable channel may have an older version than what you're currently running (",_,")."]}),K[4]=_,K[5]=w;else w=K[5];let H;if(K[6]===Symbol.for("react.memo_cache_sentinel"))H=W(T,{dimColor:!0,children:"How would you like to handle this?"}),K[6]=H;else H=K[6];let j;if(K[7]===Symbol.for("react.memo_cache_sentinel"))j={label:"Allow possible downgrade to stable version",value:"downgrade"},K[7]=j;else j=K[7];let M=`Stay on current version (${_}) until stable catches up`,J;if(K[8]!==M)J=[j,{label:M,value:"stay"}],K[8]=M,K[9]=J;else J=K[9];let X;if(K[10]!==Y||K[11]!==J)X=W(l8,{options:J,onChange:Y}),K[10]=Y,K[11]=J,K[12]=X;else X=K[12];let P;if(K[13]!==$||K[14]!==w||K[15]!==X)P=y(Hq,{title:"Switch to Stable Channel",onCancel:$,color:"permission",hideBorder:!0,hideInputGuide:!0,children:[w,H,X]}),K[13]=$,K[14]=w,K[15]=X,K[16]=P;else P=K[16];return P}var RJ_;var LJ_=h(()=>{n6();w5();c_();r();RJ_=q6(K8(),1)});function hJ_(q){return Object.entries(q).map(([K,_])=>({label:_?.name??ZsA,value:K,description:_?.description??GsA}))}function CJ_(q){let K=SJ_.c(16),{initialStyle:_,onComplete:A,onCancel:z,isStandaloneCommand:Y}=q,O;if(K[0]===Symbol.for("react.memo_cache_sentinel"))O=[],K[0]=O;else O=K[0];let[$,w]=b06.useState(O),[H,j]=b06.useState(!0),M,J;if(K[1]===Symbol.for("react.memo_cache_sentinel"))M=()=>{uY6(W8()).then((k)=>{let N=hJ_(k);w(N),j(!1)}).catch(()=>{let k=hJ_(Ci);w(k),j(!1)})},J=[],K[1]=M,K[2]=J;else M=K[1],J=K[2];b06.useEffect(M,J);let X;if(K[3]!==A)X=(k)=>{A(k)},K[3]=A,K[4]=X;else X=K[4];let P=X,f=!Y,D=!Y,Z;if(K[5]===Symbol.for("react.memo_cache_sentinel"))Z=W(x,{marginTop:1,children:W(T,{dimColor:!0,children:"This changes how Puku communicates with you"})}),K[5]=Z;else Z=K[5];let G;if(K[6]!==P||K[7]!==_||K[8]!==H||K[9]!==$)G=y(x,{flexDirection:"column",gap:1,children:[Z,H?W(T,{dimColor:!0,children:"Loading output styles…"}):W(l8,{options:$,onChange:P,visibleOptionCount:10,defaultValue:_})]}),K[6]=P,K[7]=_,K[8]=H,K[9]=$,K[10]=G;else G=K[10];let v;if(K[11]!==z||K[12]!==f||K[13]!==D||K[14]!==G)v=W(Hq,{title:"Preferred output style",onCancel:z,hideInputGuide:f,hideBorder:D,children:G}),K[11]=z,K[12]=f,K[13]=D,K[14]=G,K[15]=v;else v=K[15];return v}var SJ_,b06,ZsA="Default",GsA="Puku CLI completes coding tasks efficiently and provides concise responses";var bJ_=h(()=>{Fy();n6();nq();b4();c_();r();SJ_=q6(K8(),1),b06=q6(q8(),1)});function xJ_(q){let K=IJ_.c(13),{initialLanguage:_,onComplete:A,onCancel:z}=q,[Y,O]=tqq.useState(_),[$,w]=tqq.useState((_??"").length),H;if(K[0]===Symbol.for("react.memo_cache_sentinel"))H={context:"Settings"},K[0]=H;else H=K[0];Kq("confirm:no",z,H);let j;if(K[1]!==Y||K[2]!==A)j=function(){let v=Y?.trim();A(v||void 0)},K[1]=Y,K[2]=A,K[3]=j;else j=K[3];let M=j,J;if(K[4]===Symbol.for("react.memo_cache_sentinel"))J=W(T,{children:"Enter your preferred response and voice language:"}),K[4]=J;else J=K[4];let X;if(K[5]===Symbol.for("react.memo_cache_sentinel"))X=W(T,{children:s6.pointer}),K[5]=X;else X=K[5];let P=Y??"",f;if(K[6]!==$||K[7]!==M||K[8]!==P)f=y(x,{flexDirection:"row",gap:1,children:[X,W(CA,{value:P,onChange:O,onSubmit:M,focus:!0,showCursor:!0,placeholder:`e.g., Japanese, 日本語, Español${s6.ellipsis}`,columns:60,cursorOffset:$,onChangeCursorOffset:w})]}),K[6]=$,K[7]=M,K[8]=P,K[9]=f;else f=K[9];let D;if(K[10]===Symbol.for("react.memo_cache_sentinel"))D=W(T,{dimColor:!0,children:"Leave empty for default (English)"}),K[10]=D;else D=K[10];let Z;if(K[11]!==f)Z=y(x,{flexDirection:"column",gap:1,children:[J,f,D]}),K[11]=f,K[12]=Z;else Z=K[12];return Z}var IJ_,tqq;var uJ_=h(()=>{mK();n6();XK();D1();r();IJ_=q6(K8(),1),tqq=q6(q8(),1)});function o0(q){let K=pJ_.c(17),{query:_,placeholder:A,isFocused:z,isTerminalFocused:Y,prefix:O,width:$,cursorOffset:w,borderless:H}=q,j=A===void 0?"Search…":A,M=O===void 0?"⌕":O,J=H===void 0?!1:H,X=w??_.length,P=J?void 0:"round",f=z?"suggestion":void 0,D=!z,Z=J?0:1,G=!z,v;if(K[0]!==z||K[1]!==Y||K[2]!==X||K[3]!==j||K[4]!==_)v=z?W(Y8,{children:_?Y?y(Y8,{children:[W(T,{children:_.slice(0,X)}),W(T,{inverse:!0,children:X<_.length?_[X]:" "}),X<_.length&&W(T,{children:_.slice(X+1)})]}):W(T,{children:_}):Y?y(Y8,{children:[W(T,{inverse:!0,children:j.charAt(0)}),W(T,{dimColor:!0,children:j.slice(1)})]}):W(T,{dimColor:!0,children:j})}):_?W(T,{children:_}):W(T,{children:j}),K[0]=z,K[1]=Y,K[2]=X,K[3]=j,K[4]=_,K[5]=v;else v=K[5];let k;if(K[6]!==M||K[7]!==G||K[8]!==v)k=y(T,{dimColor:G,children:[M," ",v]}),K[6]=M,K[7]=G,K[8]=v,K[9]=k;else k=K[9];let N;if(K[10]!==k||K[11]!==P||K[12]!==f||K[13]!==D||K[14]!==Z||K[15]!==$)N=W(x,{flexShrink:0,borderStyle:P,borderColor:f,borderDimColor:D,paddingX:Z,width:$,children:k}),K[10]=k,K[11]=P,K[12]=f,K[13]=D,K[14]=Z,K[15]=$,K[16]=N;else N=K[16];return N}var pJ_;var ka=h(()=>{n6();r();pJ_=q6(K8(),1)});function vsA(q){if(q.ctrl&&(q.key==="k"||q.key==="u"||q.key==="w"))return!0;if(q.meta&&q.key==="backspace")return!0;return!1}function TsA(q){return(q.ctrl||q.meta)&&q.key==="y"}function GD({isActive:q,onExit:K,onCancel:_,onExitUp:A,columns:z,passthroughCtrlKeys:Y=[],initialQuery:O="",backspaceExitsOnEmpty:$=!0}){let{columns:w}=Eq(),H=z??w,[j,M]=I06.useState(O),[J,X]=I06.useState(O.length),P=I06.useCallback((D)=>{M(D),X(D.length)},[]),f=(D)=>{if(!q)return;let Z=h7.fromText(j,H,J);if(D.ctrl&&Y.includes(D.key.toLowerCase()))return;if(!vsA(D))j06();if(!TsA(D))M06();if(D.key==="return"||D.key==="down"){D.preventDefault(),K();return}if(D.key==="up"){if(D.preventDefault(),A)A();return}if(D.key==="escape"){if(D.preventDefault(),_)_();else if(j.length>0)M(""),X(0);else K();return}if(D.key==="backspace"){if(D.preventDefault(),D.meta){let{cursor:v,killed:k}=Z.deleteWordBefore();cb(k,"prepend"),M(v.text),X(v.offset);return}if(j.length===0){if($)(_??K)();return}let G=Z.backspace();M(G.text),X(G.offset);return}if(D.key==="delete"){D.preventDefault();let G=Z.del();M(G.text),X(G.offset);return}if(D.key==="left"&&(D.ctrl||D.meta||D.fn)){D.preventDefault();let G=Z.prevWord();X(G.offset);return}if(D.key==="right"&&(D.ctrl||D.meta||D.fn)){D.preventDefault();let G=Z.nextWord();X(G.offset);return}if(D.key==="left"){D.preventDefault();let G=Z.left();X(G.offset);return}if(D.key==="right"){D.preventDefault();let G=Z.right();X(G.offset);return}if(D.key==="home"){D.preventDefault(),X(0);return}if(D.key==="end"){D.preventDefault(),X(j.length);return}if(D.ctrl){switch(D.preventDefault(),D.key.toLowerCase()){case"a":X(0);return;case"e":X(j.length);return;case"b":X(Z.left().offset);return;case"f":X(Z.right().offset);return;case"d":{if(j.length===0){(_??K)();return}let G=Z.del();M(G.text),X(G.offset);return}case"h":{if(j.length===0){if($)(_??K)();return}let G=Z.backspace();M(G.text),X(G.offset);return}case"k":{let{cursor:G,killed:v}=Z.deleteToLineEnd();cb(v,"append"),M(G.text),X(G.offset);return}case"u":{let{cursor:G,killed:v}=Z.deleteToLineStart();cb(v,"prepend"),M(G.text),X(G.offset);return}case"w":{let{cursor:G,killed:v}=Z.deleteWordBefore();cb(v,"prepend"),M(G.text),X(G.offset);return}case"y":{let G=k_8();if(G.length>0){let v=Z.offset,k=Z.insert(G);N_8(v,G.length),M(k.text),X(k.offset)}return}case"g":case"c":if(_){_();return}}return}if(D.meta){switch(D.preventDefault(),D.key.toLowerCase()){case"b":X(Z.prevWord().offset);return;case"f":X(Z.nextWord().offset);return;case"d":{let G=Z.deleteWordAfter();M(G.text),X(G.offset);return}case"y":{let G=V_8();if(G){let{text:v,start:k,length:N}=G,L=j.slice(0,k),C=j.slice(k+N),b=L+v+C,I=k+v.length;y_8(v.length),M(b),X(I)}return}}return}if(D.key==="tab")return;if(D.key.length>=1&&!ksA.has(D.key)){D.preventDefault();let G=Z.insert(D.key);M(G.text),X(G.offset)}};return lK((D,Z,G)=>{f(new Wk(G.keypress))},{isActive:q}),{query:j,setQuery:P,cursorOffset:J,handleKeyDown:f}}var I06,ksA;var wc=h(()=>{vK6();n6();Ya();I_();I06=q6(q8(),1);ksA=new Set(["pageup","pagedown","insert","wheelup","wheeldown","mouse","f1","f2","f3","f4","f5","f6","f7","f8","f9","f10","f11","f12"])});function BJ_({onClose:q,context:K,setTabsHidden:_,onIsSearchModeChange:A,contentHeight:z}){let{headerFocused:Y,focusHeader:O,blurHeader:$}=EJ(),w=NP(),[,H]=fK(),j=Uq6(),[M,J]=w9.useState(j8()),X=HM.useRef(j8()),[P,f]=w9.useState(YK()),D=HM.useRef(YK()),[Z,G]=w9.useState(P?.outputStyle||b2),v=HM.useRef(Z),[k,N]=w9.useState(P?.language),L=HM.useRef(k),[C,b]=w9.useState(0),[I,p]=w9.useState(0),[m,B]=w9.useState(!0),g=hO(),{rows:u}=Eq(),F=z??Math.min(Math.floor(u*0.8),30),U=Math.max(5,F-10),d=X8((v6)=>v6.mainLoopModel),n=X8((v6)=>v6.verbose),_6=X8((v6)=>v6.thinkingEnabled),o=X8((v6)=>K7()?v6.fastMode:!1),t=X8((v6)=>v6.promptSuggestionEnabled),a=$_8()||w06()==="enabled",s=!1,e=sq(),[P6,O6]=w9.useState({}),k6=HM.useRef(_6),[H6]=w9.useState(()=>Oq("localSettings")),[J6]=w9.useState(()=>Oq("userSettings")),w6=HM.useRef(j),j6=y5(),[K6]=w9.useState(()=>{let v6=j6.getState();return{mainLoopModel:v6.mainLoopModel,mainLoopModelForSession:v6.mainLoopModelForSession,verbose:v6.verbose,thinkingEnabled:v6.thinkingEnabled,fastMode:v6.fastMode,promptSuggestionEnabled:v6.promptSuggestionEnabled,isBriefOnly:v6.isBriefOnly,replBridgeEnabled:v6.replBridgeEnabled,replBridgeOutboundOnly:v6.replBridgeOutboundOnly,settings:v6.settings}}),[$6]=w9.useState(()=>DE6()),T6=HM.useRef(!1),[c6,x6]=w9.useState(!1),[F6,a6]=w9.useState(null),{query:b6,setQuery:L6,cursorOffset:f6}=GD({isActive:m&&F6===null&&!Y,onExit:()=>B(!1),onExitUp:O,passthroughCtrlKeys:["c","d"]}),D6=m&&!Y;HM.useEffect(()=>{A?.(D6)},[D6,A]);let i6=Da6(K.options.mcpClients),o6=!u6(process.env.PUKU_CLI_DISABLE_FILE_CHECKPOINTING),h6=HM.use(i$(!0)),V6=cm8(h6),g6=jd();function G6(v6){Q("ev_event",{from_model:d,to_model:v6}),e((H8)=>({...H8,mainLoopModel:v6,mainLoopModelForSession:null})),O6((H8)=>{let E8=j2(v6)+(Ta(v6,!1,PW())?" · Billed as extra usage":"");if("model"in H8){let{model:$q,...vq}=H8;return{...vq,model:E8}}return{...H8,model:E8}})}function Z6(v6){B8((r6)=>({...r6,verbose:v6})),J({...j8(),verbose:v6}),e((r6)=>({...r6,verbose:v6})),O6((r6)=>{if("verbose"in r6){let{verbose:H8,...E8}=r6;return E8}return{...r6,verbose:v6}})}let W6=[{id:"autoCompactEnabled",label:"Auto-compact",value:M.autoCompactEnabled,type:"boolean",onChange(v6){B8((r6)=>({...r6,autoCompactEnabled:v6})),J({...j8(),autoCompactEnabled:v6}),Q("ev_event",{enabled:v6})}},{id:"spinnerTipsEnabled",label:"Show tips",value:P?.spinnerTipsEnabled??!0,type:"boolean",onChange(v6){Sq("localSettings",{spinnerTipsEnabled:v6}),f((r6)=>({...r6,spinnerTipsEnabled:v6})),Q("ev_event",{enabled:v6})}},{id:"prefersReducedMotion",label:"Reduce motion",value:P?.prefersReducedMotion??!1,type:"boolean",onChange(v6){Sq("localSettings",{prefersReducedMotion:v6}),f((r6)=>({...r6,prefersReducedMotion:v6})),e((r6)=>({...r6,settings:{...r6.settings,prefersReducedMotion:v6}})),Q("ev_event",{enabled:v6})}},{id:"thinkingEnabled",label:"Thinking mode",value:_6??!0,type:"boolean",onChange(v6){e((r6)=>({...r6,thinkingEnabled:v6})),Sq("userSettings",{alwaysThinkingEnabled:v6?void 0:!1}),Q("ev_event",{enabled:v6})}},...K7()&&T9()?[{id:"fastMode",label:`Fast mode (${tT} only)`,value:!!o,type:"boolean",onChange(v6){if(VQ(),Sq("userSettings",{fastMode:v6?!0:void 0}),v6)e((r6)=>({...r6,mainLoopModel:tJ6(),mainLoopModelForSession:null,fastMode:!0})),O6((r6)=>({...r6,model:tJ6(),"Fast mode":"ON"}));else e((r6)=>({...r6,fastMode:!1})),O6((r6)=>({...r6,"Fast mode":"OFF"}))}}]:[],...s8("ev_event",!1)?[{id:"promptSuggestionEnabled",label:"Prompt suggestions",value:t,type:"boolean",onChange(v6){e((r6)=>({...r6,promptSuggestionEnabled:v6})),Sq("userSettings",{promptSuggestionEnabled:v6?void 0:!1})}}]:[],...[],...o6?[{id:"fileCheckpointingEnabled",label:"Rewind code (checkpoints)",value:M.fileCheckpointingEnabled,type:"boolean",onChange(v6){B8((r6)=>({...r6,fileCheckpointingEnabled:v6})),J({...j8(),fileCheckpointingEnabled:v6}),Q("ev_event",{enabled:v6})}}]:[],{id:"verbose",label:"Verbose output",value:n,type:"boolean",onChange:Z6},{id:"terminalProgressBarEnabled",label:"Terminal progress bar",value:M.terminalProgressBarEnabled,type:"boolean",onChange(v6){B8((r6)=>({...r6,terminalProgressBarEnabled:v6})),J({...j8(),terminalProgressBarEnabled:v6}),Q("ev_event",{enabled:v6})}},...s8("ev_event",!1)?[{id:"showStatusInTerminalTab",label:"Show status in terminal tab",value:M.showStatusInTerminalTab??!1,type:"boolean",onChange(v6){B8((r6)=>({...r6,showStatusInTerminalTab:v6})),J({...j8(),showStatusInTerminalTab:v6}),Q("ev_event",{enabled:v6})}}]:[],{id:"showTurnDuration",label:"Show turn duration",value:M.showTurnDuration,type:"boolean",onChange(v6){B8((r6)=>({...r6,showTurnDuration:v6})),J({...j8(),showTurnDuration:v6}),Q("ev_event",{enabled:v6})}},{id:"defaultPermissionMode",label:"Default permission mode",value:P?.permissions?.defaultMode||"default",options:(()=>{let v6=["default","plan"],r6=sJ,H8=["bypassPermissions"];if(!a)H8.push("auto");return[...v6,...r6.filter((E8)=>!v6.includes(E8)&&!H8.includes(E8))]})(),type:"enum",onChange(v6){let r6=Uf(v6),H8=UTq(r6)?ST(r6):r6,E8=Sq("userSettings",{permissions:{...P?.permissions,defaultMode:H8}});if(E8.error){A6(E8.error);return}f(($q)=>({...$q,permissions:{...$q?.permissions,defaultMode:H8}})),O6(($q)=>({...$q,defaultPermissionMode:v6})),Q("ev_event",{setting:"defaultPermissionMode",value:v6})}},...a?[{id:"useAutoModeDuringPlan",label:"Use auto mode during plan",value:P?.useAutoModeDuringPlan??!0,type:"boolean",onChange(v6){Sq("userSettings",{useAutoModeDuringPlan:v6}),f((r6)=>({...r6,useAutoModeDuringPlan:v6})),e((r6)=>{let H8=FY6(r6.toolPermissionContext);if(H8===r6.toolPermissionContext)return r6;return{...r6,toolPermissionContext:H8}}),O6((r6)=>({...r6,"Use auto mode during plan":v6}))}}]:[],{id:"respectGitignore",label:"Respect .gitignore in file picker",value:M.respectGitignore,type:"boolean",onChange(v6){B8((r6)=>({...r6,respectGitignore:v6})),J({...j8(),respectGitignore:v6}),Q("ev_event",{enabled:v6})}},{id:"copyFullResponse",label:"Always copy full response (skip /copy picker)",value:M.copyFullResponse,type:"boolean",onChange(v6){B8((r6)=>({...r6,copyFullResponse:v6})),J({...j8(),copyFullResponse:v6}),Q("ev_event",{setting:"copyFullResponse",value:String(v6)})}},...E_()?[{id:"copyOnSelect",label:"Copy on select",value:M.copyOnSelect??!0,type:"boolean",onChange(v6){B8((r6)=>({...r6,copyOnSelect:v6})),J({...j8(),copyOnSelect:v6}),Q("ev_event",{setting:"copyOnSelect",value:String(v6)})}}]:[],{id:"flickerFreeMode",label:"Flicker-free mode",value:M.flickerFreeMode??process.env.USER_TYPE==="ant",type:"boolean",onChange(v6){B8((r6)=>({...r6,flickerFreeMode:v6})),J({...j8(),flickerFreeMode:v6}),Q("ev_event",{setting:"flickerFreeMode",value:String(v6)})}},g6?{id:"autoUpdatesChannel",label:"Auto-update channel",value:"disabled",type:"managedEnum",onChange(){}}:{id:"autoUpdatesChannel",label:"Auto-update channel",value:P?.autoUpdatesChannel??"latest",type:"managedEnum",onChange(){}},{id:"theme",label:"Theme",value:j,type:"managedEnum",onChange:H},{id:"notifChannel",label:"Notifications",value:M.preferredNotifChannel,options:["auto","iterm2","terminal_bell","iterm2_with_bell","kitty","ghostty","notifications_disabled"],type:"enum",onChange(v6){B8((r6)=>({...r6,preferredNotifChannel:v6})),J({...j8(),preferredNotifChannel:v6})}},...[],{id:"outputStyle",label:"Output style",value:Z,type:"managedEnum",onChange:()=>{}},...[],{id:"language",label:"Language",value:k??"Default (English)",type:"managedEnum",onChange:()=>{}},{id:"editorMode",label:"Editor mode",value:M.editorMode==="emacs"?"normal":M.editorMode||"normal",options:["normal","vim"],type:"enum",onChange(v6){B8((r6)=>({...r6,editorMode:v6})),J({...j8(),editorMode:v6}),Q("ev_event",{mode:v6,source:"config_panel"})}},{id:"prStatusFooterEnabled",label:"Show PR status footer",value:M.prStatusFooterEnabled??!0,type:"boolean",onChange(v6){B8((r6)=>{if(r6.prStatusFooterEnabled===v6)return r6;return{...r6,prStatusFooterEnabled:v6}}),J({...j8(),prStatusFooterEnabled:v6}),Q("ev_event",{enabled:v6})}},{id:"model",label:"Model",value:d===null?"Default (recommended)":j2(d),type:"managedEnum",onChange:G6},...i6?[{id:"diffTool",label:"Diff tool",value:M.diffTool??"auto",options:["terminal","auto"],type:"enum",onChange(v6){B8((r6)=>({...r6,diffTool:v6})),J({...j8(),diffTool:v6}),Q("ev_event",{tool:v6,source:"config_panel"})}}]:[],...!Zw()?[{id:"autoConnectIde",label:"Auto-connect to IDE (external terminal)",value:M.autoConnectIde??!1,type:"boolean",onChange(v6){B8((r6)=>({...r6,autoConnectIde:v6})),J({...j8(),autoConnectIde:v6}),Q("ev_event",{enabled:v6,source:"config_panel"})}}]:[],...Zw()?[{id:"autoInstallIdeExtension",label:"Auto-install IDE extension",value:M.autoInstallIdeExtension??!0,type:"boolean",onChange(v6){B8((r6)=>({...r6,autoInstallIdeExtension:v6})),J({...j8(),autoInstallIdeExtension:v6}),Q("ev_event",{enabled:v6,source:"config_panel"})}}]:[],{id:"pukuInChromeDefaultEnabled",label:"Puku in Chrome enabled by default",value:M.pukuInChromeDefaultEnabled??!0,type:"boolean",onChange(v6){B8((r6)=>({...r6,pukuInChromeDefaultEnabled:v6})),J({...j8(),pukuInChromeDefaultEnabled:v6}),Q("ev_event",{enabled:v6})}},...uK()?(()=>{let v6=ql8();return[{id:"teammateMode",label:v6?`Teammate mode [overridden: ${v6}]`:"Teammate mode",value:M.teammateMode??"auto",options:["auto","tmux","in-process"],type:"enum",onChange(H8){if(H8!=="auto"&&H8!=="tmux"&&H8!=="in-process")return;Kl8(H8),B8((E8)=>({...E8,teammateMode:H8})),J({...j8(),teammateMode:H8}),Q("ev_event",{mode:H8})}},{id:"teammateDefaultModel",label:"Default teammate model",value:mJ_(M.teammateDefaultModel),type:"managedEnum",onChange(){}}]})():[],...[],...V6?[{id:"showExternalIncludesDialog",label:"External CLAUDE.md includes",value:(()=>{if(OO().hasClaudeMdExternalIncludesApproved)return"true";else return"false"})(),type:"managedEnum",onChange(){}}]:[],...process.env.ANTHROPIC_API_KEY&&!PT()?[{id:"apiKey",label:y(T,{children:["Use custom API key:"," ",W(T,{bold:!0,children:gX(process.env.ANTHROPIC_API_KEY)})]}),searchText:"Use custom API key",value:Boolean(process.env.ANTHROPIC_API_KEY&&M.customApiKeyResponses?.approved?.includes(gX(process.env.ANTHROPIC_API_KEY))),type:"boolean",onChange(v6){B8((r6)=>{let H8={...r6};if(!H8.customApiKeyResponses)H8.customApiKeyResponses={approved:[],rejected:[]};if(!H8.customApiKeyResponses.approved)H8.customApiKeyResponses={...H8.customApiKeyResponses,approved:[]};if(!H8.customApiKeyResponses.rejected)H8.customApiKeyResponses={...H8.customApiKeyResponses,rejected:[]};if(process.env.ANTHROPIC_API_KEY){let E8=gX(process.env.ANTHROPIC_API_KEY);if(v6)H8.customApiKeyResponses={...H8.customApiKeyResponses,approved:[...(H8.customApiKeyResponses.approved??[]).filter(($q)=>$q!==E8),E8],rejected:(H8.customApiKeyResponses.rejected??[]).filter(($q)=>$q!==E8)};else H8.customApiKeyResponses={...H8.customApiKeyResponses,approved:(H8.customApiKeyResponses.approved??[]).filter(($q)=>$q!==E8),rejected:[...(H8.customApiKeyResponses.rejected??[]).filter(($q)=>$q!==E8),E8]}}return H8}),J(j8())}}]:[]],E6=HM.useMemo(()=>{if(!b6)return W6;let v6=b6.toLowerCase();return W6.filter((r6)=>{if(r6.id.toLowerCase().includes(v6))return!0;return("searchText"in r6?r6.searchText:r6.label).toLowerCase().includes(v6)})},[W6,b6]);HM.useEffect(()=>{if(C>=E6.length){let v6=Math.max(0,E6.length-1);b(v6),p(Math.max(0,v6-U+1));return}p((v6)=>{if(C<v6)return C;if(C>=v6+U)return C-U+1;return v6})},[E6.length,C,U]);let C6=w9.useCallback((v6)=>{p((r6)=>{if(v6<r6)return v6;if(v6>=r6+U)return v6-U+1;return r6})},[U]),N6=w9.useCallback(()=>{if(F6!==null)return;let v6=Object.entries(P6).map(([$q,vq])=>{return Q("ev_event",{key:$q,value:vq}),`Set ${$q} to ${M8.bold(vq)}`}),r6=PT()?void 0:process.env.ANTHROPIC_API_KEY,H8=Boolean(r6&&X.current.customApiKeyResponses?.approved?.includes(gX(r6))),E8=Boolean(r6&&M.customApiKeyResponses?.approved?.includes(gX(r6)));if(H8!==E8)v6.push(`${E8?"Enabled":"Disabled"} custom API key`),Q("ev_event",{key:"env.ANTHROPIC_API_KEY",value:E8});if(M.theme!==X.current.theme)v6.push(`Set theme to ${M8.bold(M.theme)}`);if(M.preferredNotifChannel!==X.current.preferredNotifChannel)v6.push(`Set notifications to ${M8.bold(M.preferredNotifChannel)}`);if(Z!==v.current)v6.push(`Set output style to ${M8.bold(Z)}`);if(k!==L.current)v6.push(`Set response language to ${M8.bold(k??"Default (English)")}`);if(M.editorMode!==X.current.editorMode)v6.push(`Set editor mode to ${M8.bold(M.editorMode||"emacs")}`);if(M.diffTool!==X.current.diffTool)v6.push(`Set diff tool to ${M8.bold(M.diffTool)}`);if(M.autoConnectIde!==X.current.autoConnectIde)v6.push(`${M.autoConnectIde?"Enabled":"Disabled"} auto-connect to IDE`);if(M.autoInstallIdeExtension!==X.current.autoInstallIdeExtension)v6.push(`${M.autoInstallIdeExtension?"Enabled":"Disabled"} auto-install IDE extension`);if(M.autoCompactEnabled!==X.current.autoCompactEnabled)v6.push(`${M.autoCompactEnabled?"Enabled":"Disabled"} auto-compact`);if(M.respectGitignore!==X.current.respectGitignore)v6.push(`${M.respectGitignore?"Enabled":"Disabled"} respect .gitignore in file picker`);if(M.copyFullResponse!==X.current.copyFullResponse)v6.push(`${M.copyFullResponse?"Enabled":"Disabled"} always copy full response`);if(M.copyOnSelect!==X.current.copyOnSelect)v6.push(`${M.copyOnSelect?"Enabled":"Disabled"} copy on select`);if(M.terminalProgressBarEnabled!==X.current.terminalProgressBarEnabled)v6.push(`${M.terminalProgressBarEnabled?"Enabled":"Disabled"} terminal progress bar`);if(M.showStatusInTerminalTab!==X.current.showStatusInTerminalTab)v6.push(`${M.showStatusInTerminalTab?"Enabled":"Disabled"} terminal tab status`);if(M.showTurnDuration!==X.current.showTurnDuration)v6.push(`${M.showTurnDuration?"Enabled":"Disabled"} turn duration`);if(M.remoteControlAtStartup!==X.current.remoteControlAtStartup){let $q=M.remoteControlAtStartup===void 0?"Reset Remote Control to default":`${M.remoteControlAtStartup?"Enabled":"Disabled"} Remote Control for all sessions`;v6.push($q)}if(P?.autoUpdatesChannel!==D.current?.autoUpdatesChannel)v6.push(`Set auto-update channel to ${M8.bold(P?.autoUpdatesChannel??"latest")}`);if(v6.length>0)q(v6.join(`
|
|
5217
|
+
`,"Please restart your IDE and try again."]})}];if(K.installed)if(A&&A.type==="connected")if(K.installedVersion!==A.serverInfo?.version)return[{label:"IDE",value:`Connected to ${z} ${Y} version ${K.installedVersion} (server version: ${A.serverInfo?.version})`}];else return[{label:"IDE",value:`Connected to ${z} ${Y} version ${K.installedVersion}`}];else return[{label:"IDE",value:`Installed ${z} ${Y}`}]}else if(A){let z=Wd8(A)??"IDE";if(A.type==="connected")return[{label:"IDE",value:`Connected to ${z} extension`}];else return[{label:"IDE",value:`${aq("error",_)(s6.cross)} Not connected to ${z}`}]}return[]}function OJ_(q=[],K){let _=q.filter((Y)=>Y.name!=="ide");if(!_.length)return[];let A={connected:0,pending:0,needsAuth:0,failed:0};for(let Y of _)if(Y.type==="connected")A.connected++;else if(Y.type==="pending")A.pending++;else if(Y.type==="needs-auth")A.needsAuth++;else A.failed++;let z=[];if(A.connected)z.push(aq("success",K)(`${A.connected} connected`));if(A.needsAuth)z.push(aq("warning",K)(`${A.needsAuth} need auth`));if(A.pending)z.push(aq("inactive",K)(`${A.pending} pending`));if(A.failed)z.push(aq("error",K)(`${A.failed} failed`));return[{label:"MCP servers",value:`${z.join(", ")} ${aq("inactive",K)("· /mcp")}`}]}async function $J_(){let q=await i$(),K=rl(q),_=[];return K.forEach((A)=>{let z=s7(A.path);_.push(`Large ${z} will impact performance (${$7(A.content.length)} chars > ${$7(rS)})`)}),_}function wJ_(){return[{label:"Setting sources",value:dL().filter((A)=>{let z=Oq(A);return z!==null&&Object.keys(z).length>0}).map((A)=>{if(A==="policySettings"){let z=gkq();if(z===null)return null;switch(z){case"remote":return"Enterprise managed settings (remote)";case"plist":return"Enterprise managed settings (plist)";case"hklm":return"Enterprise managed settings (HKLM)";case"file":{let{hasBase:Y,hasDropIns:O}=ukq();if(Y&&O)return"Enterprise managed settings (file + drop-ins)";if(O)return"Enterprise managed settings (drop-ins)";return"Enterprise managed settings (file)"}case"hkcu":return"Enterprise managed settings (HKCU)"}}return kTq(A)}).filter((A)=>A!==null)}]}async function HJ_(){return(await Ga()).map((K)=>K.message)}async function jJ_(){let q=await Xa(),K=[],{errors:_}=ib();if(_.length>0){let z=Array.from(new Set(_.map((Y)=>Y.file))).join(", ");K.push(`Found invalid settings files: ${z}. They will be ignored.`)}if(q.warnings.forEach((A)=>{K.push(A.issue)}),q.hasUpdatePermissions===!1)K.push("No write permissions for auto-updates (requires sudo)");return K}function ooA(q){return{ANTHROPIC_AUTH_TOKEN:"Environment variable",PUKU_CLI_OAUTH_TOKEN:"Puku OAuth token",PUKU_CLI_OAUTH_TOKEN_FILE_DESCRIPTOR:"Puku OAuth token (file descriptor)",CCR_OAUTH_TOKEN_FILE:"Puku OAuth token (CCR)",apiKeyHelper:"API key helper","claude.ai":"Puku.ai",none:"Not set"}[q]??q}function soA(q){return{PUKU_AI_API_KEY:"Environment variable",apiKeyHelper:"API key helper","/login managed key":"Managed by Puku",none:"Not set"}[q]??q}function MJ_(){let q=Xq6();if(!q)return[];let K=[];if(q.subscription)K.push({label:"Login method",value:`${q.subscription} Account`});if(q.tokenSource)K.push({label:"Auth token",value:ooA(q.tokenSource)});if(q.apiKeySource)K.push({label:"API key",value:soA(q.apiKeySource)});if(q.organization&&!process.env.IS_DEMO)K.push({label:"Organization",value:q.organization});if(q.email&&!process.env.IS_DEMO)K.push({label:"Email",value:q.email});return K}function JJ_(){let q=Jq(),K=[];if(q!=="firstParty"){let z={bedrock:"AWS Bedrock",vertex:"Google Vertex AI",foundry:"Microsoft Foundry",openai:"OpenAI-compatible",codex:"Codex",gemini:"Google Gemini"}[q];K.push({label:"API provider",value:z})}if(q==="bedrock"){let z=process.env.BEDROCK_BASE_URL;if(z)K.push({label:"Bedrock base URL",value:z});if(K.push({label:"AWS region",value:uF()}),u6(process.env.PUKU_CLI_SKIP_BEDROCK_AUTH))K.push({value:"AWS auth skipped"})}else if(q==="vertex"){let z=process.env.VERTEX_BASE_URL;if(z)K.push({label:"Vertex base URL",value:z});let Y=process.env.ANTHROPIC_VERTEX_PROJECT_ID;if(Y)K.push({label:"GCP project",value:Y});if(K.push({label:"Default region",value:fR6()}),u6(process.env.PUKU_CLI_SKIP_VERTEX_AUTH))K.push({value:"GCP auth skipped"})}else if(q==="foundry"){let z=process.env.ANTHROPIC_FOUNDRY_BASE_URL;if(z)K.push({label:"Microsoft Foundry base URL",value:z});let Y=process.env.ANTHROPIC_FOUNDRY_RESOURCE;if(Y)K.push({label:"Microsoft Foundry resource",value:Y});if(u6(process.env.PUKU_CLI_SKIP_FOUNDRY_AUTH))K.push({value:"Microsoft Foundry auth skipped"})}else if(q==="openai"){let z=process.env.OPENAI_BASE_URL;if(z)K.push({label:"OpenAI base URL",value:Nf(z,process.env)??z});let Y=process.env.OPENAI_MODEL;if(Y){let O=Y,$=Bw({model:Y}),w=$.resolvedModel,H=$.reasoning?.effort;if(w&&w!==Y.toLowerCase())O=w;if(H)O=`${O} (${H})`;K.push({label:"Model",value:Nf(O,process.env)??O})}}else if(q==="codex"){let z=process.env.OPENAI_BASE_URL;if(z)K.push({label:"Codex base URL",value:Nf(z,process.env)??z});let Y=process.env.OPENAI_MODEL;if(Y){let O=Y,$=Bw({model:Y}),w=$.resolvedModel,H=$.reasoning?.effort;if(w&&w!==Y.toLowerCase())O=w;if(H)O=`${O} (${H})`;K.push({label:"Model",value:Nf(O,process.env)??O})}}else if(q==="gemini"){let z=process.env.GEMINI_BASE_URL;if(z)K.push({label:"Gemini base URL",value:Nf(z,process.env)??z});let Y=process.env.GEMINI_MODEL;if(Y)K.push({label:"Model",value:Nf(Y,process.env)??Y})}let _=qG();if(_)K.push({label:"Proxy",value:_});let A=cZ();if(process.env.NODE_EXTRA_CA_CERTS)K.push({label:"Additional CA cert(s)",value:process.env.NODE_EXTRA_CA_CERTS});if(A){if(A.cert&&process.env.PUKU_CLI_CLIENT_CERT)K.push({label:"mTLS client cert",value:process.env.PUKU_CLI_CLIENT_CERT});if(A.key&&process.env.PUKU_CLI_CLIENT_KEY)K.push({label:"mTLS client key",value:process.env.PUKU_CLI_CLIENT_KEY})}return K}function XJ_(q){let K=j2(q);if(q===null&&DK()){let _=A26();K=`${M8.bold("Default")} ${_}`}return K}var PJ_=h(()=>{L4();mK();n6();wK();w1();Pa();x8();X7();OK();z3();cK();Q7();_L();hV();HE();uX();Tz();C06();yO();Vq();_96();r()});function toA(){let q=T8(),_=oj(q)??W(T,{dimColor:!0,children:"/rename to add a name"});return[{label:"Version",value:"1.8.38"},{label:"Session name",value:_},{label:"Session ID",value:q},{label:"cwd",value:W8()},...MJ_(),...JJ_()]}function eoA({mainLoopModel:q,mcp:K,theme:_,context:A}){return[{label:"Model",value:XJ_(q)},...YJ_(K.clients,A.options.ideInstallationStatus,_),...OJ_(K.clients,_),...zJ_(),...wJ_()]}async function fJ_(){return[...await HJ_(),...await jJ_(),...await $J_()]}function qsA(q){let K=f78.c(8),{value:_}=q;if(Array.isArray(_)){let A;if(K[0]!==_){let Y;if(K[2]!==_.length)Y=(O,$)=>y(T,{children:[O,$<_.length-1?",":""]},$),K[2]=_.length,K[3]=Y;else Y=K[3];A=_.map(Y),K[0]=_,K[1]=A}else A=K[1];let z;if(K[4]!==A)z=W(x,{flexWrap:"wrap",columnGap:1,flexShrink:99,children:A}),K[4]=A,K[5]=z;else z=K[5];return z}if(typeof _==="string"){let A;if(K[6]!==_)A=W(T,{children:_}),K[6]=_,K[7]=A;else A=K[7];return A}return _}function WJ_(q){let K=f78.c(20),{context:_,diagnosticsPromise:A}=q,z=X8(zsA),Y=X8(AsA),[O]=fK(),$;if(K[0]===Symbol.for("react.memo_cache_sentinel"))$=toA(),K[0]=$;else $=K[0];let w;if(K[1]!==_||K[2]!==z||K[3]!==Y||K[4]!==O)w=eoA({mainLoopModel:z,mcp:Y,theme:O,context:_}),K[1]=_,K[2]=z,K[3]=Y,K[4]=O,K[5]=w;else w=K[5];let H;if(K[6]!==w)H=[$,w],K[6]=w,K[7]=H;else H=K[7];let j=H,M=NP()?1:void 0,J;if(K[8]!==j)J=j.map(KsA),K[8]=j,K[9]=J;else J=K[9];let X;if(K[10]!==A)X=W(W78.Suspense,{fallback:null,children:W(YsA,{promise:A})}),K[10]=A,K[11]=X;else X=K[11];let P;if(K[12]!==M||K[13]!==J||K[14]!==X)P=y(x,{flexDirection:"column",gap:1,flexGrow:M,children:[J,X]}),K[12]=M,K[13]=J,K[14]=X,K[15]=P;else P=K[15];let f;if(K[16]===Symbol.for("react.memo_cache_sentinel"))f=W(T,{dimColor:!0,children:W(a8,{action:"confirm:no",context:"Settings",fallback:"Esc",description:"cancel"})}),K[16]=f;else f=K[16];let D;if(K[17]!==M||K[18]!==P)D=y(x,{flexDirection:"column",flexGrow:M,children:[P,f]}),K[17]=M,K[18]=P,K[19]=D;else D=K[19];return D}function KsA(q,K){return q.length>0&&W(x,{flexDirection:"column",children:q.map(_sA)},K)}function _sA(q,K){let{label:_,value:A}=q;return y(x,{flexDirection:"row",gap:1,flexShrink:0,children:[_!==void 0&&y(T,{bold:!0,children:[_,":"]}),W(qsA,{value:A})]},K)}function AsA(q){return q.mcp}function zsA(q){return q.mainLoopModel}function YsA(q){let K=f78.c(5),{promise:_}=q,A=W78.use(_);if(A.length===0)return null;let z;if(K[0]===Symbol.for("react.memo_cache_sentinel"))z=W(T,{bold:!0,children:"System Diagnostics"}),K[0]=z;else z=K[0];let Y;if(K[1]!==A)Y=A.map(OsA),K[1]=A,K[2]=Y;else Y=K[2];let O;if(K[3]!==Y)O=y(x,{flexDirection:"column",paddingBottom:1,children:[z,Y]}),K[3]=Y,K[4]=O;else O=K[4];return O}function OsA(q,K){return y(x,{flexDirection:"row",gap:1,paddingX:1,children:[W(T,{color:"error",children:s6.warning}),typeof q==="string"?W(T,{wrap:"wrap",children:q}):q]},K)}var f78,W78;var DJ_=h(()=>{mK();G8();_R();n6();dq();nq();S_();PJ_();F7();r();f78=q6(K8(),1),W78=q6(q8(),1)});function lqq(){return!1}async function ZJ_(){return!1}function iqq(){return!1}function GJ_(){return!0}function vJ_(){return null}var zO6=h(()=>{wK();x8()});function YO6(q){let K=TJ_.c(59),{onThemeSelect:_,showIntroText:A,helpText:z,showHelpTextBelow:Y,hideEscToCancel:O,skipExitHandling:$,onCancel:w}=q,H=A===void 0?!1:A,j=z===void 0?"":z,M=Y===void 0?!1:Y,J=O===void 0?!1:O,X=$===void 0?!1:$,[P]=fK(),f=Uq6(),{columns:D}=Eq(),Z;if(K[0]===Symbol.for("react.memo_cache_sentinel"))Z=PT6(),K[0]=Z;else Z=K[0];let G=Z,v;if(K[1]!==P)v=G===null?l8_(P):null,K[1]=P,K[2]=v;else v=K[2];let k=v,{setPreviewTheme:N,savePreview:L,cancelPreview:C}=dc6(),b=X8(wsA)??!1,I=sq();Zr6("ThemePicker");let p=m7("theme:toggleSyntaxHighlighting","ThemePicker","ctrl+t"),m;if(K[3]!==I||K[4]!==b)m=()=>{if(G===null){let K6=!b;Sq("userSettings",{syntaxHighlightingDisabled:K6}),I(($6)=>({...$6,settings:{...$6.settings,syntaxHighlightingDisabled:K6}}))}},K[3]=I,K[4]=b,K[5]=m;else m=K[5];let B;if(K[6]===Symbol.for("react.memo_cache_sentinel"))B={context:"ThemePicker"},K[6]=B;else B=K[6];Kq("theme:toggleSyntaxHighlighting",m,B);let g=_4(X?$sA:void 0),u;if(K[7]===Symbol.for("react.memo_cache_sentinel"))u=[...[],{label:"Dark mode",value:"dark"},{label:"Light mode",value:"light"},{label:"Dark mode (colorblind-friendly)",value:"dark-daltonized"},{label:"Light mode (colorblind-friendly)",value:"light-daltonized"},{label:"Dark mode (ANSI colors only)",value:"dark-ansi"},{label:"Light mode (ANSI colors only)",value:"light-ansi"}],K[7]=u;else u=K[7];let F=u,U;if(K[8]!==H)U=H?W(T,{children:"Let's get started."}):W(T,{bold:!0,color:"permission",children:"Theme"}),K[8]=H,K[9]=U;else U=K[9];let d;if(K[10]===Symbol.for("react.memo_cache_sentinel"))d=W(T,{bold:!0,children:"Choose the text style that looks best with your terminal"}),K[10]=d;else d=K[10];let n;if(K[11]!==j||K[12]!==M)n=j&&!M&&W(T,{dimColor:!0,children:j}),K[11]=j,K[12]=M,K[13]=n;else n=K[13];let _6;if(K[14]!==n)_6=y(x,{flexDirection:"column",children:[d,n]}),K[14]=n,K[15]=_6;else _6=K[15];let o;if(K[16]!==N)o=(K6)=>{N(K6)},K[16]=N,K[17]=o;else o=K[17];let t;if(K[18]!==_||K[19]!==L)t=(K6)=>{L(),_(K6)},K[18]=_,K[19]=L,K[20]=t;else t=K[20];let a;if(K[21]!==C||K[22]!==w||K[23]!==X)a=X?()=>{C(),w?.()}:async()=>{C(),await j7(0)},K[21]=C,K[22]=w,K[23]=X,K[24]=a;else a=K[24];let s;if(K[25]!==o||K[26]!==t||K[27]!==a||K[28]!==f)s=W(l8,{options:F,onFocus:o,onChange:t,onCancel:a,visibleOptionCount:F.length,defaultValue:f,defaultFocusValue:f}),K[25]=o,K[26]=t,K[27]=a,K[28]=f,K[29]=s;else s=K[29];let e;if(K[30]!==U||K[31]!==_6||K[32]!==s)e=y(x,{flexDirection:"column",gap:1,children:[U,_6,s]}),K[30]=U,K[31]=_6,K[32]=s,K[33]=e;else e=K[33];let P6;if(K[34]===Symbol.for("react.memo_cache_sentinel"))P6={oldStart:1,newStart:1,oldLines:3,newLines:3,lines:[" function greet() {",'- console.log("Hello, World!");','+ console.log("Hello, Puku CLI!");'," }"]},K[34]=P6;else P6=K[34];let O6;if(K[35]!==D)O6=W(x,{flexDirection:"column",borderTop:!0,borderBottom:!0,borderLeft:!1,borderRight:!1,borderStyle:"dashed",borderColor:"subtle",children:W(pR,{patch:P6,dim:!1,filePath:"demo.js",firstLine:null,width:D})}),K[35]=D,K[36]=O6;else O6=K[36];let k6=G==="env"?`Syntax highlighting disabled (via PUKU_CLI_SYNTAX_HIGHLIGHT=${process.env.PUKU_CLI_SYNTAX_HIGHLIGHT})`:b?`Syntax highlighting disabled (${p} to enable)`:k?`Syntax theme: ${k.theme}${k.source?` (from ${k.source})`:""} (${p} to disable)`:`Syntax highlighting enabled (${p} to disable)`,H6;if(K[37]!==k6)H6=y(T,{dimColor:!0,children:[" ",k6]}),K[37]=k6,K[38]=H6;else H6=K[38];let J6;if(K[39]!==O6||K[40]!==H6)J6=y(x,{flexDirection:"column",width:"100%",children:[O6,H6]}),K[39]=O6,K[40]=H6,K[41]=J6;else J6=K[41];let w6;if(K[42]!==e||K[43]!==J6)w6=y(x,{flexDirection:"column",gap:1,children:[e,J6]}),K[42]=e,K[43]=J6,K[44]=w6;else w6=K[44];let j6=w6;if(!H){let K6;if(K[45]!==j6)K6=W(x,{flexDirection:"column",children:j6}),K[45]=j6,K[46]=K6;else K6=K[46];let $6;if(K[47]!==j||K[48]!==M)$6=M&&j&&W(x,{marginLeft:3,children:W(T,{dimColor:!0,children:j})}),K[47]=j,K[48]=M,K[49]=$6;else $6=K[49];let T6;if(K[50]!==g||K[51]!==J)T6=!J&&W(x,{children:W(T,{dimColor:!0,italic:!0,children:g.pending?y(Y8,{children:["Press ",g.keyName," again to exit"]}):y(Pq,{children:[W(c8,{shortcut:"Enter",action:"select"}),W(c8,{shortcut:"Esc",action:"cancel"})]})})}),K[50]=g,K[51]=J,K[52]=T6;else T6=K[52];let c6;if(K[53]!==$6||K[54]!==T6)c6=y(x,{marginTop:1,children:[$6,T6]}),K[53]=$6,K[54]=T6,K[55]=c6;else c6=K[55];let x6;if(K[56]!==K6||K[57]!==c6)x6=y(Y8,{children:[K6,c6]}),K[56]=K6,K[57]=c6,K[58]=x6;else x6=K[58];return x6}return j6}function $sA(){}function wsA(q){return q.settings.syntaxHighlightingDisabled}var TJ_;var Z78=h(()=>{A3();I_();n6();ZC();XK();P1();dq();bY();Vq();w5();q7();R7();c68();$z6();r();TJ_=q6(K8(),1)});function OO6(q){switch(q){case"low":return CTq;case"medium":return bTq;case"high":return LP8;case"max":return ITq;default:return LP8}}var G78=h(()=>{l5();eM()});function va(q){let K=aqq.c(82),{initial:_,sessionModel:A,onSelect:z,onCancel:Y,isStandaloneCommand:O,showFastModeNotice:$,headerText:w,skipSettingsWrite:H}=q,j=sq(),M=_4(),J=_===null?T78:_,[X,P]=v78.useState(J),f=X8(JsA),[D,Z]=v78.useState(!1),G=X8(MsA),v;if(K[0]!==G)v=G!==void 0?xl(G):void 0,K[0]=G,K[1]=v;else v=K[1];let[k,N]=v78.useState(v),L=f??!1,C;if(K[2]!==L)C=xB(L),K[2]=L,K[3]=C;else C=K[3];let b=C,I;q:{if(_!==null&&!b.some((Z6)=>Z6.value===_)){let Z6;if(K[4]!==_)Z6=j2(_),K[4]=_,K[5]=Z6;else Z6=K[5];let W6;if(K[6]!==_||K[7]!==Z6)W6={value:_,label:Z6,description:"Current model"},K[6]=_,K[7]=Z6,K[8]=W6;else W6=K[8];let E6;if(K[9]!==b||K[10]!==W6)E6=[...b,W6],K[9]=b,K[10]=W6,K[11]=E6;else E6=K[11];I=E6;break q}I=b}let p=I,m;if(K[12]!==p)m=p.map(jsA),K[12]=p,K[13]=m;else m=K[13];let B=m,g;if(K[14]!==J||K[15]!==B)g=B.some((Z6)=>Z6.value===J)?J:B[0]?.value??void 0,K[14]=J,K[15]=B,K[16]=g;else g=K[16];let u=g,F=Math.min(10,B.length),U=Math.max(0,B.length-F),d;if(K[17]!==X||K[18]!==B)d=B.find((Z6)=>Z6.value===X)?.label,K[17]=X,K[18]=B,K[19]=d;else d=K[19];let n=d,_6,o;if(K[20]!==X){let Z6=rqq(X);_6=Z6?tX(Z6):!1,o=Z6?j_6(Z6):!1,K[20]=X,K[21]=_6,K[22]=o}else _6=K[21],o=K[22];let t=o,a;if(K[23]!==X)a=nqq(X),K[23]=X,K[24]=a;else a=K[24];let s=a,e=k==="max"&&!t?"high":k,P6;if(K[25]!==G||K[26]!==D)P6=(Z6)=>{if(P(Z6),!D&&G===void 0)N(nqq(Z6))},K[25]=G,K[26]=D,K[27]=P6;else P6=K[27];let O6=P6,k6;if(K[28]!==s||K[29]!==_6||K[30]!==t)k6=(Z6)=>{if(!_6)return;N((W6)=>XsA(W6??s,Z6,t)),Z(!0)},K[28]=s,K[29]=_6,K[30]=t,K[31]=k6;else k6=K[31];let H6=k6,J6;if(K[32]!==H6)J6={"modelPicker:decreaseEffort":()=>H6("left"),"modelPicker:increaseEffort":()=>H6("right")},K[32]=H6,K[33]=J6;else J6=K[33];let w6;if(K[34]===Symbol.for("react.memo_cache_sentinel"))w6={context:"ModelPicker"},K[34]=w6;else w6=K[34];vK(J6,w6);let j6;if(K[35]!==k||K[36]!==D||K[37]!==z||K[38]!==j||K[39]!==H)j6=function(W6){if(Q("ev_event",{effort:k}),!H){let N6=ckK(k,nqq(W6),Oq("userSettings")?.effortLevel,D),U6=Gm(N6);if(U6!==void 0)Sq("userSettings",{effortLevel:U6});j((A8)=>({...A8,effortValue:N6}))}let E6=rqq(W6),C6=D&&E6&&tX(E6)?k:void 0;if(W6===T78){z(null,C6);return}z(W6,C6)},K[35]=k,K[36]=D,K[37]=z,K[38]=j,K[39]=H,K[40]=j6;else j6=K[40];let K6=j6,$6;if(K[41]===Symbol.for("react.memo_cache_sentinel"))$6=W(T,{color:"remember",bold:!0,children:"Select model"}),K[41]=$6;else $6=K[41];let T6=w??"Switch between puku-ai models. Applies to this session and future puku-cli sessions. For other/previous model names, specify with --model.",c6;if(K[42]!==T6)c6=W(T,{dimColor:!0,children:T6}),K[42]=T6,K[43]=c6;else c6=K[43];let x6;if(K[44]!==A)x6=A&&y(T,{dimColor:!0,children:["Currently using ",j2(A)," for this session (set by plan mode). Selecting a model will undo this."]}),K[44]=A,K[45]=x6;else x6=K[45];let F6;if(K[46]!==c6||K[47]!==x6)F6=y(x,{marginBottom:1,flexDirection:"column",children:[$6,c6,x6]}),K[46]=c6,K[47]=x6,K[48]=F6;else F6=K[48];let a6=Y??HsA,b6;if(K[49]!==O6||K[50]!==K6||K[51]!==u||K[52]!==J||K[53]!==B||K[54]!==a6||K[55]!==F)b6=W(x,{flexDirection:"column",children:W(l8,{defaultValue:J,defaultFocusValue:u,options:B,onChange:K6,onFocus:O6,onCancel:a6,visibleOptionCount:F})}),K[49]=O6,K[50]=K6,K[51]=u,K[52]=J,K[53]=B,K[54]=a6,K[55]=F,K[56]=b6;else b6=K[56];let L6;if(K[57]!==U)L6=U>0&&W(x,{paddingLeft:3,children:y(T,{dimColor:!0,children:["and ",U," more…"]})}),K[57]=U,K[58]=L6;else L6=K[58];let f6;if(K[59]!==b6||K[60]!==L6)f6=y(x,{flexDirection:"column",marginBottom:1,children:[b6,L6]}),K[59]=b6,K[60]=L6,K[61]=f6;else f6=K[61];let D6;if(K[62]!==e||K[63]!==s||K[64]!==n||K[65]!==_6)D6=W(x,{marginBottom:1,flexDirection:"column",children:_6?y(T,{dimColor:!0,children:[W(kJ_,{effort:e})," ",EC(e)," effort",e===s?" (default)":""," ",W(T,{color:"subtle",children:"← → to adjust"})]}):y(T,{color:"subtle",children:[W(kJ_,{effort:void 0})," Effort not supported",n?` for ${n}`:""]})}),K[62]=e,K[63]=s,K[64]=n,K[65]=_6,K[66]=D6;else D6=K[66];let i6;if(K[67]!==$)i6=K7()?$?W(x,{marginBottom:1,children:y(T,{dimColor:!0,children:["Fast mode is ",W(T,{bold:!0,children:"ON"})," and available with"," ",tT," only (/fast). Switching to other models turn off fast mode."]})}):T9()&&!FV()?W(x,{marginBottom:1,children:y(T,{dimColor:!0,children:["Use ",W(T,{bold:!0,children:"/fast"})," to turn on Fast mode (",tT," only)."]})}):null:null,K[67]=$,K[68]=i6;else i6=K[68];let o6;if(K[69]!==F6||K[70]!==f6||K[71]!==D6||K[72]!==i6)o6=y(x,{flexDirection:"column",children:[F6,f6,D6,i6]}),K[69]=F6,K[70]=f6,K[71]=D6,K[72]=i6,K[73]=o6;else o6=K[73];let h6;if(K[74]!==M||K[75]!==O)h6=O&&W(T,{dimColor:!0,italic:!0,children:M.pending?y(Y8,{children:["Press ",M.keyName," again to exit"]}):y(Pq,{children:[W(c8,{shortcut:"Enter",action:"confirm"}),W(a8,{action:"select:cancel",context:"Select",fallback:"Esc",description:"exit"})]})}),K[74]=M,K[75]=O,K[76]=h6;else h6=K[76];let V6;if(K[77]!==o6||K[78]!==h6)V6=y(x,{flexDirection:"column",children:[o6,h6]}),K[77]=o6,K[78]=h6,K[79]=V6;else V6=K[79];let g6=V6;if(!O)return g6;let G6;if(K[80]!==g6)G6=W($5,{color:"permission",children:g6}),K[80]=g6,K[81]=G6;else G6=K[81];return G6}function HsA(){}function jsA(q){return{...q,value:q.value===null?T78:q.value}}function MsA(q){return q.effortValue}function JsA(q){return K7()?q.fastMode:!1}function rqq(q){if(!q)return;return q===T78?fj():W7(q)}function kJ_(q){let K=aqq.c(5),{effort:_}=q,A=_?"puku":"subtle",z=_??"low",Y;if(K[0]!==z)Y=OO6(z),K[0]=z,K[1]=Y;else Y=K[1];let O;if(K[2]!==A||K[3]!==Y)O=W(T,{color:A,children:Y}),K[2]=A,K[3]=Y,K[4]=O;else O=K[4];return O}function XsA(q,K,_){let A=_?["low","medium","high","max"]:["low","medium","high"],z=A.indexOf(q),Y=z!==-1?z:A.indexOf("high");if(K==="right")return A[(Y+1)%A.length];else return A[(Y-1+A.length)%A.length]}function nqq(q){let K=rqq(q)??fj(),_=Lf6(K);return _!==void 0?xl(_):"high"}var aqq,v78,T78="__NO_PREFERENCE__";var k78=h(()=>{LZ6();A3();Pj();n6();XK();dq();eM();cK();oT6();Vq();F7();w5();q7();R7();vH();G78();r();aqq=q6(K8(),1),v78=q6(q8(),1)});function Ta(q,K,_){if(!DK())return!1;if(K)return!0;if(q===null||!fW(q))return!1;let A=q.toLowerCase().replace(/\[1m\]$/,"").trim(),z=A==="opus"||A.includes("opus-4-6"),Y=A==="sonnet"||A.includes("sonnet-4-6");if(z&&_)return!1;return z||Y}var N78=h(()=>{wK();_w()});var yJ_={};S8(yJ_,{PukuMdExternalIncludesDialog:()=>oqq});function oqq(q){let K=NJ_.c(18),{onDone:_,isStandaloneDialog:A,externalIncludes:z}=q,Y;if(K[0]===Symbol.for("react.memo_cache_sentinel"))Y=[],K[0]=Y;else Y=K[0];VJ_.default.useEffect(DsA,Y);let O;if(K[1]!==_)O=(G)=>{if(G==="no")Q("ev_event",{}),EO(WsA);else Q("ev_event",{}),EO(fsA);_()},K[1]=_,K[2]=O;else O=K[2];let $=O,w;if(K[3]!==$)w=()=>{$("no")},K[3]=$,K[4]=w;else w=K[4];let H=w,j=!A,M=!A,J;if(K[5]===Symbol.for("react.memo_cache_sentinel"))J=W(T,{children:"This project's CLAUDE.md imports files outside the current working directory. Never allow this for third-party repositories."}),K[5]=J;else J=K[5];let X;if(K[6]!==z)X=z&&z.length>0&&y(x,{flexDirection:"column",children:[W(T,{dimColor:!0,children:"External imports:"}),z.map(PsA)]}),K[6]=z,K[7]=X;else X=K[7];let P;if(K[8]===Symbol.for("react.memo_cache_sentinel"))P=y(T,{dimColor:!0,children:["Important: Only use Puku with files you trust. Accessing untrusted files may pose security risks"," ",W(aK,{url:"https://puku.sh/docs/en/security"})," "]}),K[8]=P;else P=K[8];let f;if(K[9]===Symbol.for("react.memo_cache_sentinel"))f=[{label:"Yes, allow external imports",value:"yes"},{label:"No, disable external imports",value:"no"}],K[9]=f;else f=K[9];let D;if(K[10]!==$)D=W(l8,{options:f,onChange:(G)=>$(G)}),K[10]=$,K[11]=D;else D=K[11];let Z;if(K[12]!==H||K[13]!==D||K[14]!==j||K[15]!==M||K[16]!==X)Z=y(Hq,{title:"Allow external CLAUDE.md file imports?",color:"warning",onCancel:H,hideBorder:j,hideInputGuide:M,children:[J,X,P,D]}),K[12]=H,K[13]=D,K[14]=j,K[15]=M,K[16]=X,K[17]=Z;else Z=K[17];return Z}function PsA(q,K){return y(T,{dimColor:!0,children:[" ",q.path]},K)}function fsA(q){return{...q,hasClaudeMdExternalIncludesApproved:!0,hasClaudeMdExternalIncludesWarningShown:!0}}function WsA(q){return{...q,hasClaudeMdExternalIncludesApproved:!1,hasClaudeMdExternalIncludesWarningShown:!0}}function DsA(){Q("ev_event",{})}var NJ_,VJ_;var sqq=h(()=>{n6();Wq();w5();c_();r();NJ_=q6(K8(),1),VJ_=q6(q8(),1)});function EJ_(q){let K=RJ_.c(17),{currentVersion:_,onChoice:A}=q,z;if(K[0]!==A)z=function(D){A(D)},K[0]=A,K[1]=z;else z=K[1];let Y=z,O;if(K[2]!==A)O=function(){A("cancel")},K[2]=A,K[3]=O;else O=K[3];let $=O,w;if(K[4]!==_)w=y(T,{children:["The stable channel may have an older version than what you're currently running (",_,")."]}),K[4]=_,K[5]=w;else w=K[5];let H;if(K[6]===Symbol.for("react.memo_cache_sentinel"))H=W(T,{dimColor:!0,children:"How would you like to handle this?"}),K[6]=H;else H=K[6];let j;if(K[7]===Symbol.for("react.memo_cache_sentinel"))j={label:"Allow possible downgrade to stable version",value:"downgrade"},K[7]=j;else j=K[7];let M=`Stay on current version (${_}) until stable catches up`,J;if(K[8]!==M)J=[j,{label:M,value:"stay"}],K[8]=M,K[9]=J;else J=K[9];let X;if(K[10]!==Y||K[11]!==J)X=W(l8,{options:J,onChange:Y}),K[10]=Y,K[11]=J,K[12]=X;else X=K[12];let P;if(K[13]!==$||K[14]!==w||K[15]!==X)P=y(Hq,{title:"Switch to Stable Channel",onCancel:$,color:"permission",hideBorder:!0,hideInputGuide:!0,children:[w,H,X]}),K[13]=$,K[14]=w,K[15]=X,K[16]=P;else P=K[16];return P}var RJ_;var LJ_=h(()=>{n6();w5();c_();r();RJ_=q6(K8(),1)});function hJ_(q){return Object.entries(q).map(([K,_])=>({label:_?.name??ZsA,value:K,description:_?.description??GsA}))}function CJ_(q){let K=SJ_.c(16),{initialStyle:_,onComplete:A,onCancel:z,isStandaloneCommand:Y}=q,O;if(K[0]===Symbol.for("react.memo_cache_sentinel"))O=[],K[0]=O;else O=K[0];let[$,w]=b06.useState(O),[H,j]=b06.useState(!0),M,J;if(K[1]===Symbol.for("react.memo_cache_sentinel"))M=()=>{uY6(W8()).then((k)=>{let N=hJ_(k);w(N),j(!1)}).catch(()=>{let k=hJ_(Ci);w(k),j(!1)})},J=[],K[1]=M,K[2]=J;else M=K[1],J=K[2];b06.useEffect(M,J);let X;if(K[3]!==A)X=(k)=>{A(k)},K[3]=A,K[4]=X;else X=K[4];let P=X,f=!Y,D=!Y,Z;if(K[5]===Symbol.for("react.memo_cache_sentinel"))Z=W(x,{marginTop:1,children:W(T,{dimColor:!0,children:"This changes how Puku communicates with you"})}),K[5]=Z;else Z=K[5];let G;if(K[6]!==P||K[7]!==_||K[8]!==H||K[9]!==$)G=y(x,{flexDirection:"column",gap:1,children:[Z,H?W(T,{dimColor:!0,children:"Loading output styles…"}):W(l8,{options:$,onChange:P,visibleOptionCount:10,defaultValue:_})]}),K[6]=P,K[7]=_,K[8]=H,K[9]=$,K[10]=G;else G=K[10];let v;if(K[11]!==z||K[12]!==f||K[13]!==D||K[14]!==G)v=W(Hq,{title:"Preferred output style",onCancel:z,hideInputGuide:f,hideBorder:D,children:G}),K[11]=z,K[12]=f,K[13]=D,K[14]=G,K[15]=v;else v=K[15];return v}var SJ_,b06,ZsA="Default",GsA="Puku CLI completes coding tasks efficiently and provides concise responses";var bJ_=h(()=>{Fy();n6();nq();b4();c_();r();SJ_=q6(K8(),1),b06=q6(q8(),1)});function xJ_(q){let K=IJ_.c(13),{initialLanguage:_,onComplete:A,onCancel:z}=q,[Y,O]=tqq.useState(_),[$,w]=tqq.useState((_??"").length),H;if(K[0]===Symbol.for("react.memo_cache_sentinel"))H={context:"Settings"},K[0]=H;else H=K[0];Kq("confirm:no",z,H);let j;if(K[1]!==Y||K[2]!==A)j=function(){let v=Y?.trim();A(v||void 0)},K[1]=Y,K[2]=A,K[3]=j;else j=K[3];let M=j,J;if(K[4]===Symbol.for("react.memo_cache_sentinel"))J=W(T,{children:"Enter your preferred response and voice language:"}),K[4]=J;else J=K[4];let X;if(K[5]===Symbol.for("react.memo_cache_sentinel"))X=W(T,{children:s6.pointer}),K[5]=X;else X=K[5];let P=Y??"",f;if(K[6]!==$||K[7]!==M||K[8]!==P)f=y(x,{flexDirection:"row",gap:1,children:[X,W(CA,{value:P,onChange:O,onSubmit:M,focus:!0,showCursor:!0,placeholder:`e.g., Japanese, 日本語, Español${s6.ellipsis}`,columns:60,cursorOffset:$,onChangeCursorOffset:w})]}),K[6]=$,K[7]=M,K[8]=P,K[9]=f;else f=K[9];let D;if(K[10]===Symbol.for("react.memo_cache_sentinel"))D=W(T,{dimColor:!0,children:"Leave empty for default (English)"}),K[10]=D;else D=K[10];let Z;if(K[11]!==f)Z=y(x,{flexDirection:"column",gap:1,children:[J,f,D]}),K[11]=f,K[12]=Z;else Z=K[12];return Z}var IJ_,tqq;var uJ_=h(()=>{mK();n6();XK();D1();r();IJ_=q6(K8(),1),tqq=q6(q8(),1)});function o0(q){let K=pJ_.c(17),{query:_,placeholder:A,isFocused:z,isTerminalFocused:Y,prefix:O,width:$,cursorOffset:w,borderless:H}=q,j=A===void 0?"Search…":A,M=O===void 0?"⌕":O,J=H===void 0?!1:H,X=w??_.length,P=J?void 0:"round",f=z?"suggestion":void 0,D=!z,Z=J?0:1,G=!z,v;if(K[0]!==z||K[1]!==Y||K[2]!==X||K[3]!==j||K[4]!==_)v=z?W(Y8,{children:_?Y?y(Y8,{children:[W(T,{children:_.slice(0,X)}),W(T,{inverse:!0,children:X<_.length?_[X]:" "}),X<_.length&&W(T,{children:_.slice(X+1)})]}):W(T,{children:_}):Y?y(Y8,{children:[W(T,{inverse:!0,children:j.charAt(0)}),W(T,{dimColor:!0,children:j.slice(1)})]}):W(T,{dimColor:!0,children:j})}):_?W(T,{children:_}):W(T,{children:j}),K[0]=z,K[1]=Y,K[2]=X,K[3]=j,K[4]=_,K[5]=v;else v=K[5];let k;if(K[6]!==M||K[7]!==G||K[8]!==v)k=y(T,{dimColor:G,children:[M," ",v]}),K[6]=M,K[7]=G,K[8]=v,K[9]=k;else k=K[9];let N;if(K[10]!==k||K[11]!==P||K[12]!==f||K[13]!==D||K[14]!==Z||K[15]!==$)N=W(x,{flexShrink:0,borderStyle:P,borderColor:f,borderDimColor:D,paddingX:Z,width:$,children:k}),K[10]=k,K[11]=P,K[12]=f,K[13]=D,K[14]=Z,K[15]=$,K[16]=N;else N=K[16];return N}var pJ_;var ka=h(()=>{n6();r();pJ_=q6(K8(),1)});function vsA(q){if(q.ctrl&&(q.key==="k"||q.key==="u"||q.key==="w"))return!0;if(q.meta&&q.key==="backspace")return!0;return!1}function TsA(q){return(q.ctrl||q.meta)&&q.key==="y"}function GD({isActive:q,onExit:K,onCancel:_,onExitUp:A,columns:z,passthroughCtrlKeys:Y=[],initialQuery:O="",backspaceExitsOnEmpty:$=!0}){let{columns:w}=Eq(),H=z??w,[j,M]=I06.useState(O),[J,X]=I06.useState(O.length),P=I06.useCallback((D)=>{M(D),X(D.length)},[]),f=(D)=>{if(!q)return;let Z=h7.fromText(j,H,J);if(D.ctrl&&Y.includes(D.key.toLowerCase()))return;if(!vsA(D))j06();if(!TsA(D))M06();if(D.key==="return"||D.key==="down"){D.preventDefault(),K();return}if(D.key==="up"){if(D.preventDefault(),A)A();return}if(D.key==="escape"){if(D.preventDefault(),_)_();else if(j.length>0)M(""),X(0);else K();return}if(D.key==="backspace"){if(D.preventDefault(),D.meta){let{cursor:v,killed:k}=Z.deleteWordBefore();cb(k,"prepend"),M(v.text),X(v.offset);return}if(j.length===0){if($)(_??K)();return}let G=Z.backspace();M(G.text),X(G.offset);return}if(D.key==="delete"){D.preventDefault();let G=Z.del();M(G.text),X(G.offset);return}if(D.key==="left"&&(D.ctrl||D.meta||D.fn)){D.preventDefault();let G=Z.prevWord();X(G.offset);return}if(D.key==="right"&&(D.ctrl||D.meta||D.fn)){D.preventDefault();let G=Z.nextWord();X(G.offset);return}if(D.key==="left"){D.preventDefault();let G=Z.left();X(G.offset);return}if(D.key==="right"){D.preventDefault();let G=Z.right();X(G.offset);return}if(D.key==="home"){D.preventDefault(),X(0);return}if(D.key==="end"){D.preventDefault(),X(j.length);return}if(D.ctrl){switch(D.preventDefault(),D.key.toLowerCase()){case"a":X(0);return;case"e":X(j.length);return;case"b":X(Z.left().offset);return;case"f":X(Z.right().offset);return;case"d":{if(j.length===0){(_??K)();return}let G=Z.del();M(G.text),X(G.offset);return}case"h":{if(j.length===0){if($)(_??K)();return}let G=Z.backspace();M(G.text),X(G.offset);return}case"k":{let{cursor:G,killed:v}=Z.deleteToLineEnd();cb(v,"append"),M(G.text),X(G.offset);return}case"u":{let{cursor:G,killed:v}=Z.deleteToLineStart();cb(v,"prepend"),M(G.text),X(G.offset);return}case"w":{let{cursor:G,killed:v}=Z.deleteWordBefore();cb(v,"prepend"),M(G.text),X(G.offset);return}case"y":{let G=k_8();if(G.length>0){let v=Z.offset,k=Z.insert(G);N_8(v,G.length),M(k.text),X(k.offset)}return}case"g":case"c":if(_){_();return}}return}if(D.meta){switch(D.preventDefault(),D.key.toLowerCase()){case"b":X(Z.prevWord().offset);return;case"f":X(Z.nextWord().offset);return;case"d":{let G=Z.deleteWordAfter();M(G.text),X(G.offset);return}case"y":{let G=V_8();if(G){let{text:v,start:k,length:N}=G,L=j.slice(0,k),C=j.slice(k+N),b=L+v+C,I=k+v.length;y_8(v.length),M(b),X(I)}return}}return}if(D.key==="tab")return;if(D.key.length>=1&&!ksA.has(D.key)){D.preventDefault();let G=Z.insert(D.key);M(G.text),X(G.offset)}};return lK((D,Z,G)=>{f(new Wk(G.keypress))},{isActive:q}),{query:j,setQuery:P,cursorOffset:J,handleKeyDown:f}}var I06,ksA;var wc=h(()=>{vK6();n6();Ya();I_();I06=q6(q8(),1);ksA=new Set(["pageup","pagedown","insert","wheelup","wheeldown","mouse","f1","f2","f3","f4","f5","f6","f7","f8","f9","f10","f11","f12"])});function BJ_({onClose:q,context:K,setTabsHidden:_,onIsSearchModeChange:A,contentHeight:z}){let{headerFocused:Y,focusHeader:O,blurHeader:$}=EJ(),w=NP(),[,H]=fK(),j=Uq6(),[M,J]=w9.useState(j8()),X=HM.useRef(j8()),[P,f]=w9.useState(YK()),D=HM.useRef(YK()),[Z,G]=w9.useState(P?.outputStyle||b2),v=HM.useRef(Z),[k,N]=w9.useState(P?.language),L=HM.useRef(k),[C,b]=w9.useState(0),[I,p]=w9.useState(0),[m,B]=w9.useState(!0),g=hO(),{rows:u}=Eq(),F=z??Math.min(Math.floor(u*0.8),30),U=Math.max(5,F-10),d=X8((v6)=>v6.mainLoopModel),n=X8((v6)=>v6.verbose),_6=X8((v6)=>v6.thinkingEnabled),o=X8((v6)=>K7()?v6.fastMode:!1),t=X8((v6)=>v6.promptSuggestionEnabled),a=$_8()||w06()==="enabled",s=!1,e=sq(),[P6,O6]=w9.useState({}),k6=HM.useRef(_6),[H6]=w9.useState(()=>Oq("localSettings")),[J6]=w9.useState(()=>Oq("userSettings")),w6=HM.useRef(j),j6=y5(),[K6]=w9.useState(()=>{let v6=j6.getState();return{mainLoopModel:v6.mainLoopModel,mainLoopModelForSession:v6.mainLoopModelForSession,verbose:v6.verbose,thinkingEnabled:v6.thinkingEnabled,fastMode:v6.fastMode,promptSuggestionEnabled:v6.promptSuggestionEnabled,isBriefOnly:v6.isBriefOnly,replBridgeEnabled:v6.replBridgeEnabled,replBridgeOutboundOnly:v6.replBridgeOutboundOnly,settings:v6.settings}}),[$6]=w9.useState(()=>DE6()),T6=HM.useRef(!1),[c6,x6]=w9.useState(!1),[F6,a6]=w9.useState(null),{query:b6,setQuery:L6,cursorOffset:f6}=GD({isActive:m&&F6===null&&!Y,onExit:()=>B(!1),onExitUp:O,passthroughCtrlKeys:["c","d"]}),D6=m&&!Y;HM.useEffect(()=>{A?.(D6)},[D6,A]);let i6=Da6(K.options.mcpClients),o6=!u6(process.env.PUKU_CLI_DISABLE_FILE_CHECKPOINTING),h6=HM.use(i$(!0)),V6=cm8(h6),g6=jd();function G6(v6){Q("ev_event",{from_model:d,to_model:v6}),e((H8)=>({...H8,mainLoopModel:v6,mainLoopModelForSession:null})),O6((H8)=>{let E8=j2(v6)+(Ta(v6,!1,PW())?" · Billed as extra usage":"");if("model"in H8){let{model:$q,...vq}=H8;return{...vq,model:E8}}return{...H8,model:E8}})}function Z6(v6){B8((r6)=>({...r6,verbose:v6})),J({...j8(),verbose:v6}),e((r6)=>({...r6,verbose:v6})),O6((r6)=>{if("verbose"in r6){let{verbose:H8,...E8}=r6;return E8}return{...r6,verbose:v6}})}let W6=[{id:"autoCompactEnabled",label:"Auto-compact",value:M.autoCompactEnabled,type:"boolean",onChange(v6){B8((r6)=>({...r6,autoCompactEnabled:v6})),J({...j8(),autoCompactEnabled:v6}),Q("ev_event",{enabled:v6})}},{id:"spinnerTipsEnabled",label:"Show tips",value:P?.spinnerTipsEnabled??!0,type:"boolean",onChange(v6){Sq("localSettings",{spinnerTipsEnabled:v6}),f((r6)=>({...r6,spinnerTipsEnabled:v6})),Q("ev_event",{enabled:v6})}},{id:"prefersReducedMotion",label:"Reduce motion",value:P?.prefersReducedMotion??!1,type:"boolean",onChange(v6){Sq("localSettings",{prefersReducedMotion:v6}),f((r6)=>({...r6,prefersReducedMotion:v6})),e((r6)=>({...r6,settings:{...r6.settings,prefersReducedMotion:v6}})),Q("ev_event",{enabled:v6})}},{id:"thinkingEnabled",label:"Thinking mode",value:_6??!0,type:"boolean",onChange(v6){e((r6)=>({...r6,thinkingEnabled:v6})),Sq("userSettings",{alwaysThinkingEnabled:v6?void 0:!1}),Q("ev_event",{enabled:v6})}},...K7()&&T9()?[{id:"fastMode",label:`Fast mode (${tT} only)`,value:!!o,type:"boolean",onChange(v6){if(VQ(),Sq("userSettings",{fastMode:v6?!0:void 0}),v6)e((r6)=>({...r6,mainLoopModel:tJ6(),mainLoopModelForSession:null,fastMode:!0})),O6((r6)=>({...r6,model:tJ6(),"Fast mode":"ON"}));else e((r6)=>({...r6,fastMode:!1})),O6((r6)=>({...r6,"Fast mode":"OFF"}))}}]:[],...s8("ev_event",!1)?[{id:"promptSuggestionEnabled",label:"Prompt suggestions",value:t,type:"boolean",onChange(v6){e((r6)=>({...r6,promptSuggestionEnabled:v6})),Sq("userSettings",{promptSuggestionEnabled:v6?void 0:!1})}}]:[],...[],...o6?[{id:"fileCheckpointingEnabled",label:"Rewind code (checkpoints)",value:M.fileCheckpointingEnabled,type:"boolean",onChange(v6){B8((r6)=>({...r6,fileCheckpointingEnabled:v6})),J({...j8(),fileCheckpointingEnabled:v6}),Q("ev_event",{enabled:v6})}}]:[],{id:"verbose",label:"Verbose output",value:n,type:"boolean",onChange:Z6},{id:"terminalProgressBarEnabled",label:"Terminal progress bar",value:M.terminalProgressBarEnabled,type:"boolean",onChange(v6){B8((r6)=>({...r6,terminalProgressBarEnabled:v6})),J({...j8(),terminalProgressBarEnabled:v6}),Q("ev_event",{enabled:v6})}},...s8("ev_event",!1)?[{id:"showStatusInTerminalTab",label:"Show status in terminal tab",value:M.showStatusInTerminalTab??!1,type:"boolean",onChange(v6){B8((r6)=>({...r6,showStatusInTerminalTab:v6})),J({...j8(),showStatusInTerminalTab:v6}),Q("ev_event",{enabled:v6})}}]:[],{id:"showTurnDuration",label:"Show turn duration",value:M.showTurnDuration,type:"boolean",onChange(v6){B8((r6)=>({...r6,showTurnDuration:v6})),J({...j8(),showTurnDuration:v6}),Q("ev_event",{enabled:v6})}},{id:"defaultPermissionMode",label:"Default permission mode",value:P?.permissions?.defaultMode||"default",options:(()=>{let v6=["default","plan"],r6=sJ,H8=["bypassPermissions"];if(!a)H8.push("auto");return[...v6,...r6.filter((E8)=>!v6.includes(E8)&&!H8.includes(E8))]})(),type:"enum",onChange(v6){let r6=Uf(v6),H8=UTq(r6)?ST(r6):r6,E8=Sq("userSettings",{permissions:{...P?.permissions,defaultMode:H8}});if(E8.error){A6(E8.error);return}f(($q)=>({...$q,permissions:{...$q?.permissions,defaultMode:H8}})),O6(($q)=>({...$q,defaultPermissionMode:v6})),Q("ev_event",{setting:"defaultPermissionMode",value:v6})}},...a?[{id:"useAutoModeDuringPlan",label:"Use auto mode during plan",value:P?.useAutoModeDuringPlan??!0,type:"boolean",onChange(v6){Sq("userSettings",{useAutoModeDuringPlan:v6}),f((r6)=>({...r6,useAutoModeDuringPlan:v6})),e((r6)=>{let H8=FY6(r6.toolPermissionContext);if(H8===r6.toolPermissionContext)return r6;return{...r6,toolPermissionContext:H8}}),O6((r6)=>({...r6,"Use auto mode during plan":v6}))}}]:[],{id:"respectGitignore",label:"Respect .gitignore in file picker",value:M.respectGitignore,type:"boolean",onChange(v6){B8((r6)=>({...r6,respectGitignore:v6})),J({...j8(),respectGitignore:v6}),Q("ev_event",{enabled:v6})}},{id:"copyFullResponse",label:"Always copy full response (skip /copy picker)",value:M.copyFullResponse,type:"boolean",onChange(v6){B8((r6)=>({...r6,copyFullResponse:v6})),J({...j8(),copyFullResponse:v6}),Q("ev_event",{setting:"copyFullResponse",value:String(v6)})}},...E_()?[{id:"copyOnSelect",label:"Copy on select",value:M.copyOnSelect??!0,type:"boolean",onChange(v6){B8((r6)=>({...r6,copyOnSelect:v6})),J({...j8(),copyOnSelect:v6}),Q("ev_event",{setting:"copyOnSelect",value:String(v6)})}}]:[],{id:"flickerFreeMode",label:"Flicker-free mode",value:M.flickerFreeMode??process.env.USER_TYPE==="ant",type:"boolean",onChange(v6){B8((r6)=>({...r6,flickerFreeMode:v6})),J({...j8(),flickerFreeMode:v6}),Q("ev_event",{setting:"flickerFreeMode",value:String(v6)})}},g6?{id:"autoUpdatesChannel",label:"Auto-update channel",value:"disabled",type:"managedEnum",onChange(){}}:{id:"autoUpdatesChannel",label:"Auto-update channel",value:P?.autoUpdatesChannel??"latest",type:"managedEnum",onChange(){}},{id:"theme",label:"Theme",value:j,type:"managedEnum",onChange:H},{id:"notifChannel",label:"Notifications",value:M.preferredNotifChannel,options:["auto","iterm2","terminal_bell","iterm2_with_bell","kitty","ghostty","notifications_disabled"],type:"enum",onChange(v6){B8((r6)=>({...r6,preferredNotifChannel:v6})),J({...j8(),preferredNotifChannel:v6})}},...[],{id:"outputStyle",label:"Output style",value:Z,type:"managedEnum",onChange:()=>{}},...[],{id:"language",label:"Language",value:k??"Default (English)",type:"managedEnum",onChange:()=>{}},{id:"editorMode",label:"Editor mode",value:M.editorMode==="emacs"?"normal":M.editorMode||"normal",options:["normal","vim"],type:"enum",onChange(v6){B8((r6)=>({...r6,editorMode:v6})),J({...j8(),editorMode:v6}),Q("ev_event",{mode:v6,source:"config_panel"})}},{id:"prStatusFooterEnabled",label:"Show PR status footer",value:M.prStatusFooterEnabled??!0,type:"boolean",onChange(v6){B8((r6)=>{if(r6.prStatusFooterEnabled===v6)return r6;return{...r6,prStatusFooterEnabled:v6}}),J({...j8(),prStatusFooterEnabled:v6}),Q("ev_event",{enabled:v6})}},{id:"model",label:"Model",value:d===null?"Default (recommended)":j2(d),type:"managedEnum",onChange:G6},...i6?[{id:"diffTool",label:"Diff tool",value:M.diffTool??"auto",options:["terminal","auto"],type:"enum",onChange(v6){B8((r6)=>({...r6,diffTool:v6})),J({...j8(),diffTool:v6}),Q("ev_event",{tool:v6,source:"config_panel"})}}]:[],...!Zw()?[{id:"autoConnectIde",label:"Auto-connect to IDE (external terminal)",value:M.autoConnectIde??!1,type:"boolean",onChange(v6){B8((r6)=>({...r6,autoConnectIde:v6})),J({...j8(),autoConnectIde:v6}),Q("ev_event",{enabled:v6,source:"config_panel"})}}]:[],...Zw()?[{id:"autoInstallIdeExtension",label:"Auto-install IDE extension",value:M.autoInstallIdeExtension??!0,type:"boolean",onChange(v6){B8((r6)=>({...r6,autoInstallIdeExtension:v6})),J({...j8(),autoInstallIdeExtension:v6}),Q("ev_event",{enabled:v6,source:"config_panel"})}}]:[],{id:"pukuInChromeDefaultEnabled",label:"Puku in Chrome enabled by default",value:M.pukuInChromeDefaultEnabled??!0,type:"boolean",onChange(v6){B8((r6)=>({...r6,pukuInChromeDefaultEnabled:v6})),J({...j8(),pukuInChromeDefaultEnabled:v6}),Q("ev_event",{enabled:v6})}},...uK()?(()=>{let v6=ql8();return[{id:"teammateMode",label:v6?`Teammate mode [overridden: ${v6}]`:"Teammate mode",value:M.teammateMode??"auto",options:["auto","tmux","in-process"],type:"enum",onChange(H8){if(H8!=="auto"&&H8!=="tmux"&&H8!=="in-process")return;Kl8(H8),B8((E8)=>({...E8,teammateMode:H8})),J({...j8(),teammateMode:H8}),Q("ev_event",{mode:H8})}},{id:"teammateDefaultModel",label:"Default teammate model",value:mJ_(M.teammateDefaultModel),type:"managedEnum",onChange(){}}]})():[],...[],...V6?[{id:"showExternalIncludesDialog",label:"External CLAUDE.md includes",value:(()=>{if(OO().hasClaudeMdExternalIncludesApproved)return"true";else return"false"})(),type:"managedEnum",onChange(){}}]:[],...process.env.ANTHROPIC_API_KEY&&!PT()?[{id:"apiKey",label:y(T,{children:["Use custom API key:"," ",W(T,{bold:!0,children:gX(process.env.ANTHROPIC_API_KEY)})]}),searchText:"Use custom API key",value:Boolean(process.env.ANTHROPIC_API_KEY&&M.customApiKeyResponses?.approved?.includes(gX(process.env.ANTHROPIC_API_KEY))),type:"boolean",onChange(v6){B8((r6)=>{let H8={...r6};if(!H8.customApiKeyResponses)H8.customApiKeyResponses={approved:[],rejected:[]};if(!H8.customApiKeyResponses.approved)H8.customApiKeyResponses={...H8.customApiKeyResponses,approved:[]};if(!H8.customApiKeyResponses.rejected)H8.customApiKeyResponses={...H8.customApiKeyResponses,rejected:[]};if(process.env.ANTHROPIC_API_KEY){let E8=gX(process.env.ANTHROPIC_API_KEY);if(v6)H8.customApiKeyResponses={...H8.customApiKeyResponses,approved:[...(H8.customApiKeyResponses.approved??[]).filter(($q)=>$q!==E8),E8],rejected:(H8.customApiKeyResponses.rejected??[]).filter(($q)=>$q!==E8)};else H8.customApiKeyResponses={...H8.customApiKeyResponses,approved:(H8.customApiKeyResponses.approved??[]).filter(($q)=>$q!==E8),rejected:[...(H8.customApiKeyResponses.rejected??[]).filter(($q)=>$q!==E8),E8]}}return H8}),J(j8())}}]:[]],E6=HM.useMemo(()=>{if(!b6)return W6;let v6=b6.toLowerCase();return W6.filter((r6)=>{if(r6.id.toLowerCase().includes(v6))return!0;return("searchText"in r6?r6.searchText:r6.label).toLowerCase().includes(v6)})},[W6,b6]);HM.useEffect(()=>{if(C>=E6.length){let v6=Math.max(0,E6.length-1);b(v6),p(Math.max(0,v6-U+1));return}p((v6)=>{if(C<v6)return C;if(C>=v6+U)return C-U+1;return v6})},[E6.length,C,U]);let C6=w9.useCallback((v6)=>{p((r6)=>{if(v6<r6)return v6;if(v6>=r6+U)return v6-U+1;return r6})},[U]),N6=w9.useCallback(()=>{if(F6!==null)return;let v6=Object.entries(P6).map(([$q,vq])=>{return Q("ev_event",{key:$q,value:vq}),`Set ${$q} to ${M8.bold(vq)}`}),r6=PT()?void 0:process.env.ANTHROPIC_API_KEY,H8=Boolean(r6&&X.current.customApiKeyResponses?.approved?.includes(gX(r6))),E8=Boolean(r6&&M.customApiKeyResponses?.approved?.includes(gX(r6)));if(H8!==E8)v6.push(`${E8?"Enabled":"Disabled"} custom API key`),Q("ev_event",{key:"env.ANTHROPIC_API_KEY",value:E8});if(M.theme!==X.current.theme)v6.push(`Set theme to ${M8.bold(M.theme)}`);if(M.preferredNotifChannel!==X.current.preferredNotifChannel)v6.push(`Set notifications to ${M8.bold(M.preferredNotifChannel)}`);if(Z!==v.current)v6.push(`Set output style to ${M8.bold(Z)}`);if(k!==L.current)v6.push(`Set response language to ${M8.bold(k??"Default (English)")}`);if(M.editorMode!==X.current.editorMode)v6.push(`Set editor mode to ${M8.bold(M.editorMode||"emacs")}`);if(M.diffTool!==X.current.diffTool)v6.push(`Set diff tool to ${M8.bold(M.diffTool)}`);if(M.autoConnectIde!==X.current.autoConnectIde)v6.push(`${M.autoConnectIde?"Enabled":"Disabled"} auto-connect to IDE`);if(M.autoInstallIdeExtension!==X.current.autoInstallIdeExtension)v6.push(`${M.autoInstallIdeExtension?"Enabled":"Disabled"} auto-install IDE extension`);if(M.autoCompactEnabled!==X.current.autoCompactEnabled)v6.push(`${M.autoCompactEnabled?"Enabled":"Disabled"} auto-compact`);if(M.respectGitignore!==X.current.respectGitignore)v6.push(`${M.respectGitignore?"Enabled":"Disabled"} respect .gitignore in file picker`);if(M.copyFullResponse!==X.current.copyFullResponse)v6.push(`${M.copyFullResponse?"Enabled":"Disabled"} always copy full response`);if(M.copyOnSelect!==X.current.copyOnSelect)v6.push(`${M.copyOnSelect?"Enabled":"Disabled"} copy on select`);if(M.terminalProgressBarEnabled!==X.current.terminalProgressBarEnabled)v6.push(`${M.terminalProgressBarEnabled?"Enabled":"Disabled"} terminal progress bar`);if(M.showStatusInTerminalTab!==X.current.showStatusInTerminalTab)v6.push(`${M.showStatusInTerminalTab?"Enabled":"Disabled"} terminal tab status`);if(M.showTurnDuration!==X.current.showTurnDuration)v6.push(`${M.showTurnDuration?"Enabled":"Disabled"} turn duration`);if(M.remoteControlAtStartup!==X.current.remoteControlAtStartup){let $q=M.remoteControlAtStartup===void 0?"Reset Remote Control to default":`${M.remoteControlAtStartup?"Enabled":"Disabled"} Remote Control for all sessions`;v6.push($q)}if(P?.autoUpdatesChannel!==D.current?.autoUpdatesChannel)v6.push(`Set auto-update channel to ${M8.bold(P?.autoUpdatesChannel??"latest")}`);if(v6.length>0)q(v6.join(`
|
|
5218
5218
|
`));else q("Config dialog dismissed",{display:"system"})},[F6,P6,M,d,Z,k,P?.autoUpdatesChannel,K7()?P?.fastMode:void 0,q]),U6=w9.useCallback(()=>{if(j!==w6.current)H(w6.current);B8(()=>X.current);let v6=H6;Sq("localSettings",{spinnerTipsEnabled:v6?.spinnerTipsEnabled,prefersReducedMotion:v6?.prefersReducedMotion,defaultView:v6?.defaultView,outputStyle:v6?.outputStyle});let r6=J6;Sq("userSettings",{alwaysThinkingEnabled:r6?.alwaysThinkingEnabled,fastMode:r6?.fastMode,promptSuggestionEnabled:r6?.promptSuggestionEnabled,autoUpdatesChannel:r6?.autoUpdatesChannel,minimumVersion:r6?.minimumVersion,language:r6?.language,...{useAutoModeDuringPlan:r6?.useAutoModeDuringPlan},syntaxHighlightingDisabled:r6?.syntaxHighlightingDisabled,permissions:r6?.permissions===void 0?void 0:{...r6.permissions,defaultMode:r6.permissions.defaultMode}});let H8=K6;if(e((E8)=>({...E8,mainLoopModel:H8.mainLoopModel,mainLoopModelForSession:H8.mainLoopModelForSession,verbose:H8.verbose,thinkingEnabled:H8.thinkingEnabled,fastMode:H8.fastMode,promptSuggestionEnabled:H8.promptSuggestionEnabled,isBriefOnly:H8.isBriefOnly,replBridgeEnabled:H8.replBridgeEnabled,replBridgeOutboundOnly:H8.replBridgeOutboundOnly,settings:H8.settings,toolPermissionContext:FY6(E8.toolPermissionContext)})),DE6()!==$6)h96($6)},[j,H,H6,J6,K6,$6,e]),A8=w9.useCallback(()=>{if(F6!==null)return;if(T6.current)U6();q("Config dialog dismissed",{display:"system"})},[F6,U6,q]);Kq("confirm:no",A8,{context:"Settings",isActive:F6===null&&!m&&!Y}),Kq("settings:close",N6,{context:"Settings",isActive:F6===null&&!m&&!Y});let Q6=w9.useCallback(()=>{let v6=E6[C];if(!v6||!v6.onChange)return;if(v6.type==="boolean"){if(T6.current=!0,v6.onChange(!v6.value),v6.id==="thinkingEnabled"){if(!v6.value===k6.current)x6(!1);else if(K.messages.some((E8)=>E8.type==="assistant"))x6(!0)}return}if(v6.id==="theme"||v6.id==="model"||v6.id==="teammateDefaultModel"||v6.id==="showExternalIncludesDialog"||v6.id==="outputStyle"||v6.id==="language")switch(v6.id){case"theme":a6("Theme"),_(!0);return;case"model":a6("Model"),_(!0);return;case"teammateDefaultModel":a6("TeammateModel"),_(!0);return;case"showExternalIncludesDialog":a6("ExternalIncludes"),_(!0);return;case"outputStyle":a6("OutputStyle"),_(!0);return;case"language":a6("Language"),_(!0);return}if(v6.id==="autoUpdatesChannel"){if(g6){a6("EnableAutoUpdates"),_(!0);return}if((P?.autoUpdatesChannel??"latest")==="latest")a6("ChannelDowngrade"),_(!0);else T6.current=!0,Sq("userSettings",{autoUpdatesChannel:"latest",minimumVersion:void 0}),f((H8)=>({...H8,autoUpdatesChannel:"latest",minimumVersion:void 0})),Q("ev_event",{channel:"latest"});return}if(v6.type==="enum"){T6.current=!0;let H8=(v6.options.indexOf(v6.value)+1)%v6.options.length;v6.onChange(v6.options[H8]);return}},[g6,E6,C,P?.autoUpdatesChannel,_]),J8=(v6)=>{x6(!1);let r6=Math.max(0,Math.min(E6.length-1,C+v6));b(r6),C6(r6)};vK({"select:previous":()=>{if(C===0)x6(!1),B(!0),p(0);else J8(-1)},"select:next":()=>J8(1),"scroll:lineUp":()=>J8(-1),"scroll:lineDown":()=>J8(1),"select:accept":Q6,"settings:search":()=>{B(!0),L6("")}},{context:"Settings",isActive:F6===null&&!m&&!Y});let f8=w9.useCallback((v6)=>{if(F6!==null)return;if(Y){if(v6.key==="down")$();return}if(m){if(v6.key==="escape"){if(v6.preventDefault(),b6.length>0)L6("");else B(!1);return}if(v6.key==="return"||v6.key==="down"||v6.key==="wheeldown")v6.preventDefault(),B(!1),b(0),p(0);return}if(v6.key==="left"||v6.key==="right"||v6.key==="tab"){v6.preventDefault(),Q6();return}if(v6.ctrl||v6.meta)return;if(v6.key==="j"||v6.key==="k"||v6.key==="/")return;if(v6.key.length===1&&v6.key!==" ")v6.preventDefault(),B(!0),L6(v6.key)},[F6,Y,m,b6,L6,Q6,$]);return W(x,{flexDirection:"column",width:"100%",tabIndex:0,autoFocus:!0,onKeyDown:f8,children:F6==="Theme"?y(Y8,{children:[W(YO6,{onThemeSelect:(v6)=>{T6.current=!0,H(v6),a6(null),_(!1)},onCancel:()=>{a6(null),_(!1)},hideEscToCancel:!0,skipExitHandling:!0}),W(x,{children:W(T,{dimColor:!0,italic:!0,children:y(Pq,{children:[W(c8,{shortcut:"Enter",action:"select"}),W(a8,{action:"confirm:no",context:"Confirmation",fallback:"Esc",description:"cancel"})]})})})]}):F6==="Model"?y(Y8,{children:[W(va,{initial:d,onSelect:(v6,r6)=>{T6.current=!0,G6(v6),a6(null),_(!1)},onCancel:()=>{a6(null),_(!1)},showFastModeNotice:K7()?o&&d$(d)&&T9():!1}),W(T,{dimColor:!0,children:y(Pq,{children:[W(c8,{shortcut:"Enter",action:"confirm"}),W(a8,{action:"confirm:no",context:"Confirmation",fallback:"Esc",description:"cancel"})]})})]}):F6==="TeammateModel"?y(Y8,{children:[W(va,{initial:M.teammateDefaultModel??null,skipSettingsWrite:!0,headerText:"Default model for newly spawned teammates. The leader can override via the tool call's model parameter.",onSelect:(v6,r6)=>{if(a6(null),_(!1),M.teammateDefaultModel===void 0&&v6===null)return;T6.current=!0,B8((H8)=>H8.teammateDefaultModel===v6?H8:{...H8,teammateDefaultModel:v6}),J({...j8(),teammateDefaultModel:v6}),O6((H8)=>({...H8,teammateDefaultModel:mJ_(v6)})),Q("ev_event",{model:v6})},onCancel:()=>{a6(null),_(!1)}}),W(T,{dimColor:!0,children:y(Pq,{children:[W(c8,{shortcut:"Enter",action:"confirm"}),W(a8,{action:"confirm:no",context:"Confirmation",fallback:"Esc",description:"cancel"})]})})]}):F6==="ExternalIncludes"?y(Y8,{children:[W(oqq,{onDone:()=>{a6(null),_(!1)},externalIncludes:$W6(h6)}),W(T,{dimColor:!0,children:y(Pq,{children:[W(c8,{shortcut:"Enter",action:"confirm"}),W(a8,{action:"confirm:no",context:"Confirmation",fallback:"Esc",description:"disable external includes"})]})})]}):F6==="OutputStyle"?y(Y8,{children:[W(CJ_,{initialStyle:Z,onComplete:(v6)=>{T6.current=!0,G(v6??b2),a6(null),_(!1),Sq("localSettings",{outputStyle:v6}),Q("ev_event",{style:v6??b2,source:"config_panel",settings_source:"localSettings"})},onCancel:()=>{a6(null),_(!1)}}),W(T,{dimColor:!0,children:y(Pq,{children:[W(c8,{shortcut:"Enter",action:"confirm"}),W(a8,{action:"confirm:no",context:"Confirmation",fallback:"Esc",description:"cancel"})]})})]}):F6==="Language"?y(Y8,{children:[W(xJ_,{initialLanguage:k,onComplete:(v6)=>{T6.current=!0,N(v6),a6(null),_(!1),Sq("userSettings",{language:v6}),Q("ev_event",{language:v6??"default",source:"config_panel"})},onCancel:()=>{a6(null),_(!1)}}),W(T,{dimColor:!0,children:y(Pq,{children:[W(c8,{shortcut:"Enter",action:"confirm"}),W(a8,{action:"confirm:no",context:"Settings",fallback:"Esc",description:"cancel"})]})})]}):F6==="EnableAutoUpdates"?W(Hq,{title:"Enable Auto-Updates",onCancel:()=>{a6(null),_(!1)},hideBorder:!0,hideInputGuide:!0,children:g6?.type!=="config"?y(Y8,{children:[W(T,{children:g6?.type==="env"?"Auto-updates are controlled by an environment variable and cannot be changed here.":"Auto-updates are disabled in development builds."}),g6?.type==="env"&&y(T,{dimColor:!0,children:["Unset ",g6.envVar," to re-enable auto-updates."]})]}):W(l8,{options:[{label:"Enable with latest channel",value:"latest"},{label:"Enable with stable channel",value:"stable"}],onChange:(v6)=>{T6.current=!0,a6(null),_(!1),B8((r6)=>({...r6,autoUpdates:!0})),J({...j8(),autoUpdates:!0}),Sq("userSettings",{autoUpdatesChannel:v6,minimumVersion:void 0}),f((r6)=>({...r6,autoUpdatesChannel:v6,minimumVersion:void 0})),Q("ev_event",{channel:v6})}})}):F6==="ChannelDowngrade"?W(EJ_,{currentVersion:"99.0.0",onChoice:(v6)=>{if(a6(null),_(!1),v6==="cancel")return;T6.current=!0;let r6={autoUpdatesChannel:"stable"};if(v6==="stay")r6.minimumVersion="99.0.0";Sq("userSettings",r6),f((H8)=>({...H8,...r6})),Q("ev_event",{channel:"stable",minimum_version_set:v6==="stay"})}}):y(x,{flexDirection:"column",gap:1,marginY:w?void 0:1,children:[W(o0,{query:b6,isFocused:m&&!Y,isTerminalFocused:g,cursorOffset:f6,placeholder:"Search settings…"}),W(x,{flexDirection:"column",children:E6.length===0?y(T,{dimColor:!0,italic:!0,children:['No settings match "',b6,'"']}):y(Y8,{children:[I>0&&y(T,{dimColor:!0,children:[s6.arrowUp," ",I," more above"]}),E6.slice(I,I+U).map((v6,r6)=>{let E8=I+r6===C&&!Y&&!m;return W(HM.Fragment,{children:y(x,{children:[W(x,{width:44,children:y(T,{color:E8?"suggestion":void 0,children:[E8?s6.pointer:" "," ",v6.label]})}),W(x,{children:v6.type==="boolean"?y(Y8,{children:[W(T,{color:E8?"suggestion":void 0,children:v6.value.toString()}),c6&&v6.id==="thinkingEnabled"&&y(T,{color:"warning",children:[" ","Changing thinking mode mid-conversation will increase latency and may reduce quality."]})]}):v6.id==="theme"?W(T,{color:E8?"suggestion":void 0,children:NsA[v6.value.toString()]??v6.value.toString()}):v6.id==="notifChannel"?W(T,{color:E8?"suggestion":void 0,children:W(VsA,{value:v6.value.toString()})}):v6.id==="defaultPermissionMode"?W(T,{color:E8?"suggestion":void 0,children:CT(v6.value)}):v6.id==="autoUpdatesChannel"&&g6?y(x,{flexDirection:"column",children:[W(T,{color:E8?"suggestion":void 0,children:"disabled"}),y(T,{dimColor:!0,children:["(",$j6(g6),")"]})]}):W(T,{color:E8?"suggestion":void 0,children:v6.value.toString()})},E8?"selected":"unselected")]})},v6.id)}),I+U<E6.length&&y(T,{dimColor:!0,children:[s6.arrowDown," ",E6.length-I-U," ","more below"]})]})}),Y?W(T,{dimColor:!0,children:y(Pq,{children:[W(c8,{shortcut:"←/→ tab",action:"switch"}),W(c8,{shortcut:"↓",action:"return"}),W(a8,{action:"confirm:no",context:"Settings",fallback:"Esc",description:"close"})]})}):m?W(T,{dimColor:!0,children:y(Pq,{children:[W(T,{children:"Type to filter"}),W(c8,{shortcut:"Enter/↓",action:"select"}),W(c8,{shortcut:"↑",action:"tabs"}),W(a8,{action:"confirm:no",context:"Settings",fallback:"Esc",description:"clear"})]})}):W(T,{dimColor:!0,children:y(Pq,{children:[W(a8,{action:"select:accept",context:"Settings",fallback:"Space",description:"change"}),W(a8,{action:"settings:close",context:"Settings",fallback:"Enter",description:"save"}),W(a8,{action:"settings:search",context:"Settings",fallback:"/",description:"search"}),W(a8,{action:"confirm:no",context:"Settings",fallback:"Esc",description:"cancel"})]})})]})})}function mJ_(q){if(q===void 0)return j2(_k6());if(q===null)return"Default (leader's model)";return j2(q)}function VsA(q){let K=gJ_.c(4),{value:_}=q;switch(_){case"auto":return"Auto";case"iterm2":{let A;if(K[0]===Symbol.for("react.memo_cache_sentinel"))A=y(T,{children:["iTerm2 ",W(T,{dimColor:!0,children:"(OSC 9)"})]}),K[0]=A;else A=K[0];return A}case"terminal_bell":{let A;if(K[1]===Symbol.for("react.memo_cache_sentinel"))A=y(T,{children:["Terminal Bell ",W(T,{dimColor:!0,children:"(\\a)"})]}),K[1]=A;else A=K[1];return A}case"kitty":{let A;if(K[2]===Symbol.for("react.memo_cache_sentinel"))A=y(T,{children:["Kitty ",W(T,{dimColor:!0,children:"(OSC 99)"})]}),K[2]=A;else A=K[2];return A}case"ghostty":{let A;if(K[3]===Symbol.for("react.memo_cache_sentinel"))A=y(T,{children:["Ghostty ",W(T,{dimColor:!0,children:"(OSC 777)"})]}),K[3]=A;else A=K[3];return A}case"iterm2_with_bell":return"iTerm2 w/ Bell";case"notifications_disabled":return"Disabled";default:return _}}var gJ_,HM,w9,NsA;var cJ_=h(()=>{n6();XK();mK();Wq();aJ6();Wq();L4();a1();z1();y8();zO6();Z78();dq();k78();cK();N78();sqq();LJ_();c_();w5();bJ_();uJ_();w1();R7();F7();q7();gv();_R();ka();z3();Vq();G8();Fy();x8();mz();En();jt8();wc();I_();Pj();_1();r();gJ_=q6(K8(),1),HM=q6(q8(),1),w9=q6(q8(),1);NsA={auto:"Auto (match terminal)",dark:"Dark mode",light:"Light mode","dark-daltonized":"Dark mode (colorblind-friendly)","light-daltonized":"Light mode (colorblind-friendly)","dark-ansi":"Dark mode (ANSI colors only)","light-ansi":"Light mode (ANSI colors only)"}});function UJ_(){return V78}function dJ_(){return y78}function ysA(){let q=V78!==null,K=y78!==null;if(V78=null,y78=null,q)for(let _ of x06)_(null);if(K)for(let _ of u06)_(null)}function eqq(q){if(!q||typeof q.limit!=="number"||typeof q.used!=="number"||typeof q.resetsAt!=="string")return null;return{limit:q.limit,used:q.used,resetsAt:q.resetsAt}}function FJ_(q,K){return fetch(K,{headers:{Authorization:`Bearer ${q.accessToken}`}})}async function p06(){let q=await uh8();if(!q){ysA();return}let K=`${pB6()}/puku/v1/subscription`,_=await FJ_(q,K);if(_.status===401&&q.refreshToken){let Y=await vq6(q,{force:!0});if(Y)await pQ(Y),q=Y,n26(Y),_=await FJ_(q,K)}if(!_.ok)return;let A;try{A=await _.json()}catch{return}let z=A.quotas?.chat;if(!z)return;if(typeof z.used_req==="number"&&typeof z.req_limit==="number"){let Y={used_req:z.used_req,req_limit:z.req_limit};V78=Y;for(let O of x06)O(Y)}if(z.windows!==void 0){let Y=eqq(z.windows.fiveHour),O=eqq(z.windows.weekly),$=eqq(z.windows.monthly);if(Y||O||$){let w={fiveHour:Y,weekly:O,monthly:$};y78=w;for(let H of u06)H(w)}}}var V78=null,x06,y78=null,u06;var R78=h(()=>{oV();x06=new Set,u06=new Set});function QJ_(){let[q,K]=wO6.useState(UJ_());return wO6.useEffect(()=>{let _=(A)=>{K(A)};return x06.add(_),()=>{x06.delete(_)}},[]),q}function lJ_(){let[q,K]=wO6.useState(dJ_());return wO6.useEffect(()=>{let _=(A)=>{K(A)};return u06.add(_),()=>{u06.delete(_)}},[]),q}var wO6;var qKq=h(()=>{R78();wO6=q6(q8(),1)});function KKq({title:q,window:K,maxWidth:_}){let A=K.limit>0?Math.min(1,K.used/K.limit):0,z=(A*100).toFixed(1),Y=De(K.resetsAt,!1,!0),O=Math.max(10,Math.min(_-30,20));return y(x,{flexDirection:"column",children:[W(T,{bold:!0,children:q}),y(x,{flexDirection:"row",gap:1,children:[W(oy,{ratio:A,width:O,fillColor:"rate_limit_fill",emptyColor:"rate_limit_empty"}),y(T,{children:[z,"% (",K.used," / ",K.limit,")"]})]}),y(T,{dimColor:!0,children:[" Resets at: ",Y]})]})}function nJ_(){let q=lJ_();if(iJ_.useEffect(()=>{p06()},[]),!q)return W(x,{flexDirection:"column",gap:1,children:W(T,{dimColor:!0,children:"Loading usage data…"})});let K=q.fiveHour||q.weekly||q.monthly,_=80;return y(x,{flexDirection:"column",gap:1,width:"100%",children:[!K&&W(T,{dimColor:!0,children:"No usage data available."}),q.fiveHour&&W(KKq,{title:"Five Hour Usage:",window:q.fiveHour,maxWidth:_}),q.weekly&&W(KKq,{title:"Weekly Usage:",window:q.weekly,maxWidth:_}),q.monthly&&W(KKq,{title:"Monthly Usage:",window:q.monthly,maxWidth:_})]})}var iJ_;var rJ_=h(()=>{n6();R78();qKq();HZ6();OK();r();iJ_=q6(q8(),1)});function _Kq(){let q=Kv6();if(!q||!q.available||q.granted)return!1;return _v6(q)!==null}function tJ_(){if(!_Kq())return!1;let q=j8();if(q.hasVisitedExtraUsage)return!1;if((q.overageCreditUpsellSeenCount??0)>=EsA)return!1;return!0}function LsA(q){return`${q} in extra usage for third-party apps · /extra-usage`}function oJ_(q){return`${q} in extra usage`}function eJ_(q){let K=sJ_.c(8),{maxWidth:_,twoLine:A}=q,z,Y;if(K[0]!==_||K[1]!==A){Y=Symbol.for("react.early_return_sentinel");q:{let O=Kv6();if(!O){Y=null;break q}let $=_v6(O);if(!$){Y=null;break q}if(A){let M=oJ_($),J;if(K[4]!==_)J=_?EA(aJ_,_):aJ_,K[4]=_,K[5]=J;else J=K[5];let X;if(K[6]!==J)X=W(T,{dimColor:!0,children:J}),K[6]=J,K[7]=X;else X=K[7];Y=y(Y8,{children:[W(T,{color:"puku",children:_?EA(M,_):M}),X]});break q}let w=LsA($),H=_?EA(w,_):w,j=Math.min(oJ_($).length,H.length);z=y(T,{dimColor:!0,children:[W(T,{color:"puku",children:H.slice(0,j)}),H.slice(j)]})}K[0]=_,K[1]=A,K[2]=z,K[3]=Y}else z=K[2],Y=K[3];if(Y!==Symbol.for("react.early_return_sentinel"))return Y;return z}var sJ_,RsA,EsA=3,aJ_="On us. Works on third-party apps · /extra-usage";var AKq=h(()=>{n6();xs6();Wq();OK();r();sJ_=q6(K8(),1),RsA=q6(q8(),1)});function g06(q){return typeof q==="object"&&q!==null}function s0(q){return typeof q==="string"&&q.trim()?q.trim():void 0}function HO6(q){return typeof q==="number"&&Number.isFinite(q)?q:void 0}function zKq(q){return typeof q==="boolean"?q:void 0}function YKq(q){let K=HO6(q);if(K===void 0)return;return new Date(K*1000).toISOString()}function E78(q){if(!g06(q))return;let K=HO6(q.used_percent)??HO6(q.usedPercent);if(K===void 0)return;let _=HO6(q.window_minutes)??HO6(q.windowDurationMins)??(()=>{let z=HO6(q.limit_window_seconds);return z===void 0?void 0:Math.round(z/60)})(),A=YKq(q.resets_at)??YKq(q.resetsAt)??YKq(q.reset_at);return{usedPercent:K,windowMinutes:_,resetsAt:A}}function K2_(q){if(!g06(q))return;let K=zKq(q.has_credits)??zKq(q.hasCredits)??!1,_=zKq(q.unlimited)??!1,A=s0(q.balance);if(!K&&!_&&!A)return;return{hasCredits:K,unlimited:_,balance:A}}function m06(q,K){if(!g06(q))return;let _=s0(q.limit_name)??s0(q.limitName)??s0(q.limit_id)??s0(q.limitId)??K,A=E78(q.primary)??E78(q.primary_window),z=E78(q.secondary)??E78(q.secondary_window),Y=K2_(q.credits);if(!A&&!z&&!Y)return;return{limitName:_,primary:A,secondary:z,credits:Y}}function OKq(q,K="codex"){if(Array.isArray(q))return q.map((_,A)=>m06(_,A===0?K:`${K}-${A+1}`)).filter((_)=>_!==void 0);if(!g06(q))return[];return Object.entries(q).map(([_,A])=>m06(A,_)).filter((_)=>_!==void 0)}function hsA(q){let K=s0(q.plan_type)??s0(q.planType),_=[],A=K2_(q.credits),z=m06(q.rate_limit,"codex");if(z)z.credits??=A,_.push(z);else if(A)_.push({limitName:"codex",credits:A});let Y=m06(q.code_review_rate_limit,"code review");if(Y)_.push(Y);return _.push(...OKq(q.additional_rate_limits??q.additionalRateLimits,"additional")),{planType:K,snapshots:_}}function SsA(q){if(Array.isArray(q))return{snapshots:OKq(q)};if(!g06(q))return{snapshots:[]};if("rate_limit"in q||"code_review_rate_limit"in q||"additional_rate_limits"in q||"credits"in q)return hsA(q);let K=q.rate_limits??q.rateLimits??q.rate_limits_by_limit_id??q.rateLimitsByLimitId;if(K!==void 0)return{planType:s0(q.plan_type)??s0(q.planType),snapshots:OKq(K)};let _=m06(q,"codex");return{planType:s0(q.plan_type)??s0(q.planType),snapshots:_?[_]:[]}}function jO6(q){if(!q)return q;return q[0].toUpperCase()+q.slice(1)}function q2_(q,K){if(q===void 0||q<=0)return K;if(q===10080)return"weekly";if(q%1440===0)return`${q/1440}d`;if(q%60===0)return`${q/60}h`;return`${q}m`}function CsA(q){let K=q?.trim();if(!K)return;let _=Number.parseInt(K,10);if(Number.isFinite(_)&&`${_}`===K&&_>0)return`${_}`;let A=Number.parseFloat(K);if(Number.isFinite(A)&&A>0)return`${Math.round(A)}`;return}function bsA(q){if(!q?.hasCredits)return;if(q.unlimited)return{kind:"text",label:"Credits",value:"Unlimited"};let K=CsA(q.balance);if(!K)return;return{kind:"text",label:"Credits",value:`${K} credits`}}function _2_(q){let K=[];for(let _ of q){let A=_.limitName.trim()||"codex",z=bsA(_.credits);if(!(_.primary!==void 0||_.secondary!==void 0||z!==void 0))continue;let O=A.toLowerCase()!=="codex",$=Number(_.primary!==void 0)+Number(_.secondary!==void 0),w=O&&$===1;if(O&&!w)K.push({kind:"text",label:`${jO6(A)} limit`,value:""});if(_.primary){let H=jO6(q2_(_.primary.windowMinutes,"5h"));K.push({kind:"window",label:w?`${jO6(A)} ${H} limit`:`${H} limit`,usedPercent:_.primary.usedPercent,resetsAt:_.primary.resetsAt})}if(_.secondary){let H=jO6(q2_(_.secondary.windowMinutes,"weekly"));K.push({kind:"window",label:w?`${jO6(A)} ${H} limit`:`${H} limit`,usedPercent:_.secondary.usedPercent,resetsAt:_.secondary.resetsAt})}if(z)K.push(z)}return K}function A2_(q){if(!q)return;return q.split(/[_\s-]+/).filter(Boolean).map((K)=>jO6(K.toLowerCase())).join(" ")}function IsA(q=KL){return new URL("/backend-api/wham/usage",q).toString()}async function z2_(){let q=Bw({model:process.env.OPENAI_MODEL,baseUrl:process.env.OPENAI_BASE_URL});if(!t$6(q.baseUrl))throw Error("Codex usage is only available with the official ChatGPT Codex backend.");let K=kf();if(!K.apiKey){let A=K.authPath?` or place a Codex auth.json at ${K.authPath}`:"";throw Error(`Codex auth is required. Set CODEX_API_KEY${A}.`)}if(!K.accountId)throw Error("Codex auth is missing chatgpt_account_id. Re-login with the Codex CLI or set CHATGPT_ACCOUNT_ID/CODEX_ACCOUNT_ID.");let _=await fetch(IsA(q.baseUrl),{method:"GET",headers:{Accept:"application/json",Authorization:`Bearer ${K.apiKey}`,"chatgpt-account-id":K.accountId,originator:"puku-cli"},signal:AbortSignal.timeout(5000)});if(!_.ok){let A=await _.text().catch(()=>"unknown error");throw Error(`Codex usage error ${_.status}: ${A}`)}return SsA(await _.json())}var Y2_=h(()=>{_L()});function xsA({label:q,usedPercent:K,resetsAt:_,maxWidth:A}){let z=Math.max(0,Math.min(100,K)),Y=`${Math.floor(z)}% used`,O=_?`Resets ${De(_,!0,!0)}`:void 0;if(A>=62)return y(x,{flexDirection:"column",children:[W(T,{bold:!0,children:q}),y(x,{flexDirection:"row",gap:1,children:[W(oy,{ratio:z/100,width:50,fillColor:"rate_limit_fill",emptyColor:"rate_limit_empty"}),W(T,{children:Y})]}),O?W(T,{dimColor:!0,children:O}):null]});return y(x,{flexDirection:"column",children:[y(T,{children:[W(T,{bold:!0,children:q}),O?y(Y8,{children:[W(T,{children:" "}),y(T,{dimColor:!0,children:["· ",O]})]}):null]}),W(oy,{ratio:z/100,width:A,fillColor:"rate_limit_fill",emptyColor:"rate_limit_empty"}),W(T,{children:Y})]})}function usA({label:q,value:K}){if(!K)return W(T,{bold:!0,children:q});return y(T,{children:[W(T,{bold:!0,children:q}),y(T,{dimColor:!0,children:[" · ",K]})]})}function $2_(){let[q,K]=MO6.useState(null),[_,A]=MO6.useState(null),[z,Y]=MO6.useState(!0),{columns:O}=Eq(),$=O-2,w=Math.min($,80),H=O2_.useCallback(async()=>{Y(!0),A(null);try{K(await z2_())}catch(J){A6(J),A(J instanceof Error?J.message:"Failed to load Codex usage")}finally{Y(!1)}},[]);if(MO6.useEffect(()=>{H()},[H]),Kq("settings:retry",()=>{H()},{context:"Settings",isActive:!!_&&!z}),_)return y(x,{flexDirection:"column",gap:1,children:[y(T,{color:"error",children:["Error: ",_]}),W(T,{dimColor:!0,children:y(Pq,{children:[W(a8,{action:"settings:retry",context:"Settings",fallback:"r",description:"retry"}),W(a8,{action:"confirm:no",context:"Settings",fallback:"Esc",description:"cancel"})]})})]});if(!q)return y(x,{flexDirection:"column",gap:1,children:[W(T,{dimColor:!0,children:"Loading Codex usage data…"}),W(T,{dimColor:!0,children:W(a8,{action:"confirm:no",context:"Settings",fallback:"Esc",description:"cancel"})})]});let j=_2_(q.snapshots),M=A2_(q.planType);return y(x,{flexDirection:"column",gap:1,width:"100%",children:[M?y(T,{dimColor:!0,children:["Plan: ",M]}):null,j.length===0?W(T,{dimColor:!0,children:"Codex usage data is not available for this account."}):null,j.map((J,X)=>J.kind==="window"?W(xsA,{label:J.label,usedPercent:J.usedPercent,resetsAt:J.resetsAt,maxWidth:w},`${J.label}-${X}`):W(usA,{label:J.label,value:J.value},`${J.label}-${X}`)),W(T,{dimColor:!0,children:W(a8,{action:"confirm:no",context:"Settings",fallback:"Esc",description:"cancel"})})]})}var O2_,MO6;var w2_=h(()=>{I_();n6();XK();Y2_();OK();y8();F7();q7();HZ6();r();O2_=q6(q8(),1),MO6=q6(q8(),1)});function j2_(q){let K=wKq.c(34),{title:_,limit:A,maxWidth:z,showTimeInReset:Y,extraSubtext:O}=q,$=Y===void 0?!0:Y,{utilization:w,resets_at:H}=A;if(w===null)return null;let j=`${Math.floor(w)}% used`,M;if(H){let J;if(K[0]!==H||K[1]!==$)J=De(H,!0,$),K[0]=H,K[1]=$,K[2]=J;else J=K[2];M=`Resets ${J}`}if(O)if(M)M=`${O} · ${M}`;else M=O;if(z>=62){let J;if(K[3]!==_)J=W(T,{bold:!0,children:_}),K[3]=_,K[4]=J;else J=K[4];let X=w/100,P;if(K[5]!==X)P=W(oy,{ratio:X,width:50,fillColor:"rate_limit_fill",emptyColor:"rate_limit_empty"}),K[5]=X,K[6]=P;else P=K[6];let f;if(K[7]!==j)f=W(T,{children:j}),K[7]=j,K[8]=f;else f=K[8];let D;if(K[9]!==P||K[10]!==f)D=y(x,{flexDirection:"row",gap:1,children:[P,f]}),K[9]=P,K[10]=f,K[11]=D;else D=K[11];let Z;if(K[12]!==M)Z=M&&W(T,{dimColor:!0,children:M}),K[12]=M,K[13]=Z;else Z=K[13];let G;if(K[14]!==J||K[15]!==D||K[16]!==Z)G=y(x,{flexDirection:"column",children:[J,D,Z]}),K[14]=J,K[15]=D,K[16]=Z,K[17]=G;else G=K[17];return G}else{let J;if(K[18]!==_)J=W(T,{bold:!0,children:_}),K[18]=_,K[19]=J;else J=K[19];let X;if(K[20]!==M)X=M&&y(Y8,{children:[W(T,{children:" "}),y(T,{dimColor:!0,children:["· ",M]})]}),K[20]=M,K[21]=X;else X=K[21];let P;if(K[22]!==J||K[23]!==X)P=y(T,{children:[J,X]}),K[22]=J,K[23]=X,K[24]=P;else P=K[24];let f=w/100,D;if(K[25]!==z||K[26]!==f)D=W(oy,{ratio:f,width:z,fillColor:"rate_limit_fill",emptyColor:"rate_limit_empty"}),K[25]=z,K[26]=f,K[27]=D;else D=K[27];let Z;if(K[28]!==j)Z=W(T,{children:j}),K[28]=j,K[29]=Z;else Z=K[29];let G;if(K[30]!==P||K[31]!==D||K[32]!==Z)G=y(x,{flexDirection:"column",children:[P,D,Z]}),K[30]=P,K[31]=D,K[32]=Z,K[33]=G;else G=K[33];return G}}function psA(){let[q,K]=JO6.useState(null),[_,A]=JO6.useState(null),[z,Y]=JO6.useState(!0),{columns:O}=Eq(),$=O-2,w=Math.min($,80),H=H2_.useCallback(async()=>{Y(!0),A(null);try{let X=await q56();K(X)}catch(X){A6(X);let P=X,f=P.response?.data?p6(P.response.data):void 0;A(f?`Failed to load usage data: ${f}`:"Failed to load usage data")}finally{Y(!1)}},[]);if(JO6.useEffect(()=>{H()},[H]),Kq("settings:retry",()=>{H()},{context:"Settings",isActive:!!_&&!z}),_)return y(x,{flexDirection:"column",gap:1,children:[y(T,{color:"error",children:["Error: ",_]}),W(T,{dimColor:!0,children:y(Pq,{children:[W(a8,{action:"settings:retry",context:"Settings",fallback:"r",description:"retry"}),W(a8,{action:"confirm:no",context:"Settings",fallback:"Esc",description:"cancel"})]})})]});if(!q)return y(x,{flexDirection:"column",gap:1,children:[W(T,{dimColor:!0,children:"Loading usage data…"}),W(T,{dimColor:!0,children:W(a8,{action:"confirm:no",context:"Settings",fallback:"Esc",description:"cancel"})})]});let j=e7(),M=j==="max"||j==="team"||j===null,J=[{title:"Current session",limit:q.five_hour},{title:"Current week (all models)",limit:q.seven_day},...M?[{title:"Current week (Sonnet only)",limit:q.seven_day_sonnet}]:[]];return y(x,{flexDirection:"column",gap:1,width:"100%",children:[J.some(({limit:X})=>X)||W(T,{dimColor:!0,children:"/usage is only available for subscription plans."}),J.map(({title:X,limit:P})=>P&&W(j2_,{title:X,limit:P,maxWidth:w},X)),q.extra_usage&&W(msA,{extraUsage:q.extra_usage,maxWidth:w}),_Kq()&&W(eJ_,{maxWidth:w}),W(T,{dimColor:!0,children:W(a8,{action:"confirm:no",context:"Settings",fallback:"Esc",description:"cancel"})})]})}function M2_(){if(Jq()==="codex")return W($2_,{});if(!DK())return W(nJ_,{});return W(psA,{})}function msA(q){let K=wKq.c(20),{extraUsage:_,maxWidth:A}=q,z=e7();if(!(z==="pro"||z==="max"))return!1;if(!_.is_enabled){if(eg.isEnabled()){let v;if(K[0]===Symbol.for("react.memo_cache_sentinel"))v=y(x,{flexDirection:"column",children:[W(T,{bold:!0,children:$Kq}),W(T,{dimColor:!0,children:"Extra usage not enabled · /extra-usage to enable"})]}),K[0]=v;else v=K[0];return v}return null}if(_.monthly_limit===null){let v;if(K[1]===Symbol.for("react.memo_cache_sentinel"))v=y(x,{flexDirection:"column",children:[W(T,{bold:!0,children:$Kq}),W(T,{dimColor:!0,children:"Unlimited"})]}),K[1]=v;else v=K[1];return v}if(typeof _.used_credits!=="number"||typeof _.utilization!=="number")return null;let O=_.used_credits/100,$;if(K[2]!==O)$=jT6(O,2),K[2]=O,K[3]=$;else $=K[3];let w=$,H=_.monthly_limit/100,j;if(K[4]!==H)j=jT6(H,2),K[4]=H,K[5]=j;else j=K[5];let M=j,J,X,P,f;if(K[6]!==_.utilization){let v=new Date,k=new Date(v.getFullYear(),v.getMonth()+1,1);J=j2_,f=$Kq,X=_.utilization,P=k.toISOString(),K[6]=_.utilization,K[7]=J,K[8]=X,K[9]=P,K[10]=f}else J=K[7],X=K[8],P=K[9],f=K[10];let D;if(K[11]!==X||K[12]!==P)D={utilization:X,resets_at:P},K[11]=X,K[12]=P,K[13]=D;else D=K[13];let Z=`${w} / ${M} spent`,G;if(K[14]!==J||K[15]!==A||K[16]!==f||K[17]!==D||K[18]!==Z)G=W(J,{title:f,limit:D,showTimeInReset:!1,extraSubtext:Z,maxWidth:A}),K[14]=J,K[15]=A,K[16]=f,K[17]=D,K[18]=Z,K[19]=G;else G=K[19];return G}var wKq,H2_,JO6,$Kq="Extra usage";var J2_=h(()=>{Av6();kv();wK();rJ_();I_();n6();XK();us6();OK();y8();Q7();Q8();F7();q7();HZ6();AKq();w2_();r();wKq=q6(K8(),1),H2_=q6(q8(),1),JO6=q6(q8(),1)});function XO6(q){let K=X2_.c(25),{onClose:_,context:A,defaultTab:z}=q,[Y,O]=Hc.useState(z),[$,w]=Hc.useState(!1),[H,j]=Hc.useState(!1),[M,J]=Hc.useState(!1),X=NP(),{rows:P}=Ma6(Eq()),f=X?P+1:Math.max(15,Math.min(Math.floor(P*0.8),30)),[D]=Hc.useState(gsA);_4();let Z;if(K[0]!==_||K[1]!==$)Z=()=>{if($)return;_("Status dialog dismissed",{display:"system"})},K[0]=_,K[1]=$,K[2]=Z;else Z=K[2];let G=Z,v=!$&&!(Y==="Config"&&H)&&!(Y==="Gates"&&M),k;if(K[3]!==v)k={context:"Settings",isActive:v},K[3]=v,K[4]=k;else k=K[4];Kq("confirm:no",G,k);let N;if(K[5]!==A||K[6]!==D)N=W(eY,{title:"Status",children:W(WJ_,{context:A,diagnosticsPromise:D})},"status"),K[5]=A,K[6]=D,K[7]=N;else N=K[7];let L;if(K[8]!==f||K[9]!==A||K[10]!==_)L=W(eY,{title:"Config",children:W(Hc.Suspense,{fallback:null,children:W(BJ_,{context:A,onClose:_,setTabsHidden:w,onIsSearchModeChange:j,contentHeight:f})})},"config"),K[8]=f,K[9]=A,K[10]=_,K[11]=L;else L=K[11];let C;if(K[12]===Symbol.for("react.memo_cache_sentinel"))C=W(eY,{title:"Usage",children:W(M2_,{})},"usage"),K[12]=C;else C=K[12];let b;if(K[13]!==f)b=[],K[13]=f,K[14]=b;else b=K[14];let I;if(K[15]!==N||K[16]!==L||K[17]!==b)I=[N,L,C,...b],K[15]=N,K[16]=L,K[17]=b,K[18]=I;else I=K[18];let p=I,m=z!=="Config"&&z!=="Gates",B=$||X?void 0:f,g;if(K[19]!==Y||K[20]!==B||K[21]!==m||K[22]!==p||K[23]!==$)g=W($5,{color:"permission",children:W(mv,{color:"permission",selectedTab:Y,onTabChange:O,hidden:$,initialHeaderFocused:m,contentHeight:B,children:p})}),K[19]=Y,K[20]=B,K[21]=m,K[22]=p,K[23]=$,K[24]=g;else g=K[24];return g}function gsA(){return fJ_().catch(BsA)}function BsA(){return[]}var X2_,Hc;var L78=h(()=>{XK();A3();I_();_R();vH();gv();DJ_();cJ_();J2_();r();X2_=q6(K8(),1),Hc=q6(q8(),1)});var P2_={};S8(P2_,{call:()=>csA});var csA=async(q,K)=>{return W(XO6,{onClose:q,context:K,defaultTab:"Config"})};var f2_=h(()=>{L78();r()});var FsA,W2_;var D2_=h(()=>{FsA={aliases:["settings"],type:"local-jsx",name:"config",description:"Open config panel",load:()=>Promise.resolve().then(() => (f2_(),P2_))},W2_=FsA});var Z2_={};S8(Z2_,{formatContextAsMarkdownTable:()=>h78,collectContextData:()=>PO6,call:()=>dsA});async function PO6(q){let{messages:K,getAppState:_,options:{mainLoopModel:A,tools:z,agentDefinitions:Y,customSystemPrompt:O,appendSystemPrompt:$}}=q,w=$3(K),{messages:H}=await hm(w),j=_();return m$_(H,A,async()=>j.toolPermissionContext,z,Y,void 0,{options:{customSystemPrompt:O,appendSystemPrompt:$}},void 0,w)}async function dsA(q,K){let _=await PO6(K);return{type:"text",value:h78(_,K.options.theme)}}function h78(q,K="dark"){let{categories:_,totalTokens:A,rawMaxTokens:z,percentage:Y,model:O,memoryFiles:$,mcpTools:w,agents:H,skills:j,gridRows:M}=q,J="⛁",X="⛀",P="⛶",f="⛝",D=new Map;for(let t of _)D.set(t.name,aq(t.color,K));function Z(t){if(t.categoryName==="Free space")return"⛶";if(t.categoryName==="Autocompact buffer"||t.categoryName==="Compact buffer")return"⛝";return t.squareFullness>=0.7?"⛁":"⛀"}function G(t){let a=D.get(t.categoryName),s=Z(t);return a?a(s):s}let v=`**Context Usage**
|
|
5219
5219
|
|
|
5220
5220
|
`,k=(t)=>{switch(t){case"userSettings":return"User";case"projectSettings":return"Project";case"localSettings":return"Local";case"flagSettings":return"Flag";case"policySettings":return"Managed";case"plugin":return"Plugin";case"built-in":case"builtin":return"Built-in";case"bundled":return"Built-in";case"mcp":return"MCP";default:return t||"Other"}},N=_.filter((t)=>t.tokens>0&&t.name!=="Free space"&&t.name!=="Autocompact buffer"&&t.name!=="Compact buffer"&&!t.isDeferred),L=_.find((t)=>t.name==="Free space"),C=_.find((t)=>t.name==="Autocompact buffer"||t.name==="Compact buffer"),b=[];for(let t of N){let a=t.tokens/z;b.push({glyph:a>=0.07?"⛁":"⛀",name:t.name,tokens:t.tokens,pct:`${(a*100).toFixed(1)}%`,colorName:t.name})}if(L&&L.tokens>0)b.push({glyph:"⛶",name:"Free space",tokens:L.tokens,pct:`${(L.tokens/z*100).toFixed(1)}%`,colorName:"Free space",dim:!0});if(C&&C.tokens>0)b.push({glyph:"⛝",name:C.name,tokens:C.tokens,pct:`${(C.tokens/z*100).toFixed(1)}%`,colorName:C.name,dim:!0});let I=(t)=>{let a=hM(t.tokens),s=t.colorName?D.get(t.colorName):void 0;return`${s?s(t.glyph):t.glyph} ${t.name}: ${a} tokens (${t.pct})`},p=2,m=(t)=>t.map((a)=>`${G(a)} `).join("").trimEnd(),g=`${zz(O)} · ${hM(A)}/${hM(z)} tokens (${Y}%)`,u=4,F=(M[0]?.length??0)*p,U=Math.max(u,F-g.length+u),d=[];d.push(m(M[0]??[])+" ".repeat(U)+g);let n="Estimated usage by category",_6=Math.max(u,F-n.length+u);d.push(m(M[1]??[])+" ".repeat(_6)+n);let o=Math.max(M.length,b.length+2);for(let t=2;t<o;t++){let a=m(M[t]??Array(M[0]?.length??0).fill({categoryName:"Free space",squareFullness:1})),s=t-2<b.length?I(b[t-2]):"",e=Math.max(u,F-a.length+u);d.push(a+" ".repeat(e)+s)}if(v+="```\n"+d.join(`
|
|
@@ -5865,7 +5865,7 @@ Bad (wrong case): {"title": "Fix Login Button On Mobile"}`,$A5;var dO6=h(()=>{zK
|
|
|
5865
5865
|
`)}function GA5(q){if(!q||typeof q!=="object")return typeof q==="string"?q:"";let K=q;if(typeof K.stdout==="string"){let A=typeof K.stderr==="string"?K.stderr:"";return K.stdout+(A?`
|
|
5866
5866
|
`+A:"")}if(K.file&&typeof K.file==="object"&&typeof K.file.content==="string")return K.file.content;let _=[];for(let A of["content","output","result","text","message"]){let z=K[A];if(typeof z==="string")_.push(z)}for(let A of["filenames","lines","results"]){let z=K[A];if(Array.isArray(z)&&z.every((Y)=>typeof Y==="string"))_.push(z.join(`
|
|
5867
5867
|
`))}return _.join(`
|
|
5868
|
-
`)}var XG_="</system-reminder>",PG_,fG_;var C7q=h(()=>{kq();PG_=new Set([am,Ij]),fG_=new WeakMap});function WG_(q){if(q>=70)return"horizontal";return"compact"}function DG_(q,K,_){if(K==="horizontal"){let z=_,Y=b7q+U48+F48+z,O=q-Y,$=Math.max(30,O),w=Math.min(z+$+F48+U48,q-b7q);if(w<z+$+F48+U48)$=w-z-F48-U48;return{leftWidth:z,rightWidth:$,totalWidth:w}}let A=Math.min(q-b7q,vA5+20);return{leftWidth:A,rightWidth:A,totalWidth:A}}function ZG_(q,K){if(Yq(q)<=K)return q;let _="/",A="…",z=1,Y=1,O=q.split(_),$=O[0]||"",w=O[O.length-1]||"",H=Yq($),j=Yq(w);if(O.length===1)return Q_(q,K);if($===""&&z+Y+j>=K)return`${_}${Q_(w,Math.max(1,K-Y))}`;if($!==""&&z*2+Y+j>=K)return`${A}${_}${Q_(w,Math.max(1,K-z-Y))}`;if(O.length===2){let X=K-z-Y-j;return`${FU($,X)}${A}${_}${w}`}let M=K-H-j-z-2*Y;if(M<=0){let X=Math.max(0,K-j-z-2*Y);return`${FU($,X)}${_}${A}${_}${w}`}let J=[];for(let X=O.length-2;X>0;X--){let P=O[X];if(P&&Yq(P)+Y<=M)J.unshift(P),M-=Yq(P)+Y;else break}if(J.length===0)return`${$}${_}${A}${_}${w}`;return`${$}${_}${A}${_}${J.join(_)}${_}${w}`}async function GG_(){if(d48)return d48;let q=T8();return d48=v56(10).then((K)=>{return DN6=K.filter((_)=>{if(_.isSidechain)return!1;if(_.sessionId===q)return!1;if(_.summary?.includes("I apologize"))return!1;let A=_.summary&&_.summary!=="No prompt",z=_.firstPrompt&&_.firstPrompt!=="No prompt";return A||z}).slice(0,3),DN6}).catch(()=>{return DN6=[],DN6}),d48}function vG_(){return DN6}var vA5=50,b7q=4,F48=1,U48=2,DN6,d48=null;var I7q=h(()=>{G8();j4();wK();nq();X7();OK();MN6();S_();Vq();DN6=[]});function kG_(q){let{title:K,lines:_,footer:A,emptyMessage:z,customContent:Y}=q,O=Yq(K);if(Y!==void 0)O=Math.max(O,Y.width);else if(_.length===0&&z)O=Math.max(O,Yq(z));else{let w=Math.max(0,..._.map((H)=>H.timestamp?Yq(H.timestamp):0));for(let H of _){let j=w>0?w:0,M=Yq(H.text)+(j>0?j+2:0);O=Math.max(O,M)}}if(A)O=Math.max(O,Yq(A));return O}function NG_(q){let K=TG_.c(15),{config:_,actualWidth:A}=q,{title:z,lines:Y,footer:O,emptyMessage:$,customContent:w}=_,H;if(K[0]!==Y)H=Math.max(0,...Y.map(TA5)),K[0]=Y,K[1]=H;else H=K[1];let j=H,M;if(K[2]!==z)M=W(T,{bold:!0,color:"sectionLabel",children:z}),K[2]=z,K[3]=M;else M=K[3];let J;if(K[4]!==A||K[5]!==w||K[6]!==$||K[7]!==O||K[8]!==Y||K[9]!==j)J=w?y(Y8,{children:[w.content,O&&W(T,{dimColor:!0,italic:!0,children:EA(O,A)})]}):Y.length===0&&$?W(T,{dimColor:!0,children:EA($,A)}):y(Y8,{children:[Y.map((P,f)=>{let D=Math.max(10,A-(j>0?j+2:0));return y(T,{children:[j>0&&y(Y8,{children:[W(T,{dimColor:!0,children:(P.timestamp||"").padEnd(j)})," "]}),W(T,{children:EA(P.text,D)})]},f)}),O&&W(T,{dimColor:!0,italic:!0,children:EA(O,A)})]}),K[4]=A,K[5]=w,K[6]=$,K[7]=O,K[8]=Y,K[9]=j,K[10]=J;else J=K[10];let X;if(K[11]!==A||K[12]!==M||K[13]!==J)X=y(x,{flexDirection:"column",width:A,children:[M,J]}),K[11]=A,K[12]=M,K[13]=J,K[14]=X;else X=K[14];return X}function TA5(q){return q.timestamp?Yq(q.timestamp):0}var TG_;var VG_=h(()=>{j4();n6();OK();r();TG_=q6(K8(),1)});function EG_(q){let K=yG_.c(10),{feeds:_,maxWidth:A}=q,z;if(K[0]!==_){let H=_.map(kA5);z=Math.max(...H),K[0]=_,K[1]=z}else z=K[1];let O=Math.max(20,Math.min(z,A)),$;if(K[2]!==O||K[3]!==_){let H;if(K[5]!==O||K[6]!==_.length)H=(j,M)=>y(RG_.Fragment,{children:[W(NG_,{config:j,actualWidth:O}),M<_.length-1&&W($Y,{color:"puku",width:O})]},M),K[5]=O,K[6]=_.length,K[7]=H;else H=K[7];$=_.map(H),K[2]=O,K[3]=_,K[4]=$}else $=K[4];let w;if(K[8]!==$)w=W(x,{flexDirection:"column",children:$}),K[8]=$,K[9]=w;else w=K[9];return w}function kA5(q){return kG_(q)}var yG_,RG_;var LG_=h(()=>{n6();zv();VG_();r();yG_=q6(K8(),1),RG_=q6(q8(),1)});import*as hG_ from"os";function yA5(){return W(x,{flexDirection:"column",children:W(T,{children:SG_})})}function CG_(){let{columns:q}=Eq(),K=Tw(),_=WG_(q);if(_==="compact")return null;let{leftWidth:A,rightWidth:z}=DG_(q,_,RA5),Y="1.8.
|
|
5868
|
+
`)}var XG_="</system-reminder>",PG_,fG_;var C7q=h(()=>{kq();PG_=new Set([am,Ij]),fG_=new WeakMap});function WG_(q){if(q>=70)return"horizontal";return"compact"}function DG_(q,K,_){if(K==="horizontal"){let z=_,Y=b7q+U48+F48+z,O=q-Y,$=Math.max(30,O),w=Math.min(z+$+F48+U48,q-b7q);if(w<z+$+F48+U48)$=w-z-F48-U48;return{leftWidth:z,rightWidth:$,totalWidth:w}}let A=Math.min(q-b7q,vA5+20);return{leftWidth:A,rightWidth:A,totalWidth:A}}function ZG_(q,K){if(Yq(q)<=K)return q;let _="/",A="…",z=1,Y=1,O=q.split(_),$=O[0]||"",w=O[O.length-1]||"",H=Yq($),j=Yq(w);if(O.length===1)return Q_(q,K);if($===""&&z+Y+j>=K)return`${_}${Q_(w,Math.max(1,K-Y))}`;if($!==""&&z*2+Y+j>=K)return`${A}${_}${Q_(w,Math.max(1,K-z-Y))}`;if(O.length===2){let X=K-z-Y-j;return`${FU($,X)}${A}${_}${w}`}let M=K-H-j-z-2*Y;if(M<=0){let X=Math.max(0,K-j-z-2*Y);return`${FU($,X)}${_}${A}${_}${w}`}let J=[];for(let X=O.length-2;X>0;X--){let P=O[X];if(P&&Yq(P)+Y<=M)J.unshift(P),M-=Yq(P)+Y;else break}if(J.length===0)return`${$}${_}${A}${_}${w}`;return`${$}${_}${A}${_}${J.join(_)}${_}${w}`}async function GG_(){if(d48)return d48;let q=T8();return d48=v56(10).then((K)=>{return DN6=K.filter((_)=>{if(_.isSidechain)return!1;if(_.sessionId===q)return!1;if(_.summary?.includes("I apologize"))return!1;let A=_.summary&&_.summary!=="No prompt",z=_.firstPrompt&&_.firstPrompt!=="No prompt";return A||z}).slice(0,3),DN6}).catch(()=>{return DN6=[],DN6}),d48}function vG_(){return DN6}var vA5=50,b7q=4,F48=1,U48=2,DN6,d48=null;var I7q=h(()=>{G8();j4();wK();nq();X7();OK();MN6();S_();Vq();DN6=[]});function kG_(q){let{title:K,lines:_,footer:A,emptyMessage:z,customContent:Y}=q,O=Yq(K);if(Y!==void 0)O=Math.max(O,Y.width);else if(_.length===0&&z)O=Math.max(O,Yq(z));else{let w=Math.max(0,..._.map((H)=>H.timestamp?Yq(H.timestamp):0));for(let H of _){let j=w>0?w:0,M=Yq(H.text)+(j>0?j+2:0);O=Math.max(O,M)}}if(A)O=Math.max(O,Yq(A));return O}function NG_(q){let K=TG_.c(15),{config:_,actualWidth:A}=q,{title:z,lines:Y,footer:O,emptyMessage:$,customContent:w}=_,H;if(K[0]!==Y)H=Math.max(0,...Y.map(TA5)),K[0]=Y,K[1]=H;else H=K[1];let j=H,M;if(K[2]!==z)M=W(T,{bold:!0,color:"sectionLabel",children:z}),K[2]=z,K[3]=M;else M=K[3];let J;if(K[4]!==A||K[5]!==w||K[6]!==$||K[7]!==O||K[8]!==Y||K[9]!==j)J=w?y(Y8,{children:[w.content,O&&W(T,{dimColor:!0,italic:!0,children:EA(O,A)})]}):Y.length===0&&$?W(T,{dimColor:!0,children:EA($,A)}):y(Y8,{children:[Y.map((P,f)=>{let D=Math.max(10,A-(j>0?j+2:0));return y(T,{children:[j>0&&y(Y8,{children:[W(T,{dimColor:!0,children:(P.timestamp||"").padEnd(j)})," "]}),W(T,{children:EA(P.text,D)})]},f)}),O&&W(T,{dimColor:!0,italic:!0,children:EA(O,A)})]}),K[4]=A,K[5]=w,K[6]=$,K[7]=O,K[8]=Y,K[9]=j,K[10]=J;else J=K[10];let X;if(K[11]!==A||K[12]!==M||K[13]!==J)X=y(x,{flexDirection:"column",width:A,children:[M,J]}),K[11]=A,K[12]=M,K[13]=J,K[14]=X;else X=K[14];return X}function TA5(q){return q.timestamp?Yq(q.timestamp):0}var TG_;var VG_=h(()=>{j4();n6();OK();r();TG_=q6(K8(),1)});function EG_(q){let K=yG_.c(10),{feeds:_,maxWidth:A}=q,z;if(K[0]!==_){let H=_.map(kA5);z=Math.max(...H),K[0]=_,K[1]=z}else z=K[1];let O=Math.max(20,Math.min(z,A)),$;if(K[2]!==O||K[3]!==_){let H;if(K[5]!==O||K[6]!==_.length)H=(j,M)=>y(RG_.Fragment,{children:[W(NG_,{config:j,actualWidth:O}),M<_.length-1&&W($Y,{color:"puku",width:O})]},M),K[5]=O,K[6]=_.length,K[7]=H;else H=K[7];$=_.map(H),K[2]=O,K[3]=_,K[4]=$}else $=K[4];let w;if(K[8]!==$)w=W(x,{flexDirection:"column",children:$}),K[8]=$,K[9]=w;else w=K[9];return w}function kA5(q){return kG_(q)}var yG_,RG_;var LG_=h(()=>{n6();zv();VG_();r();yG_=q6(K8(),1),RG_=q6(q8(),1)});import*as hG_ from"os";function yA5(){return W(x,{flexDirection:"column",children:W(T,{children:SG_})})}function CG_(){let{columns:q}=Eq(),K=Tw(),_=WG_(q);if(_==="compact")return null;let{leftWidth:A,rightWidth:z}=DG_(q,_,RA5),Y="1.8.38",O=process.env.PUKU_USER_NAME,$=zz(K),w=process.cwd().replace(hG_.homedir(),"~"),H=vG_(),j={title:"Recent activity",lines:H.map((J)=>{return{text:(J.summary&&J.summary!=="No prompt"?J.summary:J.firstPrompt)||"",timestamp:RT(J.modified)}}),footer:H.length>0?"/resume for more":void 0,emptyMessage:"No recent activity"},M={title:"What's new",lines:NA5.map((J)=>({text:J})),footer:"/release-notes for more"};return W(x,{flexDirection:"column",borderStyle:"round",borderColor:"#4A4C53",borderText:{content:` v${Y} `,position:"bottom",align:"end",offset:3},width:q,children:y(x,{flexDirection:"row",paddingX:1,gap:1,children:[y(x,{flexDirection:"column",width:A,justifyContent:"space-between",alignItems:"center",minHeight:9,children:[O&&W(x,{children:y(T,{bold:!0,children:["Welcome back, ",O]})}),W(x,{flexDirection:"column",marginY:1,children:W(yA5,{})}),y(x,{flexDirection:"column",children:[W(T,{dimColor:!0,children:$}),W(T,{dimColor:!0,children:ZG_(w,A-2)})]})]}),W(x,{height:"100%",borderStyle:"single",borderColor:"#4A4C53",borderDimColor:!0,borderTop:!1,borderBottom:!1,borderLeft:!1}),W(EG_,{feeds:[j,M],maxWidth:z})]})})}var NA5,SG_,VA5,RA5;var bG_=h(()=>{n6();I_();HR();cK();I7q();OK();LG_();r();NA5=["/remote-control live message feed","Puku mobile app relay session view","Teal prompt borders + ▶ char"],SG_=`\x1B[0m\x1B[38;5;177m▆\x1B[48;5;183m \x1B[0m\x1B[38;5;177m▆\x1B[0m
|
|
5869
5869
|
`+`\x1B[7m\x1B[38;5;183m \x1B[38;5;140m▗▅▅▅▅▅▅▅▖\x1B[38;5;183m \x1B[0m
|
|
5870
5870
|
`+`\x1B[7m\x1B[38;5;183m \x1B[0m\x1B[38;5;140m▋ \x1B[7m▍\x1B[38;5;183m \x1B[0m
|
|
5871
5871
|
`+`\x1B[7m\x1B[38;5;183m \x1B[0m\x1B[38;5;140m▋ \x1B[7m▍\x1B[38;5;183m \x1B[0m
|
|
@@ -7467,7 +7467,7 @@ Proxy-Authorization: ${z}\r
|
|
|
7467
7467
|
\r
|
|
7468
7468
|
`);q.end(),k36(K)},$.onclose=()=>{if(K.closed)return;K.closed=!0,q.end(),k36(K)}}function X25(q){if(q.readyState===WebSocket.OPEN)q.send(d5q(new Uint8Array(0)))}function KC_(q,K){if(q.readyState!==WebSocket.OPEN)return;for(let _=0;_<K.length;_+=sS_){let A=K.subarray(_,_+sS_);q.send(d5q(A))}}function k36(q){if(!q)return;if(q.pinger)clearInterval(q.pinger);if(q.ws&&q.ws.readyState<=WebSocket.OPEN)try{q.ws.close()}catch{}q.ws=void 0}var U5q,sS_=524288,w25=30000;var _C_=h(()=>{z8();hV();uX()});var wC_={};S8(wC_,{resetUpstreamProxyForTests:()=>T25,isValidPemContent:()=>$C_,initUpstreamProxy:()=>G25,getUpstreamProxyEnv:()=>v25,SESSION_TOKEN_PATH:()=>OC_});import{mkdir as P25,readFile as zC_,unlink as f25,writeFile as W25}from"fs/promises";import{homedir as D25}from"os";import{join as YC_}from"path";async function G25(q){if(!u6(process.env.PUKU_CLI_REMOTE))return CJ;if(!u6(process.env.CCR_UPSTREAM_PROXY_ENABLED))return CJ;let K=process.env.PUKU_CLI_REMOTE_SESSION_ID;if(!K)return V("[upstreamproxy] PUKU_CLI_REMOTE_SESSION_ID unset; proxy disabled",{level:"warn"}),CJ;let _=q?.tokenPath??OC_,A=await k25(_);if(!A)return V("[upstreamproxy] no session token file; proxy disabled"),CJ;N25();let z=q?.ccrBaseUrl??process.env.ANTHROPIC_BASE_URL??"https://api.anthropic.com",Y=q?.caBundlePath??YC_(D25(),".ccr","ca-bundle.crt");if(!await V25(z,q?.systemCaPath??Z25,Y))return CJ;try{let $=z.replace(/^http/,"ws")+"/v1/code/upstreamproxy/ws",w=await eS_({wsUrl:$,sessionId:K,token:A});oK(async()=>w.stop()),CJ={enabled:!0,port:w.port,caBundlePath:Y},V(`[upstreamproxy] enabled on 127.0.0.1:${w.port}`),await f25(_).catch(()=>{V("[upstreamproxy] token file unlink failed",{level:"warn"})})}catch($){V(`[upstreamproxy] relay start failed: ${$ instanceof Error?$.message:String($)}; proxy disabled`,{level:"warn"})}return CJ}function v25(){if(!CJ.enabled||!CJ.port||!CJ.caBundlePath){if(process.env.HTTPS_PROXY&&process.env.SSL_CERT_FILE){let K={};for(let _ of["HTTPS_PROXY","https_proxy","NO_PROXY","no_proxy","SSL_CERT_FILE","NODE_EXTRA_CA_CERTS","REQUESTS_CA_BUNDLE","CURL_CA_BUNDLE"])if(process.env[_])K[_]=process.env[_];return K}return{}}let q=`http://127.0.0.1:${CJ.port}`;return{HTTPS_PROXY:q,https_proxy:q,NO_PROXY:AC_,no_proxy:AC_,SSL_CERT_FILE:CJ.caBundlePath,NODE_EXTRA_CA_CERTS:CJ.caBundlePath,REQUESTS_CA_BUNDLE:CJ.caBundlePath,CURL_CA_BUNDLE:CJ.caBundlePath}}function T25(){CJ={enabled:!1}}function $C_(q){if(!q||!q.trim())return!1;return/-----BEGIN CERTIFICATE-----[\s\S]+?-----END CERTIFICATE-----/g.test(q)}async function k25(q){try{return(await zC_(q,"utf8")).trim()||null}catch(K){if(yq(K))return null;return V(`[upstreamproxy] token read failed: ${K instanceof Error?K.message:String(K)}`,{level:"warn"}),null}}function N25(){if(process.platform!=="linux"||typeof Bun>"u")return;try{let K=w8("bun:ffi").dlopen("libc.so.6",{prctl:{args:["int","u64","u64","u64","u64"],returns:"int"}}),_=4;if(K.symbols.prctl(4,0n,0n,0n,0n)!==0)V("[upstreamproxy] prctl(PR_SET_DUMPABLE,0) returned nonzero",{level:"warn"})}catch(q){V(`[upstreamproxy] prctl unavailable: ${q instanceof Error?q.message:String(q)}`,{level:"warn"})}}async function V25(q,K,_){try{let A=await fetch(`${q}/v1/code/upstreamproxy/ca-cert`,{signal:AbortSignal.timeout(5000)});if(!A.ok)return V(`[upstreamproxy] ca-cert fetch ${A.status}; proxy disabled`,{level:"warn"}),!1;let z=await A.text();if(!$C_(z))return V("[upstreamproxy] ca-cert response is not valid PEM; proxy disabled",{level:"warn"}),!1;let Y=await zC_(K,"utf8").catch(()=>"");return await P25(YC_(_,".."),{recursive:!0}),await W25(_,Y+`
|
|
7469
7469
|
`+z,"utf8"),!0}catch(A){return V(`[upstreamproxy] ca-cert download failed: ${A instanceof Error?A.message:String(A)}; proxy disabled`,{level:"warn"}),!1}}var OC_="/run/ccr/session_token",Z25="/etc/ssl/certs/ca-certificates.crt",AC_,CJ;var HC_=h(()=>{lA();z8();x8();N8();_C_();AC_=["localhost","127.0.0.1","::1","169.254.0.0/16","10.0.0.0/8","172.16.0.0/12","192.168.0.0/16","anthropic.com",".anthropic.com","*.anthropic.com","github.com","api.github.com","*.github.com","*.githubusercontent.com","registry.npmjs.org","pypi.org","files.pythonhosted.org","index.crates.io","proxy.golang.org"].join(","),CJ={enabled:!1}});var MC_={};S8(MC_,{showInvalidConfigDialog:()=>E25});function y25(q){let K=jC_.c(19),{filePath:_,errorDescription:A,onExit:z,onReset:Y}=q,O;if(K[0]!==z||K[1]!==Y)O=(f)=>{if(f==="exit")z();else Y()},K[0]=z,K[1]=Y,K[2]=O;else O=K[2];let $=O,w;if(K[3]!==_)w=y(T,{children:["The configuration file at ",W(T,{bold:!0,children:_})," contains invalid JSON."]}),K[3]=_,K[4]=w;else w=K[4];let H;if(K[5]!==A)H=W(T,{children:A}),K[5]=A,K[6]=H;else H=K[6];let j;if(K[7]!==w||K[8]!==H)j=y(x,{flexDirection:"column",gap:1,children:[w,H]}),K[7]=w,K[8]=H,K[9]=j;else j=K[9];let M;if(K[10]===Symbol.for("react.memo_cache_sentinel"))M=W(T,{bold:!0,children:"Choose an option:"}),K[10]=M;else M=K[10];let J;if(K[11]===Symbol.for("react.memo_cache_sentinel"))J=[{label:"Exit and fix manually",value:"exit"},{label:"Reset with default configuration",value:"reset"}],K[11]=J;else J=K[11];let X;if(K[12]!==$||K[13]!==z)X=y(x,{flexDirection:"column",children:[M,W(l8,{options:J,onChange:$,onCancel:z})]}),K[12]=$,K[13]=z,K[14]=X;else X=K[14];let P;if(K[15]!==z||K[16]!==j||K[17]!==X)P=y(Hq,{title:"Configuration Error",color:"error",onCancel:z,children:[j,X]}),K[15]=z,K[16]=j,K[17]=X,K[18]=P;else P=K[18];return P}async function E25({error:q}){let K={...tC(!1),theme:R25};await new Promise(async(_)=>{let{unmount:A}=await Zk(W(_9,{children:W(I9,{children:W(y25,{filePath:q.filePath,errorDescription:q.message,onExit:()=>{A(),_(),process.exit(1)},onReset:()=>{s3(q.filePath,p6(q.defaultConfig,null,2),{flush:!1,encoding:"utf8"}),A(),_(),process.exit(0)}})})}),K)})}var jC_,R25="dark";var JC_=h(()=>{n6();kR();dq();iG6();Q8();w5();c_();r();jC_=q6(K8(),1)});function p58(){if(ol8()){if(VK()&&AK8())l5q().catch((q)=>{V(`[3P telemetry] Eager telemetry init failed (beta tracing): ${d6(q)}`,{level:"error"})});V("[3P telemetry] Waiting for remote managed settings before telemetry init"),Rs6().then(async()=>{V("[3P telemetry] Remote managed settings loaded, initializing telemetry"),zk(),await l5q()}).catch((q)=>{V(`[3P telemetry] Telemetry init failed (remote settings path): ${d6(q)}`,{level:"error"})})}else l5q().catch((q)=>{V(`[3P telemetry] Telemetry init failed: ${d6(q)}`,{level:"error"})})}async function l5q(){if(Q5q)return;Q5q=!0;try{await L25()}catch(q){throw Q5q=!1,q}}async function L25(){let{initializeTelemetry:q}=await Promise.resolve().then(() => (gKq(),mKq)),K=await q();if(K)N$8(K,(A,z)=>{let Y=K?.createCounter(A,z);return{add(O,$={}){let H={...Bl6(),...$};Y?.add(O,H)}}}),V$8()?.add(1)}var Q5q=!1,XC_;var i5q=h(()=>{UL();G8();Wq();C_();G8();G8();bR();dM();OD();sA6();rS_();oS_();lA();Wq();z8();DX();Xz();w76();x8();N8();bY();Wq6();hV();K5();uX();zK8();Ug8();oN();XC_=n8(async()=>{let q=Date.now();g8("info","init_started"),x_("init_function_start");try{let K=Date.now();Oj6(),g8("info","init_configs_enabled",{duration_ms:Date.now()-K}),x_("init_configs_enabled");let _=Date.now();if(Kh8(),aS_(),g8("info","init_safe_env_vars_applied",{duration_ms:Date.now()-_}),x_("init_safe_env_vars_applied"),yiK(),x_("init_after_graceful_shutdown"),Promise.resolve(),x_("init_after_1p_event_logging"),xR8(),x_("init_after_oauth_populate"),cg8(),x_("init_after_jetbrains_detection"),cx(),ol8())xiK();if(vR())mlK();x_("init_after_remote_settings_check"),KD8();let A=Date.now();V("[init] configureGlobalMTLS starting"),Rgq(),g8("info","init_mtls_configured",{duration_ms:Date.now()-A}),V("[init] configureGlobalMTLS complete");let z=Date.now();if(V("[init] configureGlobalAgents starting"),bm6(),g8("info","init_proxy_configured",{duration_ms:Date.now()-z}),V("[init] configureGlobalAgents complete"),x_("init_network_configured"),nS_(),u6(process.env.PUKU_CLI_REMOTE))try{let{initUpstreamProxy:Y,getUpstreamProxyEnv:O}=await Promise.resolve().then(() => (HC_(),wC_)),{registerUpstreamProxyEnvFn:$}=await Promise.resolve().then(() => (_n(),IcK));$(O),await Y()}catch(Y){V(`[init] upstreamproxy init failed: ${Y instanceof Error?Y.message:String(Y)}; continuing without proxy`,{level:"warn"})}if(FDq(),oK(ZeK),oK(async()=>{let{cleanupSessionTeams:Y}=await Promise.resolve().then(() => (RH(),VlK));await Y()}),VE()){let Y=Date.now();await _h_(),g8("info","init_scratchpad_created",{duration_ms:Date.now()-Y})}g8("info","init_completed",{duration_ms:Date.now()-q}),x_("init_function_end")}catch(K){if(K instanceof cJ){if(VK()){process.stderr.write(`Configuration error in ${K.filePath}: ${K.message}
|
|
7470
|
-
`),b7(1);return}return Promise.resolve().then(() => (JC_(),MC_)).then((_)=>_.showInvalidConfigDialog({error:K}))}else throw K}})});function WC_(q){let K=PC_.c(3),{getFpsMetrics:_,children:A}=q,z;if(K[0]!==A||K[1]!==_)z=W(fC_.Provider,{value:_,children:A}),K[0]=A,K[1]=_,K[2]=z;else z=K[2];return z}function DC_(){return m58.useContext(fC_)}var PC_,m58,fC_;var n5q=h(()=>{r();PC_=q6(K8(),1),m58=q6(q8(),1),fC_=m58.createContext(void 0)});function r5q(q,K){let _=K/100*(q.length-1),A=Math.floor(_),z=Math.ceil(_);if(A===z)return q[A];return q[A]+(q[z]-q[A])*(_-A)}function a5q(){let q=new Map,K=new Map,_=new Map;return{increment(A,z=1){q.set(A,(q.get(A)??0)+z)},set(A,z){q.set(A,z)},observe(A,z){let Y=K.get(A);if(!Y)Y={reservoir:[],count:0,sum:0,min:z,max:z},K.set(A,Y);if(Y.count++,Y.sum+=z,z<Y.min)Y.min=z;if(z>Y.max)Y.max=z;if(Y.reservoir.length<ZC_)Y.reservoir.push(z);else{let O=Math.floor(Math.random()*Y.count);if(O<ZC_)Y.reservoir[O]=z}},add(A,z){let Y=_.get(A);if(!Y)Y=new Set,_.set(A,Y);Y.add(z)},getAll(){let A=Object.fromEntries(q);for(let[z,Y]of K){if(Y.count===0)continue;A[`${z}_count`]=Y.count,A[`${z}_min`]=Y.min,A[`${z}_max`]=Y.max,A[`${z}_avg`]=Y.sum/Y.count;let O=[...Y.reservoir].sort(($,w)=>$-w);A[`${z}_p50`]=r5q(O,50),A[`${z}_p95`]=r5q(O,95),A[`${z}_p99`]=r5q(O,99)}for(let[z,Y]of _)A[z]=Y.size;return A}}}function vC_(q){let K=GC_.c(7),{store:_,children:A}=q,z;if(K[0]===Symbol.for("react.memo_cache_sentinel"))z=a5q(),K[0]=z;else z=K[0];let O=_??z,$,w;if(K[1]!==O)$=()=>{let j=()=>{let M=O.getAll();if(Object.keys(M).length>0)EO((J)=>({...J,lastSessionMetrics:M}))};return process.on("exit",j),()=>{process.off("exit",j)}},w=[O],K[1]=O,K[2]=$,K[3]=w;else $=K[2],w=K[3];zV6.useEffect($,w);let H;if(K[4]!==A||K[5]!==O)H=W(h25.Provider,{value:O,children:A}),K[4]=A,K[5]=O,K[6]=H;else H=K[6];return H}var GC_,zV6,ZC_=1024,h25;var o5q=h(()=>{Wq();r();GC_=q6(K8(),1),zV6=q6(q8(),1);h25=zV6.createContext(null)});function TC_(){return!1}function VC_(q){kC_=q}function yC_(q){YV6=q}function RC_(q){NC_=q}function LC_(){return EC_}function N36(q,K){if(EC_=q,kC_?.(q,K),q==="requires_action"&&K)s5q=!0,YV6?.({pending_action:K});else if(s5q)s5q=!1,YV6?.({pending_action:null});if(q==="idle")YV6?.({task_summary:null});if(u6(process.env.PUKU_CLI_EMIT_SESSION_STATE_EVENTS))YC({type:"system",subtype:"session_state_changed",state:q})}function OV6(q){YV6?.(q)}function hC_(q){NC_?.(q)}var kC_=null,YV6=null,NC_=null,s5q=!1,EC_="idle";var $V6=h(()=>{x8();nG()});function SC_(q){return(K)=>({...K,...typeof q.permission_mode==="string"?{toolPermissionContext:{...K.toolPermissionContext,mode:Uf(q.permission_mode)}}:{},...typeof q.is_ultraplan_mode==="boolean"?{isUltraplanMode:q.is_ultraplan_mode}:{}})}function fI({newState:q,oldState:K}){let _=K.toolPermissionContext.mode,A=q.toolPermissionContext.mode;if(_!==A){let z=ST(_),Y=ST(A);if(z!==Y){let O=Y==="plan"&&q.isUltraplanMode&&!K.isUltraplanMode?!0:null;OV6({permission_mode:Y,is_ultraplan_mode:O})}hC_(A)}if(q.mainLoopModel!==K.mainLoopModel&&q.mainLoopModel===null)Sq("userSettings",{model:void 0}),g1(null);if(q.mainLoopModel!==K.mainLoopModel&&q.mainLoopModel!==null)Sq("userSettings",{model:q.mainLoopModel}),g1(q.mainLoopModel);if(q.expandedView!==K.expandedView){let z=q.expandedView==="tasks",Y=q.expandedView==="teammates";if(j8().showExpandedTodos!==z||j8().showSpinnerTree!==Y)B8((O)=>({...O,showExpandedTodos:z,showSpinnerTree:Y}))}if(q.verbose!==K.verbose&&j8().verbose!==q.verbose){let z=q.verbose;B8((Y)=>({...Y,verbose:z}))}if(TC_()){if(q.tungstenPanelVisible!==K.tungstenPanelVisible&&q.tungstenPanelVisible!==void 0&&j8().tungstenPanelVisible!==q.tungstenPanelVisible){let z=q.tungstenPanelVisible;B8((Y)=>({...Y,tungstenPanelVisible:z}))}}if(q.settings!==K.settings)try{if(E26(),L26(),h26(),q.settings.env!==K.settings.env)zk()}catch(z){A6(Gq(z))}}var V36=h(()=>{G8();wK();Wq();N8();y8();Wq6();a1();$V6();Vq()});var t5q={};S8(t5q,{App:()=>S25});function S25(q){let K=CC_.c(9),{getFpsMetrics:_,stats:A,initialState:z,children:Y}=q,O;if(K[0]!==Y||K[1]!==z)O=W(_9,{initialState:z,onChangeAppState:fI,children:Y}),K[0]=Y,K[1]=z,K[2]=O;else O=K[2];let $;if(K[3]!==A||K[4]!==O)$=W(vC_,{store:A,children:O}),K[3]=A,K[4]=O,K[5]=$;else $=K[5];let w;if(K[6]!==_||K[7]!==$)w=W(WC_,{getFpsMetrics:_,children:$}),K[6]=_,K[7]=$,K[8]=w;else w=K[8];return w}var CC_;var e5q=h(()=>{n5q();o5q();dq();V36();r();CC_=q6(K8(),1)});function bC_(){g58.useContext(jS);let q=AY.get(process.stdout);return g58.useMemo(()=>{if(!q)return{setQuery:()=>{},scanElement:()=>[],setPositions:()=>{}};return{setQuery:(K)=>q.setSearchHighlight(K),scanElement:(K)=>q.scanElementSubtree(K),setPositions:(K)=>q.setSearchPositions(K)}},[q])}var g58;var IC_=h(()=>{SX6();lX();g58=q6(q8(),1)});function C25(){switch(Jq()){case"firstParty":return"Puku API";case"bedrock":return"AWS Bedrock";case"vertex":return"Google Vertex";case"foundry":return"Azure Foundry";case"openai":return"OpenAI-compatible API";case"gemini":return"Gemini API";default:return"API"}}function xC_({onDone:q}){let K=C25();return y(Hq,{title:`You've spent $5 on the ${K} this session.`,onCancel:q,children:[y(x,{flexDirection:"column",children:[W(T,{children:"Learn more about how to monitor your spending:"}),W(aK,{url:"https://puku.sh/docs/en/costs"})]}),W(l8,{options:[{value:"ok",label:"Got it, thanks!"}],onChange:q})]})}var uC_=h(()=>{n6();w5();c_();Q7();r()});function mC_(q){let K=pC_.c(16),{idleMinutes:_,totalInputTokens:A,onDone:z}=q,Y;if(K[0]!==_)Y=b25(_),K[0]=_,K[1]=Y;else Y=K[1];let O=Y,$;if(K[2]!==A)$=hM(A),K[2]=A,K[3]=$;else $=K[3];let H=`You've been away ${O} and this conversation is ${$} tokens.`,j;if(K[4]!==z)j=()=>z("dismiss"),K[4]=z,K[5]=j;else j=K[5];let M;if(K[6]===Symbol.for("react.memo_cache_sentinel"))M=W(x,{flexDirection:"column",children:W(T,{children:"If this is a new task, clearing context will save usage and be faster."})}),K[6]=M;else M=K[6];let J;if(K[7]===Symbol.for("react.memo_cache_sentinel"))J={value:"continue",label:"Continue this conversation"},K[7]=J;else J=K[7];let X;if(K[8]===Symbol.for("react.memo_cache_sentinel"))X={value:"clear",label:"Send message as a new conversation"},K[8]=X;else X=K[8];let P;if(K[9]===Symbol.for("react.memo_cache_sentinel"))P=[J,X,{value:"never",label:"Don't ask me again"}],K[9]=P;else P=K[9];let f;if(K[10]!==z)f=W(l8,{options:P,onChange:(Z)=>z(Z)}),K[10]=z,K[11]=f;else f=K[11];let D;if(K[12]!==H||K[13]!==j||K[14]!==f)D=y(Hq,{title:H,onCancel:j,children:[M,f]}),K[12]=H,K[13]=j,K[14]=f,K[15]=D;else D=K[15];return D}function b25(q){if(q<1)return"< 1m";if(q<60)return`${Math.floor(q)}m`;let K=Math.floor(q/60),_=Math.floor(q%60);if(_===0)return`${K}h`;return`${K}h ${_}m`}var pC_;var gC_=h(()=>{n6();OK();w5();c_();r();pC_=q6(K8(),1)});var cC_={};S8(cC_,{trace:()=>$X5,resourceFromAttributes:()=>i25,plot:()=>d25,getSyntaxTheme:()=>U25,getMcpConfigForManifest:()=>B25,default:()=>GX5,createClaudeForChromeMcpServer:()=>Q25,context:()=>wX5,__stub:()=>x25,SpanStatusCode:()=>HX5,SimpleSpanProcessor:()=>r25,SimpleLogRecordProcessor:()=>AX5,SeverityNumber:()=>ZX5,SandboxViolationStore:()=>u25,SandboxRuntimeConfigSchema:()=>m25,SandboxManager:()=>p25,SEMRESATTRS_SERVICE_VERSION:()=>XX5,SEMRESATTRS_SERVICE_NAME:()=>JX5,Resource:()=>n25,PushMetricExporter:()=>DX5,PrometheusExporter:()=>KX5,PeriodicExportingMetricReader:()=>OX5,OTLPTraceExporter:()=>t25,OTLPMetricExporter:()=>qX5,OTLPLogExporter:()=>e25,NodeTracerProvider:()=>o25,MeterProvider:()=>YX5,LoggerProvider:()=>_X5,InstrumentType:()=>WX5,ExportResultCode:()=>l25,DataPointType:()=>fX5,ColorFile:()=>F25,ColorDiff:()=>c25,BatchSpanProcessor:()=>a25,BatchLogRecordProcessor:()=>zX5,BasicTracerProvider:()=>s25,BROWSER_TOOLS:()=>g25,AggregationTemporality:()=>PX5,ATTR_SERVICE_VERSION:()=>MX5,ATTR_SERVICE_NAME:()=>jX5});var hD=()=>null,a2=class{},BC_,I25,GX5,x25=!0,u25=null,p25,m25,g25,B25,c25=null,F25=null,U25,d25,Q25,l25,i25,n25,r25,a25,o25,s25,t25,e25,qX5,KX5,_X5,AX5,zX5,YX5,OX5,$X5,wX5,HX5,jX5="service.name",MX5="service.version",JX5="service.name",XX5="service.version",PX5,fX5,WX5,DX5,ZX5;var FC_=h(()=>{BC_={get(q,K){if(K==="__esModule")return!0;if(K==="default")return new Proxy({},BC_);if(K==="ExportResultCode")return{SUCCESS:0,FAILED:1};if(K==="resourceFromAttributes")return()=>({});if(K==="SandboxRuntimeConfigSchema")return{parse:()=>({})};return hD}},I25=new Proxy(hD,BC_),GX5=I25,p25=new Proxy({},{get:()=>hD}),m25={parse:()=>({})},g25=[],B25=hD,U25=hD,d25=hD,Q25=hD,l25={SUCCESS:0,FAILED:1},i25=hD,n25=a2,r25=a2,a25=a2,o25=a2,s25=a2,t25=a2,e25=a2,qX5=a2,KX5=a2,_X5=a2,AX5=a2,zX5=a2,YX5=a2,OX5=a2,$X5={getTracer:()=>({startSpan:()=>({end:hD,setAttribute:hD,setStatus:hD,recordException:hD})})},wX5={active:hD,with:(q,K)=>K()},HX5={OK:0,ERROR:1,UNSET:2},PX5={CUMULATIVE:0,DELTA:1},fX5={HISTOGRAM:0,SUM:1,GAUGE:2},WX5={COUNTER:0,HISTOGRAM:1,UP_DOWN_COUNTER:2},DX5=a2,ZX5={}});async function Fc(q,K){let A=j8().preferredNotifChannel;await AR(q);let z=await vX5(A,q,K);Q("ev_event",{configured_channel:A,method_used:z,term:pq.terminal})}async function vX5(q,K,_){let A=K.title||UC_;try{switch(q){case"auto":return TX5(K,_);case"iterm2":return _.notifyITerm2(K),"iterm2";case"iterm2_with_bell":return _.notifyITerm2(K),_.notifyBell(),"iterm2_with_bell";case"kitty":return _.notifyKitty({...K,title:A,id:dC_()}),"kitty";case"ghostty":return _.notifyGhostty({...K,title:A}),"ghostty";case"terminal_bell":return _.notifyBell(),"terminal_bell";case"notifications_disabled":return"disabled";default:return"none"}}catch{return"error"}}async function TX5(q,K){let _=q.title||UC_;switch(pq.terminal){case"Apple_Terminal":{if(await kX5())return K.notifyBell(),"terminal_bell";return"no_method_available"}case"iTerm.app":return K.notifyITerm2(q),"iterm2";case"kitty":return K.notifyKitty({...q,title:_,id:dC_()}),"kitty";case"ghostty":return K.notifyGhostty({...q,title:_}),"ghostty";default:return"no_method_available"}}function dC_(){return Math.floor(Math.random()*1e4)}async function kX5(){try{if(pq.terminal!=="Apple_Terminal")return!1;let K=(await r8("osascript",["-e",'tell application "Terminal" to name of current settings of front window'])).stdout.trim();if(!K)return!1;let _=await r8("defaults",["export","com.apple.Terminal","-"]);if(_.code!==0)return!1;let O=(await Promise.resolve().then(() => (FC_(),cC_))).parse(_.stdout)?.["Window Settings"]?.[K];if(!O)return!1;return O.Bell===!1}catch(q){return A6(q),!1}}var UC_="puku-cli";var B58=h(()=>{Wq();n5();J7();zY();y8()});import{spawn as NX5}from"child_process";function lC_(){if(aa++,aa===1)rC_(),EX5()}function iC_(){if(aa>0)aa--;if(aa===0)nC_(),qzq()}function RX5(){aa=0,nC_(),qzq()}function EX5(){if(process.platform!=="darwin")return;if(y36!==null)return;y36=setInterval(()=>{if(aa>0)V("Restarting caffeinate to maintain sleep prevention"),qzq(),rC_()},yX5),y36.unref()}function nC_(){if(y36!==null)clearInterval(y36),y36=null}function rC_(){if(process.platform!=="darwin")return;if(zf!==null)return;if(!QC_)QC_=!0,oK(async()=>{RX5()});try{zf=NX5("caffeinate",["-i","-t",String(VX5)],{stdio:"ignore"}),zf.unref();let q=zf;zf.on("error",(K)=>{if(V(`caffeinate spawn error: ${K.message}`),zf===q)zf=null}),zf.on("exit",()=>{if(zf===q)zf=null}),V("Started caffeinate to prevent sleep")}catch{zf=null}}function qzq(){if(zf!==null){let q=zf;zf=null;try{q.kill("SIGKILL"),V("Stopped caffeinate, allowing sleep")}catch{}}}var VX5=300,yX5=240000,zf=null,y36=null,aa=0,QC_=!1;var aC_=h(()=>{lA();z8()});var sC_={};S8(sC_,{stopMemoryPressureMonitor:()=>bX5,startMemoryPressureMonitor:()=>SX5,registerPrunableCache:()=>Azq,pruneRegisteredCaches:()=>oC_,onMemoryPressure:()=>zzq,getMemoryPressureLevel:()=>hX5,consumeCompactionRequest:()=>CX5});function Azq(q){if(!_zq.includes(q))_zq.push(q)}function oC_(){for(let q of _zq)try{q.clear()}catch{}}function hX5(){return jN}function zzq(q){return wV6.push(q),()=>{wV6=wV6.filter((K)=>K!==q)}}function SX5(q={}){if(R36)return;let K={...LX5,...q};if(K.elevatedThresholdMB===0)K.elevatedThresholdMB=Math.floor(K.perSessionBudgetMB*0.8);if(K.criticalThresholdMB===0)K.criticalThresholdMB=Math.floor(K.perSessionBudgetMB*0.9);V(`[MemoryPressure] Monitor started: elevated=${K.elevatedThresholdMB}MB critical=${K.criticalThresholdMB}MB interval=${K.checkIntervalMs}ms`),R36=setInterval(()=>{let _=process.memoryUsage().rss/1024/1024,A=jN;if(_>=K.criticalThresholdMB)jN="critical";else if(_>=K.elevatedThresholdMB)jN="elevated";else jN="normal";if(jN!==A){if(V(`[MemoryPressure] Level changed: ${A} → ${jN} (RSS: ${_.toFixed(0)}MB)`),jN==="critical")V("[MemoryPressure] Critical — pruning registered caches"),oC_();for(let z of wV6)try{z(jN)}catch{}}if(jN!=="normal")Kzq=!0},K.checkIntervalMs),R36.unref?.()}function CX5(){if(Kzq)return Kzq=!1,!0;return!1}function bX5(){if(R36)clearInterval(R36),R36=null;jN="normal",wV6=[]}var LX5,jN="normal",wV6,R36=null,Kzq=!1,_zq;var c58=h(()=>{z8();LX5={elevatedThresholdMB:0,criticalThresholdMB:0,checkIntervalMs:30000,perSessionBudgetMB:Number.parseInt(process.env.PUKU_CLI_MAX_MEMORY_MB??"1536",10)},wV6=[],_zq=[]});class Yzq{_status="idle";_generation=0;_changed=L5();reserve(){if(this._status!=="idle")return!1;return this._status="dispatching",this._notify(),!0}cancelReservation(){if(this._status!=="dispatching")return;this._status="idle",this._notify()}tryStart(){if(this._status==="running")return null;return this._status="running",++this._generation,this._notify(),this._generation}end(q){if(this._generation!==q)return!1;if(this._status!=="running")return!1;return this._status="idle",this._notify(),!0}forceEnd(){if(this._status==="idle")return;this._status="idle",++this._generation,this._notify()}get isActive(){return this._status!=="idle"}get generation(){return this._generation}subscribe=this._changed.subscribe;getSnapshot=()=>{return this._status!=="idle"};_notify(){this._changed.emit()}}var tC_=()=>{};function qb_(q){let K=eC_.c(7),{name:_,color:A}=q,z;if(K[0]!==A)z=lj(A),K[0]=A,K[1]=z;else z=K[1];let Y=z,O;if(K[2]!==_)O=y(T,{bold:!0,children:["@",_]}),K[2]=_,K[3]=O;else O=K[3];let $;if(K[4]!==Y||K[5]!==O)$=W(x,{flexDirection:"row",gap:1,children:y(T,{color:Y,children:[WA," ",O]})}),K[4]=Y,K[5]=O,K[6]=$;else $=K[6];return $}var eC_;var Kb_=h(()=>{l5();n6();gC();r();eC_=q6(K8(),1)});function Ozq(q){let K=_b_.c(15),{toolName:_,description:A}=q,z;if(K[0]===Symbol.for("react.memo_cache_sentinel"))z=t4(),K[0]=z;else z=K[0];let Y=z,O;if(K[1]===Symbol.for("react.memo_cache_sentinel"))O=gA(),K[1]=O;else O=K[1];let $=O,w;if(K[2]===Symbol.for("react.memo_cache_sentinel"))w=b3(),K[2]=w;else w=K[2];let H=w,j,M;if(K[3]===Symbol.for("react.memo_cache_sentinel"))j=y(x,{marginBottom:1,children:[W(n_,{}),y(T,{color:"warning",bold:!0,children:[" ","Waiting for team lead approval"]})]}),M=$&&H&&W(x,{marginBottom:1,children:W(qb_,{name:$,color:H})}),K[3]=j,K[4]=M;else j=K[3],M=K[4];let J;if(K[5]===Symbol.for("react.memo_cache_sentinel"))J=W(T,{dimColor:!0,children:"Tool: "}),K[5]=J;else J=K[5];let X;if(K[6]!==_)X=y(x,{children:[J,W(T,{children:_})]}),K[6]=_,K[7]=X;else X=K[7];let P;if(K[8]===Symbol.for("react.memo_cache_sentinel"))P=W(T,{dimColor:!0,children:"Action: "}),K[8]=P;else P=K[8];let f;if(K[9]!==A)f=y(x,{children:[P,W(T,{children:A})]}),K[9]=A,K[10]=f;else f=K[10];let D;if(K[11]===Symbol.for("react.memo_cache_sentinel"))D=Y&&W(x,{marginTop:1,children:y(T,{dimColor:!0,children:["Permission request sent to team ",'"',Y,'"'," leader"]})}),K[11]=D;else D=K[11];let Z;if(K[12]!==X||K[13]!==f)Z=y(x,{flexDirection:"column",borderStyle:"round",borderColor:"warning",paddingX:1,children:[j,M,X,f,D]}),K[12]=X,K[13]=f,K[14]=Z;else Z=K[14];return Z}var _b_;var Ab_=h(()=>{n6();wz();Y3();Kb_();r();_b_=q6(K8(),1)});function zb_(q,K=!1){let _=X8(($)=>$.teamContext),A=oa.useRef(0),z=oa.useRef(void 0),Y=oa.useRef(void 0),O=oa.useRef(0);oa.useEffect(()=>{if(K)return;let $=q[0]?.uuid,w=A.current,H=Y.current===void 0,j=$!==void 0&&!H&&$===Y.current&&w<=q.length,M=$!==void 0&&!H&&$===Y.current&&w>q.length,J=j?w:0;if(J===q.length)return;let X=J===0?q:q.slice(J),P=j?z.current:void 0,f=++O.current;if(MP(X,uK()?{teamName:_?.teamName,agentName:_?.selfAgentName}:{},P,q).then((D)=>{if(f!==O.current)return;if(D&&!j)z.current=D}),j||H||M){let D=oN6(X,q).findLast(X36);if(D)z.current=D.uuid}A.current=q.length,Y.current=$},[q,K,_?.teamName,_?.selfAgentName])}var oa;var Yb_=h(()=>{dq();mz();S_();oa=q6(q8(),1)});function Ob_(q){if(!q||typeof q!=="object")return!1;return"behavior"in q&&(q.behavior==="allow"||q.behavior==="deny")}var $b_=()=>{};function F58(q){if(q.type!=="user")return;let K=q.message?.content;if(!K)return;if(Array.isArray(K)&&K.length===0)return;let _="uuid"in q&&typeof q.uuid==="string"?q.uuid:void 0;return{content:Array.isArray(K)?IX5(K):K,uuid:_}}function IX5(q){if(!q.some(wb_))return q;return q.map((K)=>{if(!wb_(K))return K;let _=K.source,A=typeof _.mediaType==="string"&&_.mediaType?_.mediaType:fW6(K.source.data);return{...K,source:{type:"base64",media_type:A,data:K.source.data}}})}function wb_(q){if(q.type!=="image"||q.source?.type!=="base64")return!1;return!q.source.media_type}var $zq=h(()=>{FW()});import{randomUUID as xX5}from"crypto";function wzq(q){return q===O_?YV:q}function U58(q){let _=Bq()?.outputStyle??b2,A={type:"system",subtype:"init",cwd:W8(),session_id:T8(),tools:q.tools.map((z)=>wzq(z.name)),mcp_servers:q.mcpClients.map((z)=>({name:z.name,status:z.type})),model:q.model,permissionMode:q.permissionMode,slash_commands:q.commands.filter((z)=>z.userInvocable!==!1).map((z)=>z.name),apiKeySource:iO().source,betas:l9(),puku_cli_version:"99.0.0",output_style:_,agents:q.agents.map((z)=>z.agentType),skills:q.skills.filter((z)=>z.userInvocable!==!1).map((z)=>z.name),plugins:q.plugins.map((z)=>({name:z.name,path:z.path,source:z.source})),uuid:xX5()};return A.fast_mode_state=eT(q.model,q.fastMode),A}var Hzq=h(()=>{G8();Fy();Pz();wK();nq();Pj();Vq()});function d58(q){if(q===null||typeof q!=="object")return q;let K=q;if("requestId"in K&&!("request_id"in K))K.request_id=K.requestId,delete K.requestId;if("response"in K&&K.response!==null&&typeof K.response==="object"){let _=K.response;if("requestId"in _&&!("request_id"in _))_.request_id=_.requestId,delete _.requestId}return q}import{randomUUID as uX5}from"crypto";function pX5(q){return q!==null&&typeof q==="object"&&"type"in q&&typeof q.type==="string"}function mX5(q){return q!==null&&typeof q==="object"&&"type"in q&&q.type==="control_response"&&"response"in q}function gX5(q){return q!==null&&typeof q==="object"&&"type"in q&&q.type==="control_request"&&"request_id"in q&&"request"in q}function WI(q){if((q.type==="user"||q.type==="assistant")&&q.isVirtual)return!1;return q.type==="user"||q.type==="assistant"||q.type==="system"&&q.subtype==="local_command"}function Q58(q){if(q.type!=="user"||q.isMeta||q.toolUseResult||q.isCompactSummary)return;if(q.origin&&q.origin.kind!=="human")return;let K=q.message.content,_;if(typeof K==="string")_=K;else for(let z of K)if(z.type==="text"){_=z.text;break}if(!_)return;return mt(_)||void 0}function E36(q,K,_,A,z,Y){try{let O=d58(p8(q));if(mX5(O)){V("[bridge:repl] Ingress message type=control_response"),z?.(O);return}if(gX5(O)){V(`[bridge:repl] Inbound control_request subtype=${O.request.subtype}`),Y?.(O);return}if(!pX5(O))return;let $="uuid"in O&&typeof O.uuid==="string"?O.uuid:void 0;if($&&K.has($)){V(`[bridge:repl] Ignoring echo: type=${O.type} uuid=${$}`);return}if($&&_.has($)){V(`[bridge:repl] Ignoring re-delivered inbound: type=${O.type} uuid=${$}`);return}if(V(`[bridge:repl] Ingress message type=${O.type}${$?` uuid=${$}`:""}`),O.type==="user"){if($)_.add($);Q("ev_event",{is_repl:!0}),A?.(O)}else V(`[bridge:repl] Ignoring non-user inbound message: type=${O.type}`)}catch(O){V(`[bridge:repl] Failed to parse ingress message: ${d6(O)}`)}}function L36(q,K){let{transport:_,sessionId:A,outboundOnly:z,onInterrupt:Y,onSetModel:O,onSetMaxThinkingTokens:$,onSetPermissionMode:w}=K;if(!_){V("[bridge:repl] Cannot respond to control_request: transport not configured");return}let H;if(z&&q.request.subtype!=="initialize"){H={type:"control_response",response:{subtype:"error",request_id:q.request_id,error:BX5}};let M={...H,session_id:A};_.write(M),V(`[bridge:repl] Rejected ${q.request.subtype} (outbound-only) request_id=${q.request_id}`);return}switch(q.request.subtype){case"initialize":H={type:"control_response",response:{subtype:"success",request_id:q.request_id,response:{commands:[],output_style:"normal",available_output_styles:["normal"],models:[],account:{},pid:process.pid}}};break;case"set_model":O?.(q.request.model),H={type:"control_response",response:{subtype:"success",request_id:q.request_id}};break;case"set_max_thinking_tokens":$?.(q.request.max_thinking_tokens),H={type:"control_response",response:{subtype:"success",request_id:q.request_id}};break;case"set_permission_mode":{let M=w?.(q.request.mode)??{ok:!1,error:"set_permission_mode is not supported in this context (onSetPermissionMode callback not registered)"};if(M.ok)H={type:"control_response",response:{subtype:"success",request_id:q.request_id}};else H={type:"control_response",response:{subtype:"error",request_id:q.request_id,error:M.error}};break}case"interrupt":Y?.(),H={type:"control_response",response:{subtype:"success",request_id:q.request_id}};break;default:H={type:"control_response",response:{subtype:"error",request_id:q.request_id,error:`REPL bridge does not handle control_request subtype: ${q.request.subtype}`}}}let j={...H,session_id:A};_.write(j),V(`[bridge:repl] Sent control_response for ${q.request.subtype} request_id=${q.request_id} result=${H.response.subtype}`)}function h36(q){return{type:"result",subtype:"success",duration_ms:0,duration_api_ms:0,is_error:!1,num_turns:0,result:"",stop_reason:null,total_cost_usd:0,usage:{...OM},modelUsage:{},permission_denials:[],session_id:q,uuid:uX5()}}class rv{capacity;ring;set=new Set;writeIdx=0;constructor(q){this.capacity=q,this.ring=Array(q)}add(q){if(this.set.has(q))return;let K=this.ring[this.writeIdx];if(K!==void 0)this.set.delete(K);this.ring[this.writeIdx]=q,this.set.add(q),this.writeIdx=(this.writeIdx+1)%this.capacity}has(q){return this.set.has(q)}clear(){this.set.clear(),this.ring.fill(void 0),this.writeIdx=0}}var BX5="This session is outbound-only. Enable Remote Control locally to allow inbound control.";var HV6=h(()=>{De8();z8();gt();N8();Q8()});function Hb_(q){let{workerUrl:K,apiKey:_,onMaxRetries:A}=q,z=null,Y=!1,O=0,$=!1,w=null,H=null,j=null,M=null;function J(){if(Y)return;try{z=new WebSocket(K,{headers:{Authorization:`Bearer ${_}`}}),z.onopen=()=>{O=0,$=!1,V("[puku-relay-transport] connected"),M?.()},z.onmessage=(D)=>{let Z=typeof D.data==="string"?D.data:String(D.data);H?.(Z)},z.onerror=()=>{V("[puku-relay-transport] WebSocket error")},z.onclose=(D)=>{if(V(`[puku-relay-transport] closed code=${D.code}`),j?.(D.code),!Y)X()}}catch(D){V(`[puku-relay-transport] open failed: ${D}`),X()}}function X(){if(Y)return;if(O>=jzq.length&&!$){$=!0,V("[puku-relay-transport] max retries exceeded"),A?.();return}if(O>=jzq.length)return;let D=jzq[O]??30000;O++,V(`[puku-relay-transport] reconnect #${O} in ${D}ms`),w=setTimeout(()=>{w=null,J()},D)}async function P(D){if(z?.readyState===WebSocket.OPEN)z.send(D)}return{connect(){Y=!1,J()},close(){if(Y=!0,w!==null)clearTimeout(w),w=null;z?.close(),z=null},async write(D){await P(JSON.stringify(D))},async writeBatch(D){for(let Z of D)await P(JSON.stringify(Z))},isConnectedStatus(){return z?.readyState===WebSocket.OPEN},getStateLabel(){if(Y)return"closed";if(!z)return"init";switch(z.readyState){case WebSocket.CONNECTING:return"connecting";case WebSocket.OPEN:return"connected";case WebSocket.CLOSING:return"closing";default:return"closed"}},setOnData(D){H=D},setOnClose(D){j=D},setOnConnect(D){M=D},getLastSequenceNum(){return 0},get droppedBatchCount(){return 0},reportState(){},reportMetadata(){},reportDelivery(){},async flush(){}}}var jzq;var jb_=h(()=>{z8();jzq=[3000,6000,12000,30000]});var Mb_={};S8(Mb_,{initPukuRelayBridge:()=>cX5});async function cX5(q){let{sessionId:K,workerUrl:_,apiKey:A,toSDKMessages:z,initialMessages:Y=[],onInboundMessage:O,onPermissionResponse:$,onInterrupt:w,onSetModel:H,onSetMaxThinkingTokens:j,onSetPermissionMode:M,onStateChange:J,onClientConnected:X,onClientDisconnected:P,onMaxRetries:f}=q,D=new rv(2000),Z=new rv(2000),G=new Set;for(let p of Y)if(p.uuid)G.add(p.uuid);let v=[],k=500,N=Hb_({workerUrl:_,apiKey:A,onMaxRetries:()=>{V("[puku-relay-bridge] max retries exceeded — notifying state change"),J?.("failed"),f?.()}});N.setOnData((p)=>{try{let m=JSON.parse(p);if(m!==null&&typeof m==="object"){let B=m;if(B.type==="client_connected"){let g=[...v];if(X?.(),g.length>0)N.writeBatch(g);return}if(B.type==="client_disconnected"||B.type==="client_replaced"){P?.();return}if(B.type==="user")N.write({type:"system",subtype:"progress",status:"thinking"})}}catch{}E36(p,D,Z,O,$,(m)=>{L36(m,{transport:N,sessionId:K,onInterrupt:w,onSetModel:H,onSetMaxThinkingTokens:j,onSetPermissionMode:M})})}),N.setOnConnect(()=>{if(V("[puku-relay-bridge] connected"),J?.("connected"),v.length=0,Y.length>0){let p=Y.filter(WI);if(p.length>0){let m=z(p);v.push(...m.slice(-k)),N.writeBatch(m)}}}),N.setOnClose((p)=>{V(`[puku-relay-bridge] closed code=${p}`),J?.("reconnecting")}),N.connect(),J?.("ready");function L(p){let m=p.filter((g)=>WI(g)&&!G.has(g.uuid)&&!D.has(g.uuid));if(m.length===0)return;for(let g of m)D.add(g.uuid);let B=z(m);if(V(`[puku-relay-bridge] writing ${B.length} message(s)`),v.push(...B),v.length>k)v.splice(0,v.length-k);N.writeBatch(B)}function C(p){let m=p.filter((B)=>!B.uuid||!D.has(B.uuid));if(m.length===0)return;for(let B of m)if(B.uuid)D.add(B.uuid);if(v.push(...m),v.length>k)v.splice(0,v.length-k);N.writeBatch(m)}function b(p){N.write(p)}function I(p){N.write(p)}return{bridgeSessionId:K,environmentId:"",sessionIngressUrl:_,writeMessages:L,writeSdkMessages:C,sendControlRequest:b,sendControlResponse:I,sendControlCancelRequest(p){let m={type:"control_cancel_request",request_id:p,session_id:K};N.write(m),V(`[puku-relay-bridge] Sent control_cancel_request request_id=${p}`)},sendResult:()=>{},async teardown(){V("[puku-relay-bridge] teardown");try{await N.write({type:"session_end"})}catch{}J?.("failed"),N.close()}}}var Jb_=h(()=>{z8();HV6();jb_()});var Mzq={};S8(Mzq,{formatPukuMessageForInk:()=>FX5});function FX5(q,K){if(process.env.DEBUG)console.error("[relay-formatter] message:",q.type);let _=q;switch(q.type){case"system":{if(_.subtype==="init"){if(K.addMessage("─".repeat(40),"status"),K.addMessage(`\uD83D\uDE80 Session initialized: ${_.session_id}`,"system"),K.addMessage(` Model: ${_.model}`,"status"),K.addMessage(` CWD: ${_.cwd}`,"status"),_.tools&&_.tools.length>0)K.addMessage(` Tools: ${_.tools.join(", ")}`,"status");K.addMessage("─".repeat(40),"status")}break}case"user":{let A=_.message?.content;if(!A)break;if(typeof A==="string")K.addMessage(`\uD83D\uDC64 User: ${A}`,"user");else if(Array.isArray(A)){for(let z of A)if(z.type==="text")K.addMessage(`\uD83D\uDC64 User: ${z.text}`,"user");else if(z.type==="tool_result"){if(K.addMessage(`✅ Tool Result (ID: ${z.tool_use_id})`,"result"),z.content){let Y=typeof z.content==="string"?z.content:JSON.stringify(z.content,null,2);if(Y.length>200)K.addMessage(Y.substring(0,200)+"… (truncated)","result");else K.addMessage(Y,"result")}}}else K.addMessage(`\uD83D\uDC64 User: ${JSON.stringify(A)}`,"user");break}case"assistant":{if(!_.message?.content)break;K.addMessage("\uD83E\uDD16 Assistant:","assistant");for(let A of _.message.content)if(A.type==="text")K.addMessage(A.text||"","assistant");else if(A.type==="tool_use"){if(K.addMessage(`\uD83D\uDD27 Tool: ${A.name}`,"tool"),A.input){let z=JSON.stringify(A.input,null,2);if(z.length>500)K.addMessage(`Input: ${z.substring(0,500)}… (truncated)`,"tool");else K.addMessage(`Input: ${z}`,"tool")}}break}case"result":{if(_.subtype==="success"){if(_.result)K.addMessage("✨ Summary:","result"),K.addMessage(_.result,"result");if(_.usage){if(K.addMessage("\uD83D\uDCCA Session Stats:","status"),K.addMessage(` • Turns: ${_.num_turns}`,"status"),K.addMessage(` • Input tokens: ${_.usage.input_tokens}`,"status"),K.addMessage(` • Output tokens: ${_.usage.output_tokens}`,"status"),_.usage.cache_read_input_tokens)K.addMessage(` • Cache read: ${_.usage.cache_read_input_tokens}`,"status");K.addMessage(` • Cost: $${Number(_.total_cost_usd).toFixed(4)}`,"status"),K.addMessage(` • Duration: ${_.duration_ms}ms`,"status")}}else if(_.subtype==="error_max_turns")K.addMessage("❌ Error: Maximum turns reached","result"),K.addMessage(`Completed ${_.num_turns} turns`,"status");else if(_.subtype==="error_during_execution")K.addMessage("❌ Error during execution","result"),K.addMessage(`Completed ${_.num_turns} turns before error`,"status");break}default:if(process.env.DEBUG)K.addMessage(`[Unknown message type: ${q.type}]`,"status")}}function Xb_(q,K,_,A,z){let Y=WM.useRef(null),O=WM.useRef(void 0),$=WM.useRef(0),w=WM.useRef(new Set),H=WM.useRef(void 0),j=WM.useRef(0),M=sq(),J=WM.useRef(A);J.current=A;let X=WM.useRef(z);X.current=z;let P=WM.useRef(q);P.current=q;let f=y5(),{addNotification:D}=o_(),Z=!1,G=!1,v=!1,k=void 0,N=X8((C)=>C.pukuRelaySession);return WM.useEffect(()=>{},[Z,v,M,K,D]),WM.useEffect(()=>{},[q,G]),WM.useEffect(()=>{if(!N)return;let C=!1,{sessionId:b,workerUrl:I}=N;return(async()=>{try{let{initPukuRelayBridge:p}=await Promise.resolve().then(() => (Jb_(),Mb_)),{toSDKMessages:m}=await Promise.resolve().then(() => (Sc(),D4q)),{relayMessageBuffer:B}=await Promise.resolve().then(() => (jN6(),x48));if(C)return;B.clear();let g=P.current.slice(0,P.current.length),u=new Map,F=await p({sessionId:b,workerUrl:I,apiKey:N.workerToken,toSDKMessages:m,initialMessages:g,onPermissionResponse:(d)=>{let n=d.response?.request_id;if(!n)return;let _6=u.get(n);if(!_6)return;u.delete(n);let o=d.response;if(o.subtype==="success"&&o.response&&Ob_(o.response))_6(o.response)},onInterrupt(){_.current?.abort()},onSetModel(d){let n=d==="default"?null:d??null;g1(n),M((_6)=>{if(_6.mainLoopModelForSession===n)return _6;return{..._6,mainLoopModelForSession:n}})},onSetMaxThinkingTokens(d){let n=d!==null;M((_6)=>{if(_6.thinkingEnabled===n)return _6;return{..._6,thinkingEnabled:n}})},onSetPermissionMode(d){if(d==="bypassPermissions"){if(gb())return{ok:!1,error:"Cannot set permission mode to bypassPermissions because it is disabled by settings or configuration"};if(!f.getState().toolPermissionContext.isBypassPermissionsModeAvailable)return{ok:!1,error:"Cannot set permission mode to bypassPermissions because the session was not launched with --god-mode"}}if(d==="auto"&&!iP()){let n=mb();return{ok:!1,error:n?`Cannot set permission mode to auto: ${qc(n)}`:"Cannot set permission mode to auto"}}return M((n)=>{let _6=n.toolPermissionContext.mode;if(_6===d)return n;let o=pb(_6,d,n.toolPermissionContext);return{...n,toolPermissionContext:{...o,mode:d}}}),setImmediate(()=>{hA6()?.((n)=>{return n.forEach((_6)=>{_6.recheckPermission()}),n})}),{ok:!0}},onInboundMessage:async(d)=>{if(C)return;let n=F58(d);if(!n)return;PH({mode:"prompt",value:n.content,uuid:n.uuid,skipSlashCommands:!0,bridgeOrigin:!0});let{formatPukuMessageForInk:_6}=await Promise.resolve().then(() => Mzq),{relayMessageBuffer:o}=await Promise.resolve().then(() => (jN6(),x48));_6(d,o)},onStateChange:(d)=>{V(`[puku-relay-bridge] state=${d}`),M((n)=>({...n,replBridgeConnected:d==="connected"}))},onClientConnected:()=>{if(C)return;V("[puku-relay-bridge] mobile client connected"),M((d)=>({...d,replBridgeSessionActive:!0}));try{let d=f.getState();Y.current?.writeSdkMessages([U58({tools:[],mcpClients:[],model:X.current,permissionMode:d.toolPermissionContext.mode,commands:J.current.filter(w58),agents:d.agentDefinitions.activeAgents,skills:[],plugins:[],fastMode:d.fastMode})])}catch(d){V(`[puku-relay-bridge] Failed to send system/init: ${d6(d)}`)}},onClientDisconnected:()=>{if(C)return;V("[puku-relay-bridge] mobile client disconnected"),M((d)=>({...d,replBridgeSessionActive:!1}))}});if(C){await F.teardown();return}Y.current=F,Yt8(F),$.current=P.current.length;let U={sendRequest(d,n,_6,o,t,a,s){F.sendControlRequest({type:"control_request",request_id:d,request:{subtype:"can_use_tool",tool_name:n,input:_6,tool_use_id:o,description:t,request_id:d,...a?{permission_suggestions:a}:{},...s?{blocked_path:s}:{}}})},sendResponse(d,n){F.sendControlResponse({type:"control_response",response:{subtype:"success",request_id:d,response:{...n}}})},cancelRequest(d){F.sendControlCancelRequest(d)},onResponse(d,n){return u.set(d,n),()=>{u.delete(d)}}};M((d)=>({...d,replBridgePermissionCallbacks:U}))}catch(p){if(!C)V(`[puku-relay-bridge] init failed: ${d6(p)}`)}})(),()=>{C=!0;let p=Y.current;if(p)Y.current=null,Yt8(null),p.teardown();M((m)=>({...m,replBridgeConnected:!1,replBridgeSessionActive:!1,replBridgePermissionCallbacks:void 0}))}},[N]),WM.useEffect(()=>{if(!N)return;let C=Y.current;if(!C)return;let b=Math.min($.current,q.length),I=[];for(let p=b;p<q.length;p++){let m=q[p];if(m&&(m.type==="assistant"||m.type==="system"&&m.subtype==="local_command"))I.push(m)}if($.current=q.length,I.length>0){C.writeMessages(I);let p=I.filter((m)=>m.type==="assistant");if(p.length>0)(async()=>{let{toSDKMessages:m}=await Promise.resolve().then(() => (Sc(),D4q)),{formatPukuMessageForInk:B}=await Promise.resolve().then(() => Mzq),{relayMessageBuffer:g}=await Promise.resolve().then(() => (jN6(),x48));for(let u of p){let F=m([u])[0];if(F)B(F,g)}})()}},[q,N]),{sendBridgeResult:WM.useCallback(()=>{},[])}}var WM;var Pb_=h(()=>{G8();$b_();zA6();$zq();Ot8();hY();cz();n6();dq();nq();z8();N8();C3();Hzq();kq();z1();r();WM=q6(q8(),1)});var Zb_={};S8(Zb_,{selectableUserMessagesFilter:()=>sa,messagesAfterAreOnlySynthetic:()=>l58,MessageSelector:()=>Pzq});import{randomUUID as UX5}from"crypto";import*as C36 from"path";function Wb_(q){return q.type==="text"}function Xzq(q){return q==="summarize"||q==="summarize_up_to"}function Pzq({messages:q,onPreRestore:K,onRestoreMessage:_,onRestoreCode:A,onSummarize:z,onClose:Y,preselectedMessage:O}){let $=X8((w6)=>w6.fileHistory),[w,H]=H3.useState(void 0),j=Fz(),M=H3.useMemo(UX5,[]),J=H3.useMemo(()=>[...q.filter(sa),{...C8({content:""}),uuid:M}],[q,M]),[X,P]=H3.useState(J.length-1),f=Math.max(0,Math.min(X-Math.floor(Jzq/2),J.length-Jzq)),D=J.length>1,[Z,G]=H3.useState(O),[v,k]=H3.useState(void 0);H3.useEffect(()=>{if(!O||!j)return;let w6=!1;return Gv6($,O.uuid).then((j6)=>{if(!w6)k(j6)}),()=>{w6=!0}},[O,j,$]);let[N,L]=H3.useState(!1),[C,b]=H3.useState(null),[I,p]=H3.useState("both"),[m,B]=H3.useState(""),[g,u]=H3.useState("");function F(w6){let j6=w6?[{value:"both",label:"Restore code and conversation"},{value:"conversation",label:"Restore conversation"},{value:"code",label:"Restore code"}]:[{value:"conversation",label:"Restore conversation"}],K6={type:"input",placeholder:"add context (optional)",initialValue:"",allowEmptySubmitToCancel:!0,showLabelWithValue:!0,labelValueSeparator:": "};return j6.push({value:"summarize",label:"Summarize from here",...K6,onChange:B}),j6.push({value:"nevermind",label:"Never mind"}),j6}H3.useEffect(()=>{Q("ev_event",{})},[]);async function U(w6){K(),L(!0);try{await _(w6),L(!1),Y()}catch(j6){A6(j6),L(!1),H(`Failed to restore the conversation:
|
|
7470
|
+
`),b7(1);return}return Promise.resolve().then(() => (JC_(),MC_)).then((_)=>_.showInvalidConfigDialog({error:K}))}else throw K}})});function WC_(q){let K=PC_.c(3),{getFpsMetrics:_,children:A}=q,z;if(K[0]!==A||K[1]!==_)z=W(fC_.Provider,{value:_,children:A}),K[0]=A,K[1]=_,K[2]=z;else z=K[2];return z}function DC_(){return m58.useContext(fC_)}var PC_,m58,fC_;var n5q=h(()=>{r();PC_=q6(K8(),1),m58=q6(q8(),1),fC_=m58.createContext(void 0)});function r5q(q,K){let _=K/100*(q.length-1),A=Math.floor(_),z=Math.ceil(_);if(A===z)return q[A];return q[A]+(q[z]-q[A])*(_-A)}function a5q(){let q=new Map,K=new Map,_=new Map;return{increment(A,z=1){q.set(A,(q.get(A)??0)+z)},set(A,z){q.set(A,z)},observe(A,z){let Y=K.get(A);if(!Y)Y={reservoir:[],count:0,sum:0,min:z,max:z},K.set(A,Y);if(Y.count++,Y.sum+=z,z<Y.min)Y.min=z;if(z>Y.max)Y.max=z;if(Y.reservoir.length<ZC_)Y.reservoir.push(z);else{let O=Math.floor(Math.random()*Y.count);if(O<ZC_)Y.reservoir[O]=z}},add(A,z){let Y=_.get(A);if(!Y)Y=new Set,_.set(A,Y);Y.add(z)},getAll(){let A=Object.fromEntries(q);for(let[z,Y]of K){if(Y.count===0)continue;A[`${z}_count`]=Y.count,A[`${z}_min`]=Y.min,A[`${z}_max`]=Y.max,A[`${z}_avg`]=Y.sum/Y.count;let O=[...Y.reservoir].sort(($,w)=>$-w);A[`${z}_p50`]=r5q(O,50),A[`${z}_p95`]=r5q(O,95),A[`${z}_p99`]=r5q(O,99)}for(let[z,Y]of _)A[z]=Y.size;return A}}}function vC_(q){let K=GC_.c(7),{store:_,children:A}=q,z;if(K[0]===Symbol.for("react.memo_cache_sentinel"))z=a5q(),K[0]=z;else z=K[0];let O=_??z,$,w;if(K[1]!==O)$=()=>{let j=()=>{let M=O.getAll();if(Object.keys(M).length>0)EO((J)=>({...J,lastSessionMetrics:M}))};return process.on("exit",j),()=>{process.off("exit",j)}},w=[O],K[1]=O,K[2]=$,K[3]=w;else $=K[2],w=K[3];zV6.useEffect($,w);let H;if(K[4]!==A||K[5]!==O)H=W(h25.Provider,{value:O,children:A}),K[4]=A,K[5]=O,K[6]=H;else H=K[6];return H}var GC_,zV6,ZC_=1024,h25;var o5q=h(()=>{Wq();r();GC_=q6(K8(),1),zV6=q6(q8(),1);h25=zV6.createContext(null)});function TC_(){return!1}function VC_(q){kC_=q}function yC_(q){YV6=q}function RC_(q){NC_=q}function LC_(){return EC_}function N36(q,K){if(EC_=q,kC_?.(q,K),q==="requires_action"&&K)s5q=!0,YV6?.({pending_action:K});else if(s5q)s5q=!1,YV6?.({pending_action:null});if(q==="idle")YV6?.({task_summary:null});if(u6(process.env.PUKU_CLI_EMIT_SESSION_STATE_EVENTS))YC({type:"system",subtype:"session_state_changed",state:q})}function OV6(q){YV6?.(q)}function hC_(q){NC_?.(q)}var kC_=null,YV6=null,NC_=null,s5q=!1,EC_="idle";var $V6=h(()=>{x8();nG()});function SC_(q){return(K)=>({...K,...typeof q.permission_mode==="string"?{toolPermissionContext:{...K.toolPermissionContext,mode:Uf(q.permission_mode)}}:{},...typeof q.is_ultraplan_mode==="boolean"?{isUltraplanMode:q.is_ultraplan_mode}:{}})}function fI({newState:q,oldState:K}){let _=K.toolPermissionContext.mode,A=q.toolPermissionContext.mode;if(_!==A){let z=ST(_),Y=ST(A);if(z!==Y){let O=Y==="plan"&&q.isUltraplanMode&&!K.isUltraplanMode?!0:null;OV6({permission_mode:Y,is_ultraplan_mode:O})}hC_(A)}if(q.mainLoopModel!==K.mainLoopModel&&q.mainLoopModel===null)Sq("userSettings",{model:void 0}),g1(null);if(q.mainLoopModel!==K.mainLoopModel&&q.mainLoopModel!==null)Sq("userSettings",{model:q.mainLoopModel}),g1(q.mainLoopModel);if(q.expandedView!==K.expandedView){let z=q.expandedView==="tasks",Y=q.expandedView==="teammates";if(j8().showExpandedTodos!==z||j8().showSpinnerTree!==Y)B8((O)=>({...O,showExpandedTodos:z,showSpinnerTree:Y}))}if(q.verbose!==K.verbose&&j8().verbose!==q.verbose){let z=q.verbose;B8((Y)=>({...Y,verbose:z}))}if(TC_()){if(q.tungstenPanelVisible!==K.tungstenPanelVisible&&q.tungstenPanelVisible!==void 0&&j8().tungstenPanelVisible!==q.tungstenPanelVisible){let z=q.tungstenPanelVisible;B8((Y)=>({...Y,tungstenPanelVisible:z}))}}if(q.settings!==K.settings)try{if(E26(),L26(),h26(),q.settings.env!==K.settings.env)zk()}catch(z){A6(Gq(z))}}var V36=h(()=>{G8();wK();Wq();N8();y8();Wq6();a1();$V6();Vq()});var t5q={};S8(t5q,{App:()=>S25});function S25(q){let K=CC_.c(9),{getFpsMetrics:_,stats:A,initialState:z,children:Y}=q,O;if(K[0]!==Y||K[1]!==z)O=W(_9,{initialState:z,onChangeAppState:fI,children:Y}),K[0]=Y,K[1]=z,K[2]=O;else O=K[2];let $;if(K[3]!==A||K[4]!==O)$=W(vC_,{store:A,children:O}),K[3]=A,K[4]=O,K[5]=$;else $=K[5];let w;if(K[6]!==_||K[7]!==$)w=W(WC_,{getFpsMetrics:_,children:$}),K[6]=_,K[7]=$,K[8]=w;else w=K[8];return w}var CC_;var e5q=h(()=>{n5q();o5q();dq();V36();r();CC_=q6(K8(),1)});function bC_(){g58.useContext(jS);let q=AY.get(process.stdout);return g58.useMemo(()=>{if(!q)return{setQuery:()=>{},scanElement:()=>[],setPositions:()=>{}};return{setQuery:(K)=>q.setSearchHighlight(K),scanElement:(K)=>q.scanElementSubtree(K),setPositions:(K)=>q.setSearchPositions(K)}},[q])}var g58;var IC_=h(()=>{SX6();lX();g58=q6(q8(),1)});function C25(){switch(Jq()){case"firstParty":return"Puku API";case"bedrock":return"AWS Bedrock";case"vertex":return"Google Vertex";case"foundry":return"Azure Foundry";case"openai":return"OpenAI-compatible API";case"gemini":return"Gemini API";default:return"API"}}function xC_({onDone:q}){let K=C25();return y(Hq,{title:`You've spent $5 on the ${K} this session.`,onCancel:q,children:[y(x,{flexDirection:"column",children:[W(T,{children:"Learn more about how to monitor your spending:"}),W(aK,{url:"https://puku.sh/docs/en/costs"})]}),W(l8,{options:[{value:"ok",label:"Got it, thanks!"}],onChange:q})]})}var uC_=h(()=>{n6();w5();c_();Q7();r()});function mC_(q){let K=pC_.c(16),{idleMinutes:_,totalInputTokens:A,onDone:z}=q,Y;if(K[0]!==_)Y=b25(_),K[0]=_,K[1]=Y;else Y=K[1];let O=Y,$;if(K[2]!==A)$=hM(A),K[2]=A,K[3]=$;else $=K[3];let H=`You've been away ${O} and this conversation is ${$} tokens.`,j;if(K[4]!==z)j=()=>z("dismiss"),K[4]=z,K[5]=j;else j=K[5];let M;if(K[6]===Symbol.for("react.memo_cache_sentinel"))M=W(x,{flexDirection:"column",children:W(T,{children:"If this is a new task, clearing context will save usage and be faster."})}),K[6]=M;else M=K[6];let J;if(K[7]===Symbol.for("react.memo_cache_sentinel"))J={value:"continue",label:"Continue this conversation"},K[7]=J;else J=K[7];let X;if(K[8]===Symbol.for("react.memo_cache_sentinel"))X={value:"clear",label:"Send message as a new conversation"},K[8]=X;else X=K[8];let P;if(K[9]===Symbol.for("react.memo_cache_sentinel"))P=[J,X,{value:"never",label:"Don't ask me again"}],K[9]=P;else P=K[9];let f;if(K[10]!==z)f=W(l8,{options:P,onChange:(Z)=>z(Z)}),K[10]=z,K[11]=f;else f=K[11];let D;if(K[12]!==H||K[13]!==j||K[14]!==f)D=y(Hq,{title:H,onCancel:j,children:[M,f]}),K[12]=H,K[13]=j,K[14]=f,K[15]=D;else D=K[15];return D}function b25(q){if(q<1)return"< 1m";if(q<60)return`${Math.floor(q)}m`;let K=Math.floor(q/60),_=Math.floor(q%60);if(_===0)return`${K}h`;return`${K}h ${_}m`}var pC_;var gC_=h(()=>{n6();OK();w5();c_();r();pC_=q6(K8(),1)});var cC_={};S8(cC_,{trace:()=>$X5,resourceFromAttributes:()=>i25,plot:()=>d25,getSyntaxTheme:()=>U25,getMcpConfigForManifest:()=>B25,default:()=>GX5,createClaudeForChromeMcpServer:()=>Q25,context:()=>wX5,__stub:()=>x25,SpanStatusCode:()=>HX5,SimpleSpanProcessor:()=>r25,SimpleLogRecordProcessor:()=>AX5,SeverityNumber:()=>ZX5,SandboxViolationStore:()=>u25,SandboxRuntimeConfigSchema:()=>m25,SandboxManager:()=>p25,SEMRESATTRS_SERVICE_VERSION:()=>XX5,SEMRESATTRS_SERVICE_NAME:()=>JX5,Resource:()=>n25,PushMetricExporter:()=>DX5,PrometheusExporter:()=>KX5,PeriodicExportingMetricReader:()=>OX5,OTLPTraceExporter:()=>t25,OTLPMetricExporter:()=>qX5,OTLPLogExporter:()=>e25,NodeTracerProvider:()=>o25,MeterProvider:()=>YX5,LoggerProvider:()=>_X5,InstrumentType:()=>WX5,ExportResultCode:()=>l25,DataPointType:()=>fX5,ColorFile:()=>F25,ColorDiff:()=>c25,BatchSpanProcessor:()=>a25,BatchLogRecordProcessor:()=>zX5,BasicTracerProvider:()=>s25,BROWSER_TOOLS:()=>g25,AggregationTemporality:()=>PX5,ATTR_SERVICE_VERSION:()=>MX5,ATTR_SERVICE_NAME:()=>jX5});var hD=()=>null,a2=class{},BC_,I25,GX5,x25=!0,u25=null,p25,m25,g25,B25,c25=null,F25=null,U25,d25,Q25,l25,i25,n25,r25,a25,o25,s25,t25,e25,qX5,KX5,_X5,AX5,zX5,YX5,OX5,$X5,wX5,HX5,jX5="service.name",MX5="service.version",JX5="service.name",XX5="service.version",PX5,fX5,WX5,DX5,ZX5;var FC_=h(()=>{BC_={get(q,K){if(K==="__esModule")return!0;if(K==="default")return new Proxy({},BC_);if(K==="ExportResultCode")return{SUCCESS:0,FAILED:1};if(K==="resourceFromAttributes")return()=>({});if(K==="SandboxRuntimeConfigSchema")return{parse:()=>({})};return hD}},I25=new Proxy(hD,BC_),GX5=I25,p25=new Proxy({},{get:()=>hD}),m25={parse:()=>({})},g25=[],B25=hD,U25=hD,d25=hD,Q25=hD,l25={SUCCESS:0,FAILED:1},i25=hD,n25=a2,r25=a2,a25=a2,o25=a2,s25=a2,t25=a2,e25=a2,qX5=a2,KX5=a2,_X5=a2,AX5=a2,zX5=a2,YX5=a2,OX5=a2,$X5={getTracer:()=>({startSpan:()=>({end:hD,setAttribute:hD,setStatus:hD,recordException:hD})})},wX5={active:hD,with:(q,K)=>K()},HX5={OK:0,ERROR:1,UNSET:2},PX5={CUMULATIVE:0,DELTA:1},fX5={HISTOGRAM:0,SUM:1,GAUGE:2},WX5={COUNTER:0,HISTOGRAM:1,UP_DOWN_COUNTER:2},DX5=a2,ZX5={}});async function Fc(q,K){let A=j8().preferredNotifChannel;await AR(q);let z=await vX5(A,q,K);Q("ev_event",{configured_channel:A,method_used:z,term:pq.terminal})}async function vX5(q,K,_){let A=K.title||UC_;try{switch(q){case"auto":return TX5(K,_);case"iterm2":return _.notifyITerm2(K),"iterm2";case"iterm2_with_bell":return _.notifyITerm2(K),_.notifyBell(),"iterm2_with_bell";case"kitty":return _.notifyKitty({...K,title:A,id:dC_()}),"kitty";case"ghostty":return _.notifyGhostty({...K,title:A}),"ghostty";case"terminal_bell":return _.notifyBell(),"terminal_bell";case"notifications_disabled":return"disabled";default:return"none"}}catch{return"error"}}async function TX5(q,K){let _=q.title||UC_;switch(pq.terminal){case"Apple_Terminal":{if(await kX5())return K.notifyBell(),"terminal_bell";return"no_method_available"}case"iTerm.app":return K.notifyITerm2(q),"iterm2";case"kitty":return K.notifyKitty({...q,title:_,id:dC_()}),"kitty";case"ghostty":return K.notifyGhostty({...q,title:_}),"ghostty";default:return"no_method_available"}}function dC_(){return Math.floor(Math.random()*1e4)}async function kX5(){try{if(pq.terminal!=="Apple_Terminal")return!1;let K=(await r8("osascript",["-e",'tell application "Terminal" to name of current settings of front window'])).stdout.trim();if(!K)return!1;let _=await r8("defaults",["export","com.apple.Terminal","-"]);if(_.code!==0)return!1;let O=(await Promise.resolve().then(() => (FC_(),cC_))).parse(_.stdout)?.["Window Settings"]?.[K];if(!O)return!1;return O.Bell===!1}catch(q){return A6(q),!1}}var UC_="puku-cli";var B58=h(()=>{Wq();n5();J7();zY();y8()});import{spawn as NX5}from"child_process";function lC_(){if(aa++,aa===1)rC_(),EX5()}function iC_(){if(aa>0)aa--;if(aa===0)nC_(),qzq()}function RX5(){aa=0,nC_(),qzq()}function EX5(){if(process.platform!=="darwin")return;if(y36!==null)return;y36=setInterval(()=>{if(aa>0)V("Restarting caffeinate to maintain sleep prevention"),qzq(),rC_()},yX5),y36.unref()}function nC_(){if(y36!==null)clearInterval(y36),y36=null}function rC_(){if(process.platform!=="darwin")return;if(zf!==null)return;if(!QC_)QC_=!0,oK(async()=>{RX5()});try{zf=NX5("caffeinate",["-i","-t",String(VX5)],{stdio:"ignore"}),zf.unref();let q=zf;zf.on("error",(K)=>{if(V(`caffeinate spawn error: ${K.message}`),zf===q)zf=null}),zf.on("exit",()=>{if(zf===q)zf=null}),V("Started caffeinate to prevent sleep")}catch{zf=null}}function qzq(){if(zf!==null){let q=zf;zf=null;try{q.kill("SIGKILL"),V("Stopped caffeinate, allowing sleep")}catch{}}}var VX5=300,yX5=240000,zf=null,y36=null,aa=0,QC_=!1;var aC_=h(()=>{lA();z8()});var sC_={};S8(sC_,{stopMemoryPressureMonitor:()=>bX5,startMemoryPressureMonitor:()=>SX5,registerPrunableCache:()=>Azq,pruneRegisteredCaches:()=>oC_,onMemoryPressure:()=>zzq,getMemoryPressureLevel:()=>hX5,consumeCompactionRequest:()=>CX5});function Azq(q){if(!_zq.includes(q))_zq.push(q)}function oC_(){for(let q of _zq)try{q.clear()}catch{}}function hX5(){return jN}function zzq(q){return wV6.push(q),()=>{wV6=wV6.filter((K)=>K!==q)}}function SX5(q={}){if(R36)return;let K={...LX5,...q};if(K.elevatedThresholdMB===0)K.elevatedThresholdMB=Math.floor(K.perSessionBudgetMB*0.8);if(K.criticalThresholdMB===0)K.criticalThresholdMB=Math.floor(K.perSessionBudgetMB*0.9);V(`[MemoryPressure] Monitor started: elevated=${K.elevatedThresholdMB}MB critical=${K.criticalThresholdMB}MB interval=${K.checkIntervalMs}ms`),R36=setInterval(()=>{let _=process.memoryUsage().rss/1024/1024,A=jN;if(_>=K.criticalThresholdMB)jN="critical";else if(_>=K.elevatedThresholdMB)jN="elevated";else jN="normal";if(jN!==A){if(V(`[MemoryPressure] Level changed: ${A} → ${jN} (RSS: ${_.toFixed(0)}MB)`),jN==="critical")V("[MemoryPressure] Critical — pruning registered caches"),oC_();for(let z of wV6)try{z(jN)}catch{}}if(jN!=="normal")Kzq=!0},K.checkIntervalMs),R36.unref?.()}function CX5(){if(Kzq)return Kzq=!1,!0;return!1}function bX5(){if(R36)clearInterval(R36),R36=null;jN="normal",wV6=[]}var LX5,jN="normal",wV6,R36=null,Kzq=!1,_zq;var c58=h(()=>{z8();LX5={elevatedThresholdMB:0,criticalThresholdMB:0,checkIntervalMs:30000,perSessionBudgetMB:Number.parseInt(process.env.PUKU_CLI_MAX_MEMORY_MB??"1536",10)},wV6=[],_zq=[]});class Yzq{_status="idle";_generation=0;_changed=L5();reserve(){if(this._status!=="idle")return!1;return this._status="dispatching",this._notify(),!0}cancelReservation(){if(this._status!=="dispatching")return;this._status="idle",this._notify()}tryStart(){if(this._status==="running")return null;return this._status="running",++this._generation,this._notify(),this._generation}end(q){if(this._generation!==q)return!1;if(this._status!=="running")return!1;return this._status="idle",this._notify(),!0}forceEnd(){if(this._status==="idle")return;this._status="idle",++this._generation,this._notify()}get isActive(){return this._status!=="idle"}get generation(){return this._generation}subscribe=this._changed.subscribe;getSnapshot=()=>{return this._status!=="idle"};_notify(){this._changed.emit()}}var tC_=()=>{};function qb_(q){let K=eC_.c(7),{name:_,color:A}=q,z;if(K[0]!==A)z=lj(A),K[0]=A,K[1]=z;else z=K[1];let Y=z,O;if(K[2]!==_)O=y(T,{bold:!0,children:["@",_]}),K[2]=_,K[3]=O;else O=K[3];let $;if(K[4]!==Y||K[5]!==O)$=W(x,{flexDirection:"row",gap:1,children:y(T,{color:Y,children:[WA," ",O]})}),K[4]=Y,K[5]=O,K[6]=$;else $=K[6];return $}var eC_;var Kb_=h(()=>{l5();n6();gC();r();eC_=q6(K8(),1)});function Ozq(q){let K=_b_.c(15),{toolName:_,description:A}=q,z;if(K[0]===Symbol.for("react.memo_cache_sentinel"))z=t4(),K[0]=z;else z=K[0];let Y=z,O;if(K[1]===Symbol.for("react.memo_cache_sentinel"))O=gA(),K[1]=O;else O=K[1];let $=O,w;if(K[2]===Symbol.for("react.memo_cache_sentinel"))w=b3(),K[2]=w;else w=K[2];let H=w,j,M;if(K[3]===Symbol.for("react.memo_cache_sentinel"))j=y(x,{marginBottom:1,children:[W(n_,{}),y(T,{color:"warning",bold:!0,children:[" ","Waiting for team lead approval"]})]}),M=$&&H&&W(x,{marginBottom:1,children:W(qb_,{name:$,color:H})}),K[3]=j,K[4]=M;else j=K[3],M=K[4];let J;if(K[5]===Symbol.for("react.memo_cache_sentinel"))J=W(T,{dimColor:!0,children:"Tool: "}),K[5]=J;else J=K[5];let X;if(K[6]!==_)X=y(x,{children:[J,W(T,{children:_})]}),K[6]=_,K[7]=X;else X=K[7];let P;if(K[8]===Symbol.for("react.memo_cache_sentinel"))P=W(T,{dimColor:!0,children:"Action: "}),K[8]=P;else P=K[8];let f;if(K[9]!==A)f=y(x,{children:[P,W(T,{children:A})]}),K[9]=A,K[10]=f;else f=K[10];let D;if(K[11]===Symbol.for("react.memo_cache_sentinel"))D=Y&&W(x,{marginTop:1,children:y(T,{dimColor:!0,children:["Permission request sent to team ",'"',Y,'"'," leader"]})}),K[11]=D;else D=K[11];let Z;if(K[12]!==X||K[13]!==f)Z=y(x,{flexDirection:"column",borderStyle:"round",borderColor:"warning",paddingX:1,children:[j,M,X,f,D]}),K[12]=X,K[13]=f,K[14]=Z;else Z=K[14];return Z}var _b_;var Ab_=h(()=>{n6();wz();Y3();Kb_();r();_b_=q6(K8(),1)});function zb_(q,K=!1){let _=X8(($)=>$.teamContext),A=oa.useRef(0),z=oa.useRef(void 0),Y=oa.useRef(void 0),O=oa.useRef(0);oa.useEffect(()=>{if(K)return;let $=q[0]?.uuid,w=A.current,H=Y.current===void 0,j=$!==void 0&&!H&&$===Y.current&&w<=q.length,M=$!==void 0&&!H&&$===Y.current&&w>q.length,J=j?w:0;if(J===q.length)return;let X=J===0?q:q.slice(J),P=j?z.current:void 0,f=++O.current;if(MP(X,uK()?{teamName:_?.teamName,agentName:_?.selfAgentName}:{},P,q).then((D)=>{if(f!==O.current)return;if(D&&!j)z.current=D}),j||H||M){let D=oN6(X,q).findLast(X36);if(D)z.current=D.uuid}A.current=q.length,Y.current=$},[q,K,_?.teamName,_?.selfAgentName])}var oa;var Yb_=h(()=>{dq();mz();S_();oa=q6(q8(),1)});function Ob_(q){if(!q||typeof q!=="object")return!1;return"behavior"in q&&(q.behavior==="allow"||q.behavior==="deny")}var $b_=()=>{};function F58(q){if(q.type!=="user")return;let K=q.message?.content;if(!K)return;if(Array.isArray(K)&&K.length===0)return;let _="uuid"in q&&typeof q.uuid==="string"?q.uuid:void 0;return{content:Array.isArray(K)?IX5(K):K,uuid:_}}function IX5(q){if(!q.some(wb_))return q;return q.map((K)=>{if(!wb_(K))return K;let _=K.source,A=typeof _.mediaType==="string"&&_.mediaType?_.mediaType:fW6(K.source.data);return{...K,source:{type:"base64",media_type:A,data:K.source.data}}})}function wb_(q){if(q.type!=="image"||q.source?.type!=="base64")return!1;return!q.source.media_type}var $zq=h(()=>{FW()});import{randomUUID as xX5}from"crypto";function wzq(q){return q===O_?YV:q}function U58(q){let _=Bq()?.outputStyle??b2,A={type:"system",subtype:"init",cwd:W8(),session_id:T8(),tools:q.tools.map((z)=>wzq(z.name)),mcp_servers:q.mcpClients.map((z)=>({name:z.name,status:z.type})),model:q.model,permissionMode:q.permissionMode,slash_commands:q.commands.filter((z)=>z.userInvocable!==!1).map((z)=>z.name),apiKeySource:iO().source,betas:l9(),puku_cli_version:"99.0.0",output_style:_,agents:q.agents.map((z)=>z.agentType),skills:q.skills.filter((z)=>z.userInvocable!==!1).map((z)=>z.name),plugins:q.plugins.map((z)=>({name:z.name,path:z.path,source:z.source})),uuid:xX5()};return A.fast_mode_state=eT(q.model,q.fastMode),A}var Hzq=h(()=>{G8();Fy();Pz();wK();nq();Pj();Vq()});function d58(q){if(q===null||typeof q!=="object")return q;let K=q;if("requestId"in K&&!("request_id"in K))K.request_id=K.requestId,delete K.requestId;if("response"in K&&K.response!==null&&typeof K.response==="object"){let _=K.response;if("requestId"in _&&!("request_id"in _))_.request_id=_.requestId,delete _.requestId}return q}import{randomUUID as uX5}from"crypto";function pX5(q){return q!==null&&typeof q==="object"&&"type"in q&&typeof q.type==="string"}function mX5(q){return q!==null&&typeof q==="object"&&"type"in q&&q.type==="control_response"&&"response"in q}function gX5(q){return q!==null&&typeof q==="object"&&"type"in q&&q.type==="control_request"&&"request_id"in q&&"request"in q}function WI(q){if((q.type==="user"||q.type==="assistant")&&q.isVirtual)return!1;return q.type==="user"||q.type==="assistant"||q.type==="system"&&q.subtype==="local_command"}function Q58(q){if(q.type!=="user"||q.isMeta||q.toolUseResult||q.isCompactSummary)return;if(q.origin&&q.origin.kind!=="human")return;let K=q.message.content,_;if(typeof K==="string")_=K;else for(let z of K)if(z.type==="text"){_=z.text;break}if(!_)return;return mt(_)||void 0}function E36(q,K,_,A,z,Y){try{let O=d58(p8(q));if(mX5(O)){V("[bridge:repl] Ingress message type=control_response"),z?.(O);return}if(gX5(O)){V(`[bridge:repl] Inbound control_request subtype=${O.request.subtype}`),Y?.(O);return}if(!pX5(O))return;let $="uuid"in O&&typeof O.uuid==="string"?O.uuid:void 0;if($&&K.has($)){V(`[bridge:repl] Ignoring echo: type=${O.type} uuid=${$}`);return}if($&&_.has($)){V(`[bridge:repl] Ignoring re-delivered inbound: type=${O.type} uuid=${$}`);return}if(V(`[bridge:repl] Ingress message type=${O.type}${$?` uuid=${$}`:""}`),O.type==="user"){if($)_.add($);Q("ev_event",{is_repl:!0}),A?.(O)}else V(`[bridge:repl] Ignoring non-user inbound message: type=${O.type}`)}catch(O){V(`[bridge:repl] Failed to parse ingress message: ${d6(O)}`)}}function L36(q,K){let{transport:_,sessionId:A,outboundOnly:z,onInterrupt:Y,onSetModel:O,onSetMaxThinkingTokens:$,onSetPermissionMode:w}=K;if(!_){V("[bridge:repl] Cannot respond to control_request: transport not configured");return}let H;if(z&&q.request.subtype!=="initialize"){H={type:"control_response",response:{subtype:"error",request_id:q.request_id,error:BX5}};let M={...H,session_id:A};_.write(M),V(`[bridge:repl] Rejected ${q.request.subtype} (outbound-only) request_id=${q.request_id}`);return}switch(q.request.subtype){case"initialize":H={type:"control_response",response:{subtype:"success",request_id:q.request_id,response:{commands:[],output_style:"normal",available_output_styles:["normal"],models:[],account:{},pid:process.pid}}};break;case"set_model":O?.(q.request.model),H={type:"control_response",response:{subtype:"success",request_id:q.request_id}};break;case"set_max_thinking_tokens":$?.(q.request.max_thinking_tokens),H={type:"control_response",response:{subtype:"success",request_id:q.request_id}};break;case"set_permission_mode":{let M=w?.(q.request.mode)??{ok:!1,error:"set_permission_mode is not supported in this context (onSetPermissionMode callback not registered)"};if(M.ok)H={type:"control_response",response:{subtype:"success",request_id:q.request_id}};else H={type:"control_response",response:{subtype:"error",request_id:q.request_id,error:M.error}};break}case"interrupt":Y?.(),H={type:"control_response",response:{subtype:"success",request_id:q.request_id}};break;default:H={type:"control_response",response:{subtype:"error",request_id:q.request_id,error:`REPL bridge does not handle control_request subtype: ${q.request.subtype}`}}}let j={...H,session_id:A};_.write(j),V(`[bridge:repl] Sent control_response for ${q.request.subtype} request_id=${q.request_id} result=${H.response.subtype}`)}function h36(q){return{type:"result",subtype:"success",duration_ms:0,duration_api_ms:0,is_error:!1,num_turns:0,result:"",stop_reason:null,total_cost_usd:0,usage:{...OM},modelUsage:{},permission_denials:[],session_id:q,uuid:uX5()}}class rv{capacity;ring;set=new Set;writeIdx=0;constructor(q){this.capacity=q,this.ring=Array(q)}add(q){if(this.set.has(q))return;let K=this.ring[this.writeIdx];if(K!==void 0)this.set.delete(K);this.ring[this.writeIdx]=q,this.set.add(q),this.writeIdx=(this.writeIdx+1)%this.capacity}has(q){return this.set.has(q)}clear(){this.set.clear(),this.ring.fill(void 0),this.writeIdx=0}}var BX5="This session is outbound-only. Enable Remote Control locally to allow inbound control.";var HV6=h(()=>{De8();z8();gt();N8();Q8()});function Hb_(q){let{workerUrl:K,apiKey:_,onMaxRetries:A}=q,z=null,Y=!1,O=0,$=!1,w=null,H=null,j=null,M=null;function J(){if(Y)return;try{z=new WebSocket(K,{headers:{Authorization:`Bearer ${_}`}}),z.onopen=()=>{O=0,$=!1,V("[puku-relay-transport] connected"),M?.()},z.onmessage=(D)=>{let Z=typeof D.data==="string"?D.data:String(D.data);H?.(Z)},z.onerror=()=>{V("[puku-relay-transport] WebSocket error")},z.onclose=(D)=>{if(V(`[puku-relay-transport] closed code=${D.code}`),j?.(D.code),!Y)X()}}catch(D){V(`[puku-relay-transport] open failed: ${D}`),X()}}function X(){if(Y)return;if(O>=jzq.length&&!$){$=!0,V("[puku-relay-transport] max retries exceeded"),A?.();return}if(O>=jzq.length)return;let D=jzq[O]??30000;O++,V(`[puku-relay-transport] reconnect #${O} in ${D}ms`),w=setTimeout(()=>{w=null,J()},D)}async function P(D){if(z?.readyState===WebSocket.OPEN)z.send(D)}return{connect(){Y=!1,J()},close(){if(Y=!0,w!==null)clearTimeout(w),w=null;z?.close(),z=null},async write(D){await P(JSON.stringify(D))},async writeBatch(D){for(let Z of D)await P(JSON.stringify(Z))},isConnectedStatus(){return z?.readyState===WebSocket.OPEN},getStateLabel(){if(Y)return"closed";if(!z)return"init";switch(z.readyState){case WebSocket.CONNECTING:return"connecting";case WebSocket.OPEN:return"connected";case WebSocket.CLOSING:return"closing";default:return"closed"}},setOnData(D){H=D},setOnClose(D){j=D},setOnConnect(D){M=D},getLastSequenceNum(){return 0},get droppedBatchCount(){return 0},reportState(){},reportMetadata(){},reportDelivery(){},async flush(){}}}var jzq;var jb_=h(()=>{z8();jzq=[3000,6000,12000,30000]});var Mb_={};S8(Mb_,{initPukuRelayBridge:()=>cX5});async function cX5(q){let{sessionId:K,workerUrl:_,apiKey:A,toSDKMessages:z,initialMessages:Y=[],onInboundMessage:O,onPermissionResponse:$,onInterrupt:w,onSetModel:H,onSetMaxThinkingTokens:j,onSetPermissionMode:M,onStateChange:J,onClientConnected:X,onClientDisconnected:P,onMaxRetries:f}=q,D=new rv(2000),Z=new rv(2000),G=new Set;for(let p of Y)if(p.uuid)G.add(p.uuid);let v=[],k=500,N=Hb_({workerUrl:_,apiKey:A,onMaxRetries:()=>{V("[puku-relay-bridge] max retries exceeded — notifying state change"),J?.("failed"),f?.()}});N.setOnData((p)=>{try{let m=JSON.parse(p);if(m!==null&&typeof m==="object"){let B=m;if(B.type==="client_connected"){let g=[...v];if(X?.(),g.length>0)N.writeBatch(g);return}if(B.type==="client_disconnected"||B.type==="client_replaced"){P?.();return}if(B.type==="user")N.write({type:"system",subtype:"progress",status:"thinking"})}}catch{}E36(p,D,Z,O,$,(m)=>{L36(m,{transport:N,sessionId:K,onInterrupt:w,onSetModel:H,onSetMaxThinkingTokens:j,onSetPermissionMode:M})})}),N.setOnConnect(()=>{if(V("[puku-relay-bridge] connected"),J?.("connected"),v.length=0,Y.length>0){let p=Y.filter(WI);if(p.length>0){let m=z(p);v.push(...m.slice(-k)),N.writeBatch(m)}}}),N.setOnClose((p)=>{V(`[puku-relay-bridge] closed code=${p}`),J?.("reconnecting")}),N.connect(),J?.("ready");function L(p){let m=p.filter((g)=>WI(g)&&!G.has(g.uuid)&&!D.has(g.uuid)&&!Z.has(g.uuid));if(m.length===0)return;for(let g of m)D.add(g.uuid);let B=z(m);if(V(`[puku-relay-bridge] writing ${B.length} message(s)`),v.push(...B),v.length>k)v.splice(0,v.length-k);N.writeBatch(B)}function C(p){let m=p.filter((B)=>!B.uuid||!D.has(B.uuid));if(m.length===0)return;for(let B of m)if(B.uuid)D.add(B.uuid);if(v.push(...m),v.length>k)v.splice(0,v.length-k);N.writeBatch(m)}function b(p){N.write(p)}function I(p){N.write(p)}return{bridgeSessionId:K,environmentId:"",sessionIngressUrl:_,writeMessages:L,writeSdkMessages:C,sendControlRequest:b,sendControlResponse:I,sendControlCancelRequest(p){let m={type:"control_cancel_request",request_id:p,session_id:K};N.write(m),V(`[puku-relay-bridge] Sent control_cancel_request request_id=${p}`)},sendResult:()=>{},async teardown(){V("[puku-relay-bridge] teardown");try{await N.write({type:"session_end"})}catch{}J?.("failed"),N.close()}}}var Jb_=h(()=>{z8();HV6();jb_()});var Mzq={};S8(Mzq,{formatPukuMessageForInk:()=>FX5});function FX5(q,K){if(process.env.DEBUG)console.error("[relay-formatter] message:",q.type);let _=q;switch(q.type){case"system":{if(_.subtype==="init"){if(K.addMessage("─".repeat(40),"status"),K.addMessage(`\uD83D\uDE80 Session initialized: ${_.session_id}`,"system"),K.addMessage(` Model: ${_.model}`,"status"),K.addMessage(` CWD: ${_.cwd}`,"status"),_.tools&&_.tools.length>0)K.addMessage(` Tools: ${_.tools.join(", ")}`,"status");K.addMessage("─".repeat(40),"status")}break}case"user":{let A=_.message?.content;if(!A)break;if(typeof A==="string")K.addMessage(`\uD83D\uDC64 User: ${A}`,"user");else if(Array.isArray(A)){for(let z of A)if(z.type==="text")K.addMessage(`\uD83D\uDC64 User: ${z.text}`,"user");else if(z.type==="tool_result"){if(K.addMessage(`✅ Tool Result (ID: ${z.tool_use_id})`,"result"),z.content){let Y=typeof z.content==="string"?z.content:JSON.stringify(z.content,null,2);if(Y.length>200)K.addMessage(Y.substring(0,200)+"… (truncated)","result");else K.addMessage(Y,"result")}}}else K.addMessage(`\uD83D\uDC64 User: ${JSON.stringify(A)}`,"user");break}case"assistant":{if(!_.message?.content)break;K.addMessage("\uD83E\uDD16 Assistant:","assistant");for(let A of _.message.content)if(A.type==="text")K.addMessage(A.text||"","assistant");else if(A.type==="tool_use"){if(K.addMessage(`\uD83D\uDD27 Tool: ${A.name}`,"tool"),A.input){let z=JSON.stringify(A.input,null,2);if(z.length>500)K.addMessage(`Input: ${z.substring(0,500)}… (truncated)`,"tool");else K.addMessage(`Input: ${z}`,"tool")}}break}case"result":{if(_.subtype==="success"){if(_.result)K.addMessage("✨ Summary:","result"),K.addMessage(_.result,"result");if(_.usage){if(K.addMessage("\uD83D\uDCCA Session Stats:","status"),K.addMessage(` • Turns: ${_.num_turns}`,"status"),K.addMessage(` • Input tokens: ${_.usage.input_tokens}`,"status"),K.addMessage(` • Output tokens: ${_.usage.output_tokens}`,"status"),_.usage.cache_read_input_tokens)K.addMessage(` • Cache read: ${_.usage.cache_read_input_tokens}`,"status");K.addMessage(` • Cost: $${Number(_.total_cost_usd).toFixed(4)}`,"status"),K.addMessage(` • Duration: ${_.duration_ms}ms`,"status")}}else if(_.subtype==="error_max_turns")K.addMessage("❌ Error: Maximum turns reached","result"),K.addMessage(`Completed ${_.num_turns} turns`,"status");else if(_.subtype==="error_during_execution")K.addMessage("❌ Error during execution","result"),K.addMessage(`Completed ${_.num_turns} turns before error`,"status");break}default:if(process.env.DEBUG)K.addMessage(`[Unknown message type: ${q.type}]`,"status")}}function Xb_(q,K,_,A,z){let Y=WM.useRef(null),O=WM.useRef(void 0),$=WM.useRef(0),w=WM.useRef(new Set),H=WM.useRef(void 0),j=WM.useRef(0),M=sq(),J=WM.useRef(A);J.current=A;let X=WM.useRef(z);X.current=z;let P=WM.useRef(q);P.current=q;let f=y5(),{addNotification:D}=o_(),Z=!1,G=!1,v=!1,k=void 0,N=X8((C)=>C.pukuRelaySession);return WM.useEffect(()=>{},[Z,v,M,K,D]),WM.useEffect(()=>{},[q,G]),WM.useEffect(()=>{if(!N)return;let C=!1,{sessionId:b,workerUrl:I}=N;return(async()=>{try{let{initPukuRelayBridge:p}=await Promise.resolve().then(() => (Jb_(),Mb_)),{toSDKMessages:m}=await Promise.resolve().then(() => (Sc(),D4q)),{relayMessageBuffer:B}=await Promise.resolve().then(() => (jN6(),x48));if(C)return;B.clear();let g=P.current.slice(0,P.current.length),u=new Map,F=await p({sessionId:b,workerUrl:I,apiKey:N.workerToken,toSDKMessages:m,initialMessages:g,onPermissionResponse:(d)=>{let n=d.response?.request_id;if(!n)return;let _6=u.get(n);if(!_6)return;u.delete(n);let o=d.response;if(o.subtype==="success"&&o.response&&Ob_(o.response))_6(o.response)},onInterrupt(){_.current?.abort()},onSetModel(d){let n=d==="default"?null:d??null;g1(n),M((_6)=>{if(_6.mainLoopModelForSession===n)return _6;return{..._6,mainLoopModelForSession:n}})},onSetMaxThinkingTokens(d){let n=d!==null;M((_6)=>{if(_6.thinkingEnabled===n)return _6;return{..._6,thinkingEnabled:n}})},onSetPermissionMode(d){if(d==="bypassPermissions"){if(gb())return{ok:!1,error:"Cannot set permission mode to bypassPermissions because it is disabled by settings or configuration"};if(!f.getState().toolPermissionContext.isBypassPermissionsModeAvailable)return{ok:!1,error:"Cannot set permission mode to bypassPermissions because the session was not launched with --god-mode"}}if(d==="auto"&&!iP()){let n=mb();return{ok:!1,error:n?`Cannot set permission mode to auto: ${qc(n)}`:"Cannot set permission mode to auto"}}return M((n)=>{let _6=n.toolPermissionContext.mode;if(_6===d)return n;let o=pb(_6,d,n.toolPermissionContext);return{...n,toolPermissionContext:{...o,mode:d}}}),setImmediate(()=>{hA6()?.((n)=>{return n.forEach((_6)=>{_6.recheckPermission()}),n})}),{ok:!0}},onInboundMessage:async(d)=>{if(C)return;let n=F58(d);if(!n)return;PH({mode:"prompt",value:n.content,uuid:n.uuid,skipSlashCommands:!0,bridgeOrigin:!0});let{formatPukuMessageForInk:_6}=await Promise.resolve().then(() => Mzq),{relayMessageBuffer:o}=await Promise.resolve().then(() => (jN6(),x48));_6(d,o)},onStateChange:(d)=>{V(`[puku-relay-bridge] state=${d}`),M((n)=>({...n,replBridgeConnected:d==="connected"}))},onClientConnected:()=>{if(C)return;V("[puku-relay-bridge] mobile client connected"),M((d)=>({...d,replBridgeSessionActive:!0}));try{let d=f.getState();Y.current?.writeSdkMessages([U58({tools:[],mcpClients:[],model:X.current,permissionMode:d.toolPermissionContext.mode,commands:J.current.filter(w58),agents:d.agentDefinitions.activeAgents,skills:[],plugins:[],fastMode:d.fastMode})])}catch(d){V(`[puku-relay-bridge] Failed to send system/init: ${d6(d)}`)}},onClientDisconnected:()=>{if(C)return;V("[puku-relay-bridge] mobile client disconnected"),M((d)=>({...d,replBridgeSessionActive:!1}))}});if(C){await F.teardown();return}Y.current=F,Yt8(F),$.current=P.current.length;let U={sendRequest(d,n,_6,o,t,a,s){F.sendControlRequest({type:"control_request",request_id:d,request:{subtype:"can_use_tool",tool_name:n,input:_6,tool_use_id:o,description:t,request_id:d,...a?{permission_suggestions:a}:{},...s?{blocked_path:s}:{}}})},sendResponse(d,n){F.sendControlResponse({type:"control_response",response:{subtype:"success",request_id:d,response:{...n}}})},cancelRequest(d){F.sendControlCancelRequest(d)},onResponse(d,n){return u.set(d,n),()=>{u.delete(d)}}};M((d)=>({...d,replBridgePermissionCallbacks:U}))}catch(p){if(!C)V(`[puku-relay-bridge] init failed: ${d6(p)}`)}})(),()=>{C=!0;let p=Y.current;if(p)Y.current=null,Yt8(null),p.teardown();M((m)=>({...m,replBridgeConnected:!1,replBridgeSessionActive:!1,replBridgePermissionCallbacks:void 0}))}},[N]),WM.useEffect(()=>{if(!N)return;let C=Y.current;if(!C)return;let b=Math.min($.current,q.length),I=[];for(let p=b;p<q.length;p++){let m=q[p];if(m&&(m.type==="user"||m.type==="assistant"||m.type==="system"&&m.subtype==="local_command"))I.push(m)}if($.current=q.length,I.length>0){C.writeMessages(I);let p=I.filter((m)=>m.type==="assistant");if(p.length>0)(async()=>{let{toSDKMessages:m}=await Promise.resolve().then(() => (Sc(),D4q)),{formatPukuMessageForInk:B}=await Promise.resolve().then(() => Mzq),{relayMessageBuffer:g}=await Promise.resolve().then(() => (jN6(),x48));for(let u of p){let F=m([u])[0];if(F)B(F,g)}})()}},[q,N]),{sendBridgeResult:WM.useCallback(()=>{},[])}}var WM;var Pb_=h(()=>{G8();$b_();zA6();$zq();Ot8();hY();cz();n6();dq();nq();z8();N8();C3();Hzq();kq();z1();r();WM=q6(q8(),1)});var Zb_={};S8(Zb_,{selectableUserMessagesFilter:()=>sa,messagesAfterAreOnlySynthetic:()=>l58,MessageSelector:()=>Pzq});import{randomUUID as UX5}from"crypto";import*as C36 from"path";function Wb_(q){return q.type==="text"}function Xzq(q){return q==="summarize"||q==="summarize_up_to"}function Pzq({messages:q,onPreRestore:K,onRestoreMessage:_,onRestoreCode:A,onSummarize:z,onClose:Y,preselectedMessage:O}){let $=X8((w6)=>w6.fileHistory),[w,H]=H3.useState(void 0),j=Fz(),M=H3.useMemo(UX5,[]),J=H3.useMemo(()=>[...q.filter(sa),{...C8({content:""}),uuid:M}],[q,M]),[X,P]=H3.useState(J.length-1),f=Math.max(0,Math.min(X-Math.floor(Jzq/2),J.length-Jzq)),D=J.length>1,[Z,G]=H3.useState(O),[v,k]=H3.useState(void 0);H3.useEffect(()=>{if(!O||!j)return;let w6=!1;return Gv6($,O.uuid).then((j6)=>{if(!w6)k(j6)}),()=>{w6=!0}},[O,j,$]);let[N,L]=H3.useState(!1),[C,b]=H3.useState(null),[I,p]=H3.useState("both"),[m,B]=H3.useState(""),[g,u]=H3.useState("");function F(w6){let j6=w6?[{value:"both",label:"Restore code and conversation"},{value:"conversation",label:"Restore conversation"},{value:"code",label:"Restore code"}]:[{value:"conversation",label:"Restore conversation"}],K6={type:"input",placeholder:"add context (optional)",initialValue:"",allowEmptySubmitToCancel:!0,showLabelWithValue:!0,labelValueSeparator:": "};return j6.push({value:"summarize",label:"Summarize from here",...K6,onChange:B}),j6.push({value:"nevermind",label:"Never mind"}),j6}H3.useEffect(()=>{Q("ev_event",{})},[]);async function U(w6){K(),L(!0);try{await _(w6),L(!1),Y()}catch(j6){A6(j6),L(!1),H(`Failed to restore the conversation:
|
|
7471
7471
|
${j6}`)}}async function d(w6){let j6=q.indexOf(w6),K6=q.length-1-j6;if(Q("ev_event",{index_from_end:K6,message_type:w6.type,is_current_prompt:!1}),!q.includes(w6)){Y();return}if(!j){await U(w6);return}let $6=await Gv6($,w6.uuid);G(w6),k($6)}async function n(w6){if(Q("ev_event",{option:w6}),!Z){H("Message not found.");return}if(w6==="nevermind"){if(O)Y();else G(void 0);return}if(Xzq(w6)){K(),L(!0),b(w6),H(void 0);try{let $6=w6==="summarize_up_to"?"up_to":"from",T6=($6==="up_to"?g:m).trim()||void 0;await z(Z,T6,$6),L(!1),b(null),G(void 0),Y()}catch($6){A6($6),L(!1),b(null),G(void 0),H(`Failed to summarize:
|
|
7472
7472
|
${$6}`)}return}K(),L(!0),H(void 0);let j6=null,K6=null;if(w6==="code"||w6==="both")try{await A(Z)}catch($6){j6=$6,A6(j6)}if(w6==="conversation"||w6==="both")try{await _(Z)}catch($6){K6=$6,A6(K6)}if(L(!1),G(void 0),K6&&j6)H(`Failed to restore the conversation and code:
|
|
7473
7473
|
${K6}
|
|
@@ -7631,7 +7631,7 @@ ${aq("suggestion",q.theme)(`/plugin install frontend-design@${N$}`)}`},cooldownS
|
|
|
7631
7631
|
${aq("suggestion",q.theme)(`/plugin install vercel@${N$}`)}`},cooldownSessions:3,isRelevant:async(q)=>xF_("vercel",q,{filePath:/(?:^|[/\\])vercel\.json$/i,cli:["vercel"]})},{id:"effort-high-nudge",content:async(q)=>{let _=aq("suggestion",q.theme)("/effort high");return s8("ev_event","off")==="copy_b"?`Use ${_} for better one-shot answers. puku-cli thinks it through first.`:`Working on something tricky? ${_} gives better first answers`},cooldownSessions:3,isRelevant:async()=>{if(!xQ())return!1;if(!tX(e_()))return!1;if(Oq("policySettings")?.effortLevel!==void 0)return!1;if(Il()!==void 0)return!1;let q=YK().effortLevel;if(q==="high"||q==="max")return!1;return s8("ev_event","off")!=="off"}},{id:"subagent-fanout-nudge",content:async(q)=>{let K=aq("suggestion",q.theme);return s8("ev_event","off")==="copy_b"?`For big tasks, tell puku-cli to ${K("use subagents")}. They work in parallel and keep your main thread clean.`:`Say ${K('"fan out subagents"')} and puku-cli sends a team. Each one digs deep so nothing gets missed.`},cooldownSessions:3,isRelevant:async()=>{if(!xQ())return!1;return s8("ev_event","off")!=="off"}},{id:"loop-command-nudge",content:async(q)=>{let K=aq("suggestion",q.theme);return s8("ev_event","off")==="copy_b"?`Use ${K("/loop 5m check the deploy")} to run any prompt on a schedule. Set it and forget it.`:`${K("/loop")} runs any prompt on a recurring schedule. Great for monitoring deploys, babysitting PRs, or polling status.`},cooldownSessions:3,isRelevant:async()=>{if(!xQ())return!1;if(!xxK())return!1;return s8("ev_event","off")!=="off"}},{id:"guest-passes",content:async(q)=>{let K=aq("puku",q.theme),_=vA8();return _?`Share puku-cli and earn ${K(GA8(_))} of extra usage · ${K("/passes")}`:`You have free guest passes to share · ${K("/passes")}`},cooldownSessions:3,isRelevant:async()=>{if(j8().hasVisitedPasses)return!1;let{eligible:K}=ZA8();return K}},{id:"overage-credit",content:async(q)=>{let K=aq("puku",q.theme),_=Kv6(),A=_?_v6(_):null;if(!A)return"";return`${K(`${A} in extra usage, on us`)} · third-party apps · ${K("/extra-usage")}`},cooldownSessions:3,isRelevant:async()=>tJ_()},{id:"feedback-command",content:async()=>"Use /feedback to help us improve!",cooldownSessions:15,async isRelevant(){if(process.env.USER_TYPE==="ant")return!1;return j8().numStartups>5}}],W05=process.env.USER_TYPE==="ant"?[{id:"important-claudemd",content:async()=>'[ANT-ONLY] Use "IMPORTANT:" prefix for must-follow PUKU.md rules',cooldownSessions:30,isRelevant:async()=>!0},{id:"skillify",content:async()=>"[ANT-ONLY] Use /skillify at the end of a workflow to turn it into a reusable skill",cooldownSessions:15,isRelevant:async()=>!0}]:[]});function Z05(q){if(q.length===0)return;if(q.length===1)return q[0];let K=q.map((_)=>({tip:_,sessions:yY8(_.id)}));return K.sort((_,A)=>A.sessions-_.sessions),K[0]?.tip}async function uF_(q){if(Bq().spinnerTipsEnabled===!1)return;let K=await LY8(q);if(K.length===0)return;return Z05(K)}function pF_(q){kF_(q.id),Q("ev_event",{tipIdLength:q.id,cooldownSessions:q.cooldownSessions})}var mF_=h(()=>{Vq();COq();uOq()});var G05,v05,T05,j0$,k05,N05,V05,y05,R05,E05,M0$,L05,h05,S05,J0$,C05,X0$,b05,P0$,I05,x05,u05,p05,f0$,m05,W0$,g05,B05,c05,F05,U05,D0$,d05,gF_,Q05,pOq,l05,i05,BF_,n05,cF_,r05,Z0$,G0$;var FF_=h(()=>{zK();IQ8();G05=I6(()=>R.unknown()),v05=I6(()=>R.object({matcher:R.string().optional(),hookCallbackIds:R.array(R.string()),timeout:R.number().optional()}).describe("Configuration for matching and routing hook callbacks.")),T05=I6(()=>R.object({subtype:R.literal("initialize"),hooks:R.record($QK(),R.array(v05())).optional(),sdkMcpServers:R.array(R.string()).optional(),jsonSchema:R.record(R.string(),R.unknown()).optional(),systemPrompt:R.string().optional(),appendSystemPrompt:R.string().optional(),agents:R.record(R.string(),MQK()).optional(),promptSuggestions:R.boolean().optional(),agentProgressSummaries:R.boolean().optional()}).describe("Initializes the SDK session with hooks, MCP servers, and agent configuration.")),j0$=I6(()=>R.object({commands:R.array(hQ8()),agents:R.array(SQ8()),output_style:R.string(),available_output_styles:R.array(R.string()),models:R.array(HQK()),account:jQK(),pid:R.number().optional().describe("@internal CLI process PID for tmux socket isolation"),fast_mode_state:TG6().optional()}).describe("Response from session initialization with available commands, models, and account info.")),k05=I6(()=>R.object({subtype:R.literal("interrupt")}).describe("Interrupts the currently running conversation turn.")),N05=I6(()=>R.object({subtype:R.literal("can_use_tool"),tool_name:R.string(),input:R.record(R.string(),R.unknown()),permission_suggestions:R.array(vG6()).optional(),blocked_path:R.string().optional(),decision_reason:R.string().optional(),title:R.string().optional(),display_name:R.string().optional(),tool_use_id:R.string(),agent_id:R.string().optional(),description:R.string().optional()}).describe("Requests permission to use a tool with the given input.")),V05=I6(()=>R.object({subtype:R.literal("set_permission_mode"),mode:BC(),ultraplan:R.boolean().optional().describe("@internal CCR ultraplan session marker.")}).describe("Sets the permission mode for tool execution handling.")),y05=I6(()=>R.object({subtype:R.literal("set_model"),model:R.string().optional()}).describe("Sets the model to use for subsequent conversation turns.")),R05=I6(()=>R.object({subtype:R.literal("set_max_thinking_tokens"),max_thinking_tokens:R.number().nullable()}).describe("Sets the maximum number of thinking tokens for extended thinking.")),E05=I6(()=>R.object({subtype:R.literal("mcp_status")}).describe("Requests the current status of all MCP server connections.")),M0$=I6(()=>R.object({mcpServers:R.array(LQ8())}).describe("Response containing the current status of all MCP server connections.")),L05=I6(()=>R.object({subtype:R.literal("get_context_usage")}).describe("Requests a breakdown of current context window usage by category.")),h05=I6(()=>R.object({name:R.string(),tokens:R.number(),color:R.string(),isDeferred:R.boolean().optional()})),S05=I6(()=>R.object({color:R.string(),isFilled:R.boolean(),categoryName:R.string(),tokens:R.number(),percentage:R.number(),squareFullness:R.number()})),J0$=I6(()=>R.object({categories:R.array(h05()),totalTokens:R.number(),maxTokens:R.number(),rawMaxTokens:R.number(),percentage:R.number(),gridRows:R.array(R.array(S05())),model:R.string(),memoryFiles:R.array(R.object({path:R.string(),type:R.string(),tokens:R.number()})),mcpTools:R.array(R.object({name:R.string(),serverName:R.string(),tokens:R.number(),isLoaded:R.boolean().optional()})),deferredBuiltinTools:R.array(R.object({name:R.string(),tokens:R.number(),isLoaded:R.boolean()})).optional(),systemTools:R.array(R.object({name:R.string(),tokens:R.number()})).optional(),systemPromptSections:R.array(R.object({name:R.string(),tokens:R.number()})).optional(),agents:R.array(R.object({agentType:R.string(),source:R.string(),tokens:R.number()})),slashCommands:R.object({totalCommands:R.number(),includedCommands:R.number(),tokens:R.number()}).optional(),skills:R.object({totalSkills:R.number(),includedSkills:R.number(),tokens:R.number(),skillFrontmatter:R.array(R.object({name:R.string(),source:R.string(),tokens:R.number()}))}).optional(),autoCompactThreshold:R.number().optional(),isAutoCompactEnabled:R.boolean(),messageBreakdown:R.object({toolCallTokens:R.number(),toolResultTokens:R.number(),attachmentTokens:R.number(),assistantMessageTokens:R.number(),userMessageTokens:R.number(),toolCallsByType:R.array(R.object({name:R.string(),callTokens:R.number(),resultTokens:R.number()})),attachmentsByType:R.array(R.object({name:R.string(),tokens:R.number()}))}).optional(),apiUsage:R.object({input_tokens:R.number(),output_tokens:R.number(),cache_creation_input_tokens:R.number(),cache_read_input_tokens:R.number()}).nullable()}).describe("Breakdown of current context window usage by category (system prompt, tools, messages, etc.).")),C05=I6(()=>R.object({subtype:R.literal("rewind_files"),user_message_id:R.string(),dry_run:R.boolean().optional()}).describe("Rewinds file changes made since a specific user message.")),X0$=I6(()=>R.object({canRewind:R.boolean(),error:R.string().optional(),filesChanged:R.array(R.string()).optional(),insertions:R.number().optional(),deletions:R.number().optional()}).describe("Result of a rewindFiles operation.")),b05=I6(()=>R.object({subtype:R.literal("cancel_async_message"),message_uuid:R.string()}).describe("Drops a pending async user message from the command queue by uuid. No-op if already dequeued for execution.")),P0$=I6(()=>R.object({cancelled:R.boolean()}).describe("Result of a cancel_async_message operation. cancelled=false means the message was not in the queue (already dequeued or never enqueued).")),I05=I6(()=>R.object({subtype:R.literal("seed_read_state"),path:R.string(),mtime:R.number()}).describe("Seeds the readFileState cache with a path+mtime entry. Use when a prior Read was removed from context (e.g. by snip) so Edit validation would fail despite the client having observed the Read. The mtime lets the CLI detect if the file changed since the seeded Read — same staleness check as the normal path.")),x05=I6(()=>R.object({subtype:R.literal("hook_callback"),callback_id:R.string(),input:wQK(),tool_use_id:R.string().optional()}).describe("Delivers a hook callback with its input data.")),u05=I6(()=>R.object({subtype:R.literal("mcp_message"),server_name:R.string(),message:G05()}).describe("Sends a JSON-RPC message to a specific MCP server.")),p05=I6(()=>R.object({subtype:R.literal("mcp_set_servers"),servers:R.record(R.string(),So6())}).describe("Replaces the set of dynamically managed MCP servers.")),f0$=I6(()=>R.object({added:R.array(R.string()),removed:R.array(R.string()),errors:R.record(R.string(),R.string())}).describe("Result of replacing the set of dynamically managed MCP servers.")),m05=I6(()=>R.object({subtype:R.literal("reload_plugins")}).describe("Reloads plugins from disk and returns the refreshed session components.")),W0$=I6(()=>R.object({commands:R.array(hQ8()),agents:R.array(SQ8()),plugins:R.array(R.object({name:R.string(),path:R.string(),source:R.string().optional()})),mcpServers:R.array(LQ8()),error_count:R.number()}).describe("Refreshed commands, agents, plugins, and MCP server status after reload.")),g05=I6(()=>R.object({subtype:R.literal("mcp_reconnect"),serverName:R.string()}).describe("Reconnects a disconnected or failed MCP server.")),B05=I6(()=>R.object({subtype:R.literal("mcp_toggle"),serverName:R.string(),enabled:R.boolean()}).describe("Enables or disables an MCP server.")),c05=I6(()=>R.object({subtype:R.literal("stop_task"),task_id:R.string()}).describe("Stops a running task.")),F05=I6(()=>R.object({subtype:R.literal("apply_flag_settings"),settings:R.record(R.string(),R.unknown())}).describe("Merges the provided settings into the flag settings layer, updating the active configuration.")),U05=I6(()=>R.object({subtype:R.literal("get_settings")}).describe("Returns the effective merged settings and the raw per-source settings.")),D0$=I6(()=>R.object({effective:R.record(R.string(),R.unknown()),sources:R.array(R.object({source:R.enum(["userSettings","projectSettings","localSettings","flagSettings","policySettings"]),settings:R.record(R.string(),R.unknown())})).describe("Ordered low-to-high priority — later entries override earlier ones."),applied:R.object({model:R.string(),effort:R.enum(["low","medium","high","max"]).nullable()}).optional().describe("Runtime-resolved values after env overrides, session state, and model-specific defaults are applied. Unlike `effective` (disk merge), these reflect what will actually be sent to the API.")}).describe("Effective merged settings plus raw per-source settings in merge order.")),d05=I6(()=>R.object({subtype:R.literal("elicitation"),mcp_server_name:R.string(),message:R.string(),mode:R.enum(["form","url"]).optional(),url:R.string().optional(),elicitation_id:R.string().optional(),requested_schema:R.record(R.string(),R.unknown()).optional()}).describe("Requests the SDK consumer to handle an MCP elicitation (user input request).")),gF_=I6(()=>R.object({action:R.enum(["accept","decline","cancel"]),content:R.record(R.string(),R.unknown()).optional()}).describe("Response from the SDK consumer for an elicitation request.")),Q05=I6(()=>R.union([k05(),N05(),T05(),V05(),y05(),R05(),E05(),L05(),x05(),u05(),C05(),b05(),I05(),p05(),m05(),g05(),B05(),c05(),F05(),U05(),d05()])),pOq=I6(()=>R.object({type:R.literal("control_request"),request_id:R.string(),request:Q05()})),l05=I6(()=>R.object({subtype:R.literal("success"),request_id:R.string(),response:R.record(R.string(),R.unknown()).optional()})),i05=I6(()=>R.object({subtype:R.literal("error"),request_id:R.string(),error:R.string(),pending_permission_requests:R.array(R.lazy(()=>pOq())).optional()})),BF_=I6(()=>R.object({type:R.literal("control_response"),response:R.union([l05(),i05()])})),n05=I6(()=>R.object({type:R.literal("control_cancel_request"),request_id:R.string()}).describe("Cancels a currently open control request.")),cF_=I6(()=>R.object({type:R.literal("keep_alive")}).describe("Keep-alive message to maintain WebSocket connection.")),r05=I6(()=>R.object({type:R.literal("update_environment_variables"),variables:R.record(R.string(),R.string())}).describe("Updates environment variables at runtime.")),Z0$=I6(()=>R.union([ZQK(),PQK(),fQK(),DQK(),BF_(),pOq(),n05(),cF_()])),G0$=I6(()=>R.union([bQ8(),pOq(),BF_(),cF_(),r05()]))});function H$6(q,K,_,A){let z={type:"permissionPromptTool",permissionPromptToolName:K.name,toolResult:q};if(q.behavior==="allow"){let Y=q.updatedPermissions;if(Y)A.setAppState(($)=>({...$,toolPermissionContext:$P($.toolPermissionContext,Y)})),Bk(Y);let O=Object.keys(q.updatedInput).length>0?q.updatedInput:_;return{...q,updatedInput:O,decisionReason:z}}else if(q.behavior==="deny"&&q.interrupt)V(`SDK permission prompt deny+interrupt: tool=${K.name} message=${q.message}`),A.abortController.abort();return{...q,decisionReason:z}}var R0$,UF_,a05,o05,sV6;var mOq=h(()=>{zK();z8();X$();Fo6();R0$=I6(()=>h_.object({tool_name:h_.string().describe("The name of the tool requesting permission"),input:h_.record(h_.string(),h_.unknown()).describe("The input for the tool"),tool_use_id:h_.string().optional().describe("The unique tool use request ID")})),UF_=I6(()=>h_.enum(["user_temporary","user_permanent","user_reject"]).optional().catch(void 0)),a05=I6(()=>h_.object({behavior:h_.literal("allow"),updatedInput:h_.record(h_.string(),h_.unknown()),updatedPermissions:h_.array(NA6()).optional().catch((q)=>{V(`Malformed updatedPermissions from SDK host ignored: ${q.error.issues[0]?.message??"unknown"}`,{level:"warn"});return}),toolUseID:h_.string().optional(),decisionClassification:UF_()})),o05=I6(()=>h_.object({behavior:h_.literal("deny"),message:h_.string(),interrupt:h_.boolean().optional(),toolUseID:h_.string().optional(),decisionClassification:UF_()})),sV6=I6(()=>h_.union([a05(),o05()]))});function t05(q){return q.replace(s05,(K)=>K==="\u2028"?"\\u2028":"\\u2029")}function hY8(q){return t05(p6(q))}var s05;var gOq=h(()=>{Q8();s05=/\u2028|\u2029/g});import{randomUUID as BOq}from"crypto";function qN5(q){if(!q)return;if(q.type==="classifier")return q.reason;switch(q.type){case"rule":case"mode":case"subcommandResults":case"permissionPromptTool":return;case"hook":case"asyncAgent":case"sandboxOverride":case"workingDir":case"safetyCheck":case"other":return q.reason}}function KN5(q,K,_,A){let z;try{z=q.getActivityDescription?.(K)??q.getToolUseSummary?.(K)??q.userFacingName(K)}catch{z=q.name}return{tool_name:q.name,action_description:z,tool_use_id:_,request_id:A,input:K}}class tV6{input;replayUserMessages;structuredInput;pendingRequests=new Map;restoredWorkerState=Promise.resolve(null);inputClosed=!1;unexpectedResponseCallback;resolvedToolUseIds=new Set;prependedLines=[];onControlRequestSent;onControlRequestResolved;outbound=new Pk6;constructor(q,K){this.input=q;this.replayUserMessages=K;this.input=q,this.structuredInput=this.read()}trackResolvedToolUseId(q){if(q.request.subtype==="can_use_tool"){if(this.resolvedToolUseIds.add(q.request.tool_use_id),this.resolvedToolUseIds.size>_N5){let K=this.resolvedToolUseIds.values().next().value;if(K!==void 0)this.resolvedToolUseIds.delete(K)}}}flushInternalEvents(){return Promise.resolve()}get internalEventsPending(){return 0}prependUserMessage(q){this.prependedLines.push(p6({type:"user",session_id:"",message:{role:"user",content:q},parent_tool_use_id:null})+`
|
|
7632
7632
|
`)}async*read(){let q="",K=async function*(){for(;;){if(this.prependedLines.length>0)q=this.prependedLines.join("")+q,this.prependedLines=[];let _=q.indexOf(`
|
|
7633
7633
|
`);if(_===-1)break;let A=q.slice(0,_);q=q.slice(_+1);let z=await this.processLine(A);if(z)g8("info","cli_stdin_message_parsed",{type:z.type}),yield z}}.bind(this);yield*K();for await(let _ of this.input)q+=_,yield*K();if(q){let _=await this.processLine(q);if(_)yield _}this.inputClosed=!0;for(let _ of this.pendingRequests.values())_.reject(Error("Tool permission stream closed before response received"))}getPendingPermissionRequests(){return Array.from(this.pendingRequests.values()).map((q)=>q.request).filter((q)=>q.request.subtype==="can_use_tool")}setUnexpectedResponseCallback(q){this.unexpectedResponseCallback=q}injectControlResponse(q){let K=q.response?.request_id;if(!K)return;let _=this.pendingRequests.get(K);if(!_)return;if(this.trackResolvedToolUseId(_.request),this.pendingRequests.delete(K),this.write({type:"control_cancel_request",request_id:K}),q.response.subtype==="error")_.reject(Error(q.response.error));else{let A=q.response.response;if(_.schema)try{_.resolve(_.schema.parse(A))}catch(z){_.reject(z)}else _.resolve({})}}setOnControlRequestSent(q){this.onControlRequestSent=q}setOnControlRequestResolved(q){this.onControlRequestResolved=q}async processLine(q){if(!q)return;try{let K=d58(p8(q));if(K.type==="keep_alive")return;if(K.type==="update_environment_variables"){let _=Object.keys(K.variables);for(let[A,z]of Object.entries(K.variables))process.env[A]=z;V(`[structuredIO] applied update_environment_variables: ${_.join(", ")}`);return}if(K.type==="control_response"){let _="uuid"in K&&typeof K.uuid==="string"?K.uuid:void 0;if(_)Sy(_,"completed");let A=this.pendingRequests.get(K.response.request_id);if(!A){let O=(K.response.subtype==="success"?K.response.response:void 0)?.toolUseID;if(typeof O==="string"&&this.resolvedToolUseIds.has(O)){V(`Ignoring duplicate control_response for already-resolved toolUseID=${O} request_id=${K.response.request_id}`);return}if(this.unexpectedResponseCallback)await this.unexpectedResponseCallback(K);return}if(this.trackResolvedToolUseId(A.request),this.pendingRequests.delete(K.response.request_id),A.request.request.subtype==="can_use_tool"&&this.onControlRequestResolved)this.onControlRequestResolved(K.response.request_id);if(K.response.subtype==="error"){A.reject(Error(K.response.error));return}let z=K.response.response;if(A.schema)try{A.resolve(A.schema.parse(z))}catch(Y){A.reject(Y)}else A.resolve({});if(this.replayUserMessages)return K;return}if(K.type!=="user"&&K.type!=="control_request"&&K.type!=="assistant"&&K.type!=="system"){V(`Ignoring unknown message type: ${K.type}`,{level:"warn"});return}if(K.type==="control_request"){if(!K.request)dF_("Error: Missing request on control_request");return K}if(K.type==="assistant"||K.type==="system")return K;if(K.message.role!=="user")dF_(`Error: Expected message role 'user', got '${K.message.role}'`);return K}catch(K){console.error(`Error parsing streaming input line: ${q}: ${K}`),process.exit(1)}}async write(q){D_(hY8(q)+`
|
|
7634
|
-
`)}async sendRequest(q,K,_,A=BOq()){let z={type:"control_request",request_id:A,request:q};if(this.inputClosed)throw Error("Stream closed");if(_?.aborted)throw Error("Request aborted");if(this.outbound.enqueue(z),q.subtype==="can_use_tool"&&this.onControlRequestSent)this.onControlRequestSent(z);let Y=()=>{this.outbound.enqueue({type:"control_cancel_request",request_id:A});let O=this.pendingRequests.get(A);if(O)this.trackResolvedToolUseId(O.request),O.reject(new G5)};if(_)_.addEventListener("abort",Y,{once:!0});try{return await new Promise((O,$)=>{this.pendingRequests.set(A,{request:{type:"control_request",request_id:A,request:q},resolve:(w)=>{O(w)},reject:$,schema:K})})}finally{if(_)_.removeEventListener("abort",Y);this.pendingRequests.delete(A)}}createCanUseTool(q){return async(K,_,A,z,Y,O)=>{let $=O??await W1(K,_,A,z,Y);if($.behavior==="allow"||$.behavior==="deny")return $;let w=new AbortController,H=A.abortController.signal,j=()=>w.abort();H.addEventListener("abort",j,{once:!0});try{let M=AN5(K.name,Y,_,A,$.suggestions).then((f)=>({source:"hook",decision:f})),J=BOq();q?.(KN5(K,_,Y,J));let X=this.sendRequest({subtype:"can_use_tool",tool_name:K.name,input:_,permission_suggestions:$.suggestions,blocked_path:$.blockedPath,decision_reason:qN5($.decisionReason),tool_use_id:Y,agent_id:A.agentId},sV6(),w.signal,J).then((f)=>({source:"sdk",result:f})),P=await Promise.race([M,X]);if(P.source==="hook"){if(P.decision)return X.catch(()=>{}),w.abort(),P.decision;let f=await X;return H$6(f.result,K,_,A)}return H$6(P.result,K,_,A)}catch(M){return H$6({behavior:"deny",message:`Tool permission request failed: ${M}`,toolUseID:Y},K,_,A)}finally{if(this.getPendingPermissionRequests().length===0)N36("running");H.removeEventListener("abort",j)}}}createHookCallback(q,K){return{type:"callback",timeout:K,callback:async(_,A,z)=>{try{return await this.sendRequest({subtype:"hook_callback",callback_id:q,input:_,tool_use_id:A||void 0},Z36(),z)}catch(Y){return console.error(`Error in hook callback ${q}:`,Y),{}}}}}async handleElicitation(q,K,_,A,z,Y,O){try{return await this.sendRequest({subtype:"elicitation",mcp_server_name:q,message:K,mode:z,url:Y,elicitation_id:O,requested_schema:_},gF_(),A)}catch{return{action:"cancel"}}}createSandboxAskCallback(){return async(q)=>{try{return(await this.sendRequest({subtype:"can_use_tool",tool_name:e05,input:{host:q.host},tool_use_id:BOq(),description:`Allow network connection to ${q.host}?`},sV6())).behavior==="allow"}catch{return!1}}}async sendMcpMessage(q,K){return(await this.sendRequest({subtype:"mcp_message",server_name:q,message:K},R.object({mcp_response:R.any()}))).mcp_response}}function dF_(q){console.error(q),process.exit(1)}async function AN5(q,K,_,A,z){let O=A.getAppState().toolPermissionContext.mode,$=Aa(q,K,_,A,O,z,A.abortController.signal);for await(let w of $)if(w.permissionRequestResult&&(w.permissionRequestResult.behavior==="allow"||w.permissionRequestResult.behavior==="deny")){let H=w.permissionRequestResult;if(H.behavior==="allow"){let j=H.updatedInput||_,M=H.updatedPermissions??[];if(M.length>0){Bk(M);let J=A.getAppState(),X=$P(J.toolPermissionContext,M);A.setAppState((P)=>{if(P.toolPermissionContext===X)return P;return{...P,toolPermissionContext:X}})}return{behavior:"allow",updatedInput:j,userModified:!1,decisionReason:{type:"hook",hookName:"PermissionRequest"}}}else return{behavior:"deny",message:H.message||"Permission denied by PermissionRequest hook",decisionReason:{type:"hook",hookName:"PermissionRequest"}}}return}var e05="SandboxNetworkAccess",_N5=1000;var SY8=h(()=>{FF_();j5q();z8();Xz();N8();mOq();g3();Q8();zK();zY();X$();$V6();Q8();Bt8();gOq()});function QF_(q,K,_){let A=CY8.useRef(!1);CY8.useEffect(()=>{if(!Fz()||A.current)return;if(A.current=!0,q)Bt6(q,_)},[K,q,_])}var CY8;var lF_=h(()=>{CP();CY8=q6(q8(),1)});function cOq(q){let K=iF_.c(22),{hostPattern:_,onUserResponse:A}=q,{host:z}=_,Y;if(K[0]!==A)Y=function(N){q:switch(N){case"yes":{A({allow:!0,persistToSettings:!1});break q}case"yes-dont-ask-again":{A({allow:!0,persistToSettings:!0});break q}case"no":A({allow:!1,persistToSettings:!1})}},K[0]=A,K[1]=Y;else Y=K[1];let O=Y,$;if(K[2]===Symbol.for("react.memo_cache_sentinel"))$=bl(),K[2]=$;else $=K[2];let w=$,H;if(K[3]===Symbol.for("react.memo_cache_sentinel"))H={label:"Yes",value:"yes"},K[3]=H;else H=K[3];let j;if(K[4]!==z)j=!w?[{label:y(T,{children:["Yes, and don't ask again for ",W(T,{bold:!0,children:z})]}),value:"yes-dont-ask-again"}]:[],K[4]=z,K[5]=j;else j=K[5];let M;if(K[6]===Symbol.for("react.memo_cache_sentinel"))M={label:y(T,{children:["No, and tell puku what to do differently ",W(T,{bold:!0,children:"(esc)"})]}),value:"no"},K[6]=M;else M=K[6];let J;if(K[7]!==j)J=[H,...j,M],K[7]=j,K[8]=J;else J=K[8];let X=J,P;if(K[9]===Symbol.for("react.memo_cache_sentinel"))P=W(T,{dimColor:!0,children:"Host:"}),K[9]=P;else P=K[9];let f;if(K[10]!==z)f=y(x,{children:[P,y(T,{children:[" ",z]})]}),K[10]=z,K[11]=f;else f=K[11];let D;if(K[12]===Symbol.for("react.memo_cache_sentinel"))D=W(x,{marginTop:1,children:W(T,{children:"Do you want to allow this connection?"})}),K[12]=D;else D=K[12];let Z;if(K[13]!==A)Z=()=>{A({allow:!1,persistToSettings:!1})},K[13]=A,K[14]=Z;else Z=K[14];let G;if(K[15]!==O||K[16]!==X||K[17]!==Z)G=W(x,{children:W(l8,{options:X,onChange:O,onCancel:Z})}),K[15]=O,K[16]=X,K[17]=Z,K[18]=G;else G=K[18];let v;if(K[19]!==G||K[20]!==f)v=W(I5,{title:"Network request outside of sandbox",children:y(x,{flexDirection:"column",paddingX:2,paddingY:1,children:[f,D,G]})}),K[19]=G,K[20]=f,K[21]=v;else v=K[21];return v}var iF_;var nF_=h(()=>{n6();Tz();b4();EH();r();iF_=q6(K8(),1)});function zN5(q){let K=q.getHours()%12||12,_=String(q.getMinutes()).padStart(2,"0"),A=String(q.getSeconds()).padStart(2,"0"),z=q.getHours()<12?"am":"pm";return`${K}:${_}:${A}${z}`}function FOq(){let q=rF_.c(15),K;if(q[0]===Symbol.for("react.memo_cache_sentinel"))K=[],q[0]=K;else K=q[0];let[_,A]=eV6.useState(K),[z,Y]=eV6.useState(0),O,$;if(q[1]===Symbol.for("react.memo_cache_sentinel"))O=()=>{if(!Cq.isSandboxingEnabled()||_q()==="linux")return;let P=Cq.getSandboxViolationStore();if(!P||typeof P.subscribe!=="function")return;return P.subscribe((D)=>{A(D.slice(-10)),Y(P.getTotalCount())})},$=[],q[1]=O,q[2]=$;else O=q[1],$=q[2];if(eV6.useEffect(O,$),!Cq.isSandboxingEnabled()||_q()==="linux")return null;if(z===0)return null;let w=z===1?"operation":"operations",H;if(q[3]!==w||q[4]!==z)H=W(x,{marginLeft:0,children:y(T,{color:"permission",children:["⧈ Sandbox blocked ",z," total"," ",w]})}),q[3]=w,q[4]=z,q[5]=H;else H=q[5];let j;if(q[6]!==_)j=_.map(YN5),q[6]=_,q[7]=j;else j=q[7];let M=Math.min(10,_.length),J;if(q[8]!==M||q[9]!==z)J=W(x,{paddingLeft:2,children:y(T,{dimColor:!0,children:["… showing last ",M," of ",z]})}),q[8]=M,q[9]=z,q[10]=J;else J=q[10];let X;if(q[11]!==H||q[12]!==j||q[13]!==J)X=y(x,{flexDirection:"column",marginTop:1,children:[H,j,J]}),q[11]=H,q[12]=j,q[13]=J,q[14]=X;else X=q[14];return X}function YN5(q,K){return W(x,{paddingLeft:2,children:y(T,{dimColor:!0,children:[zN5(q.timestamp),q.command?` ${q.command}:`:""," ",q.line]})},`${q.timestamp.getTime()}-${K}`)}var rF_,eV6;var aF_=h(()=>{n6();Tz();s_();r();rF_=q6(K8(),1),eV6=q6(q8(),1)});function tF_(q){let K=oF_.c(4),{mcpClients:_}=q,A=_===void 0?ON5:_,{addNotification:z}=o_(),Y,O;if(K[0]!==z||K[1]!==A)Y=()=>{try{if(E7())return;let $=A.filter(jN5),w=A.filter(HN5),H=A.filter(wN5),j=A.filter($N5);if($.length===0&&w.length===0&&H.length===0&&j.length===0)return;if($.length>0)z({key:"mcp-failed",jsx:y(Y8,{children:[y(T,{color:"error",children:[$.length," MCP"," ",$.length===1?"server":"servers"," failed"]}),W(T,{dimColor:!0,children:" · /mcp"})]}),priority:"medium"});if(w.length>0)z({key:"mcp-claudeai-failed",jsx:y(Y8,{children:[y(T,{color:"error",children:[w.length," puku.sh"," ",w.length===1?"connector":"connectors"," ","unavailable"]}),W(T,{dimColor:!0,children:" · /mcp"})]}),priority:"medium"});if(H.length>0)z({key:"mcp-needs-auth",jsx:y(Y8,{children:[y(T,{color:"warning",children:[H.length," MCP"," ",H.length===1?"server needs":"servers need"," ","auth"]}),W(T,{dimColor:!0,children:" · /mcp"})]}),priority:"medium"});if(j.length>0)z({key:"mcp-claudeai-needs-auth",jsx:y(Y8,{children:[y(T,{color:"warning",children:[j.length," puku.sh"," ",j.length===1?"connector needs":"connectors need"," ","auth"]}),W(T,{dimColor:!0,children:" · /mcp"})]}),priority:"medium"})}catch($){A6($)}},O=[z,A],K[0]=z,K[1]=A,K[2]=Y,K[3]=O;else Y=K[2],O=K[3];sF_.useEffect(Y,O)}function $N5(q){return q.type==="needs-auth"&&q.config.type==="claudeai-proxy"&&pU8(q.name)}function wN5(q){return q.type==="needs-auth"&&q.config.type!=="claudeai-proxy"}function HN5(q){return q.type==="failed"&&q.config.type==="claudeai-proxy"&&pU8(q.name)}function jN5(q){return q.type==="failed"&&q.config.type!=="sse-ide"&&q.config.type!=="ws-ide"&&q.config.type!=="claudeai-proxy"}var oF_,sF_,ON5;var eF_=h(()=>{y8();cz();G8();n6();T46();r();oF_=q6(K8(),1),sF_=q6(q8(),1),ON5=[]});function qU_(){let{addNotification:q}=o_(),K=X8((Y)=>Y.toolPermissionContext.mode),_=X8((Y)=>Y.toolPermissionContext.isAutoModeAvailable),A=qy6.useRef(!1),z=qy6.useRef(K);qy6.useEffect(()=>{let Y=z.current;if(z.current=K,E7())return;if(A.current)return;if(!(K==="default"&&Y!=="default"&&Y!=="auto"&&!_&&nL()))return;let $=mb();if(!$)return;A.current=!0,q({key:"auto-mode-unavailable",text:qc($),color:"warning",priority:"medium"})},[K,_,q])}var qy6;var KU_=h(()=>{cz();G8();dq();z1();Vq();qy6=q6(q8(),1)});function AU_(){let q=_U_.c(10),{addNotification:K}=o_(),_=sq(),[A,z]=j$6.useState(XN5),Y;if(q[0]===Symbol.for("react.memo_cache_sentinel"))Y=new Set,q[0]=Y;else Y=q[0];let O=j$6.useRef(Y),$;if(q[1]!==K||q[2]!==_)$=(X,P)=>{let f=`${X}:${P}`;if(O.current.has(f))return;O.current.add(f),V(`LSP error: ${X} - ${P}`),_((Z)=>{let G=new Set(Z.plugins.errors.map(JN5)),v=`generic-error:${X}:${P}`;if(G.has(v))return Z;return{...Z,plugins:{...Z.plugins,errors:[...Z.plugins.errors,{type:"generic-error",source:X,error:P}]}}});let D=X.startsWith("plugin:")?X.split(":")[1]??X:X;K({key:`lsp-error-${X}`,jsx:y(Y8,{children:[y(T,{color:"error",children:["LSP for ",D," failed"]}),W(T,{dimColor:!0,children:" · /plugin for details"})]}),priority:"medium",timeoutMs:8000})},q[1]=K,q[2]=_,q[3]=$;else $=q[3];let w=$,H;if(q[4]!==w)H=()=>{if(E7())return;if(nF())return;let X=I56();if(X.status==="failed"){w("lsp-manager",X.error.message),z(!1);return}if(X.status==="pending"||X.status==="not-started")return;let P=Mb();if(P){let f=P.getAllServers();for(let[D,Z]of f)if(Z.state==="error"&&Z.lastError)w(D,Z.lastError.message)}},q[4]=w,q[5]=H;else H=q[5];let j=H;jH(j,A?MN5:null);let M,J;if(q[6]!==j||q[7]!==A)M=()=>{if(E7()||!A)return;j()},J=[j,A],q[6]=j,q[7]=A,q[8]=M,q[9]=J;else M=q[8],J=q[9];j$6.useEffect(M,J)}function JN5(q){if(q.type==="generic-error")return`generic-error:${q.source}:${q.error}`;return`${q.type}:${q.source}`}function XN5(){return u6("true")}var _U_,j$6,MN5=5000;var zU_=h(()=>{iX();G8();cz();n6();bR();dq();z8();x8();r();_U_=q6(K8(),1),j$6=q6(q8(),1)});async function OU_(q){if(!q||!q.trim())return V("[binaryCheck] Empty command provided, returning false"),!1;let K=q.trim(),_=YU_.get(K);if(_!==void 0)return V(`[binaryCheck] Cache hit for '${K}': ${_}`),_;let A=!1;if(await l1(K).catch(()=>null))A=!0;return YU_.set(K,A),V(`[binaryCheck] Binary '${K}' ${A?"found":"not found"}`),A}var YU_;var $U_=h(()=>{z8();WZ();YU_=new Map});import{extname as PN5}from"path";function WN5(q){return bT.has(q.toLowerCase())}function DN5(q){if(!q)return null;if(typeof q==="string")return V("[lspRecommendation] Skipping string path lspServers (not readable from marketplace)"),null;if(Array.isArray(q)){for(let K of q){if(typeof K==="string")continue;let _=HU_(K);if(_)return _}return null}return HU_(q)}function wU_(q){return typeof q==="object"&&q!==null}function HU_(q){let K=new Set,_=null;for(let[A,z]of Object.entries(q)){if(!wU_(z))continue;if(!_&&typeof z.command==="string")_=z.command;let Y=z.extensionToLanguage;if(wU_(Y))for(let O of Object.keys(Y))K.add(O.toLowerCase())}if(!_||K.size===0)return null;return{extensions:K,command:_}}async function ZN5(){let q=new Map;try{let K=await FA();for(let _ of Object.keys(K))try{let A=await wM(_),z=WN5(_);for(let Y of A.plugins){if(!Y.lspServers)continue;let O=DN5(Y.lspServers);if(!O)continue;let $=`${Y.name}@${_}`;q.set($,{entry:Y,marketplaceName:_,extensions:O.extensions,command:O.command,isOfficial:z})}}catch(A){V(`[lspRecommendation] Failed to load marketplace ${_}: ${A}`)}}catch(K){V(`[lspRecommendation] Failed to load marketplaces config: ${K}`)}return q}async function jU_(q){if(GN5())return V("[lspRecommendation] Recommendations are disabled"),[];let K=PN5(q).toLowerCase();if(!K)return V("[lspRecommendation] No file extension found"),[];V(`[lspRecommendation] Looking for LSP plugins for ${K}`);let _=await ZN5(),z=j8().lspRecommendationNeverPlugins??[],Y=[];for(let[$,w]of _){if(!w.extensions.has(K))continue;if(z.includes($)){V(`[lspRecommendation] Skipping ${$} (in never suggest list)`);continue}if(vv($)){V(`[lspRecommendation] Skipping ${$} (already installed)`);continue}Y.push({info:w,pluginId:$})}let O=[];for(let{info:$,pluginId:w}of Y)if(await OU_($.command))O.push({info:$,pluginId:w}),V(`[lspRecommendation] Binary '${$.command}' found for ${w}`);else V(`[lspRecommendation] Skipping ${w} (binary '${$.command}' not found)`);return O.sort(($,w)=>{if($.info.isOfficial&&!w.info.isOfficial)return-1;if(!$.info.isOfficial&&w.info.isOfficial)return 1;return 0}),O.map(({info:$,pluginId:w})=>({pluginId:w,pluginName:$.entry.name,marketplaceName:$.marketplaceName,description:$.entry.description,isOfficial:$.isOfficial,extensions:Array.from($.extensions),command:$.command}))}function MU_(q){B8((K)=>{let _=K.lspRecommendationNeverPlugins??[];if(_.includes(q))return K;return{...K,lspRecommendationNeverPlugins:[..._,q]}}),V(`[lspRecommendation] Added ${q} to never suggest`)}function JU_(){B8((q)=>{let K=(q.lspRecommendationIgnoredCount??0)+1;return{...q,lspRecommendationIgnoredCount:K}}),V("[lspRecommendation] Incremented ignored count")}function GN5(){let q=j8();return q.lspRecommendationDisabled===!0||(q.lspRecommendationIgnoredCount??0)>=fN5}var fN5=5;var XU_=h(()=>{$U_();Wq();z8();Lw();PO();SM()});function IY8(){let q=PU_.c(6),[K,_]=bY8.useState(null),A=bY8.useRef(!1),z;if(q[0]!==K)z=(H)=>{if(E7())return;if(K)return;if(A.current)return;A.current=!0,H().then((j)=>{if(j)_(j)}).catch(A6).finally(()=>{A.current=!1})},q[0]=K,q[1]=z;else z=q[1];let Y=z,O;if(q[2]===Symbol.for("react.memo_cache_sentinel"))O=()=>_(null),q[2]=O;else O=q[2];let $=O,w;if(q[3]!==K||q[4]!==Y)w={recommendation:K,clearRecommendation:$,tryResolve:Y},q[3]=K,q[4]=Y,q[5]=w;else w=q[5];return w}async function xY8(q,K,_,A,z){try{let Y=await ZJ(q);if(!Y)throw Error(`Plugin ${q} not found in marketplace`);await z(Y),A({key:`${_}-installed`,jsx:y(T,{color:"success",children:[s6.tick," ",K," installed · restart to apply"]}),priority:"immediate",timeoutMs:5000})}catch(Y){A6(Y),A({key:`${_}-install-failed`,jsx:y(T,{color:"error",children:["Failed to install ",K]}),priority:"immediate",timeoutMs:5000})}}var PU_,bY8;var UOq=h(()=>{mK();G8();n6();y8();PO();r();PU_=q6(K8(),1),bY8=q6(q8(),1)});import{extname as vN5,join as TN5}from"path";function WU_(){let q=fU_.c(12),K=X8(VN5),{addNotification:_}=o_(),A;if(q[0]===Symbol.for("react.memo_cache_sentinel"))A=new Set,q[0]=A;else A=q[0];let z=uY8.useRef(A),{recommendation:Y,clearRecommendation:O,tryResolve:$}=IY8(),w,H;if(q[1]!==K||q[2]!==$)w=()=>{$(async()=>{if(_98())return null;let X=[];for(let P of K)if(!z.current.has(P))z.current.add(P),X.push(P);for(let P of X)try{let D=(await jU_(P))[0];if(D)return V(`[useLspPluginRecommendation] Found match: ${D.pluginName} for ${P}`),A98(!0),{pluginId:D.pluginId,pluginName:D.pluginName,pluginDescription:D.description,fileExtension:vN5(P),shownAt:Date.now()}}catch(f){A6(f)}return null})},H=[K,$],q[1]=K,q[2]=$,q[3]=w,q[4]=H;else w=q[3],H=q[4];uY8.useEffect(w,H);let j;if(q[5]!==_||q[6]!==O||q[7]!==Y)j=(X)=>{if(!Y)return;let{pluginId:P,pluginName:f,shownAt:D}=Y;V(`[useLspPluginRecommendation] User response: ${X} for ${f}`);q:switch(X){case"yes":{xY8(P,f,"lsp-plugin",_,async(Z)=>{V(`[useLspPluginRecommendation] Installing plugin: ${P}`);let G=typeof Z.entry.source==="string"?TN5(Z.marketplaceInstallLocation,Z.entry.source):void 0;await ek6(P,Z.entry,"user",void 0,G);let v=Oq("userSettings");Sq("userSettings",{enabledPlugins:{...v?.enabledPlugins,[P]:!0}}),V(`[useLspPluginRecommendation] Plugin installed: ${P}`)});break q}case"no":{let Z=Date.now()-D;if(Z>=kN5)V(`[useLspPluginRecommendation] Timeout detected (${Z}ms), incrementing ignored count`),JU_();break q}case"never":{MU_(P);break q}case"disable":B8(NN5)}O()},q[5]=_,q[6]=O,q[7]=Y,q[8]=j;else j=q[8];let M=j,J;if(q[9]!==M||q[10]!==Y)J={recommendation:Y,handleResponse:M},q[9]=M,q[10]=Y,q[11]=J;else J=q[11];return J}function NN5(q){if(q.lspRecommendationDisabled)return q;return{...q,lspRecommendationDisabled:!0}}function VN5(q){return q.fileHistory.trackedFiles}var fU_,uY8,kN5=28000;var DU_=h(()=>{G8();cz();dq();Wq();z8();y8();XU_();oB();Vq();UOq();fU_=q6(K8(),1),uY8=q6(q8(),1)});function ZU_({pluginName:q,pluginDescription:K,fileExtension:_,onResponse:A}){let z=pY8.useRef(A);z.current=A,pY8.useEffect(()=>{let $=setTimeout((w)=>w.current("no"),yN5,z);return()=>clearTimeout($)},[]);function Y($){switch($){case"yes":A("yes");break;case"no":A("no");break;case"never":A("never");break;case"disable":A("disable");break}}return W(I5,{title:"LSP Plugin Recommendation",children:y(x,{flexDirection:"column",paddingX:2,paddingY:1,children:[W(x,{marginBottom:1,children:W(T,{dimColor:!0,children:"LSP provides code intelligence like go-to-definition and error checking"})}),y(x,{children:[W(T,{dimColor:!0,children:"Plugin:"}),y(T,{children:[" ",q]})]}),K&&W(x,{children:W(T,{dimColor:!0,children:K})}),y(x,{children:[W(T,{dimColor:!0,children:"Triggered by:"}),y(T,{children:[" ",_," files"]})]}),W(x,{marginTop:1,children:W(T,{children:"Would you like to install this LSP plugin?"})}),W(x,{children:W(l8,{options:[{label:y(T,{children:["Yes, install ",W(T,{bold:!0,children:q})]}),value:"yes"},{label:"No, not now",value:"no"},{label:y(T,{children:["Never for ",W(T,{bold:!0,children:q})]}),value:"never"},{label:"Disable all LSP recommendations",value:"disable"}],onChange:Y,onCancel:()=>A("no")})})]})})}var pY8,yN5=30000;var GU_=h(()=>{n6();b4();EH();r();pY8=q6(q8(),1)});function TU_(){let q=vU_.c(11),K=mY8.useSyncExternalStore(yeK,Hr8),{addNotification:_}=o_(),{recommendation:A,clearRecommendation:z,tryResolve:Y}=IY8(),O,$;if(q[0]!==K||q[1]!==Y)O=()=>{if(!K)return;Y(async()=>{let M=await LeK(K);if(M)V(`[usePukuCodeHintRecommendation] surfacing ${M.pluginId} from ${M.sourceCommand}`),VeK();if(Hr8()===K)NeK();return M})},$=[K,Y],q[0]=K,q[1]=Y,q[2]=O,q[3]=$;else O=q[2],$=q[3];mY8.useEffect(O,$);let w;if(q[4]!==_||q[5]!==z||q[6]!==A)w=(M)=>{if(!A)return;heK(A.pluginId),Q("ev_event",{_PROTO_plugin_name:A.pluginName,_PROTO_marketplace_name:A.marketplaceName,response:M});q:switch(M){case"yes":{let{pluginId:J,pluginName:X,marketplaceName:P}=A;xY8(J,X,"hint-plugin",_,async(f)=>{let D=await aB({pluginId:J,entry:f.entry,marketplaceName:P,scope:"user",trigger:"hint"});if(!D.success)throw Error(D.error)});break q}case"disable":{SeK();break q}case"no":}z()},q[4]=_,q[5]=z,q[6]=A,q[7]=w;else w=q[7];let H=w,j;if(q[8]!==H||q[9]!==A)j={recommendation:A,handleResponse:H},q[8]=H,q[9]=A,q[10]=j;else j=q[10];return j}var vU_,mY8;var kU_=h(()=>{cz();iv6();z8();xe6();oB();UOq();vU_=q6(K8(),1),mY8=q6(q8(),1)});function NU_({pluginName:q,pluginDescription:K,marketplaceName:_,sourceCommand:A,onResponse:z}){let Y=gY8.useRef(z);Y.current=z,gY8.useEffect(()=>{let w=setTimeout((H)=>H.current("no"),RN5,Y);return()=>clearTimeout(w)},[]);function O(w){switch(w){case"yes":z("yes");break;case"disable":z("disable");break;default:z("no")}}return W(I5,{title:"Plugin Recommendation",children:y(x,{flexDirection:"column",paddingX:2,paddingY:1,children:[W(x,{marginBottom:1,children:y(T,{dimColor:!0,children:["The ",W(T,{bold:!0,children:A})," command suggests installing a plugin."]})}),y(x,{children:[W(T,{dimColor:!0,children:"Plugin:"}),y(T,{children:[" ",q]})]}),y(x,{children:[W(T,{dimColor:!0,children:"Marketplace:"}),y(T,{children:[" ",_]})]}),K&&W(x,{children:W(T,{dimColor:!0,children:K})}),W(x,{marginTop:1,children:W(T,{children:"Would you like to install it?"})}),W(x,{children:W(l8,{options:[{label:y(T,{children:["Yes, install ",W(T,{bold:!0,children:q})]}),value:"yes"},{label:"No",value:"no"},{label:"No, and don't show plugin installation hints again",value:"disable"}],onChange:O,onCancel:()=>z("no")})})]})})}var gY8,RN5=30000;var VU_=h(()=>{n6();b4();EH();r();gY8=q6(q8(),1)});function EU_(){let q=yU_.c(20),{addNotification:K}=o_(),_=X8(hN5),A;q:{if(!_){let f;if(q[0]===Symbol.for("react.memo_cache_sentinel"))f={totalFailed:0,failedMarketplacesCount:0,failedPluginsCount:0},q[0]=f;else f=q[0];A=f;break q}let H;if(q[1]!==_.marketplaces)H=_.marketplaces.filter(LN5),q[1]=_.marketplaces,q[2]=H;else H=q[2];let j=H,M;if(q[3]!==_.plugins)M=_.plugins.filter(EN5),q[3]=_.plugins,q[4]=M;else M=q[4];let J=M,X=j.length+J.length,P;if(q[5]!==j.length||q[6]!==J.length||q[7]!==X)P={totalFailed:X,failedMarketplacesCount:j.length,failedPluginsCount:J.length},q[5]=j.length,q[6]=J.length,q[7]=X,q[8]=P;else P=q[8];A=P}let{totalFailed:z,failedMarketplacesCount:Y,failedPluginsCount:O}=A,$;if(q[9]!==K||q[10]!==Y||q[11]!==O||q[12]!==_||q[13]!==z)$=()=>{if(E7())return;if(!_){V("No installation status to monitor");return}if(z===0)return;if(V(`Plugin installation status: ${Y} failed marketplaces, ${O} failed plugins`),z===0)return;V(`Adding notification for ${z} failed installations`),K({key:"plugin-install-failed",jsx:y(Y8,{children:[y(T,{color:"error",children:[z," ",Iq(z,"plugin")," failed to install"]}),W(T,{dimColor:!0,children:" · /plugin for details"})]}),priority:"medium"})},q[9]=K,q[10]=Y,q[11]=O,q[12]=_,q[13]=z,q[14]=$;else $=q[14];let w;if(q[15]!==K||q[16]!==Y||q[17]!==O||q[18]!==z)w=[K,z,Y,O],q[15]=K,q[16]=Y,q[17]=O,q[18]=z,q[19]=w;else w=q[19];RU_.useEffect($,w)}function EN5(q){return q.status==="failed"}function LN5(q){return q.status==="failed"}function hN5(q){return q.plugins.installationStatus}var yU_,RU_;var LU_=h(()=>{G8();cz();n6();dq();z8();r();yU_=q6(K8(),1),RU_=q6(q8(),1)});function SU_(){let q=hU_.c(7),{addNotification:K}=o_(),_;if(q[0]===Symbol.for("react.memo_cache_sentinel"))_=[],q[0]=_;else _=q[0];let[A,z]=Ky6.useState(_),Y,O;if(q[1]===Symbol.for("react.memo_cache_sentinel"))Y=()=>{if(E7())return;return df_((j)=>{V(`Plugin autoupdate notification: ${j.length} plugin(s) updated`),z(j)})},O=[],q[1]=Y,q[2]=O;else Y=q[1],O=q[2];Ky6.useEffect(Y,O);let $,w;if(q[3]!==K||q[4]!==A)$=()=>{if(E7())return;if(A.length===0)return;let H=A.map(SN5),j=H.length<=2?H.join(" and "):`${H.length} plugins`;K({key:"plugin-autoupdate-restart",jsx:y(Y8,{children:[y(T,{color:"success",children:[H.length===1?"Plugin":"Plugins"," updated:"," ",j]}),W(T,{dimColor:!0,children:" · Run /reload-plugins to apply"})]}),priority:"low",timeoutMs:1e4}),V(`Showing plugin autoupdate notification for: ${H.join(", ")}`)},w=[A,K],q[3]=K,q[4]=A,q[5]=$,q[6]=w;else $=q[5],w=q[6];Ky6.useEffect($,w)}function SN5(q){let K=q.indexOf("@");return K>0?q.substring(0,K):q}var hU_,Ky6;var CU_=h(()=>{G8();cz();n6();z8();Z48();r();hU_=q6(K8(),1),Ky6=q6(q8(),1)});import{isAbsolute as CN5,resolve as bN5}from"path";function dOq(q,K,_){let A=[],z=[],Y=[];for(let[O,$]of Object.entries(q)){let w=K[O],H=bU_($.source,_?.projectRoot);if(!w)A.push(O);else if($.sourceIsFallback)Y.push(O);else if(!M2(H,w.source))z.push({name:O,declaredSource:H,materializedSource:w.source});else Y.push(O)}return{missing:A,sourceChanged:z,upToDate:Y}}async function BY8(q){let K=lB();if(Object.keys(K).length===0)return{installed:[],updated:[],failed:[],upToDate:[],skipped:[]};let _;try{_=await FA()}catch(j){A6(j),_={}}let A=dOq(K,_,{projectRoot:Tq()}),z=[...A.missing.map((j)=>({name:j,source:bU_(K[j].source),action:"install"})),...A.sourceChanged.map(({name:j,declaredSource:M})=>({name:j,source:M,action:"update"}))],Y=[],O=[];for(let j of z){if(q?.skip?.(j.name,j.source)){Y.push(j.name);continue}if(j.action==="update"&&zV(j.source)&&!await k7(j.source.path)){V(`[reconcile] '${j.name}' declared path does not exist; keeping materialized entry`),Y.push(j.name);continue}O.push(j)}if(O.length===0)return{installed:[],updated:[],failed:[],upToDate:A.upToDate,skipped:Y};V(`[reconcile] ${O.length} marketplace(s): ${O.map((j)=>`${j.name}(${j.action})`).join(", ")}`);let $=[],w=[],H=[];for(let j=0;j<O.length;j++){let{name:M,source:J,action:X}=O[j];q?.onProgress?.({type:"installing",name:M,action:X,index:j+1,total:O.length});try{let P=await _E(J);if(X==="install")$.push(M);else w.push(M);q?.onProgress?.({type:"installed",name:M,alreadyMaterialized:P.alreadyMaterialized})}catch(P){let f=d6(P);H.push({name:M,error:f}),q?.onProgress?.({type:"failed",name:M,error:f}),A6(P)}}return{installed:$,updated:w,failed:H,upToDate:A.upToDate,skipped:Y}}function bU_(q,K){if((q.source==="directory"||q.source==="file")&&!CN5(q.path)){let _=K??Tq(),A=e3(_);return{...q,path:bN5(A??_,q.path)}}return q}var QOq=h(()=>{LQ();G8();z8();N8();X7();m4();y8();PO();SM()});function lOq(q,K,_,A){q((z)=>({...z,plugins:{...z.plugins,installationStatus:{...z.plugins.installationStatus,marketplaces:z.plugins.installationStatus.marketplaces.map((Y)=>Y.name===K?{...Y,status:_,error:A}:Y)}}}))}async function IU_(q){V("performBackgroundPluginInstallations called");try{let K=lB(),_=await FA().catch(()=>({})),A=dOq(K,_),z=[...A.missing,...A.sourceChanged.map(($)=>$.name)];if(q(($)=>({...$,plugins:{...$.plugins,installationStatus:{marketplaces:z.map((w)=>({name:w,status:"pending"})),plugins:[]}}})),z.length===0)return;V(`Installing ${z.length} marketplace(s) in background`);let Y=await BY8({onProgress:($)=>{switch($.type){case"installing":lOq(q,$.name,"installing");break;case"installed":lOq(q,$.name,"installed");break;case"failed":lOq(q,$.name,"failed",$.error);break}}}),O={installed_count:Y.installed.length,updated_count:Y.updated.length,failed_count:Y.failed.length,up_to_date_count:Y.upToDate.length};if(Q("ev_event",O),g8("info","ev_event",O),Y.installed.length>0){KE(),V(`Auto-refreshing plugins after ${Y.installed.length} new marketplace(s) installed`);try{await ga(q)}catch($){A6($),V(`Auto-refresh failed, falling back to needsRefresh: ${$}`,{level:"warn"}),F2("performBackgroundPluginInstallations: auto-refresh failed"),q((w)=>{if(w.plugins.needsRefresh)return w;return{...w,plugins:{...w.plugins,needsRefresh:!0}}})}}else if(Y.updated.length>0)KE(),F2("performBackgroundPluginInstallations: marketplaces reconciled"),q(($)=>{if($.plugins.needsRefresh)return $;return{...$,plugins:{...$.plugins,needsRefresh:!0}}})}catch(K){A6(K)}}var xU_=h(()=>{z8();Xz();y8();PO();S3();QOq();FA8()});async function uU_(q){if(V("performStartupChecks called"),!Z3()){V("Trust not accepted for current directory - skipping plugin installations");return}try{if(V("Starting background plugin installations"),await dK8())KE(),F2("performStartupChecks: seed marketplaces changed"),q((_)=>{if(_.plugins.needsRefresh)return _;return{..._,plugins:{..._.plugins,needsRefresh:!0}}});await IU_(q)}catch(K){V(`Error initiating background plugin installations: ${K}`)}}var pU_=h(()=>{xU_();Wq();z8();PO();S3()});function gU_(){let q=mU_.c(11),K;if(q[0]===Symbol.for("react.memo_cache_sentinel"))K=KH.getInstance().getStatus(),q[0]=K;else K=q[0];let[_,A]=cY8.useState(K),z,Y;if(q[1]===Symbol.for("react.memo_cache_sentinel"))z=()=>{return KH.getInstance().subscribe(A)},Y=[],q[1]=z,q[2]=Y;else z=q[1],Y=q[2];if(cY8.useEffect(z,Y),!_.isAuthenticating&&!_.error&&_.output.length===0)return null;if(!_.isAuthenticating&&!_.error)return null;let O;if(q[3]===Symbol.for("react.memo_cache_sentinel"))O=W(T,{bold:!0,color:"permission",children:"Cloud Authentication"}),q[3]=O;else O=q[3];let $;if(q[4]!==_.output)$=_.output.length>0&&W(x,{flexDirection:"column",marginTop:1,children:_.output.slice(-5).map(xN5)}),q[4]=_.output,q[5]=$;else $=q[5];let w;if(q[6]!==_.error)w=_.error&&W(x,{marginTop:1,children:W(T,{color:"error",children:_.error})}),q[6]=_.error,q[7]=w;else w=q[7];let H;if(q[8]!==$||q[9]!==w)H=y(x,{flexDirection:"column",borderStyle:"round",borderColor:"permission",paddingX:1,marginY:1,children:[O,$,w]}),q[8]=$,q[9]=w,q[10]=H;else H=q[10];return H}function xN5(q,K){let _=q.match(IN5);if(!_)return W(T,{dimColor:!0,children:q},K);let A=_[0],z=_.index??0,Y=q.slice(0,z),O=q.slice(z+A.length);return y(T,{dimColor:!0,children:[Y,W(aK,{url:A,children:A}),O]},K)}var mU_,cY8,IN5;var BU_=h(()=>{n6();im6();r();mU_=q6(K8(),1),cY8=q6(q8(),1),IN5=/https?:\/\/\S+/});function FU_(q){let K=cU_.c(17),{addNotification:_}=o_(),A=qB(),z;if(K[0]!==A||K[1]!==q)z=MB8(A,q),K[0]=A,K[1]=q,K[2]=z;else z=K[2];let Y=z,O;if(K[3]!==A)O=JB8(A),K[3]=A,K[4]=O;else O=K[4];let $=O,w=Vo.useRef(null),H;if(K[5]===Symbol.for("react.memo_cache_sentinel"))H=e7(),K[5]=H;else H=K[5];let j=H,M;if(K[6]===Symbol.for("react.memo_cache_sentinel"))M=gV(),K[6]=M;else M=K[6];let J=M,X=j==="team"||j==="enterprise",[P,f]=Vo.useState(!1),D,Z;if(K[7]!==_||K[8]!==A.isUsingOverage||K[9]!==P||K[10]!==$)D=()=>{if(E7())return;if(A.isUsingOverage&&!P&&(!X||J))_({key:"limit-reached",text:$,priority:"immediate"}),f(!0);else if(!A.isUsingOverage&&P)f(!1)},Z=[A.isUsingOverage,$,P,_,J,X],K[7]=_,K[8]=A.isUsingOverage,K[9]=P,K[10]=$,K[11]=D,K[12]=Z;else D=K[11],Z=K[12];Vo.useEffect(D,Z);let G,v;if(K[13]!==_||K[14]!==Y)G=()=>{if(E7())return;if(Y&&Y!==w.current)w.current=Y,_({key:"rate-limit-warning",jsx:W(T,{children:W(T,{color:"warning",children:Y})}),priority:"high"})},v=[Y,_],K[13]=_,K[14]=Y,K[15]=G,K[16]=v;else G=K[15],v=K[16];Vo.useEffect(G,v)}var cU_,Vo;var UU_=h(()=>{cz();n6();my();zv6();wK();Uh();G8();r();cU_=q6(K8(),1),Vo=q6(q8(),1)});function pN5(q){let K=q.toLowerCase(),_=Jq();for(let[A,z]of Object.entries(uN5)){let Y=z.retirementDates[_];if(!K.includes(A)||!Y)continue;return{isDeprecated:!0,modelName:z.modelName,retirementDate:Y}}return{isDeprecated:!1}}function FY8(q){if(!q)return null;let K=pN5(q);if(!K.isDeprecated)return null;return`⚠ ${K.modelName} will be retired on ${K.retirementDate}. Consider switching to a newer model.`}var uN5;var iOq=h(()=>{Q7();uN5={"claude-3-opus":{modelName:"Claude 3 Opus",retirementDates:{firstParty:"January 5, 2026",bedrock:"January 15, 2026",vertex:"January 5, 2026",foundry:"January 5, 2026"}},"claude-3-7-sonnet":{modelName:"Claude 3.7 Sonnet",retirementDates:{firstParty:"February 19, 2026",bedrock:"April 28, 2026",vertex:"May 11, 2026",foundry:"February 19, 2026"}},"claude-3-5-haiku":{modelName:"Claude 3.5 Haiku",retirementDates:{firstParty:"February 19, 2026",bedrock:null,vertex:null,foundry:null}}}});function QU_(q){let K=dU_.c(4),{addNotification:_}=o_(),A=UY8.useRef(null),z,Y;if(K[0]!==_||K[1]!==q)z=()=>{if(E7())return;let O=FY8(q);if(O&&O!==A.current)A.current=O,_({key:"model-deprecation-warning",text:O,color:"warning",priority:"high"});if(!O)A.current=null},Y=[q,_],K[0]=_,K[1]=q,K[2]=z,K[3]=Y;else z=K[2],Y=K[3];UY8.useEffect(z,Y)}var dU_,UY8;var lU_=h(()=>{cz();iOq();G8();dU_=q6(K8(),1),UY8=q6(q8(),1)});function iU_(){sv(async()=>{if(RZ())return null;let q=await db("latest");if(!q)return null;if(!aM(q,"1.8.37"))return null;return{key:"puku-cli-update-available",priority:"medium",timeoutMs:30000,color:"warning",text:`↑ puku-cli ${q} is available (you have 1.8.37). Run \`puku-cli update\` to upgrade.`}})}var nU_=h(()=>{OE();Wq();No()});function aU_(q){let K=rU_.c(26),{ideSelection:_,mcpClients:A,ideInstallationStatus:z}=q,{addNotification:Y,removeNotification:O}=o_(),{status:$,ideName:w}=U36(A),H=yo.useRef(!1),j;if(K[0]!==z)j=z?O0(z?.ideType):!1,K[0]=z,K[1]=j;else j=K[1];let M=j,J=z?.error||M,X=$==="connected"&&(_?.filePath||_?.text&&_.lineCount>0),P=$==="connected"&&!X,f=J&&!M&&!P&&!X,D=J&&M&&!P&&!X,Z,G;if(K[2]!==Y||K[3]!==$||K[4]!==O||K[5]!==D)Z=()=>{if(E7())return;if(Zw()||$!==null||D){O("ide-status-hint");return}if(H.current||(j8().ideHintShownCount??0)>=mN5)return;let I=setTimeout(gN5,3000,H,Y);return()=>clearTimeout(I)},G=[Y,O,$,D],K[2]=Y,K[3]=$,K[4]=O,K[5]=D,K[6]=Z,K[7]=G;else Z=K[6],G=K[7];yo.useEffect(Z,G);let v,k;if(K[8]!==Y||K[9]!==w||K[10]!==$||K[11]!==O||K[12]!==f||K[13]!==D)v=()=>{if(E7())return;if(f||D||$!=="disconnected"||!w){O("ide-status-disconnected");return}Y({key:"ide-status-disconnected",text:`${w} disconnected`,color:"error",priority:"medium"})},k=[Y,O,$,w,f,D],K[8]=Y,K[9]=w,K[10]=$,K[11]=O,K[12]=f,K[13]=D,K[14]=v,K[15]=k;else v=K[14],k=K[15];yo.useEffect(v,k);let N,L;if(K[16]!==Y||K[17]!==O||K[18]!==D)N=()=>{if(E7())return;if(!D){O("ide-status-jetbrains-disconnected");return}Y({key:"ide-status-jetbrains-disconnected",text:"IDE plugin not connected · /status for info",priority:"medium"})},L=[Y,O,D],K[16]=Y,K[17]=O,K[18]=D,K[19]=N,K[20]=L;else N=K[19],L=K[20];yo.useEffect(N,L);let C,b;if(K[21]!==Y||K[22]!==O||K[23]!==f)C=()=>{if(E7())return;if(!f){O("ide-status-install-error");return}Y({key:"ide-status-install-error",text:"IDE extension install failed (see /status for info)",color:"error",priority:"medium"})},b=[Y,O,f],K[21]=Y,K[22]=O,K[23]=f,K[24]=C,K[25]=b;else C=K[24],b=K[25];yo.useEffect(C,b)}function gN5(q,K){B46(!0).then((_)=>{let A=_[0]?.name;if(A&&!q.current)q.current=!0,B8(BN5),K({key:"ide-status-hint",jsx:y(T,{dimColor:!0,children:["/ide for ",W(T,{color:"ide",children:A})]}),priority:"low"})})}function BN5(q){return{...q,ideHintShownCount:(q.ideHintShownCount??0)+1}}var rU_,yo,mN5=5;var oU_=h(()=>{cz();n6();Wq();z3();G8();Pz8();r();rU_=q6(K8(),1),yo=q6(q8(),1)});function tU_(){sv(FN5)}function FN5(){let q=j8(),K=[];for(let _ of cN5){let A=_(q);if(A)K.push(A)}return K.length>0?K:null}function sU_(q){return q!==void 0&&Date.now()-q<3000}var cN5;var eU_=h(()=>{Wq();No();cN5=[(q)=>{if(!sU_(q.sonnet45To46MigrationTimestamp))return;return{key:"sonnet-46-update",text:"Model updated to Sonnet 4.6",color:"suggestion",priority:"high",timeoutMs:3000}},(q)=>{let K=Boolean(q.legacyOpusMigrationTimestamp),_=q.legacyOpusMigrationTimestamp??q.opusProMigrationTimestamp;if(!sU_(_))return;return{key:"opus-pro-update",text:K?"Model updated to Opus 4.6 · Set PUKU_CLI_DISABLE_LEGACY_MODEL_REMAP=1 to opt out":"Model updated to Opus 4.6",color:"suggestion",priority:"high",timeoutMs:K?8000:3000}}]});function qd_(){sv(dN5)}async function dN5(){if((j8().subscriptionNoticeCount??0)>=UN5)return null;let q=await lN5();if(q===null)return null;return B8(QN5),Q("ev_event",{}),{key:"switch-to-subscription",jsx:y(T,{color:"suggestion",children:["Use your existing Puku ",q," plan with puku-cli",y(T,{color:"text",dimColor:!0,children:[" ","· /login to activate"]})]}),priority:"low"}}function QN5(q){return{...q,subscriptionNoticeCount:(q.subscriptionNoticeCount??0)+1}}async function lN5(){if(DK())return null;let q=await B8K();if(!q)return null;if(q.account.has_claude_max)return"Max";if(q.account.has_claude_pro)return"Pro";return null}var UN5=3;var Kd_=h(()=>{b86();wK();n6();Wq();No();r()});function _d_(q){if(!("text"in q))return 1;let K=q.text.match(/^(\d+)/);return K?.[1]?parseInt(K[1],10):1}function iN5(q,K){return Ad_(_d_(q)+1)}function Ad_(q){return{key:"teammate-spawn",text:q===1?"1 agent spawned":`${q} agents spawned`,priority:"low",timeoutMs:5000,fold:iN5}}function nN5(q,K){return zd_(_d_(q)+1)}function zd_(q){return{key:"teammate-shutdown",text:q===1?"1 agent shut down":`${q} agents shut down`,priority:"low",timeoutMs:5000,fold:nN5}}function Yd_(){let q=X8((z)=>z.tasks),{addNotification:K}=o_(),_=_y6.useRef(new Set),A=_y6.useRef(new Set);_y6.useEffect(()=>{if(E7())return;for(let[z,Y]of Object.entries(q)){if(!Z$(Y))continue;if(Y.status==="running"&&!_.current.has(z))_.current.add(z),K(Ad_(1));if(Y.status==="completed"&&!A.current.has(z))A.current.add(z),K(zd_(1))}},[q,K])}var _y6;var Od_=h(()=>{G8();cz();dq();_y6=q6(q8(),1)});function Md_(){let q=jd_.c(13),{addNotification:K}=o_(),_=X8(sN5),A=sq(),z,Y;if(q[0]!==K||q[1]!==_||q[2]!==A)z=()=>{if(E7())return;if(!K7())return;return OqK((j)=>{if(j)K({key:Hd_,color:"fastMode",priority:"immediate",text:"Fast mode is now available · /fast to turn on"});else if(_)A(oN5),K({key:Hd_,color:"warning",priority:"immediate",text:"Fast mode has been disabled by your organization"})})},Y=[K,_,A],q[0]=K,q[1]=_,q[2]=A,q[3]=z,q[4]=Y;else z=q[3],Y=q[4];dY8.useEffect(z,Y);let O,$;if(q[5]!==K||q[6]!==A)O=()=>{if(E7())return;if(!K7())return;return zqK((j)=>{A(aN5),K({key:rN5,color:"warning",priority:"immediate",text:j})})},$=[K,A],q[5]=K,q[6]=A,q[7]=O,q[8]=$;else O=q[7],$=q[8];dY8.useEffect(O,$);let w,H;if(q[9]!==K||q[10]!==_)w=()=>{if(E7())return;if(!_)return;let j=e8K((J,X)=>{let P=fA(J-Date.now(),{hideTrailingZeros:!0}),f=tN5(X,P);K({key:$d_,invalidates:[wd_],text:f,color:"warning",priority:"immediate"})}),M=qqK(()=>{K({key:wd_,invalidates:[$d_],color:"fastMode",text:"Fast limit reset · now using fast mode",priority:"immediate"})});return()=>{j(),M()}},H=[K,_],q[9]=K,q[10]=_,q[11]=w,q[12]=H;else w=q[11],H=q[12];dY8.useEffect(w,H)}function aN5(q){return{...q,fastMode:!1}}function oN5(q){return{...q,fastMode:!1}}function sN5(q){return q.fastMode}function tN5(q,K){switch(q){case"overloaded":return`Fast mode overloaded and is temporarily unavailable · resets in ${K}`;case"rate_limit":return`Fast limit reached and temporarily disabled · resets in ${K}`}}var jd_,dY8,$d_="fast-mode-cooldown-started",wd_="fast-mode-cooldown-expired",Hd_="fast-mode-org-changed",rN5="fast-mode-overage-rejected";var Jd_=h(()=>{cz();dq();Pj();OK();G8();jd_=q6(K8(),1),dY8=q6(q8(),1)});function Pd_(q){let K=Xd_.c(8),{onRun:_,onCancel:A,reason:z}=q,Y=QY8.useRef(!1),O;if(K[0]===Symbol.for("react.memo_cache_sentinel"))O={context:"Confirmation"},K[0]=O;else O=K[0];Kq("confirm:no",A,O);let $,w;if(K[1]!==_)$=()=>{if(!Y.current)Y.current=!0,_()},w=[_],K[1]=_,K[2]=$,K[3]=w;else $=K[2],w=K[3];QY8.useEffect($,w);let H;if(K[4]===Symbol.for("react.memo_cache_sentinel"))H=W(x,{children:W(T,{bold:!0,children:"Running feedback capture..."})}),K[4]=H;else H=K[4];let j;if(K[5]===Symbol.for("react.memo_cache_sentinel"))j=W(x,{children:y(T,{dimColor:!0,children:["Press ",W(c8,{shortcut:"Esc",action:"cancel"})," anytime"]})}),K[5]=j;else j=K[5];let M;if(K[6]!==z)M=y(x,{flexDirection:"column",marginTop:1,children:[H,j,W(x,{children:y(T,{dimColor:!0,children:["Reason: ",z]})})]}),K[6]=z,K[7]=M;else M=K[7];return M}function fd_(q){return!1;switch(q){case"feedback_survey_bad":return!1;case"feedback_survey_good":return!1;default:return!1}}function Wd_(q){return"/issue"}function Dd_(q){switch(q){case"feedback_survey_bad":return'You responded "Bad" to the feedback survey';case"feedback_survey_good":return'You responded "Good" to the feedback survey';default:return"Unknown reason"}}var Xd_,QY8;var Zd_=h(()=>{R7();n6();XK();r();Xd_=q6(K8(),1),QY8=q6(q8(),1)});function Gd_(){return null}function KV5(q){for(let K of q){if(K.type!=="assistant")continue;let _=K.message.content;if(!Array.isArray(_))continue;for(let A of _){if(A.type!=="tool_use"||!("name"in A))continue;let z=A.name;if(z.startsWith("mcp__"))return!1;if(z===HK){let O=A.input?.command||"";if(eN5.some(($)=>$.test(O)))return!1}}}return!0}function _V5(q){for(let K=q.length-1;K>=0;K--){let _=q[K];if(_.type!=="user")continue;let A=Pn(_);if(!A)continue;return qV5.some((z)=>z.test(A))}return!1}function vd_(q,K){if(process.env.USER_TYPE!=="ant")return!1;let _=Ay6.useRef(0),A=Ay6.useRef(-1),z=Ay6.useMemo(()=>KV5(q)&&_V5(q),[q]);if(A.current===K)return!0;if(Date.now()-_.current<zV5)return!1;if(K<AV5)return!1;if(!z)return!1;return _.current=Date.now(),A.current=K,!0}var Ay6,eN5,qV5,AV5=3,zV5=1800000;var Td_=h(()=>{kq();Ay6=q6(q8(),1),eN5=[/\bcurl\b/,/\bwget\b/,/\bssh\b/,/\bkubectl\b/,/\bsrun\b/,/\bdocker\b/,/\bbq\b/,/\bgsutil\b/,/\bgcloud\b/,/\baws\b/,/\bgit\s+push\b/,/\bgit\s+pull\b/,/\bgit\s+fetch\b/,/\bgh\s+(pr|issue)\b/,/\bnc\b/,/\bncat\b/,/\btelnet\b/,/\bftp\b/],qV5=[/^no[,!]\s/i,/\bthat'?s (wrong|incorrect|not (what|right|correct))\b/i,/\bnot what I (asked|wanted|meant|said)\b/i,/\bI (said|asked|wanted|told you|already said)\b/i,/\bwhy did you\b/i,/\byou should(n'?t| not)? have\b/i,/\byou were supposed to\b/i,/\btry again\b/i,/\b(undo|revert) (that|this|it|what you)\b/i]});var YV5,OV5;var kd_=h(()=>{G8();n6();r();YV5=q6(K8(),1),OV5=q6(q8(),1)});function nOq(q){let K=Nd_.c(7),{children:_,mouseTracking:A}=q,z=A===void 0?!0:A,Y=zy6.useContext(ip),O=zy6.useContext(rp),$,w;if(K[0]!==z||K[1]!==O)$=()=>{let M=AY.get(process.stdout);if(!O)return;return O(DP6+"\x1B[2J\x1B[H"+(z?Ol:"")),M?.setAltScreenActive(!0,z),()=>{M?.setAltScreenActive(!1),M?.clearTextSelection(),O((z?RS:"")+WK6)}},w=[O,z],K[0]=z,K[1]=O,K[2]=$,K[3]=w;else $=K[2],w=K[3];zy6.useInsertionEffect($,w);let H=Y?.rows??24,j;if(K[4]!==_||K[5]!==H)j=W(wH,{flexDirection:"column",height:H,width:"100%",flexShrink:0,children:_}),K[4]=_,K[5]=H,K[6]=j;else j=K[6];return j}var Nd_,zy6;var Vd_=h(()=>{lX();lp();CS();SS();TP6();r();Nd_=q6(K8(),1),zy6=q6(q8(),1)});function yd_(q,K,_){let A=M$6.useRef(!1),z=M$6.useRef(_);z.current=_,M$6.useEffect(()=>{if(!K)return;return q.subscribe(()=>{let O=q.getState(),$=q.hasSelection();if(O?.isDragging){A.current=!1;return}if(!$){A.current=!1;return}if(A.current)return;if(!(j8().copyOnSelect??!0))return;let H=q.copySelectionNoClear();if(!H||!H.trim()){A.current=!0;return}A.current=!0,z.current?.(H)})},[K,q])}function Rd_(q){let[K]=fK();M$6.useEffect(()=>{q.setSelectionBgColor(HH(K).selectionBg)},[q,K])}var M$6;var Ed_=h(()=>{dq6();Wq();Dk();M$6=q6(q8(),1)});function vV5(q){if(q.wheelUp||q.wheelDown)return!1;if((q.leftArrow||q.rightArrow||q.upArrow||q.downArrow||q.home||q.end||q.pageUp||q.pageDown)&&(q.shift||q.meta||q.super))return!1;return!0}function TV5(q){if(!q.shift||q.meta)return null;if(q.leftArrow)return"left";if(q.rightArrow)return"right";if(q.upArrow)return"up";if(q.downArrow)return"down";if(q.home)return"lineStart";if(q.end)return"lineEnd";return null}function Sd_(q,K,_){if(!q.xtermJs){if(q.wheelMode&&_-q.time>PV5)q.wheelMode=!1,q.burstCount=0,q.mult=q.base;if(q.pendingFlip){if(q.pendingFlip=!1,K!==q.dir||_-q.time>jV5)return q.dir=K,q.time=_,q.mult=q.base,Math.floor(q.mult);q.wheelMode=!0}let $=_-q.time;if(K!==q.dir&&q.dir!==0)return q.pendingFlip=!0,q.time=_,0;if(q.dir=K,q.time=_,q.wheelMode)if($<hd_)if(++q.burstCount>=5)q.wheelMode=!1,q.burstCount=0,q.mult=q.base;else return 1;else q.burstCount=0;if(q.wheelMode){let w=Math.pow(0.5,$/Ld_),H=Math.max(JV5,q.base*2),j=1+(q.mult-1)*w+MV5*w;return q.mult=Math.min(H,j,q.mult+XV5),Math.floor(q.mult)}if($>$V5)q.mult=q.base;else{let w=Math.max(HV5,q.base*2);q.mult=Math.min(w,q.mult+wV5)}return Math.floor(q.mult)}let A=_-q.time,z=K===q.dir;if(q.time=_,q.dir=K,z&&A<hd_)return 1;if(!z||A>GV5)q.mult=2,q.frac=0;else{let $=Math.pow(0.5,A/Ld_),w=A>=WV5?DV5:ZV5;q.mult=Math.min(w,1+(q.mult-1)*$+fV5*$)}let Y=q.mult+q.frac,O=Math.floor(Y);return q.frac=Y-O,O}function kV5(){let q=process.env.PUKU_CLI_SCROLL_SPEED;if(!q)return 1;let K=parseFloat(q);return Number.isNaN(K)||K<=0?1:Math.min(K,20)}function NV5(q=!1,K=1){return{time:0,mult:K,dir:0,xtermJs:q,frac:0,base:K,pendingFlip:!1,wheelMode:!1,burstCount:0}}function Cd_(){let q=LS(),K=kV5();return V(`wheel accel: ${q?"decay (xterm.js)":"window (native)"} · base=${K} · TERM_PROGRAM=${process.env.TERM_PROGRAM??"unset"}`),NV5(q,K)}function rOq({scrollRef:q,isActive:K,onScroll:_,isModal:A=!1}){let z=CK6(),{addNotification:Y}=o_(),O=LI.useRef(null);function $(j){let M=fWK(),J=j.length,X;switch(M){case"native":X=`copied ${J} chars to clipboard`;break;case"tmux-buffer":X=`copied ${J} chars to tmux buffer · paste with prefix + ]`;break;case"osc52":X=`sent ${J} chars via OSC 52 · check terminal clipboard settings if paste fails`;break}Y({key:"selection-copied",text:X,color:"suggestion",priority:"immediate",timeoutMs:M==="native"?2000:4000})}function w(){let j=z.copySelection();if(j)$(j)}function H(j,M){let J=z.getState();if(!J?.anchor||!J.focus)return;let X=j.getViewportTop(),P=X+j.getViewportHeight()-1;if(J.anchor.row<X||J.anchor.row>P)return;if(J.focus.row<X||J.focus.row>P)return;let f=Math.max(0,j.getScrollHeight()-j.getViewportHeight()),D=j.getScrollTop()+j.getPendingDelta(),Z=Math.max(0,Math.min(f,D+M))-D;if(Z===0)return;if(Z>0)z.captureScrolledRows(X,X+Z-1,"above"),z.shiftSelection(-Z,X,P);else{let G=-Z;z.captureScrolledRows(P-G+1,P,"below"),z.shiftSelection(G,X,P)}}return vK({"scroll:pageUp":()=>{let j=q.current;if(!j)return;let M=-Math.max(1,Math.floor(j.getViewportHeight()/2));H(j,M);let J=EI(j,M);_?.(J,j)},"scroll:pageDown":()=>{let j=q.current;if(!j)return;let M=Math.max(1,Math.floor(j.getViewportHeight()/2));H(j,M);let J=EI(j,M);_?.(J,j)},"scroll:lineUp":()=>{z.clearSelection();let j=q.current;if(!j||j.getScrollHeight()<=j.getViewportHeight())return!1;O.current??=Cd_(),hV5(j,Sd_(O.current,-1,performance.now())),_?.(!1,j)},"scroll:lineDown":()=>{z.clearSelection();let j=q.current;if(!j||j.getScrollHeight()<=j.getViewportHeight())return!1;O.current??=Cd_();let M=Sd_(O.current,1,performance.now()),J=LV5(j,M);_?.(J,j)},"scroll:top":()=>{let j=q.current;if(!j)return;H(j,-(j.getScrollTop()+j.getPendingDelta())),j.scrollTo(0),_?.(!1,j)},"scroll:bottom":()=>{let j=q.current;if(!j)return;let M=Math.max(0,j.getScrollHeight()-j.getViewportHeight());H(j,M-(j.getScrollTop()+j.getPendingDelta())),j.scrollTo(M),j.scrollToBottom(),_?.(!0,j)},"selection:copy":w},{context:"Scroll",isActive:K}),vK({"scroll:halfPageUp":()=>{let j=q.current;if(!j)return;let M=-Math.max(1,Math.floor(j.getViewportHeight()/2));H(j,M);let J=EI(j,M);_?.(J,j)},"scroll:halfPageDown":()=>{let j=q.current;if(!j)return;let M=Math.max(1,Math.floor(j.getViewportHeight()/2));H(j,M);let J=EI(j,M);_?.(J,j)},"scroll:fullPageUp":()=>{let j=q.current;if(!j)return;let M=-Math.max(1,j.getViewportHeight());H(j,M);let J=EI(j,M);_?.(J,j)},"scroll:fullPageDown":()=>{let j=q.current;if(!j)return;let M=Math.max(1,j.getViewportHeight());H(j,M);let J=EI(j,M);_?.(J,j)}},{context:"Scroll",isActive:K}),lK((j,M,J)=>{let X=q.current;if(!X)return;let P=CV5(X,SV5(j,M),(f)=>H(X,f));if(P===null)return;_?.(P,X),J.stopImmediatePropagation()},{isActive:K&&A}),lK((j,M,J)=>{if(!z.hasSelection())return;if(M.escape){z.clearSelection(),J.stopImmediatePropagation();return}if(M.ctrl&&!M.shift&&!M.meta&&j==="c"){w(),J.stopImmediatePropagation();return}let X=TV5(M);if(X){z.moveFocus(X),J.stopImmediatePropagation();return}if(vV5(M))z.clearSelection()},{isActive:K}),RV5(q,z,K,_),yd_(z,K,$),Rd_(z),null}function RV5(q,K,_,A){let z=LI.useRef(null),Y=LI.useRef(0),O=LI.useRef(0),$=LI.useRef(0),w=LI.useRef(A);w.current=A,LI.useEffect(()=>{if(!_)return;function H(){if(Y.current=0,z.current)clearInterval(z.current),z.current=null}function j(){let P=K.getState(),f=q.current,D=Y.current;if(!P?.isDragging||!P.focus||!f||D===0||++$.current>yV5){H();return}if(f.getPendingDelta()!==0)return;let Z=f.getViewportTop(),G=Z+f.getViewportHeight()-1;if(D<0){if(f.getScrollTop()<=0){H();return}let v=Math.min(lY8,f.getScrollTop());K.captureScrolledRows(G-v+1,G,"below"),K.shiftAnchor(v,0,G),f.scrollBy(-lY8)}else{let v=Math.max(0,f.getScrollHeight()-f.getViewportHeight());if(f.getScrollTop()>=v){H();return}let k=Math.min(lY8,v-f.getScrollTop());K.captureScrolledRows(Z,Z+k-1,"above"),K.shiftAnchor(-k,Z,G),f.scrollBy(lY8)}w.current?.(!1,f)}function M(P){if(O.current=P,Y.current===P)return;if(H(),Y.current=P,$.current=0,j(),Y.current===P)z.current=setInterval(j,VV5)}function J(){let P=q.current;if(!P){H();return}let f=P.getViewportTop(),D=f+P.getViewportHeight()-1,Z=K.getState();if(!Z?.isDragging||Z.scrolledOffAbove.length===0&&Z.scrolledOffBelow.length===0)O.current=0;let G=EV5(Z,f,D,O.current);if(G===0){if(O.current!==0&&Z?.focus){let v=Z.focus.row<f?-1:Z.focus.row>D?1:0;if(v!==0&&v!==O.current)Z.scrolledOffAbove=[],Z.scrolledOffBelow=[],Z.scrolledOffAboveSW=[],Z.scrolledOffBelowSW=[],O.current=0}H()}else M(G)}let X=K.subscribe(J);return()=>{X(),H(),O.current=0}},[_,q,K])}function EV5(q,K,_,A=0){if(!q?.isDragging||!q.anchor||!q.focus)return 0;let z=q.focus.row,Y=z<K?-1:z>_?1:0;if(A!==0)return Y===A?Y:0;if(q.anchor.row<K||q.anchor.row>_)return 0;return Y}function EI(q,K){let _=Math.max(0,q.getScrollHeight()-q.getViewportHeight()),A=q.getScrollTop()+q.getPendingDelta()+K;if(A>=_)return q.scrollTo(_),q.scrollToBottom(),!0;return q.scrollTo(Math.max(0,A)),!1}function LV5(q,K){let _=Math.max(0,q.getScrollHeight()-q.getViewportHeight());if(q.getScrollTop()+q.getPendingDelta()+K>=_)return q.scrollToBottom(),!0;return q.scrollBy(K),!1}function hV5(q,K){if(q.getScrollTop()+q.getPendingDelta()-K<=0){q.scrollTo(0);return}q.scrollBy(-K)}function SV5(q,K){if(K.meta)return null;if(!K.ctrl&&!K.shift){if(K.upArrow)return"lineUp";if(K.downArrow)return"lineDown";if(K.home)return"top";if(K.end)return"bottom"}if(K.ctrl){if(K.shift)return null;switch(q){case"u":return"halfPageUp";case"d":return"halfPageDown";case"b":return"fullPageUp";case"f":return"fullPageDown";case"n":return"lineDown";case"p":return"lineUp";default:return null}}let _=q[0];if(!_||q!==_.repeat(q.length))return null;if(_==="G"||_==="g"&&K.shift)return"bottom";if(K.shift)return null;switch(_){case"g":return"top";case"j":return"lineDown";case"k":return"lineUp";case" ":return"fullPageDown";case"b":return"fullPageUp";default:return null}}function CV5(q,K,_){switch(K){case null:return null;case"lineUp":case"lineDown":{let A=K==="lineDown"?1:-1;return _(A),EI(q,A)}case"halfPageUp":case"halfPageDown":{let A=Math.max(1,Math.floor(q.getViewportHeight()/2)),z=K==="halfPageDown"?A:-A;return _(z),EI(q,z)}case"fullPageUp":case"fullPageDown":{let A=Math.max(1,q.getViewportHeight()),z=K==="fullPageDown"?A:-A;return _(z),EI(q,z)}case"top":return _(-(q.getScrollTop()+q.getPendingDelta())),q.scrollTo(0),!1;case"bottom":{let A=Math.max(0,q.getScrollHeight()-q.getViewportHeight());return _(A-(q.getScrollTop()+q.getPendingDelta())),q.scrollTo(A),q.scrollToBottom(),!0}}}var LI,$V5=40,wV5=0.3,HV5=6,jV5=200,MV5=15,JV5=15,XV5=3,PV5=1500,Ld_=150,fV5=5,hd_=5,WV5=80,DV5=3,ZV5=6,GV5=500,lY8=2,VV5=50,yV5=200;var bd_=h(()=>{cz();Ed_();LU6();hS();$w();n6();XK();z8();LI=q6(q8(),1)});var gd_={};S8(gd_,{REPL:()=>sOq});import{dirname as bV5,join as IV5}from"path";import{tmpdir as xV5}from"os";import{writeFile as uV5}from"fs/promises";import{randomUUID as Yy6}from"crypto";function xd_(q){let K=oOq.c(9),{showAllInTranscript:_,virtualScroll:A,searchBadge:z,suppressShowAll:Y,status:O}=q,$=Y===void 0?!1:Y,w=m7("app:toggleTranscript","Global","ctrl+o"),H=m7("transcript:toggleShowAll","Transcript","ctrl+e"),j=z?" · n/N to navigate":A?` · ${s6.arrowUp}${s6.arrowDown} scroll · home/end top/bottom`:$?"":` · ${H} to ${_?"collapse":"show all"}`,M;if(K[0]!==j||K[1]!==w)M=y(T,{dimColor:!0,children:["Showing detailed transcript · ",w," to toggle",j]}),K[0]=j,K[1]=w,K[2]=M;else M=K[2];let J;if(K[3]!==z||K[4]!==O)J=O?y(Y8,{children:[W(x,{flexGrow:1}),y(T,{children:[O," "]})]}):z?y(Y8,{children:[W(x,{flexGrow:1}),y(T,{dimColor:!0,children:[z.current,"/",z.count," "]})]}):null,K[3]=z,K[4]=O,K[5]=J;else J=K[5];let X;if(K[6]!==M||K[7]!==J)X=y(x,{noSelect:!0,alignItems:"center",alignSelf:"center",borderTopDimColor:!0,borderBottom:!1,borderLeft:!1,borderRight:!1,borderStyle:"single",marginTop:1,paddingLeft:2,width:"100%",children:[M,J]}),K[6]=M,K[7]=J,K[8]=X;else X=K[8];return X}function QV5({jumpRef:q,count:K,current:_,onClose:A,onCancel:z,setHighlight:Y,initialQuery:O}){let{query:$,cursorOffset:w}=GD({isActive:!0,initialQuery:O,onExit:()=>A($),onCancel:z}),[H,j]=DO.useState("building");DO.useEffect(()=>{let P=!0,f=q.current?.warmSearchIndex;if(!f){j(null);return}return j("building"),f().then((D)=>{if(!P)return;if(D<20)j(null);else j({ms:D}),setTimeout(()=>P&&j(null),2000)}),()=>{P=!1}},[]);let M=H!=="building";d8.useEffect(()=>{if(!M)return;q.current?.setSearchQuery($),Y($)},[$,M]);let J=w,X=J<$.length?$[J]:" ";return y(x,{borderTopDimColor:!0,borderBottom:!1,borderLeft:!1,borderRight:!1,borderStyle:"single",marginTop:1,paddingLeft:2,width:"100%",noSelect:!0,children:[W(T,{children:"/"}),W(T,{children:$.slice(0,J)}),W(T,{inverse:!0,children:X}),J<$.length&&W(T,{children:$.slice(J+1)}),W(x,{flexGrow:1}),H==="building"?W(T,{dimColor:!0,children:"indexing… "}):H?y(T,{dimColor:!0,children:["indexed in ",H.ms,"ms "]}):K===0&&$?W(T,{color:"error",children:"no matches "}):K>0?y(T,{dimColor:!0,children:[_,"/",K," "]}):null]})}function pd_(q){let K=oOq.c(6),{isAnimating:_,title:A,disabled:z,noPrefix:Y}=q,O=hO(),[$,w]=d8.useState(0),H,j;if(K[0]!==z||K[1]!==_||K[2]!==Y||K[3]!==O)H=()=>{if(z||Y||!_||!O)return;let J=setInterval(iV5,lV5,w);return()=>clearInterval(J)},j=[z,Y,_,O],K[0]=z,K[1]=_,K[2]=Y,K[3]=O,K[4]=H,K[5]=j;else H=K[4],j=K[5];d8.useEffect(H,j);let M=_?md_[$]??ud_:ud_;return CU6(z?null:Y?A:`${M} ${A}`),null}function iV5(q){return q(nV5)}function nV5(q){return(q+1)%md_.length}function sOq({commands:q,debug:K,initialTools:_,initialMessages:A,pendingHookMessages:z,initialFileHistorySnapshots:Y,initialContentReplacements:O,initialAgentName:$,initialAgentColor:w,mcpClients:H,dynamicMcpConfig:j,autoConnectIdeFlag:M,strictMcpConfig:J=!1,systemPrompt:X,appendSystemPrompt:P,onBeforeQuery:f,onTurnComplete:D,disabled:Z=!1,mainThreadAgentDefinition:G,disableSlashCommands:v=!1,taskListId:k,remoteSessionConfig:N,directConnectConfig:L,sshSession:C,thinkingConfig:b}){let I=!!N,p=d8.useMemo(()=>u6(process.env.PUKU_CLI_DISABLE_TERMINAL_TITLE),[]),m=d8.useMemo(()=>!1,[]),B=d8.useMemo(()=>u6(process.env.PUKU_CLI_DISABLE_VIRTUAL_SCROLL),[]),g=!1,[u,F]=d8.useState(G),U=X8((O8)=>O8.toolPermissionContext),d=X8((O8)=>O8.verbose),n=X8((O8)=>O8.mcp),_6=X8((O8)=>O8.plugins),o=X8((O8)=>O8.agentDefinitions),t=X8((O8)=>O8.fileHistory),a=X8((O8)=>O8.initialMessage),s=X8((O8)=>O8.pukuAuthSessionAvailable),e=SE(),P6=X8((O8)=>O8.spinnerTip),O6=X8((O8)=>O8.expandedView)==="tasks",k6=X8((O8)=>O8.pendingWorkerRequest),H6=X8((O8)=>O8.pendingSandboxRequest),J6=X8((O8)=>O8.teamContext),w6=X8((O8)=>O8.tasks),j6=X8((O8)=>O8.workerSandboxPermissions),K6=X8((O8)=>O8.elicitation),$6=X8((O8)=>O8.ultraplanPendingChoice),T6=X8((O8)=>O8.ultraplanLaunchPending),c6=X8((O8)=>O8.viewingAgentTaskId),x6=sq(),F6=c6?w6[c6]:void 0,a6=t$(F6)&&F6.retain&&!F6.diskLoaded;d8.useEffect(()=>{if(!c6||!a6)return;let O8=c6;zB(aY(O8)).then((v8)=>{x6((I8)=>{let gq=I8.tasks[O8];if(!t$(gq)||gq.diskLoaded||!gq.retain)return I8;let qK=gq.messages??[],J_=new Set(qK.map((WK)=>WK.uuid)),KK=v8?v8.messages.filter((WK)=>!J_.has(WK.uuid)):[];return{...I8,tasks:{...I8.tasks,[O8]:{...gq,messages:[...KK,...qK],diskLoaded:!0}}}})})},[c6,a6,x6]);let b6=y5(),L6=ap(),f6=Tw(),[D6,i6]=d8.useState(q);Oc_(I?void 0:tz(),i6);let o6=DO.useSyncExternalStore(Id_?.subscribeToProactiveChanges??BV5,Id_?.isProactiveActive??cV5),h6=X8((O8)=>O8.isBriefOnly),V6=d8.useMemo(()=>pH(U),[U,o6,h6]);giK(),BiK();let[g6,G6]=d8.useState(j),Z6=d8.useCallback((O8)=>{G6(O8)},[G6]),[W6,E6]=d8.useState("prompt"),[C6,N6]=d8.useState(!1),[U6,A8]=d8.useState(!1),[Q6,J8]=d8.useState(""),f8=d8.useRef(0),v6=d8.useRef(void 0),r6=d8.useRef(!1),{addNotification:H8,removeNotification:E8}=o_(),$q=FV5,vq=qc_(H,n.clients),[tq,SK]=d8.useState(void 0),[__,MK]=d8.useState(null),[Rq,z6]=d8.useState(null),[M6,R6]=d8.useState(!1),[l6,e6]=d8.useState(()=>{return!1}),[t6,m8]=d8.useState(()=>xc_(f6)),k8=X8((O8)=>O8.showRemoteCallout),[i8,Aq]=d8.useState(()=>bF_());tU_(),qd_(),aU_({ideSelection:tq,mcpClients:vq,ideInstallationStatus:Rq}),tF_({mcpClients:vq}),qU_(),EU_(),SU_(),B78(),FU_(f6),Md_(),QU_(f6),mV5(),tc_(),XF_(),DF_(),iU_(),AU_(),Yd_();let{recommendation:Qq,handleResponse:Uq}=WU_(),{recommendation:bK,handleResponse:FK}=TU_(),M_=d8.useMemo(()=>{return[...V6,..._]},[V6,_]);XY8({enabled:!I});let lq=ddK();d8.useEffect(()=>{if(I)return;uU_(x6)},[x6,I]),vF_(I?aOq:vq,U.mode),DB_(x6,A,{enabled:!I});let P4=yA8(M_,n.tools,U),{tools:I4,allowedAgentTypes:f4}=d8.useMemo(()=>{if(!u)return{tools:P4,allowedAgentTypes:void 0};let O8=bC(u,P4,!1,!0);return{tools:O8.resolvedTools,allowedAgentTypes:O8.allowedAgentTypes}},[u,P4]),jA=ZOq(D6,_6.commands),O4=ZOq(jA,n.commands),w_=d8.useMemo(()=>v?[]:O4,[v,O4]);vb_(I?aOq:n.clients),Mc_(I?aOq:n.clients,SK);let[$K,qO]=d8.useState("responding"),UA=d8.useRef($K);UA.current=$K;let[Ez,nA]=d8.useState([]),[W4,k4]=d8.useState(null);d8.useEffect(()=>{if(W4&&!W4.isStreaming&&W4.streamingEndedAt){let v8=30000-(Date.now()-W4.streamingEndedAt);if(v8>0){let I8=setTimeout(k4,v8,null);return()=>clearTimeout(I8)}else k4(null)}},[W4]);let[J5,R5]=d8.useState(null),iz=d8.useRef(null);iz.current=J5;let ZY=d8.useRef(()=>{}),M9=d8.useRef(()=>{}),NA=d8.useRef(null),d3=d8.useRef(null),N4=d8.useRef(0),r7=DO.useRef(new Yzq).current,U7=DO.useSyncExternalStore(r7.subscribe,r7.getSnapshot),[m5,KO]=DO.useState(N?.hasInitialPrompt??!1),U_=U7||m5,[rA,g5]=DO.useState(void 0),bA=DO.useRef(0),x4=DO.useRef(!1),Lz=DO.useRef(0),GY=DO.useRef(0),ZO=DO.useRef(null),hz=DO.useCallback(()=>{Lz.current=Date.now(),GY.current=0,ZO.current=null},[]),L$=DO.useRef(!1);if(U7&&!L$.current)hz();L$.current=U7;let X5=DO.useCallback((O8)=>{if(KO(O8),O8)hz()},[hz]),nz=DO.useRef(null),e8=DO.useRef(void 0),eq=DO.useRef(void 0),P_=1500,[L_,CK]=DO.useState(!1),[r_,VA]=d8.useState(null);d8.useEffect(()=>{if(r_?.notifications)r_.notifications.forEach((O8)=>{H8({key:"auto-updater-notification",text:O8,priority:"low"})})},[r_,H8]),d8.useEffect(()=>{if(E_())O2K().then((O8)=>{if(O8)H8({key:"tmux-mouse-hint",text:O8,priority:"low"})})},[]);let[Z7,p_]=d8.useState(!1);d8.useEffect(()=>{},[]);let[Y_,u4]=d8.useState(null),c4=d8.useRef(null),d_=d8.useCallback((O8)=>{if(O8?.isLocalJSXCommand){let{clearLocalJSX:v8,...I8}=O8;c4.current={...I8,isLocalJSXCommand:!0},u4(I8);return}if(c4.current){if(O8?.clearLocalJSX){c4.current=null,u4(null);return}return}if(O8?.clearLocalJSX){u4(null);return}u4(O8)},[]),[F4,m_]=d8.useState([]),[qz,qA]=d8.useState(null),[G7,IA]=d8.useState([]),[V4,a7]=d8.useState([]),P5=d8.useRef(new Map),Kz=X8((O8)=>O8.settings.terminalTitleFromRename)!==!1?oj(T8()):void 0,[g9,TY]=d8.useState(),pY=d8.useRef((A?.length??0)>0),j3=u?.agentType,h$=Kz??j3??g9??"Puku CLI",uq=F4.length>0||V4.length>0||k6||H6,hq=Y_?.isLocalJSXCommand===!0&&Y_?.jsx!=null,pK=U_&&!uq&&!hq;d8.useEffect(()=>{if(U_&&!uq&&!hq)return lC_(),()=>iC_()},[U_,uq,hq]);let MA=uq||hq?"waiting":U_?"busy":"idle",aA=MA!=="waiting"?void 0:F4.length>0?`approve ${F4[0].tool.name}`:k6?"worker request":H6?"sandbox request":hq?"dialog open":"input needed";d8.useEffect(()=>{},[MA,aA]);let KA=s8("ev_event",!1)&&(j8().showStatusInTerminalTab??!1);hU6(p||!KA?null:MA),d8.useEffect(()=>{return gQK(m_),()=>BQK()},[m_]);let[v7,B5]=d8.useState(()=>{if(!A)return[];let O8=eU8(A,O);return O8?za6(A,O8.replacements):A}),oq=d8.useRef(v7),dA=d8.useRef(!1),A_=d8.useCallback((O8)=>{let v8=oq.current,I8=typeof O8==="function"?O8(oq.current):O8;if(oq.current=I8,I8.length<bA.current)bA.current=0;else if(I8.length>v8.length&&x4.current){let gq=I8.length-v8.length;if((v8.length===0||I8[0]===v8[0]?I8.slice(-gq):I8.slice(0,gq)).some(vY6))x4.current=!1;else bA.current=I8.length}B5(I8)},[]),Sz=d8.useCallback((O8)=>{if(O8!==void 0)bA.current=oq.current.length,x4.current=!0;else x4.current=!1;g5(O8)},[]),C1=d8.useCallback((O8)=>{if(O8.size===0)return;A_((v8)=>za6(v8,O8))},[A_]),{dividerIndex:e2,dividerYRef:xw,onScrollAway:GM,onRepin:b1,jumpToNew:S$,shiftDivider:qX}=wv_(v7.length),[KX,_X]=d8.useState(null),AX=d8.useRef(null),gE=d8.useMemo(()=>Hv_(v7,e2),[e2,v7.length]),IJ=d8.useCallback(()=>{NA.current?.scrollToBottom(),b1(),_X(null)},[b1,_X]),M3=v7.at(-1),AT=M3!=null&&vY6(M3);d8.useEffect(()=>{if(AT)IJ()},[AT,M3,IJ]);let{maybeLoadOlder:S6}=UV5,m6=d8.useCallback((O8,v8)=>{if(N4.current=Date.now(),O8)b1();else GM(v8)},[b1,GM,S6,x6]),Z8=KB_(z,A_),qq=d8.useDeferredValue(v7),Zq=v7.length-qq.length;if(Zq>0)V(`[useDeferredValue] Messages deferred by ${Zq} (${qq.length}→${v7.length})`);let[EK,a_]=d8.useState(null),[Y7,_z]=d8.useState(()=>yC8()),Cz=d8.useRef(Y7);Cz.current=Y7;let B9=d8.useRef(null),yA=d8.useCallback((O8)=>{if($q(Cz.current,O8))return;if(Cz.current===""&&O8!==""&&Date.now()-N4.current>=dV5)IJ();Cz.current=O8,_z(O8),CK(O8.trim().length>0)},[CK,IJ,$q]);d8.useEffect(()=>{if(Y7.trim().length===0)return;let O8=setTimeout(CK,P_,!1);return()=>clearTimeout(O8)},[Y7]);let[J9,mY]=d8.useState("prompt"),[_O,jf]=d8.useState(),AF=d8.useCallback((O8)=>{let v8=new Set(O8);i6((I8)=>I8.filter((gq)=>v8.has(gq.name)||mAq.has(gq)))},[i6]),[mD,gD]=d8.useState(new Set),bI=d8.useRef(!1),fN=kg_({config:N,setMessages:A_,setIsLoading:X5,onInit:AF,setToolUseConfirmQueue:m_,tools:M_,setStreamingToolUses:nA,setStreamMode:qO,setInProgressToolUseIDs:gD}),BE=yg_({config:L,setMessages:A_,setIsLoading:X5,setToolUseConfirmQueue:m_,tools:M_}),xJ=Eg_({session:C,setMessages:A_,setIsLoading:X5,setToolUseConfirmQueue:m_,tools:M_}),Mf=xJ.isRemoteMode?xJ:BE.isRemoteMode?BE:fN,[BD,QH]=d8.useState({}),[Q3,WN]=d8.useState(0),zX=d8.useRef(0),cD=d8.useRef([]),cE=d8.useCallback((O8)=>{let v8=zX.current;if(zX.current=O8(v8),zX.current>v8){let I8=cD.current;if(I8.length>0){let gq=I8.at(-1);gq.lastTokenTime=Date.now(),gq.endResponseLength=zX.current}}},[]),[zT,DN]=d8.useState(null),ZN=!(X8((O8)=>O8.settings.prefersReducedMotion)??!1)&&!VWK(),GN=d8.useCallback((O8)=>{if(!ZN)return;DN(O8)},[ZN]),YT=zT&&ZN?zT.substring(0,zT.lastIndexOf(`
|
|
7634
|
+
`)}async sendRequest(q,K,_,A=BOq()){let z={type:"control_request",request_id:A,request:q};if(this.inputClosed)throw Error("Stream closed");if(_?.aborted)throw Error("Request aborted");if(this.outbound.enqueue(z),q.subtype==="can_use_tool"&&this.onControlRequestSent)this.onControlRequestSent(z);let Y=()=>{this.outbound.enqueue({type:"control_cancel_request",request_id:A});let O=this.pendingRequests.get(A);if(O)this.trackResolvedToolUseId(O.request),O.reject(new G5)};if(_)_.addEventListener("abort",Y,{once:!0});try{return await new Promise((O,$)=>{this.pendingRequests.set(A,{request:{type:"control_request",request_id:A,request:q},resolve:(w)=>{O(w)},reject:$,schema:K})})}finally{if(_)_.removeEventListener("abort",Y);this.pendingRequests.delete(A)}}createCanUseTool(q){return async(K,_,A,z,Y,O)=>{let $=O??await W1(K,_,A,z,Y);if($.behavior==="allow"||$.behavior==="deny")return $;let w=new AbortController,H=A.abortController.signal,j=()=>w.abort();H.addEventListener("abort",j,{once:!0});try{let M=AN5(K.name,Y,_,A,$.suggestions).then((f)=>({source:"hook",decision:f})),J=BOq();q?.(KN5(K,_,Y,J));let X=this.sendRequest({subtype:"can_use_tool",tool_name:K.name,input:_,permission_suggestions:$.suggestions,blocked_path:$.blockedPath,decision_reason:qN5($.decisionReason),tool_use_id:Y,agent_id:A.agentId},sV6(),w.signal,J).then((f)=>({source:"sdk",result:f})),P=await Promise.race([M,X]);if(P.source==="hook"){if(P.decision)return X.catch(()=>{}),w.abort(),P.decision;let f=await X;return H$6(f.result,K,_,A)}return H$6(P.result,K,_,A)}catch(M){return H$6({behavior:"deny",message:`Tool permission request failed: ${M}`,toolUseID:Y},K,_,A)}finally{if(this.getPendingPermissionRequests().length===0)N36("running");H.removeEventListener("abort",j)}}}createHookCallback(q,K){return{type:"callback",timeout:K,callback:async(_,A,z)=>{try{return await this.sendRequest({subtype:"hook_callback",callback_id:q,input:_,tool_use_id:A||void 0},Z36(),z)}catch(Y){return console.error(`Error in hook callback ${q}:`,Y),{}}}}}async handleElicitation(q,K,_,A,z,Y,O){try{return await this.sendRequest({subtype:"elicitation",mcp_server_name:q,message:K,mode:z,url:Y,elicitation_id:O,requested_schema:_},gF_(),A)}catch{return{action:"cancel"}}}createSandboxAskCallback(){return async(q)=>{try{return(await this.sendRequest({subtype:"can_use_tool",tool_name:e05,input:{host:q.host},tool_use_id:BOq(),description:`Allow network connection to ${q.host}?`},sV6())).behavior==="allow"}catch{return!1}}}async sendMcpMessage(q,K){return(await this.sendRequest({subtype:"mcp_message",server_name:q,message:K},R.object({mcp_response:R.any()}))).mcp_response}}function dF_(q){console.error(q),process.exit(1)}async function AN5(q,K,_,A,z){let O=A.getAppState().toolPermissionContext.mode,$=Aa(q,K,_,A,O,z,A.abortController.signal);for await(let w of $)if(w.permissionRequestResult&&(w.permissionRequestResult.behavior==="allow"||w.permissionRequestResult.behavior==="deny")){let H=w.permissionRequestResult;if(H.behavior==="allow"){let j=H.updatedInput||_,M=H.updatedPermissions??[];if(M.length>0){Bk(M);let J=A.getAppState(),X=$P(J.toolPermissionContext,M);A.setAppState((P)=>{if(P.toolPermissionContext===X)return P;return{...P,toolPermissionContext:X}})}return{behavior:"allow",updatedInput:j,userModified:!1,decisionReason:{type:"hook",hookName:"PermissionRequest"}}}else return{behavior:"deny",message:H.message||"Permission denied by PermissionRequest hook",decisionReason:{type:"hook",hookName:"PermissionRequest"}}}return}var e05="SandboxNetworkAccess",_N5=1000;var SY8=h(()=>{FF_();j5q();z8();Xz();N8();mOq();g3();Q8();zK();zY();X$();$V6();Q8();Bt8();gOq()});function QF_(q,K,_){let A=CY8.useRef(!1);CY8.useEffect(()=>{if(!Fz()||A.current)return;if(A.current=!0,q)Bt6(q,_)},[K,q,_])}var CY8;var lF_=h(()=>{CP();CY8=q6(q8(),1)});function cOq(q){let K=iF_.c(22),{hostPattern:_,onUserResponse:A}=q,{host:z}=_,Y;if(K[0]!==A)Y=function(N){q:switch(N){case"yes":{A({allow:!0,persistToSettings:!1});break q}case"yes-dont-ask-again":{A({allow:!0,persistToSettings:!0});break q}case"no":A({allow:!1,persistToSettings:!1})}},K[0]=A,K[1]=Y;else Y=K[1];let O=Y,$;if(K[2]===Symbol.for("react.memo_cache_sentinel"))$=bl(),K[2]=$;else $=K[2];let w=$,H;if(K[3]===Symbol.for("react.memo_cache_sentinel"))H={label:"Yes",value:"yes"},K[3]=H;else H=K[3];let j;if(K[4]!==z)j=!w?[{label:y(T,{children:["Yes, and don't ask again for ",W(T,{bold:!0,children:z})]}),value:"yes-dont-ask-again"}]:[],K[4]=z,K[5]=j;else j=K[5];let M;if(K[6]===Symbol.for("react.memo_cache_sentinel"))M={label:y(T,{children:["No, and tell puku what to do differently ",W(T,{bold:!0,children:"(esc)"})]}),value:"no"},K[6]=M;else M=K[6];let J;if(K[7]!==j)J=[H,...j,M],K[7]=j,K[8]=J;else J=K[8];let X=J,P;if(K[9]===Symbol.for("react.memo_cache_sentinel"))P=W(T,{dimColor:!0,children:"Host:"}),K[9]=P;else P=K[9];let f;if(K[10]!==z)f=y(x,{children:[P,y(T,{children:[" ",z]})]}),K[10]=z,K[11]=f;else f=K[11];let D;if(K[12]===Symbol.for("react.memo_cache_sentinel"))D=W(x,{marginTop:1,children:W(T,{children:"Do you want to allow this connection?"})}),K[12]=D;else D=K[12];let Z;if(K[13]!==A)Z=()=>{A({allow:!1,persistToSettings:!1})},K[13]=A,K[14]=Z;else Z=K[14];let G;if(K[15]!==O||K[16]!==X||K[17]!==Z)G=W(x,{children:W(l8,{options:X,onChange:O,onCancel:Z})}),K[15]=O,K[16]=X,K[17]=Z,K[18]=G;else G=K[18];let v;if(K[19]!==G||K[20]!==f)v=W(I5,{title:"Network request outside of sandbox",children:y(x,{flexDirection:"column",paddingX:2,paddingY:1,children:[f,D,G]})}),K[19]=G,K[20]=f,K[21]=v;else v=K[21];return v}var iF_;var nF_=h(()=>{n6();Tz();b4();EH();r();iF_=q6(K8(),1)});function zN5(q){let K=q.getHours()%12||12,_=String(q.getMinutes()).padStart(2,"0"),A=String(q.getSeconds()).padStart(2,"0"),z=q.getHours()<12?"am":"pm";return`${K}:${_}:${A}${z}`}function FOq(){let q=rF_.c(15),K;if(q[0]===Symbol.for("react.memo_cache_sentinel"))K=[],q[0]=K;else K=q[0];let[_,A]=eV6.useState(K),[z,Y]=eV6.useState(0),O,$;if(q[1]===Symbol.for("react.memo_cache_sentinel"))O=()=>{if(!Cq.isSandboxingEnabled()||_q()==="linux")return;let P=Cq.getSandboxViolationStore();if(!P||typeof P.subscribe!=="function")return;return P.subscribe((D)=>{A(D.slice(-10)),Y(P.getTotalCount())})},$=[],q[1]=O,q[2]=$;else O=q[1],$=q[2];if(eV6.useEffect(O,$),!Cq.isSandboxingEnabled()||_q()==="linux")return null;if(z===0)return null;let w=z===1?"operation":"operations",H;if(q[3]!==w||q[4]!==z)H=W(x,{marginLeft:0,children:y(T,{color:"permission",children:["⧈ Sandbox blocked ",z," total"," ",w]})}),q[3]=w,q[4]=z,q[5]=H;else H=q[5];let j;if(q[6]!==_)j=_.map(YN5),q[6]=_,q[7]=j;else j=q[7];let M=Math.min(10,_.length),J;if(q[8]!==M||q[9]!==z)J=W(x,{paddingLeft:2,children:y(T,{dimColor:!0,children:["… showing last ",M," of ",z]})}),q[8]=M,q[9]=z,q[10]=J;else J=q[10];let X;if(q[11]!==H||q[12]!==j||q[13]!==J)X=y(x,{flexDirection:"column",marginTop:1,children:[H,j,J]}),q[11]=H,q[12]=j,q[13]=J,q[14]=X;else X=q[14];return X}function YN5(q,K){return W(x,{paddingLeft:2,children:y(T,{dimColor:!0,children:[zN5(q.timestamp),q.command?` ${q.command}:`:""," ",q.line]})},`${q.timestamp.getTime()}-${K}`)}var rF_,eV6;var aF_=h(()=>{n6();Tz();s_();r();rF_=q6(K8(),1),eV6=q6(q8(),1)});function tF_(q){let K=oF_.c(4),{mcpClients:_}=q,A=_===void 0?ON5:_,{addNotification:z}=o_(),Y,O;if(K[0]!==z||K[1]!==A)Y=()=>{try{if(E7())return;let $=A.filter(jN5),w=A.filter(HN5),H=A.filter(wN5),j=A.filter($N5);if($.length===0&&w.length===0&&H.length===0&&j.length===0)return;if($.length>0)z({key:"mcp-failed",jsx:y(Y8,{children:[y(T,{color:"error",children:[$.length," MCP"," ",$.length===1?"server":"servers"," failed"]}),W(T,{dimColor:!0,children:" · /mcp"})]}),priority:"medium"});if(w.length>0)z({key:"mcp-claudeai-failed",jsx:y(Y8,{children:[y(T,{color:"error",children:[w.length," puku.sh"," ",w.length===1?"connector":"connectors"," ","unavailable"]}),W(T,{dimColor:!0,children:" · /mcp"})]}),priority:"medium"});if(H.length>0)z({key:"mcp-needs-auth",jsx:y(Y8,{children:[y(T,{color:"warning",children:[H.length," MCP"," ",H.length===1?"server needs":"servers need"," ","auth"]}),W(T,{dimColor:!0,children:" · /mcp"})]}),priority:"medium"});if(j.length>0)z({key:"mcp-claudeai-needs-auth",jsx:y(Y8,{children:[y(T,{color:"warning",children:[j.length," puku.sh"," ",j.length===1?"connector needs":"connectors need"," ","auth"]}),W(T,{dimColor:!0,children:" · /mcp"})]}),priority:"medium"})}catch($){A6($)}},O=[z,A],K[0]=z,K[1]=A,K[2]=Y,K[3]=O;else Y=K[2],O=K[3];sF_.useEffect(Y,O)}function $N5(q){return q.type==="needs-auth"&&q.config.type==="claudeai-proxy"&&pU8(q.name)}function wN5(q){return q.type==="needs-auth"&&q.config.type!=="claudeai-proxy"}function HN5(q){return q.type==="failed"&&q.config.type==="claudeai-proxy"&&pU8(q.name)}function jN5(q){return q.type==="failed"&&q.config.type!=="sse-ide"&&q.config.type!=="ws-ide"&&q.config.type!=="claudeai-proxy"}var oF_,sF_,ON5;var eF_=h(()=>{y8();cz();G8();n6();T46();r();oF_=q6(K8(),1),sF_=q6(q8(),1),ON5=[]});function qU_(){let{addNotification:q}=o_(),K=X8((Y)=>Y.toolPermissionContext.mode),_=X8((Y)=>Y.toolPermissionContext.isAutoModeAvailable),A=qy6.useRef(!1),z=qy6.useRef(K);qy6.useEffect(()=>{let Y=z.current;if(z.current=K,E7())return;if(A.current)return;if(!(K==="default"&&Y!=="default"&&Y!=="auto"&&!_&&nL()))return;let $=mb();if(!$)return;A.current=!0,q({key:"auto-mode-unavailable",text:qc($),color:"warning",priority:"medium"})},[K,_,q])}var qy6;var KU_=h(()=>{cz();G8();dq();z1();Vq();qy6=q6(q8(),1)});function AU_(){let q=_U_.c(10),{addNotification:K}=o_(),_=sq(),[A,z]=j$6.useState(XN5),Y;if(q[0]===Symbol.for("react.memo_cache_sentinel"))Y=new Set,q[0]=Y;else Y=q[0];let O=j$6.useRef(Y),$;if(q[1]!==K||q[2]!==_)$=(X,P)=>{let f=`${X}:${P}`;if(O.current.has(f))return;O.current.add(f),V(`LSP error: ${X} - ${P}`),_((Z)=>{let G=new Set(Z.plugins.errors.map(JN5)),v=`generic-error:${X}:${P}`;if(G.has(v))return Z;return{...Z,plugins:{...Z.plugins,errors:[...Z.plugins.errors,{type:"generic-error",source:X,error:P}]}}});let D=X.startsWith("plugin:")?X.split(":")[1]??X:X;K({key:`lsp-error-${X}`,jsx:y(Y8,{children:[y(T,{color:"error",children:["LSP for ",D," failed"]}),W(T,{dimColor:!0,children:" · /plugin for details"})]}),priority:"medium",timeoutMs:8000})},q[1]=K,q[2]=_,q[3]=$;else $=q[3];let w=$,H;if(q[4]!==w)H=()=>{if(E7())return;if(nF())return;let X=I56();if(X.status==="failed"){w("lsp-manager",X.error.message),z(!1);return}if(X.status==="pending"||X.status==="not-started")return;let P=Mb();if(P){let f=P.getAllServers();for(let[D,Z]of f)if(Z.state==="error"&&Z.lastError)w(D,Z.lastError.message)}},q[4]=w,q[5]=H;else H=q[5];let j=H;jH(j,A?MN5:null);let M,J;if(q[6]!==j||q[7]!==A)M=()=>{if(E7()||!A)return;j()},J=[j,A],q[6]=j,q[7]=A,q[8]=M,q[9]=J;else M=q[8],J=q[9];j$6.useEffect(M,J)}function JN5(q){if(q.type==="generic-error")return`generic-error:${q.source}:${q.error}`;return`${q.type}:${q.source}`}function XN5(){return u6("true")}var _U_,j$6,MN5=5000;var zU_=h(()=>{iX();G8();cz();n6();bR();dq();z8();x8();r();_U_=q6(K8(),1),j$6=q6(q8(),1)});async function OU_(q){if(!q||!q.trim())return V("[binaryCheck] Empty command provided, returning false"),!1;let K=q.trim(),_=YU_.get(K);if(_!==void 0)return V(`[binaryCheck] Cache hit for '${K}': ${_}`),_;let A=!1;if(await l1(K).catch(()=>null))A=!0;return YU_.set(K,A),V(`[binaryCheck] Binary '${K}' ${A?"found":"not found"}`),A}var YU_;var $U_=h(()=>{z8();WZ();YU_=new Map});import{extname as PN5}from"path";function WN5(q){return bT.has(q.toLowerCase())}function DN5(q){if(!q)return null;if(typeof q==="string")return V("[lspRecommendation] Skipping string path lspServers (not readable from marketplace)"),null;if(Array.isArray(q)){for(let K of q){if(typeof K==="string")continue;let _=HU_(K);if(_)return _}return null}return HU_(q)}function wU_(q){return typeof q==="object"&&q!==null}function HU_(q){let K=new Set,_=null;for(let[A,z]of Object.entries(q)){if(!wU_(z))continue;if(!_&&typeof z.command==="string")_=z.command;let Y=z.extensionToLanguage;if(wU_(Y))for(let O of Object.keys(Y))K.add(O.toLowerCase())}if(!_||K.size===0)return null;return{extensions:K,command:_}}async function ZN5(){let q=new Map;try{let K=await FA();for(let _ of Object.keys(K))try{let A=await wM(_),z=WN5(_);for(let Y of A.plugins){if(!Y.lspServers)continue;let O=DN5(Y.lspServers);if(!O)continue;let $=`${Y.name}@${_}`;q.set($,{entry:Y,marketplaceName:_,extensions:O.extensions,command:O.command,isOfficial:z})}}catch(A){V(`[lspRecommendation] Failed to load marketplace ${_}: ${A}`)}}catch(K){V(`[lspRecommendation] Failed to load marketplaces config: ${K}`)}return q}async function jU_(q){if(GN5())return V("[lspRecommendation] Recommendations are disabled"),[];let K=PN5(q).toLowerCase();if(!K)return V("[lspRecommendation] No file extension found"),[];V(`[lspRecommendation] Looking for LSP plugins for ${K}`);let _=await ZN5(),z=j8().lspRecommendationNeverPlugins??[],Y=[];for(let[$,w]of _){if(!w.extensions.has(K))continue;if(z.includes($)){V(`[lspRecommendation] Skipping ${$} (in never suggest list)`);continue}if(vv($)){V(`[lspRecommendation] Skipping ${$} (already installed)`);continue}Y.push({info:w,pluginId:$})}let O=[];for(let{info:$,pluginId:w}of Y)if(await OU_($.command))O.push({info:$,pluginId:w}),V(`[lspRecommendation] Binary '${$.command}' found for ${w}`);else V(`[lspRecommendation] Skipping ${w} (binary '${$.command}' not found)`);return O.sort(($,w)=>{if($.info.isOfficial&&!w.info.isOfficial)return-1;if(!$.info.isOfficial&&w.info.isOfficial)return 1;return 0}),O.map(({info:$,pluginId:w})=>({pluginId:w,pluginName:$.entry.name,marketplaceName:$.marketplaceName,description:$.entry.description,isOfficial:$.isOfficial,extensions:Array.from($.extensions),command:$.command}))}function MU_(q){B8((K)=>{let _=K.lspRecommendationNeverPlugins??[];if(_.includes(q))return K;return{...K,lspRecommendationNeverPlugins:[..._,q]}}),V(`[lspRecommendation] Added ${q} to never suggest`)}function JU_(){B8((q)=>{let K=(q.lspRecommendationIgnoredCount??0)+1;return{...q,lspRecommendationIgnoredCount:K}}),V("[lspRecommendation] Incremented ignored count")}function GN5(){let q=j8();return q.lspRecommendationDisabled===!0||(q.lspRecommendationIgnoredCount??0)>=fN5}var fN5=5;var XU_=h(()=>{$U_();Wq();z8();Lw();PO();SM()});function IY8(){let q=PU_.c(6),[K,_]=bY8.useState(null),A=bY8.useRef(!1),z;if(q[0]!==K)z=(H)=>{if(E7())return;if(K)return;if(A.current)return;A.current=!0,H().then((j)=>{if(j)_(j)}).catch(A6).finally(()=>{A.current=!1})},q[0]=K,q[1]=z;else z=q[1];let Y=z,O;if(q[2]===Symbol.for("react.memo_cache_sentinel"))O=()=>_(null),q[2]=O;else O=q[2];let $=O,w;if(q[3]!==K||q[4]!==Y)w={recommendation:K,clearRecommendation:$,tryResolve:Y},q[3]=K,q[4]=Y,q[5]=w;else w=q[5];return w}async function xY8(q,K,_,A,z){try{let Y=await ZJ(q);if(!Y)throw Error(`Plugin ${q} not found in marketplace`);await z(Y),A({key:`${_}-installed`,jsx:y(T,{color:"success",children:[s6.tick," ",K," installed · restart to apply"]}),priority:"immediate",timeoutMs:5000})}catch(Y){A6(Y),A({key:`${_}-install-failed`,jsx:y(T,{color:"error",children:["Failed to install ",K]}),priority:"immediate",timeoutMs:5000})}}var PU_,bY8;var UOq=h(()=>{mK();G8();n6();y8();PO();r();PU_=q6(K8(),1),bY8=q6(q8(),1)});import{extname as vN5,join as TN5}from"path";function WU_(){let q=fU_.c(12),K=X8(VN5),{addNotification:_}=o_(),A;if(q[0]===Symbol.for("react.memo_cache_sentinel"))A=new Set,q[0]=A;else A=q[0];let z=uY8.useRef(A),{recommendation:Y,clearRecommendation:O,tryResolve:$}=IY8(),w,H;if(q[1]!==K||q[2]!==$)w=()=>{$(async()=>{if(_98())return null;let X=[];for(let P of K)if(!z.current.has(P))z.current.add(P),X.push(P);for(let P of X)try{let D=(await jU_(P))[0];if(D)return V(`[useLspPluginRecommendation] Found match: ${D.pluginName} for ${P}`),A98(!0),{pluginId:D.pluginId,pluginName:D.pluginName,pluginDescription:D.description,fileExtension:vN5(P),shownAt:Date.now()}}catch(f){A6(f)}return null})},H=[K,$],q[1]=K,q[2]=$,q[3]=w,q[4]=H;else w=q[3],H=q[4];uY8.useEffect(w,H);let j;if(q[5]!==_||q[6]!==O||q[7]!==Y)j=(X)=>{if(!Y)return;let{pluginId:P,pluginName:f,shownAt:D}=Y;V(`[useLspPluginRecommendation] User response: ${X} for ${f}`);q:switch(X){case"yes":{xY8(P,f,"lsp-plugin",_,async(Z)=>{V(`[useLspPluginRecommendation] Installing plugin: ${P}`);let G=typeof Z.entry.source==="string"?TN5(Z.marketplaceInstallLocation,Z.entry.source):void 0;await ek6(P,Z.entry,"user",void 0,G);let v=Oq("userSettings");Sq("userSettings",{enabledPlugins:{...v?.enabledPlugins,[P]:!0}}),V(`[useLspPluginRecommendation] Plugin installed: ${P}`)});break q}case"no":{let Z=Date.now()-D;if(Z>=kN5)V(`[useLspPluginRecommendation] Timeout detected (${Z}ms), incrementing ignored count`),JU_();break q}case"never":{MU_(P);break q}case"disable":B8(NN5)}O()},q[5]=_,q[6]=O,q[7]=Y,q[8]=j;else j=q[8];let M=j,J;if(q[9]!==M||q[10]!==Y)J={recommendation:Y,handleResponse:M},q[9]=M,q[10]=Y,q[11]=J;else J=q[11];return J}function NN5(q){if(q.lspRecommendationDisabled)return q;return{...q,lspRecommendationDisabled:!0}}function VN5(q){return q.fileHistory.trackedFiles}var fU_,uY8,kN5=28000;var DU_=h(()=>{G8();cz();dq();Wq();z8();y8();XU_();oB();Vq();UOq();fU_=q6(K8(),1),uY8=q6(q8(),1)});function ZU_({pluginName:q,pluginDescription:K,fileExtension:_,onResponse:A}){let z=pY8.useRef(A);z.current=A,pY8.useEffect(()=>{let $=setTimeout((w)=>w.current("no"),yN5,z);return()=>clearTimeout($)},[]);function Y($){switch($){case"yes":A("yes");break;case"no":A("no");break;case"never":A("never");break;case"disable":A("disable");break}}return W(I5,{title:"LSP Plugin Recommendation",children:y(x,{flexDirection:"column",paddingX:2,paddingY:1,children:[W(x,{marginBottom:1,children:W(T,{dimColor:!0,children:"LSP provides code intelligence like go-to-definition and error checking"})}),y(x,{children:[W(T,{dimColor:!0,children:"Plugin:"}),y(T,{children:[" ",q]})]}),K&&W(x,{children:W(T,{dimColor:!0,children:K})}),y(x,{children:[W(T,{dimColor:!0,children:"Triggered by:"}),y(T,{children:[" ",_," files"]})]}),W(x,{marginTop:1,children:W(T,{children:"Would you like to install this LSP plugin?"})}),W(x,{children:W(l8,{options:[{label:y(T,{children:["Yes, install ",W(T,{bold:!0,children:q})]}),value:"yes"},{label:"No, not now",value:"no"},{label:y(T,{children:["Never for ",W(T,{bold:!0,children:q})]}),value:"never"},{label:"Disable all LSP recommendations",value:"disable"}],onChange:Y,onCancel:()=>A("no")})})]})})}var pY8,yN5=30000;var GU_=h(()=>{n6();b4();EH();r();pY8=q6(q8(),1)});function TU_(){let q=vU_.c(11),K=mY8.useSyncExternalStore(yeK,Hr8),{addNotification:_}=o_(),{recommendation:A,clearRecommendation:z,tryResolve:Y}=IY8(),O,$;if(q[0]!==K||q[1]!==Y)O=()=>{if(!K)return;Y(async()=>{let M=await LeK(K);if(M)V(`[usePukuCodeHintRecommendation] surfacing ${M.pluginId} from ${M.sourceCommand}`),VeK();if(Hr8()===K)NeK();return M})},$=[K,Y],q[0]=K,q[1]=Y,q[2]=O,q[3]=$;else O=q[2],$=q[3];mY8.useEffect(O,$);let w;if(q[4]!==_||q[5]!==z||q[6]!==A)w=(M)=>{if(!A)return;heK(A.pluginId),Q("ev_event",{_PROTO_plugin_name:A.pluginName,_PROTO_marketplace_name:A.marketplaceName,response:M});q:switch(M){case"yes":{let{pluginId:J,pluginName:X,marketplaceName:P}=A;xY8(J,X,"hint-plugin",_,async(f)=>{let D=await aB({pluginId:J,entry:f.entry,marketplaceName:P,scope:"user",trigger:"hint"});if(!D.success)throw Error(D.error)});break q}case"disable":{SeK();break q}case"no":}z()},q[4]=_,q[5]=z,q[6]=A,q[7]=w;else w=q[7];let H=w,j;if(q[8]!==H||q[9]!==A)j={recommendation:A,handleResponse:H},q[8]=H,q[9]=A,q[10]=j;else j=q[10];return j}var vU_,mY8;var kU_=h(()=>{cz();iv6();z8();xe6();oB();UOq();vU_=q6(K8(),1),mY8=q6(q8(),1)});function NU_({pluginName:q,pluginDescription:K,marketplaceName:_,sourceCommand:A,onResponse:z}){let Y=gY8.useRef(z);Y.current=z,gY8.useEffect(()=>{let w=setTimeout((H)=>H.current("no"),RN5,Y);return()=>clearTimeout(w)},[]);function O(w){switch(w){case"yes":z("yes");break;case"disable":z("disable");break;default:z("no")}}return W(I5,{title:"Plugin Recommendation",children:y(x,{flexDirection:"column",paddingX:2,paddingY:1,children:[W(x,{marginBottom:1,children:y(T,{dimColor:!0,children:["The ",W(T,{bold:!0,children:A})," command suggests installing a plugin."]})}),y(x,{children:[W(T,{dimColor:!0,children:"Plugin:"}),y(T,{children:[" ",q]})]}),y(x,{children:[W(T,{dimColor:!0,children:"Marketplace:"}),y(T,{children:[" ",_]})]}),K&&W(x,{children:W(T,{dimColor:!0,children:K})}),W(x,{marginTop:1,children:W(T,{children:"Would you like to install it?"})}),W(x,{children:W(l8,{options:[{label:y(T,{children:["Yes, install ",W(T,{bold:!0,children:q})]}),value:"yes"},{label:"No",value:"no"},{label:"No, and don't show plugin installation hints again",value:"disable"}],onChange:O,onCancel:()=>z("no")})})]})})}var gY8,RN5=30000;var VU_=h(()=>{n6();b4();EH();r();gY8=q6(q8(),1)});function EU_(){let q=yU_.c(20),{addNotification:K}=o_(),_=X8(hN5),A;q:{if(!_){let f;if(q[0]===Symbol.for("react.memo_cache_sentinel"))f={totalFailed:0,failedMarketplacesCount:0,failedPluginsCount:0},q[0]=f;else f=q[0];A=f;break q}let H;if(q[1]!==_.marketplaces)H=_.marketplaces.filter(LN5),q[1]=_.marketplaces,q[2]=H;else H=q[2];let j=H,M;if(q[3]!==_.plugins)M=_.plugins.filter(EN5),q[3]=_.plugins,q[4]=M;else M=q[4];let J=M,X=j.length+J.length,P;if(q[5]!==j.length||q[6]!==J.length||q[7]!==X)P={totalFailed:X,failedMarketplacesCount:j.length,failedPluginsCount:J.length},q[5]=j.length,q[6]=J.length,q[7]=X,q[8]=P;else P=q[8];A=P}let{totalFailed:z,failedMarketplacesCount:Y,failedPluginsCount:O}=A,$;if(q[9]!==K||q[10]!==Y||q[11]!==O||q[12]!==_||q[13]!==z)$=()=>{if(E7())return;if(!_){V("No installation status to monitor");return}if(z===0)return;if(V(`Plugin installation status: ${Y} failed marketplaces, ${O} failed plugins`),z===0)return;V(`Adding notification for ${z} failed installations`),K({key:"plugin-install-failed",jsx:y(Y8,{children:[y(T,{color:"error",children:[z," ",Iq(z,"plugin")," failed to install"]}),W(T,{dimColor:!0,children:" · /plugin for details"})]}),priority:"medium"})},q[9]=K,q[10]=Y,q[11]=O,q[12]=_,q[13]=z,q[14]=$;else $=q[14];let w;if(q[15]!==K||q[16]!==Y||q[17]!==O||q[18]!==z)w=[K,z,Y,O],q[15]=K,q[16]=Y,q[17]=O,q[18]=z,q[19]=w;else w=q[19];RU_.useEffect($,w)}function EN5(q){return q.status==="failed"}function LN5(q){return q.status==="failed"}function hN5(q){return q.plugins.installationStatus}var yU_,RU_;var LU_=h(()=>{G8();cz();n6();dq();z8();r();yU_=q6(K8(),1),RU_=q6(q8(),1)});function SU_(){let q=hU_.c(7),{addNotification:K}=o_(),_;if(q[0]===Symbol.for("react.memo_cache_sentinel"))_=[],q[0]=_;else _=q[0];let[A,z]=Ky6.useState(_),Y,O;if(q[1]===Symbol.for("react.memo_cache_sentinel"))Y=()=>{if(E7())return;return df_((j)=>{V(`Plugin autoupdate notification: ${j.length} plugin(s) updated`),z(j)})},O=[],q[1]=Y,q[2]=O;else Y=q[1],O=q[2];Ky6.useEffect(Y,O);let $,w;if(q[3]!==K||q[4]!==A)$=()=>{if(E7())return;if(A.length===0)return;let H=A.map(SN5),j=H.length<=2?H.join(" and "):`${H.length} plugins`;K({key:"plugin-autoupdate-restart",jsx:y(Y8,{children:[y(T,{color:"success",children:[H.length===1?"Plugin":"Plugins"," updated:"," ",j]}),W(T,{dimColor:!0,children:" · Run /reload-plugins to apply"})]}),priority:"low",timeoutMs:1e4}),V(`Showing plugin autoupdate notification for: ${H.join(", ")}`)},w=[A,K],q[3]=K,q[4]=A,q[5]=$,q[6]=w;else $=q[5],w=q[6];Ky6.useEffect($,w)}function SN5(q){let K=q.indexOf("@");return K>0?q.substring(0,K):q}var hU_,Ky6;var CU_=h(()=>{G8();cz();n6();z8();Z48();r();hU_=q6(K8(),1),Ky6=q6(q8(),1)});import{isAbsolute as CN5,resolve as bN5}from"path";function dOq(q,K,_){let A=[],z=[],Y=[];for(let[O,$]of Object.entries(q)){let w=K[O],H=bU_($.source,_?.projectRoot);if(!w)A.push(O);else if($.sourceIsFallback)Y.push(O);else if(!M2(H,w.source))z.push({name:O,declaredSource:H,materializedSource:w.source});else Y.push(O)}return{missing:A,sourceChanged:z,upToDate:Y}}async function BY8(q){let K=lB();if(Object.keys(K).length===0)return{installed:[],updated:[],failed:[],upToDate:[],skipped:[]};let _;try{_=await FA()}catch(j){A6(j),_={}}let A=dOq(K,_,{projectRoot:Tq()}),z=[...A.missing.map((j)=>({name:j,source:bU_(K[j].source),action:"install"})),...A.sourceChanged.map(({name:j,declaredSource:M})=>({name:j,source:M,action:"update"}))],Y=[],O=[];for(let j of z){if(q?.skip?.(j.name,j.source)){Y.push(j.name);continue}if(j.action==="update"&&zV(j.source)&&!await k7(j.source.path)){V(`[reconcile] '${j.name}' declared path does not exist; keeping materialized entry`),Y.push(j.name);continue}O.push(j)}if(O.length===0)return{installed:[],updated:[],failed:[],upToDate:A.upToDate,skipped:Y};V(`[reconcile] ${O.length} marketplace(s): ${O.map((j)=>`${j.name}(${j.action})`).join(", ")}`);let $=[],w=[],H=[];for(let j=0;j<O.length;j++){let{name:M,source:J,action:X}=O[j];q?.onProgress?.({type:"installing",name:M,action:X,index:j+1,total:O.length});try{let P=await _E(J);if(X==="install")$.push(M);else w.push(M);q?.onProgress?.({type:"installed",name:M,alreadyMaterialized:P.alreadyMaterialized})}catch(P){let f=d6(P);H.push({name:M,error:f}),q?.onProgress?.({type:"failed",name:M,error:f}),A6(P)}}return{installed:$,updated:w,failed:H,upToDate:A.upToDate,skipped:Y}}function bU_(q,K){if((q.source==="directory"||q.source==="file")&&!CN5(q.path)){let _=K??Tq(),A=e3(_);return{...q,path:bN5(A??_,q.path)}}return q}var QOq=h(()=>{LQ();G8();z8();N8();X7();m4();y8();PO();SM()});function lOq(q,K,_,A){q((z)=>({...z,plugins:{...z.plugins,installationStatus:{...z.plugins.installationStatus,marketplaces:z.plugins.installationStatus.marketplaces.map((Y)=>Y.name===K?{...Y,status:_,error:A}:Y)}}}))}async function IU_(q){V("performBackgroundPluginInstallations called");try{let K=lB(),_=await FA().catch(()=>({})),A=dOq(K,_),z=[...A.missing,...A.sourceChanged.map(($)=>$.name)];if(q(($)=>({...$,plugins:{...$.plugins,installationStatus:{marketplaces:z.map((w)=>({name:w,status:"pending"})),plugins:[]}}})),z.length===0)return;V(`Installing ${z.length} marketplace(s) in background`);let Y=await BY8({onProgress:($)=>{switch($.type){case"installing":lOq(q,$.name,"installing");break;case"installed":lOq(q,$.name,"installed");break;case"failed":lOq(q,$.name,"failed",$.error);break}}}),O={installed_count:Y.installed.length,updated_count:Y.updated.length,failed_count:Y.failed.length,up_to_date_count:Y.upToDate.length};if(Q("ev_event",O),g8("info","ev_event",O),Y.installed.length>0){KE(),V(`Auto-refreshing plugins after ${Y.installed.length} new marketplace(s) installed`);try{await ga(q)}catch($){A6($),V(`Auto-refresh failed, falling back to needsRefresh: ${$}`,{level:"warn"}),F2("performBackgroundPluginInstallations: auto-refresh failed"),q((w)=>{if(w.plugins.needsRefresh)return w;return{...w,plugins:{...w.plugins,needsRefresh:!0}}})}}else if(Y.updated.length>0)KE(),F2("performBackgroundPluginInstallations: marketplaces reconciled"),q(($)=>{if($.plugins.needsRefresh)return $;return{...$,plugins:{...$.plugins,needsRefresh:!0}}})}catch(K){A6(K)}}var xU_=h(()=>{z8();Xz();y8();PO();S3();QOq();FA8()});async function uU_(q){if(V("performStartupChecks called"),!Z3()){V("Trust not accepted for current directory - skipping plugin installations");return}try{if(V("Starting background plugin installations"),await dK8())KE(),F2("performStartupChecks: seed marketplaces changed"),q((_)=>{if(_.plugins.needsRefresh)return _;return{..._,plugins:{..._.plugins,needsRefresh:!0}}});await IU_(q)}catch(K){V(`Error initiating background plugin installations: ${K}`)}}var pU_=h(()=>{xU_();Wq();z8();PO();S3()});function gU_(){let q=mU_.c(11),K;if(q[0]===Symbol.for("react.memo_cache_sentinel"))K=KH.getInstance().getStatus(),q[0]=K;else K=q[0];let[_,A]=cY8.useState(K),z,Y;if(q[1]===Symbol.for("react.memo_cache_sentinel"))z=()=>{return KH.getInstance().subscribe(A)},Y=[],q[1]=z,q[2]=Y;else z=q[1],Y=q[2];if(cY8.useEffect(z,Y),!_.isAuthenticating&&!_.error&&_.output.length===0)return null;if(!_.isAuthenticating&&!_.error)return null;let O;if(q[3]===Symbol.for("react.memo_cache_sentinel"))O=W(T,{bold:!0,color:"permission",children:"Cloud Authentication"}),q[3]=O;else O=q[3];let $;if(q[4]!==_.output)$=_.output.length>0&&W(x,{flexDirection:"column",marginTop:1,children:_.output.slice(-5).map(xN5)}),q[4]=_.output,q[5]=$;else $=q[5];let w;if(q[6]!==_.error)w=_.error&&W(x,{marginTop:1,children:W(T,{color:"error",children:_.error})}),q[6]=_.error,q[7]=w;else w=q[7];let H;if(q[8]!==$||q[9]!==w)H=y(x,{flexDirection:"column",borderStyle:"round",borderColor:"permission",paddingX:1,marginY:1,children:[O,$,w]}),q[8]=$,q[9]=w,q[10]=H;else H=q[10];return H}function xN5(q,K){let _=q.match(IN5);if(!_)return W(T,{dimColor:!0,children:q},K);let A=_[0],z=_.index??0,Y=q.slice(0,z),O=q.slice(z+A.length);return y(T,{dimColor:!0,children:[Y,W(aK,{url:A,children:A}),O]},K)}var mU_,cY8,IN5;var BU_=h(()=>{n6();im6();r();mU_=q6(K8(),1),cY8=q6(q8(),1),IN5=/https?:\/\/\S+/});function FU_(q){let K=cU_.c(17),{addNotification:_}=o_(),A=qB(),z;if(K[0]!==A||K[1]!==q)z=MB8(A,q),K[0]=A,K[1]=q,K[2]=z;else z=K[2];let Y=z,O;if(K[3]!==A)O=JB8(A),K[3]=A,K[4]=O;else O=K[4];let $=O,w=Vo.useRef(null),H;if(K[5]===Symbol.for("react.memo_cache_sentinel"))H=e7(),K[5]=H;else H=K[5];let j=H,M;if(K[6]===Symbol.for("react.memo_cache_sentinel"))M=gV(),K[6]=M;else M=K[6];let J=M,X=j==="team"||j==="enterprise",[P,f]=Vo.useState(!1),D,Z;if(K[7]!==_||K[8]!==A.isUsingOverage||K[9]!==P||K[10]!==$)D=()=>{if(E7())return;if(A.isUsingOverage&&!P&&(!X||J))_({key:"limit-reached",text:$,priority:"immediate"}),f(!0);else if(!A.isUsingOverage&&P)f(!1)},Z=[A.isUsingOverage,$,P,_,J,X],K[7]=_,K[8]=A.isUsingOverage,K[9]=P,K[10]=$,K[11]=D,K[12]=Z;else D=K[11],Z=K[12];Vo.useEffect(D,Z);let G,v;if(K[13]!==_||K[14]!==Y)G=()=>{if(E7())return;if(Y&&Y!==w.current)w.current=Y,_({key:"rate-limit-warning",jsx:W(T,{children:W(T,{color:"warning",children:Y})}),priority:"high"})},v=[Y,_],K[13]=_,K[14]=Y,K[15]=G,K[16]=v;else G=K[15],v=K[16];Vo.useEffect(G,v)}var cU_,Vo;var UU_=h(()=>{cz();n6();my();zv6();wK();Uh();G8();r();cU_=q6(K8(),1),Vo=q6(q8(),1)});function pN5(q){let K=q.toLowerCase(),_=Jq();for(let[A,z]of Object.entries(uN5)){let Y=z.retirementDates[_];if(!K.includes(A)||!Y)continue;return{isDeprecated:!0,modelName:z.modelName,retirementDate:Y}}return{isDeprecated:!1}}function FY8(q){if(!q)return null;let K=pN5(q);if(!K.isDeprecated)return null;return`⚠ ${K.modelName} will be retired on ${K.retirementDate}. Consider switching to a newer model.`}var uN5;var iOq=h(()=>{Q7();uN5={"claude-3-opus":{modelName:"Claude 3 Opus",retirementDates:{firstParty:"January 5, 2026",bedrock:"January 15, 2026",vertex:"January 5, 2026",foundry:"January 5, 2026"}},"claude-3-7-sonnet":{modelName:"Claude 3.7 Sonnet",retirementDates:{firstParty:"February 19, 2026",bedrock:"April 28, 2026",vertex:"May 11, 2026",foundry:"February 19, 2026"}},"claude-3-5-haiku":{modelName:"Claude 3.5 Haiku",retirementDates:{firstParty:"February 19, 2026",bedrock:null,vertex:null,foundry:null}}}});function QU_(q){let K=dU_.c(4),{addNotification:_}=o_(),A=UY8.useRef(null),z,Y;if(K[0]!==_||K[1]!==q)z=()=>{if(E7())return;let O=FY8(q);if(O&&O!==A.current)A.current=O,_({key:"model-deprecation-warning",text:O,color:"warning",priority:"high"});if(!O)A.current=null},Y=[q,_],K[0]=_,K[1]=q,K[2]=z,K[3]=Y;else z=K[2],Y=K[3];UY8.useEffect(z,Y)}var dU_,UY8;var lU_=h(()=>{cz();iOq();G8();dU_=q6(K8(),1),UY8=q6(q8(),1)});function iU_(){sv(async()=>{if(RZ())return null;let q=await db("latest");if(!q)return null;if(!aM(q,"1.8.38"))return null;return{key:"puku-cli-update-available",priority:"medium",timeoutMs:30000,color:"warning",text:`↑ puku-cli ${q} is available (you have 1.8.38). Run \`puku-cli update\` to upgrade.`}})}var nU_=h(()=>{OE();Wq();No()});function aU_(q){let K=rU_.c(26),{ideSelection:_,mcpClients:A,ideInstallationStatus:z}=q,{addNotification:Y,removeNotification:O}=o_(),{status:$,ideName:w}=U36(A),H=yo.useRef(!1),j;if(K[0]!==z)j=z?O0(z?.ideType):!1,K[0]=z,K[1]=j;else j=K[1];let M=j,J=z?.error||M,X=$==="connected"&&(_?.filePath||_?.text&&_.lineCount>0),P=$==="connected"&&!X,f=J&&!M&&!P&&!X,D=J&&M&&!P&&!X,Z,G;if(K[2]!==Y||K[3]!==$||K[4]!==O||K[5]!==D)Z=()=>{if(E7())return;if(Zw()||$!==null||D){O("ide-status-hint");return}if(H.current||(j8().ideHintShownCount??0)>=mN5)return;let I=setTimeout(gN5,3000,H,Y);return()=>clearTimeout(I)},G=[Y,O,$,D],K[2]=Y,K[3]=$,K[4]=O,K[5]=D,K[6]=Z,K[7]=G;else Z=K[6],G=K[7];yo.useEffect(Z,G);let v,k;if(K[8]!==Y||K[9]!==w||K[10]!==$||K[11]!==O||K[12]!==f||K[13]!==D)v=()=>{if(E7())return;if(f||D||$!=="disconnected"||!w){O("ide-status-disconnected");return}Y({key:"ide-status-disconnected",text:`${w} disconnected`,color:"error",priority:"medium"})},k=[Y,O,$,w,f,D],K[8]=Y,K[9]=w,K[10]=$,K[11]=O,K[12]=f,K[13]=D,K[14]=v,K[15]=k;else v=K[14],k=K[15];yo.useEffect(v,k);let N,L;if(K[16]!==Y||K[17]!==O||K[18]!==D)N=()=>{if(E7())return;if(!D){O("ide-status-jetbrains-disconnected");return}Y({key:"ide-status-jetbrains-disconnected",text:"IDE plugin not connected · /status for info",priority:"medium"})},L=[Y,O,D],K[16]=Y,K[17]=O,K[18]=D,K[19]=N,K[20]=L;else N=K[19],L=K[20];yo.useEffect(N,L);let C,b;if(K[21]!==Y||K[22]!==O||K[23]!==f)C=()=>{if(E7())return;if(!f){O("ide-status-install-error");return}Y({key:"ide-status-install-error",text:"IDE extension install failed (see /status for info)",color:"error",priority:"medium"})},b=[Y,O,f],K[21]=Y,K[22]=O,K[23]=f,K[24]=C,K[25]=b;else C=K[24],b=K[25];yo.useEffect(C,b)}function gN5(q,K){B46(!0).then((_)=>{let A=_[0]?.name;if(A&&!q.current)q.current=!0,B8(BN5),K({key:"ide-status-hint",jsx:y(T,{dimColor:!0,children:["/ide for ",W(T,{color:"ide",children:A})]}),priority:"low"})})}function BN5(q){return{...q,ideHintShownCount:(q.ideHintShownCount??0)+1}}var rU_,yo,mN5=5;var oU_=h(()=>{cz();n6();Wq();z3();G8();Pz8();r();rU_=q6(K8(),1),yo=q6(q8(),1)});function tU_(){sv(FN5)}function FN5(){let q=j8(),K=[];for(let _ of cN5){let A=_(q);if(A)K.push(A)}return K.length>0?K:null}function sU_(q){return q!==void 0&&Date.now()-q<3000}var cN5;var eU_=h(()=>{Wq();No();cN5=[(q)=>{if(!sU_(q.sonnet45To46MigrationTimestamp))return;return{key:"sonnet-46-update",text:"Model updated to Sonnet 4.6",color:"suggestion",priority:"high",timeoutMs:3000}},(q)=>{let K=Boolean(q.legacyOpusMigrationTimestamp),_=q.legacyOpusMigrationTimestamp??q.opusProMigrationTimestamp;if(!sU_(_))return;return{key:"opus-pro-update",text:K?"Model updated to Opus 4.6 · Set PUKU_CLI_DISABLE_LEGACY_MODEL_REMAP=1 to opt out":"Model updated to Opus 4.6",color:"suggestion",priority:"high",timeoutMs:K?8000:3000}}]});function qd_(){sv(dN5)}async function dN5(){if((j8().subscriptionNoticeCount??0)>=UN5)return null;let q=await lN5();if(q===null)return null;return B8(QN5),Q("ev_event",{}),{key:"switch-to-subscription",jsx:y(T,{color:"suggestion",children:["Use your existing Puku ",q," plan with puku-cli",y(T,{color:"text",dimColor:!0,children:[" ","· /login to activate"]})]}),priority:"low"}}function QN5(q){return{...q,subscriptionNoticeCount:(q.subscriptionNoticeCount??0)+1}}async function lN5(){if(DK())return null;let q=await B8K();if(!q)return null;if(q.account.has_claude_max)return"Max";if(q.account.has_claude_pro)return"Pro";return null}var UN5=3;var Kd_=h(()=>{b86();wK();n6();Wq();No();r()});function _d_(q){if(!("text"in q))return 1;let K=q.text.match(/^(\d+)/);return K?.[1]?parseInt(K[1],10):1}function iN5(q,K){return Ad_(_d_(q)+1)}function Ad_(q){return{key:"teammate-spawn",text:q===1?"1 agent spawned":`${q} agents spawned`,priority:"low",timeoutMs:5000,fold:iN5}}function nN5(q,K){return zd_(_d_(q)+1)}function zd_(q){return{key:"teammate-shutdown",text:q===1?"1 agent shut down":`${q} agents shut down`,priority:"low",timeoutMs:5000,fold:nN5}}function Yd_(){let q=X8((z)=>z.tasks),{addNotification:K}=o_(),_=_y6.useRef(new Set),A=_y6.useRef(new Set);_y6.useEffect(()=>{if(E7())return;for(let[z,Y]of Object.entries(q)){if(!Z$(Y))continue;if(Y.status==="running"&&!_.current.has(z))_.current.add(z),K(Ad_(1));if(Y.status==="completed"&&!A.current.has(z))A.current.add(z),K(zd_(1))}},[q,K])}var _y6;var Od_=h(()=>{G8();cz();dq();_y6=q6(q8(),1)});function Md_(){let q=jd_.c(13),{addNotification:K}=o_(),_=X8(sN5),A=sq(),z,Y;if(q[0]!==K||q[1]!==_||q[2]!==A)z=()=>{if(E7())return;if(!K7())return;return OqK((j)=>{if(j)K({key:Hd_,color:"fastMode",priority:"immediate",text:"Fast mode is now available · /fast to turn on"});else if(_)A(oN5),K({key:Hd_,color:"warning",priority:"immediate",text:"Fast mode has been disabled by your organization"})})},Y=[K,_,A],q[0]=K,q[1]=_,q[2]=A,q[3]=z,q[4]=Y;else z=q[3],Y=q[4];dY8.useEffect(z,Y);let O,$;if(q[5]!==K||q[6]!==A)O=()=>{if(E7())return;if(!K7())return;return zqK((j)=>{A(aN5),K({key:rN5,color:"warning",priority:"immediate",text:j})})},$=[K,A],q[5]=K,q[6]=A,q[7]=O,q[8]=$;else O=q[7],$=q[8];dY8.useEffect(O,$);let w,H;if(q[9]!==K||q[10]!==_)w=()=>{if(E7())return;if(!_)return;let j=e8K((J,X)=>{let P=fA(J-Date.now(),{hideTrailingZeros:!0}),f=tN5(X,P);K({key:$d_,invalidates:[wd_],text:f,color:"warning",priority:"immediate"})}),M=qqK(()=>{K({key:wd_,invalidates:[$d_],color:"fastMode",text:"Fast limit reset · now using fast mode",priority:"immediate"})});return()=>{j(),M()}},H=[K,_],q[9]=K,q[10]=_,q[11]=w,q[12]=H;else w=q[11],H=q[12];dY8.useEffect(w,H)}function aN5(q){return{...q,fastMode:!1}}function oN5(q){return{...q,fastMode:!1}}function sN5(q){return q.fastMode}function tN5(q,K){switch(q){case"overloaded":return`Fast mode overloaded and is temporarily unavailable · resets in ${K}`;case"rate_limit":return`Fast limit reached and temporarily disabled · resets in ${K}`}}var jd_,dY8,$d_="fast-mode-cooldown-started",wd_="fast-mode-cooldown-expired",Hd_="fast-mode-org-changed",rN5="fast-mode-overage-rejected";var Jd_=h(()=>{cz();dq();Pj();OK();G8();jd_=q6(K8(),1),dY8=q6(q8(),1)});function Pd_(q){let K=Xd_.c(8),{onRun:_,onCancel:A,reason:z}=q,Y=QY8.useRef(!1),O;if(K[0]===Symbol.for("react.memo_cache_sentinel"))O={context:"Confirmation"},K[0]=O;else O=K[0];Kq("confirm:no",A,O);let $,w;if(K[1]!==_)$=()=>{if(!Y.current)Y.current=!0,_()},w=[_],K[1]=_,K[2]=$,K[3]=w;else $=K[2],w=K[3];QY8.useEffect($,w);let H;if(K[4]===Symbol.for("react.memo_cache_sentinel"))H=W(x,{children:W(T,{bold:!0,children:"Running feedback capture..."})}),K[4]=H;else H=K[4];let j;if(K[5]===Symbol.for("react.memo_cache_sentinel"))j=W(x,{children:y(T,{dimColor:!0,children:["Press ",W(c8,{shortcut:"Esc",action:"cancel"})," anytime"]})}),K[5]=j;else j=K[5];let M;if(K[6]!==z)M=y(x,{flexDirection:"column",marginTop:1,children:[H,j,W(x,{children:y(T,{dimColor:!0,children:["Reason: ",z]})})]}),K[6]=z,K[7]=M;else M=K[7];return M}function fd_(q){return!1;switch(q){case"feedback_survey_bad":return!1;case"feedback_survey_good":return!1;default:return!1}}function Wd_(q){return"/issue"}function Dd_(q){switch(q){case"feedback_survey_bad":return'You responded "Bad" to the feedback survey';case"feedback_survey_good":return'You responded "Good" to the feedback survey';default:return"Unknown reason"}}var Xd_,QY8;var Zd_=h(()=>{R7();n6();XK();r();Xd_=q6(K8(),1),QY8=q6(q8(),1)});function Gd_(){return null}function KV5(q){for(let K of q){if(K.type!=="assistant")continue;let _=K.message.content;if(!Array.isArray(_))continue;for(let A of _){if(A.type!=="tool_use"||!("name"in A))continue;let z=A.name;if(z.startsWith("mcp__"))return!1;if(z===HK){let O=A.input?.command||"";if(eN5.some(($)=>$.test(O)))return!1}}}return!0}function _V5(q){for(let K=q.length-1;K>=0;K--){let _=q[K];if(_.type!=="user")continue;let A=Pn(_);if(!A)continue;return qV5.some((z)=>z.test(A))}return!1}function vd_(q,K){if(process.env.USER_TYPE!=="ant")return!1;let _=Ay6.useRef(0),A=Ay6.useRef(-1),z=Ay6.useMemo(()=>KV5(q)&&_V5(q),[q]);if(A.current===K)return!0;if(Date.now()-_.current<zV5)return!1;if(K<AV5)return!1;if(!z)return!1;return _.current=Date.now(),A.current=K,!0}var Ay6,eN5,qV5,AV5=3,zV5=1800000;var Td_=h(()=>{kq();Ay6=q6(q8(),1),eN5=[/\bcurl\b/,/\bwget\b/,/\bssh\b/,/\bkubectl\b/,/\bsrun\b/,/\bdocker\b/,/\bbq\b/,/\bgsutil\b/,/\bgcloud\b/,/\baws\b/,/\bgit\s+push\b/,/\bgit\s+pull\b/,/\bgit\s+fetch\b/,/\bgh\s+(pr|issue)\b/,/\bnc\b/,/\bncat\b/,/\btelnet\b/,/\bftp\b/],qV5=[/^no[,!]\s/i,/\bthat'?s (wrong|incorrect|not (what|right|correct))\b/i,/\bnot what I (asked|wanted|meant|said)\b/i,/\bI (said|asked|wanted|told you|already said)\b/i,/\bwhy did you\b/i,/\byou should(n'?t| not)? have\b/i,/\byou were supposed to\b/i,/\btry again\b/i,/\b(undo|revert) (that|this|it|what you)\b/i]});var YV5,OV5;var kd_=h(()=>{G8();n6();r();YV5=q6(K8(),1),OV5=q6(q8(),1)});function nOq(q){let K=Nd_.c(7),{children:_,mouseTracking:A}=q,z=A===void 0?!0:A,Y=zy6.useContext(ip),O=zy6.useContext(rp),$,w;if(K[0]!==z||K[1]!==O)$=()=>{let M=AY.get(process.stdout);if(!O)return;return O(DP6+"\x1B[2J\x1B[H"+(z?Ol:"")),M?.setAltScreenActive(!0,z),()=>{M?.setAltScreenActive(!1),M?.clearTextSelection(),O((z?RS:"")+WK6)}},w=[O,z],K[0]=z,K[1]=O,K[2]=$,K[3]=w;else $=K[2],w=K[3];zy6.useInsertionEffect($,w);let H=Y?.rows??24,j;if(K[4]!==_||K[5]!==H)j=W(wH,{flexDirection:"column",height:H,width:"100%",flexShrink:0,children:_}),K[4]=_,K[5]=H,K[6]=j;else j=K[6];return j}var Nd_,zy6;var Vd_=h(()=>{lX();lp();CS();SS();TP6();r();Nd_=q6(K8(),1),zy6=q6(q8(),1)});function yd_(q,K,_){let A=M$6.useRef(!1),z=M$6.useRef(_);z.current=_,M$6.useEffect(()=>{if(!K)return;return q.subscribe(()=>{let O=q.getState(),$=q.hasSelection();if(O?.isDragging){A.current=!1;return}if(!$){A.current=!1;return}if(A.current)return;if(!(j8().copyOnSelect??!0))return;let H=q.copySelectionNoClear();if(!H||!H.trim()){A.current=!0;return}A.current=!0,z.current?.(H)})},[K,q])}function Rd_(q){let[K]=fK();M$6.useEffect(()=>{q.setSelectionBgColor(HH(K).selectionBg)},[q,K])}var M$6;var Ed_=h(()=>{dq6();Wq();Dk();M$6=q6(q8(),1)});function vV5(q){if(q.wheelUp||q.wheelDown)return!1;if((q.leftArrow||q.rightArrow||q.upArrow||q.downArrow||q.home||q.end||q.pageUp||q.pageDown)&&(q.shift||q.meta||q.super))return!1;return!0}function TV5(q){if(!q.shift||q.meta)return null;if(q.leftArrow)return"left";if(q.rightArrow)return"right";if(q.upArrow)return"up";if(q.downArrow)return"down";if(q.home)return"lineStart";if(q.end)return"lineEnd";return null}function Sd_(q,K,_){if(!q.xtermJs){if(q.wheelMode&&_-q.time>PV5)q.wheelMode=!1,q.burstCount=0,q.mult=q.base;if(q.pendingFlip){if(q.pendingFlip=!1,K!==q.dir||_-q.time>jV5)return q.dir=K,q.time=_,q.mult=q.base,Math.floor(q.mult);q.wheelMode=!0}let $=_-q.time;if(K!==q.dir&&q.dir!==0)return q.pendingFlip=!0,q.time=_,0;if(q.dir=K,q.time=_,q.wheelMode)if($<hd_)if(++q.burstCount>=5)q.wheelMode=!1,q.burstCount=0,q.mult=q.base;else return 1;else q.burstCount=0;if(q.wheelMode){let w=Math.pow(0.5,$/Ld_),H=Math.max(JV5,q.base*2),j=1+(q.mult-1)*w+MV5*w;return q.mult=Math.min(H,j,q.mult+XV5),Math.floor(q.mult)}if($>$V5)q.mult=q.base;else{let w=Math.max(HV5,q.base*2);q.mult=Math.min(w,q.mult+wV5)}return Math.floor(q.mult)}let A=_-q.time,z=K===q.dir;if(q.time=_,q.dir=K,z&&A<hd_)return 1;if(!z||A>GV5)q.mult=2,q.frac=0;else{let $=Math.pow(0.5,A/Ld_),w=A>=WV5?DV5:ZV5;q.mult=Math.min(w,1+(q.mult-1)*$+fV5*$)}let Y=q.mult+q.frac,O=Math.floor(Y);return q.frac=Y-O,O}function kV5(){let q=process.env.PUKU_CLI_SCROLL_SPEED;if(!q)return 1;let K=parseFloat(q);return Number.isNaN(K)||K<=0?1:Math.min(K,20)}function NV5(q=!1,K=1){return{time:0,mult:K,dir:0,xtermJs:q,frac:0,base:K,pendingFlip:!1,wheelMode:!1,burstCount:0}}function Cd_(){let q=LS(),K=kV5();return V(`wheel accel: ${q?"decay (xterm.js)":"window (native)"} · base=${K} · TERM_PROGRAM=${process.env.TERM_PROGRAM??"unset"}`),NV5(q,K)}function rOq({scrollRef:q,isActive:K,onScroll:_,isModal:A=!1}){let z=CK6(),{addNotification:Y}=o_(),O=LI.useRef(null);function $(j){let M=fWK(),J=j.length,X;switch(M){case"native":X=`copied ${J} chars to clipboard`;break;case"tmux-buffer":X=`copied ${J} chars to tmux buffer · paste with prefix + ]`;break;case"osc52":X=`sent ${J} chars via OSC 52 · check terminal clipboard settings if paste fails`;break}Y({key:"selection-copied",text:X,color:"suggestion",priority:"immediate",timeoutMs:M==="native"?2000:4000})}function w(){let j=z.copySelection();if(j)$(j)}function H(j,M){let J=z.getState();if(!J?.anchor||!J.focus)return;let X=j.getViewportTop(),P=X+j.getViewportHeight()-1;if(J.anchor.row<X||J.anchor.row>P)return;if(J.focus.row<X||J.focus.row>P)return;let f=Math.max(0,j.getScrollHeight()-j.getViewportHeight()),D=j.getScrollTop()+j.getPendingDelta(),Z=Math.max(0,Math.min(f,D+M))-D;if(Z===0)return;if(Z>0)z.captureScrolledRows(X,X+Z-1,"above"),z.shiftSelection(-Z,X,P);else{let G=-Z;z.captureScrolledRows(P-G+1,P,"below"),z.shiftSelection(G,X,P)}}return vK({"scroll:pageUp":()=>{let j=q.current;if(!j)return;let M=-Math.max(1,Math.floor(j.getViewportHeight()/2));H(j,M);let J=EI(j,M);_?.(J,j)},"scroll:pageDown":()=>{let j=q.current;if(!j)return;let M=Math.max(1,Math.floor(j.getViewportHeight()/2));H(j,M);let J=EI(j,M);_?.(J,j)},"scroll:lineUp":()=>{z.clearSelection();let j=q.current;if(!j||j.getScrollHeight()<=j.getViewportHeight())return!1;O.current??=Cd_(),hV5(j,Sd_(O.current,-1,performance.now())),_?.(!1,j)},"scroll:lineDown":()=>{z.clearSelection();let j=q.current;if(!j||j.getScrollHeight()<=j.getViewportHeight())return!1;O.current??=Cd_();let M=Sd_(O.current,1,performance.now()),J=LV5(j,M);_?.(J,j)},"scroll:top":()=>{let j=q.current;if(!j)return;H(j,-(j.getScrollTop()+j.getPendingDelta())),j.scrollTo(0),_?.(!1,j)},"scroll:bottom":()=>{let j=q.current;if(!j)return;let M=Math.max(0,j.getScrollHeight()-j.getViewportHeight());H(j,M-(j.getScrollTop()+j.getPendingDelta())),j.scrollTo(M),j.scrollToBottom(),_?.(!0,j)},"selection:copy":w},{context:"Scroll",isActive:K}),vK({"scroll:halfPageUp":()=>{let j=q.current;if(!j)return;let M=-Math.max(1,Math.floor(j.getViewportHeight()/2));H(j,M);let J=EI(j,M);_?.(J,j)},"scroll:halfPageDown":()=>{let j=q.current;if(!j)return;let M=Math.max(1,Math.floor(j.getViewportHeight()/2));H(j,M);let J=EI(j,M);_?.(J,j)},"scroll:fullPageUp":()=>{let j=q.current;if(!j)return;let M=-Math.max(1,j.getViewportHeight());H(j,M);let J=EI(j,M);_?.(J,j)},"scroll:fullPageDown":()=>{let j=q.current;if(!j)return;let M=Math.max(1,j.getViewportHeight());H(j,M);let J=EI(j,M);_?.(J,j)}},{context:"Scroll",isActive:K}),lK((j,M,J)=>{let X=q.current;if(!X)return;let P=CV5(X,SV5(j,M),(f)=>H(X,f));if(P===null)return;_?.(P,X),J.stopImmediatePropagation()},{isActive:K&&A}),lK((j,M,J)=>{if(!z.hasSelection())return;if(M.escape){z.clearSelection(),J.stopImmediatePropagation();return}if(M.ctrl&&!M.shift&&!M.meta&&j==="c"){w(),J.stopImmediatePropagation();return}let X=TV5(M);if(X){z.moveFocus(X),J.stopImmediatePropagation();return}if(vV5(M))z.clearSelection()},{isActive:K}),RV5(q,z,K,_),yd_(z,K,$),Rd_(z),null}function RV5(q,K,_,A){let z=LI.useRef(null),Y=LI.useRef(0),O=LI.useRef(0),$=LI.useRef(0),w=LI.useRef(A);w.current=A,LI.useEffect(()=>{if(!_)return;function H(){if(Y.current=0,z.current)clearInterval(z.current),z.current=null}function j(){let P=K.getState(),f=q.current,D=Y.current;if(!P?.isDragging||!P.focus||!f||D===0||++$.current>yV5){H();return}if(f.getPendingDelta()!==0)return;let Z=f.getViewportTop(),G=Z+f.getViewportHeight()-1;if(D<0){if(f.getScrollTop()<=0){H();return}let v=Math.min(lY8,f.getScrollTop());K.captureScrolledRows(G-v+1,G,"below"),K.shiftAnchor(v,0,G),f.scrollBy(-lY8)}else{let v=Math.max(0,f.getScrollHeight()-f.getViewportHeight());if(f.getScrollTop()>=v){H();return}let k=Math.min(lY8,v-f.getScrollTop());K.captureScrolledRows(Z,Z+k-1,"above"),K.shiftAnchor(-k,Z,G),f.scrollBy(lY8)}w.current?.(!1,f)}function M(P){if(O.current=P,Y.current===P)return;if(H(),Y.current=P,$.current=0,j(),Y.current===P)z.current=setInterval(j,VV5)}function J(){let P=q.current;if(!P){H();return}let f=P.getViewportTop(),D=f+P.getViewportHeight()-1,Z=K.getState();if(!Z?.isDragging||Z.scrolledOffAbove.length===0&&Z.scrolledOffBelow.length===0)O.current=0;let G=EV5(Z,f,D,O.current);if(G===0){if(O.current!==0&&Z?.focus){let v=Z.focus.row<f?-1:Z.focus.row>D?1:0;if(v!==0&&v!==O.current)Z.scrolledOffAbove=[],Z.scrolledOffBelow=[],Z.scrolledOffAboveSW=[],Z.scrolledOffBelowSW=[],O.current=0}H()}else M(G)}let X=K.subscribe(J);return()=>{X(),H(),O.current=0}},[_,q,K])}function EV5(q,K,_,A=0){if(!q?.isDragging||!q.anchor||!q.focus)return 0;let z=q.focus.row,Y=z<K?-1:z>_?1:0;if(A!==0)return Y===A?Y:0;if(q.anchor.row<K||q.anchor.row>_)return 0;return Y}function EI(q,K){let _=Math.max(0,q.getScrollHeight()-q.getViewportHeight()),A=q.getScrollTop()+q.getPendingDelta()+K;if(A>=_)return q.scrollTo(_),q.scrollToBottom(),!0;return q.scrollTo(Math.max(0,A)),!1}function LV5(q,K){let _=Math.max(0,q.getScrollHeight()-q.getViewportHeight());if(q.getScrollTop()+q.getPendingDelta()+K>=_)return q.scrollToBottom(),!0;return q.scrollBy(K),!1}function hV5(q,K){if(q.getScrollTop()+q.getPendingDelta()-K<=0){q.scrollTo(0);return}q.scrollBy(-K)}function SV5(q,K){if(K.meta)return null;if(!K.ctrl&&!K.shift){if(K.upArrow)return"lineUp";if(K.downArrow)return"lineDown";if(K.home)return"top";if(K.end)return"bottom"}if(K.ctrl){if(K.shift)return null;switch(q){case"u":return"halfPageUp";case"d":return"halfPageDown";case"b":return"fullPageUp";case"f":return"fullPageDown";case"n":return"lineDown";case"p":return"lineUp";default:return null}}let _=q[0];if(!_||q!==_.repeat(q.length))return null;if(_==="G"||_==="g"&&K.shift)return"bottom";if(K.shift)return null;switch(_){case"g":return"top";case"j":return"lineDown";case"k":return"lineUp";case" ":return"fullPageDown";case"b":return"fullPageUp";default:return null}}function CV5(q,K,_){switch(K){case null:return null;case"lineUp":case"lineDown":{let A=K==="lineDown"?1:-1;return _(A),EI(q,A)}case"halfPageUp":case"halfPageDown":{let A=Math.max(1,Math.floor(q.getViewportHeight()/2)),z=K==="halfPageDown"?A:-A;return _(z),EI(q,z)}case"fullPageUp":case"fullPageDown":{let A=Math.max(1,q.getViewportHeight()),z=K==="fullPageDown"?A:-A;return _(z),EI(q,z)}case"top":return _(-(q.getScrollTop()+q.getPendingDelta())),q.scrollTo(0),!1;case"bottom":{let A=Math.max(0,q.getScrollHeight()-q.getViewportHeight());return _(A-(q.getScrollTop()+q.getPendingDelta())),q.scrollTo(A),q.scrollToBottom(),!0}}}var LI,$V5=40,wV5=0.3,HV5=6,jV5=200,MV5=15,JV5=15,XV5=3,PV5=1500,Ld_=150,fV5=5,hd_=5,WV5=80,DV5=3,ZV5=6,GV5=500,lY8=2,VV5=50,yV5=200;var bd_=h(()=>{cz();Ed_();LU6();hS();$w();n6();XK();z8();LI=q6(q8(),1)});var gd_={};S8(gd_,{REPL:()=>sOq});import{dirname as bV5,join as IV5}from"path";import{tmpdir as xV5}from"os";import{writeFile as uV5}from"fs/promises";import{randomUUID as Yy6}from"crypto";function xd_(q){let K=oOq.c(9),{showAllInTranscript:_,virtualScroll:A,searchBadge:z,suppressShowAll:Y,status:O}=q,$=Y===void 0?!1:Y,w=m7("app:toggleTranscript","Global","ctrl+o"),H=m7("transcript:toggleShowAll","Transcript","ctrl+e"),j=z?" · n/N to navigate":A?` · ${s6.arrowUp}${s6.arrowDown} scroll · home/end top/bottom`:$?"":` · ${H} to ${_?"collapse":"show all"}`,M;if(K[0]!==j||K[1]!==w)M=y(T,{dimColor:!0,children:["Showing detailed transcript · ",w," to toggle",j]}),K[0]=j,K[1]=w,K[2]=M;else M=K[2];let J;if(K[3]!==z||K[4]!==O)J=O?y(Y8,{children:[W(x,{flexGrow:1}),y(T,{children:[O," "]})]}):z?y(Y8,{children:[W(x,{flexGrow:1}),y(T,{dimColor:!0,children:[z.current,"/",z.count," "]})]}):null,K[3]=z,K[4]=O,K[5]=J;else J=K[5];let X;if(K[6]!==M||K[7]!==J)X=y(x,{noSelect:!0,alignItems:"center",alignSelf:"center",borderTopDimColor:!0,borderBottom:!1,borderLeft:!1,borderRight:!1,borderStyle:"single",marginTop:1,paddingLeft:2,width:"100%",children:[M,J]}),K[6]=M,K[7]=J,K[8]=X;else X=K[8];return X}function QV5({jumpRef:q,count:K,current:_,onClose:A,onCancel:z,setHighlight:Y,initialQuery:O}){let{query:$,cursorOffset:w}=GD({isActive:!0,initialQuery:O,onExit:()=>A($),onCancel:z}),[H,j]=DO.useState("building");DO.useEffect(()=>{let P=!0,f=q.current?.warmSearchIndex;if(!f){j(null);return}return j("building"),f().then((D)=>{if(!P)return;if(D<20)j(null);else j({ms:D}),setTimeout(()=>P&&j(null),2000)}),()=>{P=!1}},[]);let M=H!=="building";d8.useEffect(()=>{if(!M)return;q.current?.setSearchQuery($),Y($)},[$,M]);let J=w,X=J<$.length?$[J]:" ";return y(x,{borderTopDimColor:!0,borderBottom:!1,borderLeft:!1,borderRight:!1,borderStyle:"single",marginTop:1,paddingLeft:2,width:"100%",noSelect:!0,children:[W(T,{children:"/"}),W(T,{children:$.slice(0,J)}),W(T,{inverse:!0,children:X}),J<$.length&&W(T,{children:$.slice(J+1)}),W(x,{flexGrow:1}),H==="building"?W(T,{dimColor:!0,children:"indexing… "}):H?y(T,{dimColor:!0,children:["indexed in ",H.ms,"ms "]}):K===0&&$?W(T,{color:"error",children:"no matches "}):K>0?y(T,{dimColor:!0,children:[_,"/",K," "]}):null]})}function pd_(q){let K=oOq.c(6),{isAnimating:_,title:A,disabled:z,noPrefix:Y}=q,O=hO(),[$,w]=d8.useState(0),H,j;if(K[0]!==z||K[1]!==_||K[2]!==Y||K[3]!==O)H=()=>{if(z||Y||!_||!O)return;let J=setInterval(iV5,lV5,w);return()=>clearInterval(J)},j=[z,Y,_,O],K[0]=z,K[1]=_,K[2]=Y,K[3]=O,K[4]=H,K[5]=j;else H=K[4],j=K[5];d8.useEffect(H,j);let M=_?md_[$]??ud_:ud_;return CU6(z?null:Y?A:`${M} ${A}`),null}function iV5(q){return q(nV5)}function nV5(q){return(q+1)%md_.length}function sOq({commands:q,debug:K,initialTools:_,initialMessages:A,pendingHookMessages:z,initialFileHistorySnapshots:Y,initialContentReplacements:O,initialAgentName:$,initialAgentColor:w,mcpClients:H,dynamicMcpConfig:j,autoConnectIdeFlag:M,strictMcpConfig:J=!1,systemPrompt:X,appendSystemPrompt:P,onBeforeQuery:f,onTurnComplete:D,disabled:Z=!1,mainThreadAgentDefinition:G,disableSlashCommands:v=!1,taskListId:k,remoteSessionConfig:N,directConnectConfig:L,sshSession:C,thinkingConfig:b}){let I=!!N,p=d8.useMemo(()=>u6(process.env.PUKU_CLI_DISABLE_TERMINAL_TITLE),[]),m=d8.useMemo(()=>!1,[]),B=d8.useMemo(()=>u6(process.env.PUKU_CLI_DISABLE_VIRTUAL_SCROLL),[]),g=!1,[u,F]=d8.useState(G),U=X8((O8)=>O8.toolPermissionContext),d=X8((O8)=>O8.verbose),n=X8((O8)=>O8.mcp),_6=X8((O8)=>O8.plugins),o=X8((O8)=>O8.agentDefinitions),t=X8((O8)=>O8.fileHistory),a=X8((O8)=>O8.initialMessage),s=X8((O8)=>O8.pukuAuthSessionAvailable),e=SE(),P6=X8((O8)=>O8.spinnerTip),O6=X8((O8)=>O8.expandedView)==="tasks",k6=X8((O8)=>O8.pendingWorkerRequest),H6=X8((O8)=>O8.pendingSandboxRequest),J6=X8((O8)=>O8.teamContext),w6=X8((O8)=>O8.tasks),j6=X8((O8)=>O8.workerSandboxPermissions),K6=X8((O8)=>O8.elicitation),$6=X8((O8)=>O8.ultraplanPendingChoice),T6=X8((O8)=>O8.ultraplanLaunchPending),c6=X8((O8)=>O8.viewingAgentTaskId),x6=sq(),F6=c6?w6[c6]:void 0,a6=t$(F6)&&F6.retain&&!F6.diskLoaded;d8.useEffect(()=>{if(!c6||!a6)return;let O8=c6;zB(aY(O8)).then((v8)=>{x6((I8)=>{let gq=I8.tasks[O8];if(!t$(gq)||gq.diskLoaded||!gq.retain)return I8;let qK=gq.messages??[],J_=new Set(qK.map((WK)=>WK.uuid)),KK=v8?v8.messages.filter((WK)=>!J_.has(WK.uuid)):[];return{...I8,tasks:{...I8.tasks,[O8]:{...gq,messages:[...KK,...qK],diskLoaded:!0}}}})})},[c6,a6,x6]);let b6=y5(),L6=ap(),f6=Tw(),[D6,i6]=d8.useState(q);Oc_(I?void 0:tz(),i6);let o6=DO.useSyncExternalStore(Id_?.subscribeToProactiveChanges??BV5,Id_?.isProactiveActive??cV5),h6=X8((O8)=>O8.isBriefOnly),V6=d8.useMemo(()=>pH(U),[U,o6,h6]);giK(),BiK();let[g6,G6]=d8.useState(j),Z6=d8.useCallback((O8)=>{G6(O8)},[G6]),[W6,E6]=d8.useState("prompt"),[C6,N6]=d8.useState(!1),[U6,A8]=d8.useState(!1),[Q6,J8]=d8.useState(""),f8=d8.useRef(0),v6=d8.useRef(void 0),r6=d8.useRef(!1),{addNotification:H8,removeNotification:E8}=o_(),$q=FV5,vq=qc_(H,n.clients),[tq,SK]=d8.useState(void 0),[__,MK]=d8.useState(null),[Rq,z6]=d8.useState(null),[M6,R6]=d8.useState(!1),[l6,e6]=d8.useState(()=>{return!1}),[t6,m8]=d8.useState(()=>xc_(f6)),k8=X8((O8)=>O8.showRemoteCallout),[i8,Aq]=d8.useState(()=>bF_());tU_(),qd_(),aU_({ideSelection:tq,mcpClients:vq,ideInstallationStatus:Rq}),tF_({mcpClients:vq}),qU_(),EU_(),SU_(),B78(),FU_(f6),Md_(),QU_(f6),mV5(),tc_(),XF_(),DF_(),iU_(),AU_(),Yd_();let{recommendation:Qq,handleResponse:Uq}=WU_(),{recommendation:bK,handleResponse:FK}=TU_(),M_=d8.useMemo(()=>{return[...V6,..._]},[V6,_]);XY8({enabled:!I});let lq=ddK();d8.useEffect(()=>{if(I)return;uU_(x6)},[x6,I]),vF_(I?aOq:vq,U.mode),DB_(x6,A,{enabled:!I});let P4=yA8(M_,n.tools,U),{tools:I4,allowedAgentTypes:f4}=d8.useMemo(()=>{if(!u)return{tools:P4,allowedAgentTypes:void 0};let O8=bC(u,P4,!1,!0);return{tools:O8.resolvedTools,allowedAgentTypes:O8.allowedAgentTypes}},[u,P4]),jA=ZOq(D6,_6.commands),O4=ZOq(jA,n.commands),w_=d8.useMemo(()=>v?[]:O4,[v,O4]);vb_(I?aOq:n.clients),Mc_(I?aOq:n.clients,SK);let[$K,qO]=d8.useState("responding"),UA=d8.useRef($K);UA.current=$K;let[Ez,nA]=d8.useState([]),[W4,k4]=d8.useState(null);d8.useEffect(()=>{if(W4&&!W4.isStreaming&&W4.streamingEndedAt){let v8=30000-(Date.now()-W4.streamingEndedAt);if(v8>0){let I8=setTimeout(k4,v8,null);return()=>clearTimeout(I8)}else k4(null)}},[W4]);let[J5,R5]=d8.useState(null),iz=d8.useRef(null);iz.current=J5;let ZY=d8.useRef(()=>{}),M9=d8.useRef(()=>{}),NA=d8.useRef(null),d3=d8.useRef(null),N4=d8.useRef(0),r7=DO.useRef(new Yzq).current,U7=DO.useSyncExternalStore(r7.subscribe,r7.getSnapshot),[m5,KO]=DO.useState(N?.hasInitialPrompt??!1),U_=U7||m5,[rA,g5]=DO.useState(void 0),bA=DO.useRef(0),x4=DO.useRef(!1),Lz=DO.useRef(0),GY=DO.useRef(0),ZO=DO.useRef(null),hz=DO.useCallback(()=>{Lz.current=Date.now(),GY.current=0,ZO.current=null},[]),L$=DO.useRef(!1);if(U7&&!L$.current)hz();L$.current=U7;let X5=DO.useCallback((O8)=>{if(KO(O8),O8)hz()},[hz]),nz=DO.useRef(null),e8=DO.useRef(void 0),eq=DO.useRef(void 0),P_=1500,[L_,CK]=DO.useState(!1),[r_,VA]=d8.useState(null);d8.useEffect(()=>{if(r_?.notifications)r_.notifications.forEach((O8)=>{H8({key:"auto-updater-notification",text:O8,priority:"low"})})},[r_,H8]),d8.useEffect(()=>{if(E_())O2K().then((O8)=>{if(O8)H8({key:"tmux-mouse-hint",text:O8,priority:"low"})})},[]);let[Z7,p_]=d8.useState(!1);d8.useEffect(()=>{},[]);let[Y_,u4]=d8.useState(null),c4=d8.useRef(null),d_=d8.useCallback((O8)=>{if(O8?.isLocalJSXCommand){let{clearLocalJSX:v8,...I8}=O8;c4.current={...I8,isLocalJSXCommand:!0},u4(I8);return}if(c4.current){if(O8?.clearLocalJSX){c4.current=null,u4(null);return}return}if(O8?.clearLocalJSX){u4(null);return}u4(O8)},[]),[F4,m_]=d8.useState([]),[qz,qA]=d8.useState(null),[G7,IA]=d8.useState([]),[V4,a7]=d8.useState([]),P5=d8.useRef(new Map),Kz=X8((O8)=>O8.settings.terminalTitleFromRename)!==!1?oj(T8()):void 0,[g9,TY]=d8.useState(),pY=d8.useRef((A?.length??0)>0),j3=u?.agentType,h$=Kz??j3??g9??"Puku CLI",uq=F4.length>0||V4.length>0||k6||H6,hq=Y_?.isLocalJSXCommand===!0&&Y_?.jsx!=null,pK=U_&&!uq&&!hq;d8.useEffect(()=>{if(U_&&!uq&&!hq)return lC_(),()=>iC_()},[U_,uq,hq]);let MA=uq||hq?"waiting":U_?"busy":"idle",aA=MA!=="waiting"?void 0:F4.length>0?`approve ${F4[0].tool.name}`:k6?"worker request":H6?"sandbox request":hq?"dialog open":"input needed";d8.useEffect(()=>{},[MA,aA]);let KA=s8("ev_event",!1)&&(j8().showStatusInTerminalTab??!1);hU6(p||!KA?null:MA),d8.useEffect(()=>{return gQK(m_),()=>BQK()},[m_]);let[v7,B5]=d8.useState(()=>{if(!A)return[];let O8=eU8(A,O);return O8?za6(A,O8.replacements):A}),oq=d8.useRef(v7),dA=d8.useRef(!1),A_=d8.useCallback((O8)=>{let v8=oq.current,I8=typeof O8==="function"?O8(oq.current):O8;if(oq.current=I8,I8.length<bA.current)bA.current=0;else if(I8.length>v8.length&&x4.current){let gq=I8.length-v8.length;if((v8.length===0||I8[0]===v8[0]?I8.slice(-gq):I8.slice(0,gq)).some(vY6))x4.current=!1;else bA.current=I8.length}B5(I8)},[]),Sz=d8.useCallback((O8)=>{if(O8!==void 0)bA.current=oq.current.length,x4.current=!0;else x4.current=!1;g5(O8)},[]),C1=d8.useCallback((O8)=>{if(O8.size===0)return;A_((v8)=>za6(v8,O8))},[A_]),{dividerIndex:e2,dividerYRef:xw,onScrollAway:GM,onRepin:b1,jumpToNew:S$,shiftDivider:qX}=wv_(v7.length),[KX,_X]=d8.useState(null),AX=d8.useRef(null),gE=d8.useMemo(()=>Hv_(v7,e2),[e2,v7.length]),IJ=d8.useCallback(()=>{NA.current?.scrollToBottom(),b1(),_X(null)},[b1,_X]),M3=v7.at(-1),AT=M3!=null&&vY6(M3);d8.useEffect(()=>{if(AT)IJ()},[AT,M3,IJ]);let{maybeLoadOlder:S6}=UV5,m6=d8.useCallback((O8,v8)=>{if(N4.current=Date.now(),O8)b1();else GM(v8)},[b1,GM,S6,x6]),Z8=KB_(z,A_),qq=d8.useDeferredValue(v7),Zq=v7.length-qq.length;if(Zq>0)V(`[useDeferredValue] Messages deferred by ${Zq} (${qq.length}→${v7.length})`);let[EK,a_]=d8.useState(null),[Y7,_z]=d8.useState(()=>yC8()),Cz=d8.useRef(Y7);Cz.current=Y7;let B9=d8.useRef(null),yA=d8.useCallback((O8)=>{if($q(Cz.current,O8))return;if(Cz.current===""&&O8!==""&&Date.now()-N4.current>=dV5)IJ();Cz.current=O8,_z(O8),CK(O8.trim().length>0)},[CK,IJ,$q]);d8.useEffect(()=>{if(Y7.trim().length===0)return;let O8=setTimeout(CK,P_,!1);return()=>clearTimeout(O8)},[Y7]);let[J9,mY]=d8.useState("prompt"),[_O,jf]=d8.useState(),AF=d8.useCallback((O8)=>{let v8=new Set(O8);i6((I8)=>I8.filter((gq)=>v8.has(gq.name)||mAq.has(gq)))},[i6]),[mD,gD]=d8.useState(new Set),bI=d8.useRef(!1),fN=kg_({config:N,setMessages:A_,setIsLoading:X5,onInit:AF,setToolUseConfirmQueue:m_,tools:M_,setStreamingToolUses:nA,setStreamMode:qO,setInProgressToolUseIDs:gD}),BE=yg_({config:L,setMessages:A_,setIsLoading:X5,setToolUseConfirmQueue:m_,tools:M_}),xJ=Eg_({session:C,setMessages:A_,setIsLoading:X5,setToolUseConfirmQueue:m_,tools:M_}),Mf=xJ.isRemoteMode?xJ:BE.isRemoteMode?BE:fN,[BD,QH]=d8.useState({}),[Q3,WN]=d8.useState(0),zX=d8.useRef(0),cD=d8.useRef([]),cE=d8.useCallback((O8)=>{let v8=zX.current;if(zX.current=O8(v8),zX.current>v8){let I8=cD.current;if(I8.length>0){let gq=I8.at(-1);gq.lastTokenTime=Date.now(),gq.endResponseLength=zX.current}}},[]),[zT,DN]=d8.useState(null),ZN=!(X8((O8)=>O8.settings.prefersReducedMotion)??!1)&&!VWK(),GN=d8.useCallback((O8)=>{if(!ZN)return;DN(O8)},[ZN]),YT=zT&&ZN?zT.substring(0,zT.lastIndexOf(`
|
|
7635
7635
|
`)+1)||null:null,[QA,P8]=d8.useState(0),[Xq,PK]=d8.useState(null),[T7,M7]=d8.useState(null),[kY,l3]=d8.useState(null),[X9,AO]=d8.useState(!1),[OT,$T]=d8.useState(void 0),[bo,Io]=d8.useState(!1),[xo,YX]=d8.useState(Yy6()),[YF,Z$6]=d8.useState(null),uo=d8.useRef(!1),OF=d8.useRef(QA);OF.current=QA;let[II]=d8.useState(()=>({current:eU8(A,O)})),[OX,po]=d8.useState(j8().hasAcknowledgedCostThreshold),[G$6,Gy6]=d8.useState("INSERT"),[$F,xI]=d8.useState(!1),[I1,vy6]=d8.useState(!1),[uw,Ty6]=d8.useState(!1);d8.useEffect(()=>{if($6&&$F)xI(!1)},[$6,$F]);let FD=hO(),FE=d8.useRef(FD);FE.current=FD;let[uJ]=fK(),wF=DO.useRef(!1),mo=d8.useCallback(()=>{if(wF.current)return;wF.current=!0;let O8=oq.current.slice(Fo.current);for(let v8 of xB8(O8))mI.current.add(v8);Fo.current=oq.current.length,uF_({theme:uJ,readFileState:wT.current,bashTools:mI.current}).then(async(v8)=>{if(v8){let I8=await v8.content({theme:uJ});x6((gq)=>({...gq,spinnerTip:I8})),pF_(v8)}else x6((I8)=>{if(I8.spinnerTip===void 0)return I8;return{...I8,spinnerTip:void 0}})})},[x6,uJ]),P9=d8.useCallback(()=>{X5(!1),Sz(void 0),zX.current=0,cD.current=[],DN(null),nA([]),PK(null),M7(null),l3(null),mo(),fk6(),Iq8()},[mo]),HF=d8.useMemo(()=>Cn(w6).some((O8)=>O8.status==="running"),[w6]);d8.useEffect(()=>{if(!HF&&nz.current!==null){let O8=Date.now()-nz.current,v8=e8.current;nz.current=null,e8.current=void 0,A_((I8)=>[...I8,q8q(O8,v8,xq(I8,aN6))])}},[HF,A_]);let vN=d8.useRef(!1);d8.useEffect(()=>{{if(U.mode!=="auto"){vN.current=!1;return}if(vN.current)return;if((j8().autoPermissionsNotificationCount??0)>=3)return;let I8=setTimeout((gq,qK)=>{gq.current=!0,B8((J_)=>{let KK=J_.autoPermissionsNotificationCount??0;if(KK>=3)return J_;return{...J_,autoPermissionsNotificationCount:KK+1}}),qK((J_)=>[...J_,P$(bz8,"warning")])},800,vN,A_);return()=>clearTimeout(I8)}},[U.mode,A_]);let uI=d8.useRef(!1);d8.useEffect(()=>{if(uI.current)return;let O8=O3();if(!O8?.creationDurationMs||O8.usedSparsePaths)return;if(O8.creationDurationMs<15000)return;uI.current=!0;let v8=Math.round(O8.creationDurationMs/1000);A_((I8)=>[...I8,P$(`Worktree creation took ${v8}s. For large repos, set \`worktree.sparsePaths\` in .puku-cli/settings.json to check out only the directories you need — e.g. \`{"worktree": {"sparsePaths": ["src", "packages/foo"]}}\`.`,"info")])},[A_]);let UE=d8.useMemo(()=>{let O8=v7.findLast((I8)=>I8.type==="assistant");if(O8?.type!=="assistant")return!1;let v8=O8.message.content.filter((I8)=>I8.type==="tool_use"&&mD.has(I8.id));return v8.length>0&&v8.every((I8)=>I8.type==="tool_use"&&I8.name===Ai)},[v7,mD]),{onBeforeQuery:v$6,onTurnComplete:go,render:jF}=cg_({enabled:m,setMessages:A_,inputValue:Y7,setInputValue:yA,setToolJSX:d_}),Bo=(!Y_||Y_.showSpinner===!0)&&F4.length===0&&V4.length===0&&(U_||rA||HF||_g8()>0)&&!k6&&!UE&&(!YT||h6),dE=F4.length>0||V4.length>0||G7.length>0||K6.queue.length>0||j6.queue.length>0,co=Fc_(v7,U_,Q3,"session",dE),ky6=gg_(A_),T$6=vd_(v7,Q3),QE=d8.useMemo(()=>({...co,handleSelect:(O8)=>{no.current=!1;let v8=co.handleSelect(O8);if(O8==="bad"&&!v8&&fd_("feedback_survey_bad"))io("feedback_survey_bad"),no.current=!0}}),[co]),pI=ic_(v7,U_,dE,{enabled:!I}),TN=dc_(v7,U_,dE,{enabled:!I}),lH=pV5(v7,U_,dE,QE.state!=="closed"||pI.state!=="closed"||TN.state!=="closed");yc_({autoConnectIdeFlag:M,ideToInstallExtension:__,setDynamicMcpConfig:G6,setShowIdeOnboarding:R6,setIDEInstallationState:z6}),QF_(Y,t,(O8)=>x6((v8)=>({...v8,fileHistory:O8})));let k$6=d8.useCallback(async(O8,v8,I8)=>{let gq=performance.now();try{let qK=et6(v8.messages),J_=Z06();await G06("resume",{getAppState:()=>b6.getState(),setAppState:x6,signal:AbortSignal.timeout(J_),timeoutMs:J_});let KK=await SH("resume",{sessionId:O8,agentType:u?.agentType,model:f6});if(qK.push(...KK),I8==="fork")DoK(v8,J1(O8));else Qt6(v8,J1(O8));if(UV6(v8,x6),v8.fileHistorySnapshots)ct6(v8);let{agentDefinition:WK}=vo(v8.agentSetting,G,o);F(WK),x6((gY)=>({...gY,agent:WK?.agentType})),x6((gY)=>({...gY,standaloneAgentContext:dV6(v8.agentName,v8.agentColor)})),cR(v8.agentName),Qo(qK,v8.projectPath??Tq()),P9(),R5(null),YX(O8);let W_=wa8(O8);h68(),rs(),sH(J1(O8),v8.fullPath?bV5(v8.fullPath):null);let{renameRecordingForSession:O7}=await Promise.resolve().then(() => (FV6(),Wc_));if(await O7(),await pv(),D06(),TE(v8),pY.current=!0,TY(void 0),I8!=="fork")Dc_(),QV6(v8.worktreeSession),Qa(),yn8({abortController:new AbortController,getAppState:()=>b6.getState(),setAppState:x6});else{let gY=O3();if(gY)FP(gY)}if(W_)N96(W_);if(II.current&&I8!=="fork")II.current=Ya6(qK,v8.contentReplacements??[]);let g7=II.current?za6(qK,II.current.replacements):qK;A_(()=>g7),d_(null),yA(""),Q("ev_event",{entrypoint:I8,success:!0,resume_duration_ms:Math.round(performance.now()-gq)})}catch(qK){throw Q("ev_event",{entrypoint:I8,success:!1}),qK}},[P9,x6]),[vM]=d8.useState(()=>{let O8=Ck(Ry);return Azq(O8),O8}),wT=d8.useRef(vM),mI=d8.useRef(new Set),Fo=d8.useRef(0),UD=d8.useRef(new Set),Uo=d8.useRef(new Set),Qo=d8.useCallback((O8,v8)=>{let I8=Z76(O8,v8,Ry);wT.current=B_6(wT.current,I8);for(let gq of xB8(O8))mI.current.add(gq)},[]);d8.useEffect(()=>{if(A&&A.length>0)Qo(A,Tq()),yn8({abortController:new AbortController,getAppState:()=>b6.getState(),setAppState:x6})},[]);let{status:gI,reverify:lo}=AB_(),[BI,io]=d8.useState(null),no=d8.useRef(!1),[MF,JF]=d8.useState(null),[Ny6,N$6]=d8.useState(!1),Vy6=!U_&&bo;function yy6(){if(Ny6||MF)return;if(X9)return"message-selector";if(L_)return;if(G7[0])return"sandbox-permission";let O8=!Y_||Y_.shouldContinueAnimation;if(O8&&F4[0])return"tool-permission";if(O8&&V4[0])return"prompt";if(O8&&j6.queue[0])return"worker-sandbox-permission";if(O8&&K6.queue[0])return"elicitation";if(O8&&Vy6)return"cost";if(O8&&YF)return"idle-return";if(O8&&M6)return"ide-onboarding";if(O8&&t6)return"effort-callout";if(O8&&k8)return"remote-callout";if(O8&&Qq)return"lsp-recommendation";if(O8&&bK)return"plugin-hint";if(O8&&i8)return"desktop-upsell";return}let c5=yy6(),cI=L_&&(G7[0]||F4[0]||V4[0]||j6.queue[0]||K6.queue[0]||Vy6);eq.current=c5,d8.useEffect(()=>{if(!U_)return;let O8=c5==="tool-permission",v8=Date.now();if(O8&&ZO.current===null)ZO.current=v8;else if(!O8&&ZO.current!==null)GY.current+=v8-ZO.current,ZO.current=null},[c5,U_]);let XF=d8.useRef(c5);d8.useLayoutEffect(()=>{if(XF.current==="tool-permission"!==(c5==="tool-permission"))IJ();XF.current=c5},[c5,IJ]);function ro(){if(c5==="elicitation")return;if(V(`[onCancel] focusedInputDialog=${c5} streamMode=${$K}`),r7.forceEnd(),uo.current=!1,zT?.trim())A_((O8)=>[...O8,PJ({content:zT})]);if(P9(),c5==="tool-permission")F4[0]?.onAbort(),m_([]);else if(c5==="prompt"){for(let O8 of V4)O8.reject(Error("Prompt cancelled by user"));a7([]),J5?.abort("user-cancel")}else if(Mf.isRemoteMode)Mf.cancelRequest();else J5?.abort("user-cancel");R5(null),go(oq.current,!0)}let V$6=d8.useCallback(()=>{let O8=Jl6(Y7,0);if(!O8)return;if(yA(O8.text),mY("prompt"),O8.images.length>0)QH((v8)=>{let I8={...v8};for(let gq of O8.images)I8[gq.id]=gq;return I8})},[yA,mY,Y7,QH]),y$6={setToolUseConfirmQueue:m_,onCancel:ro,onAgentsKilled:()=>A_((O8)=>[...O8,Hw_()]),isMessageSelectorVisible:X9||!!$F,screen:W6,abortSignal:J5?.signal,popCommandFromQueue:V$6,vimMode:G$6,isLocalJSXCommand:Y_?.isLocalJSXCommand,isSearchingHistory:I1,isHelpOpen:uw,inputMode:J9,inputValue:Y7,streamMode:$K};d8.useEffect(()=>{if(Fw()>=5&&!bo&&!OX){if(Q("ev_event",{}),po(!0),gm6())Io(!0)}},[v7,bo,OX]);let Ry6=d8.useCallback(async(O8)=>{if(uK()&&hG6()){let v8=EQK(),I8=await LQK(O8.host,v8);return new Promise((gq)=>{if(!I8){IA((qK)=>[...qK,{hostPattern:O8,resolvePromise:gq}]);return}IQK({requestId:v8,host:O8.host,resolve:gq}),x6((qK)=>({...qK,pendingSandboxRequest:{requestId:v8,host:O8.host}}))})}return new Promise((v8)=>{let I8=!1;function gq(qK){if(I8)return;I8=!0,v8(qK)}IA((qK)=>[...qK,{hostPattern:O8,resolvePromise:gq}])})},[x6,b6]);if(d8.useEffect(()=>{let O8=Cq.getSandboxUnavailableReason();if(!O8)return;if(Cq.isSandboxRequired()){process.stderr.write(`
|
|
7636
7636
|
Error: sandbox required but unavailable: ${O8}
|
|
7637
7637
|
`+` sandbox.failIfUnavailable is set — refusing to start without a working sandbox.
|
|
@@ -7643,7 +7643,7 @@ Error: sandbox required but unavailable: ${O8}
|
|
|
7643
7643
|
${v8}`)}else V("No CLAUDE.md/rules files found");for(let v8 of O8)wT.current.set(v8.path,{content:v8.contentDiffersFromDisk?v8.rawContent??v8.content:v8.content,timestamp:Date.now(),offset:void 0,limit:void 0,isPartialView:v8.contentDiffersFromDisk})}og_(DC_()),zb_(v7,v7.length===A?.length);let{sendBridgeResult:h$6}=Xb_(v7,A_,iz,w_,f6);ZY.current=h$6,eg_();let JA=d8.useRef(!1);d8.useEffect(()=>{if(e.length<1){JA.current=!1;return}if(JA.current)return;JA.current=!0,B8((O8)=>({...O8,promptQueueUseCount:(O8.promptQueueUseCount??0)+1}))},[e.length]);let S$6=d8.useCallback(async(O8)=>{await wY8({helpers:{setCursorOffset:()=>{},clearBuffer:()=>{},resetHistory:()=>{}},queryGuard:r7,commands:w_,onInputChange:()=>{},setPastedContents:()=>{},setToolJSX:d_,getToolUseContext:iH,messages:v7,mainLoopModel:f6,ideSelection:tq,setUserInputOnProcessing:Sz,setAbortController:R5,onQuery:dD,setAppState:x6,querySource:hD6(),onBeforeQuery:f,canUseTool:Jf,addNotification:H8,setMessages:A_,queuedCommands:O8})},[r7,w_,d_,iH,v7,f6,tq,Sz,Jf,R5,dD,H8,x6,f]);aB_({executeQueuedInput:S$6,hasActiveLocalJsxUI:hq,queryGuard:r7}),d8.useEffect(()=>{OG6.recordUserActivity(),dF(!0)},[Y7,Q3]),d8.useEffect(()=>{if(Q3===1)$Oq()},[Q3]),d8.useEffect(()=>{if(U_)return;if(Q3===0)return;if(QA===0)return;let O8=setTimeout((v8,I8,gq,qK,J_)=>{if(pN()>v8)return;let WK=Date.now()-v8;if(!I8&&!gq&&qK.current===void 0&&WK>=j8().messageIdleNotifThresholdMs)Fc({message:"Puku CLI is waiting for your input",notificationType:"idle_prompt"},J_)},j8().messageIdleNotifThresholdMs,QA,U_,Y_,eq,L6);return()=>clearTimeout(O8)},[U_,Y_,Q3,QA,L6]),d8.useEffect(()=>{if(QA===0)return;if(U_)return;let O8=s8("ev_event","off");if(O8!=="hint"&&O8!=="hint_v2")return;if(j8().idleReturnDismissed)return;let v8=Number(process.env.PUKU_CLI_IDLE_TOKEN_THRESHOLD??1e5);if(PX()<v8)return;let I8=Number(process.env.PUKU_CLI_IDLE_THRESHOLD_MINUTES??75)*60000,gq=Date.now()-QA,qK=I8-gq,J_=setTimeout((KK,WK,W_,O7,g7)=>{if(W_.current.length===0)return;let gY=PX(),XA=hM(gY),J3=(Date.now()-KK)/60000;WK({key:"idle-return-hint",jsx:O7==="hint_v2"?y(Y8,{children:[W(T,{dimColor:!0,children:"new task? "}),W(T,{color:"suggestion",children:"/clear"}),W(T,{dimColor:!0,children:" to save "}),y(T,{color:"suggestion",children:[XA," tokens"]})]}):y(T,{color:"warning",children:["new task? /clear to save ",XA," tokens"]}),priority:"medium",timeoutMs:2147483647}),g7.current=O7,Q("ev_event",{action:"hint_shown",variant:O7,idleMinutes:Math.round(J3),messageCount:W_.current.length,totalInputTokens:gY})},Math.max(0,qK),QA,H8,oq,O8,dA);return()=>{clearTimeout(J_),E8("idle-return-hint"),dA.current=!1}},[QA,U_,H8,E8]);let Iy6=d8.useCallback((O8,v8)=>{if(r7.isActive)return!1;if(IyK().some((qK)=>qK.mode==="prompt"||qK.mode==="bash"))return!1;let I8=J4();R5(I8);let gq=C8({content:O8,isMeta:v8?.isMeta?!0:void 0});return dD([gq],I8,!0,[],f6),!0},[dD,f6,b6]),to={stripTrailing:()=>0,handleKeyEvent:()=>{},resetAnchor:()=>{},interimRange:null};Gc_({enabled:uK(),isLoading:U_,focusedInputDialog:c5,onSubmitMessage:Iy6}),sB_({isLoading:U_,onSubmitMessage:Iy6}),d8.useEffect(()=>{if(e.some((O8)=>O8.priority==="now"))iz.current?.abort("interrupt")},[e]),d8.useEffect(()=>{return by6(),()=>{Kb.shutdown()}},[]);let{internal_eventEmitter:lD}=bp(),[FI,xy6]=d8.useState(0);d8.useEffect(()=>{let O8=()=>{process.stdout.write(`
|
|
7644
7644
|
Puku has been suspended. Run \`fg\` to bring Puku back.
|
|
7645
7645
|
Note: ctrl + z now suspends Puku, ctrl + _ undoes input.
|
|
7646
|
-
`)},v8=()=>{xy6((I8)=>I8+1)};return lD?.on("suspend",O8),lD?.on("resume",v8),()=>{lD?.off("suspend",O8),lD?.off("resume",v8)}},[lD]);let C$6=d8.useMemo(()=>{if(!U_)return null;let O8=v7.filter((W_)=>W_.type==="progress"&&W_.data.type==="hook_progress"&&(W_.data.hookEvent==="Stop"||W_.data.hookEvent==="SubagentStop"));if(O8.length===0)return null;let v8=O8.at(-1)?.toolUseID;if(!v8)return null;if(v7.some((W_)=>W_.type==="system"&&W_.subtype==="stop_hook_summary"&&W_.toolUseID===v8))return null;let gq=O8.filter((W_)=>W_.toolUseID===v8),qK=gq.length,J_=xq(v7,(W_)=>{if(W_.type!=="attachment")return!1;let O7=W_.attachment;return"hookEvent"in O7&&(O7.hookEvent==="Stop"||O7.hookEvent==="SubagentStop")&&"toolUseID"in O7&&O7.toolUseID===v8}),KK=gq.find((W_)=>W_.data.statusMessage)?.data.statusMessage;if(KK)return qK===1?`${KK}…`:`${KK}… ${J_}/${qK}`;let WK=gq[0]?.data.hookEvent==="SubagentStop"?"subagent stop":"stop";return qK===1?`running ${WK} hook`:`running stop hooks… ${J_}/${qK}`},[v7,U_]),uy6=d8.useCallback(()=>{a_({messagesLength:v7.length,streamingToolUsesLength:Ez.length})},[v7.length,Ez.length]),HT=d8.useCallback(()=>{a_(null)},[]),UI=E_()&&!B,$X=d8.useRef(null),[jT,iE]=d8.useState(!1),[TM,ZF]=d8.useState(""),[GF,vF]=d8.useState(0),[py6,nE]=d8.useState(0),S7=d8.useCallback((O8,v8)=>{vF(O8),nE(v8)},[]);lK((O8,v8,I8)=>{if(v8.ctrl||v8.meta)return;if(O8==="/"){$X.current?.setAnchor(),iE(!0),I8.stopImmediatePropagation();return}let gq=O8[0];if((gq==="n"||gq==="N")&&O8===gq.repeat(O8.length)&&GF>0){let qK=gq==="n"?$X.current?.nextMatch:$X.current?.prevMatch;if(qK)for(let J_=0;J_<O8.length;J_++)qK();I8.stopImmediatePropagation()}},{isActive:W6==="transcript"&&UI&&!jT&&!U6});let{setQuery:dI,scanElement:mO8,setPositions:eo}=bC_(),MT=Eq().columns,my6=DO.useRef(MT);DO.useEffect(()=>{if(my6.current!==MT){if(my6.current=MT,TM||jT)iE(!1),ZF(""),vF(0),nE(0),$X.current?.disarmSearch(),dI("")}},[MT,TM,jT,dI]),lK((O8,v8,I8)=>{if(v8.ctrl||v8.meta)return;if(O8==="q"){HT(),I8.stopImmediatePropagation();return}if(O8==="["&&!U6)A8(!0),N6(!0),I8.stopImmediatePropagation();else if(O8==="v"){if(I8.stopImmediatePropagation(),r6.current)return;r6.current=!0;let gq=f8.current,qK=(J_)=>{if(gq!==f8.current)return;clearTimeout(v6.current),J8(J_)};qK(`rendering ${qq.length} messages…`),(async()=>{try{let J_=Math.max(80,(process.stdout.columns??80)-6),WK=(await nA8(qq,I4,J_)).replace(/[ \t]+$/gm,""),W_=IV5(xV5(),`cc-transcript-${Date.now()}.txt`);await uV5(W_,WK);let O7=Q78(W_);qK(O7?`opening ${W_}`:`wrote ${W_} · no $VISUAL/$EDITOR set`)}catch(J_){qK(`render failed: ${J_ instanceof Error?J_.message:String(J_)}`)}if(r6.current=!1,gq!==f8.current)return;v6.current=setTimeout((J_)=>J_(""),4000,J8)})()}},{isActive:W6==="transcript"&&UI&&!jT});let TF=W6==="transcript"&&UI;d8.useEffect(()=>{if(!TF)ZF(""),vF(0),nE(0),iE(!1),f8.current++,clearTimeout(v6.current),A8(!1),J8("")},[TF]),d8.useEffect(()=>{if(dI(TF?TM:""),!TF)eo(null)},[TF,TM,dI,eo]);let gy6={screen:W6,setScreen:E6,showAllInTranscript:C6,setShowAllInTranscript:N6,messageCount:v7.length,onEnterTranscript:uy6,onExitTranscript:HT,virtualScrollActive:UI,searchBarOpen:jT},gO8=EK?qq.slice(0,EK.messagesLength):qq,BO8=EK?Ez.slice(0,EK.streamingToolUsesLength):Ez;if(MB_({onOpenBackgroundTasks:hq?void 0:()=>xI(!0)}),vB_(),W6==="transcript"){let O8=E_()&&!B&&!U6?NA:void 0,v8=W(ua,{messages:gO8,tools:I4,commands:w_,verbose:!0,toolJSX:null,toolUseConfirmQueue:[],inProgressToolUseIDs:mD,isMessageSelectorVisible:!1,conversationId:xo,screen:W6,agentDefinitions:o,streamingToolUses:BO8,showAllInTranscript:C6,onOpenRateLimitOptions:WF,isLoading:U_,hidePastThinking:!0,streamingThinking:W4,scrollRef:O8,jumpRef:$X,onSearchMatchesChange:S7,scanElement:mO8,setPositions:eo,disableRenderCap:U6}),I8=Y_&&W(x,{flexDirection:"column",width:"100%",children:Y_.jsx}),gq=y(I9,{children:[W(pd_,{isAnimating:pK,title:h$,disabled:p,noPrefix:KA}),W(HOq,{...gy6}),null,W(jOq,{onSubmit:QD,isActive:!Y_?.isLocalJSXCommand}),O8?W(rOq,{scrollRef:NA,isActive:c5!=="ultraplan-choice",isModal:!jT,onScroll:()=>$X.current?.disarmSearch()}):null,W(MOq,{...y$6}),O8?W(m7q,{scrollRef:NA,scrollable:y(Y8,{children:[v8,I8,W(FOq,{})]}),bottom:jT?W(QV5,{jumpRef:$X,initialQuery:"",count:GF,current:py6,onClose:(qK)=>{if(ZF(GF>0?qK:""),iE(!1),!qK)vF(0),nE(0),$X.current?.setSearchQuery("")},onCancel:()=>{iE(!1),$X.current?.setSearchQuery(""),$X.current?.setSearchQuery(TM),dI(TM)},setHighlight:dI}):W(xd_,{showAllInTranscript:C6,virtualScroll:!0,status:Q6||void 0,searchBadge:TM&&GF>0?{current:py6,count:GF}:void 0})}):y(Y8,{children:[v8,I8,W(FOq,{}),W(xd_,{showAllInTranscript:C6,virtualScroll:!1,suppressShowAll:U6,status:Q6||void 0})]})]});if(O8)return W(nOq,{mouseTracking:EC8(),children:gq});return gq}let kN=c6?w6[c6]:void 0,kF=kN&&Z$(kN)?kN:void 0,wX=kF??(kN&&t$(kN)?kN:void 0),By6=wX?wX.messages??[]:ZN||!U_?v7:qq,cy6=rA&&!wX&&By6.length<=bA.current?rA:void 0,NN=c5==="tool-permission"?W(vx_,{onDone:()=>m_(([O8,...v8])=>v8),onReject:V$6,toolUseConfirm:F4[0],toolUseContext:iH(v7,v7,J5??J4(),f6),verbose:d,workerBadge:F4[0]?.workerBadge,setStickyFooter:E_()?qA:void 0},F4[0]?.toolUseID):null,VN=MT<Fzq,nH=!Y_?.shouldHidePromptInput&&!c5&&!$F,HX=E_()&&Y_?.isLocalJSXCommand===!0,f9=HX?Y_.jsx:null,Fy6=y(I9,{children:[W(pd_,{isAnimating:pK,title:h$,disabled:p,noPrefix:KA}),W(HOq,{...gy6}),null,W(jOq,{onSubmit:QD,isActive:!Y_?.isLocalJSXCommand}),W(rOq,{scrollRef:NA,isActive:E_()&&(f9!=null||!c5||c5==="tool-permission"),onScroll:f9||NN||wX?void 0:m6}),null,W(MOq,{...y$6}),W(t78,{dynamicMcpConfig:g6,isStrictMcpConfig:J,children:W(m7q,{scrollRef:NA,overlay:NN,bottomFloat:void 0,modal:f9,modalScrollRef:d3,dividerYRef:xw,hidePill:!!wX,hideSticky:!!kF,newMessageCount:gE?.count??0,onPillClick:()=>{_X(null),S$(NA.current)},scrollable:y(Y8,{children:[W(Hc_,{}),W(ua,{messages:By6,tools:I4,commands:w_,verbose:d,toolJSX:Y_,toolUseConfirmQueue:F4,inProgressToolUseIDs:kF?kF.inProgressToolUseIDs??new Set:mD,isMessageSelectorVisible:X9,conversationId:xo,screen:W6,streamingToolUses:Ez,showAllInTranscript:C6,agentDefinitions:o,onOpenRateLimitOptions:WF,isLoading:U_,streamingText:U_&&!wX?YT:null,isBriefOnly:wX?!1:h6,unseenDivider:wX?void 0:gE,scrollRef:E_()?NA:void 0,trackStickyPrompt:E_()?!0:void 0,cursor:KX,setCursor:_X,cursorNavRef:AX}),W(gU_,{}),!Z&&cy6&&!f9&&W(dn,{param:{text:cy6,type:"text"},addMargin:!0,verbose:d}),Y_&&!(Y_.isLocalJSXCommand&&Y_.isImmediate)&&!HX&&W(x,{flexDirection:"column",width:"100%",children:Y_.jsx}),!1,null,W(x,{flexGrow:1}),Bo&&W(ClK,{mode:$K,spinnerTip:P6,responseLengthRef:zX,apiMetricsRef:cD,overrideMessage:Xq,spinnerSuffix:C$6,verbose:d,loadingStartTimeRef:Lz,totalPausedMsRef:GY,pauseStartTimeRef:ZO,overrideColor:T7,overrideShimmerColor:kY,hasActiveTools:mD.size>0,leaderIsIdle:!U_}),!Bo&&!U_&&!rA&&!HF&&h6&&!wX&&W(blK,{}),E_()&&W(rz8,{})]}),bottom:y(x,{flexDirection:"row",width:"100%",alignItems:"flex-end",children:[null,y(x,{flexDirection:"column",flexGrow:1,children:[qz,Y_?.isLocalJSXCommand&&Y_.isImmediate&&!HX&&W(x,{flexDirection:"column",width:"100%",children:Y_.jsx}),!Bo&&!Y_?.isLocalJSXCommand&&O6&&lq&&lq.length>0&&W(x,{width:"100%",flexDirection:"column",children:W(To6,{tasks:lq,isStandalone:!0})}),c5==="sandbox-permission"&&W(cOq,{hostPattern:G7[0].hostPattern,onUserResponse:(O8)=>{let{allow:v8,persistToSettings:I8}=O8,gq=G7[0];if(!gq)return;let qK=gq.hostPattern.host;if(I8){let KK={type:"addRules",rules:[{toolName:h3,ruleContent:`domain:${qK}`}],behavior:v8?"allow":"deny",destination:"localSettings"};x6((WK)=>({...WK,toolPermissionContext:Nz(WK.toolPermissionContext,KK)})),py(KK),Cq.refreshConfig()}IA((KK)=>{return KK.filter((WK)=>WK.hostPattern.host===qK).forEach((WK)=>WK.resolvePromise(v8)),KK.filter((WK)=>WK.hostPattern.host!==qK)});let J_=P5.current.get(qK);if(J_){for(let KK of J_)KK();P5.current.delete(qK)}}},G7[0].hostPattern.host),c5==="prompt"&&W(Cx_,{title:V4[0].title,toolInputSummary:V4[0].toolInputSummary,request:V4[0].request,onRespond:(O8)=>{let v8=V4[0];if(!v8)return;v8.resolve({prompt_response:v8.request.prompt,selected:O8}),a7(([,...I8])=>I8)},onAbort:()=>{let O8=V4[0];if(!O8)return;O8.reject(Error("Prompt cancelled by user")),a7(([,...v8])=>v8)}},V4[0].request.prompt),k6&&W(Ozq,{toolName:k6.toolName,description:k6.description}),H6&&W(Ozq,{toolName:"Network Access",description:`Waiting for leader to approve network access to ${H6.host}`}),c5==="worker-sandbox-permission"&&W(cOq,{hostPattern:{host:j6.queue[0].host,port:void 0},onUserResponse:(O8)=>{let{allow:v8,persistToSettings:I8}=O8,gq=j6.queue[0];if(!gq)return;let qK=gq.host;if(hQK(gq.workerName,gq.requestId,qK,v8,J6?.teamName),I8&&v8){let J_={type:"addRules",rules:[{toolName:h3,ruleContent:`domain:${qK}`}],behavior:"allow",destination:"localSettings"};x6((KK)=>({...KK,toolPermissionContext:Nz(KK.toolPermissionContext,J_)})),py(J_),Cq.refreshConfig()}x6((J_)=>({...J_,workerSandboxPermissions:{...J_.workerSandboxPermissions,queue:J_.workerSandboxPermissions.queue.slice(1)}}))}},j6.queue[0].requestId),c5==="elicitation"&&W(Lx_,{event:K6.queue[0],onResponse:(O8,v8)=>{let I8=K6.queue[0];if(!I8)return;if(I8.respond({action:O8,content:v8}),!(I8.params.mode==="url"&&O8==="accept"))x6((qK)=>({...qK,elicitation:{queue:qK.elicitation.queue.slice(1)}}))},onWaitingDismiss:(O8)=>{let v8=K6.queue[0];x6((I8)=>({...I8,elicitation:{queue:I8.elicitation.queue.slice(1)}})),v8?.onWaitingDismiss?.(O8)}},K6.queue[0].serverName+":"+String(K6.queue[0].requestId)),c5==="cost"&&W(xC_,{onDone:()=>{Io(!1),po(!0),B8((O8)=>({...O8,hasAcknowledgedCostThreshold:!0})),Q("ev_event",{})}}),c5==="idle-return"&&YF&&W(mC_,{idleMinutes:YF.idleMinutes,totalInputTokens:PX(),onDone:async(O8)=>{let v8=YF;if(Z$6(null),Q("ev_event",{action:O8,idleMinutes:Math.round(v8.idleMinutes),messageCount:oq.current.length,totalInputTokens:PX()}),O8==="dismiss"){yA(v8.input);return}if(O8==="never")B8((I8)=>{if(I8.idleReturnDismissed)return I8;return{...I8,idleReturnDismissed:!0}});if(O8==="clear"){let{clearConversation:I8}=await Promise.resolve().then(() => (l_8(),Gqq));await I8({setMessages:A_,readFileState:wT.current,discoveredSkillNames:UD.current,loadedNestedMemoryPaths:Uo.current,getAppState:()=>b6.getState(),setAppState:x6,setConversationId:YX}),pY.current=!1,TY(void 0),mI.current.clear(),Fo.current=0}uo.current=!0,so.current(v8.input,{setCursorOffset:()=>{},clearBuffer:()=>{},resetHistory:()=>{}})}}),c5==="ide-onboarding"&&W(jd8,{onDone:()=>R6(!1),installationStatus:Rq}),!1,!1,c5==="effort-callout"&&W(Ic_,{model:f6,onDone:(O8)=>{if(m8(!1),O8!=="dismiss")x6((v8)=>({...v8,effortValue:O8}))}}),c5==="remote-callout"&&W(pc_,{onDone:(O8)=>{x6((v8)=>{if(!v8.showRemoteCallout)return v8;return{...v8,showRemoteCallout:!1,...O8==="enable"&&{replBridgeEnabled:!0,replBridgeExplicit:!0,replBridgeOutboundOnly:!1}}})}}),MF,c5==="plugin-hint"&&bK&&W(NU_,{pluginName:bK.pluginName,pluginDescription:bK.pluginDescription,marketplaceName:bK.marketplaceName,sourceCommand:bK.sourceCommand,onResponse:FK}),c5==="lsp-recommendation"&&Qq&&W(ZU_,{pluginName:Qq.pluginName,pluginDescription:Qq.pluginDescription,fileExtension:Qq.fileExtension,onResponse:Uq}),c5==="desktop-upsell"&&W(IF_,{onDone:()=>Aq(!1)}),null,null,jF(),!Y_?.shouldHidePromptInput&&!c5&&!Ny6&&!Z&&!KX&&!aA6()&&y(Y8,{children:[BI&&W(Pd_,{onRun:xO8,onCancel:R$6,reason:Dd_(BI)}),pI.state!=="closed"?W(nV6,{state:pI.state,lastResponse:pI.lastResponse,handleSelect:pI.handleSelect,inputValue:Y7,setInputValue:yA,onRequestFeedback:Xf}):TN.state!=="closed"?W(nV6,{state:TN.state,lastResponse:TN.lastResponse,handleSelect:TN.handleSelect,handleTranscriptSelect:TN.handleTranscriptSelect,inputValue:Y7,setInputValue:yA,onRequestFeedback:Xf,message:"How well did Claude use its memory? (optional)"}):W(nV6,{state:QE.state,lastResponse:QE.lastResponse,handleSelect:QE.handleSelect,handleTranscriptSelect:QE.handleTranscriptSelect,inputValue:Y7,setInputValue:yA,onRequestFeedback:no.current?void 0:Xf}),lH.state!=="closed"&&W(nV6,{state:lH.state,lastResponse:null,handleSelect:()=>{},handleTranscriptSelect:lH.handleTranscriptSelect,inputValue:Y7,setInputValue:yA}),!1,T$6&&W(Gd_,{}),W(Wg_,{debug:K,ideSelection:tq,hasSuppressedDialogs:!!cI,isLocalJSXCommandActive:hq,getToolUseContext:iH,toolPermissionContext:U,setToolPermissionContext:PF,apiKeyStatus:gI,commands:w_,agents:o.activeAgents,isLoading:U_,onExit:lE,verbose:d,messages:v7,onAutoUpdaterResult:VA,autoUpdaterResult:r_,input:Y7,onInputChange:yA,mode:J9,onModeChange:mY,stashedPrompt:_O,setStashedPrompt:jf,submitCount:Q3,onShowMessageSelector:E$6,onMessageActionsEnter:void 0,mcpClients:vq,pastedContents:BD,setPastedContents:QH,vimMode:G$6,setVimMode:Gy6,showBashesDialog:$F,setShowBashesDialog:xI,onSubmit:QD,onAgentSubmit:IO8,isSearchingHistory:I1,setIsSearchingHistory:vy6,helpOpen:uw,setHelpOpen:Ty6,insertTextRef:void 0,voiceInterimRange:to.interimRange}),W(hc_,{onBackgroundSession:F5,isLoading:U_})]}),KX&&W(zmK,{cursor:KX}),c5==="message-selector"&&W(Pzq,{messages:v7,preselectedMessage:OT,onPreRestore:ro,onRestoreCode:async(O8)=>{await mt6((v8)=>{x6((I8)=>({...I8,fileHistory:v8(I8.fileHistory)}))},O8.uuid)},onSummarize:async(O8,v8,I8="from")=>{let gq=$3(v7),qK=gq.indexOf(O8);if(qK===-1){A_((i3)=>[...i3,P$("That message is no longer in the active context (snipped or pre-compact). Choose a more recent message.","warning")]);return}let J_=J4(),KK=iH(gq,[],J_,f6),WK=KK.getAppState(),W_=await Nw(KK.options.tools,KK.options.mainLoopModel,Array.from(WK.toolPermissionContext.additionalWorkingDirectories.keys()),KK.options.mcpClients),O7=Ev({mainThreadAgentDefinition:void 0,toolUseContext:KK,customSystemPrompt:KK.options.customSystemPrompt,defaultSystemPrompt:W_,appendSystemPrompt:KK.options.appendSystemPrompt}),[g7,gY]=await Promise.all([QY(),CO()]),XA=await f$_(gq,qK,KK,{systemPrompt:O7,userContext:g7,systemContext:gY,toolUseContext:KK,forkContextMessages:gq},v8,I8),J3=XA.messagesToKeep??[],x1=I8==="up_to"?[...XA.summaryMessages,...J3]:[...J3,...XA.summaryMessages],rz=[XA.boundaryMarker,...x1,...XA.attachments,...XA.hookResults];if(E_()&&I8==="from")A_((i3)=>{let Pf=i3.findIndex((b$6)=>b$6.uuid===O8.uuid);return[...i3.slice(0,Pf===-1?0:Pf),...rz]});else A_(rz);if(YX(Yy6()),c0(KK.options.querySource),I8==="from"){let i3=e6q(O8);if(i3)yA(i3.text),mY(i3.mode)}let az=s$("app:toggleTranscript","Global","ctrl+o");H8({key:"summarize-ctrl-o-hint",text:`Conversation summarized (${az} for history)`,priority:"medium",timeoutMs:8000})},onRestoreMessage:hy6,onClose:()=>{AO(!1),$T(void 0)}}),!1]}),null]})})},FI)]});if(E_())return W(nOq,{mouseTracking:EC8(),children:Fy6});return Fy6}var oOq,DO,d8,pV5=()=>({state:"closed",handleTranscriptSelect:()=>{}}),mV5=()=>{},gV5=()=>({}),Id_=null,BV5=(q)=>()=>{},cV5=()=>!1,FV5=(q,K)=>!1,aOq,UV5,dV5=3000,md_,ud_="❏",lV5=960;var tOq=h(()=>{G8();Qq8();mK();n6();wc();I_();IC_();GAq();ME();n6();uC_();gC_();cz();B58();aC_();CS();hS();KJ();c58();G8();mj();z8();tC_();x8();OK();pX6();RH();VA6();LA6();wz();Ab_();D0();Gw();pB();Yb_();Pb_();hY();i58();Tb_();Tx_();hx_();bx_();Dg_();aYq();Ng_();Rg_();Lg_();Sg_();xg_();Bg_();Y3();_D();rz6();AP();w1();wOq();kv();sg_();n5q();qB_();_B_();xv();XYq();zB_();OB_();wB_();kR();P1();ay();jB_();JB_();ZB_();TB_();N8();y8();bB_();X$();uzq();z1();K5();TW6();jP();Wq();Uh();kq();dO6();U5();bY();lB_();oB_();tB_();Ur();sn();Kc_();fn6();i4q();VA8();Ac_();$c_();NOq();ZN6();vQ8();jc_();No6();j_8();HB();zY();Jc_();uH();Ig();$t8();HR();dq();z9();S_();Z56();_D6();hk();Sk6();jJ();QC();CP();AC();S_();lV6();FR();JB();vc_();mz();kc_();z3();Rc_();ZAq();DAq();NJ();C3();F36();Sc_();fq8();bc_();Qn();Zi();Md8();uc_();mc_();JQ8();q3();fc();Uc_();Qc_();nc_();sc_();ec_();_F_();PF_();ZF_();TF_();mF_();_i8();Tz();SY8();lF_();nF_();aF_();PKq();eF_();KU_();Iz8();zU_();DU_();GU_();kU_();VU_();xOq();LU_();CU_();pU_();Ot6();BU_();UU_();lU_();nU_();oU_();eU_();Kd_();Od_();Jd_();Zd_();Td_();Uzq();kd_();hY();g7q();_1();Vd_();bd_();vP();$w();Rw();r();oOq=q6(K8(),1),DO=q6(q8(),1),d8=q6(q8(),1),aOq=[],UV5={maybeLoadOlder:(q)=>{}};md_=["❏","❐"]});async function Oy6(q,K,_,A){let{App:z}=await Promise.resolve().then(() => (e5q(),t5q)),{REPL:Y}=await Promise.resolve().then(() => (tOq(),gd_));await A(q,W(z,{...K,children:W(Y,{..._})}))}var Bd_=h(()=>{r()});async function aV5(){if(kO())return V("[Bootstrap] Skipped: Nonessential traffic disabled"),null;if(Jq()!=="firstParty")return V("[Bootstrap] Skipped: 3P provider"),null;let q=MW();if(!(dK()?.accessToken&&JW())&&!q)return V("[Bootstrap] Skipped: no usable OAuth or API key"),null;let _=`${yK().BASE_API_URL}/api/claude_cli/bootstrap`;try{return await hQ(async()=>{let A=dK()?.accessToken,z;if(A&&JW())z={Authorization:`Bearer ${A}`,"anthropic-beta":rw};else if(q)z={"x-api-key":q};else return V("[Bootstrap] No auth available on retry, aborting"),null;V("[Bootstrap] Fetching");let Y=await Mq.get(_,{headers:{"Content-Type":"application/json","User-Agent":k9(),...z},timeout:5000}),O=rV5().safeParse(Y.data);if(!O.success)return V(`[Bootstrap] Response failed validation: ${O.error.message}`),null;return V("[Bootstrap] Fetch ok"),O.data})}catch(A){throw V(`[Bootstrap] Fetch failed: ${Mq.isAxiosError(A)?A.response?.status??A.code:"unknown"}`),A}}async function cd_(){try{let q=await aV5();if(!q)return;let K=q.client_data??null,_=q.additional_model_options??[],A=j8();if(M2(A.clientDataCache,K)&&M2(A.additionalModelOptionsCache,_)){V("[Bootstrap] Cache unchanged, skipping write");return}V("[Bootstrap] Cache updated, persisting to disk"),B8((z)=>({...z,clientDataCache:K,additionalModelOptionsCache:_}))}catch(q){A6(q)}}var rV5;var Fd_=h(()=>{d7();LQ();wK();g88();a4();Wq();z8();ah();y8();Q7();rV5=I6(()=>Bj.object({client_data:Bj.record(Bj.unknown()).nullish(),additional_model_options:Bj.array(Bj.object({model:Bj.string(),name:Bj.string(),description:Bj.string()}).transform(({model:q,name:K,description:_})=>({value:q,label:K,description:_}))).nullish()}))});function sV5(q){try{let K=new URL(q);return K.search="",K.toString().replace(/\/$/,"")}catch{return}}async function Ud_(){if(process.env.PUKU_CLI_DISABLE_NONESSENTIAL_TRAFFIC)return;try{let q=await Mq.get("https://api.anthropic.com/mcp-registry/v0/servers?version=latest&visibility=commercial",{timeout:5000}),K=new Set;for(let _ of q.data.servers)for(let A of _.server.remotes??[]){let z=sV5(A.url);if(z)K.add(z)}oV5=K,V(`[mcp-registry] Loaded ${K.size} official MCP URLs`)}catch(q){V(`Failed to fetch MCP registry: ${d6(q)}`,{level:"error"})}}var oV5=void 0;var dd_=h(()=>{d7();z8();N8()});import{posix as Qd_,win32 as ld_}from"path";function eV5(){let q=process.argv[1]||"",K=process.execPath||process.argv[0]||"";if(_q()==="windows")q=q.split(ld_.sep).join(Qd_.sep),K=K.split(ld_.sep).join(Qd_.sep);let _=[q,K],A=["/build-ant/","/build-external/","/build-external-native/","/build-ant-native/"];return _.some((z)=>A.some((Y)=>z.includes(Y)))}function Ky5(q){let K=`${q.name}: ${q.message}`;return qy5.some((_)=>_.test(K))}function id_(){let q=process.listeners("warning");if(nY8&&q.includes(nY8))return;if(!eV5())process.removeAllListeners("warning");nY8=(_)=>{try{let A=`${_.name}: ${_.message.slice(0,50)}`,z=iY8.get(A)||0;if(iY8.has(A)||iY8.size<tV5)iY8.set(A,z+1);let Y=Ky5(_);if(Q("ev_event",{is_internal:Y?1:0,occurrence_count:z+1,classname:_.name,...process.env.USER_TYPE==="ant"&&{message:_.message}}),u6(process.env.PUKU_CLI_DEBUG))V(`${Y?"[Internal Warning]":"[Warning]"} ${_.toString()}`,{level:"warn"})}catch{}},process.on("warning",nY8)}var tV5=1000,iY8,qy5,nY8=null;var nd_=h(()=>{z8();x8();s_();iY8=new Map;qy5=[/MaxListenersExceededWarning.*AbortSignal/,/MaxListenersExceededWarning.*EventTarget/]});function rY8(){let q=rd_.c(1),K;if(q[0]===Symbol.for("react.memo_cache_sentinel"))K=y(T,{children:["MCP servers may execute code or access system resources. All tool calls require approval. Learn more in the"," ",W(aK,{url:"https://puku.sh/docs/en/mcp",children:"MCP documentation"}),"."]}),q[0]=K;else K=q[0];return K}var rd_;var eOq=h(()=>{n6();r();rd_=q6(K8(),1)});function od_(q){let K=ad_.c(13),{serverName:_,onDone:A}=q,z;if(K[0]!==A||K[1]!==_)z=function(X){Q("ev_event",{choice:X});q:switch(X){case"yes":case"yes_all":{let f=(Bq()||{}).enabledMcpjsonServers||[];if(!f.includes(_))Sq("localSettings",{enabledMcpjsonServers:[...f,_]});if(X==="yes_all")Sq("localSettings",{enableAllProjectMcpServers:!0});A();break q}case"no":{let f=(Bq()||{}).disabledMcpjsonServers||[];if(!f.includes(_))Sq("localSettings",{disabledMcpjsonServers:[...f,_]});A()}}},K[0]=A,K[1]=_,K[2]=z;else z=K[2];let Y=z,O=`New MCP server found in .mcp.json: ${_}`,$;if(K[3]!==Y)$=()=>Y("no"),K[3]=Y,K[4]=$;else $=K[4];let w;if(K[5]===Symbol.for("react.memo_cache_sentinel"))w=W(rY8,{}),K[5]=w;else w=K[5];let H;if(K[6]===Symbol.for("react.memo_cache_sentinel"))H=[{label:"Use this and all future MCP servers in this project",value:"yes_all"},{label:"Use this MCP server",value:"yes"},{label:"Continue without using this MCP server",value:"no"}],K[6]=H;else H=K[6];let j;if(K[7]!==Y)j=W(l8,{options:H,onChange:(J)=>Y(J),onCancel:()=>Y("no")}),K[7]=Y,K[8]=j;else j=K[8];let M;if(K[9]!==O||K[10]!==$||K[11]!==j)M=y(Hq,{title:O,color:"warning",onCancel:$,children:[w,j]}),K[9]=O,K[10]=$,K[11]=j,K[12]=M;else M=K[12];return M}var ad_;var sd_=h(()=>{Vq();w5();c_();eOq();r();ad_=q6(K8(),1)});function ed_(q){let K=td_.c(21),{serverNames:_,onDone:A}=q,z;if(K[0]!==A||K[1]!==_)z=function(D){let Z=Bq()||{},G=Z.enabledMcpjsonServers||[],v=Z.disabledMcpjsonServers||[],[k,N]=NA8(_,(L)=>D.includes(L));if(Q("ev_event",{approved:k.length,rejected:N.length}),k.length>0){let L=[...new Set([...G,...k])];Sq("localSettings",{enabledMcpjsonServers:L})}if(N.length>0){let L=[...new Set([...v,...N])];Sq("localSettings",{disabledMcpjsonServers:L})}A()},K[0]=A,K[1]=_,K[2]=z;else z=K[2];let Y=z,O;if(K[3]!==A||K[4]!==_)O=()=>{let D=(Bq()||{}).disabledMcpjsonServers||[],Z=[...new Set([...D,..._])];Sq("localSettings",{disabledMcpjsonServers:Z}),A()},K[3]=A,K[4]=_,K[5]=O;else O=K[5];let $=O,w=`${_.length} new MCP servers found in .mcp.json`,H;if(K[6]===Symbol.for("react.memo_cache_sentinel"))H=W(rY8,{}),K[6]=H;else H=K[6];let j;if(K[7]!==_)j=_.map(_y5),K[7]=_,K[8]=j;else j=K[8];let M;if(K[9]!==$||K[10]!==Y||K[11]!==_||K[12]!==j)M=W(nA6,{options:j,defaultValue:_,onSubmit:Y,onCancel:$,hideIndexes:!0}),K[9]=$,K[10]=Y,K[11]=_,K[12]=j,K[13]=M;else M=K[13];let J;if(K[14]!==$||K[15]!==w||K[16]!==M)J=y(Hq,{title:w,subtitle:"Select any you wish to enable.",color:"warning",onCancel:$,hideInputGuide:!0,children:[H,M]}),K[14]=$,K[15]=w,K[16]=M,K[17]=J;else J=K[17];let X;if(K[18]===Symbol.for("react.memo_cache_sentinel"))X=W(x,{paddingX:1,children:W(T,{dimColor:!0,italic:!0,children:y(Pq,{children:[W(c8,{shortcut:"Space",action:"select"}),W(c8,{shortcut:"Enter",action:"confirm"}),W(a8,{action:"confirm:no",context:"Confirmation",fallback:"Esc",description:"reject all"})]})})}),K[18]=X;else X=K[18];let P;if(K[19]!==J)P=y(Y8,{children:[J,X]}),K[19]=J,K[20]=P;else P=K[20];return P}function _y5(q){return{label:q,value:q}}var td_;var qQ_=h(()=>{l4q();n6();Vq();F7();ks6();q7();c_();R7();eOq();r();td_=q6(K8(),1)});async function KQ_(q){let{servers:K}=W$("project"),_=Object.keys(K).filter((A)=>y46(A)==="pending");if(_.length===0)return;await new Promise((A)=>{let z=()=>void A();if(_.length===1&&_[0]!==void 0){let Y=_[0];q.render(W(_9,{children:W(I9,{children:W(od_,{serverName:Y,onDone:z})})}))}else q.render(W(_9,{children:W(I9,{children:W(ed_,{serverNames:_,onDone:z})})}))})}var _Q_=h(()=>{sd_();qQ_();kR();dq();Qj();D$();r()});var AQ_=h(()=>{Wq();z8()});class q3q{frameDurations=[];firstRenderTime;lastRenderTime;record(q){let K=performance.now();if(this.firstRenderTime===void 0)this.firstRenderTime=K;this.lastRenderTime=K,this.frameDurations.push(q)}getMetrics(){if(this.frameDurations.length===0||this.firstRenderTime===void 0||this.lastRenderTime===void 0)return;let q=this.lastRenderTime-this.firstRenderTime;if(q<=0)return;let _=this.frameDurations.length/(q/1000),A=this.frameDurations.slice().sort(($,w)=>w-$),z=Math.max(0,Math.ceil(A.length*0.01)-1),Y=A[z],O=Y>0?1000/Y:0;return{averageFps:Math.round(_*100)/100,low1PctFps:Math.round(O*100)/100}}}import{realpath as Ay5}from"fs/promises";async function zQ_(){try{let q=await cx();if(!q){V("Not in a GitHub repository, skipping path mapping update");return}let K=Tq(),A=d5(K)??K,z;try{z=(await Ay5(A)).normalize("NFC")}catch{z=A}let Y=q.toLowerCase(),$=j8().githubRepoPaths?.[Y]??[];if($[0]===z){V(`Path ${z} already tracked for repo ${Y}`);return}let w=$.filter((j)=>j!==z),H=[z,...w];B8((j)=>({...j,githubRepoPaths:{...j.githubRepoPaths,[Y]:H}})),V(`Added ${z} to tracked paths for repo ${Y}`)}catch(q){V(`Error updating repo path mapping: ${q}`)}}function YQ_(q){let K=j8(),_=q.toLowerCase();return K.githubRepoPaths?.[_]??[]}async function OQ_(q){let K=await Promise.all(q.map(k7));return q.filter((_,A)=>K[A])}async function $Q_(q,K){try{let _=await YS6(q);if(!_)return!1;let A=EU(_);if(!A)return!1;return A.toLowerCase()===K.toLowerCase()}catch{return!1}}function wQ_(q,K){let _=j8(),A=q.toLowerCase(),z=_.githubRepoPaths?.[A]??[],Y=z.filter(($)=>$!==K);if(Y.length===z.length)return;let O={..._.githubRepoPaths};if(Y.length===0)delete O[A];else O[A]=Y;B8(($)=>({...$,githubRepoPaths:O})),V(`Removed ${K} from tracked paths for repo ${A}`)}var aY8=h(()=>{G8();Wq();z8();DX();X7();hL();m4()});function HQ_(q,K){let[_,A]=oY8.useState(!1);return oY8.useEffect(()=>{A(!1);let z=setTimeout(A,q,!0);return()=>clearTimeout(z)},[q,K]),_}var oY8;var jQ_=h(()=>{oY8=q6(q8(),1)});async function zy5(){try{let q=yK(),K=new URL(q.TOKEN_URL),_=[`${q.BASE_API_URL}/api/hello`,`${K.origin}/v1/oauth/hello`],A=async(O)=>{try{let $=await Mq.get(O,{headers:{"User-Agent":Jp()}});if($.status!==200)return{success:!1,error:`Failed to connect to ${new URL(O).hostname}: Status ${$.status}`};return{success:!0}}catch($){let w=new URL(O).hostname,H=YyK($);return{success:!1,error:`Failed to connect to ${w}: ${$ instanceof Error?$.code||$.message:String($)}`,sslHint:H??void 0}}},Y=(await Promise.all(_.map(A))).find((O)=>!O.success);if(Y)Q("ev_event",{isConnectivityError:!1,hasErrorMessage:!!Y.error,isSSLError:!!Y.sslHint});return Y||{success:!0}}catch(q){return A6(q),Q("ev_event",{isConnectivityError:!0}),{success:!1,error:`Connectivity check error: ${q instanceof Error?q.code||q.message:String(q)}`}}}function JQ_(q){let K=MQ_.c(12),{onSuccess:_}=q,[A,z]=J$6.useState(null),[Y,O]=J$6.useState(!0),$=HQ_(1000)&&Y,w,H;if(K[0]===Symbol.for("react.memo_cache_sentinel"))w=()=>{(async function(){let D=await zy5();z(D),O(!1)})()},H=[],K[0]=w,K[1]=H;else w=K[0],H=K[1];J$6.useEffect(w,H);let j,M;if(K[2]!==_||K[3]!==A)j=()=>{if(A?.success)_();else if(A&&!A.success){let P=setTimeout(Yy5,100);return()=>clearTimeout(P)}},M=[A,_],K[2]=_,K[3]=A,K[4]=j,K[5]=M;else j=K[4],M=K[5];J$6.useEffect(j,M);let J;if(K[6]!==Y||K[7]!==A||K[8]!==$)J=Y&&$?y(x,{paddingLeft:1,children:[W(n_,{}),W(T,{children:"Checking connectivity..."})]}):!A?.success&&!Y&&y(x,{flexDirection:"column",gap:1,children:[W(T,{color:"error",children:"Unable to connect to Anthropic services"}),W(T,{color:"error",children:A?.error}),A?.sslHint?y(x,{flexDirection:"column",gap:1,children:[W(T,{children:A.sslHint}),W(T,{color:"suggestion",children:"See https://puku.sh/docs/en/network-config"})]}):y(x,{flexDirection:"column",gap:1,children:[W(T,{children:"Please check your internet connection and network settings."}),Jq()==="firstParty"&&y(T,{children:["Note: puku-cli might not be available in your country. Check supported countries at"," ",W(T,{color:"suggestion",children:"https://anthropic.com/supported-countries"})]})]})]}),K[6]=Y,K[7]=A,K[8]=$,K[9]=J;else J=K[9];let X;if(K[10]!==J)X=W(x,{flexDirection:"column",gap:1,paddingLeft:1,children:J}),K[10]=J,K[11]=X;else X=K[11];return X}function Yy5(){return process.exit(1)}var MQ_,J$6;var XQ_=h(()=>{d7();Y3();a4();jQ_();n6();tl();ah();y8();Q7();r();MQ_=q6(K8(),1),J$6=q6(q8(),1)});var fQ_={};S8(fQ_,{ApproveApiKey:()=>K3q});function K3q(q){let K=PQ_.c(17),{customApiKeyTruncated:_,onDone:A}=q,z;if(K[0]!==_||K[1]!==A)z=function(f){q:switch(f){case"yes":{B8((D)=>({...D,customApiKeyResponses:{...D.customApiKeyResponses,approved:[...D.customApiKeyResponses?.approved??[],_]}})),A(!0);break q}case"no":B8((D)=>({...D,customApiKeyResponses:{...D.customApiKeyResponses,rejected:[...D.customApiKeyResponses?.rejected??[],_]}})),A(!1)}},K[0]=_,K[1]=A,K[2]=z;else z=K[2];let Y=z,O;if(K[3]!==Y)O=()=>Y("no"),K[3]=Y,K[4]=O;else O=K[4];let $;if(K[5]===Symbol.for("react.memo_cache_sentinel"))$=W(T,{bold:!0,children:"ANTHROPIC_API_KEY"}),K[5]=$;else $=K[5];let w;if(K[6]!==_)w=y(T,{children:[$,y(T,{children:[": sk-ant-...",_]})]}),K[6]=_,K[7]=w;else w=K[7];let H;if(K[8]===Symbol.for("react.memo_cache_sentinel"))H=W(T,{children:"Do you want to use this API key?"}),K[8]=H;else H=K[8];let j;if(K[9]===Symbol.for("react.memo_cache_sentinel"))j={label:"Yes",value:"yes"},K[9]=j;else j=K[9];let M;if(K[10]===Symbol.for("react.memo_cache_sentinel"))M=[j,{label:y(T,{children:["No (",W(T,{bold:!0,children:"recommended"}),")"]}),value:"no"}],K[10]=M;else M=K[10];let J;if(K[11]!==Y)J=W(l8,{defaultValue:"no",defaultFocusValue:"no",options:M,onChange:(P)=>Y(P),onCancel:()=>Y("no")}),K[11]=Y,K[12]=J;else J=K[12];let X;if(K[13]!==O||K[14]!==w||K[15]!==J)X=y(Hq,{title:"Detected a custom API key in your environment",color:"warning",onCancel:O,children:[w,H,J]}),K[13]=O,K[14]=w,K[15]=J,K[16]=X;else X=K[16];return X}var PQ_;var _3q=h(()=>{n6();Wq();w5();c_();r();PQ_=q6(K8(),1)});function $y5(){return W(x,{flexDirection:"column",width:A3q,overflow:"hidden",children:W(T,{wrap:"truncate",children:Oy5})})}function sY8(){let[q]=fK(),K="Welcome to puku-cli";if(pq.terminal==="Apple_Terminal")return W(wy5,{theme:q,welcomeMessage:"Welcome to puku-cli"});if(["light","light-daltonized","light-ansi"].includes(q))return W(z3q,{welcomeMessage:"Welcome to puku-cli",isLight:!0});return W(z3q,{welcomeMessage:"Welcome to puku-cli",isLight:!1})}function z3q({welcomeMessage:q,isLight:K}){let _=typeof process<"u"&&process.stdout?.columns?process.stdout.columns:80,A=Math.min(_,100),z="…".repeat(A),Y=30,O=A>=A3q+30,$=O?A-A3q:A,j=(K?[" "," "," ░░░░░░"," ░░░ ░░░░░░░░░░"," ░░░░░░░░░░░░░░░░░░░ "," ░░░░"," ░░░░░░░░"," ░░░░░░░░░░░░░░░░"]:[" *"," *"," ░░░░░░"," ░░░ ░░░░░░░░░░"," ░░░░░░░░░░░░░░░░░░░ *","* ░░░░"," ░░░░░░░░"," ░░░░░░░░░░░░░░░░"]).map((M)=>M.length>$?M.slice(0,$):M);return y(x,{width:A,flexDirection:"column",children:[y(T,{children:[y(T,{color:"puku",children:[q," "]}),y(T,{dimColor:!0,children:["v","1.8.37"," "]})]}),W(x,{marginBottom:1,children:W(T,{dimColor:!0,children:z})}),y(x,{flexDirection:"row",children:[W(x,{flexDirection:"column",width:$,overflow:"hidden",flexShrink:0,children:j.map((M,J)=>W(T,{children:M},J))}),O&&y(Y8,{children:[W(x,{flexShrink:0,children:W($y5,{})}),W(x,{flexGrow:1})]})]}),W(T,{dimColor:!0,children:z})]})}function wy5({theme:q,welcomeMessage:K}){let _=["light","light-daltonized","light-ansi"].includes(q);return W(z3q,{welcomeMessage:K,isLight:_})}var Oy5,A3q=15;var Y3q=h(()=>{n6();n5();r();Oy5=`\x1B[0m\x1B[38;5;177m▆\x1B[48;5;183m \x1B[0m\x1B[38;5;177m▆\x1B[0m
|
|
7646
|
+
`)},v8=()=>{xy6((I8)=>I8+1)};return lD?.on("suspend",O8),lD?.on("resume",v8),()=>{lD?.off("suspend",O8),lD?.off("resume",v8)}},[lD]);let C$6=d8.useMemo(()=>{if(!U_)return null;let O8=v7.filter((W_)=>W_.type==="progress"&&W_.data.type==="hook_progress"&&(W_.data.hookEvent==="Stop"||W_.data.hookEvent==="SubagentStop"));if(O8.length===0)return null;let v8=O8.at(-1)?.toolUseID;if(!v8)return null;if(v7.some((W_)=>W_.type==="system"&&W_.subtype==="stop_hook_summary"&&W_.toolUseID===v8))return null;let gq=O8.filter((W_)=>W_.toolUseID===v8),qK=gq.length,J_=xq(v7,(W_)=>{if(W_.type!=="attachment")return!1;let O7=W_.attachment;return"hookEvent"in O7&&(O7.hookEvent==="Stop"||O7.hookEvent==="SubagentStop")&&"toolUseID"in O7&&O7.toolUseID===v8}),KK=gq.find((W_)=>W_.data.statusMessage)?.data.statusMessage;if(KK)return qK===1?`${KK}…`:`${KK}… ${J_}/${qK}`;let WK=gq[0]?.data.hookEvent==="SubagentStop"?"subagent stop":"stop";return qK===1?`running ${WK} hook`:`running stop hooks… ${J_}/${qK}`},[v7,U_]),uy6=d8.useCallback(()=>{a_({messagesLength:v7.length,streamingToolUsesLength:Ez.length})},[v7.length,Ez.length]),HT=d8.useCallback(()=>{a_(null)},[]),UI=E_()&&!B,$X=d8.useRef(null),[jT,iE]=d8.useState(!1),[TM,ZF]=d8.useState(""),[GF,vF]=d8.useState(0),[py6,nE]=d8.useState(0),S7=d8.useCallback((O8,v8)=>{vF(O8),nE(v8)},[]);lK((O8,v8,I8)=>{if(v8.ctrl||v8.meta)return;if(O8==="/"){$X.current?.setAnchor(),iE(!0),I8.stopImmediatePropagation();return}let gq=O8[0];if((gq==="n"||gq==="N")&&O8===gq.repeat(O8.length)&&GF>0){let qK=gq==="n"?$X.current?.nextMatch:$X.current?.prevMatch;if(qK)for(let J_=0;J_<O8.length;J_++)qK();I8.stopImmediatePropagation()}},{isActive:W6==="transcript"&&UI&&!jT&&!U6});let{setQuery:dI,scanElement:mO8,setPositions:eo}=bC_(),MT=Eq().columns,my6=DO.useRef(MT);DO.useEffect(()=>{if(my6.current!==MT){if(my6.current=MT,TM||jT)iE(!1),ZF(""),vF(0),nE(0),$X.current?.disarmSearch(),dI("")}},[MT,TM,jT,dI]),lK((O8,v8,I8)=>{if(v8.ctrl||v8.meta)return;if(O8==="q"){HT(),I8.stopImmediatePropagation();return}if(O8==="["&&!U6)A8(!0),N6(!0),I8.stopImmediatePropagation();else if(O8==="v"){if(I8.stopImmediatePropagation(),r6.current)return;r6.current=!0;let gq=f8.current,qK=(J_)=>{if(gq!==f8.current)return;clearTimeout(v6.current),J8(J_)};qK(`rendering ${qq.length} messages…`),(async()=>{try{let J_=Math.max(80,(process.stdout.columns??80)-6),WK=(await nA8(qq,I4,J_)).replace(/[ \t]+$/gm,""),W_=IV5(xV5(),`cc-transcript-${Date.now()}.txt`);await uV5(W_,WK);let O7=Q78(W_);qK(O7?`opening ${W_}`:`wrote ${W_} · no $VISUAL/$EDITOR set`)}catch(J_){qK(`render failed: ${J_ instanceof Error?J_.message:String(J_)}`)}if(r6.current=!1,gq!==f8.current)return;v6.current=setTimeout((J_)=>J_(""),4000,J8)})()}},{isActive:W6==="transcript"&&UI&&!jT});let TF=W6==="transcript"&&UI;d8.useEffect(()=>{if(!TF)ZF(""),vF(0),nE(0),iE(!1),f8.current++,clearTimeout(v6.current),A8(!1),J8("")},[TF]),d8.useEffect(()=>{if(dI(TF?TM:""),!TF)eo(null)},[TF,TM,dI,eo]);let gy6={screen:W6,setScreen:E6,showAllInTranscript:C6,setShowAllInTranscript:N6,messageCount:v7.length,onEnterTranscript:uy6,onExitTranscript:HT,virtualScrollActive:UI,searchBarOpen:jT},gO8=EK?qq.slice(0,EK.messagesLength):qq,BO8=EK?Ez.slice(0,EK.streamingToolUsesLength):Ez;if(MB_({onOpenBackgroundTasks:hq?void 0:()=>xI(!0)}),vB_(),W6==="transcript"){let O8=E_()&&!B&&!U6?NA:void 0,v8=W(ua,{messages:gO8,tools:I4,commands:w_,verbose:!0,toolJSX:null,toolUseConfirmQueue:[],inProgressToolUseIDs:mD,isMessageSelectorVisible:!1,conversationId:xo,screen:W6,agentDefinitions:o,streamingToolUses:BO8,showAllInTranscript:C6,onOpenRateLimitOptions:WF,isLoading:U_,hidePastThinking:!0,streamingThinking:W4,scrollRef:O8,jumpRef:$X,onSearchMatchesChange:S7,scanElement:mO8,setPositions:eo,disableRenderCap:U6}),I8=Y_&&W(x,{flexDirection:"column",width:"100%",children:Y_.jsx}),gq=y(I9,{children:[W(pd_,{isAnimating:pK,title:h$,disabled:p,noPrefix:KA}),W(HOq,{...gy6}),null,W(jOq,{onSubmit:QD,isActive:!Y_?.isLocalJSXCommand}),O8?W(rOq,{scrollRef:NA,isActive:c5!=="ultraplan-choice",isModal:!jT,onScroll:()=>$X.current?.disarmSearch()}):null,W(MOq,{...y$6}),O8?W(m7q,{scrollRef:NA,scrollable:y(Y8,{children:[v8,I8,W(FOq,{})]}),bottom:jT?W(QV5,{jumpRef:$X,initialQuery:"",count:GF,current:py6,onClose:(qK)=>{if(ZF(GF>0?qK:""),iE(!1),!qK)vF(0),nE(0),$X.current?.setSearchQuery("")},onCancel:()=>{iE(!1),$X.current?.setSearchQuery(""),$X.current?.setSearchQuery(TM),dI(TM)},setHighlight:dI}):W(xd_,{showAllInTranscript:C6,virtualScroll:!0,status:Q6||void 0,searchBadge:TM&&GF>0?{current:py6,count:GF}:void 0})}):y(Y8,{children:[v8,I8,W(FOq,{}),W(xd_,{showAllInTranscript:C6,virtualScroll:!1,suppressShowAll:U6,status:Q6||void 0})]})]});if(O8)return W(nOq,{mouseTracking:EC8(),children:gq});return gq}let kN=c6?w6[c6]:void 0,kF=kN&&Z$(kN)?kN:void 0,wX=kF??(kN&&t$(kN)?kN:void 0),By6=wX?wX.messages??[]:ZN||!U_?v7:qq,cy6=rA&&!wX&&By6.length<=bA.current?rA:void 0,NN=c5==="tool-permission"?W(vx_,{onDone:()=>m_(([O8,...v8])=>v8),onReject:V$6,toolUseConfirm:F4[0],toolUseContext:iH(v7,v7,J5??J4(),f6),verbose:d,workerBadge:F4[0]?.workerBadge,setStickyFooter:E_()?qA:void 0},F4[0]?.toolUseID):null,VN=MT<Fzq,nH=!Y_?.shouldHidePromptInput&&!c5&&!$F,HX=E_()&&Y_?.isLocalJSXCommand===!0,f9=HX?Y_.jsx:null,Fy6=y(I9,{children:[W(pd_,{isAnimating:pK,title:h$,disabled:p,noPrefix:KA}),W(HOq,{...gy6}),null,W(jOq,{onSubmit:QD,isActive:!Y_?.isLocalJSXCommand}),W(rOq,{scrollRef:NA,isActive:E_()&&(f9!=null||!c5||c5==="tool-permission"),onScroll:f9||NN||wX?void 0:m6}),null,W(MOq,{...y$6}),W(t78,{dynamicMcpConfig:g6,isStrictMcpConfig:J,children:W(m7q,{scrollRef:NA,overlay:NN,bottomFloat:void 0,modal:f9,modalScrollRef:d3,dividerYRef:xw,hidePill:!!wX,hideSticky:!!kF,newMessageCount:gE?.count??0,onPillClick:()=>{_X(null),S$(NA.current)},scrollable:y(Y8,{children:[W(Hc_,{}),W(ua,{messages:By6,tools:I4,commands:w_,verbose:d,toolJSX:Y_,toolUseConfirmQueue:F4,inProgressToolUseIDs:kF?kF.inProgressToolUseIDs??new Set:mD,isMessageSelectorVisible:X9,conversationId:xo,screen:W6,streamingToolUses:Ez,showAllInTranscript:C6,agentDefinitions:o,onOpenRateLimitOptions:WF,isLoading:U_,streamingText:U_&&!wX?YT:null,isBriefOnly:wX?!1:h6,unseenDivider:wX?void 0:gE,scrollRef:E_()?NA:void 0,trackStickyPrompt:E_()?!0:void 0,cursor:KX,setCursor:_X,cursorNavRef:AX}),W(gU_,{}),!Z&&cy6&&!f9&&W(dn,{param:{text:cy6,type:"text"},addMargin:!0,verbose:d}),Y_&&!(Y_.isLocalJSXCommand&&Y_.isImmediate)&&!HX&&W(x,{flexDirection:"column",width:"100%",children:Y_.jsx}),!1,null,W(x,{flexGrow:1}),Bo&&W(ClK,{mode:$K,spinnerTip:P6,responseLengthRef:zX,apiMetricsRef:cD,overrideMessage:Xq,spinnerSuffix:C$6,verbose:d,loadingStartTimeRef:Lz,totalPausedMsRef:GY,pauseStartTimeRef:ZO,overrideColor:T7,overrideShimmerColor:kY,hasActiveTools:mD.size>0,leaderIsIdle:!U_}),!Bo&&!U_&&!rA&&!HF&&h6&&!wX&&W(blK,{}),E_()&&W(rz8,{})]}),bottom:y(x,{flexDirection:"row",width:"100%",alignItems:"flex-end",children:[null,y(x,{flexDirection:"column",flexGrow:1,children:[qz,Y_?.isLocalJSXCommand&&Y_.isImmediate&&!HX&&W(x,{flexDirection:"column",width:"100%",children:Y_.jsx}),!Bo&&!Y_?.isLocalJSXCommand&&O6&&lq&&lq.length>0&&W(x,{width:"100%",flexDirection:"column",children:W(To6,{tasks:lq,isStandalone:!0})}),c5==="sandbox-permission"&&W(cOq,{hostPattern:G7[0].hostPattern,onUserResponse:(O8)=>{let{allow:v8,persistToSettings:I8}=O8,gq=G7[0];if(!gq)return;let qK=gq.hostPattern.host;if(I8){let KK={type:"addRules",rules:[{toolName:h3,ruleContent:`domain:${qK}`}],behavior:v8?"allow":"deny",destination:"localSettings"};x6((WK)=>({...WK,toolPermissionContext:Nz(WK.toolPermissionContext,KK)})),py(KK),Cq.refreshConfig()}IA((KK)=>{return KK.filter((WK)=>WK.hostPattern.host===qK).forEach((WK)=>WK.resolvePromise(v8)),KK.filter((WK)=>WK.hostPattern.host!==qK)});let J_=P5.current.get(qK);if(J_){for(let KK of J_)KK();P5.current.delete(qK)}}},G7[0].hostPattern.host),c5==="prompt"&&W(Cx_,{title:V4[0].title,toolInputSummary:V4[0].toolInputSummary,request:V4[0].request,onRespond:(O8)=>{let v8=V4[0];if(!v8)return;v8.resolve({prompt_response:v8.request.prompt,selected:O8}),a7(([,...I8])=>I8)},onAbort:()=>{let O8=V4[0];if(!O8)return;O8.reject(Error("Prompt cancelled by user")),a7(([,...v8])=>v8)}},V4[0].request.prompt),k6&&W(Ozq,{toolName:k6.toolName,description:k6.description}),H6&&W(Ozq,{toolName:"Network Access",description:`Waiting for leader to approve network access to ${H6.host}`}),c5==="worker-sandbox-permission"&&W(cOq,{hostPattern:{host:j6.queue[0].host,port:void 0},onUserResponse:(O8)=>{let{allow:v8,persistToSettings:I8}=O8,gq=j6.queue[0];if(!gq)return;let qK=gq.host;if(hQK(gq.workerName,gq.requestId,qK,v8,J6?.teamName),I8&&v8){let J_={type:"addRules",rules:[{toolName:h3,ruleContent:`domain:${qK}`}],behavior:"allow",destination:"localSettings"};x6((KK)=>({...KK,toolPermissionContext:Nz(KK.toolPermissionContext,J_)})),py(J_),Cq.refreshConfig()}x6((J_)=>({...J_,workerSandboxPermissions:{...J_.workerSandboxPermissions,queue:J_.workerSandboxPermissions.queue.slice(1)}}))}},j6.queue[0].requestId),c5==="elicitation"&&W(Lx_,{event:K6.queue[0],onResponse:(O8,v8)=>{let I8=K6.queue[0];if(!I8)return;if(I8.respond({action:O8,content:v8}),!(I8.params.mode==="url"&&O8==="accept"))x6((qK)=>({...qK,elicitation:{queue:qK.elicitation.queue.slice(1)}}))},onWaitingDismiss:(O8)=>{let v8=K6.queue[0];x6((I8)=>({...I8,elicitation:{queue:I8.elicitation.queue.slice(1)}})),v8?.onWaitingDismiss?.(O8)}},K6.queue[0].serverName+":"+String(K6.queue[0].requestId)),c5==="cost"&&W(xC_,{onDone:()=>{Io(!1),po(!0),B8((O8)=>({...O8,hasAcknowledgedCostThreshold:!0})),Q("ev_event",{})}}),c5==="idle-return"&&YF&&W(mC_,{idleMinutes:YF.idleMinutes,totalInputTokens:PX(),onDone:async(O8)=>{let v8=YF;if(Z$6(null),Q("ev_event",{action:O8,idleMinutes:Math.round(v8.idleMinutes),messageCount:oq.current.length,totalInputTokens:PX()}),O8==="dismiss"){yA(v8.input);return}if(O8==="never")B8((I8)=>{if(I8.idleReturnDismissed)return I8;return{...I8,idleReturnDismissed:!0}});if(O8==="clear"){let{clearConversation:I8}=await Promise.resolve().then(() => (l_8(),Gqq));await I8({setMessages:A_,readFileState:wT.current,discoveredSkillNames:UD.current,loadedNestedMemoryPaths:Uo.current,getAppState:()=>b6.getState(),setAppState:x6,setConversationId:YX}),pY.current=!1,TY(void 0),mI.current.clear(),Fo.current=0}uo.current=!0,so.current(v8.input,{setCursorOffset:()=>{},clearBuffer:()=>{},resetHistory:()=>{}})}}),c5==="ide-onboarding"&&W(jd8,{onDone:()=>R6(!1),installationStatus:Rq}),!1,!1,c5==="effort-callout"&&W(Ic_,{model:f6,onDone:(O8)=>{if(m8(!1),O8!=="dismiss")x6((v8)=>({...v8,effortValue:O8}))}}),c5==="remote-callout"&&W(pc_,{onDone:(O8)=>{x6((v8)=>{if(!v8.showRemoteCallout)return v8;return{...v8,showRemoteCallout:!1,...O8==="enable"&&{replBridgeEnabled:!0,replBridgeExplicit:!0,replBridgeOutboundOnly:!1}}})}}),MF,c5==="plugin-hint"&&bK&&W(NU_,{pluginName:bK.pluginName,pluginDescription:bK.pluginDescription,marketplaceName:bK.marketplaceName,sourceCommand:bK.sourceCommand,onResponse:FK}),c5==="lsp-recommendation"&&Qq&&W(ZU_,{pluginName:Qq.pluginName,pluginDescription:Qq.pluginDescription,fileExtension:Qq.fileExtension,onResponse:Uq}),c5==="desktop-upsell"&&W(IF_,{onDone:()=>Aq(!1)}),null,null,jF(),!Y_?.shouldHidePromptInput&&!c5&&!Ny6&&!Z&&!KX&&!aA6()&&y(Y8,{children:[BI&&W(Pd_,{onRun:xO8,onCancel:R$6,reason:Dd_(BI)}),pI.state!=="closed"?W(nV6,{state:pI.state,lastResponse:pI.lastResponse,handleSelect:pI.handleSelect,inputValue:Y7,setInputValue:yA,onRequestFeedback:Xf}):TN.state!=="closed"?W(nV6,{state:TN.state,lastResponse:TN.lastResponse,handleSelect:TN.handleSelect,handleTranscriptSelect:TN.handleTranscriptSelect,inputValue:Y7,setInputValue:yA,onRequestFeedback:Xf,message:"How well did Claude use its memory? (optional)"}):W(nV6,{state:QE.state,lastResponse:QE.lastResponse,handleSelect:QE.handleSelect,handleTranscriptSelect:QE.handleTranscriptSelect,inputValue:Y7,setInputValue:yA,onRequestFeedback:no.current?void 0:Xf}),lH.state!=="closed"&&W(nV6,{state:lH.state,lastResponse:null,handleSelect:()=>{},handleTranscriptSelect:lH.handleTranscriptSelect,inputValue:Y7,setInputValue:yA}),!1,T$6&&W(Gd_,{}),W(Wg_,{debug:K,ideSelection:tq,hasSuppressedDialogs:!!cI,isLocalJSXCommandActive:hq,getToolUseContext:iH,toolPermissionContext:U,setToolPermissionContext:PF,apiKeyStatus:gI,commands:w_,agents:o.activeAgents,isLoading:U_,onExit:lE,verbose:d,messages:v7,onAutoUpdaterResult:VA,autoUpdaterResult:r_,input:Y7,onInputChange:yA,mode:J9,onModeChange:mY,stashedPrompt:_O,setStashedPrompt:jf,submitCount:Q3,onShowMessageSelector:E$6,onMessageActionsEnter:void 0,mcpClients:vq,pastedContents:BD,setPastedContents:QH,vimMode:G$6,setVimMode:Gy6,showBashesDialog:$F,setShowBashesDialog:xI,onSubmit:QD,onAgentSubmit:IO8,isSearchingHistory:I1,setIsSearchingHistory:vy6,helpOpen:uw,setHelpOpen:Ty6,insertTextRef:void 0,voiceInterimRange:to.interimRange}),W(hc_,{onBackgroundSession:F5,isLoading:U_})]}),KX&&W(zmK,{cursor:KX}),c5==="message-selector"&&W(Pzq,{messages:v7,preselectedMessage:OT,onPreRestore:ro,onRestoreCode:async(O8)=>{await mt6((v8)=>{x6((I8)=>({...I8,fileHistory:v8(I8.fileHistory)}))},O8.uuid)},onSummarize:async(O8,v8,I8="from")=>{let gq=$3(v7),qK=gq.indexOf(O8);if(qK===-1){A_((i3)=>[...i3,P$("That message is no longer in the active context (snipped or pre-compact). Choose a more recent message.","warning")]);return}let J_=J4(),KK=iH(gq,[],J_,f6),WK=KK.getAppState(),W_=await Nw(KK.options.tools,KK.options.mainLoopModel,Array.from(WK.toolPermissionContext.additionalWorkingDirectories.keys()),KK.options.mcpClients),O7=Ev({mainThreadAgentDefinition:void 0,toolUseContext:KK,customSystemPrompt:KK.options.customSystemPrompt,defaultSystemPrompt:W_,appendSystemPrompt:KK.options.appendSystemPrompt}),[g7,gY]=await Promise.all([QY(),CO()]),XA=await f$_(gq,qK,KK,{systemPrompt:O7,userContext:g7,systemContext:gY,toolUseContext:KK,forkContextMessages:gq},v8,I8),J3=XA.messagesToKeep??[],x1=I8==="up_to"?[...XA.summaryMessages,...J3]:[...J3,...XA.summaryMessages],rz=[XA.boundaryMarker,...x1,...XA.attachments,...XA.hookResults];if(E_()&&I8==="from")A_((i3)=>{let Pf=i3.findIndex((b$6)=>b$6.uuid===O8.uuid);return[...i3.slice(0,Pf===-1?0:Pf),...rz]});else A_(rz);if(YX(Yy6()),c0(KK.options.querySource),I8==="from"){let i3=e6q(O8);if(i3)yA(i3.text),mY(i3.mode)}let az=s$("app:toggleTranscript","Global","ctrl+o");H8({key:"summarize-ctrl-o-hint",text:`Conversation summarized (${az} for history)`,priority:"medium",timeoutMs:8000})},onRestoreMessage:hy6,onClose:()=>{AO(!1),$T(void 0)}}),!1]}),null]})})},FI)]});if(E_())return W(nOq,{mouseTracking:EC8(),children:Fy6});return Fy6}var oOq,DO,d8,pV5=()=>({state:"closed",handleTranscriptSelect:()=>{}}),mV5=()=>{},gV5=()=>({}),Id_=null,BV5=(q)=>()=>{},cV5=()=>!1,FV5=(q,K)=>!1,aOq,UV5,dV5=3000,md_,ud_="❏",lV5=960;var tOq=h(()=>{G8();Qq8();mK();n6();wc();I_();IC_();GAq();ME();n6();uC_();gC_();cz();B58();aC_();CS();hS();KJ();c58();G8();mj();z8();tC_();x8();OK();pX6();RH();VA6();LA6();wz();Ab_();D0();Gw();pB();Yb_();Pb_();hY();i58();Tb_();Tx_();hx_();bx_();Dg_();aYq();Ng_();Rg_();Lg_();Sg_();xg_();Bg_();Y3();_D();rz6();AP();w1();wOq();kv();sg_();n5q();qB_();_B_();xv();XYq();zB_();OB_();wB_();kR();P1();ay();jB_();JB_();ZB_();TB_();N8();y8();bB_();X$();uzq();z1();K5();TW6();jP();Wq();Uh();kq();dO6();U5();bY();lB_();oB_();tB_();Ur();sn();Kc_();fn6();i4q();VA8();Ac_();$c_();NOq();ZN6();vQ8();jc_();No6();j_8();HB();zY();Jc_();uH();Ig();$t8();HR();dq();z9();S_();Z56();_D6();hk();Sk6();jJ();QC();CP();AC();S_();lV6();FR();JB();vc_();mz();kc_();z3();Rc_();ZAq();DAq();NJ();C3();F36();Sc_();fq8();bc_();Qn();Zi();Md8();uc_();mc_();JQ8();q3();fc();Uc_();Qc_();nc_();sc_();ec_();_F_();PF_();ZF_();TF_();mF_();_i8();Tz();SY8();lF_();nF_();aF_();PKq();eF_();KU_();Iz8();zU_();DU_();GU_();kU_();VU_();xOq();LU_();CU_();pU_();Ot6();BU_();UU_();lU_();nU_();oU_();eU_();Kd_();Od_();Jd_();Zd_();Td_();Uzq();kd_();hY();g7q();_1();Vd_();bd_();vP();$w();Rw();r();oOq=q6(K8(),1),DO=q6(q8(),1),d8=q6(q8(),1),aOq=[],UV5={maybeLoadOlder:(q)=>{}};md_=["❏","❐"]});async function Oy6(q,K,_,A){let{App:z}=await Promise.resolve().then(() => (e5q(),t5q)),{REPL:Y}=await Promise.resolve().then(() => (tOq(),gd_));await A(q,W(z,{...K,children:W(Y,{..._})}))}var Bd_=h(()=>{r()});async function aV5(){if(kO())return V("[Bootstrap] Skipped: Nonessential traffic disabled"),null;if(Jq()!=="firstParty")return V("[Bootstrap] Skipped: 3P provider"),null;let q=MW();if(!(dK()?.accessToken&&JW())&&!q)return V("[Bootstrap] Skipped: no usable OAuth or API key"),null;let _=`${yK().BASE_API_URL}/api/claude_cli/bootstrap`;try{return await hQ(async()=>{let A=dK()?.accessToken,z;if(A&&JW())z={Authorization:`Bearer ${A}`,"anthropic-beta":rw};else if(q)z={"x-api-key":q};else return V("[Bootstrap] No auth available on retry, aborting"),null;V("[Bootstrap] Fetching");let Y=await Mq.get(_,{headers:{"Content-Type":"application/json","User-Agent":k9(),...z},timeout:5000}),O=rV5().safeParse(Y.data);if(!O.success)return V(`[Bootstrap] Response failed validation: ${O.error.message}`),null;return V("[Bootstrap] Fetch ok"),O.data})}catch(A){throw V(`[Bootstrap] Fetch failed: ${Mq.isAxiosError(A)?A.response?.status??A.code:"unknown"}`),A}}async function cd_(){try{let q=await aV5();if(!q)return;let K=q.client_data??null,_=q.additional_model_options??[],A=j8();if(M2(A.clientDataCache,K)&&M2(A.additionalModelOptionsCache,_)){V("[Bootstrap] Cache unchanged, skipping write");return}V("[Bootstrap] Cache updated, persisting to disk"),B8((z)=>({...z,clientDataCache:K,additionalModelOptionsCache:_}))}catch(q){A6(q)}}var rV5;var Fd_=h(()=>{d7();LQ();wK();g88();a4();Wq();z8();ah();y8();Q7();rV5=I6(()=>Bj.object({client_data:Bj.record(Bj.unknown()).nullish(),additional_model_options:Bj.array(Bj.object({model:Bj.string(),name:Bj.string(),description:Bj.string()}).transform(({model:q,name:K,description:_})=>({value:q,label:K,description:_}))).nullish()}))});function sV5(q){try{let K=new URL(q);return K.search="",K.toString().replace(/\/$/,"")}catch{return}}async function Ud_(){if(process.env.PUKU_CLI_DISABLE_NONESSENTIAL_TRAFFIC)return;try{let q=await Mq.get("https://api.anthropic.com/mcp-registry/v0/servers?version=latest&visibility=commercial",{timeout:5000}),K=new Set;for(let _ of q.data.servers)for(let A of _.server.remotes??[]){let z=sV5(A.url);if(z)K.add(z)}oV5=K,V(`[mcp-registry] Loaded ${K.size} official MCP URLs`)}catch(q){V(`Failed to fetch MCP registry: ${d6(q)}`,{level:"error"})}}var oV5=void 0;var dd_=h(()=>{d7();z8();N8()});import{posix as Qd_,win32 as ld_}from"path";function eV5(){let q=process.argv[1]||"",K=process.execPath||process.argv[0]||"";if(_q()==="windows")q=q.split(ld_.sep).join(Qd_.sep),K=K.split(ld_.sep).join(Qd_.sep);let _=[q,K],A=["/build-ant/","/build-external/","/build-external-native/","/build-ant-native/"];return _.some((z)=>A.some((Y)=>z.includes(Y)))}function Ky5(q){let K=`${q.name}: ${q.message}`;return qy5.some((_)=>_.test(K))}function id_(){let q=process.listeners("warning");if(nY8&&q.includes(nY8))return;if(!eV5())process.removeAllListeners("warning");nY8=(_)=>{try{let A=`${_.name}: ${_.message.slice(0,50)}`,z=iY8.get(A)||0;if(iY8.has(A)||iY8.size<tV5)iY8.set(A,z+1);let Y=Ky5(_);if(Q("ev_event",{is_internal:Y?1:0,occurrence_count:z+1,classname:_.name,...process.env.USER_TYPE==="ant"&&{message:_.message}}),u6(process.env.PUKU_CLI_DEBUG))V(`${Y?"[Internal Warning]":"[Warning]"} ${_.toString()}`,{level:"warn"})}catch{}},process.on("warning",nY8)}var tV5=1000,iY8,qy5,nY8=null;var nd_=h(()=>{z8();x8();s_();iY8=new Map;qy5=[/MaxListenersExceededWarning.*AbortSignal/,/MaxListenersExceededWarning.*EventTarget/]});function rY8(){let q=rd_.c(1),K;if(q[0]===Symbol.for("react.memo_cache_sentinel"))K=y(T,{children:["MCP servers may execute code or access system resources. All tool calls require approval. Learn more in the"," ",W(aK,{url:"https://puku.sh/docs/en/mcp",children:"MCP documentation"}),"."]}),q[0]=K;else K=q[0];return K}var rd_;var eOq=h(()=>{n6();r();rd_=q6(K8(),1)});function od_(q){let K=ad_.c(13),{serverName:_,onDone:A}=q,z;if(K[0]!==A||K[1]!==_)z=function(X){Q("ev_event",{choice:X});q:switch(X){case"yes":case"yes_all":{let f=(Bq()||{}).enabledMcpjsonServers||[];if(!f.includes(_))Sq("localSettings",{enabledMcpjsonServers:[...f,_]});if(X==="yes_all")Sq("localSettings",{enableAllProjectMcpServers:!0});A();break q}case"no":{let f=(Bq()||{}).disabledMcpjsonServers||[];if(!f.includes(_))Sq("localSettings",{disabledMcpjsonServers:[...f,_]});A()}}},K[0]=A,K[1]=_,K[2]=z;else z=K[2];let Y=z,O=`New MCP server found in .mcp.json: ${_}`,$;if(K[3]!==Y)$=()=>Y("no"),K[3]=Y,K[4]=$;else $=K[4];let w;if(K[5]===Symbol.for("react.memo_cache_sentinel"))w=W(rY8,{}),K[5]=w;else w=K[5];let H;if(K[6]===Symbol.for("react.memo_cache_sentinel"))H=[{label:"Use this and all future MCP servers in this project",value:"yes_all"},{label:"Use this MCP server",value:"yes"},{label:"Continue without using this MCP server",value:"no"}],K[6]=H;else H=K[6];let j;if(K[7]!==Y)j=W(l8,{options:H,onChange:(J)=>Y(J),onCancel:()=>Y("no")}),K[7]=Y,K[8]=j;else j=K[8];let M;if(K[9]!==O||K[10]!==$||K[11]!==j)M=y(Hq,{title:O,color:"warning",onCancel:$,children:[w,j]}),K[9]=O,K[10]=$,K[11]=j,K[12]=M;else M=K[12];return M}var ad_;var sd_=h(()=>{Vq();w5();c_();eOq();r();ad_=q6(K8(),1)});function ed_(q){let K=td_.c(21),{serverNames:_,onDone:A}=q,z;if(K[0]!==A||K[1]!==_)z=function(D){let Z=Bq()||{},G=Z.enabledMcpjsonServers||[],v=Z.disabledMcpjsonServers||[],[k,N]=NA8(_,(L)=>D.includes(L));if(Q("ev_event",{approved:k.length,rejected:N.length}),k.length>0){let L=[...new Set([...G,...k])];Sq("localSettings",{enabledMcpjsonServers:L})}if(N.length>0){let L=[...new Set([...v,...N])];Sq("localSettings",{disabledMcpjsonServers:L})}A()},K[0]=A,K[1]=_,K[2]=z;else z=K[2];let Y=z,O;if(K[3]!==A||K[4]!==_)O=()=>{let D=(Bq()||{}).disabledMcpjsonServers||[],Z=[...new Set([...D,..._])];Sq("localSettings",{disabledMcpjsonServers:Z}),A()},K[3]=A,K[4]=_,K[5]=O;else O=K[5];let $=O,w=`${_.length} new MCP servers found in .mcp.json`,H;if(K[6]===Symbol.for("react.memo_cache_sentinel"))H=W(rY8,{}),K[6]=H;else H=K[6];let j;if(K[7]!==_)j=_.map(_y5),K[7]=_,K[8]=j;else j=K[8];let M;if(K[9]!==$||K[10]!==Y||K[11]!==_||K[12]!==j)M=W(nA6,{options:j,defaultValue:_,onSubmit:Y,onCancel:$,hideIndexes:!0}),K[9]=$,K[10]=Y,K[11]=_,K[12]=j,K[13]=M;else M=K[13];let J;if(K[14]!==$||K[15]!==w||K[16]!==M)J=y(Hq,{title:w,subtitle:"Select any you wish to enable.",color:"warning",onCancel:$,hideInputGuide:!0,children:[H,M]}),K[14]=$,K[15]=w,K[16]=M,K[17]=J;else J=K[17];let X;if(K[18]===Symbol.for("react.memo_cache_sentinel"))X=W(x,{paddingX:1,children:W(T,{dimColor:!0,italic:!0,children:y(Pq,{children:[W(c8,{shortcut:"Space",action:"select"}),W(c8,{shortcut:"Enter",action:"confirm"}),W(a8,{action:"confirm:no",context:"Confirmation",fallback:"Esc",description:"reject all"})]})})}),K[18]=X;else X=K[18];let P;if(K[19]!==J)P=y(Y8,{children:[J,X]}),K[19]=J,K[20]=P;else P=K[20];return P}function _y5(q){return{label:q,value:q}}var td_;var qQ_=h(()=>{l4q();n6();Vq();F7();ks6();q7();c_();R7();eOq();r();td_=q6(K8(),1)});async function KQ_(q){let{servers:K}=W$("project"),_=Object.keys(K).filter((A)=>y46(A)==="pending");if(_.length===0)return;await new Promise((A)=>{let z=()=>void A();if(_.length===1&&_[0]!==void 0){let Y=_[0];q.render(W(_9,{children:W(I9,{children:W(od_,{serverName:Y,onDone:z})})}))}else q.render(W(_9,{children:W(I9,{children:W(ed_,{serverNames:_,onDone:z})})}))})}var _Q_=h(()=>{sd_();qQ_();kR();dq();Qj();D$();r()});var AQ_=h(()=>{Wq();z8()});class q3q{frameDurations=[];firstRenderTime;lastRenderTime;record(q){let K=performance.now();if(this.firstRenderTime===void 0)this.firstRenderTime=K;this.lastRenderTime=K,this.frameDurations.push(q)}getMetrics(){if(this.frameDurations.length===0||this.firstRenderTime===void 0||this.lastRenderTime===void 0)return;let q=this.lastRenderTime-this.firstRenderTime;if(q<=0)return;let _=this.frameDurations.length/(q/1000),A=this.frameDurations.slice().sort(($,w)=>w-$),z=Math.max(0,Math.ceil(A.length*0.01)-1),Y=A[z],O=Y>0?1000/Y:0;return{averageFps:Math.round(_*100)/100,low1PctFps:Math.round(O*100)/100}}}import{realpath as Ay5}from"fs/promises";async function zQ_(){try{let q=await cx();if(!q){V("Not in a GitHub repository, skipping path mapping update");return}let K=Tq(),A=d5(K)??K,z;try{z=(await Ay5(A)).normalize("NFC")}catch{z=A}let Y=q.toLowerCase(),$=j8().githubRepoPaths?.[Y]??[];if($[0]===z){V(`Path ${z} already tracked for repo ${Y}`);return}let w=$.filter((j)=>j!==z),H=[z,...w];B8((j)=>({...j,githubRepoPaths:{...j.githubRepoPaths,[Y]:H}})),V(`Added ${z} to tracked paths for repo ${Y}`)}catch(q){V(`Error updating repo path mapping: ${q}`)}}function YQ_(q){let K=j8(),_=q.toLowerCase();return K.githubRepoPaths?.[_]??[]}async function OQ_(q){let K=await Promise.all(q.map(k7));return q.filter((_,A)=>K[A])}async function $Q_(q,K){try{let _=await YS6(q);if(!_)return!1;let A=EU(_);if(!A)return!1;return A.toLowerCase()===K.toLowerCase()}catch{return!1}}function wQ_(q,K){let _=j8(),A=q.toLowerCase(),z=_.githubRepoPaths?.[A]??[],Y=z.filter(($)=>$!==K);if(Y.length===z.length)return;let O={..._.githubRepoPaths};if(Y.length===0)delete O[A];else O[A]=Y;B8(($)=>({...$,githubRepoPaths:O})),V(`Removed ${K} from tracked paths for repo ${A}`)}var aY8=h(()=>{G8();Wq();z8();DX();X7();hL();m4()});function HQ_(q,K){let[_,A]=oY8.useState(!1);return oY8.useEffect(()=>{A(!1);let z=setTimeout(A,q,!0);return()=>clearTimeout(z)},[q,K]),_}var oY8;var jQ_=h(()=>{oY8=q6(q8(),1)});async function zy5(){try{let q=yK(),K=new URL(q.TOKEN_URL),_=[`${q.BASE_API_URL}/api/hello`,`${K.origin}/v1/oauth/hello`],A=async(O)=>{try{let $=await Mq.get(O,{headers:{"User-Agent":Jp()}});if($.status!==200)return{success:!1,error:`Failed to connect to ${new URL(O).hostname}: Status ${$.status}`};return{success:!0}}catch($){let w=new URL(O).hostname,H=YyK($);return{success:!1,error:`Failed to connect to ${w}: ${$ instanceof Error?$.code||$.message:String($)}`,sslHint:H??void 0}}},Y=(await Promise.all(_.map(A))).find((O)=>!O.success);if(Y)Q("ev_event",{isConnectivityError:!1,hasErrorMessage:!!Y.error,isSSLError:!!Y.sslHint});return Y||{success:!0}}catch(q){return A6(q),Q("ev_event",{isConnectivityError:!0}),{success:!1,error:`Connectivity check error: ${q instanceof Error?q.code||q.message:String(q)}`}}}function JQ_(q){let K=MQ_.c(12),{onSuccess:_}=q,[A,z]=J$6.useState(null),[Y,O]=J$6.useState(!0),$=HQ_(1000)&&Y,w,H;if(K[0]===Symbol.for("react.memo_cache_sentinel"))w=()=>{(async function(){let D=await zy5();z(D),O(!1)})()},H=[],K[0]=w,K[1]=H;else w=K[0],H=K[1];J$6.useEffect(w,H);let j,M;if(K[2]!==_||K[3]!==A)j=()=>{if(A?.success)_();else if(A&&!A.success){let P=setTimeout(Yy5,100);return()=>clearTimeout(P)}},M=[A,_],K[2]=_,K[3]=A,K[4]=j,K[5]=M;else j=K[4],M=K[5];J$6.useEffect(j,M);let J;if(K[6]!==Y||K[7]!==A||K[8]!==$)J=Y&&$?y(x,{paddingLeft:1,children:[W(n_,{}),W(T,{children:"Checking connectivity..."})]}):!A?.success&&!Y&&y(x,{flexDirection:"column",gap:1,children:[W(T,{color:"error",children:"Unable to connect to Anthropic services"}),W(T,{color:"error",children:A?.error}),A?.sslHint?y(x,{flexDirection:"column",gap:1,children:[W(T,{children:A.sslHint}),W(T,{color:"suggestion",children:"See https://puku.sh/docs/en/network-config"})]}):y(x,{flexDirection:"column",gap:1,children:[W(T,{children:"Please check your internet connection and network settings."}),Jq()==="firstParty"&&y(T,{children:["Note: puku-cli might not be available in your country. Check supported countries at"," ",W(T,{color:"suggestion",children:"https://anthropic.com/supported-countries"})]})]})]}),K[6]=Y,K[7]=A,K[8]=$,K[9]=J;else J=K[9];let X;if(K[10]!==J)X=W(x,{flexDirection:"column",gap:1,paddingLeft:1,children:J}),K[10]=J,K[11]=X;else X=K[11];return X}function Yy5(){return process.exit(1)}var MQ_,J$6;var XQ_=h(()=>{d7();Y3();a4();jQ_();n6();tl();ah();y8();Q7();r();MQ_=q6(K8(),1),J$6=q6(q8(),1)});var fQ_={};S8(fQ_,{ApproveApiKey:()=>K3q});function K3q(q){let K=PQ_.c(17),{customApiKeyTruncated:_,onDone:A}=q,z;if(K[0]!==_||K[1]!==A)z=function(f){q:switch(f){case"yes":{B8((D)=>({...D,customApiKeyResponses:{...D.customApiKeyResponses,approved:[...D.customApiKeyResponses?.approved??[],_]}})),A(!0);break q}case"no":B8((D)=>({...D,customApiKeyResponses:{...D.customApiKeyResponses,rejected:[...D.customApiKeyResponses?.rejected??[],_]}})),A(!1)}},K[0]=_,K[1]=A,K[2]=z;else z=K[2];let Y=z,O;if(K[3]!==Y)O=()=>Y("no"),K[3]=Y,K[4]=O;else O=K[4];let $;if(K[5]===Symbol.for("react.memo_cache_sentinel"))$=W(T,{bold:!0,children:"ANTHROPIC_API_KEY"}),K[5]=$;else $=K[5];let w;if(K[6]!==_)w=y(T,{children:[$,y(T,{children:[": sk-ant-...",_]})]}),K[6]=_,K[7]=w;else w=K[7];let H;if(K[8]===Symbol.for("react.memo_cache_sentinel"))H=W(T,{children:"Do you want to use this API key?"}),K[8]=H;else H=K[8];let j;if(K[9]===Symbol.for("react.memo_cache_sentinel"))j={label:"Yes",value:"yes"},K[9]=j;else j=K[9];let M;if(K[10]===Symbol.for("react.memo_cache_sentinel"))M=[j,{label:y(T,{children:["No (",W(T,{bold:!0,children:"recommended"}),")"]}),value:"no"}],K[10]=M;else M=K[10];let J;if(K[11]!==Y)J=W(l8,{defaultValue:"no",defaultFocusValue:"no",options:M,onChange:(P)=>Y(P),onCancel:()=>Y("no")}),K[11]=Y,K[12]=J;else J=K[12];let X;if(K[13]!==O||K[14]!==w||K[15]!==J)X=y(Hq,{title:"Detected a custom API key in your environment",color:"warning",onCancel:O,children:[w,H,J]}),K[13]=O,K[14]=w,K[15]=J,K[16]=X;else X=K[16];return X}var PQ_;var _3q=h(()=>{n6();Wq();w5();c_();r();PQ_=q6(K8(),1)});function $y5(){return W(x,{flexDirection:"column",width:A3q,overflow:"hidden",children:W(T,{wrap:"truncate",children:Oy5})})}function sY8(){let[q]=fK(),K="Welcome to puku-cli";if(pq.terminal==="Apple_Terminal")return W(wy5,{theme:q,welcomeMessage:"Welcome to puku-cli"});if(["light","light-daltonized","light-ansi"].includes(q))return W(z3q,{welcomeMessage:"Welcome to puku-cli",isLight:!0});return W(z3q,{welcomeMessage:"Welcome to puku-cli",isLight:!1})}function z3q({welcomeMessage:q,isLight:K}){let _=typeof process<"u"&&process.stdout?.columns?process.stdout.columns:80,A=Math.min(_,100),z="…".repeat(A),Y=30,O=A>=A3q+30,$=O?A-A3q:A,j=(K?[" "," "," ░░░░░░"," ░░░ ░░░░░░░░░░"," ░░░░░░░░░░░░░░░░░░░ "," ░░░░"," ░░░░░░░░"," ░░░░░░░░░░░░░░░░"]:[" *"," *"," ░░░░░░"," ░░░ ░░░░░░░░░░"," ░░░░░░░░░░░░░░░░░░░ *","* ░░░░"," ░░░░░░░░"," ░░░░░░░░░░░░░░░░"]).map((M)=>M.length>$?M.slice(0,$):M);return y(x,{width:A,flexDirection:"column",children:[y(T,{children:[y(T,{color:"puku",children:[q," "]}),y(T,{dimColor:!0,children:["v","1.8.38"," "]})]}),W(x,{marginBottom:1,children:W(T,{dimColor:!0,children:z})}),y(x,{flexDirection:"row",children:[W(x,{flexDirection:"column",width:$,overflow:"hidden",flexShrink:0,children:j.map((M,J)=>W(T,{children:M},J))}),O&&y(Y8,{children:[W(x,{flexShrink:0,children:W($y5,{})}),W(x,{flexGrow:1})]})]}),W(T,{dimColor:!0,children:z})]})}function wy5({theme:q,welcomeMessage:K}){let _=["light","light-daltonized","light-ansi"].includes(q);return W(z3q,{welcomeMessage:K,isLight:_})}var Oy5,A3q=15;var Y3q=h(()=>{n6();n5();r();Oy5=`\x1B[0m\x1B[38;5;177m▆\x1B[48;5;183m \x1B[0m\x1B[38;5;177m▆\x1B[0m
|
|
7647
7647
|
`+`\x1B[7m\x1B[38;5;183m \x1B[38;5;140m▗▅▅▅▅▅▅▅▖\x1B[38;5;183m \x1B[0m
|
|
7648
7648
|
`+`\x1B[7m\x1B[38;5;183m \x1B[0m\x1B[38;5;140m▋ \x1B[7m▍\x1B[38;5;183m \x1B[0m
|
|
7649
7649
|
`+`\x1B[7m\x1B[38;5;183m \x1B[0m\x1B[38;5;140m▋ \x1B[7m▍\x1B[38;5;183m \x1B[0m
|
|
@@ -8912,7 +8912,7 @@ For each rule, evaluate:
|
|
|
8912
8912
|
Be concise and constructive. Only comment on rules that could be improved. If all rules look good, say so.`;var hO8=h(()=>{N8();cK();oZ6();Vq();KC();Q8()});var Ea_={};S8(Ea_,{update:()=>Uh5});async function Uh5(){if(Jq()!=="firstParty"){D_(M8.yellow(`Auto-update is not available for third-party provider builds.
|
|
8913
8913
|
`)+`To update, pull the latest source from the repository and rebuild:
|
|
8914
8914
|
git pull && bun install && bun run build
|
|
8915
|
-
`);return}Q("ev_event",{}),D_(`Current version: 1.8.
|
|
8915
|
+
`);return}Q("ev_event",{}),D_(`Current version: 1.8.38
|
|
8916
8916
|
`);let q=YK()?.autoUpdatesChannel??"latest";D_(`Checking for updates to ${q} version...
|
|
8917
8917
|
`),V("update: Starting update check"),V("update: Running diagnostic");let K=await Xa();if(V(`update: Installation type: ${K.installationType}`),V(`update: Config install method: ${K.configInstallMethod}`),K.multipleInstallations.length>1){D_(`
|
|
8918
8918
|
`),D_(M8.yellow("Warning: Multiple installations found")+`
|
|
@@ -8927,19 +8927,19 @@ Be concise and constructive. Only comment on rules that could be improved. If al
|
|
|
8927
8927
|
`),D_(M8.yellow("Warning: Cannot update development build")+`
|
|
8928
8928
|
`),await j7(1);if(K.installationType==="package-manager"){let H=await _O6();if(D_(`
|
|
8929
8929
|
`),H==="homebrew"){D_(`puku-cli is managed by Homebrew.
|
|
8930
|
-
`);let j=await db(q);if(j&&!Yw("1.8.
|
|
8930
|
+
`);let j=await db(q);if(j&&!Yw("1.8.38",j))D_(`Update available: ${"1.8.38"} → ${j}
|
|
8931
8931
|
`),D_(`
|
|
8932
8932
|
`),D_(`To update, run:
|
|
8933
8933
|
`),D_(M8.bold(" brew upgrade claude-code")+`
|
|
8934
8934
|
`);else D_(`puku-cli is up to date!
|
|
8935
8935
|
`)}else if(H==="winget"){D_(`puku-cli is managed by winget.
|
|
8936
|
-
`);let j=await db(q);if(j&&!Yw("1.8.
|
|
8936
|
+
`);let j=await db(q);if(j&&!Yw("1.8.38",j))D_(`Update available: ${"1.8.38"} → ${j}
|
|
8937
8937
|
`),D_(`
|
|
8938
8938
|
`),D_(`To update, run:
|
|
8939
8939
|
`),D_(M8.bold(" winget upgrade Anthropic.puku-cliCode")+`
|
|
8940
8940
|
`);else D_(`puku-cli is up to date!
|
|
8941
8941
|
`)}else if(H==="apk"){D_(`puku-cli is managed by apk.
|
|
8942
|
-
`);let j=await db(q);if(j&&!Yw("1.8.
|
|
8942
|
+
`);let j=await db(q);if(j&&!Yw("1.8.38",j))D_(`Update available: ${"1.8.38"} → ${j}
|
|
8943
8943
|
`),D_(`
|
|
8944
8944
|
`),D_(`To update, run:
|
|
8945
8945
|
`),D_(M8.bold(" apk upgrade claude-code")+`
|
|
@@ -8969,14 +8969,14 @@ Be concise and constructive. Only comment on rules that could be improved. If al
|
|
|
8969
8969
|
`),process.stderr.write(` • Run with --debug flag for more details
|
|
8970
8970
|
`);let H="@puku/puku-cli";process.stderr.write(` • Manually check: npm view ${H} version
|
|
8971
8971
|
`),process.stderr.write(` • Check if you need to login: npm whoami
|
|
8972
|
-
`),await j7(1)}if(Y==="1.8.
|
|
8973
|
-
`),await j7(0);D_(`New version available: ${Y} (current: 1.8.
|
|
8972
|
+
`),await j7(1)}if(Y==="1.8.38")D_(M8.green("puku-cli is up to date (1.8.38)")+`
|
|
8973
|
+
`),await j7(0);D_(`New version available: ${Y} (current: 1.8.38)
|
|
8974
8974
|
`),D_(`Installing update...
|
|
8975
8975
|
`);let O=!1,$="";switch(K.installationType){case"npm-local":O=!0,$="local";break;case"npm-global":O=!1,$="global";break;case"unknown":{let H=await Ha();O=H,$=H?"local":"global",D_(M8.yellow("Warning: Could not determine installation type")+`
|
|
8976
8976
|
`),D_(`Attempting ${$} update based on file detection...
|
|
8977
8977
|
`);break}default:process.stderr.write(`Error: Cannot update ${K.installationType} installation
|
|
8978
8978
|
`),await j7(1)}D_(`Using ${$} installation update method...
|
|
8979
|
-
`),V(`update: Update method determined: ${$}`),V(`update: useLocalUpdate: ${O}`);let w;if(O)V("update: Calling installOrUpdateClaudePackage() for local update"),w=await T06(q);else V("update: Calling installGlobalPackage() for global update"),w=await V06();switch(V(`update: Installation status: ${w}`),w){case"success":D_(M8.green(`Successfully updated from 1.8.
|
|
8979
|
+
`),V(`update: Update method determined: ${$}`),V(`update: useLocalUpdate: ${O}`);let w;if(O)V("update: Calling installOrUpdateClaudePackage() for local update"),w=await T06(q);else V("update: Calling installGlobalPackage() for global update"),w=await V06();switch(V(`update: Installation status: ${w}`),w){case"success":D_(M8.green(`Successfully updated from 1.8.38 to version ${Y}`)+`
|
|
8980
8980
|
`),await YH_();break;case"no_permissions":if(process.stderr.write(`Error: Insufficient permissions to install update
|
|
8981
8981
|
`),O)process.stderr.write(`Try manually updating with:
|
|
8982
8982
|
`),process.stderr.write(` cd ~/.puku-cli/local && npm update @puku/puku-cli
|
|
@@ -9040,4 +9040,4 @@ Usage: puku-cli --remote "your task description"`,()=>j7(1));Q("ev_event",{has_i
|
|
|
9040
9040
|
`));await Tn8();let{teleportWithProgress:u4}=await Promise.resolve().then(() => (fa_(),Pa_)),c4=await u4(O4,T6);p96({sessionId:T6}),eq=c4.messages}catch(p_){if(p_ instanceof c1)process.stderr.write(p_.formattedMessage+`
|
|
9041
9041
|
`);else A6(p_),process.stderr.write(M8.red(`Error: ${d6(p_)}
|
|
9042
9042
|
`));await j7(1)}}}if(L_){let p_=L_;try{let Y_=performance.now(),u4=await jB(r_??p_,void 0);if(!u4)return Q("ev_event",{entrypoint:"cli_flag",success:!1}),await XN(O4,`No conversation found with session ID: ${p_}`);let c4=r_?.fullPath??u4.fullPath;if(P_=await VOq(u4,{forkSession:!!j.forkSession,sessionIdOverride:p_,transcriptPath:c4},nz),P_.restoredAgentDef)lq=P_.restoredAgentDef;Q("ev_event",{entrypoint:"cli_flag",success:!0,resume_duration_ms:Math.round(performance.now()-Y_)})}catch(Y_){Q("ev_event",{entrypoint:"cli_flag",success:!1}),A6(Y_),await XN(O4,d6(Y_))}}if(g)try{let p_=await g,Y_=xq(p_,(u4)=>!u4.success);if(Y_>0)process.stderr.write(M8.yellow(`Warning: ${Y_}/${p_.length} file(s) failed to download.
|
|
9043
|
-
`))}catch(p_){return await XN(O4,`Error downloading files: ${d6(p_)}`)}let Z7=P_??(Array.isArray(eq)?{messages:eq,fileHistorySnapshots:void 0,agentName:void 0,agentColor:void 0,restoredAgentDef:lq,initialState:GY,contentReplacements:void 0}:void 0);if(Z7)SO8(j),CO8(j),await Oy6(O4,{getFpsMetrics:w_,stats:$K,initialState:Z7.initialState},{...X5,mainThreadAgentDefinition:Z7.restoredAgentDef??lq,initialMessages:Z7.messages,initialFileHistorySnapshots:Z7.fileHistorySnapshots,initialContentReplacements:Z7.contentReplacements,initialAgentName:Z7.agentName,initialAgentColor:Z7.agentColor},Ro);else await Nl_(O4,{getFpsMetrics:w_,stats:$K,initialState:GY},qI(Tq()),{...X5,initialSearchQuery:CK,forkSession:j.forkSession,filterByPr:VA})}else{let e8=M9&&NA.length===0?M9:void 0;x_("action_after_hooks"),SO8(j),CO8(j);let eq=null,P_=eq?[eq,...NA]:NA.length>0?NA:void 0;await Oy6(O4,{getFpsMetrics:w_,stats:$K,initialState:GY},{...X5,initialMessages:P_,pendingHookMessages:e8},Ro)}}).version("1.8.37 (puku-cli)","-v, --version","Output the version number"),K.option("-w, --worktree [name]","Create a new git worktree for this session (optionally specify a name)"),K.option("--tmux","Create a tmux session for the worktree (requires --worktree). Uses iTerm2 native panes when available; use --tmux=classic for traditional tmux."),mg())K.addOption(new n4("--advisor <model>","Enable the server-side advisor tool with the specified model (alias or full ID).").hideHelp());K.addOption(new n4("--enable-auto-mode","Opt in to auto mode").hideHelp()),K.addOption(new n4("--agent-id <id>","Teammate agent ID").hideHelp()),K.addOption(new n4("--agent-name <name>","Teammate display name").hideHelp()),K.addOption(new n4("--team-name <name>","Team name for swarm coordination").hideHelp()),K.addOption(new n4("--agent-color <color>","Teammate UI color").hideHelp()),K.addOption(new n4("--plan-mode-required","Require plan mode before implementation").hideHelp()),K.addOption(new n4("--parent-session-id <id>","Parent session ID for analytics correlation").hideHelp()),K.addOption(new n4("--teammate-mode <mode>",'How to spawn teammates: "tmux", "in-process", or "auto"').choices(["auto","tmux","in-process"]).hideHelp()),K.addOption(new n4("--agent-type <type>","Custom agent type for this teammate").hideHelp()),K.addOption(new n4("--sdk-url <url>","Use remote WebSocket endpoint for SDK I/O streaming (only with -p and stream-json format)").hideHelp()),K.addOption(new n4("--teleport [session]","Resume a teleport session, optionally specify session ID").hideHelp()),K.addOption(new n4("--remote [description]","Create a remote session with the given description").hideHelp()),x_("run_main_options_built");let _=process.argv.includes("-p")||process.argv.includes("--print"),A=process.argv.some((H)=>H.startsWith("cc://")||H.startsWith("cc+unix://"));if(_&&!A)return x_("run_before_parse"),await K.parseAsync(process.argv),x_("run_after_parse"),K;let z=K.command("mcp").description("Configure and manage MCP servers").configureHelp(q()).enablePositionalOptions();if(z.command("serve").description("Start the Puku MCP server").option("-d, --debug","Enable debug mode",()=>!0).option("--verbose","Override verbose mode setting from config",()=>!0).action(async({debug:H,verbose:j})=>{let{mcpServeHandler:M}=await Promise.resolve().then(() => (SI(),hI));await M({debug:H,verbose:j})}),Ni_(z),Hn_(z),NC())jn_(z);z.command("remove <name>").description("Remove an MCP server").option("-s, --scope <scope>","Configuration scope (local, user, or project) - if not specified, removes from whichever scope it exists in").action(async(H,j)=>{let{mcpRemoveHandler:M}=await Promise.resolve().then(() => (SI(),hI));await M(H,j)}),z.command("list").description("List configured MCP servers. Note: The workspace trust dialog is skipped and stdio servers from .mcp.json are spawned for health checks. Only use this command in directories you trust.").action(async()=>{let{mcpListHandler:H}=await Promise.resolve().then(() => (SI(),hI));await H()}),z.command("get <name>").description("Get details about an MCP server. Note: The workspace trust dialog is skipped and stdio servers from .mcp.json are spawned for health checks. Only use this command in directories you trust.").action(async(H)=>{let{mcpGetHandler:j}=await Promise.resolve().then(() => (SI(),hI));await j(H)}),z.command("add-json <name> <json>").description("Add an MCP server (stdio or SSE) with a JSON string").option("-s, --scope <scope>","Configuration scope (local, user, or project)","local").option("--client-secret","Prompt for OAuth client secret (or set MCP_CLIENT_SECRET env var)").action(async(H,j,M)=>{let{mcpAddJsonHandler:J}=await Promise.resolve().then(() => (SI(),hI));await J(H,j,M)}),z.command("add-from-puku-desktop").description("Import MCP servers from Puku Desktop (Mac and WSL only)").option("-s, --scope <scope>","Configuration scope (local, user, or project)","local").action(async(H)=>{let{mcpAddFromDesktopHandler:j}=await Promise.resolve().then(() => (SI(),hI));await j(H)}),z.command("reset-project-choices").description("Reset all approved and rejected project-scoped (.mcp.json) servers within this project").action(async()=>{let{mcpResetChoicesHandler:H}=await Promise.resolve().then(() => (SI(),hI));await H()});let Y=K.command("auth").description("Manage authentication").configureHelp(q());Y.command("login").description("Sign in to your Puku AI account").action(async()=>{let{authLogin:H}=await Promise.resolve().then(() => (My6(),fO8));await H()}),Y.command("status").description("Show authentication status").option("--json","Output as JSON (default)").option("--text","Output as human-readable text").action(async(H)=>{let{authStatus:j}=await Promise.resolve().then(() => (My6(),fO8));await j(H)}),Y.command("logout").description("Log out from your Puku AI account").action(async()=>{let{authLogout:H}=await Promise.resolve().then(() => (My6(),fO8));await H()});let O=()=>new n4("--cowork","Use cowork_plugins directory").hideHelp(),$=K.command("plugin").alias("plugins").description("Manage Puku plugins").configureHelp(q());$.command("validate <path>").description("Validate a plugin or marketplace manifest").addOption(O()).action(async(H,j)=>{let{pluginValidateHandler:M}=await Promise.resolve().then(() => (_T(),KT));await M(H,j)}),$.command("list").description("List installed plugins").option("--json","Output as JSON").option("--available","Include available plugins from marketplaces (requires --json)").addOption(O()).action(async(H)=>{let{pluginListHandler:j}=await Promise.resolve().then(() => (_T(),KT));await j(H)});let w=$.command("marketplace").description("Manage Puku marketplaces").configureHelp(q());if(w.command("add <source>").description("Add a marketplace from a URL, path, or GitHub repo").addOption(O()).option("--sparse <paths...>","Limit checkout to specific directories via git sparse-checkout (for monorepos). Example: --sparse .puku-plugin plugins").option("--scope <scope>","Where to declare the marketplace: user (default), project, or local").action(async(H,j)=>{let{marketplaceAddHandler:M}=await Promise.resolve().then(() => (_T(),KT));await M(H,j)}),w.command("list").description("List all configured marketplaces").option("--json","Output as JSON").addOption(O()).action(async(H)=>{let{marketplaceListHandler:j}=await Promise.resolve().then(() => (_T(),KT));await j(H)}),w.command("remove <name>").alias("rm").description("Remove a configured marketplace").addOption(O()).action(async(H,j)=>{let{marketplaceRemoveHandler:M}=await Promise.resolve().then(() => (_T(),KT));await M(H,j)}),w.command("update [name]").description("Update marketplace(s) from their source - updates all if no name specified").addOption(O()).action(async(H,j)=>{let{marketplaceUpdateHandler:M}=await Promise.resolve().then(() => (_T(),KT));await M(H,j)}),$.command("install <plugin>").alias("i").description("Install a plugin from available marketplaces (use plugin@marketplace for specific marketplace)").option("-s, --scope <scope>","Installation scope: user, project, or local","user").addOption(O()).action(async(H,j)=>{let{pluginInstallHandler:M}=await Promise.resolve().then(() => (_T(),KT));await M(H,j)}),$.command("uninstall <plugin>").alias("remove").alias("rm").description("Uninstall an installed plugin").option("-s, --scope <scope>","Uninstall from scope: user, project, or local","user").option("--keep-data","Preserve the plugin's persistent data directory (~/.puku-cli/plugins/data/{id}/)").addOption(O()).action(async(H,j)=>{let{pluginUninstallHandler:M}=await Promise.resolve().then(() => (_T(),KT));await M(H,j)}),$.command("enable <plugin>").description("Enable a disabled plugin").option("-s, --scope <scope>",`Installation scope: ${MM.join(", ")} (default: auto-detect)`).addOption(O()).action(async(H,j)=>{let{pluginEnableHandler:M}=await Promise.resolve().then(() => (_T(),KT));await M(H,j)}),$.command("disable [plugin]").description("Disable an enabled plugin").option("-a, --all","Disable all enabled plugins").option("-s, --scope <scope>",`Installation scope: ${MM.join(", ")} (default: auto-detect)`).addOption(O()).action(async(H,j)=>{let{pluginDisableHandler:M}=await Promise.resolve().then(() => (_T(),KT));await M(H,j)}),$.command("update <plugin>").description("Update a plugin to the latest version (restart required to apply)").option("-s, --scope <scope>",`Installation scope: ${La.join(", ")} (default: user)`).addOption(O()).action(async(H,j)=>{let{pluginUpdateHandler:M}=await Promise.resolve().then(() => (_T(),KT));await M(H,j)}),K.command("setup-token").description("Set up a long-lived authentication token (requires Puku subscription)").action(async()=>{let[{setupTokenHandler:H},{createRoot:j}]=await Promise.all([Promise.resolve().then(() => (EO8(),RO8)),Promise.resolve().then(() => (n6(),hP6))]),M=await j(tC(!1));await H(M)}),K.command("agents").description("List configured agents").option("--setting-sources <sources>","Comma-separated list of setting sources to load (user, project, local).").action(async()=>{let{agentsHandler:H}=await Promise.resolve().then(() => (ya_(),Va_));await H(),process.exit(0)}),O_8()!=="disabled"){let H=K.command("auto-mode").description("Inspect auto mode classifier configuration");H.command("defaults").description("Print the default auto mode environment, allow, and deny rules as JSON").action(async()=>{let{autoModeDefaultsHandler:j}=await Promise.resolve().then(() => (hO8(),LO8));j(),process.exit(0)}),H.command("config").description("Print the effective auto mode config as JSON: your settings where set, defaults otherwise").action(async()=>{let{autoModeConfigHandler:j}=await Promise.resolve().then(() => (hO8(),LO8));j(),process.exit(0)}),H.command("critique").description("Get AI feedback on your custom auto mode rules").option("--model <model>","Override which model is used").action(async(j)=>{let{autoModeCritiqueHandler:M}=await Promise.resolve().then(() => (hO8(),LO8));await M(j),process.exit()})}return K.command("doctor").description("Check the health of your Puku auto-updater. Note: The workspace trust dialog is skipped and stdio servers from .mcp.json are spawned for health checks. Only use this command in directories you trust.").action(async()=>{let[{doctorHandler:H},{createRoot:j}]=await Promise.all([Promise.resolve().then(() => (EO8(),RO8)),Promise.resolve().then(() => (n6(),hP6))]),M=await j(tC(!1));await H(M)}),K.command("update").alias("upgrade").description("Check for updates and install if available").action(async()=>{let{update:H}=await Promise.resolve().then(() => (La_(),Ea_));await H()}),K.command("install [target]").description("Install Puku native build. Use [target] to specify version (stable, latest, or specific version)").option("--force","Force installation even if already installed").action(async(H,j)=>{let{installHandler:M}=await Promise.resolve().then(() => (EO8(),RO8));await M(H,j)}),x_("run_before_parse"),await K.parseAsync(process.argv),x_("run_after_parse"),x_("main_after_run"),PH6(),K}async function OS5({hasInitialPrompt:q,hasStdin:K,verbose:_,debug:A,debugToStderr:z,print:Y,outputFormat:O,inputFormat:$,numAllowedTools:w,numDisallowedTools:H,mcpClientCount:j,worktreeEnabled:M,skipWebFetchPreflight:J,githubActionInputs:X,godModePassed:P,permissionMode:f,modeIsBypass:D,allowGodModePassed:Z,systemPromptFlag:G,appendSystemPromptFlag:v,thinkingConfig:k,assistantActivationPath:N}){try{Q("ev_event",{entrypoint:"puku-cli",hasInitialPrompt:q,hasStdin:K,verbose:_,debug:A,debugToStderr:z,print:Y,outputFormat:O,inputFormat:$,numAllowedTools:w,numDisallowedTools:H,mcpClientCount:j,worktree:M,skipWebFetchPreflight:J,...X&&{githubActionInputs:X},godModePassed:P,permissionMode:f,modeIsBypass:D,inProtectedNamespace:tD(),allowGodModePassed:Z,thinkingType:k.type,...G&&{systemPromptFlag:G},...v&&{appendSystemPromptFlag:v},is_simple:o7()||void 0,is_coordinator:void 0,...N&&{assistantActivationPath:N},autoUpdatesChannel:YK().autoUpdatesChannel??"latest",...{}})}catch(L){A6(L)}}function SO8(q){}function CO8(q){return}function $S5(){(process.stderr.isTTY?process.stderr:process.stdout.isTTY?process.stdout:void 0)?.write(fk)}function wS5(q){if(typeof q!=="object"||q===null)return{};let K=q,_=K.teammateMode;return{agentId:typeof K.agentId==="string"?K.agentId:void 0,agentName:typeof K.agentName==="string"?K.agentName:void 0,teamName:typeof K.teamName==="string"?K.teamName:void 0,agentColor:typeof K.agentColor==="string"?K.agentColor:void 0,planModeRequired:typeof K.planModeRequired==="boolean"?K.planModeRequired:void 0,parentSessionId:typeof K.parentSessionId==="string"?K.parentSessionId:void 0,teammateMode:_==="auto"||_==="tmux"||_==="in-process"?_:void 0,agentType:typeof K.agentType==="string"?K.agentType:void 0}}var ha_=()=>(wz(),tA(HB8)),dh5=()=>tA(dQK),Qh5=()=>(En(),tA(_l8)),lh5=null,ih5,s3q=12;var H3q=h(()=>{UL();tP8();pL8();F5q();L4();sD6();n38();Ik();a4();AP();i5q();xv();Bd_();Fd_();_e6();sO6();dd_();OD();sA6();cy();uH();gg();mz();FV6();wK();Wq();pX6();eM();Pj();Wq6();kq();s_();iG6();Yv();_m();MY8();Q8();JOq();nd_();G8();hY();Vl_();lp();w3q();my();Ww();M3q();Di_();Mw();OE();$$6();_w();Z56();Zi_();x8();oYq();WN6();m4();vi_();UO();y8();iOq();cK();Fh();a1();oV();z1();dP();Lw();tk6();GT6();sX();VG();HB();S_();Xb6();Vq();OL();m3();H56();ki_();Ae6();J0();Vi_();Mn_();T46();Ww();Qj();D$();TZ6();uOq();ir();A0();lA();AC();FR();nq();z8();N8();AK();bY();pk6();LL8();xP();lV6();yO();G8();Xn_();fn_();Dn_();Zn_();vn_();kn_();Vn_();Rn_();Ln_();Cn_();In_();un_();qOq();mn_();bR();Di();f76();V36();mj();J2();Xz();aY8();S3();MN6();Tz();v1();E0();SW();eG6();NJ();x_("main_tsx_entry");Rkq();i5K();ih5=tA(bB);x_("main_tsx_imports_loaded");if(rh5())process.exit(1)});_L();_96();if(!process.env.PUKU_AUTH)process.env.PUKU_AUTH="true";if(!process.env.PUKU_WORKER_URL)process.env.PUKU_WORKER_URL="https://api-cli.puku.sh";if(!process.env.PUKU_AI_BASE_URL)process.env.PUKU_AI_BASE_URL="https://api-cli.puku.sh";if(!process.env.PUKU_AI_MODEL)process.env.PUKU_AI_MODEL="puku-ai-2.7";if(!process.env.PUKU_AI_SMALL_FAST_MODEL)process.env.PUKU_AI_SMALL_FAST_MODEL="puku-ai-2.7";if(!process.env.PUKU_CLI_AUTO_MODE_MODEL)process.env.PUKU_CLI_AUTO_MODE_MODEL="puku-ai-2.7";process.env.PUKU_CLI_DISABLE_EXPERIMENTAL_BETAS??="true";process.env.COREPACK_ENABLE_AUTO_PIN="0";if(process.env.PUKU_CLI_REMOTE==="true"){let q=process.env.NODE_OPTIONS||"";process.env.NODE_OPTIONS=q?`${q} --max-old-space-size=8192`:"--max-old-space-size=8192"}function bO8(q){if(!q)return!1;let K=q.trim().toLowerCase();return K!==""&&K!=="0"&&K!=="false"&&K!=="no"}function ba_(q=process.env){let K=bO8(q.PUKU_CLI_USE_OPENAI),_=bO8(q.PUKU_CLI_USE_GITHUB);if(bO8(q.PUKU_CLI_USE_GEMINI)){if(!(q.GEMINI_API_KEY??q.GOOGLE_API_KEY))return"GEMINI_API_KEY is required when PUKU_CLI_USE_GEMINI=1.";return null}if(_&&!K){if(!((q.GITHUB_TOKEN?.trim()||q.GH_TOKEN?.trim())??""))return"GITHUB_TOKEN or GH_TOKEN is required when PUKU_CLI_USE_GITHUB=1.";return null}if(!K)return null;let A=Bw({model:q.OPENAI_MODEL,baseUrl:q.OPENAI_BASE_URL});if(q.OPENAI_API_KEY==="SUA_CHAVE")return"Invalid OPENAI_API_KEY: placeholder value SUA_CHAVE detected. Set a real key or unset for local providers.";if(A.transport==="codex_responses"){let z=kf(q);if(!z.apiKey){let Y=z.authPath?` or put auth.json at ${z.authPath}`:"";return`Codex auth is required for ${Nf(A.requestedModel,q)??"the requested model"}. Set CODEX_API_KEY${Y}.`}if(!z.accountId)return"Codex auth is missing chatgpt_account_id. Re-login with Codex or set CHATGPT_ACCOUNT_ID/CODEX_ACCOUNT_ID.";return null}if(!q.OPENAI_API_KEY&&!ZR6(A.baseUrl)){let z=!!(q.GITHUB_TOKEN?.trim()||q.GH_TOKEN?.trim());if(_&&z)return null;return"OPENAI_API_KEY is required when PUKU_CLI_USE_OPENAI=1 and OPENAI_BASE_URL is not local."}return null}function HS5(){let q=ba_();if(q)console.error(q),process.exit(1)}async function jS5(){let q=process.argv.slice(2);if(q.length===1&&(q[0]==="--version"||q[0]==="-v"||q[0]==="-V")){console.log("1.8.37 (puku-cli)");return}if(q.includes("--provider")){let{applyProviderFlagFromArgs:Y}=await Promise.resolve().then(() => (K1q(),q1q)),O=Y(q);if(O?.error)console.error(`Error: ${O.error}`),process.exit(1)}{let{enableConfigs:Y}=await Promise.resolve().then(() => (Wq(),_D8));Y();let{applySafeConfigEnvironmentVariables:O}=await Promise.resolve().then(() => (Wq6(),XzK));O();let{hydrateGithubModelsTokenFromSecureStorage:$}=await Promise.resolve().then(() => (zg6(),RqK));$()}let K=await o9q({processEnv:process.env});if(K!==process.env){let Y=ba_(K);if(Y)console.error(`Warning: ignoring saved provider profile. ${Y}`);else s9q(process.env,K)}if(HS5(),bO8(process.env.PUKU_AUTH)){let{getSilentSession:Y,injectEnv:O}=await Promise.resolve().then(() => (oV(),xYK)),$=await Y();if($)O($)}Promise.resolve().then(() => (TS8(),MMK)).then(({prewarmSyntaxHighlighting:Y})=>Y());let{profileCheckpoint:_}=await Promise.resolve().then(() => (UL(),vTq));if(_("cli_entry"),process.argv[2]==="--claude-in-chrome-mcp"){_("cli_claude_in_chrome_mcp_path");let{runClaudeInChromeMcpServer:Y}=await Promise.resolve().then(() => (ld8(),Qd8));await Y();return}else if(process.argv[2]==="--chrome-native-host"){_("cli_chrome_native_host_path");let{runChromeNativeHost:Y}=await Promise.resolve().then(() => (RS_(),yS_));await Y();return}if(!1)switch(q[0]){case"ps":case"logs":case"attach":case"kill":default:}if((q.includes("--tmux")||q.includes("--tmux=classic"))&&(q.includes("-w")||q.includes("--worktree")||q.some((Y)=>Y.startsWith("--worktree=")))){_("cli_tmux_worktree_fast_path");let{enableConfigs:Y}=await Promise.resolve().then(() => (Wq(),_D8));Y();let{isWorktreeModeEnabled:O}=await Promise.resolve().then(() => Fz_);if(O()){let{execIntoTmuxWorktree:$}=await Promise.resolve().then(() => (NJ(),oh_)),w=await $(q);if(w.handled)return;if(w.error){let{exitWithError:H}=await Promise.resolve().then(() => vMq);H(w.error)}}}if(q.length===1&&(q[0]==="--update"||q[0]==="--upgrade"))process.argv=[process.argv[0],process.argv[1],"update"];if(q.includes("--bare"))process.env.PUKU_CLI_SIMPLE="1";if(process.env.PUKU_DISABLE_EARLY_INPUT!=="1"){let{startCapturingEarlyInput:Y}=await Promise.resolve().then(() => (pX6(),K2K));Y()}_("cli_before_main_import");let{main:z}=await Promise.resolve().then(() => (H3q(),Ca_));_("cli_after_main_import"),await z(),_("cli_after_main_complete")}jS5();
|
|
9043
|
+
`))}catch(p_){return await XN(O4,`Error downloading files: ${d6(p_)}`)}let Z7=P_??(Array.isArray(eq)?{messages:eq,fileHistorySnapshots:void 0,agentName:void 0,agentColor:void 0,restoredAgentDef:lq,initialState:GY,contentReplacements:void 0}:void 0);if(Z7)SO8(j),CO8(j),await Oy6(O4,{getFpsMetrics:w_,stats:$K,initialState:Z7.initialState},{...X5,mainThreadAgentDefinition:Z7.restoredAgentDef??lq,initialMessages:Z7.messages,initialFileHistorySnapshots:Z7.fileHistorySnapshots,initialContentReplacements:Z7.contentReplacements,initialAgentName:Z7.agentName,initialAgentColor:Z7.agentColor},Ro);else await Nl_(O4,{getFpsMetrics:w_,stats:$K,initialState:GY},qI(Tq()),{...X5,initialSearchQuery:CK,forkSession:j.forkSession,filterByPr:VA})}else{let e8=M9&&NA.length===0?M9:void 0;x_("action_after_hooks"),SO8(j),CO8(j);let eq=null,P_=eq?[eq,...NA]:NA.length>0?NA:void 0;await Oy6(O4,{getFpsMetrics:w_,stats:$K,initialState:GY},{...X5,initialMessages:P_,pendingHookMessages:e8},Ro)}}).version("1.8.38 (puku-cli)","-v, --version","Output the version number"),K.option("-w, --worktree [name]","Create a new git worktree for this session (optionally specify a name)"),K.option("--tmux","Create a tmux session for the worktree (requires --worktree). Uses iTerm2 native panes when available; use --tmux=classic for traditional tmux."),mg())K.addOption(new n4("--advisor <model>","Enable the server-side advisor tool with the specified model (alias or full ID).").hideHelp());K.addOption(new n4("--enable-auto-mode","Opt in to auto mode").hideHelp()),K.addOption(new n4("--agent-id <id>","Teammate agent ID").hideHelp()),K.addOption(new n4("--agent-name <name>","Teammate display name").hideHelp()),K.addOption(new n4("--team-name <name>","Team name for swarm coordination").hideHelp()),K.addOption(new n4("--agent-color <color>","Teammate UI color").hideHelp()),K.addOption(new n4("--plan-mode-required","Require plan mode before implementation").hideHelp()),K.addOption(new n4("--parent-session-id <id>","Parent session ID for analytics correlation").hideHelp()),K.addOption(new n4("--teammate-mode <mode>",'How to spawn teammates: "tmux", "in-process", or "auto"').choices(["auto","tmux","in-process"]).hideHelp()),K.addOption(new n4("--agent-type <type>","Custom agent type for this teammate").hideHelp()),K.addOption(new n4("--sdk-url <url>","Use remote WebSocket endpoint for SDK I/O streaming (only with -p and stream-json format)").hideHelp()),K.addOption(new n4("--teleport [session]","Resume a teleport session, optionally specify session ID").hideHelp()),K.addOption(new n4("--remote [description]","Create a remote session with the given description").hideHelp()),x_("run_main_options_built");let _=process.argv.includes("-p")||process.argv.includes("--print"),A=process.argv.some((H)=>H.startsWith("cc://")||H.startsWith("cc+unix://"));if(_&&!A)return x_("run_before_parse"),await K.parseAsync(process.argv),x_("run_after_parse"),K;let z=K.command("mcp").description("Configure and manage MCP servers").configureHelp(q()).enablePositionalOptions();if(z.command("serve").description("Start the Puku MCP server").option("-d, --debug","Enable debug mode",()=>!0).option("--verbose","Override verbose mode setting from config",()=>!0).action(async({debug:H,verbose:j})=>{let{mcpServeHandler:M}=await Promise.resolve().then(() => (SI(),hI));await M({debug:H,verbose:j})}),Ni_(z),Hn_(z),NC())jn_(z);z.command("remove <name>").description("Remove an MCP server").option("-s, --scope <scope>","Configuration scope (local, user, or project) - if not specified, removes from whichever scope it exists in").action(async(H,j)=>{let{mcpRemoveHandler:M}=await Promise.resolve().then(() => (SI(),hI));await M(H,j)}),z.command("list").description("List configured MCP servers. Note: The workspace trust dialog is skipped and stdio servers from .mcp.json are spawned for health checks. Only use this command in directories you trust.").action(async()=>{let{mcpListHandler:H}=await Promise.resolve().then(() => (SI(),hI));await H()}),z.command("get <name>").description("Get details about an MCP server. Note: The workspace trust dialog is skipped and stdio servers from .mcp.json are spawned for health checks. Only use this command in directories you trust.").action(async(H)=>{let{mcpGetHandler:j}=await Promise.resolve().then(() => (SI(),hI));await j(H)}),z.command("add-json <name> <json>").description("Add an MCP server (stdio or SSE) with a JSON string").option("-s, --scope <scope>","Configuration scope (local, user, or project)","local").option("--client-secret","Prompt for OAuth client secret (or set MCP_CLIENT_SECRET env var)").action(async(H,j,M)=>{let{mcpAddJsonHandler:J}=await Promise.resolve().then(() => (SI(),hI));await J(H,j,M)}),z.command("add-from-puku-desktop").description("Import MCP servers from Puku Desktop (Mac and WSL only)").option("-s, --scope <scope>","Configuration scope (local, user, or project)","local").action(async(H)=>{let{mcpAddFromDesktopHandler:j}=await Promise.resolve().then(() => (SI(),hI));await j(H)}),z.command("reset-project-choices").description("Reset all approved and rejected project-scoped (.mcp.json) servers within this project").action(async()=>{let{mcpResetChoicesHandler:H}=await Promise.resolve().then(() => (SI(),hI));await H()});let Y=K.command("auth").description("Manage authentication").configureHelp(q());Y.command("login").description("Sign in to your Puku AI account").action(async()=>{let{authLogin:H}=await Promise.resolve().then(() => (My6(),fO8));await H()}),Y.command("status").description("Show authentication status").option("--json","Output as JSON (default)").option("--text","Output as human-readable text").action(async(H)=>{let{authStatus:j}=await Promise.resolve().then(() => (My6(),fO8));await j(H)}),Y.command("logout").description("Log out from your Puku AI account").action(async()=>{let{authLogout:H}=await Promise.resolve().then(() => (My6(),fO8));await H()});let O=()=>new n4("--cowork","Use cowork_plugins directory").hideHelp(),$=K.command("plugin").alias("plugins").description("Manage Puku plugins").configureHelp(q());$.command("validate <path>").description("Validate a plugin or marketplace manifest").addOption(O()).action(async(H,j)=>{let{pluginValidateHandler:M}=await Promise.resolve().then(() => (_T(),KT));await M(H,j)}),$.command("list").description("List installed plugins").option("--json","Output as JSON").option("--available","Include available plugins from marketplaces (requires --json)").addOption(O()).action(async(H)=>{let{pluginListHandler:j}=await Promise.resolve().then(() => (_T(),KT));await j(H)});let w=$.command("marketplace").description("Manage Puku marketplaces").configureHelp(q());if(w.command("add <source>").description("Add a marketplace from a URL, path, or GitHub repo").addOption(O()).option("--sparse <paths...>","Limit checkout to specific directories via git sparse-checkout (for monorepos). Example: --sparse .puku-plugin plugins").option("--scope <scope>","Where to declare the marketplace: user (default), project, or local").action(async(H,j)=>{let{marketplaceAddHandler:M}=await Promise.resolve().then(() => (_T(),KT));await M(H,j)}),w.command("list").description("List all configured marketplaces").option("--json","Output as JSON").addOption(O()).action(async(H)=>{let{marketplaceListHandler:j}=await Promise.resolve().then(() => (_T(),KT));await j(H)}),w.command("remove <name>").alias("rm").description("Remove a configured marketplace").addOption(O()).action(async(H,j)=>{let{marketplaceRemoveHandler:M}=await Promise.resolve().then(() => (_T(),KT));await M(H,j)}),w.command("update [name]").description("Update marketplace(s) from their source - updates all if no name specified").addOption(O()).action(async(H,j)=>{let{marketplaceUpdateHandler:M}=await Promise.resolve().then(() => (_T(),KT));await M(H,j)}),$.command("install <plugin>").alias("i").description("Install a plugin from available marketplaces (use plugin@marketplace for specific marketplace)").option("-s, --scope <scope>","Installation scope: user, project, or local","user").addOption(O()).action(async(H,j)=>{let{pluginInstallHandler:M}=await Promise.resolve().then(() => (_T(),KT));await M(H,j)}),$.command("uninstall <plugin>").alias("remove").alias("rm").description("Uninstall an installed plugin").option("-s, --scope <scope>","Uninstall from scope: user, project, or local","user").option("--keep-data","Preserve the plugin's persistent data directory (~/.puku-cli/plugins/data/{id}/)").addOption(O()).action(async(H,j)=>{let{pluginUninstallHandler:M}=await Promise.resolve().then(() => (_T(),KT));await M(H,j)}),$.command("enable <plugin>").description("Enable a disabled plugin").option("-s, --scope <scope>",`Installation scope: ${MM.join(", ")} (default: auto-detect)`).addOption(O()).action(async(H,j)=>{let{pluginEnableHandler:M}=await Promise.resolve().then(() => (_T(),KT));await M(H,j)}),$.command("disable [plugin]").description("Disable an enabled plugin").option("-a, --all","Disable all enabled plugins").option("-s, --scope <scope>",`Installation scope: ${MM.join(", ")} (default: auto-detect)`).addOption(O()).action(async(H,j)=>{let{pluginDisableHandler:M}=await Promise.resolve().then(() => (_T(),KT));await M(H,j)}),$.command("update <plugin>").description("Update a plugin to the latest version (restart required to apply)").option("-s, --scope <scope>",`Installation scope: ${La.join(", ")} (default: user)`).addOption(O()).action(async(H,j)=>{let{pluginUpdateHandler:M}=await Promise.resolve().then(() => (_T(),KT));await M(H,j)}),K.command("setup-token").description("Set up a long-lived authentication token (requires Puku subscription)").action(async()=>{let[{setupTokenHandler:H},{createRoot:j}]=await Promise.all([Promise.resolve().then(() => (EO8(),RO8)),Promise.resolve().then(() => (n6(),hP6))]),M=await j(tC(!1));await H(M)}),K.command("agents").description("List configured agents").option("--setting-sources <sources>","Comma-separated list of setting sources to load (user, project, local).").action(async()=>{let{agentsHandler:H}=await Promise.resolve().then(() => (ya_(),Va_));await H(),process.exit(0)}),O_8()!=="disabled"){let H=K.command("auto-mode").description("Inspect auto mode classifier configuration");H.command("defaults").description("Print the default auto mode environment, allow, and deny rules as JSON").action(async()=>{let{autoModeDefaultsHandler:j}=await Promise.resolve().then(() => (hO8(),LO8));j(),process.exit(0)}),H.command("config").description("Print the effective auto mode config as JSON: your settings where set, defaults otherwise").action(async()=>{let{autoModeConfigHandler:j}=await Promise.resolve().then(() => (hO8(),LO8));j(),process.exit(0)}),H.command("critique").description("Get AI feedback on your custom auto mode rules").option("--model <model>","Override which model is used").action(async(j)=>{let{autoModeCritiqueHandler:M}=await Promise.resolve().then(() => (hO8(),LO8));await M(j),process.exit()})}return K.command("doctor").description("Check the health of your Puku auto-updater. Note: The workspace trust dialog is skipped and stdio servers from .mcp.json are spawned for health checks. Only use this command in directories you trust.").action(async()=>{let[{doctorHandler:H},{createRoot:j}]=await Promise.all([Promise.resolve().then(() => (EO8(),RO8)),Promise.resolve().then(() => (n6(),hP6))]),M=await j(tC(!1));await H(M)}),K.command("update").alias("upgrade").description("Check for updates and install if available").action(async()=>{let{update:H}=await Promise.resolve().then(() => (La_(),Ea_));await H()}),K.command("install [target]").description("Install Puku native build. Use [target] to specify version (stable, latest, or specific version)").option("--force","Force installation even if already installed").action(async(H,j)=>{let{installHandler:M}=await Promise.resolve().then(() => (EO8(),RO8));await M(H,j)}),x_("run_before_parse"),await K.parseAsync(process.argv),x_("run_after_parse"),x_("main_after_run"),PH6(),K}async function OS5({hasInitialPrompt:q,hasStdin:K,verbose:_,debug:A,debugToStderr:z,print:Y,outputFormat:O,inputFormat:$,numAllowedTools:w,numDisallowedTools:H,mcpClientCount:j,worktreeEnabled:M,skipWebFetchPreflight:J,githubActionInputs:X,godModePassed:P,permissionMode:f,modeIsBypass:D,allowGodModePassed:Z,systemPromptFlag:G,appendSystemPromptFlag:v,thinkingConfig:k,assistantActivationPath:N}){try{Q("ev_event",{entrypoint:"puku-cli",hasInitialPrompt:q,hasStdin:K,verbose:_,debug:A,debugToStderr:z,print:Y,outputFormat:O,inputFormat:$,numAllowedTools:w,numDisallowedTools:H,mcpClientCount:j,worktree:M,skipWebFetchPreflight:J,...X&&{githubActionInputs:X},godModePassed:P,permissionMode:f,modeIsBypass:D,inProtectedNamespace:tD(),allowGodModePassed:Z,thinkingType:k.type,...G&&{systemPromptFlag:G},...v&&{appendSystemPromptFlag:v},is_simple:o7()||void 0,is_coordinator:void 0,...N&&{assistantActivationPath:N},autoUpdatesChannel:YK().autoUpdatesChannel??"latest",...{}})}catch(L){A6(L)}}function SO8(q){}function CO8(q){return}function $S5(){(process.stderr.isTTY?process.stderr:process.stdout.isTTY?process.stdout:void 0)?.write(fk)}function wS5(q){if(typeof q!=="object"||q===null)return{};let K=q,_=K.teammateMode;return{agentId:typeof K.agentId==="string"?K.agentId:void 0,agentName:typeof K.agentName==="string"?K.agentName:void 0,teamName:typeof K.teamName==="string"?K.teamName:void 0,agentColor:typeof K.agentColor==="string"?K.agentColor:void 0,planModeRequired:typeof K.planModeRequired==="boolean"?K.planModeRequired:void 0,parentSessionId:typeof K.parentSessionId==="string"?K.parentSessionId:void 0,teammateMode:_==="auto"||_==="tmux"||_==="in-process"?_:void 0,agentType:typeof K.agentType==="string"?K.agentType:void 0}}var ha_=()=>(wz(),tA(HB8)),dh5=()=>tA(dQK),Qh5=()=>(En(),tA(_l8)),lh5=null,ih5,s3q=12;var H3q=h(()=>{UL();tP8();pL8();F5q();L4();sD6();n38();Ik();a4();AP();i5q();xv();Bd_();Fd_();_e6();sO6();dd_();OD();sA6();cy();uH();gg();mz();FV6();wK();Wq();pX6();eM();Pj();Wq6();kq();s_();iG6();Yv();_m();MY8();Q8();JOq();nd_();G8();hY();Vl_();lp();w3q();my();Ww();M3q();Di_();Mw();OE();$$6();_w();Z56();Zi_();x8();oYq();WN6();m4();vi_();UO();y8();iOq();cK();Fh();a1();oV();z1();dP();Lw();tk6();GT6();sX();VG();HB();S_();Xb6();Vq();OL();m3();H56();ki_();Ae6();J0();Vi_();Mn_();T46();Ww();Qj();D$();TZ6();uOq();ir();A0();lA();AC();FR();nq();z8();N8();AK();bY();pk6();LL8();xP();lV6();yO();G8();Xn_();fn_();Dn_();Zn_();vn_();kn_();Vn_();Rn_();Ln_();Cn_();In_();un_();qOq();mn_();bR();Di();f76();V36();mj();J2();Xz();aY8();S3();MN6();Tz();v1();E0();SW();eG6();NJ();x_("main_tsx_entry");Rkq();i5K();ih5=tA(bB);x_("main_tsx_imports_loaded");if(rh5())process.exit(1)});_L();_96();if(!process.env.PUKU_AUTH)process.env.PUKU_AUTH="true";if(!process.env.PUKU_WORKER_URL)process.env.PUKU_WORKER_URL="https://api-cli.puku.sh";if(!process.env.PUKU_AI_BASE_URL)process.env.PUKU_AI_BASE_URL="https://api-cli.puku.sh";if(!process.env.PUKU_AI_MODEL)process.env.PUKU_AI_MODEL="puku-ai-2.7";if(!process.env.PUKU_AI_SMALL_FAST_MODEL)process.env.PUKU_AI_SMALL_FAST_MODEL="puku-ai-2.7";if(!process.env.PUKU_CLI_AUTO_MODE_MODEL)process.env.PUKU_CLI_AUTO_MODE_MODEL="puku-ai-2.7";process.env.PUKU_CLI_DISABLE_EXPERIMENTAL_BETAS??="true";process.env.COREPACK_ENABLE_AUTO_PIN="0";if(process.env.PUKU_CLI_REMOTE==="true"){let q=process.env.NODE_OPTIONS||"";process.env.NODE_OPTIONS=q?`${q} --max-old-space-size=8192`:"--max-old-space-size=8192"}function bO8(q){if(!q)return!1;let K=q.trim().toLowerCase();return K!==""&&K!=="0"&&K!=="false"&&K!=="no"}function ba_(q=process.env){let K=bO8(q.PUKU_CLI_USE_OPENAI),_=bO8(q.PUKU_CLI_USE_GITHUB);if(bO8(q.PUKU_CLI_USE_GEMINI)){if(!(q.GEMINI_API_KEY??q.GOOGLE_API_KEY))return"GEMINI_API_KEY is required when PUKU_CLI_USE_GEMINI=1.";return null}if(_&&!K){if(!((q.GITHUB_TOKEN?.trim()||q.GH_TOKEN?.trim())??""))return"GITHUB_TOKEN or GH_TOKEN is required when PUKU_CLI_USE_GITHUB=1.";return null}if(!K)return null;let A=Bw({model:q.OPENAI_MODEL,baseUrl:q.OPENAI_BASE_URL});if(q.OPENAI_API_KEY==="SUA_CHAVE")return"Invalid OPENAI_API_KEY: placeholder value SUA_CHAVE detected. Set a real key or unset for local providers.";if(A.transport==="codex_responses"){let z=kf(q);if(!z.apiKey){let Y=z.authPath?` or put auth.json at ${z.authPath}`:"";return`Codex auth is required for ${Nf(A.requestedModel,q)??"the requested model"}. Set CODEX_API_KEY${Y}.`}if(!z.accountId)return"Codex auth is missing chatgpt_account_id. Re-login with Codex or set CHATGPT_ACCOUNT_ID/CODEX_ACCOUNT_ID.";return null}if(!q.OPENAI_API_KEY&&!ZR6(A.baseUrl)){let z=!!(q.GITHUB_TOKEN?.trim()||q.GH_TOKEN?.trim());if(_&&z)return null;return"OPENAI_API_KEY is required when PUKU_CLI_USE_OPENAI=1 and OPENAI_BASE_URL is not local."}return null}function HS5(){let q=ba_();if(q)console.error(q),process.exit(1)}async function jS5(){let q=process.argv.slice(2);if(q.length===1&&(q[0]==="--version"||q[0]==="-v"||q[0]==="-V")){console.log("1.8.38 (puku-cli)");return}if(q.includes("--provider")){let{applyProviderFlagFromArgs:Y}=await Promise.resolve().then(() => (K1q(),q1q)),O=Y(q);if(O?.error)console.error(`Error: ${O.error}`),process.exit(1)}{let{enableConfigs:Y}=await Promise.resolve().then(() => (Wq(),_D8));Y();let{applySafeConfigEnvironmentVariables:O}=await Promise.resolve().then(() => (Wq6(),XzK));O();let{hydrateGithubModelsTokenFromSecureStorage:$}=await Promise.resolve().then(() => (zg6(),RqK));$()}let K=await o9q({processEnv:process.env});if(K!==process.env){let Y=ba_(K);if(Y)console.error(`Warning: ignoring saved provider profile. ${Y}`);else s9q(process.env,K)}if(HS5(),bO8(process.env.PUKU_AUTH)){let{getSilentSession:Y,injectEnv:O}=await Promise.resolve().then(() => (oV(),xYK)),$=await Y();if($)O($)}Promise.resolve().then(() => (TS8(),MMK)).then(({prewarmSyntaxHighlighting:Y})=>Y());let{profileCheckpoint:_}=await Promise.resolve().then(() => (UL(),vTq));if(_("cli_entry"),process.argv[2]==="--claude-in-chrome-mcp"){_("cli_claude_in_chrome_mcp_path");let{runClaudeInChromeMcpServer:Y}=await Promise.resolve().then(() => (ld8(),Qd8));await Y();return}else if(process.argv[2]==="--chrome-native-host"){_("cli_chrome_native_host_path");let{runChromeNativeHost:Y}=await Promise.resolve().then(() => (RS_(),yS_));await Y();return}if(!1)switch(q[0]){case"ps":case"logs":case"attach":case"kill":default:}if((q.includes("--tmux")||q.includes("--tmux=classic"))&&(q.includes("-w")||q.includes("--worktree")||q.some((Y)=>Y.startsWith("--worktree=")))){_("cli_tmux_worktree_fast_path");let{enableConfigs:Y}=await Promise.resolve().then(() => (Wq(),_D8));Y();let{isWorktreeModeEnabled:O}=await Promise.resolve().then(() => Fz_);if(O()){let{execIntoTmuxWorktree:$}=await Promise.resolve().then(() => (NJ(),oh_)),w=await $(q);if(w.handled)return;if(w.error){let{exitWithError:H}=await Promise.resolve().then(() => vMq);H(w.error)}}}if(q.length===1&&(q[0]==="--update"||q[0]==="--upgrade"))process.argv=[process.argv[0],process.argv[1],"update"];if(q.includes("--bare"))process.env.PUKU_CLI_SIMPLE="1";if(process.env.PUKU_DISABLE_EARLY_INPUT!=="1"){let{startCapturingEarlyInput:Y}=await Promise.resolve().then(() => (pX6(),K2K));Y()}_("cli_before_main_import");let{main:z}=await Promise.resolve().then(() => (H3q(),Ca_));_("cli_after_main_import"),await z(),_("cli_after_main_complete")}jS5();
|