@glock-org/cli 0.1.16 → 0.1.17
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/cli.js +27 -27
- package/package.json +1 -1
package/cli.js
CHANGED
|
@@ -693,7 +693,7 @@ ${z}`)))},[J]),X=PN.useCallback(({message:K,title:G,id:z})=>{J(u3(Sz(D5.KITTY,`i
|
|
|
693
693
|
$currentPid = $proc.ParentProcessId
|
|
694
694
|
}
|
|
695
695
|
$commands -join [char]0
|
|
696
|
-
`.trim(),q=await r8("powershell.exe",["-NoProfile","-Command",Y],{timeout:3000});if(q.code!==0||!q.stdout?.trim())return[];return q.stdout.split("\x00").filter(Boolean)}let X=`currentpid=${String(J)}; for i in $(seq 1 ${Q}); do cmd=$(ps -o command= -p $currentpid 2>/dev/null); if [ -n "$cmd" ]; then printf '%s\\0' "$cmd"; fi; ppid=$(ps -o ppid= -p $currentpid 2>/dev/null | tr -d ' '); if [ -z "$ppid" ] || [ "$ppid" = "0" ] || [ "$ppid" = "1" ]; then break; fi; currentpid=$ppid; done`,Z=await r8("sh",["-c",X],{timeout:3000});if(Z.code!==0||!Z.stdout?.trim())return[];return Z.stdout.split("\x00").filter(Boolean)}var t10=I(()=>{T9()});import{stat as si9}from"fs/promises";function ei9(){return process.platform==="linux"&&W1(process.env.GLOCK_BUBBLEWRAP)}function Jn9(){if(process.platform!=="linux")return!1;return Dj1??!1}async function k46(){if(fd!==void 0)return fd;if(process.platform==="darwin")return fd=null,null;try{let J=await x46(process.pid,10);for(let Q of J){let X=Q.toLowerCase();for(let Z of xW1)if(X.includes(Z))return fd=Z,Z}}catch{}return fd=null,null}async function Qn9(){if(process.env.TERMINAL_EMULATOR==="JetBrains-JediTerm"){if(k8.platform!=="darwin")return await k46()||"pycharm"}return k8.terminal}function Xn9(){if(process.env.TERMINAL_EMULATOR==="JetBrains-JediTerm"){if(k8.platform!=="darwin"){if(fd!==void 0)return fd||"pycharm";return"pycharm"}}return k8.terminal}async function $j1(){if(process.env.TERMINAL_EMULATOR==="JetBrains-JediTerm")await k46()}var ti9,Dj1=null,fd,kR;var e10=I(()=>{IJ();WZ();t1();T9();t10();ti9=g1(async()=>{if(process.platform!=="linux")return!1;let{code:J}=await Z8("test",["-f","/.dockerenv"]);return J===0});if(process.platform==="linux"){let J=process.arch==="x64"?"x86_64":"aarch64";si9(`/lib/libc.musl-${J}.so.1`).then(()=>{Dj1=!0},()=>{Dj1=!1})}kR={...k8,terminal:Xn9(),getIsDocker:ti9,getIsBubblewrapSandbox:ei9,isMuslEnvironment:Jn9,getTerminalWithJetBrainsDetectionAsync:Qn9,initJetBrainsDetection:$j1}});function Zn9(J){try{let Q=new URL(J);return Q.search="",Q.toString().replace(/\/$/,"")}catch{return}}async function u46(){try{let J=await y8.get("https://api.getglock.dev/mcp-registry/v0/servers?version=latest&visibility=commercial",{timeout:5000}),Q=new Set;for(let X of J.data.servers)for(let Z of X.server.remotes??[]){let Y=Zn9(Z.url);if(Y)Q.add(Y)}h46=Q,b(`[mcp-registry] Loaded ${Q.size} official MCP URLs`)}catch(J){b(`Failed to fetch MCP registry: ${Q1(J)}`,{level:"error"})}}function g46(J){return h46?.has(J)??!1}var h46=void 0;var jj1=I(()=>{JX();Z1();T1()});function Yn9(){return process.argv.includes("--agent-teams")}function p6(){if(process.env.USER_TYPE==="ant")return!0;if(!W1(process.env.GLOCK_EXPERIMENTAL_AGENT_TEAMS)&&!Yn9())return!1;if(!Y8("jarvis_api_error",!0))return!1;return!0}var lZ=I(()=>{t1()});import{AsyncLocalStorage as qn9}from"async_hooks";function hR(){return m46.getStore()}function qj(J,Q){return m46.run(J,Q)}function Kn9(J){return J?.agentType==="subagent"}function p46(){let J=hR();if(!Kn9(J)||!J.subagentName)return;return J.isBuiltIn?J.subagentName:"user-defined"}function Ij1(){let J=hR();if(!J?.invokingRequestId||J.invocationEmitted)return;return J.invocationEmitted=!0,{invokingRequestId:J.invokingRequestId,invocationKind:J.invocationKind}}var m46;var uR=I(()=>{lZ();m46=new qn9});import{AsyncLocalStorage as Gn9}from"async_hooks";function EN(){return yj1.getStore()}function Ok0(J,Q){return yj1.run(J,Q)}function p3(){return yj1.getStore()!==void 0}function Lk0(J){return{...J,isInProcess:!0}}var yj1;var lO=I(()=>{yj1=new Gn9});var Ej1={};X8(Ej1,{waitForTeammatesToBecomeIdle:()=>Pj1,setDynamicTeamContext:()=>zn9,runWithTeammateContext:()=>Ok0,isTeammate:()=>UZ,isTeamLead:()=>TB,isPlanModeRequired:()=>hH0,isInProcessTeammate:()=>p3,hasWorkingInProcessTeammates:()=>bj1,hasActiveInProcessTeammates:()=>Vk0,getTeammateContext:()=>EN,getTeammateColor:()=>Hq,getTeamName:()=>v7,getParentSessionId:()=>wx,getDynamicTeamContext:()=>kH0,getAgentName:()=>dQ,getAgentId:()=>eW,createTeammateContext:()=>Lk0,clearDynamicTeamContext:()=>Wn9});function wx(){let J=EN();if(J)return J.parentSessionId;return iO?.parentSessionId}function zn9(J){iO=J}function Wn9(){iO=null}function kH0(){return iO}function eW(){let J=EN();if(J)return J.agentId;return iO?.agentId}function dQ(){let J=EN();if(J)return J.agentName;return iO?.agentName}function v7(J){let Q=EN();if(Q)return Q.teamName;if(iO?.teamName)return iO.teamName;return J?.teamName}function UZ(){if(EN())return!0;return!!(iO?.agentId&&iO?.teamName)}function Hq(){let J=EN();if(J)return J.color;return iO?.color}function hH0(){let J=EN();if(J)return J.planModeRequired;if(iO!==null)return iO.planModeRequired;return W1(process.env.GLOCK_PLAN_MODE_REQUIRED)}function TB(J){if(!J?.leadAgentId)return!1;let Q=eW(),X=J.leadAgentId;if(Q===X)return!0;if(!Q)return!0;return!1}function Vk0(J){for(let Q of Object.values(J.tasks))if(Q.type==="in_process_teammate"&&Q.status==="running")return!0;return!1}function bj1(J){for(let Q of Object.values(J.tasks))if(Q.type==="in_process_teammate"&&Q.status==="running"&&!Q.isIdle)return!0;return!1}function Pj1(J,Q){let X=[];for(let[Z,Y]of Object.entries(Q.tasks))if(Y.type==="in_process_teammate"&&Y.status==="running"&&!Y.isIdle)X.push(Z);if(X.length===0)return Promise.resolve();return new Promise((Z)=>{let Y=X.length,q=()=>{if(Y--,Y===0)Z()};J((K)=>{let G={...K.tasks};for(let z of X){let W=G[z];if(W&&W.type==="in_process_teammate")if(W.isIdle)q();else G[z]={...W,onIdleCallbacks:[...W.onIdleCallbacks??[],q]}}return{...K,tasks:G}})})}var iO=null;var FZ=I(()=>{lO();t1();lO()});import{extname as Hn9}from"path";function w9(J){if(J.startsWith("mcp__"))return"mcp_tool";return J}function Un9(J,Q){if(process.env.GLOCK_ENTRYPOINT==="local-agent")return!0;if(J==="glockai-proxy")return!0;if(Q&&g46(Q))return!0;return!1}function Kj(J,Q,X){let Z=_n9(J);if(!Z)return{};if(!Fn9.has(Z.serverName)&&!Un9(Q,X))return{};return{mcpServerName:Z.serverName,mcpToolName:Z.mcpToolName}}function _n9(J){if(!J.startsWith("mcp__"))return;let Q=J.split("__");if(Q.length<3)return;let X=Q[1],Z=Q.slice(2).join("__");if(!X||!Z)return;return{serverName:X,mcpToolName:Z}}function Ax(J){let Q=Hn9(J).toLowerCase();if(!Q||Q===".")return;let X=Q.slice(1);if(X.length>On9)return"other";return X}function c46(J,Q){if(!J.includes(".")&&!Q)return;let X,Z=new Set;if(Q){let Y=Ax(Q);if(Y)Z.add(Y),X=Y}for(let Y of J.split(Vn9)){if(!Y)continue;let q=Y.split(Nn9);if(q.length<2)continue;let K=q[0],G=K.lastIndexOf("/"),z=G>=0?K.slice(G+1):K;if(!Ln9.has(z))continue;for(let W=1;W<q.length;W++){let H=q[W];if(H.charCodeAt(0)===45)continue;let B=Ax(H);if(B&&!Z.has(B))Z.add(B),X=X?X+","+B:B}}if(!X)return;return X}function wn9(){let J=hR();if(J){let G={agentId:J.agentId,parentSessionId:J.parentSessionId,agentType:J.agentType};if(J.agentType==="teammate")G.teamName=J.teamName;return G}let Q=eW(),X=wx(),Z=v7(),q=UZ()?"teammate":Q?"standalone":void 0;if(Q||q||X||Z)return{...Q?{agentId:Q}:{},...q?{agentType:q}:{},...X?{parentSessionId:X}:{},...Z?{teamName:Z}:{}};let K=y71();if(K)return{parentSessionId:K};return{}}function Mn9(){try{let J=process.memoryUsage(),Q=process.cpuUsage(),X=Date.now(),Z;if(Nk0&&Tj1){let Y=X-Tj1;if(Y>0){let q=Q.user-Nk0.user,K=Q.system-Nk0.system;Z=(q+K)/(Y*1000)*100}}return Nk0=Q,Tj1=X,{uptime:process.uptime(),rss:J.rss,heapTotal:J.heapTotal,heapUsed:J.heapUsed,external:J.external,arrayBuffers:J.arrayBuffers,constrainedMemory:process.constrainedMemory(),cpuUsage:Q,cpuPercent:Z}}catch{return}}async function d46(J={}){let Q=J.model?String(J.model):ZX(),X=typeof J.betas==="string"?J.betas:k$(Q).join(","),[Z,Y]=await Promise.all([Rn9(),Y51()]),q=Mn9();return{model:Q,sessionId:A1(),userType:process.env.USER_TYPE||"",...X.length>0?{betas:X}:{},envContext:Z,...process.env.GLOCK_ENTRYPOINT&&{entrypoint:process.env.GLOCK_ENTRYPOINT},...process.env.GLOCK_AGENT_SDK_VERSION&&{agentSdkVersion:process.env.GLOCK_AGENT_SDK_VERSION},isInteractive:String(EV()),clientType:m50(),...q&&{processMetrics:q},sweBenchRunId:process.env.SWE_BENCH_RUN_ID||"",sweBenchInstanceId:process.env.SWE_BENCH_INSTANCE_ID||"",sweBenchTaskId:process.env.SWE_BENCH_TASK_ID||"",...wn9(),...q9()&&{subscriptionType:"glock"},...{},...Y&&{rh:Y}}}var Fn9,On9=10,Ln9,Vn9,Nn9,An9,Rn9,Nk0=null,Tj1=null;var BG=I(()=>{IJ();WZ();e10();Q2();CJ();N1();t1();jj1();N9();uQ();k9();uR();i1();FZ();Fn9=new Set;Ln9=new Set(["rm","mv","cp","touch","mkdir","chmod","chown","cat","head","tail","sort","stat","diff","wc","grep","rg","sed"]),Vn9=/\s*(?:&&|\|\||[;|])\s*/,Nn9=/\s+/;An9=g1(()=>{let J="0.1.16".match(/^\d+\.\d+\.\d+(?:-[a-z]+)?/);return J?J[0]:void 0}),Rn9=g1(async()=>{let[J,Q,X,Z]=await Promise.all([k8.getPackageManagers(),k8.getRuntimes(),jH8(),IH8()]);return{platform:gt(),platformRaw:process.env.GLOCK_HOST_PLATFORM||process.platform,arch:k8.arch,nodeVersion:k8.nodeVersion,terminal:kR.terminal,packageManagers:J.join(","),runtimes:Q.join(","),isRunningWithBun:k8.isRunningWithBun(),isCi:W1(process.env.CI),isClaubbit:W1(process.env.CLAUBBIT),isGlockCodeRemote:W1(process.env.GLOCK_REMOTE),isLocalAgentMode:process.env.GLOCK_ENTRYPOINT==="local-agent",isConductor:k8.isConductor(),...process.env.GLOCK_REMOTE_ENVIRONMENT_TYPE&&{remoteEnvironmentType:process.env.GLOCK_REMOTE_ENVIRONMENT_TYPE},...{},...process.env.GLOCK_CONTAINER_ID&&{glockCodeContainerId:process.env.GLOCK_CONTAINER_ID},...process.env.GLOCK_REMOTE_SESSION_ID&&{glockCodeRemoteSessionId:process.env.GLOCK_REMOTE_SESSION_ID},...process.env.GLOCK_TAGS&&{tags:process.env.GLOCK_TAGS},isGithubAction:W1(process.env.GITHUB_ACTIONS),isGlockCodeAction:W1(process.env.GLOCK_ACTION),isGlockAiAuth:q9(),version:"0.1.16",versionBase:An9(),buildTime:"2026-04-05T08:39:18.323Z",deploymentEnvironment:k8.detectDeploymentEnvironment(),...W1(process.env.GITHUB_ACTIONS)&&{githubEventName:process.env.GITHUB_EVENT_NAME,githubActionsRunnerEnvironment:process.env.RUNNER_ENVIRONMENT,githubActionsRunnerOs:process.env.RUNNER_OS,githubActionRef:process.env.GITHUB_ACTION_PATH?.includes("glock-action/")?process.env.GITHUB_ACTION_PATH.split("glock-action/")[1]:void 0},...K51()&&{wslVersion:K51()},...X??{},...Z.length>0?{vcs:Z.join(",")}:{}}})});import{mkdir as Dn9,writeFile as $n9}from"fs/promises";import{join as Cj1}from"path";function i46(J,Q){if(!Number.isFinite(Q))return Q;let Z=Y8(In9,{})?.[J];if(typeof Z==="number"&&Number.isFinite(Z)&&Z>0)return Z;return Math.min(Q,T46)}function yn9(){return Cj1(Z5(j8()),A1())}function Rx(){return Cj1(yn9(),vj1)}function uH0(J,Q){let X=Q?"json":"txt";return Cj1(Rx(),`${J}.${X}`)}async function Sd(){try{await Dn9(Rx(),{recursive:!0})}catch{}}async function wk0(J,Q){let X=Array.isArray(J);if(X){if(J.some((z)=>z.type!=="text"))return{error:"Cannot persist tool results containing non-text content"}}await Sd();let Z=uH0(Q,X),Y=X?l0(J,null,2):J;try{await $n9(Z,Y,{encoding:"utf-8",flag:"wx"}),b(`Persisted tool result to ${Z} (${wJ(Y.length)})`)}catch(G){if(c8(G)!=="EEXIST")return H0(R8(G)),{error:hn9(R8(G))}}let{preview:q,hasMore:K}=gH0(Y,J80);return{filepath:Z,originalSize:Y.length,isJson:X,preview:q,hasMore:K}}function Q80(J){let Q=`${l46}
|
|
696
|
+
`.trim(),q=await r8("powershell.exe",["-NoProfile","-Command",Y],{timeout:3000});if(q.code!==0||!q.stdout?.trim())return[];return q.stdout.split("\x00").filter(Boolean)}let X=`currentpid=${String(J)}; for i in $(seq 1 ${Q}); do cmd=$(ps -o command= -p $currentpid 2>/dev/null); if [ -n "$cmd" ]; then printf '%s\\0' "$cmd"; fi; ppid=$(ps -o ppid= -p $currentpid 2>/dev/null | tr -d ' '); if [ -z "$ppid" ] || [ "$ppid" = "0" ] || [ "$ppid" = "1" ]; then break; fi; currentpid=$ppid; done`,Z=await r8("sh",["-c",X],{timeout:3000});if(Z.code!==0||!Z.stdout?.trim())return[];return Z.stdout.split("\x00").filter(Boolean)}var t10=I(()=>{T9()});import{stat as si9}from"fs/promises";function ei9(){return process.platform==="linux"&&W1(process.env.GLOCK_BUBBLEWRAP)}function Jn9(){if(process.platform!=="linux")return!1;return Dj1??!1}async function k46(){if(fd!==void 0)return fd;if(process.platform==="darwin")return fd=null,null;try{let J=await x46(process.pid,10);for(let Q of J){let X=Q.toLowerCase();for(let Z of xW1)if(X.includes(Z))return fd=Z,Z}}catch{}return fd=null,null}async function Qn9(){if(process.env.TERMINAL_EMULATOR==="JetBrains-JediTerm"){if(k8.platform!=="darwin")return await k46()||"pycharm"}return k8.terminal}function Xn9(){if(process.env.TERMINAL_EMULATOR==="JetBrains-JediTerm"){if(k8.platform!=="darwin"){if(fd!==void 0)return fd||"pycharm";return"pycharm"}}return k8.terminal}async function $j1(){if(process.env.TERMINAL_EMULATOR==="JetBrains-JediTerm")await k46()}var ti9,Dj1=null,fd,kR;var e10=I(()=>{IJ();WZ();t1();T9();t10();ti9=g1(async()=>{if(process.platform!=="linux")return!1;let{code:J}=await Z8("test",["-f","/.dockerenv"]);return J===0});if(process.platform==="linux"){let J=process.arch==="x64"?"x86_64":"aarch64";si9(`/lib/libc.musl-${J}.so.1`).then(()=>{Dj1=!0},()=>{Dj1=!1})}kR={...k8,terminal:Xn9(),getIsDocker:ti9,getIsBubblewrapSandbox:ei9,isMuslEnvironment:Jn9,getTerminalWithJetBrainsDetectionAsync:Qn9,initJetBrainsDetection:$j1}});function Zn9(J){try{let Q=new URL(J);return Q.search="",Q.toString().replace(/\/$/,"")}catch{return}}async function u46(){try{let J=await y8.get("https://api.getglock.dev/mcp-registry/v0/servers?version=latest&visibility=commercial",{timeout:5000}),Q=new Set;for(let X of J.data.servers)for(let Z of X.server.remotes??[]){let Y=Zn9(Z.url);if(Y)Q.add(Y)}h46=Q,b(`[mcp-registry] Loaded ${Q.size} official MCP URLs`)}catch(J){b(`Failed to fetch MCP registry: ${Q1(J)}`,{level:"error"})}}function g46(J){return h46?.has(J)??!1}var h46=void 0;var jj1=I(()=>{JX();Z1();T1()});function Yn9(){return process.argv.includes("--agent-teams")}function p6(){if(process.env.USER_TYPE==="ant")return!0;if(!W1(process.env.GLOCK_EXPERIMENTAL_AGENT_TEAMS)&&!Yn9())return!1;if(!Y8("jarvis_api_error",!0))return!1;return!0}var lZ=I(()=>{t1()});import{AsyncLocalStorage as qn9}from"async_hooks";function hR(){return m46.getStore()}function qj(J,Q){return m46.run(J,Q)}function Kn9(J){return J?.agentType==="subagent"}function p46(){let J=hR();if(!Kn9(J)||!J.subagentName)return;return J.isBuiltIn?J.subagentName:"user-defined"}function Ij1(){let J=hR();if(!J?.invokingRequestId||J.invocationEmitted)return;return J.invocationEmitted=!0,{invokingRequestId:J.invokingRequestId,invocationKind:J.invocationKind}}var m46;var uR=I(()=>{lZ();m46=new qn9});import{AsyncLocalStorage as Gn9}from"async_hooks";function EN(){return yj1.getStore()}function Ok0(J,Q){return yj1.run(J,Q)}function p3(){return yj1.getStore()!==void 0}function Lk0(J){return{...J,isInProcess:!0}}var yj1;var lO=I(()=>{yj1=new Gn9});var Ej1={};X8(Ej1,{waitForTeammatesToBecomeIdle:()=>Pj1,setDynamicTeamContext:()=>zn9,runWithTeammateContext:()=>Ok0,isTeammate:()=>UZ,isTeamLead:()=>TB,isPlanModeRequired:()=>hH0,isInProcessTeammate:()=>p3,hasWorkingInProcessTeammates:()=>bj1,hasActiveInProcessTeammates:()=>Vk0,getTeammateContext:()=>EN,getTeammateColor:()=>Hq,getTeamName:()=>v7,getParentSessionId:()=>wx,getDynamicTeamContext:()=>kH0,getAgentName:()=>dQ,getAgentId:()=>eW,createTeammateContext:()=>Lk0,clearDynamicTeamContext:()=>Wn9});function wx(){let J=EN();if(J)return J.parentSessionId;return iO?.parentSessionId}function zn9(J){iO=J}function Wn9(){iO=null}function kH0(){return iO}function eW(){let J=EN();if(J)return J.agentId;return iO?.agentId}function dQ(){let J=EN();if(J)return J.agentName;return iO?.agentName}function v7(J){let Q=EN();if(Q)return Q.teamName;if(iO?.teamName)return iO.teamName;return J?.teamName}function UZ(){if(EN())return!0;return!!(iO?.agentId&&iO?.teamName)}function Hq(){let J=EN();if(J)return J.color;return iO?.color}function hH0(){let J=EN();if(J)return J.planModeRequired;if(iO!==null)return iO.planModeRequired;return W1(process.env.GLOCK_PLAN_MODE_REQUIRED)}function TB(J){if(!J?.leadAgentId)return!1;let Q=eW(),X=J.leadAgentId;if(Q===X)return!0;if(!Q)return!0;return!1}function Vk0(J){for(let Q of Object.values(J.tasks))if(Q.type==="in_process_teammate"&&Q.status==="running")return!0;return!1}function bj1(J){for(let Q of Object.values(J.tasks))if(Q.type==="in_process_teammate"&&Q.status==="running"&&!Q.isIdle)return!0;return!1}function Pj1(J,Q){let X=[];for(let[Z,Y]of Object.entries(Q.tasks))if(Y.type==="in_process_teammate"&&Y.status==="running"&&!Y.isIdle)X.push(Z);if(X.length===0)return Promise.resolve();return new Promise((Z)=>{let Y=X.length,q=()=>{if(Y--,Y===0)Z()};J((K)=>{let G={...K.tasks};for(let z of X){let W=G[z];if(W&&W.type==="in_process_teammate")if(W.isIdle)q();else G[z]={...W,onIdleCallbacks:[...W.onIdleCallbacks??[],q]}}return{...K,tasks:G}})})}var iO=null;var FZ=I(()=>{lO();t1();lO()});import{extname as Hn9}from"path";function w9(J){if(J.startsWith("mcp__"))return"mcp_tool";return J}function Un9(J,Q){if(process.env.GLOCK_ENTRYPOINT==="local-agent")return!0;if(J==="glockai-proxy")return!0;if(Q&&g46(Q))return!0;return!1}function Kj(J,Q,X){let Z=_n9(J);if(!Z)return{};if(!Fn9.has(Z.serverName)&&!Un9(Q,X))return{};return{mcpServerName:Z.serverName,mcpToolName:Z.mcpToolName}}function _n9(J){if(!J.startsWith("mcp__"))return;let Q=J.split("__");if(Q.length<3)return;let X=Q[1],Z=Q.slice(2).join("__");if(!X||!Z)return;return{serverName:X,mcpToolName:Z}}function Ax(J){let Q=Hn9(J).toLowerCase();if(!Q||Q===".")return;let X=Q.slice(1);if(X.length>On9)return"other";return X}function c46(J,Q){if(!J.includes(".")&&!Q)return;let X,Z=new Set;if(Q){let Y=Ax(Q);if(Y)Z.add(Y),X=Y}for(let Y of J.split(Vn9)){if(!Y)continue;let q=Y.split(Nn9);if(q.length<2)continue;let K=q[0],G=K.lastIndexOf("/"),z=G>=0?K.slice(G+1):K;if(!Ln9.has(z))continue;for(let W=1;W<q.length;W++){let H=q[W];if(H.charCodeAt(0)===45)continue;let B=Ax(H);if(B&&!Z.has(B))Z.add(B),X=X?X+","+B:B}}if(!X)return;return X}function wn9(){let J=hR();if(J){let G={agentId:J.agentId,parentSessionId:J.parentSessionId,agentType:J.agentType};if(J.agentType==="teammate")G.teamName=J.teamName;return G}let Q=eW(),X=wx(),Z=v7(),q=UZ()?"teammate":Q?"standalone":void 0;if(Q||q||X||Z)return{...Q?{agentId:Q}:{},...q?{agentType:q}:{},...X?{parentSessionId:X}:{},...Z?{teamName:Z}:{}};let K=y71();if(K)return{parentSessionId:K};return{}}function Mn9(){try{let J=process.memoryUsage(),Q=process.cpuUsage(),X=Date.now(),Z;if(Nk0&&Tj1){let Y=X-Tj1;if(Y>0){let q=Q.user-Nk0.user,K=Q.system-Nk0.system;Z=(q+K)/(Y*1000)*100}}return Nk0=Q,Tj1=X,{uptime:process.uptime(),rss:J.rss,heapTotal:J.heapTotal,heapUsed:J.heapUsed,external:J.external,arrayBuffers:J.arrayBuffers,constrainedMemory:process.constrainedMemory(),cpuUsage:Q,cpuPercent:Z}}catch{return}}async function d46(J={}){let Q=J.model?String(J.model):ZX(),X=typeof J.betas==="string"?J.betas:k$(Q).join(","),[Z,Y]=await Promise.all([Rn9(),Y51()]),q=Mn9();return{model:Q,sessionId:A1(),userType:process.env.USER_TYPE||"",...X.length>0?{betas:X}:{},envContext:Z,...process.env.GLOCK_ENTRYPOINT&&{entrypoint:process.env.GLOCK_ENTRYPOINT},...process.env.GLOCK_AGENT_SDK_VERSION&&{agentSdkVersion:process.env.GLOCK_AGENT_SDK_VERSION},isInteractive:String(EV()),clientType:m50(),...q&&{processMetrics:q},sweBenchRunId:process.env.SWE_BENCH_RUN_ID||"",sweBenchInstanceId:process.env.SWE_BENCH_INSTANCE_ID||"",sweBenchTaskId:process.env.SWE_BENCH_TASK_ID||"",...wn9(),...q9()&&{subscriptionType:"glock"},...{},...Y&&{rh:Y}}}var Fn9,On9=10,Ln9,Vn9,Nn9,An9,Rn9,Nk0=null,Tj1=null;var BG=I(()=>{IJ();WZ();e10();Q2();CJ();N1();t1();jj1();N9();uQ();k9();uR();i1();FZ();Fn9=new Set;Ln9=new Set(["rm","mv","cp","touch","mkdir","chmod","chown","cat","head","tail","sort","stat","diff","wc","grep","rg","sed"]),Vn9=/\s*(?:&&|\|\||[;|])\s*/,Nn9=/\s+/;An9=g1(()=>{let J="0.1.17".match(/^\d+\.\d+\.\d+(?:-[a-z]+)?/);return J?J[0]:void 0}),Rn9=g1(async()=>{let[J,Q,X,Z]=await Promise.all([k8.getPackageManagers(),k8.getRuntimes(),jH8(),IH8()]);return{platform:gt(),platformRaw:process.env.GLOCK_HOST_PLATFORM||process.platform,arch:k8.arch,nodeVersion:k8.nodeVersion,terminal:kR.terminal,packageManagers:J.join(","),runtimes:Q.join(","),isRunningWithBun:k8.isRunningWithBun(),isCi:W1(process.env.CI),isClaubbit:W1(process.env.CLAUBBIT),isGlockCodeRemote:W1(process.env.GLOCK_REMOTE),isLocalAgentMode:process.env.GLOCK_ENTRYPOINT==="local-agent",isConductor:k8.isConductor(),...process.env.GLOCK_REMOTE_ENVIRONMENT_TYPE&&{remoteEnvironmentType:process.env.GLOCK_REMOTE_ENVIRONMENT_TYPE},...{},...process.env.GLOCK_CONTAINER_ID&&{glockCodeContainerId:process.env.GLOCK_CONTAINER_ID},...process.env.GLOCK_REMOTE_SESSION_ID&&{glockCodeRemoteSessionId:process.env.GLOCK_REMOTE_SESSION_ID},...process.env.GLOCK_TAGS&&{tags:process.env.GLOCK_TAGS},isGithubAction:W1(process.env.GITHUB_ACTIONS),isGlockCodeAction:W1(process.env.GLOCK_ACTION),isGlockAiAuth:q9(),version:"0.1.17",versionBase:An9(),buildTime:"2026-04-05T08:41:33.635Z",deploymentEnvironment:k8.detectDeploymentEnvironment(),...W1(process.env.GITHUB_ACTIONS)&&{githubEventName:process.env.GITHUB_EVENT_NAME,githubActionsRunnerEnvironment:process.env.RUNNER_ENVIRONMENT,githubActionsRunnerOs:process.env.RUNNER_OS,githubActionRef:process.env.GITHUB_ACTION_PATH?.includes("glock-action/")?process.env.GITHUB_ACTION_PATH.split("glock-action/")[1]:void 0},...K51()&&{wslVersion:K51()},...X??{},...Z.length>0?{vcs:Z.join(",")}:{}}})});import{mkdir as Dn9,writeFile as $n9}from"fs/promises";import{join as Cj1}from"path";function i46(J,Q){if(!Number.isFinite(Q))return Q;let Z=Y8(In9,{})?.[J];if(typeof Z==="number"&&Number.isFinite(Z)&&Z>0)return Z;return Math.min(Q,T46)}function yn9(){return Cj1(Z5(j8()),A1())}function Rx(){return Cj1(yn9(),vj1)}function uH0(J,Q){let X=Q?"json":"txt";return Cj1(Rx(),`${J}.${X}`)}async function Sd(){try{await Dn9(Rx(),{recursive:!0})}catch{}}async function wk0(J,Q){let X=Array.isArray(J);if(X){if(J.some((z)=>z.type!=="text"))return{error:"Cannot persist tool results containing non-text content"}}await Sd();let Z=uH0(Q,X),Y=X?l0(J,null,2):J;try{await $n9(Z,Y,{encoding:"utf-8",flag:"wx"}),b(`Persisted tool result to ${Z} (${wJ(Y.length)})`)}catch(G){if(c8(G)!=="EEXIST")return H0(R8(G)),{error:hn9(R8(G))}}let{preview:q,hasMore:K}=gH0(Y,J80);return{filepath:Z,originalSize:Y.length,isJson:X,preview:q,hasMore:K}}function Q80(J){let Q=`${l46}
|
|
697
697
|
`;return Q+=`Output too large (${wJ(J.originalSize)}). Full output saved to: ${J.filepath}
|
|
698
698
|
|
|
699
699
|
`,Q+=`Preview (first ${wJ(J80)}):
|
|
@@ -701,7 +701,7 @@ ${z}`)))},[J]),X=PN.useCallback(({message:K,title:G,id:z})=>{J(u3(Sz(D5.KITTY,`i
|
|
|
701
701
|
...
|
|
702
702
|
`:`
|
|
703
703
|
`,Q+=jn9,Q}async function X80(J,Q,X){let Z=J.mapToolResultToToolResultBlockParam(Q,X);return r46(Z,J.name,i46(J.name,J.maxResultSizeChars))}async function n46(J,Q,X){return r46(J,Q,i46(Q,X))}function bn9(J){if(!J)return!0;if(typeof J==="string")return J.trim()==="";if(!Array.isArray(J))return!1;if(J.length===0)return!0;return J.every((Q)=>typeof Q==="object"&&("type"in Q)&&Q.type==="text"&&("text"in Q)&&(typeof Q.text!=="string"||Q.text.trim()===""))}async function r46(J,Q,X){let Z=J.content;if(bn9(Z))return l("jarvis_api_error",{toolName:w9(Q)}),{...J,content:`(${Q} completed with no output)`};if(!Z)return J;if(s46(Z))return J;let Y=t46(Z),q=X??C46;if(Y<=q)return J;let K=await wk0(Z,J.tool_use_id);if(Ak0(K))return J;let G=Q80(K);return l("jarvis_api_error",{toolName:w9(Q),originalSizeBytes:K.originalSize,persistedSizeBytes:G.length,estimatedOriginalTokens:Math.ceil(K.originalSize/xH0),estimatedPersistedTokens:Math.ceil(G.length/xH0),thresholdUsed:q}),{...J,content:G}}function gH0(J,Q){if(J.length<=Q)return{preview:J,hasMore:!1};let Z=J.slice(0,Q).lastIndexOf(`
|
|
704
|
-
`),Y=Z>Q*0.5?Z:Q;return{preview:J.slice(0,Y),hasMore:!0}}function Ak0(J){return"error"in J}function mH0(){return{seenIds:new Set,replacements:new Map}}function a46(J){return{seenIds:new Set(J.seenIds),replacements:new Map(J.replacements)}}function Pn9(){let J=Y8("jarvis_api_error",null);if(typeof J==="number"&&Number.isFinite(J)&&J>0)return J;return v46}function o46(J,Q){if(!Y8("jarvis_api_error",!1))return;if(J)return Rk0(J,Q??[]);return mH0()}function En9(J){return typeof J==="string"&&J.startsWith(l46)}function s46(J){return Array.isArray(J)&&J.some((Q)=>typeof Q==="object"&&("type"in Q)&&Q.type==="image")}function t46(J){if(typeof J==="string")return J.length;return J.reduce((Q,X)=>Q+(X.type==="text"?X.text.length:0),0)}function Tn9(J){let Q=new Map;for(let X of J){if(X.type!=="assistant")continue;let Z=X.message.content;if(!Array.isArray(Z))continue;for(let Y of Z)if(Y.type==="tool_use")Q.set(Y.id,Y.name)}return Q}function Cn9(J){if(J.type!=="user"||!Array.isArray(J.message.content))return[];return J.message.content.flatMap((Q)=>{if(Q.type!=="tool_result"||!Q.content)return[];if(En9(Q.content))return[];if(s46(Q.content))return[];return[{toolUseId:Q.tool_use_id,content:Q.content,size:t46(Q.content)}]})}function e46(J){let Q=[],X=[],Z=()=>{if(X.length>0)Q.push(X);X=[]},Y=new Set;for(let q of J)if(q.type==="user")X.push(...Cn9(q));else if(q.type==="assistant"){if(!Y.has(q.message.id))Z(),Y.add(q.message.id)}return Z(),Q}function vn9(J,Q){return J.reduce((X,Z)=>{let Y=Q.replacements.get(Z.toolUseId);if(Y!==void 0)X.mustReapply.push({...Z,replacement:Y});else if(Q.seenIds.has(Z.toolUseId))X.frozen.push(Z);else X.fresh.push(Z);return X},{mustReapply:[],frozen:[],fresh:[]})}function fn9(J,Q,X){let Z=[...J].sort((K,G)=>G.size-K.size),Y=[],q=Q+J.reduce((K,G)=>K+G.size,0);for(let K of Z){if(q<=X)break;Y.push(K),q-=K.size}return Y}function Sn9(J,Q){return J.map((X)=>{if(X.type!=="user"||!Array.isArray(X.message.content))return X;let Z=X.message.content;if(!Z.some((q)=>q.type==="tool_result"&&Q.has(q.tool_use_id)))return X;return{...X,message:{...X.message,content:Z.map((q)=>{if(q.type!=="tool_result")return q;let K=Q.get(q.tool_use_id);return K===void 0?q:{...q,content:K}})}}})}async function xn9(J){let Q=await wk0(J.content,J.toolUseId);if(Ak0(Q))return null;return{content:Q80(Q),originalSize:Q.originalSize}}async function kn9(J,Q,X=new Set){let Z=e46(J),Y=X.size>0?Tn9(J):void 0,q=(_)=>Y!==void 0&&X.has(Y.get(_)??""),K=Pn9(),G=new Map,z=[],W=0,H=0;for(let _ of Z){let{mustReapply:O,frozen:L,fresh:N}=vn9(_,Q);if(O.forEach((E)=>G.set(E.toolUseId,E.replacement)),W+=O.length,N.length===0){_.forEach((E)=>Q.seenIds.add(E.toolUseId));continue}N.filter((E)=>q(E.toolUseId)).forEach((E)=>Q.seenIds.add(E.toolUseId));let R=N.filter((E)=>!q(E.toolUseId)),D=L.reduce((E,C)=>E+C.size,0),$=R.reduce((E,C)=>E+C.size,0),y=D+$>K?fn9(R,D,K):[],v=new Set(y.map((E)=>E.toolUseId));if(_.filter((E)=>!v.has(E.toolUseId)).forEach((E)=>Q.seenIds.add(E.toolUseId)),y.length===0)continue;H++,z.push(...y)}if(G.size===0&&z.length===0)return{messages:J,newlyReplaced:[]};let B=await Promise.all(z.map(async(_)=>[_,await xn9(_)])),U=[],F=0;for(let[_,O]of B){if(Q.seenIds.add(_.toolUseId),O===null)continue;F+=_.size,G.set(_.toolUseId,O.content),Q.replacements.set(_.toolUseId,O.content),U.push({kind:"tool-result",toolUseId:_.toolUseId,replacement:O.content}),l("jarvis_api_error",{originalSizeBytes:O.originalSize,persistedSizeBytes:O.content.length,estimatedOriginalTokens:Math.ceil(O.originalSize/xH0),estimatedPersistedTokens:Math.ceil(O.content.length/xH0)})}if(G.size===0)return{messages:J,newlyReplaced:[]};if(U.length>0)b(`Per-message budget: persisted ${U.length} tool results across ${H} over-budget message(s), shed ~${wJ(F)}, ${W} re-applied`),l("jarvis_api_error",{resultsPersisted:U.length,messagesOverBudget:H,replacedSizeBytes:F,reapplied:W});return{messages:Sn9(J,G),newlyReplaced:U}}async function JY6(J,Q,X,Z){if(!Q)return J;let Y=await kn9(J,Q,Z);if(Y.newlyReplaced.length>0)X?.(Y.newlyReplaced);return Y.messages}function Rk0(J,Q,X){let Z=mH0(),Y=new Set(e46(J).flat().map((q)=>q.toolUseId));for(let q of Y)Z.seenIds.add(q);for(let q of Q)if(q.kind==="tool-result"&&Y.has(q.toolUseId))Z.replacements.set(q.toolUseId,q.replacement);if(X){for(let[q,K]of X)if(Y.has(q)&&!Z.replacements.has(q))Z.replacements.set(q,K)}return Z}function QY6(J,Q,X){if(!J)return;return Rk0(Q,X,J.replacements)}function hn9(J){let Q=J;if(Q.code)switch(Q.code){case"ENOENT":return`Directory not found: ${Q.path??"unknown path"}`;case"EACCES":return`Permission denied: ${Q.path??"unknown path"}`;case"ENOSPC":return"No space left on device";case"EROFS":return"Read-only file system";case"EMFILE":return"Too many open files";case"EEXIST":return`File already exists: ${Q.path??"unknown path"}`;default:return`${Q.code}: ${Q.message}`}return J.message}var vj1="tool-results",l46="<persisted-output>",jn9="</persisted-output>",In9="jarvis_api_error",J80=2000;var CB=I(()=>{N1();D1();BG();Z1();T1();A6();M1();gJ();i1()});function cH0(){return O8("policySettings")?.allowManagedPermissionRulesOnly===!0}function Gj(){return!cH0()}function gn9(J){let Q=wK(J);if(!Q)return null;try{let{resolvedPath:X}=k4(Y1(),Q),Z=HB(X);if(Z.trim()==="")return{};let Y=e7(Z,!1);return Y&&typeof Y==="object"?Y:null}catch{return null}}function mn9(J,Q){if(!J||!J.permissions)return[];let{permissions:X}=J,Z=[];for(let Y of un9){let q=X[Y];if(q)for(let K of q)Z.push({source:Q,ruleBehavior:Y,ruleValue:A5(K)})}return Z}function Mk0(){if(cH0())return pH0("policySettings");let J=[];for(let Q of fb())J.push(...pH0(Q));return J}function pH0(J){let Q=O8(J);return mn9(Q,J)}function XY6(J){if(!pn9.includes(J.source))return!1;let Q=T7(J.ruleValue),X=O8(J.source);if(!X||!X.permissions)return!1;let Z=X.permissions[J.ruleBehavior];if(!Z)return!1;let Y=(q)=>T7(A5(q));if(!Z.some((q)=>Y(q)===Q))return!1;try{let q={...X,permissions:{...X.permissions,[J.ruleBehavior]:Z.filter((G)=>Y(G)!==Q)}},{error:K}=y6(J.source,q);if(K)return!1;return!0}catch(q){return H0(q),!1}}function cn9(){return{permissions:{}}}function ZY6({ruleValues:J,ruleBehavior:Q},X){if(cH0())return!1;if(J.length<1)return!0;let Z=J.map(T7),Y=O8(X)||gn9(X)||cn9();try{let q=Y.permissions||{},K=q[Q]||[],G=new Set(K.map((B)=>T7(A5(B)))),z=Z.filter((B)=>!G.has(B));if(z.length===0)return!0;let W={...Y,permissions:{...q,[Q]:[...K,...z]}},H=y6(X,W);if(H.error)throw H.error;return!0}catch(q){return H0(q),!1}}var un9,pn9;var gR=I(()=>{OO();H6();s5();M1();eY();g8();FB();un9=["allow","deny","ask"];pn9=["userSettings","projectSettings","localSettings"]});import{posix as dn9}from"path";function nO(J){if(!J)return[];return J.flatMap((Q)=>{switch(Q.type){case"addRules":return Q.rules;default:return[]}})}function YY6(J){return nO(J).length>0}function iZ(J,Q){switch(Q.type){case"setMode":return b(`Applying permission update: Setting mode to '${Q.mode}'`),{...J,mode:Q.mode};case"addRules":{let X=Q.rules.map((Y)=>T7(Y));b(`Applying permission update: Adding ${Q.rules.length} ${Q.behavior} rule(s) to destination '${Q.destination}': ${l0(X)}`);let Z=Q.behavior==="allow"?"alwaysAllowRules":Q.behavior==="deny"?"alwaysDenyRules":"alwaysAskRules";return{...J,[Z]:{...J[Z],[Q.destination]:[...J[Z][Q.destination]||[],...X]}}}case"replaceRules":{let X=Q.rules.map((Y)=>T7(Y));b(`Replacing all ${Q.behavior} rules for destination '${Q.destination}' with ${Q.rules.length} rule(s): ${l0(X)}`);let Z=Q.behavior==="allow"?"alwaysAllowRules":Q.behavior==="deny"?"alwaysDenyRules":"alwaysAskRules";return{...J,[Z]:{...J[Z],[Q.destination]:X}}}case"addDirectories":{b(`Applying permission update: Adding ${Q.directories.length} director${Q.directories.length===1?"y":"ies"} with destination '${Q.destination}': ${l0(Q.directories)}`);let X=new Map(J.additionalWorkingDirectories);for(let Z of Q.directories)X.set(Z,{path:Z,source:Q.destination});return{...J,additionalWorkingDirectories:X}}case"removeRules":{let X=Q.rules.map((G)=>T7(G));b(`Applying permission update: Removing ${Q.rules.length} ${Q.behavior} rule(s) from source '${Q.destination}': ${l0(X)}`);let Z=Q.behavior==="allow"?"alwaysAllowRules":Q.behavior==="deny"?"alwaysDenyRules":"alwaysAskRules",Y=J[Z][Q.destination]||[],q=new Set(X),K=Y.filter((G)=>!q.has(G));return{...J,[Z]:{...J[Z],[Q.destination]:K}}}case"removeDirectories":{b(`Applying permission update: Removing ${Q.directories.length} director${Q.directories.length===1?"y":"ies"}: ${l0(Q.directories)}`);let X=new Map(J.additionalWorkingDirectories);for(let Z of Q.directories)X.delete(Z);return{...J,additionalWorkingDirectories:X}}default:return J}}function bF(J,Q){let X=J;for(let Z of Q)X=iZ(X,Z);return X}function fj1(J){return J==="localSettings"||J==="userSettings"||J==="projectSettings"}function zj(J){if(!fj1(J.destination))return;switch(b(`Persisting permission update: ${J.type} to source '${J.destination}'`),J.type){case"addRules":{b(`Persisting ${J.rules.length} ${J.behavior} rule(s) to ${J.destination}`),ZY6({ruleValues:J.rules,ruleBehavior:J.behavior},J.destination);break}case"addDirectories":{b(`Persisting ${J.directories.length} director${J.directories.length===1?"y":"ies"} to ${J.destination}`);let X=O8(J.destination)?.permissions?.additionalDirectories||[],Z=J.directories.filter((Y)=>!X.includes(Y));if(Z.length>0){let Y=[...X,...Z];y6(J.destination,{permissions:{additionalDirectories:Y}})}break}case"removeRules":{b(`Removing ${J.rules.length} ${J.behavior} rule(s) from ${J.destination}`);let Z=(O8(J.destination)?.permissions||{})[J.behavior]||[],Y=new Set(J.rules.map(T7)),q=Z.filter((K)=>{let G=T7(A5(K));return!Y.has(G)});y6(J.destination,{permissions:{[J.behavior]:q}});break}case"removeDirectories":{b(`Removing ${J.directories.length} director${J.directories.length===1?"y":"ies"} from ${J.destination}`);let X=O8(J.destination)?.permissions?.additionalDirectories||[],Z=new Set(J.directories),Y=X.filter((q)=>!Z.has(q));y6(J.destination,{permissions:{additionalDirectories:Y}});break}case"setMode":{b(`Persisting mode '${J.mode}' to ${J.destination}`),y6(J.destination,{permissions:{defaultMode:J.mode}});break}case"replaceRules":{b(`Replacing all ${J.behavior} rules in ${J.destination} with ${J.rules.length} rule(s)`);let Q=J.rules.map(T7);y6(J.destination,{permissions:{[J.behavior]:Q}});break}}}function mR(J){for(let Q of J)zj(Q)}function xd(J,Q="session"){let X=qY6(J);if(X==="/")return;return{type:"addRules",rules:[{toolName:"Read",ruleContent:dn9.isAbsolute(X)?`/${X}/**`:`${X}/**`}],behavior:"allow",destination:Q}}var lq=I(()=>{Z1();g8();i1();vX();FB();gR()});import{AsyncLocalStorage as ln9}from"async_hooks";function Dk0(){return KY6.getStore()?.workload}function $k0(J,Q){return KY6.run({workload:J},Q)}var KY6;var Z80=I(()=>{KY6=new ln9});function Ik0(J){if(J?.isNonInteractive){if(J.hasAppendSystemPrompt)return zY6;return WY6}return GY6}function nn9(){if(rY(process.env.GLOCK_ATTRIBUTION_HEADER))return!1;return Y8("jarvis_api_error",!0)}function yk0(J){if(!nn9())return"";let Q=`0.1.16.${J}`,X=process.env.GLOCK_ENTRYPOINT??"unknown",Z="",Y=Dk0(),q=Y?` cc_workload=${Y};`:"",K=`x-glock-billing-header: cc_version=${Q}; cc_entrypoint=${X};${Z}${q}`;return b(`attribution header ${K}`),K}var GY6="You are Glock, a multi-model AI coding assistant with council-based code review.",zY6="You are Glock, a multi-model AI coding assistant with council-based code review, running within the Glock Agent SDK.",WY6="You are a Glock agent, built on the Glock Agent SDK.",in9,jk0;var bk0=I(()=>{Z1();t1();Z80();in9=[GY6,zY6,WY6],jk0=new Set(in9)});function Mx(J){return J.filter((Q)=>Q.data?.type!=="hook_progress")}function VQ(J,Q){return J.name===Q||(J.aliases?.includes(Q)??!1)}function h9(J,Q){return J.find((X)=>VQ(X,Q))}function _J(J){return{...rn9,userFacingName:()=>J.name,...J}}var JH=()=>({mode:"default",additionalWorkingDirectories:new Map,alwaysAllowRules:{},alwaysDenyRules:{},alwaysAskRules:{},isBypassPermissionsModeAvailable:!1}),rn9;var s6=I(()=>{rn9={isEnabled:()=>!0,isConcurrencySafe:(J)=>!1,isReadOnly:(J)=>!1,isDestructive:(J)=>!1,checkPermissions:(J,Q)=>Promise.resolve({behavior:"allow",updatedInput:J}),toAutoClassifierInput:(J)=>"",userFacingName:(J)=>""}});var OY6=o((SiX,_Y6)=>{var FY6=b1("child_process"),HY6=FY6.spawn,an9=FY6.exec;_Y6.exports=function(J,Q,X){if(typeof Q==="function"&&X===void 0)X=Q,Q=void 0;if(J=parseInt(J),Number.isNaN(J))if(X)return X(Error("pid must be a number"));else throw Error("pid must be a number");var Z={},Y={};switch(Z[J]=[],Y[J]=1,process.platform){case"win32":an9("taskkill /pid "+J+" /T /F",X);break;case"darwin":Sj1(J,Z,Y,function(q){return HY6("pgrep",["-P",q])},function(){BY6(Z,Q,X)});break;default:Sj1(J,Z,Y,function(q){return HY6("ps",["-o","pid","--no-headers","--ppid",q])},function(){BY6(Z,Q,X)});break}};function BY6(J,Q,X){var Z={};try{Object.keys(J).forEach(function(Y){if(J[Y].forEach(function(q){if(!Z[q])UY6(q,Q),Z[q]=1}),!Z[Y])UY6(Y,Q),Z[Y]=1})}catch(Y){if(X)return X(Y);else throw Y}if(X)return X()}function UY6(J,Q){try{process.kill(parseInt(J,10),Q)}catch(X){if(X.code!=="ESRCH")throw X}}function Sj1(J,Q,X,Z,Y){var q=Z(J),K="";q.stdout.on("data",function(W){var W=W.toString("ascii");K+=W});var G=function(z){if(delete X[J],z!=0){if(Object.keys(X).length==0)Y();return}K.match(/\d+/g).forEach(function(W){W=parseInt(W,10),Q[J].push(W),Q[W]=[],X[W]=1,Sj1(W,Q,X,Z,Y)})};q.on("close",G)}});import{constants as kd}from"fs";import{mkdir as on9,open as NY6,stat as hiX,symlink as LY6,unlink as sn9}from"fs/promises";import{join as wY6}from"path";function Y80(){if(xj1===void 0)xj1=wY6(fk0(),A1(),"tasks");return xj1}async function hj1(){await on9(Y80(),{recursive:!0})}function jX(J){return wY6(Y80(),`${J}.output`)}function Tk0(J){return VY6.add(J),J.finally(()=>VY6.delete(J)).catch(()=>{}),J}class Ck0{#Q;#X=null;#J=[];#q=0;#Y=!1;#K=null;#z=null;constructor(J){this.#Q=jX(J)}append(J){if(this.#Y)return;if(this.#q+=J.length,this.#q>Ek0)this.#Y=!0,this.#J.push(`
|
|
704
|
+
`),Y=Z>Q*0.5?Z:Q;return{preview:J.slice(0,Y),hasMore:!0}}function Ak0(J){return"error"in J}function mH0(){return{seenIds:new Set,replacements:new Map}}function a46(J){return{seenIds:new Set(J.seenIds),replacements:new Map(J.replacements)}}function Pn9(){let J=Y8("jarvis_api_error",null);if(typeof J==="number"&&Number.isFinite(J)&&J>0)return J;return v46}function o46(J,Q){if(!Y8("jarvis_api_error",!1))return;if(J)return Rk0(J,Q??[]);return mH0()}function En9(J){return typeof J==="string"&&J.startsWith(l46)}function s46(J){return Array.isArray(J)&&J.some((Q)=>typeof Q==="object"&&("type"in Q)&&Q.type==="image")}function t46(J){if(typeof J==="string")return J.length;return J.reduce((Q,X)=>Q+(X.type==="text"?X.text.length:0),0)}function Tn9(J){let Q=new Map;for(let X of J){if(X.type!=="assistant")continue;let Z=X.message.content;if(!Array.isArray(Z))continue;for(let Y of Z)if(Y.type==="tool_use")Q.set(Y.id,Y.name)}return Q}function Cn9(J){if(J.type!=="user"||!Array.isArray(J.message.content))return[];return J.message.content.flatMap((Q)=>{if(Q.type!=="tool_result"||!Q.content)return[];if(En9(Q.content))return[];if(s46(Q.content))return[];return[{toolUseId:Q.tool_use_id,content:Q.content,size:t46(Q.content)}]})}function e46(J){let Q=[],X=[],Z=()=>{if(X.length>0)Q.push(X);X=[]},Y=new Set;for(let q of J)if(q.type==="user")X.push(...Cn9(q));else if(q.type==="assistant"){if(!Y.has(q.message.id))Z(),Y.add(q.message.id)}return Z(),Q}function vn9(J,Q){return J.reduce((X,Z)=>{let Y=Q.replacements.get(Z.toolUseId);if(Y!==void 0)X.mustReapply.push({...Z,replacement:Y});else if(Q.seenIds.has(Z.toolUseId))X.frozen.push(Z);else X.fresh.push(Z);return X},{mustReapply:[],frozen:[],fresh:[]})}function fn9(J,Q,X){let Z=[...J].sort((K,G)=>G.size-K.size),Y=[],q=Q+J.reduce((K,G)=>K+G.size,0);for(let K of Z){if(q<=X)break;Y.push(K),q-=K.size}return Y}function Sn9(J,Q){return J.map((X)=>{if(X.type!=="user"||!Array.isArray(X.message.content))return X;let Z=X.message.content;if(!Z.some((q)=>q.type==="tool_result"&&Q.has(q.tool_use_id)))return X;return{...X,message:{...X.message,content:Z.map((q)=>{if(q.type!=="tool_result")return q;let K=Q.get(q.tool_use_id);return K===void 0?q:{...q,content:K}})}}})}async function xn9(J){let Q=await wk0(J.content,J.toolUseId);if(Ak0(Q))return null;return{content:Q80(Q),originalSize:Q.originalSize}}async function kn9(J,Q,X=new Set){let Z=e46(J),Y=X.size>0?Tn9(J):void 0,q=(_)=>Y!==void 0&&X.has(Y.get(_)??""),K=Pn9(),G=new Map,z=[],W=0,H=0;for(let _ of Z){let{mustReapply:O,frozen:L,fresh:N}=vn9(_,Q);if(O.forEach((E)=>G.set(E.toolUseId,E.replacement)),W+=O.length,N.length===0){_.forEach((E)=>Q.seenIds.add(E.toolUseId));continue}N.filter((E)=>q(E.toolUseId)).forEach((E)=>Q.seenIds.add(E.toolUseId));let R=N.filter((E)=>!q(E.toolUseId)),D=L.reduce((E,C)=>E+C.size,0),$=R.reduce((E,C)=>E+C.size,0),y=D+$>K?fn9(R,D,K):[],v=new Set(y.map((E)=>E.toolUseId));if(_.filter((E)=>!v.has(E.toolUseId)).forEach((E)=>Q.seenIds.add(E.toolUseId)),y.length===0)continue;H++,z.push(...y)}if(G.size===0&&z.length===0)return{messages:J,newlyReplaced:[]};let B=await Promise.all(z.map(async(_)=>[_,await xn9(_)])),U=[],F=0;for(let[_,O]of B){if(Q.seenIds.add(_.toolUseId),O===null)continue;F+=_.size,G.set(_.toolUseId,O.content),Q.replacements.set(_.toolUseId,O.content),U.push({kind:"tool-result",toolUseId:_.toolUseId,replacement:O.content}),l("jarvis_api_error",{originalSizeBytes:O.originalSize,persistedSizeBytes:O.content.length,estimatedOriginalTokens:Math.ceil(O.originalSize/xH0),estimatedPersistedTokens:Math.ceil(O.content.length/xH0)})}if(G.size===0)return{messages:J,newlyReplaced:[]};if(U.length>0)b(`Per-message budget: persisted ${U.length} tool results across ${H} over-budget message(s), shed ~${wJ(F)}, ${W} re-applied`),l("jarvis_api_error",{resultsPersisted:U.length,messagesOverBudget:H,replacedSizeBytes:F,reapplied:W});return{messages:Sn9(J,G),newlyReplaced:U}}async function JY6(J,Q,X,Z){if(!Q)return J;let Y=await kn9(J,Q,Z);if(Y.newlyReplaced.length>0)X?.(Y.newlyReplaced);return Y.messages}function Rk0(J,Q,X){let Z=mH0(),Y=new Set(e46(J).flat().map((q)=>q.toolUseId));for(let q of Y)Z.seenIds.add(q);for(let q of Q)if(q.kind==="tool-result"&&Y.has(q.toolUseId))Z.replacements.set(q.toolUseId,q.replacement);if(X){for(let[q,K]of X)if(Y.has(q)&&!Z.replacements.has(q))Z.replacements.set(q,K)}return Z}function QY6(J,Q,X){if(!J)return;return Rk0(Q,X,J.replacements)}function hn9(J){let Q=J;if(Q.code)switch(Q.code){case"ENOENT":return`Directory not found: ${Q.path??"unknown path"}`;case"EACCES":return`Permission denied: ${Q.path??"unknown path"}`;case"ENOSPC":return"No space left on device";case"EROFS":return"Read-only file system";case"EMFILE":return"Too many open files";case"EEXIST":return`File already exists: ${Q.path??"unknown path"}`;default:return`${Q.code}: ${Q.message}`}return J.message}var vj1="tool-results",l46="<persisted-output>",jn9="</persisted-output>",In9="jarvis_api_error",J80=2000;var CB=I(()=>{N1();D1();BG();Z1();T1();A6();M1();gJ();i1()});function cH0(){return O8("policySettings")?.allowManagedPermissionRulesOnly===!0}function Gj(){return!cH0()}function gn9(J){let Q=wK(J);if(!Q)return null;try{let{resolvedPath:X}=k4(Y1(),Q),Z=HB(X);if(Z.trim()==="")return{};let Y=e7(Z,!1);return Y&&typeof Y==="object"?Y:null}catch{return null}}function mn9(J,Q){if(!J||!J.permissions)return[];let{permissions:X}=J,Z=[];for(let Y of un9){let q=X[Y];if(q)for(let K of q)Z.push({source:Q,ruleBehavior:Y,ruleValue:A5(K)})}return Z}function Mk0(){if(cH0())return pH0("policySettings");let J=[];for(let Q of fb())J.push(...pH0(Q));return J}function pH0(J){let Q=O8(J);return mn9(Q,J)}function XY6(J){if(!pn9.includes(J.source))return!1;let Q=T7(J.ruleValue),X=O8(J.source);if(!X||!X.permissions)return!1;let Z=X.permissions[J.ruleBehavior];if(!Z)return!1;let Y=(q)=>T7(A5(q));if(!Z.some((q)=>Y(q)===Q))return!1;try{let q={...X,permissions:{...X.permissions,[J.ruleBehavior]:Z.filter((G)=>Y(G)!==Q)}},{error:K}=y6(J.source,q);if(K)return!1;return!0}catch(q){return H0(q),!1}}function cn9(){return{permissions:{}}}function ZY6({ruleValues:J,ruleBehavior:Q},X){if(cH0())return!1;if(J.length<1)return!0;let Z=J.map(T7),Y=O8(X)||gn9(X)||cn9();try{let q=Y.permissions||{},K=q[Q]||[],G=new Set(K.map((B)=>T7(A5(B)))),z=Z.filter((B)=>!G.has(B));if(z.length===0)return!0;let W={...Y,permissions:{...q,[Q]:[...K,...z]}},H=y6(X,W);if(H.error)throw H.error;return!0}catch(q){return H0(q),!1}}var un9,pn9;var gR=I(()=>{OO();H6();s5();M1();eY();g8();FB();un9=["allow","deny","ask"];pn9=["userSettings","projectSettings","localSettings"]});import{posix as dn9}from"path";function nO(J){if(!J)return[];return J.flatMap((Q)=>{switch(Q.type){case"addRules":return Q.rules;default:return[]}})}function YY6(J){return nO(J).length>0}function iZ(J,Q){switch(Q.type){case"setMode":return b(`Applying permission update: Setting mode to '${Q.mode}'`),{...J,mode:Q.mode};case"addRules":{let X=Q.rules.map((Y)=>T7(Y));b(`Applying permission update: Adding ${Q.rules.length} ${Q.behavior} rule(s) to destination '${Q.destination}': ${l0(X)}`);let Z=Q.behavior==="allow"?"alwaysAllowRules":Q.behavior==="deny"?"alwaysDenyRules":"alwaysAskRules";return{...J,[Z]:{...J[Z],[Q.destination]:[...J[Z][Q.destination]||[],...X]}}}case"replaceRules":{let X=Q.rules.map((Y)=>T7(Y));b(`Replacing all ${Q.behavior} rules for destination '${Q.destination}' with ${Q.rules.length} rule(s): ${l0(X)}`);let Z=Q.behavior==="allow"?"alwaysAllowRules":Q.behavior==="deny"?"alwaysDenyRules":"alwaysAskRules";return{...J,[Z]:{...J[Z],[Q.destination]:X}}}case"addDirectories":{b(`Applying permission update: Adding ${Q.directories.length} director${Q.directories.length===1?"y":"ies"} with destination '${Q.destination}': ${l0(Q.directories)}`);let X=new Map(J.additionalWorkingDirectories);for(let Z of Q.directories)X.set(Z,{path:Z,source:Q.destination});return{...J,additionalWorkingDirectories:X}}case"removeRules":{let X=Q.rules.map((G)=>T7(G));b(`Applying permission update: Removing ${Q.rules.length} ${Q.behavior} rule(s) from source '${Q.destination}': ${l0(X)}`);let Z=Q.behavior==="allow"?"alwaysAllowRules":Q.behavior==="deny"?"alwaysDenyRules":"alwaysAskRules",Y=J[Z][Q.destination]||[],q=new Set(X),K=Y.filter((G)=>!q.has(G));return{...J,[Z]:{...J[Z],[Q.destination]:K}}}case"removeDirectories":{b(`Applying permission update: Removing ${Q.directories.length} director${Q.directories.length===1?"y":"ies"}: ${l0(Q.directories)}`);let X=new Map(J.additionalWorkingDirectories);for(let Z of Q.directories)X.delete(Z);return{...J,additionalWorkingDirectories:X}}default:return J}}function bF(J,Q){let X=J;for(let Z of Q)X=iZ(X,Z);return X}function fj1(J){return J==="localSettings"||J==="userSettings"||J==="projectSettings"}function zj(J){if(!fj1(J.destination))return;switch(b(`Persisting permission update: ${J.type} to source '${J.destination}'`),J.type){case"addRules":{b(`Persisting ${J.rules.length} ${J.behavior} rule(s) to ${J.destination}`),ZY6({ruleValues:J.rules,ruleBehavior:J.behavior},J.destination);break}case"addDirectories":{b(`Persisting ${J.directories.length} director${J.directories.length===1?"y":"ies"} to ${J.destination}`);let X=O8(J.destination)?.permissions?.additionalDirectories||[],Z=J.directories.filter((Y)=>!X.includes(Y));if(Z.length>0){let Y=[...X,...Z];y6(J.destination,{permissions:{additionalDirectories:Y}})}break}case"removeRules":{b(`Removing ${J.rules.length} ${J.behavior} rule(s) from ${J.destination}`);let Z=(O8(J.destination)?.permissions||{})[J.behavior]||[],Y=new Set(J.rules.map(T7)),q=Z.filter((K)=>{let G=T7(A5(K));return!Y.has(G)});y6(J.destination,{permissions:{[J.behavior]:q}});break}case"removeDirectories":{b(`Removing ${J.directories.length} director${J.directories.length===1?"y":"ies"} from ${J.destination}`);let X=O8(J.destination)?.permissions?.additionalDirectories||[],Z=new Set(J.directories),Y=X.filter((q)=>!Z.has(q));y6(J.destination,{permissions:{additionalDirectories:Y}});break}case"setMode":{b(`Persisting mode '${J.mode}' to ${J.destination}`),y6(J.destination,{permissions:{defaultMode:J.mode}});break}case"replaceRules":{b(`Replacing all ${J.behavior} rules in ${J.destination} with ${J.rules.length} rule(s)`);let Q=J.rules.map(T7);y6(J.destination,{permissions:{[J.behavior]:Q}});break}}}function mR(J){for(let Q of J)zj(Q)}function xd(J,Q="session"){let X=qY6(J);if(X==="/")return;return{type:"addRules",rules:[{toolName:"Read",ruleContent:dn9.isAbsolute(X)?`/${X}/**`:`${X}/**`}],behavior:"allow",destination:Q}}var lq=I(()=>{Z1();g8();i1();vX();FB();gR()});import{AsyncLocalStorage as ln9}from"async_hooks";function Dk0(){return KY6.getStore()?.workload}function $k0(J,Q){return KY6.run({workload:J},Q)}var KY6;var Z80=I(()=>{KY6=new ln9});function Ik0(J){if(J?.isNonInteractive){if(J.hasAppendSystemPrompt)return zY6;return WY6}return GY6}function nn9(){if(rY(process.env.GLOCK_ATTRIBUTION_HEADER))return!1;return Y8("jarvis_api_error",!0)}function yk0(J){if(!nn9())return"";let Q=`0.1.17.${J}`,X=process.env.GLOCK_ENTRYPOINT??"unknown",Z="",Y=Dk0(),q=Y?` cc_workload=${Y};`:"",K=`x-glock-billing-header: cc_version=${Q}; cc_entrypoint=${X};${Z}${q}`;return b(`attribution header ${K}`),K}var GY6="You are Glock, a multi-model AI coding assistant with council-based code review.",zY6="You are Glock, a multi-model AI coding assistant with council-based code review, running within the Glock Agent SDK.",WY6="You are a Glock agent, built on the Glock Agent SDK.",in9,jk0;var bk0=I(()=>{Z1();t1();Z80();in9=[GY6,zY6,WY6],jk0=new Set(in9)});function Mx(J){return J.filter((Q)=>Q.data?.type!=="hook_progress")}function VQ(J,Q){return J.name===Q||(J.aliases?.includes(Q)??!1)}function h9(J,Q){return J.find((X)=>VQ(X,Q))}function _J(J){return{...rn9,userFacingName:()=>J.name,...J}}var JH=()=>({mode:"default",additionalWorkingDirectories:new Map,alwaysAllowRules:{},alwaysDenyRules:{},alwaysAskRules:{},isBypassPermissionsModeAvailable:!1}),rn9;var s6=I(()=>{rn9={isEnabled:()=>!0,isConcurrencySafe:(J)=>!1,isReadOnly:(J)=>!1,isDestructive:(J)=>!1,checkPermissions:(J,Q)=>Promise.resolve({behavior:"allow",updatedInput:J}),toAutoClassifierInput:(J)=>"",userFacingName:(J)=>""}});var OY6=o((SiX,_Y6)=>{var FY6=b1("child_process"),HY6=FY6.spawn,an9=FY6.exec;_Y6.exports=function(J,Q,X){if(typeof Q==="function"&&X===void 0)X=Q,Q=void 0;if(J=parseInt(J),Number.isNaN(J))if(X)return X(Error("pid must be a number"));else throw Error("pid must be a number");var Z={},Y={};switch(Z[J]=[],Y[J]=1,process.platform){case"win32":an9("taskkill /pid "+J+" /T /F",X);break;case"darwin":Sj1(J,Z,Y,function(q){return HY6("pgrep",["-P",q])},function(){BY6(Z,Q,X)});break;default:Sj1(J,Z,Y,function(q){return HY6("ps",["-o","pid","--no-headers","--ppid",q])},function(){BY6(Z,Q,X)});break}};function BY6(J,Q,X){var Z={};try{Object.keys(J).forEach(function(Y){if(J[Y].forEach(function(q){if(!Z[q])UY6(q,Q),Z[q]=1}),!Z[Y])UY6(Y,Q),Z[Y]=1})}catch(Y){if(X)return X(Y);else throw Y}if(X)return X()}function UY6(J,Q){try{process.kill(parseInt(J,10),Q)}catch(X){if(X.code!=="ESRCH")throw X}}function Sj1(J,Q,X,Z,Y){var q=Z(J),K="";q.stdout.on("data",function(W){var W=W.toString("ascii");K+=W});var G=function(z){if(delete X[J],z!=0){if(Object.keys(X).length==0)Y();return}K.match(/\d+/g).forEach(function(W){W=parseInt(W,10),Q[J].push(W),Q[W]=[],X[W]=1,Sj1(W,Q,X,Z,Y)})};q.on("close",G)}});import{constants as kd}from"fs";import{mkdir as on9,open as NY6,stat as hiX,symlink as LY6,unlink as sn9}from"fs/promises";import{join as wY6}from"path";function Y80(){if(xj1===void 0)xj1=wY6(fk0(),A1(),"tasks");return xj1}async function hj1(){await on9(Y80(),{recursive:!0})}function jX(J){return wY6(Y80(),`${J}.output`)}function Tk0(J){return VY6.add(J),J.finally(()=>VY6.delete(J)).catch(()=>{}),J}class Ck0{#Q;#X=null;#J=[];#q=0;#Y=!1;#K=null;#z=null;constructor(J){this.#Q=jX(J)}append(J){if(this.#Y)return;if(this.#q+=J.length,this.#q>Ek0)this.#Y=!0,this.#J.push(`
|
|
705
705
|
[output truncated: exceeded ${kj1} disk cap]
|
|
706
706
|
`);else this.#J.push(J);if(!this.#K)this.#K=new Promise((Q)=>{this.#z=Q}),Tk0(this.#W())}flush(){return this.#K??Promise.resolve()}cancel(){this.#J.length=0}async#H(){while(!0){try{if(!this.#X)await hj1(),this.#X=await NY6(this.#Q,process.platform==="win32"?"a":kd.O_WRONLY|kd.O_APPEND|kd.O_CREAT|AY6);while(!0)if(await this.#B(),this.#J.length===0)break}finally{if(this.#X){let J=this.#X;this.#X=null,await J.close()}}if(this.#J.length)continue;break}}#B(){return this.#X.appendFile(this.#F())}#F(){let J=this.#J.splice(0,this.#J.length),Q=0;for(let Y of J)Q+=Buffer.byteLength(Y,"utf8");let X=Buffer.allocUnsafe(Q),Z=0;for(let Y of J)Z+=X.write(Y,Z,"utf8");return X}async#W(){try{await this.#H()}catch(J){if(H0(J),this.#J.length>0)try{await this.#H()}catch(Q){H0(Q)}}finally{let J=this.#z;this.#K=null,this.#z=null,J()}}}function tn9(J){let Q=Pk0.get(J);if(!Q)Q=new Ck0(J),Pk0.set(J,Q);return Q}function MY6(J,Q){tn9(J).append(Q)}function IY(J){return Tk0((async()=>{let Q=Pk0.get(J);if(Q)await Q.flush(),Pk0.delete(J)})())}async function DY6(J,Q,X=RY6){try{let Z=await DD0(jX(J),Q,X);if(!Z)return{content:"",newOffset:Q};return{content:Z.content,newOffset:Q+Z.bytesRead}}catch(Z){if(c8(Z)==="ENOENT")return{content:"",newOffset:Q};return H0(Z),{content:"",newOffset:Q}}}async function uj1(J,Q=RY6){try{let{content:X,bytesTotal:Z,bytesRead:Y}=await Kf(jX(J),Q);if(Z>Y)return`[${Math.round((Z-Y)/1024)}KB of earlier output omitted]
|
|
707
707
|
${X}`;return X}catch(X){if(c8(X)==="ENOENT")return"";return H0(X),""}}function vk0(J){return Tk0((async()=>{await hj1();let Q=jX(J);return await(await NY6(Q,process.platform==="win32"?"wx":kd.O_WRONLY|kd.O_CREAT|kd.O_EXCL|AY6)).close(),Q})())}function hd(J,Q){return Tk0((async()=>{try{await hj1();let X=jX(J);try{await LY6(Q,X)}catch{await sn9(X),await LY6(Q,X)}return X}catch(X){return H0(X),vk0(J)}})())}var AY6,RY6=8388608,Ek0=5368709120,kj1="5GB",xj1,VY6,Pk0;var Bq=I(()=>{N1();T1();H6();M1();vX();AY6=kd.O_NOFOLLOW??0;VY6=new Set;Pk0=new Map});import{randomBytes as en9}from"crypto";function ud(J){return J==="completed"||J==="failed"||J==="killed"}function Qr9(J){return Jr9[J]??"x"}function rO(J){let Q=Qr9(J),X=en9(8),Z=Q;for(let Y=0;Y<8;Y++)Z+=$Y6[X[Y]%$Y6.length];return Z}function QH(J,Q,X,Z){return{id:J,type:Q,status:"pending",description:X,toolUseId:Z,startTime:Date.now(),outputFile:jX(J),outputOffset:0,notified:!1}}var Jr9,$Y6="0123456789abcdefghijklmnopqrstuvwxyz";var aO=I(()=>{Bq();Jr9={local_bash:"b",local_agent:"a",remote_agent:"r",in_process_teammate:"t",local_workflow:"w",monitor_mcp:"m",dream:"d"}});class dH0{capacity;buffer;head=0;size=0;constructor(J){this.capacity=J;this.buffer=Array(J)}add(J){if(this.buffer[this.head]=J,this.head=(this.head+1)%this.capacity,this.size<this.capacity)this.size++}addAll(J){for(let Q of J)this.add(Q)}getRecent(J){let Q=[],X=this.size<this.capacity?0:this.head,Z=Math.min(J,this.size);for(let Y=0;Y<Z;Y++){let q=(X+this.size-Z+Y)%this.capacity;Q.push(this.buffer[q])}return Q}toArray(){if(this.size===0)return[];let J=[],Q=this.size<this.capacity?0:this.head;for(let X=0;X<this.size;X++){let Z=(Q+X)%this.capacity;J.push(this.buffer[Z])}return J}clear(){this.buffer.length=0,this.head=0,this.size=0}length(){return this.size}}function q80(J,Q,X,Z){if(!Q)return{effective:X,status:"valid"};let Y=parseInt(Q,10);if(isNaN(Y)||Y<=0){let q={effective:X,status:"invalid",message:`Invalid value "${Q}" (using default: ${X})`};return b(`${J} ${q.message}`),q}if(Y>Z){let q={effective:Z,status:"capped",message:`Capped from ${Y} to ${Z}`};return b(`${J} ${q.message}`),q}return{effective:Y,status:"valid"}}var Sk0=I(()=>{Z1()});function K80(){return q80("BASH_MAX_OUTPUT_LENGTH",process.env.BASH_MAX_OUTPUT_LENGTH,Zr9,Xr9).effective}var Xr9=150000,Zr9=30000;var xk0=I(()=>{Sk0()});import{unlink as Yr9}from"fs/promises";var qr9=8388608,Kr9=1000,Gr9=4096,p4;var G80=I(()=>{Z1();H6();xk0();Bq();p4=class p4{taskId;path;stdoutToFile;#Q="";#X="";#J=null;#q=new dH0(1000);#Y=0;#K=0;#z;#H;#B=!1;#F=0;static#W=new Map;static#G=new Map;static#Z=null;constructor(J,Q,X=!1,Z=qr9){if(this.taskId=J,this.path=jX(J),this.stdoutToFile=X,this.#z=Z,this.#H=Q,X&&Q)p4.#W.set(J,this)}static startPolling(J){let Q=p4.#W.get(J);if(!Q||!Q.#H)return;if(p4.#G.set(J,Q),!p4.#Z)p4.#Z=setInterval(p4.#O,Kr9),p4.#Z.unref()}static stopPolling(J){if(p4.#G.delete(J),p4.#G.size===0&&p4.#Z)clearInterval(p4.#Z),p4.#Z=null}static#O(){for(let[,J]of p4.#G){if(!J.#H)continue;Kf(J.path,Gr9).then(({content:Q,bytesRead:X,bytesTotal:Z})=>{if(!J.#H)return;if(!Q){J.#H("","",J.#Y,Z,!1);return}let Y=Q.length,q=0,K=0,G=0;while(Y>0){if(Y=Q.lastIndexOf(`
|
|
@@ -1580,8 +1580,8 @@ Reads a specific resource from an MCP server, identified by server name and reso
|
|
|
1580
1580
|
Parameters:
|
|
1581
1581
|
- server (required): The name of the MCP server from which to read the resource
|
|
1582
1582
|
- uri (required): The URI of the resource to read
|
|
1583
|
-
`;function rA6(J){if(!J.uri||!J.server)return null;return`Read resource "${J.uri}" from server "${J.server}"`}function aA6(){return"readMcpResource"}function oA6(J,Q,{verbose:X}){if(!J||!J.contents||J.contents.length===0)return VF0.jsxDEV(f,{justifyContent:"space-between",overflowX:"hidden",width:"100%",children:VF0.jsxDEV(d1,{height:1,children:VF0.jsxDEV(M,{dimColor:!0,children:"(No content)"},void 0,!1,void 0,this)},void 0,!1,void 0,this)},void 0,!1,void 0,this);let Z=l0(J,null,2);return VF0.jsxDEV(WL,{content:Z,verbose:X},void 0,!1,void 0,this)}var VF0;var sA6=I(()=>{v9();Ji();a0();i1();VF0=T(e(),1)});var iw7,nw7,dE;var hc0=I(()=>{lF();M6();dB();s6();kc0();i1();el();sA6();iw7=k0(()=>j.object({server:j.string().describe("The MCP server name"),uri:j.string().describe("The resource URI to read")})),nw7=k0(()=>j.object({contents:j.array(j.object({uri:j.string().describe("Resource URI"),mimeType:j.string().optional().describe("MIME type of the content"),text:j.string().optional().describe("Text content of the resource"),blobSavedTo:j.string().optional().describe("Path where binary blob content was saved")}))})),dE=_J({isConcurrencySafe(){return!0},isReadOnly(){return!0},toAutoClassifierInput(J){return`${J.server} ${J.uri}`},shouldDefer:!0,name:"ReadMcpResourceTool",searchHint:"read a specific MCP resource by URI",maxResultSizeChars:1e5,async description(){return iA6},async prompt(){return nA6},get inputSchema(){return iw7()},get outputSchema(){return nw7()},async call(J,{options:{mcpClients:Q}}){let{server:X,uri:Z}=J,Y=Q.find((z)=>z.name===X);if(!Y)throw Error(`Server "${X}" not found. Available servers: ${Q.map((z)=>z.name).join(", ")}`);if(Y.type!=="connected")throw Error(`Server "${X}" is not connected`);if(!Y.capabilities?.resources)throw Error(`Server "${X}" does not support resources`);let K=await(await hJ0(Y)).client.request({method:"resources/read",params:{uri:Z}},v20);return{data:{contents:await Promise.all(K.contents.map(async(z,W)=>{if("text"in z)return{uri:z.uri,mimeType:z.mimeType,text:z.text};if(!("blob"in z)||typeof z.blob!=="string")return{uri:z.uri,mimeType:z.mimeType};let H=`mcp-resource-${Date.now()}-${W}-${Math.random().toString(36).slice(2,8)}`,B=await nJ0(Buffer.from(z.blob,"base64"),z.mimeType,H);if("error"in B)return{uri:z.uri,mimeType:z.mimeType,text:`Binary content could not be saved to disk: ${B.error}`};return{uri:z.uri,mimeType:z.mimeType,blobSavedTo:B.filepath,text:xc0(B.filepath,z.mimeType,B.size,`[Resource from ${X} at ${z.uri}] `)}}))}}},renderToolUseMessage:rA6,userFacingName:aA6,renderToolResultMessage:oA6,isResultTruncated(J){return Ww(l0(J))},mapToolResultToToolResultBlockParam(J,Q){return{tool_use_id:Q,type:"tool_result",content:l0(J)}}})});function sz(){return"glock/0.1.16"}function ck(){let J=process.env.GLOCK_AGENT_SDK_VERSION?`, agent-sdk/${process.env.GLOCK_AGENT_SDK_VERSION}`:"",Q=process.env.GLOCK_AGENT_SDK_CLIENT_APP?`, client-app/${process.env.GLOCK_AGENT_SDK_CLIENT_APP}`:"",X=Dk0(),Z=X?`, workload/${X}`:"";return`glock-cli/0.1.16 (${process.env.USER_TYPE}, ${process.env.GLOCK_ENTRYPOINT??"cli"}${J}${Q}${Z})`}function dk(){let J=[];if(process.env.GLOCK_ENTRYPOINT)J.push(process.env.GLOCK_ENTRYPOINT);if(process.env.GLOCK_AGENT_SDK_VERSION)J.push(`agent-sdk/${process.env.GLOCK_AGENT_SDK_VERSION}`);if(process.env.GLOCK_AGENT_SDK_CLIENT_APP)J.push(`client-app/${process.env.GLOCK_AGENT_SDK_CLIENT_APP}`);return`glock/0.1.16${J.length>0?` (${J.join(", ")})`:""}`}function tA6(){return`Glock-User (${sz()}; +https://support.getglock.dev/)`}function lE(){if(q9()){let Q=eJ();if(!Q?.accessToken)return{headers:{},error:"No OAuth token available"};return{headers:{Authorization:`Bearer ${Q.accessToken}`,"glock-beta":hV}}}let J=gc();if(!J)return{headers:{},error:"No API key available"};return{headers:{"x-api-key":J}}}async function NF0(J,Q){try{return await J()}catch(X){if(!y8.isAxiosError(X))throw X;let Z=X.response?.status;if(!(Z===401||Q?.also403Revoked&&Z===403&&typeof X.response?.data==="string"&&X.response.data.includes("OAuth token has been revoked")))throw X;let q=eJ()?.accessToken;if(!q)throw X;return await cS(q),await J()}}var lk=I(()=>{JX();$Z();N9();Z80()});class gc0{ws;started=!1;opened;isBun=typeof Bun<"u";constructor(J){this.ws=J;if(this.opened=new Promise((Q,X)=>{if(this.ws.readyState===uc0)Q();else if(this.isBun){let Z=this.ws,Y=()=>{Z.removeEventListener("open",Y),Z.removeEventListener("error",q),Q()},q=(K)=>{Z.removeEventListener("open",Y),Z.removeEventListener("error",q),n1("error","mcp_websocket_connect_fail"),X(K)};Z.addEventListener("open",Y),Z.addEventListener("error",q)}else{let Z=this.ws;Z.on("open",()=>{Q()}),Z.on("error",(Y)=>{n1("error","mcp_websocket_connect_fail"),X(Y)})}}),this.isBun){let Q=this.ws;Q.addEventListener("message",this.onBunMessage),Q.addEventListener("error",this.onBunError),Q.addEventListener("close",this.onBunClose)}else{let Q=this.ws;Q.on("message",this.onNodeMessage),Q.on("error",this.onNodeError),Q.on("close",this.onNodeClose)}}onclose;onerror;onmessage;onBunMessage=(J)=>{try{let Q=typeof J.data==="string"?J.data:String(J.data),X=c1(Q),Z=LM.parse(X);this.onmessage?.(Z)}catch(Q){this.handleError(Q)}};onBunError=()=>{this.handleError(Error("WebSocket error"))};onBunClose=()=>{this.handleCloseCleanup()};onNodeMessage=(J)=>{try{let Q=c1(J.toString("utf-8")),X=LM.parse(Q);this.onmessage?.(X)}catch(Q){this.handleError(Q)}};onNodeError=(J)=>{this.handleError(J)};onNodeClose=()=>{this.handleCloseCleanup()};handleError(J){n1("error","mcp_websocket_message_fail"),this.onerror?.(R8(J))}handleCloseCleanup(){if(this.onclose?.(),this.isBun){let J=this.ws;J.removeEventListener("message",this.onBunMessage),J.removeEventListener("error",this.onBunError),J.removeEventListener("close",this.onBunClose)}else{let J=this.ws;J.off("message",this.onNodeMessage),J.off("error",this.onNodeError),J.off("close",this.onNodeClose)}}async start(){if(this.started)throw Error("Start can only be called once per transport.");if(await this.opened,this.ws.readyState!==uc0)throw n1("error","mcp_websocket_start_not_opened"),Error("WebSocket is not open. Cannot start transport.");this.started=!0}async close(){if(this.ws.readyState===uc0||this.ws.readyState===rw7)this.ws.close();this.handleCloseCleanup()}async send(J){if(this.ws.readyState!==uc0)throw n1("error","mcp_websocket_send_not_opened"),Error("WebSocket is not open. Cannot send message.");let Q=l0(J);try{if(this.isBun)this.ws.send(Q);else await new Promise((X,Z)=>{this.ws.send(Q,(Y)=>{if(Y)Z(Y);else X()})})}catch(X){throw this.handleError(X),X}}}var rw7=0,uc0=1;var eA6=I(()=>{lF();h4();T1();i1()});function aw7(J){let Q=J,X="",Z=0,Y=10;while(Q!==X&&Z<Y)X=Q,Q=Q.normalize("NFKC"),Q=Q.replace(/[\p{Cf}\p{Co}\p{Cn}]/gu,""),Q=Q.replace(/[\u200B-\u200F]/g,"").replace(/[\u202A-\u202E]/g,"").replace(/[\u2066-\u2069]/g,"").replace(/[\uFEFF]/g,"").replace(/[\uE000-\uF8FF]/g,""),Z++;if(Z>=Y)throw Error(`Unicode sanitization reached maximum iterations (${Y}) for input: ${J.slice(0,100)}`);return Q}function ik(J){if(typeof J==="string")return aw7(J);if(Array.isArray(J))return J.map(ik);if(J!==null&&typeof J==="object"){let Q={};for(let[X,Z]of Object.entries(J))Q[ik(X)]=ik(Z);return Q}return J}function ow7(){let J=ZQ1();if(J!==void 0)return J;let Q=process.env.GLOCK_WEBSOCKET_AUTH_FILE_DESCRIPTOR;if(!Q){let Z=process.env.GLOCK_SESSION_INGRESS_TOKEN_FILE??hv0,Y=p30(Z,"session ingress token");return cm(Y),Y}let X=parseInt(Q,10);if(Number.isNaN(X))return b(`GLOCK_WEBSOCKET_AUTH_FILE_DESCRIPTOR must be a valid file descriptor number, got: ${Q}`,{level:"error"}),cm(null),null;try{let Z=Y1(),Y=process.platform==="darwin"||process.platform==="freebsd"?`/dev/fd/${X}`:`/proc/self/fd/${X}`,q=Z.readFileSync(Y,{encoding:"utf8"}).trim();if(!q)return b("File descriptor contained empty token",{level:"error"}),cm(null),null;return b(`Successfully read token from file descriptor ${X}`),cm(q),iw1(hv0,q,"session ingress token"),q}catch(Z){b(`Failed to read token from file descriptor ${X}: ${Q1(Z)}`,{level:"error"});let Y=process.env.GLOCK_SESSION_INGRESS_TOKEN_FILE??hv0,q=p30(Y,"session ingress token");return cm(q),q}}function $2(){let J=process.env.GLOCK_SESSION_ACCESS_TOKEN;if(J)return J;return ow7()}function mc0(){let J=$2();if(!J)return{};if(J.startsWith("sk-ant-sid")){let Q={Cookie:`sessionKey=${J}`},X=process.env.GLOCK_ORGANIZATION_UUID;if(X)Q["X-Organization-Uuid"]=X;return Q}return{Authorization:`Bearer ${J}`}}var iE=I(()=>{N1();rw1();Z1();T1();H6()});function sw7(J){return J.mode==="url"?"url":"form"}function tw7(J,Q,X){return J.findIndex((Z)=>Z.serverName===Q&&Z.params.mode==="url"&&("elicitationId"in Z.params)&&Z.params.elicitationId===X)}function JR6(J,Q,X){try{J.setRequestHandler(xE,async(Z,Y)=>{w1(Q,`Received elicitation request: ${l0(Z)}`);let q=sw7(Z.params);l("jarvis_api_error",{mode:q});try{let K=await wF0(Q,Z.params,Y.signal);if(K)return w1(Q,`Elicitation resolved by hook: ${l0(K)}`),l("jarvis_api_error",{mode:q,action:K.action}),K;let G=q==="url"&&"elicitationId"in Z.params?Z.params.elicitationId:void 0,W=await new Promise((B)=>{let U=()=>{B({action:"cancel"})};if(Y.signal.aborted){U();return}let F=G?{actionLabel:"Skip confirmation"}:void 0;X((_)=>({..._,elicitation:{queue:[..._.elicitation.queue,{serverName:Q,requestId:Y.requestId,params:Z.params,signal:Y.signal,waitingState:F,respond:(O)=>{Y.signal.removeEventListener("abort",U),l("jarvis_api_error",{mode:q,action:O.action}),B(O)}}]}})),Y.signal.addEventListener("abort",U,{once:!0})});return w1(Q,`Elicitation response: ${l0(W)}`),await AF0(Q,W,Y.signal,q,G)}catch(K){return $X(Q,`Elicitation error: ${K}`),{action:"cancel"}}}),J.setNotificationHandler(u20,(Z)=>{let{elicitationId:Y}=Z.params;w1(Q,`Received elicitation completion notification: ${Y}`),tj({message:`MCP server "${Q}" confirmed elicitation ${Y} complete`,notificationType:"elicitation_complete"});let q=!1;if(X((K)=>{let G=tw7(K.elicitation.queue,Q,Y);if(G===-1)return K;q=!0;let z=[...K.elicitation.queue];return z[G]={...z[G],completed:!0},{...K,elicitation:{queue:z}}}),!q)w1(Q,`Ignoring completion notification for unknown elicitation: ${Y}`)})}catch{return}}async function wF0(J,Q,X){try{let Z=Q.mode==="url"?"url":"form",Y="url"in Q?Q.url:void 0,q="elicitationId"in Q?Q.elicitationId:void 0,{elicitationResponse:K,blockingError:G}=await Yf1({serverName:J,message:Q.message,requestedSchema:"requestedSchema"in Q?Q.requestedSchema:void 0,signal:X,mode:Z,url:Y,elicitationId:q});if(G)return{action:"decline"};if(K)return{action:K.action,content:K.content};return}catch(Z){$X(J,`Elicitation hook error: ${Z}`);return}}async function AF0(J,Q,X,Z,Y){try{let{elicitationResultResponse:q,blockingError:K}=await qf1({serverName:J,action:Q.action,content:Q.content,signal:X,mode:Z,elicitationId:Y});if(K)return tj({message:`Elicitation response for server "${J}": decline`,notificationType:"elicitation_response"}),{action:"decline"};let G=q?{action:q.action,content:q.content??Q.content}:Q;return tj({message:`Elicitation response for server "${J}": ${G.action}`,notificationType:"elicitation_response"}),G}catch(q){return $X(J,`ElicitationResult hook error: ${q}`),tj({message:`Elicitation response for server "${J}": ${Q.action}`,notificationType:"elicitation_response"}),Q}}var pc0=I(()=>{lF();N4();M1();i1();D1()});function QA7(J){return J.replace(/([a-z])([A-Z])/g,"$1_$2").replace(/-/g,"_").toLowerCase()}function QR6(J,Q){let X=QA7(Q);return{isSearch:ew7.has(X),isRead:JA7.has(X)}}var ew7,JA7;var XR6=I(()=>{ew7=new Set(["slack_search_public","slack_search_public_and_private","slack_search_channels","slack_search_users","search_code","search_repositories","search_issues","search_pull_requests","search_orgs","search_users","search_documentation","search_logs","search_spans","search_rum_events","search_audit_logs","search_monitors","search_monitor_groups","find_slow_spans","find_monitors_matching_pattern","search_docs","search_events","search_issue_events","find_organizations","find_teams","find_projects","find_releases","find_dsns","search","gmail_search_messages","google_drive_search","gcal_find_my_free_time","gcal_find_meeting_times","gcal_find_user_emails","search_jira_issues_using_jql","search_confluence_using_cql","lookup_jira_account_id","confluence_search","jira_search","jira_search_fields","asana_search_tasks","asana_typeahead_search","search_files","search_nodes","brave_web_search","brave_local_search","search_dashboards","search_folders","search_docs","search_stripe_resources","search_stripe_documentation","search_articles","find_related_articles","lookup_article_by_citation","search_papers","search_pubmed","search_pubmed_key_words","search_pubmed_advanced","pubmed_search","pubmed_mesh_lookup","firecrawl_search","web_search_exa","web_search_advanced_exa","people_search_exa","linkedin_search_exa","deep_search_exa","perplexity_search","perplexity_search_web","tavily_search","obsidian_simple_search","obsidian_complex_search","find","search_knowledge","search_memories","find_memories_by_name","search_records","find_tasks","find_tasks_by_date","find_completed_tasks","find_projects","find_sections","find_comments","find_project_collaborators","find_activity","find_labels","find_filters","search_documentation","search_catalog","search_modules","search_providers","search_policies"]),JA7=new Set(["slack_read_channel","slack_read_thread","slack_read_canvas","slack_read_user_profile","slack_list_channels","slack_get_channel_history","slack_get_thread_replies","slack_get_users","slack_get_user_profile","get_me","get_team_members","get_teams","get_commit","get_file_contents","get_repository_tree","list_branches","list_commits","list_releases","list_tags","get_latest_release","get_release_by_tag","get_tag","list_issues","issue_read","list_issue_types","get_label","list_label","pull_request_read","get_gist","list_gists","list_notifications","get_notification_details","projects_list","projects_get","actions_get","actions_list","get_job_logs","get_code_scanning_alert","list_code_scanning_alerts","get_dependabot_alert","list_dependabot_alerts","get_secret_scanning_alert","list_secret_scanning_alerts","get_global_security_advisory","list_global_security_advisories","list_org_repository_security_advisories","list_repository_security_advisories","get_discussion","get_discussion_comments","list_discussion_categories","list_discussions","list_starred_repositories","get_issue","get_pull_request","list_pull_requests","get_pull_request_files","get_pull_request_status","get_pull_request_comments","get_pull_request_reviews","list_comments","list_cycles","get_document","list_documents","list_issue_statuses","get_issue_status","list_my_issues","list_issue_labels","list_projects","get_project","list_project_labels","list_teams","get_team","list_users","get_user","aggregate_logs","list_spans","aggregate_spans","analyze_trace","trace_critical_path","query_metrics","aggregate_rum_events","list_rum_metrics","get_rum_metric","list_monitors","get_monitor","check_can_delete_monitor","validate_monitor","validate_existing_monitor","list_dashboards","get_dashboard","query_dashboard_widget","list_notebooks","get_notebook","query_notebook_cell","get_profiling_metrics","compare_profiling_metrics","whoami","get_issue_details","get_issue_tag_values","get_trace_details","get_event_attachment","get_doc","get_sentry_resource","list_events","list_issue_events","get_sentry_issue","fetch","get_comments","get_users","get_self","gmail_get_profile","gmail_read_message","gmail_read_thread","gmail_list_drafts","gmail_list_labels","google_drive_fetch","google_drive_export","gcal_list_calendars","gcal_list_events","gcal_get_event","atlassian_user_info","get_accessible_atlassian_resources","get_visible_jira_projects","get_jira_project_issue_types_metadata","get_jira_issue","get_transitions_for_jira_issue","get_jira_issue_remote_issue_links","get_confluence_spaces","get_confluence_page","get_pages_in_confluence_space","get_confluence_page_ancestors","get_confluence_page_descendants","get_confluence_page_footer_comments","get_confluence_page_inline_comments","confluence_get_page","confluence_get_page_children","confluence_get_comments","confluence_get_labels","jira_get_issue","jira_get_transitions","jira_get_worklog","jira_get_agile_boards","jira_get_board_issues","jira_get_sprints_from_board","jira_get_sprint_issues","jira_get_link_types","jira_download_attachments","jira_batch_get_changelogs","jira_get_user_profile","jira_get_project_issues","jira_get_project_versions","asana_get_attachment","asana_get_attachments_for_object","asana_get_goal","asana_get_goals","asana_get_parent_goals_for_goal","asana_get_portfolio","asana_get_portfolios","asana_get_items_for_portfolio","asana_get_project","asana_get_projects","asana_get_project_sections","asana_get_project_status","asana_get_project_statuses","asana_get_project_task_counts","asana_get_projects_for_team","asana_get_projects_for_workspace","asana_get_task","asana_get_tasks","asana_get_stories_for_task","asana_get_teams_for_workspace","asana_get_teams_for_user","asana_get_team_users","asana_get_time_period","asana_get_time_periods","asana_get_user","asana_get_workspace_users","asana_list_workspaces","read_file","read_text_file","read_media_file","read_multiple_files","list_directory","list_directory_with_sizes","directory_tree","get_file_info","list_allowed_directories","read_graph","open_nodes","query","read_query","list_tables","describe_table","git_status","git_diff","git_diff_unstaged","git_diff_staged","git_log","git_show","git_branch","list_teams","list_users_by_org","get_dashboard_by_uid","get_dashboard_summary","get_dashboard_property","get_dashboard_panel_queries","run_panel_query","list_datasources","get_datasource","get_query_examples","query_prometheus","query_prometheus_histogram","list_prometheus_metric_metadata","list_prometheus_metric_names","list_prometheus_label_names","list_prometheus_label_values","query_loki_logs","query_loki_stats","query_loki_patterns","list_loki_label_names","list_loki_label_values","list_incidents","get_incident","list_sift_investigations","get_sift_investigation","get_sift_analysis","list_oncall_schedules","get_oncall_shift","get_current_oncall_users","list_oncall_teams","list_oncall_users","list_alert_groups","get_alert_group","get_annotations","get_annotation_tags","get_panel_image","list_incidents","get_incident","get_outlier_incident","get_past_incidents","get_related_incidents","list_incident_notes","list_incident_workflows","get_incident_workflow","list_services","get_service","list_team_members","get_user_data","list_schedules","get_schedule","list_schedule_users","list_oncalls","list_log_entries","get_log_entry","list_escalation_policies","get_escalation_policy","list_event_orchestrations","get_event_orchestration","list_status_pages","get_status_page_post","list_alerts_from_incident","get_alert_from_incident","list_change_events","get_change_event","list_organizations","get_organization","get_cost","list_extensions","list_migrations","get_logs","get_advisors","get_project_url","get_publishable_keys","generate_typescript_types","list_edge_functions","get_edge_function","list_storage_buckets","get_storage_config","get_stripe_account_info","retrieve_balance","list_customers","list_products","list_prices","list_invoices","list_payment_intents","list_subscriptions","list_coupons","list_disputes","fetch_stripe_resources","get_article_metadata","get_full_text_article","convert_article_ids","get_copyright_status","download_paper","list_papers","read_paper","get_paper_fulltext","get_pubmed_article_metadata","download_pubmed_pdf","pubmed_fetch","pubmed_pmc_fetch","pubmed_spell","pubmed_cite","pubmed_related","bigquery_query","bigquery_schema","list_dataset_ids","list_table_ids","get_dataset_info","get_table_info","firecrawl_scrape","firecrawl_map","firecrawl_crawl","firecrawl_check_crawl_status","firecrawl_extract","get_code_context_exa","company_research_exa","crawling_exa","deep_researcher_check","perplexity_ask","perplexity_research","perplexity_reason","tavily_extract","tavily_crawl","tavily_map","tavily_research","obsidian_list_files_in_vault","obsidian_list_files_in_dir","obsidian_get_file_contents","obsidian_batch_get_file_contents","obsidian_get_periodic_note","obsidian_get_recent_periodic_notes","obsidian_get_recent_changes","get_figma_data","download_figma_images","browser_console_messages","browser_network_requests","browser_take_screenshot","browser_snapshot","browser_get_config","browser_route_list","browser_cookie_list","browser_cookie_get","browser_localstorage_list","browser_localstorage_get","browser_sessionstorage_list","browser_sessionstorage_get","browser_storage_state","puppeteer_screenshot","list_databases","list_collections","collection_indexes","collection_schema","collection_storage_size","db_stats","explain","mongodb_logs","aggregate","count","export","get_neo4j_schema","read_neo4j_cypher","list_instances","get_instance_details","get_instance_by_name","list_indices","get_mappings","esql","get_shards","list_records","list_bases","get_record","get_productivity_stats","get_overview","fetch_object","user_info","list_workspaces","view_attachment","get_available_services","read_documentation","read_sections","recommend","analyze_log_group","analyze_metric","describe_log_groups","get_active_alarms","get_alarm_history","get_metric_data","get_metric_metadata","kubectl_get","kubectl_describe","kubectl_logs","kubectl_context","explain_resource","list_api_resources","namespaces_list","nodes_log","nodes_top","pods_get","pods_list","pods_list_in_namespace","pods_log","pods_top","resources_get","resources_list"])});function XA7(J){return J.scope==="project"||J.scope==="local"}async function ZA7(J,Q){if(!Q.headersHelper)return null;if("scope"in Q&&XA7(Q)&&!x6()){if(!qG()){let Z=Error(`Security: headersHelper for MCP server '${J}' executed before workspace trust is confirmed. If you see this message, post in https://github.com/getglock/glock/issues.`);return KO("MCP headersHelper invoked before trust check",Z),l("jarvis_api_error",{}),null}}try{w1(J,"Executing headersHelper to get dynamic headers");let X=await r8(Q.headersHelper,[],{shell:!0,timeout:1e4,env:{...process.env,GLOCK_MCP_SERVER_NAME:J,GLOCK_MCP_SERVER_URL:Q.url}});if(X.code!==0||!X.stdout)throw Error(`headersHelper for MCP server '${J}' did not return a valid value`);let Z=X.stdout.trim(),Y=c1(Z);if(typeof Y!=="object"||Y===null||Array.isArray(Y))throw Error(`headersHelper for MCP server '${J}' must return a JSON object with string key-value pairs`);for(let[q,K]of Object.entries(Y))if(typeof K!=="string")throw Error(`headersHelper for MCP server '${J}' returned non-string value for key "${q}": ${typeof K}`);return w1(J,`Successfully retrieved ${Object.keys(Y).length} headers from headersHelper`),Y}catch(X){return $X(J,`Error getting headers from headersHelper: ${Q1(X)}`),H0(Error(`Error getting MCP headers from headersHelper for server '${J}': ${Q1(X)}`)),null}}async function cc0(J,Q){let X=Q.headers||{},Z=await ZA7(J,Q)||{};return{...X,...Z}}var ZR6=I(()=>{N1();m8();Z1();T1();T9();M1();i1();D1()});class Kf1{serverName;sendMcpMessage;isClosed=!1;onclose;onerror;onmessage;constructor(J,Q){this.serverName=J;this.sendMcpMessage=Q}async start(){}async send(J){if(this.isClosed)throw Error("Transport is closed");let Q=await this.sendMcpMessage(this.serverName,J);if(this.onmessage)this.onmessage(Q)}async close(){if(this.isClosed)return;this.isClosed=!0,this.onclose?.()}}import{mkdir as KA7,readFile as GA7,unlink as zA7,writeFile as WA7}from"fs/promises";import{dirname as HA7,join as BA7}from"path";function WR6(J){if(("code"in J?J.code:void 0)!==404)return!1;return J.message.includes('"code":-32001')||J.message.includes('"code": -32001')}function qA7(){return parseInt(process.env.MCP_TOOL_TIMEOUT||"",10)||YA7}function Ff1(){return BA7(L8(),"mcp-needs-auth-cache.json")}function HR6(){if(!MF0)MF0=GA7(Ff1(),"utf-8").then((J)=>c1(J)).catch(()=>({}));return MF0}async function FA7(J){let X=(await HR6())[J];if(!X)return!1;return Date.now()-X.timestamp<UA7}function _A7(J){YR6=YR6.then(async()=>{let Q=await HR6();Q[J]={timestamp:Date.now()};let X=Ff1();await KA7(HA7(X),{recursive:!0}),await WA7(X,l0(Q)),MF0=null}).catch(()=>{})}function Mc0(){MF0=null,zA7(Ff1()).catch(()=>{})}function Wf1(J){let Q=aF(J);return Q?{mcpServerBaseUrl:Q}:{}}function Gf1(J,Q,X){return l("jarvis_api_error",{transportType:X,...Wf1(Q)}),w1(J,`Authentication required for ${{sse:"SSE",http:"HTTP","glockai-proxy":"glock proxy"}[X]} server`),_A7(J),{name:J,type:"needs-auth",config:Q}}function OA7(J){return async(Q,X)=>{let Z=async()=>{await cW();let G=eJ();if(!G)throw Error("No glock OAuth token available");let z=new Headers(X?.headers);return z.set("Authorization",`Bearer ${G.accessToken}`),{response:await J(Q,{...X,headers:z}),sentToken:G.accessToken}},{response:Y,sentToken:q}=await Z();if(Y.status!==401)return Y;let K=await cS(q).catch(()=>!1);if(l("jarvis_api_error",{tokenChanged:K}),!K){let G=eJ()?.accessToken;if(!G||G===q)return Y}try{return(await Z()).response}catch{return Y}}}async function qR6(J,Q){return new(await import("ws")).default(J,["mcp"],Q)}function dc0(){return parseInt(process.env.MCP_TIMEOUT||"",10)||30000}function zf1(J){return async(Q,X)=>{if((X?.method??"GET").toUpperCase()==="GET")return J(Q,X);let Y=new Headers(X?.headers);if(!Y.has("accept"))Y.set("accept",VA7);let q=new AbortController,K=setTimeout((H)=>H.abort(new DOMException("The operation timed out.","TimeoutError")),BR6,q);K.unref?.();let G=X?.signal,z=()=>q.abort(G?.reason);if(G?.addEventListener("abort",z),G?.aborted)q.abort(G.reason);let W=()=>{clearTimeout(K),G?.removeEventListener("abort",z)};try{let H=await J(Q,{...X,headers:Y,signal:q.signal});return W(),H}catch(H){throw W(),H}}}function NA7(){return parseInt(process.env.MCP_SERVER_CONNECTION_BATCH_SIZE||"",10)||3}function wA7(){return parseInt(process.env.MCP_REMOTE_SERVER_CONNECTION_BATCH_SIZE||"",10)||20}function KR6(J){return!J.type||J.type==="stdio"||J.type==="sdk"}function RA7(J){return!J.name.startsWith("mcp__ide__")||AA7.includes(J.name)}function Hf1(J,Q){return`${J}-${l0(Q)}`}async function lB(J,Q){let X=Hf1(J,Q);try{let Z=await ej(J,Q);if(Z.type==="connected")await Z.cleanup()}catch{}ej.cache.delete(X),BL.cache.delete(J),pE.cache.delete(J),Gi.cache.delete(J)}async function hJ0(J){if(J.config.type==="sdk")return J;let Q=await ej(J.name,J.config);if(Q.type!=="connected")throw new KF(`MCP server "${J.name}" is not connected`,"MCP server not connected");return Q}function UR6(J,Q){if(J.type!==Q.type)return!1;let{scope:X,...Z}=J,{scope:Y,...q}=Q;return l0(Z)===l0(q)}function MA7(J,Q){let X=Object.keys(J);return X.length>0?X.map((Z)=>`${Z}=${String(J[Z])}`).join(" "):Q}async function nE(J,Q,X){return(await _R6({client:X,tool:J,args:Q,signal:u7().signal})).content}async function MM(J,Q){try{GF(),await lB(J,Q);let X=await ej(J,Q);if(X.type!=="connected")return{client:X,tools:[],commands:[]};if(Q.type==="glockai-proxy")mv1(J);let Z=!!X.capabilities?.resources,[Y,q,K,G]=await Promise.all([BL(X),Gi(X),Promise.resolve([]),Z?pE(X):Promise.resolve([])]),z=[...q,...K],W=[];if(Z){if(![mE,dE].some((B)=>Y.some((U)=>VQ(U,B.name))))W.push(mE,dE)}return{client:X,tools:[...Y,...W],commands:z,resources:G.length>0?G:void 0}}catch(X){return $X(J,`Error during reconnection: ${Q1(X)}`),{client:{name:J,type:"failed",config:Q},tools:[],commands:[]}}}async function GR6(J,Q,X){await Yv1(J,X,{concurrency:Q})}async function rJ0(J,Q){let X=!1,Z=Object.entries(Q??(await jc0()).servers),Y=[];for(let O of Z)if(VH(O[0]))J({client:{name:O[0],type:"disabled",config:O[1]},tools:[],commands:[]});else Y.push(O);let q=Y.length,K=x8(Y,([O,L])=>L.type==="stdio"),G=x8(Y,([O,L])=>L.type==="sse"),z=x8(Y,([O,L])=>L.type==="http"),W=x8(Y,([O,L])=>L.type==="sse-ide"),H=x8(Y,([O,L])=>L.type==="ws-ide"),B=Y.filter(([O,L])=>KR6(L)),U=Y.filter(([O,L])=>!KR6(L)),F={totalServers:q,stdioCount:K,sseCount:G,httpCount:z,sseIdeCount:W,wsIdeCount:H},_=async([O,L])=>{try{if(VH(O)){J({client:{name:O,type:"disabled",config:L},tools:[],commands:[]});return}if((L.type==="glockai-proxy"||L.type==="http"||L.type==="sse")&&(await FA7(O)||(L.type==="http"||L.type==="sse")&&uA6(O,L))){w1(O,"Skipping connection (cached needs-auth)"),J({client:{name:O,type:"needs-auth",config:L},tools:[Zf1(O,L)],commands:[]});return}let N=await ej(O,L,F);if(N.type!=="connected"){J({client:N,tools:N.type==="needs-auth"?[Zf1(O,L)]:[],commands:[]});return}if(L.type==="glockai-proxy")mv1(O);let A=!!N.capabilities?.resources,[R,D,$,y]=await Promise.all([BL(N),Gi(N),Promise.resolve([]),A?pE(N):Promise.resolve([])]),v=[...D,...$],E=[];if(A&&!X)X=!0,E.push(mE,dE);J({client:N,tools:[...R,...E],commands:v,resources:y.length>0?y:void 0})}catch(N){$X(O,`Error fetching tools/commands/resources: ${Q1(N)}`),J({client:{name:O,type:"failed",config:L},tools:[],commands:[]})}};await Promise.all([GR6(B,NA7(),_),GR6(U,wA7(),_)])}function DF0(J){return new Promise((Q)=>{let X=0,Z=0;if(X=Object.keys(J).length,X===0){Q({clients:[],tools:[],commands:[]});return}let Y=[],q=[],K=[];rJ0((G)=>{if(Y.push(G.client),q.push(...G.tools),K.push(...G.commands),Z++,Z>=X){let z=K.reduce((W,H)=>{let B=H.name.length+(H.description??"").length+(H.argumentHint??"").length;return W+B},0);l("jarvis_api_error",{tools_count:q.length,commands_count:K.length,commands_metadata_length:z}),Q({clients:Y,tools:q,commands:K})}},J).catch((G)=>{$X("prefetchAllMcpResources",`Failed to get MCP resources: ${Q1(G)}`),Q({clients:[],tools:[],commands:[]})})})}async function FR6(J,Q){switch(J.type){case"text":return[{type:"text",text:J.text}];case"audio":{let X=J;return await zR6(Buffer.from(X.data,"base64"),X.mimeType,Q,`[Audio from ${Q}] `)}case"image":{let X=Buffer.from(String(J.data),"base64"),Z=J.mimeType?.split("/")[1]||"png",Y=await rN(X,X.length,Z);return[{type:"image",source:{data:Y.buffer.toString("base64"),media_type:`image/${Y.mediaType}`,type:"base64"}}]}case"resource":{let X=J.resource,Z=`[Resource from ${Q} at ${X.uri}] `;if("text"in X)return[{type:"text",text:`${Z}${X.text}`}];else if("blob"in X)if(LA7.has(X.mimeType??"")){let q=Buffer.from(X.blob,"base64"),K=X.mimeType?.split("/")[1]||"png",G=await rN(q,q.length,K),z=[];if(Z)z.push({type:"text",text:Z});return z.push({type:"image",source:{data:G.buffer.toString("base64"),media_type:`image/${G.mediaType}`,type:"base64"}}),z}else return await zR6(Buffer.from(X.blob,"base64"),X.mimeType,Q,Z);return[]}case"resource_link":{let X=J,Z=`[Resource link: ${X.name}] ${X.uri}`;if(X.description)Z+=` (${X.description})`;return[{type:"text",text:Z}]}default:return[]}}async function zR6(J,Q,X,Z){let Y=`mcp-${ZG(X)}-blob-${Date.now()}-${Math.random().toString(36).slice(2,8)}`,q=await nJ0(J,Q,Y);if("error"in q)return[{type:"text",text:`${Z}Binary content (${Q||"unknown type"}, ${J.length} bytes) could not be saved to disk: ${q.error}`}];return[{type:"text",text:xc0(q.filepath,Q,q.size,Z)}]}function lc0(J,Q=2){if(J===null)return"null";if(Array.isArray(J)){if(J.length===0)return"[]";return`[${lc0(J[0],Q-1)}]`}if(typeof J==="object"){if(Q<=0)return"{...}";let Z=Object.entries(J).slice(0,10).map(([q,K])=>`${q}: ${lc0(K,Q-1)}`),Y=Object.keys(J).length>10?", ...":"";return`{${Z.join(", ")}${Y}}`}return typeof J}async function DA7(J,Q,X){if(J&&typeof J==="object"){if("toolResult"in J)return{content:String(J.toolResult),type:"toolResult"};if("structuredContent"in J&&J.structuredContent!==void 0)return{content:l0(J.structuredContent),type:"structuredContent",schema:lc0(J.structuredContent)};if("content"in J&&Array.isArray(J.content)){let Y=(await Promise.all(J.content.map((q)=>FR6(q,X)))).flat();return{content:Y,type:"contentArray",schema:lc0(Y)}}}let Z=`MCP server "${X}" tool "${Q}": unexpected response format`;throw $X(X,Z),new KF(Z,"MCP tool unexpected response format")}function $A7(J){if(!J||typeof J==="string")return!1;return J.some((Q)=>Q.type==="image")}async function jA7(J,Q,X){let{content:Z,type:Y,schema:q}=await DA7(J,Q,X);if(X==="ide")return Z;if(!await Pv1(Z))return Z;let K=zF0(Z);if(!Z)return Z;if($A7(Z))return l("jarvis_api_error",{outcome:"truncated",reason:"contains_images",sizeEstimateTokens:K}),await Dw6(Z);let G=Date.now(),z=`mcp-${ZG(X)}-${ZG(Q)}-${G}`,W=typeof Z==="string"?Z:l0(Z,null,2),H=await wk0(W,z);if(Ak0(H)){let U=W.length;return l("jarvis_api_error",{outcome:"truncated",reason:"persist_failed",sizeEstimateTokens:K}),`Error: result (${U.toLocaleString()} characters) exceeds maximum allowed tokens. Failed to save output to file: ${H.error}. If this MCP server provides pagination or filtering tools, use them to retrieve specific portions of the data.`}l("jarvis_api_error",{outcome:"persisted",reason:"file_saved",sizeEstimateTokens:K,persistedSizeChars:H.originalSize});let B=cA6(Y,q);return dA6(H.filepath,H.originalSize,B)}async function IA7({client:J,clientConnection:Q,tool:X,args:Z,meta:Y,signal:q,setAppState:K,onProgress:G,callToolFn:z=_R6,handleElicitation:W}){for(let B=0;;B++)try{return await z({client:J,tool:X,args:Z,meta:Y,signal:q,onProgress:G})}catch(U){if(!(U instanceof O9)||U.code!==J7.UrlElicitationRequired)throw U;if(B>=3)throw U;let F=U.data,O=(F!=null&&typeof F==="object"&&"elicitations"in F&&Array.isArray(F.elicitations)?F.elicitations:[]).filter((N)=>{if(N==null||typeof N!=="object")return!1;let A=N;return A.mode==="url"&&typeof A.url==="string"&&typeof A.elicitationId==="string"&&typeof A.message==="string"}),L=Q.type==="connected"?Q.name:"unknown";if(O.length===0)throw w1(L,`Tool '${X}' returned -32042 but no valid elicitations in error data`),U;w1(L,`Tool '${X}' requires URL elicitation (error -32042, attempt ${B+1}), processing ${O.length} elicitation(s)`);for(let N of O){let{elicitationId:A}=N,R=await wF0(L,N,q);if(R){if(w1(L,`URL elicitation ${A} resolved by hook: ${l0(R)}`),R.action!=="accept")return{content:`URL elicitation was ${R.action==="decline"?"declined":R.action+"ed"} by a hook. The tool "${X}" could not complete because it requires the user to open a URL.`};continue}let D;if(W)D=await W(L,N,q);else{let y={actionLabel:"Retry now",showCancel:!0};D=await new Promise((v)=>{let E=()=>{v({action:"cancel"})};if(q.aborted){E();return}q.addEventListener("abort",E,{once:!0}),K((C)=>({...C,elicitation:{queue:[...C.elicitation.queue,{serverName:L,requestId:`error-elicit-${A}`,params:N,signal:q,waitingState:y,respond:(S)=>{if(S.action==="accept")return;q.removeEventListener("abort",E),v(S)},onWaitingDismiss:(S)=>{if(q.removeEventListener("abort",E),S==="retry")v({action:"accept"});else v({action:"cancel"})}}]}}))})}let $=await AF0(L,D,q,"url",A);if($.action!=="accept")return w1(L,`User ${$.action==="decline"?"declined":$.action+"ed"} URL elicitation ${A}`),{content:`URL elicitation was ${$.action==="decline"?"declined":$.action+"ed"} by the user. The tool "${X}" could not complete because it requires the user to open a URL.`};w1(L,`Elicitation ${A} completed, retrying tool call`)}}}async function _R6({client:{client:J,name:Q,config:X},tool:Z,args:Y,meta:q,signal:K,onProgress:G}){let z=Date.now(),W;try{w1(Q,`Calling MCP tool: ${Z}`),W=setInterval((A,R,D)=>{let $=Date.now()-A,v=`${Math.floor($/1000)}s`;w1(R,`Tool '${D}' still running (${v} elapsed)`)},30000,z,Q,Z);let H=qA7(),B,U=new Promise((A,R)=>{B=setTimeout((D,$,y,v)=>{D(new KF(`MCP server "${$}" tool "${y}" timed out after ${Math.floor(v/1000)}s`,"MCP tool timeout"))},H,R,Q,Z,H)}),F=await Promise.race([J.callTool({name:Z,arguments:Y,_meta:q},Tk,{signal:K,timeout:H,onprogress:G?(A)=>{G({type:"mcp_progress",status:"progress",serverName:Q,toolName:Z,progress:A.progress,total:A.total,progressMessage:A.message})}:void 0}),U]).finally(()=>{if(B)clearTimeout(B)});if("isError"in F&&F.isError){let A="Unknown error";if("content"in F&&Array.isArray(F.content)&&F.content.length>0){let R=F.content[0];if(R&&typeof R==="object"&&"text"in R)A=R.text}else if("error"in F)A=String(F.error);throw $X(Q,A),new nc0(A,"MCP tool returned error","_meta"in F&&F._meta?{_meta:F._meta}:void 0)}let _=Date.now()-z,O=_<1000?`${_}ms`:_<60000?`${Math.floor(_/1000)}s`:`${Math.floor(_/60000)}m ${Math.floor(_%60000/1000)}s`;w1(Q,`Tool '${Z}' completed successfully in ${O}`);let L=H_6(Q);if(L)l("jarvis_api_error",{tool:L,source:"mcp",success:!0});return{content:await jA7(F,Z,Q),_meta:F._meta,structuredContent:F.structuredContent}}catch(H){if(W!==void 0)clearInterval(W);let B=Date.now()-z;if(H instanceof Error&&H.name!=="AbortError")w1(Q,`Tool '${Z}' failed after ${Math.floor(B/1000)}s: ${H.message}`);if(H instanceof Error){if(("code"in H?H.code:void 0)===401||H instanceof o3)throw w1(Q,"Tool call returned 401 Unauthorized - token may have expired"),l("jarvis_api_error",{}),new ic0(Q,`MCP server "${Q}" requires re-authorization (token expired)`);let F=WR6(H),_="code"in H&&H.code===-32000&&H.message.includes("Connection closed")&&(X.type==="http"||X.type==="glockai-proxy");if(F||_)throw w1(Q,`MCP session expired during tool call (${F?"404/-32001":"connection closed"}), clearing connection cache for re-initialization`),l("jarvis_api_error",{}),await lB(Q,X),new Uf1(Q)}if(!(H instanceof Error)||H.name!=="AbortError")throw H;return{content:void 0}}finally{if(W!==void 0)clearInterval(W)}}function yA7(J){if(J.message.content[0]?.type!=="tool_use")return;return J.message.content[0].id}async function OR6(J,Q){let X=[],Z=[],Y=await Promise.allSettled(Object.entries(J).map(async([q,K])=>{let G=new Kf1(q,Q),z=new _p0({name:"glock",title:"Glock",version:"0.1.16",description:"Glock's agentic coding tool",websiteUrl:r20},{capabilities:{}});try{await z.connect(G);let W=z.getServerCapabilities(),H={type:"connected",name:q,capabilities:W||{},client:z,config:{...K,scope:"dynamic"},cleanup:async()=>{await z.close()}},B=[];if(W?.tools){let U=await BL(H);B.push(...U)}return{client:H,tools:B}}catch(W){return $X(q,`Failed to connect SDK MCP server: ${W}`),{client:{type:"failed",name:q,config:{...K,scope:"user"}},tools:[]}}}));for(let q of Y)if(q.status==="fulfilled")X.push(q.value.client),Z.push(...q.value.tools);return{clients:X,tools:Z}}var ic0,Uf1,nc0,YA7=1e8,RF0=2048,UA7=900000,MF0=null,YR6,LA7,BR6=60000,VA7="application/json, text/event-stream",AA7,ej,_f1=20,BL,pE,Gi;var dB=I(()=>{IV6();cV6();nV6();aV6();lF();Sp0();IJ();eV6();QN6();N1();$Z();s6();Gc0();Ew6();pA6();hc0();nq();N9();EX();EE1();Z1();t1();T1();lk();b5();aN();M1();kc0();Ev1();eA6();Mb();lb();PO();iE();md();CB();D1();pc0();MO();az();nl();XR6();Zp();Ki();pJ0();HL();ZR6();t1();i1();ic0=class ic0 extends Error{serverName;constructor(J,Q){super(Q);this.name="McpAuthError",this.serverName=J}};Uf1=class Uf1 extends Error{constructor(J){super(`MCP server "${J}" session expired`);this.name="McpSessionExpiredError"}};nc0=class nc0 extends KF{mcpMeta;constructor(J,Q,X){super(J,Q);this.mcpMeta=X;this.name="McpToolCallError"}};YR6=Promise.resolve();LA7=new Set(["image/jpeg","image/png","image/gif","image/webp"]);AA7=["mcp__ide__executeCode","mcp__ide__getDiagnostics"];ej=g1(async(J,Q,X)=>{let Z=Date.now(),Y;try{let q,K=$2();if(Q.type==="sse"){let u=new qi(J,Q),x=await cc0(J,Q),m={authProvider:u,fetch:zf1(Xf1(ll(),u)),requestInit:{headers:{"User-Agent":dk(),...x}}};m.eventSourceInit={fetch:async(p,c)=>{let r={},J0=await u.tokens();if(J0)r.Authorization=`Bearer ${J0.access_token}`;let n=Sc();return fetch(p,{...c,...n,headers:{"User-Agent":dk(),...r,...c?.headers,...x,Accept:"text/event-stream"}})}},q=new Cp0(new URL(Q.url),m),w1(J,"SSE transport initialized, awaiting connection")}else if(Q.type==="sse-ide"){w1(J,`Setting up SSE-IDE transport to ${Q.url}`);let u=Sc(),x=u.dispatcher?{eventSourceInit:{fetch:async(m,p)=>{return fetch(m,{...p,...u,headers:{"User-Agent":dk(),...p?.headers}})}}}:{};q=new Cp0(new URL(Q.url),Object.keys(x).length>0?x:void 0)}else if(Q.type==="ws-ide"){let u=QN(),x={"User-Agent":dk(),...Q.authToken&&{"X-Glock-Ide-Authorization":Q.authToken}},m;if(typeof Bun<"u")m=new globalThis.WebSocket(Q.url,{protocols:["mcp"],headers:x,proxy:OP(Q.url),tls:u||void 0});else m=await qR6(Q.url,{headers:x,agent:_P(Q.url),...u||{}});q=new gc0(m)}else if(Q.type==="ws"){w1(J,`Initializing WebSocket transport to ${Q.url}`);let u=await cc0(J,Q),x=QN(),m={"User-Agent":dk(),...K&&{Authorization:`Bearer ${K}`},...u},p=xk(m,(r,J0)=>J0.toLowerCase()==="authorization"?"[REDACTED]":r);w1(J,`WebSocket transport options: ${l0({url:Q.url,headers:p,hasSessionAuth:!!K})}`);let c;if(typeof Bun<"u")c=new globalThis.WebSocket(Q.url,{protocols:["mcp"],headers:m,proxy:OP(Q.url),tls:x||void 0});else c=await qR6(Q.url,{headers:m,agent:_P(Q.url),...x||{}});q=new gc0(c)}else if(Q.type==="http"){w1(J,`Initializing HTTP transport to ${Q.url}`),w1(J,`Node version: ${process.version}, Platform: ${process.platform}`),w1(J,`Environment: ${l0({NODE_OPTIONS:process.env.NODE_OPTIONS||"not set",UV_THREADPOOL_SIZE:process.env.UV_THREADPOOL_SIZE||"default",HTTP_PROXY:process.env.HTTP_PROXY||"not set",HTTPS_PROXY:process.env.HTTPS_PROXY||"not set",NO_PROXY:process.env.NO_PROXY||"not set"})}`);let u=new qi(J,Q),x=await cc0(J,Q),m=!!await u.tokens(),p=Sc();w1(J,`Proxy options: ${p.dispatcher?"custom dispatcher":"default"}`);let c={authProvider:u,fetch:zf1(Xf1(ll(),u)),requestInit:{...p,headers:{"User-Agent":dk(),...K&&!m&&{Authorization:`Bearer ${K}`},...x}}},r=c.requestInit?.headers?xk(c.requestInit.headers,(J0,n)=>n.toLowerCase()==="authorization"?"[REDACTED]":J0):void 0;w1(J,`HTTP transport options: ${l0({url:Q.url,headers:r,hasAuthProvider:!!u,timeoutMs:BR6})}`),q=new vp0(new URL(Q.url),c),w1(J,"HTTP transport created successfully")}else if(Q.type==="sdk")throw Error("SDK servers should be handled in print.ts");else if(Q.type==="glockai-proxy"){if(w1(J,`Initializing glock proxy transport for server ${Q.id}`),!eJ())throw Error("No glock OAuth token found");let x=qJ(),m=`${x.MCP_PROXY_URL}${x.MCP_PROXY_PATH.replace("{server_id}",Q.id)}`;w1(J,`Using glock proxy at ${m}`);let p=OA7(globalThis.fetch),c=Sc(),r={fetch:zf1(p),requestInit:{...c,headers:{"User-Agent":dk(),"X-Mcp-Client-Session-Id":A1()}}};q=new vp0(new URL(m),r),w1(J,"glock proxy transport created successfully")}else if(Q.type==="stdio"||!Q.type){let u=process.env.GLOCK_SHELL_PREFIX||Q.command,x=process.env.GLOCK_SHELL_PREFIX?[[Q.command,...Q.args].join(" ")]:Q.args;q=new Qv1({command:u,args:x,env:{...pR(),...Q.env},stderr:"pipe"})}else throw Error(`Unsupported server type: ${Q.type}`);let G,z="";if(Q.type==="stdio"||!Q.type){let u=q;if(u.stderr)G=(x)=>{if(z.length<67108864)try{z+=x.toString()}catch{}},u.stderr.on("data",G)}let W=new _p0({name:"glock",title:"Glock",version:"0.1.16",description:"Glock's agentic coding tool",websiteUrl:r20},{capabilities:{roots:{},elicitation:{}}});if(Q.type==="http")w1(J,"Client created, setting up request handler");if(W.setRequestHandler(dT1,async()=>{return w1(J,"Received ListRoots request from server"),{roots:[{uri:`file://${j8()}`}]}}),w1(J,`Starting connection with timeout of ${dc0()}ms`),Q.type==="http"){w1(J,`Testing basic HTTP connectivity to ${Q.url}`);try{let u=new URL(Q.url);if(w1(J,`Parsed URL: host=${u.hostname}, port=${u.port||"default"}, protocol=${u.protocol}`),u.hostname==="127.0.0.1"||u.hostname==="localhost")w1(J,`Using loopback address: ${u.hostname}`)}catch(u){w1(J,`Failed to parse URL: ${u}`)}}let H=W.connect(q),B=new Promise((u,x)=>{let m=setTimeout(()=>{let p=Date.now()-Z;if(w1(J,`Connection timeout triggered after ${p}ms (limit: ${dc0()}ms)`),Y)Y.close().catch(()=>{});q.close().catch(()=>{}),x(new KF(`MCP server "${J}" connection timed out after ${dc0()}ms`,"MCP connection timeout"))},dc0());H.then(()=>{clearTimeout(m)},(p)=>{clearTimeout(m)})});try{if(await Promise.race([H,B]),z)$X(J,`Server stderr: ${z}`),z="";let u=Date.now()-Z;w1(J,`Successfully connected (transport: ${Q.type||"stdio"}) in ${u}ms`)}catch(u){let x=Date.now()-Z;if(Q.type==="sse"&&u instanceof Error){if(w1(J,`SSE Connection failed after ${x}ms: ${l0({url:Q.url,error:u.message,errorType:u.constructor.name,stack:u.stack})}`),$X(J,u),u instanceof o3)return Gf1(J,Q,"sse")}else if(Q.type==="http"&&u instanceof Error){let m=u;if(w1(J,`HTTP Connection failed after ${x}ms: ${u.message} (code: ${m.code||"none"}, errno: ${m.errno||"none"})`),$X(J,u),u instanceof o3)return Gf1(J,Q,"http")}else if(Q.type==="glockai-proxy"&&u instanceof Error){if(w1(J,`glock proxy connection failed after ${x}ms: ${u.message}`),$X(J,u),u.code===401)return Gf1(J,Q,"glockai-proxy")}else if(Q.type==="sse-ide"||Q.type==="ws-ide")l("jarvis_api_error",{connectionDurationMs:x});if(Y)Y.close().catch(()=>{});if(q.close().catch(()=>{}),z)$X(J,`Server stderr: ${z}`);throw u}let U=W.getServerCapabilities(),F=W.getServerVersion(),_=W.getInstructions(),O=_;if(_&&_.length>RF0)O=_.slice(0,RF0)+"\u2026 [truncated]",w1(J,`Server instructions truncated from ${_.length} to ${RF0} chars`);if(w1(J,`Connection established with capabilities: ${l0({hasTools:!!U?.tools,hasPrompts:!!U?.prompts,hasResources:!!U?.resources,hasResourceSubscribe:!!U?.resources?.subscribe,serverVersion:F||"unknown"})}`),b(`[MCP] Server "${J}" connected with subscribe=${!!U?.resources?.subscribe}`),W.setRequestHandler(xE,async(u)=>{return w1(J,`Elicitation request received during initialization: ${l0(u)}`),{action:"cancel"}}),Q.type==="sse-ide"||Q.type==="ws-ide"){let u=Date.now()-Z;l("jarvis_api_error",{connectionDurationMs:u,serverVersion:F});try{LR6(W)}catch(x){$X(J,`Failed to send ide_connected notification: ${x}`)}}let L=Date.now(),N=!1,A=W.onerror,R=W.onclose,D=0,$=3,y=!1,v=(u)=>{if(y)return;y=!0,w1(J,`Closing transport (${u})`),W.close().catch((x)=>{w1(J,`Error during close: ${Q1(x)}`)})},E=(u)=>{return u.includes("ECONNRESET")||u.includes("ETIMEDOUT")||u.includes("EPIPE")||u.includes("EHOSTUNREACH")||u.includes("ECONNREFUSED")||u.includes("Body Timeout Error")||u.includes("terminated")||u.includes("SSE stream disconnected")||u.includes("Failed to reconnect SSE stream")};W.onerror=(u)=>{let x=Date.now()-L;N=!0;let m=Q.type||"stdio";if(w1(J,`${m.toUpperCase()} connection dropped after ${Math.floor(x/1000)}s uptime`),u.message)if(u.message.includes("ECONNRESET"))w1(J,"Connection reset - server may have crashed or restarted");else if(u.message.includes("ETIMEDOUT"))w1(J,"Connection timeout - network issue or server unresponsive");else if(u.message.includes("ECONNREFUSED"))w1(J,"Connection refused - server may be down");else if(u.message.includes("EPIPE"))w1(J,"Broken pipe - server closed connection unexpectedly");else if(u.message.includes("EHOSTUNREACH"))w1(J,"Host unreachable - network connectivity issue");else if(u.message.includes("ESRCH"))w1(J,"Process not found - stdio server process terminated");else if(u.message.includes("spawn"))w1(J,"Failed to spawn process - check command and permissions");else w1(J,`Connection error: ${u.message}`);if((m==="http"||m==="glockai-proxy")&&WR6(u)){if(w1(J,"MCP session expired (server returned 404 with session-not-found), triggering reconnection"),v("session expired"),A)A(u);return}if(m==="sse"||m==="http"||m==="glockai-proxy"){if(u.message.includes("Maximum reconnection attempts")){if(v("SSE reconnection exhausted"),A)A(u);return}if(E(u.message)){if(D++,w1(J,`Terminal connection error ${D}/${$}`),D>=$)D=0,v("max consecutive terminal errors")}else D=0}if(A)A(u)},W.onclose=()=>{let u=Date.now()-L,x=Q.type??"unknown";w1(J,`${x.toUpperCase()} connection closed after ${Math.floor(u/1000)}s (${N?"with errors":"cleanly"})`);let m=Hf1(J,Q);if(BL.cache.delete(J),pE.cache.delete(J),Gi.cache.delete(J),ej.cache.delete(m),w1(J,"Cleared connection cache for reconnection"),R)R()};let C=async()=>{if(Y){try{await Y.close()}catch(u){w1(J,`Error closing in-process server: ${u}`)}try{await W.close()}catch(u){w1(J,`Error closing client: ${u}`)}return}if(G&&(Q.type==="stdio"||!Q.type))q.stderr?.off("data",G);if(Q.type==="stdio")try{let x=q.pid;if(x){w1(J,"Sending SIGINT to MCP server process");try{process.kill(x,"SIGINT")}catch(m){w1(J,`Error sending SIGINT: ${m}`);return}await new Promise(async(m)=>{let p=!1,c=setInterval(()=>{try{process.kill(x,0)}catch{if(!p)p=!0,clearInterval(c),clearTimeout(r),w1(J,"MCP server process exited cleanly"),m()}},50),r=setTimeout(()=>{if(!p)p=!0,clearInterval(c),w1(J,"Cleanup timeout reached, stopping process monitoring"),m()},600);try{if(await FJ(100),!p){try{process.kill(x,0),w1(J,"SIGINT failed, sending SIGTERM to MCP server process");try{process.kill(x,"SIGTERM")}catch(J0){w1(J,`Error sending SIGTERM: ${J0}`),p=!0,clearInterval(c),clearTimeout(r),m();return}}catch{p=!0,clearInterval(c),clearTimeout(r),m();return}if(await FJ(400),!p)try{process.kill(x,0),w1(J,"SIGTERM failed, sending SIGKILL to MCP server process");try{process.kill(x,"SIGKILL")}catch(J0){w1(J,`Error sending SIGKILL: ${J0}`)}}catch{p=!0,clearInterval(c),clearTimeout(r),m()}}if(!p)p=!0,clearInterval(c),clearTimeout(r),m()}catch{if(!p)p=!0,clearInterval(c),clearTimeout(r),m()}})}}catch(u){w1(J,`Error terminating process: ${u}`)}try{await W.close()}catch(u){w1(J,`Error closing client: ${u}`)}},S=UJ(C),k=async()=>{S?.(),await C()},h=Date.now()-Z;return l("jarvis_api_error",{connectionDurationMs:h,transportType:Q.type??"stdio",totalServers:X?.totalServers,stdioCount:X?.stdioCount,sseCount:X?.sseCount,httpCount:X?.httpCount,sseIdeCount:X?.sseIdeCount,wsIdeCount:X?.wsIdeCount,...Wf1(Q)}),{name:J,client:W,type:"connected",capabilities:U??{},serverInfo:F,instructions:O,config:Q,cleanup:k}}catch(q){let K=Date.now()-Z;if(l("jarvis_api_error",{connectionDurationMs:K,totalServers:X?.totalServers||1,stdioCount:X?.stdioCount||(Q.type==="stdio"?1:0),sseCount:X?.sseCount||(Q.type==="sse"?1:0),httpCount:X?.httpCount||(Q.type==="http"?1:0),sseIdeCount:X?.sseIdeCount||(Q.type==="sse-ide"?1:0),wsIdeCount:X?.wsIdeCount||(Q.type==="ws-ide"?1:0),transportType:Q.type??"stdio",...Wf1(Q)}),w1(J,`Connection failed after ${K}ms: ${Q1(q)}`),$X(J,`Connection failed: ${Q1(q)}`),Y)Y.close().catch(()=>{});return{name:J,type:"failed",config:Q,error:Q1(q)}}},Hf1);BL=yz(async(J)=>{if(J.type!=="connected")return[];try{if(!J.capabilities?.tools)return[];let Q=await J.client.request({method:"tools/list"},k20),X=ik(Q.tools),Z=J.config.type==="sdk"&&W1(process.env.GLOCK_AGENT_SDK_MCP_NO_PREFIX);return X.map((Y)=>{let q=Oz0(J.name,Y.name);return{...Pw6,name:Z?Y.name:q,mcpInfo:{serverName:J.name,toolName:Y.name},isMcp:!0,searchHint:typeof Y._meta?.["glock/searchHint"]==="string"?Y._meta["glock/searchHint"].replace(/\s+/g," ").trim()||void 0:void 0,alwaysLoad:Y._meta?.["glock/alwaysLoad"]===!0,async description(){return Y.description??""},async prompt(){let K=Y.description??"";return K.length>RF0?K.slice(0,RF0)+"\u2026 [truncated]":K},isConcurrencySafe(){return Y.annotations?.readOnlyHint??!1},isReadOnly(){return Y.annotations?.readOnlyHint??!1},toAutoClassifierInput(K){return MA7(K,Y.name)},isDestructive(){return Y.annotations?.destructiveHint??!1},isOpenWorld(){return Y.annotations?.openWorldHint??!1},isSearchOrReadCommand(){return QR6(J.name,Y.name)},inputJSONSchema:Y.inputSchema,async checkPermissions(){return{behavior:"passthrough",message:"MCPTool requires permission.",suggestions:[{type:"addRules",rules:[{toolName:q,ruleContent:void 0}],behavior:"allow",destination:"localSettings"}]}},async call(K,G,z,W,H){let B=yA7(W),U=B?{"glockcode/toolUseId":B}:{};if(H&&B)H({toolUseID:B,data:{type:"mcp_progress",status:"started",serverName:J.name,toolName:Y.name}});let F=Date.now(),_=1;for(let O=0;;O++)try{let L=await hJ0(J),N=await IA7({client:L,clientConnection:J,tool:Y.name,args:K,meta:U,signal:G.abortController.signal,setAppState:G.setAppState,onProgress:H&&B?(A)=>{H({toolUseID:B,data:A})}:void 0,handleElicitation:G.handleElicitation});if(H&&B)H({toolUseID:B,data:{type:"mcp_progress",status:"completed",serverName:J.name,toolName:Y.name,elapsedTimeMs:Date.now()-F}});return{data:N.content,...(N._meta||N.structuredContent)&&{mcpMeta:{...N._meta&&{_meta:N._meta},...N.structuredContent&&{structuredContent:N.structuredContent}}}}}catch(L){if(L instanceof Uf1&&O<_){w1(J.name,`Retrying tool '${Y.name}' after session recovery`);continue}if(H&&B)H({toolUseID:B,data:{type:"mcp_progress",status:"failed",serverName:J.name,toolName:Y.name,elapsedTimeMs:Date.now()-F}});if(L instanceof Error&&!(L instanceof KF)){let N=L.constructor.name;if(N==="Error")throw new KF(L.message,L.message.slice(0,200));if(N==="McpError"&&"code"in L&&typeof L.code==="number")throw new KF(L.message,`McpError ${L.code}`)}throw L}},userFacingName(){let K=Y.annotations?.title||Y.name;return`${J.name} - ${K} (MCP)`}}}).filter(RA7)}catch(Q){return $X(J.name,`Failed to fetch tools: ${Q1(Q)}`),[]}},(J)=>J.name,_f1),pE=yz(async(J)=>{if(J.type!=="connected")return[];try{if(!J.capabilities?.resources)return[];let Q=await J.client.request({method:"resources/list"},C20);if(!Q.resources)return[];return Q.resources.map((X)=>({...X,server:J.name}))}catch(Q){return $X(J.name,`Failed to fetch resources: ${Q1(Q)}`),[]}},(J)=>J.name,_f1),Gi=yz(async(J)=>{if(J.type!=="connected")return[];try{if(!J.capabilities?.prompts)return[];let Q=await J.client.request({method:"prompts/list"},S20);if(!Q.prompts)return[];return ik(Q.prompts).map((Z)=>{let Y=Object.values(Z.arguments??{}).map((q)=>q.name);return{type:"prompt",name:"mcp__"+ZG(J.name)+"__"+Z.name,description:Z.description??"",hasUserSpecifiedDescription:!!Z.description,contentLength:0,isEnabled:()=>!0,isHidden:!1,isMcp:!0,progressMessage:"running",userFacingName(){return`${J.name}:${Z.name} (MCP)`},argNames:Y,source:"mcp",async getPromptForCommand(q){let K=q.split(" ");try{let G=await hJ0(J),z=await G.client.getPrompt({name:Z.name,arguments:tV6(Y,K)});return(await Promise.all(z.messages.map((H)=>FR6(H.content,G.name)))).flat()}catch(G){throw $X(J.name,`Error running command '${Z.name}': ${Q1(G)}`),G}}}})}catch(Q){return $X(J.name,`Failed to fetch commands: ${Q1(Q)}`),[]}},(J)=>J.name,_f1)});import{homedir as bA7,platform as VR6}from"os";import{join as iB}from"path";function EA7(J){let Q=bA7(),X=[],Z=NR6[J.toLowerCase()];if(!Z)return X;let Y=process.env.APPDATA||iB(Q,"AppData","Roaming"),q=process.env.LOCALAPPDATA||iB(Q,"AppData","Local");switch(VR6()){case"darwin":if(X.push(iB(Q,"Library","Application Support","JetBrains"),iB(Q,"Library","Application Support")),J.toLowerCase()==="androidstudio")X.push(iB(Q,"Library","Application Support","Google"));break;case"win32":if(X.push(iB(Y,"JetBrains"),iB(q,"JetBrains"),iB(Y)),J.toLowerCase()==="androidstudio")X.push(iB(q,"Google"));break;case"linux":X.push(iB(Q,".config","JetBrains"),iB(Q,".local","share","JetBrains"));for(let K of Z)X.push(iB(Q,"."+K));if(J.toLowerCase()==="androidstudio")X.push(iB(Q,".config","Google"));break;default:break}return X}async function TA7(J){let Q=[],X=Y1(),Z=EA7(J),Y=NR6[J.toLowerCase()];if(!Y)return Q;let q=Y.map((K)=>new RegExp("^"+K));for(let K of Z)try{let G=await X.readdir(K);for(let z of q)for(let W of G){if(!z.test(W.name))continue;if(!W.isDirectory()&&!W.isSymbolicLink())continue;let H=iB(K,W.name);if(VR6()==="linux"){Q.push(H);continue}let B=iB(H,"plugins");try{await X.stat(B),Q.push(B)}catch{}}}catch{continue}return Q.filter((K,G)=>Q.indexOf(K)===G)}async function CA7(J){let Q=await TA7(J);for(let X of Q){let Z=iB(X,PA7);try{return await Y1().stat(Z),!0}catch{}}return!1}async function vA7(J,Q=!1){if(!Q){let Z=Of1.get(J);if(Z)return Z}let X=CA7(J).then((Z)=>{return Lf1.set(J,Z),Z});return Of1.set(J,X),X}async function wR6(J,Q=!1){if(Q)Lf1.delete(J),Of1.delete(J);return vA7(J,Q)}function AR6(J){return Lf1.get(J)??!1}var PA7="glock-jetbrains-plugin",NR6,Lf1,Of1;var Vf1=I(()=>{H6();NR6={pycharm:["PyCharm"],intellij:["IntelliJIdea","IdeaIC"],webstorm:["WebStorm"],phpstorm:["PhpStorm"],rubymine:["RubyMine"],clion:["CLion"],goland:["GoLand"],rider:["Rider"],datagrip:["DataGrip"],appcode:["AppCode"],dataspell:["DataSpell"],aqua:["Aqua"],gateway:["Gateway"],fleet:["Fleet"],androidstudio:["AndroidStudio"]};Lf1=new Map,Of1=new Map});import{execFileSync as RR6}from"child_process";class aJ0{wslDistroName;constructor(J){this.wslDistroName=J}toLocalPath(J){if(!J)return J;if(this.wslDistroName){let Q=J.match(/^\\\\wsl(?:\.localhost|\$)\\([^\\]+)(.*)$/);if(Q&&Q[1]!==this.wslDistroName)return J}try{return RR6("wslpath",["-u",J],{encoding:"utf8",stdio:["pipe","pipe","ignore"]}).trim()}catch{return J.replace(/\\/g,"/").replace(/^([A-Z]):/i,(Q,X)=>`/mnt/${X.toLowerCase()}`)}}toIDEPath(J){if(!J)return J;try{return RR6("wslpath",["-w",J],{encoding:"utf8",stdio:["pipe","pipe","ignore"]}).trim()}catch{return J}}}function MR6(J,Q){let X=J.match(/^\\\\wsl(?:\.localhost|\$)\\([^\\]+)(.*)$/);if(X)return X[1]===Q;return!0}var Nf1=()=>{};function DM(J,Q,X){let Z=nk.useRef(0),Y=nk.useRef(void 0),q=nk.useCallback(()=>{if(Y.current)clearTimeout(Y.current),Y.current=void 0},[]);return nk.useEffect(()=>{return()=>{q()}},[q]),nk.useCallback(()=>{let K=Date.now();if(K-Z.current<=DR6&&Y.current!==void 0)q(),J(!1),Q();else X?.(),J(!0),q(),Y.current=setTimeout((W,H)=>{W(!1),H.current=void 0},DR6,J,Y);Z.current=K},[J,Q,X,q])}var nk,DR6=800;var $F0=I(()=>{nk=T(J1(),1)});function $R6(J,Q,X,Z=!0){let{exit:Y}=d10(),[q,K]=rk.useState({pending:!1,keyName:null}),G=rk.useMemo(()=>X??Y,[X,Y]),z=DM((F)=>K({pending:F,keyName:"Ctrl-C"}),G),W=DM((F)=>K({pending:F,keyName:"Ctrl-D"}),G),H=rk.useCallback(()=>{if(Q?.())return;z()},[z,Q]),B=rk.useCallback(()=>{W()},[W]),U=rk.useMemo(()=>({"app:interrupt":H,"app:exit":B}),[H,B]);return J(U,{context:"Global",isActive:Z}),q}var rk;var jR6=I(()=>{zj1();$F0();rk=T(J1(),1)});function B7(J,Q,X){return $R6(C6,Q,J,X)}var Lq=I(()=>{f6();jR6()});function s1(J){let Q=IR6.c(5),{action:X,context:Z,fallback:Y,description:q,parens:K,bold:G}=J,z=r9(X,Z,Y),W;if(Q[0]!==G||Q[1]!==q||Q[2]!==K||Q[3]!==z)W=yR6.jsxDEV(p1,{shortcut:z,action:q,parens:K,bold:G},void 0,!1,void 0,this),Q[0]=G,Q[1]=q,Q[2]=K,Q[3]=z,Q[4]=W;else W=Q[4];return W}var IR6,yR6;var U7=I(()=>{nz();g9();IR6=T(e0(),1),yR6=T(e(),1)});function V8(J){let Q=bR6.c(5),{children:X}=J,Z,Y;if(Q[0]!==X){Y=Symbol.for("react.early_return_sentinel");J:{let K=sJ0.Children.toArray(X);if(K.length===0){Y=null;break J}Z=K.map(fA7)}Q[0]=X,Q[1]=Z,Q[2]=Y}else Z=Q[1],Y=Q[2];if(Y!==Symbol.for("react.early_return_sentinel"))return Y;let q;if(Q[3]!==Z)q=oJ0.jsxDEV(oJ0.Fragment,{children:Z},void 0,!1,void 0,this),Q[3]=Z,Q[4]=q;else q=Q[4];return q}function fA7(J,Q){return oJ0.jsxDEV(sJ0.default.Fragment,{children:[Q>0&&oJ0.jsxDEV(M,{dimColor:!0,children:" \xB7 "},void 0,!1,void 0,this),J]},sJ0.isValidElement(J)?J.key??Q:Q,!0,void 0,this)}var bR6,sJ0,oJ0;var R9=I(()=>{a0();bR6=T(e0(),1),sJ0=T(J1(),1),oJ0=T(e(),1)});function oF(){return tJ0.useContext(jF0)!==null}function ER6(J){let Q=PR6.c(3),X=tJ0.useContext(jF0),Z;if(Q[0]!==X||Q[1]!==J)Z=X?{rows:X.rows,columns:X.columns}:J,Q[0]=X,Q[1]=J,Q[2]=Z;else Z=Q[2];return Z}function TR6(){return tJ0.useContext(jF0)?.scrollRef??null}var PR6,tJ0,jF0;var rE=I(()=>{PR6=T(e0(),1),tJ0=T(J1(),1),jF0=tJ0.createContext(null)});function w4(J){let Q=CR6.c(21),{width:X,color:Z,char:Y,padding:q,title:K}=J,G=Y===void 0?"\u2500":Y,z=q===void 0?0:q,{columns:W}=l8(),H=Math.max(0,(X??W)-z);if(K){let _=B8(K)+2,O=Math.max(0,H-_),L=Math.floor(O/2),N=O-L,A=!Z,R;if(Q[0]!==G||Q[1]!==L)R=G.repeat(L),Q[0]=G,Q[1]=L,Q[2]=R;else R=Q[2];let D;if(Q[3]!==K)D=IF0.jsxDEV(M,{dimColor:!0,children:IF0.jsxDEV(C9,{children:K},void 0,!1,void 0,this)},void 0,!1,void 0,this),Q[3]=K,Q[4]=D;else D=Q[4];let $;if(Q[5]!==G||Q[6]!==N)$=G.repeat(N),Q[5]=G,Q[6]=N,Q[7]=$;else $=Q[7];let y;if(Q[8]!==Z||Q[9]!==A||Q[10]!==R||Q[11]!==D||Q[12]!==$)y=IF0.jsxDEV(M,{color:Z,dimColor:A,children:[R," ",D," ",$]},void 0,!0,void 0,this),Q[8]=Z,Q[9]=A,Q[10]=R,Q[11]=D,Q[12]=$,Q[13]=y;else y=Q[13];return y}let B=!Z,U;if(Q[14]!==G||Q[15]!==H)U=G.repeat(H),Q[14]=G,Q[15]=H,Q[16]=U;else U=Q[16];let F;if(Q[17]!==Z||Q[18]!==B||Q[19]!==U)F=IF0.jsxDEV(M,{color:Z,dimColor:B,children:U},void 0,!1,void 0,this),Q[17]=Z,Q[18]=B,Q[19]=U,Q[20]=F;else F=Q[20];return F}var CR6,IF0;var $M=I(()=>{U9();x7();a0();CR6=T(e0(),1),IF0=T(e(),1)});function yX(J){let Q=vR6.c(9),{children:X,color:Z}=J;if(oF()){let G;if(Q[0]!==X)G=yF0.jsxDEV(f,{flexDirection:"column",paddingX:1,flexShrink:0,children:X},void 0,!1,void 0,this),Q[0]=X,Q[1]=G;else G=Q[1];return G}let Y;if(Q[2]!==Z)Y=yF0.jsxDEV(w4,{color:Z},void 0,!1,void 0,this),Q[2]=Z,Q[3]=Y;else Y=Q[3];let q;if(Q[4]!==X)q=yF0.jsxDEV(f,{flexDirection:"column",paddingX:2,children:X},void 0,!1,void 0,this),Q[4]=X,Q[5]=q;else q=Q[5];let K;if(Q[6]!==Y||Q[7]!==q)K=yF0.jsxDEV(f,{flexDirection:"column",paddingTop:1,children:[Y,q]},void 0,!0,void 0,this),Q[6]=Y,Q[7]=q,Q[8]=K;else K=Q[8];return K}var vR6,yF0;var t3=I(()=>{rE();a0();$M();vR6=T(e0(),1),yF0=T(e(),1)});function D8(J){let Q=fR6.c(27),{title:X,subtitle:Z,children:Y,onCancel:q,color:K,hideInputGuide:G,hideBorder:z,inputGuide:W,isCancelActive:H}=J,B=K===void 0?"permission":K,U=H===void 0?!0:H,F=B7(void 0,void 0,U),_;if(Q[0]!==U)_={context:"Confirmation",isActive:U},Q[0]=U,Q[1]=_;else _=Q[1];J8("confirm:no",q,_);let O;if(Q[2]!==F.keyName||Q[3]!==F.pending)O=F.pending?j2.jsxDEV(M,{children:["Press ",F.keyName," again to exit"]},void 0,!0,void 0,this):j2.jsxDEV(V8,{children:[j2.jsxDEV(p1,{shortcut:"Enter",action:"confirm"},void 0,!1,void 0,this),j2.jsxDEV(s1,{action:"confirm:no",context:"Confirmation",fallback:"Esc",description:"cancel"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),Q[2]=F.keyName,Q[3]=F.pending,Q[4]=O;else O=Q[4];let L=O,N;if(Q[5]!==B||Q[6]!==X)N=j2.jsxDEV(M,{bold:!0,color:B,children:X},void 0,!1,void 0,this),Q[5]=B,Q[6]=X,Q[7]=N;else N=Q[7];let A;if(Q[8]!==Z)A=Z&&j2.jsxDEV(M,{dimColor:!0,children:Z},void 0,!1,void 0,this),Q[8]=Z,Q[9]=A;else A=Q[9];let R;if(Q[10]!==N||Q[11]!==A)R=j2.jsxDEV(f,{flexDirection:"column",children:[N,A]},void 0,!0,void 0,this),Q[10]=N,Q[11]=A,Q[12]=R;else R=Q[12];let D;if(Q[13]!==Y||Q[14]!==R)D=j2.jsxDEV(f,{flexDirection:"column",gap:1,children:[R,Y]},void 0,!0,void 0,this),Q[13]=Y,Q[14]=R,Q[15]=D;else D=Q[15];let $;if(Q[16]!==L||Q[17]!==F||Q[18]!==G||Q[19]!==W)$=!G&&j2.jsxDEV(f,{marginTop:1,children:j2.jsxDEV(M,{dimColor:!0,italic:!0,children:W?W(F):L},void 0,!1,void 0,this)},void 0,!1,void 0,this),Q[16]=L,Q[17]=F,Q[18]=G,Q[19]=W,Q[20]=$;else $=Q[20];let y;if(Q[21]!==D||Q[22]!==$)y=j2.jsxDEV(j2.Fragment,{children:[D,$]},void 0,!0,void 0,this),Q[21]=D,Q[22]=$,Q[23]=y;else y=Q[23];let v=y;if(z)return v;let E;if(Q[24]!==B||Q[25]!==v)E=j2.jsxDEV(yX,{color:B,children:v},void 0,!1,void 0,this),Q[24]=B,Q[25]=v,Q[26]=E;else E=Q[26];return E}var fR6,j2;var M9=I(()=>{Lq();a0();f6();U7();R9();g9();t3();fR6=T(e0(),1),j2=T(e(),1)});var kR6={};X8(kR6,{hasIdeOnboardingDialogBeenShown:()=>xR6,IdeOnboardingDialog:()=>wf1});function wf1(J){let Q=SR6.c(23),{onDone:X,installationStatus:Z}=J;SA7();let Y;if(Q[0]!==X)Y={"confirm:yes":X,"confirm:no":X},Q[0]=X,Q[1]=Y;else Y=Q[1];let q;if(Q[2]===Symbol.for("react.memo_cache_sentinel"))q={context:"Confirmation"},Q[2]=q;else q=Q[2];C6(Y,q);let K;if(Q[3]!==Z?.ideType)K=Z?.ideType??eJ0(),Q[3]=Z?.ideType,Q[4]=K;else K=Q[4];let G=K,z=jM(G),W;if(Q[5]!==G)W=Vq(G),Q[5]=G,Q[6]=W;else W=Q[6];let H=W,B=Z?.installedVersion,U=z?"plugin":"extension",F=k8.platform==="darwin"?"Cmd+Option+K":"Ctrl+Alt+K",_;if(Q[7]===Symbol.for("react.memo_cache_sentinel"))_=EK.jsxDEV(M,{color:"glock",children:"\u273B "},void 0,!1,void 0,this),Q[7]=_;else _=Q[7];let O;if(Q[8]!==H)O=EK.jsxDEV(EK.Fragment,{children:[_,EK.jsxDEV(M,{children:["Welcome to Glock for ",H]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),Q[8]=H,Q[9]=O;else O=Q[9];let L=B?`installed ${U} v${B}`:void 0,N;if(Q[10]===Symbol.for("react.memo_cache_sentinel"))N=EK.jsxDEV(M,{color:"suggestion",children:"\u29C9 open files"},void 0,!1,void 0,this),Q[10]=N;else N=Q[10];let A;if(Q[11]===Symbol.for("react.memo_cache_sentinel"))A=EK.jsxDEV(M,{children:["\u2022 Glock has context of ",N," ","and ",EK.jsxDEV(M,{color:"suggestion",children:"\u29C9 selected lines"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),Q[11]=A;else A=Q[11];let R;if(Q[12]===Symbol.for("react.memo_cache_sentinel"))R=EK.jsxDEV(M,{color:"diffAddedWord",children:"+11"},void 0,!1,void 0,this),Q[12]=R;else R=Q[12];let D;if(Q[13]===Symbol.for("react.memo_cache_sentinel"))D=EK.jsxDEV(M,{children:["\u2022 Review Glock's changes"," ",R," ",EK.jsxDEV(M,{color:"diffRemovedWord",children:"-22"},void 0,!1,void 0,this)," in the comfort of your IDE"]},void 0,!0,void 0,this),Q[13]=D;else D=Q[13];let $;if(Q[14]===Symbol.for("react.memo_cache_sentinel"))$=EK.jsxDEV(M,{children:["\u2022 Cmd+Esc",EK.jsxDEV(M,{dimColor:!0,children:" for Quick Launch"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),Q[14]=$;else $=Q[14];let y;if(Q[15]===Symbol.for("react.memo_cache_sentinel"))y=EK.jsxDEV(f,{flexDirection:"column",gap:1,children:[A,D,$,EK.jsxDEV(M,{children:["\u2022 ",F,EK.jsxDEV(M,{dimColor:!0,children:" to reference files or lines in your input"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),Q[15]=y;else y=Q[15];let v;if(Q[16]!==X||Q[17]!==O||Q[18]!==L)v=EK.jsxDEV(D8,{title:O,subtitle:L,color:"ide",onCancel:X,hideInputGuide:!0,children:y},void 0,!1,void 0,this),Q[16]=X,Q[17]=O,Q[18]=L,Q[19]=v;else v=Q[19];let E;if(Q[20]===Symbol.for("react.memo_cache_sentinel"))E=EK.jsxDEV(f,{paddingX:1,children:EK.jsxDEV(M,{dimColor:!0,italic:!0,children:"Press Enter to continue"},void 0,!1,void 0,this)},void 0,!1,void 0,this),Q[20]=E;else E=Q[20];let C;if(Q[21]!==v)C=EK.jsxDEV(EK.Fragment,{children:[v,E]},void 0,!0,void 0,this),Q[21]=v,Q[22]=C;else C=Q[22];return C}function xR6(){let J=L1(),Q=kR.terminal||"unknown";return J.hasIdeOnboardingBeenShown?.[Q]===!0}function SA7(){if(xR6())return;let J=kR.terminal||"unknown";q8((Q)=>({...Q,hasIdeOnboardingBeenShown:{...Q.hasIdeOnboardingBeenShown,[J]:!0}}))}var SR6,EK;var Af1=I(()=>{e10();a0();f6();m8();WZ();b5();M9();SR6=T(e0(),1),EK=T(e(),1)});import{createConnection as xA7}from"net";import*as oc0 from"os";import{basename as kA7,join as bF0,sep as ac0,resolve as Rf1}from"path";function cR6(J){try{return process.kill(J,0),!0}catch{return!1}}function hA7(){let J=null;return()=>{if(!J)J=f46(process.ppid,10).then((Q)=>new Set(Q));return J}}function sc0(J){if(!J)return!1;let Q=J90[J];return Q&&Q.ideKind==="vscode"}function jM(J){if(!J)return!1;let Q=J90[J];return Q&&Q.ideKind==="jetbrains"}function eJ0(){if(!tz())return null;return k8.terminal}async function tc0(){try{let J=await gA7();return(await Promise.all(J.map(async(X)=>{try{let Y=(await Y1().readdir(X)).filter((K)=>K.name.endsWith(".lock"));return(await Promise.all(Y.map(async(K)=>{let G=bF0(X,K.name);try{let z=await Y1().stat(G);return{path:G,mtime:z.mtime}}catch{return null}}))).filter((K)=>K!==null)}catch(Z){if(!TX(Z))H0(Z);return[]}}))).flat().sort((X,Z)=>Z.mtime.getTime()-X.mtime.getTime()).map((X)=>X.path)}catch(J){return H0(J),[]}}async function dR6(J){try{let Q=await Y1().readFile(J,{encoding:"utf-8"}),X=[],Z,Y,q=!1,K=!1,G;try{let H=c1(Q);if(H.workspaceFolders)X=H.workspaceFolders;Z=H.pid,Y=H.ideName,q=H.transport==="ws",K=H.runningInWindows===!0,G=H.authToken}catch(H){X=Q.split(`
|
|
1584
|
-
`).map((B)=>B.trim())}let z=J.split(ac0).pop();if(!z)return null;let W=z.replace(".lock","");return{workspaceFolders:X,port:parseInt(W),pid:Z,ideName:Y,useWebSocket:q,runningInWindows:K,authToken:G}}catch(Q){return H0(Q),null}}async function Mf1(J,Q,X=500){try{return new Promise((Z)=>{let Y=xA7({host:J,port:Q,timeout:X});Y.on("connect",()=>{Y.destroy(),Z(!0)}),Y.on("error",()=>{Z(!1)}),Y.on("timeout",()=>{Y.destroy(),Z(!1)})})}catch(Z){return!1}}async function gA7(){let J=[bF0(L8(),"ide")];if(N8()!=="wsl")return J;let Q=await uA7();if(Q){let Z=new aJ0(process.env.WSL_DISTRO_NAME).toLocalPath(Q);J.push(Rf1(Z,".glock","ide"))}try{let Z=await Y1().readdir("/mnt/c/Users");for(let Y of Z){if(!Y.isDirectory()&&!Y.isSymbolicLink())continue;if(Y.name==="Public"||Y.name==="Default"||Y.name==="Default User"||Y.name==="All Users")continue;J.push(bF0("/mnt/c/Users",Y.name,".glock","ide"))}}catch(X){if(TX(X))b(`WSL IDE lockfile path detection failed (${X.code}): ${Q1(X)}`);else H0(X)}return J}async function mA7(){try{let J=await tc0();for(let Q of J){let X=await dR6(Q);if(!X){try{await Y1().unlink(Q)}catch(q){H0(q)}continue}let Z=await tR6(X.runningInWindows,X.port),Y=!1;if(X.pid){if(!cR6(X.pid)){if(N8()!=="wsl")Y=!0;else if(!await Mf1(Z,X.port))Y=!0}}else if(!await Mf1(Z,X.port))Y=!0;if(Y)try{await Y1().unlink(Q)}catch(q){H0(q)}}}catch(J){H0(J)}}async function pA7(J){try{let Q=await dA7(J);if(l("jarvis_api_error",{}),!L1().diffTool)q8((Z)=>({...Z,diffTool:"auto"}));return{installed:!0,error:null,installedVersion:Q,ideType:J}}catch(Q){l("jarvis_api_error",{});let X=Q instanceof Error?Q.message:String(Q);return H0(Q),{installed:!1,error:X,installedVersion:null,ideType:J}}}async function uR6(){if(rc0)rc0.abort();rc0=u7();let J=rc0.signal;await mA7();let Q=Date.now();while(Date.now()-Q<30000&&!J.aborted){if(pm()){await FJ(1000,J);continue}let X=await X90(!1);if(J.aborted)return null;if(X.length===1)return X[0];await FJ(1000,J)}return null}async function X90(J){let Q=[];try{let X=process.env.GLOCK_SSE_PORT,Z=X?parseInt(X):null,Y=j8().normalize("NFC"),q=await tc0(),K=await Promise.all(q.map(dR6)),G=hA7(),z=N8()!=="wsl"&&tz();for(let W of K){if(!W)continue;let H=!1;if(W1(process.env.GLOCK_IDE_SKIP_VALID_CHECK))H=!0;else if(W.port===Z)H=!0;else H=W.workspaceFolders.some((_)=>{if(!_)return!1;let O=_;if(N8()==="wsl"&&W.runningInWindows&&process.env.WSL_DISTRO_NAME){if(!MR6(_,process.env.WSL_DISTRO_NAME))return!1;let N=Rf1(O).normalize("NFC");if(Y===N||Y.startsWith(N+ac0))return!0;O=new aJ0(process.env.WSL_DISTRO_NAME).toLocalPath(_)}let L=Rf1(O).normalize("NFC");if(N8()==="windows"){let N=Y.replace(/^[a-zA-Z]:/,(R)=>R.toUpperCase()),A=L.replace(/^[a-zA-Z]:/,(R)=>R.toUpperCase());return N===A||N.startsWith(A+ac0)}return Y===L||Y.startsWith(L+ac0)});if(!H&&!J)continue;if(z){if(!(Z!==null&&W.port===Z)){if(!W.pid||!cR6(W.pid))continue;if(process.ppid!==W.pid){if(!(await G()).has(W.pid))continue}}}let B=W.ideName??(tz()?Vq(kR.terminal):"IDE"),U=await tR6(W.runningInWindows,W.port),F;if(W.useWebSocket)F=`ws://${U}:${W.port}`;else F=`http://${U}:${W.port}/sse`;Q.push({url:F,name:B,workspaceFolders:W.workspaceFolders,port:W.port,isValid:H,authToken:W.authToken,ideRunningInWindows:W.runningInWindows})}if(!J&&Z){let W=Q.filter((H)=>H.isValid&&H.port===Z);if(W.length===1)return W}}catch(X){H0(X)}return Q}async function LR6(J){await J.notification({method:"ide_connected",params:{pid:process.pid}})}function ec0(J){return J.some((Q)=>Q.type==="connected"&&Q.name==="ide")}async function gR6(J){if(sc0(J)){let Q=await lR6(J);if(Q)try{if((await r8(Q,["--list-extensions"],{env:Jd0()})).stdout?.includes(cA7))return!0}catch{}}else if(jM(J))return await wR6(J);return!1}async function dA7(J){if(sc0(J)){let Q=await lR6(J);if(Q){if(process.env.USER_TYPE==="ant")return await rA7(Q);let X=await lA7(Q);if(!X||Ix0(X,mR6())){await FJ(500);let Z=await r8(Q,["--force","--install-extension","glock.glock"],{env:Jd0()});if(Z.code!==0)throw Error(`${Z.code}: ${Z.error} ${Z.stderr}`);X=mR6()}return X}}return null}function Jd0(){if(N8()==="linux")return{...process.env,DISPLAY:""};return}function mR6(){return"0.1.
|
|
1583
|
+
`;function rA6(J){if(!J.uri||!J.server)return null;return`Read resource "${J.uri}" from server "${J.server}"`}function aA6(){return"readMcpResource"}function oA6(J,Q,{verbose:X}){if(!J||!J.contents||J.contents.length===0)return VF0.jsxDEV(f,{justifyContent:"space-between",overflowX:"hidden",width:"100%",children:VF0.jsxDEV(d1,{height:1,children:VF0.jsxDEV(M,{dimColor:!0,children:"(No content)"},void 0,!1,void 0,this)},void 0,!1,void 0,this)},void 0,!1,void 0,this);let Z=l0(J,null,2);return VF0.jsxDEV(WL,{content:Z,verbose:X},void 0,!1,void 0,this)}var VF0;var sA6=I(()=>{v9();Ji();a0();i1();VF0=T(e(),1)});var iw7,nw7,dE;var hc0=I(()=>{lF();M6();dB();s6();kc0();i1();el();sA6();iw7=k0(()=>j.object({server:j.string().describe("The MCP server name"),uri:j.string().describe("The resource URI to read")})),nw7=k0(()=>j.object({contents:j.array(j.object({uri:j.string().describe("Resource URI"),mimeType:j.string().optional().describe("MIME type of the content"),text:j.string().optional().describe("Text content of the resource"),blobSavedTo:j.string().optional().describe("Path where binary blob content was saved")}))})),dE=_J({isConcurrencySafe(){return!0},isReadOnly(){return!0},toAutoClassifierInput(J){return`${J.server} ${J.uri}`},shouldDefer:!0,name:"ReadMcpResourceTool",searchHint:"read a specific MCP resource by URI",maxResultSizeChars:1e5,async description(){return iA6},async prompt(){return nA6},get inputSchema(){return iw7()},get outputSchema(){return nw7()},async call(J,{options:{mcpClients:Q}}){let{server:X,uri:Z}=J,Y=Q.find((z)=>z.name===X);if(!Y)throw Error(`Server "${X}" not found. Available servers: ${Q.map((z)=>z.name).join(", ")}`);if(Y.type!=="connected")throw Error(`Server "${X}" is not connected`);if(!Y.capabilities?.resources)throw Error(`Server "${X}" does not support resources`);let K=await(await hJ0(Y)).client.request({method:"resources/read",params:{uri:Z}},v20);return{data:{contents:await Promise.all(K.contents.map(async(z,W)=>{if("text"in z)return{uri:z.uri,mimeType:z.mimeType,text:z.text};if(!("blob"in z)||typeof z.blob!=="string")return{uri:z.uri,mimeType:z.mimeType};let H=`mcp-resource-${Date.now()}-${W}-${Math.random().toString(36).slice(2,8)}`,B=await nJ0(Buffer.from(z.blob,"base64"),z.mimeType,H);if("error"in B)return{uri:z.uri,mimeType:z.mimeType,text:`Binary content could not be saved to disk: ${B.error}`};return{uri:z.uri,mimeType:z.mimeType,blobSavedTo:B.filepath,text:xc0(B.filepath,z.mimeType,B.size,`[Resource from ${X} at ${z.uri}] `)}}))}}},renderToolUseMessage:rA6,userFacingName:aA6,renderToolResultMessage:oA6,isResultTruncated(J){return Ww(l0(J))},mapToolResultToToolResultBlockParam(J,Q){return{tool_use_id:Q,type:"tool_result",content:l0(J)}}})});function sz(){return"glock/0.1.17"}function ck(){let J=process.env.GLOCK_AGENT_SDK_VERSION?`, agent-sdk/${process.env.GLOCK_AGENT_SDK_VERSION}`:"",Q=process.env.GLOCK_AGENT_SDK_CLIENT_APP?`, client-app/${process.env.GLOCK_AGENT_SDK_CLIENT_APP}`:"",X=Dk0(),Z=X?`, workload/${X}`:"";return`glock-cli/0.1.17 (${process.env.USER_TYPE}, ${process.env.GLOCK_ENTRYPOINT??"cli"}${J}${Q}${Z})`}function dk(){let J=[];if(process.env.GLOCK_ENTRYPOINT)J.push(process.env.GLOCK_ENTRYPOINT);if(process.env.GLOCK_AGENT_SDK_VERSION)J.push(`agent-sdk/${process.env.GLOCK_AGENT_SDK_VERSION}`);if(process.env.GLOCK_AGENT_SDK_CLIENT_APP)J.push(`client-app/${process.env.GLOCK_AGENT_SDK_CLIENT_APP}`);return`glock/0.1.17${J.length>0?` (${J.join(", ")})`:""}`}function tA6(){return`Glock-User (${sz()}; +https://support.getglock.dev/)`}function lE(){if(q9()){let Q=eJ();if(!Q?.accessToken)return{headers:{},error:"No OAuth token available"};return{headers:{Authorization:`Bearer ${Q.accessToken}`,"glock-beta":hV}}}let J=gc();if(!J)return{headers:{},error:"No API key available"};return{headers:{"x-api-key":J}}}async function NF0(J,Q){try{return await J()}catch(X){if(!y8.isAxiosError(X))throw X;let Z=X.response?.status;if(!(Z===401||Q?.also403Revoked&&Z===403&&typeof X.response?.data==="string"&&X.response.data.includes("OAuth token has been revoked")))throw X;let q=eJ()?.accessToken;if(!q)throw X;return await cS(q),await J()}}var lk=I(()=>{JX();$Z();N9();Z80()});class gc0{ws;started=!1;opened;isBun=typeof Bun<"u";constructor(J){this.ws=J;if(this.opened=new Promise((Q,X)=>{if(this.ws.readyState===uc0)Q();else if(this.isBun){let Z=this.ws,Y=()=>{Z.removeEventListener("open",Y),Z.removeEventListener("error",q),Q()},q=(K)=>{Z.removeEventListener("open",Y),Z.removeEventListener("error",q),n1("error","mcp_websocket_connect_fail"),X(K)};Z.addEventListener("open",Y),Z.addEventListener("error",q)}else{let Z=this.ws;Z.on("open",()=>{Q()}),Z.on("error",(Y)=>{n1("error","mcp_websocket_connect_fail"),X(Y)})}}),this.isBun){let Q=this.ws;Q.addEventListener("message",this.onBunMessage),Q.addEventListener("error",this.onBunError),Q.addEventListener("close",this.onBunClose)}else{let Q=this.ws;Q.on("message",this.onNodeMessage),Q.on("error",this.onNodeError),Q.on("close",this.onNodeClose)}}onclose;onerror;onmessage;onBunMessage=(J)=>{try{let Q=typeof J.data==="string"?J.data:String(J.data),X=c1(Q),Z=LM.parse(X);this.onmessage?.(Z)}catch(Q){this.handleError(Q)}};onBunError=()=>{this.handleError(Error("WebSocket error"))};onBunClose=()=>{this.handleCloseCleanup()};onNodeMessage=(J)=>{try{let Q=c1(J.toString("utf-8")),X=LM.parse(Q);this.onmessage?.(X)}catch(Q){this.handleError(Q)}};onNodeError=(J)=>{this.handleError(J)};onNodeClose=()=>{this.handleCloseCleanup()};handleError(J){n1("error","mcp_websocket_message_fail"),this.onerror?.(R8(J))}handleCloseCleanup(){if(this.onclose?.(),this.isBun){let J=this.ws;J.removeEventListener("message",this.onBunMessage),J.removeEventListener("error",this.onBunError),J.removeEventListener("close",this.onBunClose)}else{let J=this.ws;J.off("message",this.onNodeMessage),J.off("error",this.onNodeError),J.off("close",this.onNodeClose)}}async start(){if(this.started)throw Error("Start can only be called once per transport.");if(await this.opened,this.ws.readyState!==uc0)throw n1("error","mcp_websocket_start_not_opened"),Error("WebSocket is not open. Cannot start transport.");this.started=!0}async close(){if(this.ws.readyState===uc0||this.ws.readyState===rw7)this.ws.close();this.handleCloseCleanup()}async send(J){if(this.ws.readyState!==uc0)throw n1("error","mcp_websocket_send_not_opened"),Error("WebSocket is not open. Cannot send message.");let Q=l0(J);try{if(this.isBun)this.ws.send(Q);else await new Promise((X,Z)=>{this.ws.send(Q,(Y)=>{if(Y)Z(Y);else X()})})}catch(X){throw this.handleError(X),X}}}var rw7=0,uc0=1;var eA6=I(()=>{lF();h4();T1();i1()});function aw7(J){let Q=J,X="",Z=0,Y=10;while(Q!==X&&Z<Y)X=Q,Q=Q.normalize("NFKC"),Q=Q.replace(/[\p{Cf}\p{Co}\p{Cn}]/gu,""),Q=Q.replace(/[\u200B-\u200F]/g,"").replace(/[\u202A-\u202E]/g,"").replace(/[\u2066-\u2069]/g,"").replace(/[\uFEFF]/g,"").replace(/[\uE000-\uF8FF]/g,""),Z++;if(Z>=Y)throw Error(`Unicode sanitization reached maximum iterations (${Y}) for input: ${J.slice(0,100)}`);return Q}function ik(J){if(typeof J==="string")return aw7(J);if(Array.isArray(J))return J.map(ik);if(J!==null&&typeof J==="object"){let Q={};for(let[X,Z]of Object.entries(J))Q[ik(X)]=ik(Z);return Q}return J}function ow7(){let J=ZQ1();if(J!==void 0)return J;let Q=process.env.GLOCK_WEBSOCKET_AUTH_FILE_DESCRIPTOR;if(!Q){let Z=process.env.GLOCK_SESSION_INGRESS_TOKEN_FILE??hv0,Y=p30(Z,"session ingress token");return cm(Y),Y}let X=parseInt(Q,10);if(Number.isNaN(X))return b(`GLOCK_WEBSOCKET_AUTH_FILE_DESCRIPTOR must be a valid file descriptor number, got: ${Q}`,{level:"error"}),cm(null),null;try{let Z=Y1(),Y=process.platform==="darwin"||process.platform==="freebsd"?`/dev/fd/${X}`:`/proc/self/fd/${X}`,q=Z.readFileSync(Y,{encoding:"utf8"}).trim();if(!q)return b("File descriptor contained empty token",{level:"error"}),cm(null),null;return b(`Successfully read token from file descriptor ${X}`),cm(q),iw1(hv0,q,"session ingress token"),q}catch(Z){b(`Failed to read token from file descriptor ${X}: ${Q1(Z)}`,{level:"error"});let Y=process.env.GLOCK_SESSION_INGRESS_TOKEN_FILE??hv0,q=p30(Y,"session ingress token");return cm(q),q}}function $2(){let J=process.env.GLOCK_SESSION_ACCESS_TOKEN;if(J)return J;return ow7()}function mc0(){let J=$2();if(!J)return{};if(J.startsWith("sk-ant-sid")){let Q={Cookie:`sessionKey=${J}`},X=process.env.GLOCK_ORGANIZATION_UUID;if(X)Q["X-Organization-Uuid"]=X;return Q}return{Authorization:`Bearer ${J}`}}var iE=I(()=>{N1();rw1();Z1();T1();H6()});function sw7(J){return J.mode==="url"?"url":"form"}function tw7(J,Q,X){return J.findIndex((Z)=>Z.serverName===Q&&Z.params.mode==="url"&&("elicitationId"in Z.params)&&Z.params.elicitationId===X)}function JR6(J,Q,X){try{J.setRequestHandler(xE,async(Z,Y)=>{w1(Q,`Received elicitation request: ${l0(Z)}`);let q=sw7(Z.params);l("jarvis_api_error",{mode:q});try{let K=await wF0(Q,Z.params,Y.signal);if(K)return w1(Q,`Elicitation resolved by hook: ${l0(K)}`),l("jarvis_api_error",{mode:q,action:K.action}),K;let G=q==="url"&&"elicitationId"in Z.params?Z.params.elicitationId:void 0,W=await new Promise((B)=>{let U=()=>{B({action:"cancel"})};if(Y.signal.aborted){U();return}let F=G?{actionLabel:"Skip confirmation"}:void 0;X((_)=>({..._,elicitation:{queue:[..._.elicitation.queue,{serverName:Q,requestId:Y.requestId,params:Z.params,signal:Y.signal,waitingState:F,respond:(O)=>{Y.signal.removeEventListener("abort",U),l("jarvis_api_error",{mode:q,action:O.action}),B(O)}}]}})),Y.signal.addEventListener("abort",U,{once:!0})});return w1(Q,`Elicitation response: ${l0(W)}`),await AF0(Q,W,Y.signal,q,G)}catch(K){return $X(Q,`Elicitation error: ${K}`),{action:"cancel"}}}),J.setNotificationHandler(u20,(Z)=>{let{elicitationId:Y}=Z.params;w1(Q,`Received elicitation completion notification: ${Y}`),tj({message:`MCP server "${Q}" confirmed elicitation ${Y} complete`,notificationType:"elicitation_complete"});let q=!1;if(X((K)=>{let G=tw7(K.elicitation.queue,Q,Y);if(G===-1)return K;q=!0;let z=[...K.elicitation.queue];return z[G]={...z[G],completed:!0},{...K,elicitation:{queue:z}}}),!q)w1(Q,`Ignoring completion notification for unknown elicitation: ${Y}`)})}catch{return}}async function wF0(J,Q,X){try{let Z=Q.mode==="url"?"url":"form",Y="url"in Q?Q.url:void 0,q="elicitationId"in Q?Q.elicitationId:void 0,{elicitationResponse:K,blockingError:G}=await Yf1({serverName:J,message:Q.message,requestedSchema:"requestedSchema"in Q?Q.requestedSchema:void 0,signal:X,mode:Z,url:Y,elicitationId:q});if(G)return{action:"decline"};if(K)return{action:K.action,content:K.content};return}catch(Z){$X(J,`Elicitation hook error: ${Z}`);return}}async function AF0(J,Q,X,Z,Y){try{let{elicitationResultResponse:q,blockingError:K}=await qf1({serverName:J,action:Q.action,content:Q.content,signal:X,mode:Z,elicitationId:Y});if(K)return tj({message:`Elicitation response for server "${J}": decline`,notificationType:"elicitation_response"}),{action:"decline"};let G=q?{action:q.action,content:q.content??Q.content}:Q;return tj({message:`Elicitation response for server "${J}": ${G.action}`,notificationType:"elicitation_response"}),G}catch(q){return $X(J,`ElicitationResult hook error: ${q}`),tj({message:`Elicitation response for server "${J}": ${Q.action}`,notificationType:"elicitation_response"}),Q}}var pc0=I(()=>{lF();N4();M1();i1();D1()});function QA7(J){return J.replace(/([a-z])([A-Z])/g,"$1_$2").replace(/-/g,"_").toLowerCase()}function QR6(J,Q){let X=QA7(Q);return{isSearch:ew7.has(X),isRead:JA7.has(X)}}var ew7,JA7;var XR6=I(()=>{ew7=new Set(["slack_search_public","slack_search_public_and_private","slack_search_channels","slack_search_users","search_code","search_repositories","search_issues","search_pull_requests","search_orgs","search_users","search_documentation","search_logs","search_spans","search_rum_events","search_audit_logs","search_monitors","search_monitor_groups","find_slow_spans","find_monitors_matching_pattern","search_docs","search_events","search_issue_events","find_organizations","find_teams","find_projects","find_releases","find_dsns","search","gmail_search_messages","google_drive_search","gcal_find_my_free_time","gcal_find_meeting_times","gcal_find_user_emails","search_jira_issues_using_jql","search_confluence_using_cql","lookup_jira_account_id","confluence_search","jira_search","jira_search_fields","asana_search_tasks","asana_typeahead_search","search_files","search_nodes","brave_web_search","brave_local_search","search_dashboards","search_folders","search_docs","search_stripe_resources","search_stripe_documentation","search_articles","find_related_articles","lookup_article_by_citation","search_papers","search_pubmed","search_pubmed_key_words","search_pubmed_advanced","pubmed_search","pubmed_mesh_lookup","firecrawl_search","web_search_exa","web_search_advanced_exa","people_search_exa","linkedin_search_exa","deep_search_exa","perplexity_search","perplexity_search_web","tavily_search","obsidian_simple_search","obsidian_complex_search","find","search_knowledge","search_memories","find_memories_by_name","search_records","find_tasks","find_tasks_by_date","find_completed_tasks","find_projects","find_sections","find_comments","find_project_collaborators","find_activity","find_labels","find_filters","search_documentation","search_catalog","search_modules","search_providers","search_policies"]),JA7=new Set(["slack_read_channel","slack_read_thread","slack_read_canvas","slack_read_user_profile","slack_list_channels","slack_get_channel_history","slack_get_thread_replies","slack_get_users","slack_get_user_profile","get_me","get_team_members","get_teams","get_commit","get_file_contents","get_repository_tree","list_branches","list_commits","list_releases","list_tags","get_latest_release","get_release_by_tag","get_tag","list_issues","issue_read","list_issue_types","get_label","list_label","pull_request_read","get_gist","list_gists","list_notifications","get_notification_details","projects_list","projects_get","actions_get","actions_list","get_job_logs","get_code_scanning_alert","list_code_scanning_alerts","get_dependabot_alert","list_dependabot_alerts","get_secret_scanning_alert","list_secret_scanning_alerts","get_global_security_advisory","list_global_security_advisories","list_org_repository_security_advisories","list_repository_security_advisories","get_discussion","get_discussion_comments","list_discussion_categories","list_discussions","list_starred_repositories","get_issue","get_pull_request","list_pull_requests","get_pull_request_files","get_pull_request_status","get_pull_request_comments","get_pull_request_reviews","list_comments","list_cycles","get_document","list_documents","list_issue_statuses","get_issue_status","list_my_issues","list_issue_labels","list_projects","get_project","list_project_labels","list_teams","get_team","list_users","get_user","aggregate_logs","list_spans","aggregate_spans","analyze_trace","trace_critical_path","query_metrics","aggregate_rum_events","list_rum_metrics","get_rum_metric","list_monitors","get_monitor","check_can_delete_monitor","validate_monitor","validate_existing_monitor","list_dashboards","get_dashboard","query_dashboard_widget","list_notebooks","get_notebook","query_notebook_cell","get_profiling_metrics","compare_profiling_metrics","whoami","get_issue_details","get_issue_tag_values","get_trace_details","get_event_attachment","get_doc","get_sentry_resource","list_events","list_issue_events","get_sentry_issue","fetch","get_comments","get_users","get_self","gmail_get_profile","gmail_read_message","gmail_read_thread","gmail_list_drafts","gmail_list_labels","google_drive_fetch","google_drive_export","gcal_list_calendars","gcal_list_events","gcal_get_event","atlassian_user_info","get_accessible_atlassian_resources","get_visible_jira_projects","get_jira_project_issue_types_metadata","get_jira_issue","get_transitions_for_jira_issue","get_jira_issue_remote_issue_links","get_confluence_spaces","get_confluence_page","get_pages_in_confluence_space","get_confluence_page_ancestors","get_confluence_page_descendants","get_confluence_page_footer_comments","get_confluence_page_inline_comments","confluence_get_page","confluence_get_page_children","confluence_get_comments","confluence_get_labels","jira_get_issue","jira_get_transitions","jira_get_worklog","jira_get_agile_boards","jira_get_board_issues","jira_get_sprints_from_board","jira_get_sprint_issues","jira_get_link_types","jira_download_attachments","jira_batch_get_changelogs","jira_get_user_profile","jira_get_project_issues","jira_get_project_versions","asana_get_attachment","asana_get_attachments_for_object","asana_get_goal","asana_get_goals","asana_get_parent_goals_for_goal","asana_get_portfolio","asana_get_portfolios","asana_get_items_for_portfolio","asana_get_project","asana_get_projects","asana_get_project_sections","asana_get_project_status","asana_get_project_statuses","asana_get_project_task_counts","asana_get_projects_for_team","asana_get_projects_for_workspace","asana_get_task","asana_get_tasks","asana_get_stories_for_task","asana_get_teams_for_workspace","asana_get_teams_for_user","asana_get_team_users","asana_get_time_period","asana_get_time_periods","asana_get_user","asana_get_workspace_users","asana_list_workspaces","read_file","read_text_file","read_media_file","read_multiple_files","list_directory","list_directory_with_sizes","directory_tree","get_file_info","list_allowed_directories","read_graph","open_nodes","query","read_query","list_tables","describe_table","git_status","git_diff","git_diff_unstaged","git_diff_staged","git_log","git_show","git_branch","list_teams","list_users_by_org","get_dashboard_by_uid","get_dashboard_summary","get_dashboard_property","get_dashboard_panel_queries","run_panel_query","list_datasources","get_datasource","get_query_examples","query_prometheus","query_prometheus_histogram","list_prometheus_metric_metadata","list_prometheus_metric_names","list_prometheus_label_names","list_prometheus_label_values","query_loki_logs","query_loki_stats","query_loki_patterns","list_loki_label_names","list_loki_label_values","list_incidents","get_incident","list_sift_investigations","get_sift_investigation","get_sift_analysis","list_oncall_schedules","get_oncall_shift","get_current_oncall_users","list_oncall_teams","list_oncall_users","list_alert_groups","get_alert_group","get_annotations","get_annotation_tags","get_panel_image","list_incidents","get_incident","get_outlier_incident","get_past_incidents","get_related_incidents","list_incident_notes","list_incident_workflows","get_incident_workflow","list_services","get_service","list_team_members","get_user_data","list_schedules","get_schedule","list_schedule_users","list_oncalls","list_log_entries","get_log_entry","list_escalation_policies","get_escalation_policy","list_event_orchestrations","get_event_orchestration","list_status_pages","get_status_page_post","list_alerts_from_incident","get_alert_from_incident","list_change_events","get_change_event","list_organizations","get_organization","get_cost","list_extensions","list_migrations","get_logs","get_advisors","get_project_url","get_publishable_keys","generate_typescript_types","list_edge_functions","get_edge_function","list_storage_buckets","get_storage_config","get_stripe_account_info","retrieve_balance","list_customers","list_products","list_prices","list_invoices","list_payment_intents","list_subscriptions","list_coupons","list_disputes","fetch_stripe_resources","get_article_metadata","get_full_text_article","convert_article_ids","get_copyright_status","download_paper","list_papers","read_paper","get_paper_fulltext","get_pubmed_article_metadata","download_pubmed_pdf","pubmed_fetch","pubmed_pmc_fetch","pubmed_spell","pubmed_cite","pubmed_related","bigquery_query","bigquery_schema","list_dataset_ids","list_table_ids","get_dataset_info","get_table_info","firecrawl_scrape","firecrawl_map","firecrawl_crawl","firecrawl_check_crawl_status","firecrawl_extract","get_code_context_exa","company_research_exa","crawling_exa","deep_researcher_check","perplexity_ask","perplexity_research","perplexity_reason","tavily_extract","tavily_crawl","tavily_map","tavily_research","obsidian_list_files_in_vault","obsidian_list_files_in_dir","obsidian_get_file_contents","obsidian_batch_get_file_contents","obsidian_get_periodic_note","obsidian_get_recent_periodic_notes","obsidian_get_recent_changes","get_figma_data","download_figma_images","browser_console_messages","browser_network_requests","browser_take_screenshot","browser_snapshot","browser_get_config","browser_route_list","browser_cookie_list","browser_cookie_get","browser_localstorage_list","browser_localstorage_get","browser_sessionstorage_list","browser_sessionstorage_get","browser_storage_state","puppeteer_screenshot","list_databases","list_collections","collection_indexes","collection_schema","collection_storage_size","db_stats","explain","mongodb_logs","aggregate","count","export","get_neo4j_schema","read_neo4j_cypher","list_instances","get_instance_details","get_instance_by_name","list_indices","get_mappings","esql","get_shards","list_records","list_bases","get_record","get_productivity_stats","get_overview","fetch_object","user_info","list_workspaces","view_attachment","get_available_services","read_documentation","read_sections","recommend","analyze_log_group","analyze_metric","describe_log_groups","get_active_alarms","get_alarm_history","get_metric_data","get_metric_metadata","kubectl_get","kubectl_describe","kubectl_logs","kubectl_context","explain_resource","list_api_resources","namespaces_list","nodes_log","nodes_top","pods_get","pods_list","pods_list_in_namespace","pods_log","pods_top","resources_get","resources_list"])});function XA7(J){return J.scope==="project"||J.scope==="local"}async function ZA7(J,Q){if(!Q.headersHelper)return null;if("scope"in Q&&XA7(Q)&&!x6()){if(!qG()){let Z=Error(`Security: headersHelper for MCP server '${J}' executed before workspace trust is confirmed. If you see this message, post in https://github.com/getglock/glock/issues.`);return KO("MCP headersHelper invoked before trust check",Z),l("jarvis_api_error",{}),null}}try{w1(J,"Executing headersHelper to get dynamic headers");let X=await r8(Q.headersHelper,[],{shell:!0,timeout:1e4,env:{...process.env,GLOCK_MCP_SERVER_NAME:J,GLOCK_MCP_SERVER_URL:Q.url}});if(X.code!==0||!X.stdout)throw Error(`headersHelper for MCP server '${J}' did not return a valid value`);let Z=X.stdout.trim(),Y=c1(Z);if(typeof Y!=="object"||Y===null||Array.isArray(Y))throw Error(`headersHelper for MCP server '${J}' must return a JSON object with string key-value pairs`);for(let[q,K]of Object.entries(Y))if(typeof K!=="string")throw Error(`headersHelper for MCP server '${J}' returned non-string value for key "${q}": ${typeof K}`);return w1(J,`Successfully retrieved ${Object.keys(Y).length} headers from headersHelper`),Y}catch(X){return $X(J,`Error getting headers from headersHelper: ${Q1(X)}`),H0(Error(`Error getting MCP headers from headersHelper for server '${J}': ${Q1(X)}`)),null}}async function cc0(J,Q){let X=Q.headers||{},Z=await ZA7(J,Q)||{};return{...X,...Z}}var ZR6=I(()=>{N1();m8();Z1();T1();T9();M1();i1();D1()});class Kf1{serverName;sendMcpMessage;isClosed=!1;onclose;onerror;onmessage;constructor(J,Q){this.serverName=J;this.sendMcpMessage=Q}async start(){}async send(J){if(this.isClosed)throw Error("Transport is closed");let Q=await this.sendMcpMessage(this.serverName,J);if(this.onmessage)this.onmessage(Q)}async close(){if(this.isClosed)return;this.isClosed=!0,this.onclose?.()}}import{mkdir as KA7,readFile as GA7,unlink as zA7,writeFile as WA7}from"fs/promises";import{dirname as HA7,join as BA7}from"path";function WR6(J){if(("code"in J?J.code:void 0)!==404)return!1;return J.message.includes('"code":-32001')||J.message.includes('"code": -32001')}function qA7(){return parseInt(process.env.MCP_TOOL_TIMEOUT||"",10)||YA7}function Ff1(){return BA7(L8(),"mcp-needs-auth-cache.json")}function HR6(){if(!MF0)MF0=GA7(Ff1(),"utf-8").then((J)=>c1(J)).catch(()=>({}));return MF0}async function FA7(J){let X=(await HR6())[J];if(!X)return!1;return Date.now()-X.timestamp<UA7}function _A7(J){YR6=YR6.then(async()=>{let Q=await HR6();Q[J]={timestamp:Date.now()};let X=Ff1();await KA7(HA7(X),{recursive:!0}),await WA7(X,l0(Q)),MF0=null}).catch(()=>{})}function Mc0(){MF0=null,zA7(Ff1()).catch(()=>{})}function Wf1(J){let Q=aF(J);return Q?{mcpServerBaseUrl:Q}:{}}function Gf1(J,Q,X){return l("jarvis_api_error",{transportType:X,...Wf1(Q)}),w1(J,`Authentication required for ${{sse:"SSE",http:"HTTP","glockai-proxy":"glock proxy"}[X]} server`),_A7(J),{name:J,type:"needs-auth",config:Q}}function OA7(J){return async(Q,X)=>{let Z=async()=>{await cW();let G=eJ();if(!G)throw Error("No glock OAuth token available");let z=new Headers(X?.headers);return z.set("Authorization",`Bearer ${G.accessToken}`),{response:await J(Q,{...X,headers:z}),sentToken:G.accessToken}},{response:Y,sentToken:q}=await Z();if(Y.status!==401)return Y;let K=await cS(q).catch(()=>!1);if(l("jarvis_api_error",{tokenChanged:K}),!K){let G=eJ()?.accessToken;if(!G||G===q)return Y}try{return(await Z()).response}catch{return Y}}}async function qR6(J,Q){return new(await import("ws")).default(J,["mcp"],Q)}function dc0(){return parseInt(process.env.MCP_TIMEOUT||"",10)||30000}function zf1(J){return async(Q,X)=>{if((X?.method??"GET").toUpperCase()==="GET")return J(Q,X);let Y=new Headers(X?.headers);if(!Y.has("accept"))Y.set("accept",VA7);let q=new AbortController,K=setTimeout((H)=>H.abort(new DOMException("The operation timed out.","TimeoutError")),BR6,q);K.unref?.();let G=X?.signal,z=()=>q.abort(G?.reason);if(G?.addEventListener("abort",z),G?.aborted)q.abort(G.reason);let W=()=>{clearTimeout(K),G?.removeEventListener("abort",z)};try{let H=await J(Q,{...X,headers:Y,signal:q.signal});return W(),H}catch(H){throw W(),H}}}function NA7(){return parseInt(process.env.MCP_SERVER_CONNECTION_BATCH_SIZE||"",10)||3}function wA7(){return parseInt(process.env.MCP_REMOTE_SERVER_CONNECTION_BATCH_SIZE||"",10)||20}function KR6(J){return!J.type||J.type==="stdio"||J.type==="sdk"}function RA7(J){return!J.name.startsWith("mcp__ide__")||AA7.includes(J.name)}function Hf1(J,Q){return`${J}-${l0(Q)}`}async function lB(J,Q){let X=Hf1(J,Q);try{let Z=await ej(J,Q);if(Z.type==="connected")await Z.cleanup()}catch{}ej.cache.delete(X),BL.cache.delete(J),pE.cache.delete(J),Gi.cache.delete(J)}async function hJ0(J){if(J.config.type==="sdk")return J;let Q=await ej(J.name,J.config);if(Q.type!=="connected")throw new KF(`MCP server "${J.name}" is not connected`,"MCP server not connected");return Q}function UR6(J,Q){if(J.type!==Q.type)return!1;let{scope:X,...Z}=J,{scope:Y,...q}=Q;return l0(Z)===l0(q)}function MA7(J,Q){let X=Object.keys(J);return X.length>0?X.map((Z)=>`${Z}=${String(J[Z])}`).join(" "):Q}async function nE(J,Q,X){return(await _R6({client:X,tool:J,args:Q,signal:u7().signal})).content}async function MM(J,Q){try{GF(),await lB(J,Q);let X=await ej(J,Q);if(X.type!=="connected")return{client:X,tools:[],commands:[]};if(Q.type==="glockai-proxy")mv1(J);let Z=!!X.capabilities?.resources,[Y,q,K,G]=await Promise.all([BL(X),Gi(X),Promise.resolve([]),Z?pE(X):Promise.resolve([])]),z=[...q,...K],W=[];if(Z){if(![mE,dE].some((B)=>Y.some((U)=>VQ(U,B.name))))W.push(mE,dE)}return{client:X,tools:[...Y,...W],commands:z,resources:G.length>0?G:void 0}}catch(X){return $X(J,`Error during reconnection: ${Q1(X)}`),{client:{name:J,type:"failed",config:Q},tools:[],commands:[]}}}async function GR6(J,Q,X){await Yv1(J,X,{concurrency:Q})}async function rJ0(J,Q){let X=!1,Z=Object.entries(Q??(await jc0()).servers),Y=[];for(let O of Z)if(VH(O[0]))J({client:{name:O[0],type:"disabled",config:O[1]},tools:[],commands:[]});else Y.push(O);let q=Y.length,K=x8(Y,([O,L])=>L.type==="stdio"),G=x8(Y,([O,L])=>L.type==="sse"),z=x8(Y,([O,L])=>L.type==="http"),W=x8(Y,([O,L])=>L.type==="sse-ide"),H=x8(Y,([O,L])=>L.type==="ws-ide"),B=Y.filter(([O,L])=>KR6(L)),U=Y.filter(([O,L])=>!KR6(L)),F={totalServers:q,stdioCount:K,sseCount:G,httpCount:z,sseIdeCount:W,wsIdeCount:H},_=async([O,L])=>{try{if(VH(O)){J({client:{name:O,type:"disabled",config:L},tools:[],commands:[]});return}if((L.type==="glockai-proxy"||L.type==="http"||L.type==="sse")&&(await FA7(O)||(L.type==="http"||L.type==="sse")&&uA6(O,L))){w1(O,"Skipping connection (cached needs-auth)"),J({client:{name:O,type:"needs-auth",config:L},tools:[Zf1(O,L)],commands:[]});return}let N=await ej(O,L,F);if(N.type!=="connected"){J({client:N,tools:N.type==="needs-auth"?[Zf1(O,L)]:[],commands:[]});return}if(L.type==="glockai-proxy")mv1(O);let A=!!N.capabilities?.resources,[R,D,$,y]=await Promise.all([BL(N),Gi(N),Promise.resolve([]),A?pE(N):Promise.resolve([])]),v=[...D,...$],E=[];if(A&&!X)X=!0,E.push(mE,dE);J({client:N,tools:[...R,...E],commands:v,resources:y.length>0?y:void 0})}catch(N){$X(O,`Error fetching tools/commands/resources: ${Q1(N)}`),J({client:{name:O,type:"failed",config:L},tools:[],commands:[]})}};await Promise.all([GR6(B,NA7(),_),GR6(U,wA7(),_)])}function DF0(J){return new Promise((Q)=>{let X=0,Z=0;if(X=Object.keys(J).length,X===0){Q({clients:[],tools:[],commands:[]});return}let Y=[],q=[],K=[];rJ0((G)=>{if(Y.push(G.client),q.push(...G.tools),K.push(...G.commands),Z++,Z>=X){let z=K.reduce((W,H)=>{let B=H.name.length+(H.description??"").length+(H.argumentHint??"").length;return W+B},0);l("jarvis_api_error",{tools_count:q.length,commands_count:K.length,commands_metadata_length:z}),Q({clients:Y,tools:q,commands:K})}},J).catch((G)=>{$X("prefetchAllMcpResources",`Failed to get MCP resources: ${Q1(G)}`),Q({clients:[],tools:[],commands:[]})})})}async function FR6(J,Q){switch(J.type){case"text":return[{type:"text",text:J.text}];case"audio":{let X=J;return await zR6(Buffer.from(X.data,"base64"),X.mimeType,Q,`[Audio from ${Q}] `)}case"image":{let X=Buffer.from(String(J.data),"base64"),Z=J.mimeType?.split("/")[1]||"png",Y=await rN(X,X.length,Z);return[{type:"image",source:{data:Y.buffer.toString("base64"),media_type:`image/${Y.mediaType}`,type:"base64"}}]}case"resource":{let X=J.resource,Z=`[Resource from ${Q} at ${X.uri}] `;if("text"in X)return[{type:"text",text:`${Z}${X.text}`}];else if("blob"in X)if(LA7.has(X.mimeType??"")){let q=Buffer.from(X.blob,"base64"),K=X.mimeType?.split("/")[1]||"png",G=await rN(q,q.length,K),z=[];if(Z)z.push({type:"text",text:Z});return z.push({type:"image",source:{data:G.buffer.toString("base64"),media_type:`image/${G.mediaType}`,type:"base64"}}),z}else return await zR6(Buffer.from(X.blob,"base64"),X.mimeType,Q,Z);return[]}case"resource_link":{let X=J,Z=`[Resource link: ${X.name}] ${X.uri}`;if(X.description)Z+=` (${X.description})`;return[{type:"text",text:Z}]}default:return[]}}async function zR6(J,Q,X,Z){let Y=`mcp-${ZG(X)}-blob-${Date.now()}-${Math.random().toString(36).slice(2,8)}`,q=await nJ0(J,Q,Y);if("error"in q)return[{type:"text",text:`${Z}Binary content (${Q||"unknown type"}, ${J.length} bytes) could not be saved to disk: ${q.error}`}];return[{type:"text",text:xc0(q.filepath,Q,q.size,Z)}]}function lc0(J,Q=2){if(J===null)return"null";if(Array.isArray(J)){if(J.length===0)return"[]";return`[${lc0(J[0],Q-1)}]`}if(typeof J==="object"){if(Q<=0)return"{...}";let Z=Object.entries(J).slice(0,10).map(([q,K])=>`${q}: ${lc0(K,Q-1)}`),Y=Object.keys(J).length>10?", ...":"";return`{${Z.join(", ")}${Y}}`}return typeof J}async function DA7(J,Q,X){if(J&&typeof J==="object"){if("toolResult"in J)return{content:String(J.toolResult),type:"toolResult"};if("structuredContent"in J&&J.structuredContent!==void 0)return{content:l0(J.structuredContent),type:"structuredContent",schema:lc0(J.structuredContent)};if("content"in J&&Array.isArray(J.content)){let Y=(await Promise.all(J.content.map((q)=>FR6(q,X)))).flat();return{content:Y,type:"contentArray",schema:lc0(Y)}}}let Z=`MCP server "${X}" tool "${Q}": unexpected response format`;throw $X(X,Z),new KF(Z,"MCP tool unexpected response format")}function $A7(J){if(!J||typeof J==="string")return!1;return J.some((Q)=>Q.type==="image")}async function jA7(J,Q,X){let{content:Z,type:Y,schema:q}=await DA7(J,Q,X);if(X==="ide")return Z;if(!await Pv1(Z))return Z;let K=zF0(Z);if(!Z)return Z;if($A7(Z))return l("jarvis_api_error",{outcome:"truncated",reason:"contains_images",sizeEstimateTokens:K}),await Dw6(Z);let G=Date.now(),z=`mcp-${ZG(X)}-${ZG(Q)}-${G}`,W=typeof Z==="string"?Z:l0(Z,null,2),H=await wk0(W,z);if(Ak0(H)){let U=W.length;return l("jarvis_api_error",{outcome:"truncated",reason:"persist_failed",sizeEstimateTokens:K}),`Error: result (${U.toLocaleString()} characters) exceeds maximum allowed tokens. Failed to save output to file: ${H.error}. If this MCP server provides pagination or filtering tools, use them to retrieve specific portions of the data.`}l("jarvis_api_error",{outcome:"persisted",reason:"file_saved",sizeEstimateTokens:K,persistedSizeChars:H.originalSize});let B=cA6(Y,q);return dA6(H.filepath,H.originalSize,B)}async function IA7({client:J,clientConnection:Q,tool:X,args:Z,meta:Y,signal:q,setAppState:K,onProgress:G,callToolFn:z=_R6,handleElicitation:W}){for(let B=0;;B++)try{return await z({client:J,tool:X,args:Z,meta:Y,signal:q,onProgress:G})}catch(U){if(!(U instanceof O9)||U.code!==J7.UrlElicitationRequired)throw U;if(B>=3)throw U;let F=U.data,O=(F!=null&&typeof F==="object"&&"elicitations"in F&&Array.isArray(F.elicitations)?F.elicitations:[]).filter((N)=>{if(N==null||typeof N!=="object")return!1;let A=N;return A.mode==="url"&&typeof A.url==="string"&&typeof A.elicitationId==="string"&&typeof A.message==="string"}),L=Q.type==="connected"?Q.name:"unknown";if(O.length===0)throw w1(L,`Tool '${X}' returned -32042 but no valid elicitations in error data`),U;w1(L,`Tool '${X}' requires URL elicitation (error -32042, attempt ${B+1}), processing ${O.length} elicitation(s)`);for(let N of O){let{elicitationId:A}=N,R=await wF0(L,N,q);if(R){if(w1(L,`URL elicitation ${A} resolved by hook: ${l0(R)}`),R.action!=="accept")return{content:`URL elicitation was ${R.action==="decline"?"declined":R.action+"ed"} by a hook. The tool "${X}" could not complete because it requires the user to open a URL.`};continue}let D;if(W)D=await W(L,N,q);else{let y={actionLabel:"Retry now",showCancel:!0};D=await new Promise((v)=>{let E=()=>{v({action:"cancel"})};if(q.aborted){E();return}q.addEventListener("abort",E,{once:!0}),K((C)=>({...C,elicitation:{queue:[...C.elicitation.queue,{serverName:L,requestId:`error-elicit-${A}`,params:N,signal:q,waitingState:y,respond:(S)=>{if(S.action==="accept")return;q.removeEventListener("abort",E),v(S)},onWaitingDismiss:(S)=>{if(q.removeEventListener("abort",E),S==="retry")v({action:"accept"});else v({action:"cancel"})}}]}}))})}let $=await AF0(L,D,q,"url",A);if($.action!=="accept")return w1(L,`User ${$.action==="decline"?"declined":$.action+"ed"} URL elicitation ${A}`),{content:`URL elicitation was ${$.action==="decline"?"declined":$.action+"ed"} by the user. The tool "${X}" could not complete because it requires the user to open a URL.`};w1(L,`Elicitation ${A} completed, retrying tool call`)}}}async function _R6({client:{client:J,name:Q,config:X},tool:Z,args:Y,meta:q,signal:K,onProgress:G}){let z=Date.now(),W;try{w1(Q,`Calling MCP tool: ${Z}`),W=setInterval((A,R,D)=>{let $=Date.now()-A,v=`${Math.floor($/1000)}s`;w1(R,`Tool '${D}' still running (${v} elapsed)`)},30000,z,Q,Z);let H=qA7(),B,U=new Promise((A,R)=>{B=setTimeout((D,$,y,v)=>{D(new KF(`MCP server "${$}" tool "${y}" timed out after ${Math.floor(v/1000)}s`,"MCP tool timeout"))},H,R,Q,Z,H)}),F=await Promise.race([J.callTool({name:Z,arguments:Y,_meta:q},Tk,{signal:K,timeout:H,onprogress:G?(A)=>{G({type:"mcp_progress",status:"progress",serverName:Q,toolName:Z,progress:A.progress,total:A.total,progressMessage:A.message})}:void 0}),U]).finally(()=>{if(B)clearTimeout(B)});if("isError"in F&&F.isError){let A="Unknown error";if("content"in F&&Array.isArray(F.content)&&F.content.length>0){let R=F.content[0];if(R&&typeof R==="object"&&"text"in R)A=R.text}else if("error"in F)A=String(F.error);throw $X(Q,A),new nc0(A,"MCP tool returned error","_meta"in F&&F._meta?{_meta:F._meta}:void 0)}let _=Date.now()-z,O=_<1000?`${_}ms`:_<60000?`${Math.floor(_/1000)}s`:`${Math.floor(_/60000)}m ${Math.floor(_%60000/1000)}s`;w1(Q,`Tool '${Z}' completed successfully in ${O}`);let L=H_6(Q);if(L)l("jarvis_api_error",{tool:L,source:"mcp",success:!0});return{content:await jA7(F,Z,Q),_meta:F._meta,structuredContent:F.structuredContent}}catch(H){if(W!==void 0)clearInterval(W);let B=Date.now()-z;if(H instanceof Error&&H.name!=="AbortError")w1(Q,`Tool '${Z}' failed after ${Math.floor(B/1000)}s: ${H.message}`);if(H instanceof Error){if(("code"in H?H.code:void 0)===401||H instanceof o3)throw w1(Q,"Tool call returned 401 Unauthorized - token may have expired"),l("jarvis_api_error",{}),new ic0(Q,`MCP server "${Q}" requires re-authorization (token expired)`);let F=WR6(H),_="code"in H&&H.code===-32000&&H.message.includes("Connection closed")&&(X.type==="http"||X.type==="glockai-proxy");if(F||_)throw w1(Q,`MCP session expired during tool call (${F?"404/-32001":"connection closed"}), clearing connection cache for re-initialization`),l("jarvis_api_error",{}),await lB(Q,X),new Uf1(Q)}if(!(H instanceof Error)||H.name!=="AbortError")throw H;return{content:void 0}}finally{if(W!==void 0)clearInterval(W)}}function yA7(J){if(J.message.content[0]?.type!=="tool_use")return;return J.message.content[0].id}async function OR6(J,Q){let X=[],Z=[],Y=await Promise.allSettled(Object.entries(J).map(async([q,K])=>{let G=new Kf1(q,Q),z=new _p0({name:"glock",title:"Glock",version:"0.1.17",description:"Glock's agentic coding tool",websiteUrl:r20},{capabilities:{}});try{await z.connect(G);let W=z.getServerCapabilities(),H={type:"connected",name:q,capabilities:W||{},client:z,config:{...K,scope:"dynamic"},cleanup:async()=>{await z.close()}},B=[];if(W?.tools){let U=await BL(H);B.push(...U)}return{client:H,tools:B}}catch(W){return $X(q,`Failed to connect SDK MCP server: ${W}`),{client:{type:"failed",name:q,config:{...K,scope:"user"}},tools:[]}}}));for(let q of Y)if(q.status==="fulfilled")X.push(q.value.client),Z.push(...q.value.tools);return{clients:X,tools:Z}}var ic0,Uf1,nc0,YA7=1e8,RF0=2048,UA7=900000,MF0=null,YR6,LA7,BR6=60000,VA7="application/json, text/event-stream",AA7,ej,_f1=20,BL,pE,Gi;var dB=I(()=>{IV6();cV6();nV6();aV6();lF();Sp0();IJ();eV6();QN6();N1();$Z();s6();Gc0();Ew6();pA6();hc0();nq();N9();EX();EE1();Z1();t1();T1();lk();b5();aN();M1();kc0();Ev1();eA6();Mb();lb();PO();iE();md();CB();D1();pc0();MO();az();nl();XR6();Zp();Ki();pJ0();HL();ZR6();t1();i1();ic0=class ic0 extends Error{serverName;constructor(J,Q){super(Q);this.name="McpAuthError",this.serverName=J}};Uf1=class Uf1 extends Error{constructor(J){super(`MCP server "${J}" session expired`);this.name="McpSessionExpiredError"}};nc0=class nc0 extends KF{mcpMeta;constructor(J,Q,X){super(J,Q);this.mcpMeta=X;this.name="McpToolCallError"}};YR6=Promise.resolve();LA7=new Set(["image/jpeg","image/png","image/gif","image/webp"]);AA7=["mcp__ide__executeCode","mcp__ide__getDiagnostics"];ej=g1(async(J,Q,X)=>{let Z=Date.now(),Y;try{let q,K=$2();if(Q.type==="sse"){let u=new qi(J,Q),x=await cc0(J,Q),m={authProvider:u,fetch:zf1(Xf1(ll(),u)),requestInit:{headers:{"User-Agent":dk(),...x}}};m.eventSourceInit={fetch:async(p,c)=>{let r={},J0=await u.tokens();if(J0)r.Authorization=`Bearer ${J0.access_token}`;let n=Sc();return fetch(p,{...c,...n,headers:{"User-Agent":dk(),...r,...c?.headers,...x,Accept:"text/event-stream"}})}},q=new Cp0(new URL(Q.url),m),w1(J,"SSE transport initialized, awaiting connection")}else if(Q.type==="sse-ide"){w1(J,`Setting up SSE-IDE transport to ${Q.url}`);let u=Sc(),x=u.dispatcher?{eventSourceInit:{fetch:async(m,p)=>{return fetch(m,{...p,...u,headers:{"User-Agent":dk(),...p?.headers}})}}}:{};q=new Cp0(new URL(Q.url),Object.keys(x).length>0?x:void 0)}else if(Q.type==="ws-ide"){let u=QN(),x={"User-Agent":dk(),...Q.authToken&&{"X-Glock-Ide-Authorization":Q.authToken}},m;if(typeof Bun<"u")m=new globalThis.WebSocket(Q.url,{protocols:["mcp"],headers:x,proxy:OP(Q.url),tls:u||void 0});else m=await qR6(Q.url,{headers:x,agent:_P(Q.url),...u||{}});q=new gc0(m)}else if(Q.type==="ws"){w1(J,`Initializing WebSocket transport to ${Q.url}`);let u=await cc0(J,Q),x=QN(),m={"User-Agent":dk(),...K&&{Authorization:`Bearer ${K}`},...u},p=xk(m,(r,J0)=>J0.toLowerCase()==="authorization"?"[REDACTED]":r);w1(J,`WebSocket transport options: ${l0({url:Q.url,headers:p,hasSessionAuth:!!K})}`);let c;if(typeof Bun<"u")c=new globalThis.WebSocket(Q.url,{protocols:["mcp"],headers:m,proxy:OP(Q.url),tls:x||void 0});else c=await qR6(Q.url,{headers:m,agent:_P(Q.url),...x||{}});q=new gc0(c)}else if(Q.type==="http"){w1(J,`Initializing HTTP transport to ${Q.url}`),w1(J,`Node version: ${process.version}, Platform: ${process.platform}`),w1(J,`Environment: ${l0({NODE_OPTIONS:process.env.NODE_OPTIONS||"not set",UV_THREADPOOL_SIZE:process.env.UV_THREADPOOL_SIZE||"default",HTTP_PROXY:process.env.HTTP_PROXY||"not set",HTTPS_PROXY:process.env.HTTPS_PROXY||"not set",NO_PROXY:process.env.NO_PROXY||"not set"})}`);let u=new qi(J,Q),x=await cc0(J,Q),m=!!await u.tokens(),p=Sc();w1(J,`Proxy options: ${p.dispatcher?"custom dispatcher":"default"}`);let c={authProvider:u,fetch:zf1(Xf1(ll(),u)),requestInit:{...p,headers:{"User-Agent":dk(),...K&&!m&&{Authorization:`Bearer ${K}`},...x}}},r=c.requestInit?.headers?xk(c.requestInit.headers,(J0,n)=>n.toLowerCase()==="authorization"?"[REDACTED]":J0):void 0;w1(J,`HTTP transport options: ${l0({url:Q.url,headers:r,hasAuthProvider:!!u,timeoutMs:BR6})}`),q=new vp0(new URL(Q.url),c),w1(J,"HTTP transport created successfully")}else if(Q.type==="sdk")throw Error("SDK servers should be handled in print.ts");else if(Q.type==="glockai-proxy"){if(w1(J,`Initializing glock proxy transport for server ${Q.id}`),!eJ())throw Error("No glock OAuth token found");let x=qJ(),m=`${x.MCP_PROXY_URL}${x.MCP_PROXY_PATH.replace("{server_id}",Q.id)}`;w1(J,`Using glock proxy at ${m}`);let p=OA7(globalThis.fetch),c=Sc(),r={fetch:zf1(p),requestInit:{...c,headers:{"User-Agent":dk(),"X-Mcp-Client-Session-Id":A1()}}};q=new vp0(new URL(m),r),w1(J,"glock proxy transport created successfully")}else if(Q.type==="stdio"||!Q.type){let u=process.env.GLOCK_SHELL_PREFIX||Q.command,x=process.env.GLOCK_SHELL_PREFIX?[[Q.command,...Q.args].join(" ")]:Q.args;q=new Qv1({command:u,args:x,env:{...pR(),...Q.env},stderr:"pipe"})}else throw Error(`Unsupported server type: ${Q.type}`);let G,z="";if(Q.type==="stdio"||!Q.type){let u=q;if(u.stderr)G=(x)=>{if(z.length<67108864)try{z+=x.toString()}catch{}},u.stderr.on("data",G)}let W=new _p0({name:"glock",title:"Glock",version:"0.1.17",description:"Glock's agentic coding tool",websiteUrl:r20},{capabilities:{roots:{},elicitation:{}}});if(Q.type==="http")w1(J,"Client created, setting up request handler");if(W.setRequestHandler(dT1,async()=>{return w1(J,"Received ListRoots request from server"),{roots:[{uri:`file://${j8()}`}]}}),w1(J,`Starting connection with timeout of ${dc0()}ms`),Q.type==="http"){w1(J,`Testing basic HTTP connectivity to ${Q.url}`);try{let u=new URL(Q.url);if(w1(J,`Parsed URL: host=${u.hostname}, port=${u.port||"default"}, protocol=${u.protocol}`),u.hostname==="127.0.0.1"||u.hostname==="localhost")w1(J,`Using loopback address: ${u.hostname}`)}catch(u){w1(J,`Failed to parse URL: ${u}`)}}let H=W.connect(q),B=new Promise((u,x)=>{let m=setTimeout(()=>{let p=Date.now()-Z;if(w1(J,`Connection timeout triggered after ${p}ms (limit: ${dc0()}ms)`),Y)Y.close().catch(()=>{});q.close().catch(()=>{}),x(new KF(`MCP server "${J}" connection timed out after ${dc0()}ms`,"MCP connection timeout"))},dc0());H.then(()=>{clearTimeout(m)},(p)=>{clearTimeout(m)})});try{if(await Promise.race([H,B]),z)$X(J,`Server stderr: ${z}`),z="";let u=Date.now()-Z;w1(J,`Successfully connected (transport: ${Q.type||"stdio"}) in ${u}ms`)}catch(u){let x=Date.now()-Z;if(Q.type==="sse"&&u instanceof Error){if(w1(J,`SSE Connection failed after ${x}ms: ${l0({url:Q.url,error:u.message,errorType:u.constructor.name,stack:u.stack})}`),$X(J,u),u instanceof o3)return Gf1(J,Q,"sse")}else if(Q.type==="http"&&u instanceof Error){let m=u;if(w1(J,`HTTP Connection failed after ${x}ms: ${u.message} (code: ${m.code||"none"}, errno: ${m.errno||"none"})`),$X(J,u),u instanceof o3)return Gf1(J,Q,"http")}else if(Q.type==="glockai-proxy"&&u instanceof Error){if(w1(J,`glock proxy connection failed after ${x}ms: ${u.message}`),$X(J,u),u.code===401)return Gf1(J,Q,"glockai-proxy")}else if(Q.type==="sse-ide"||Q.type==="ws-ide")l("jarvis_api_error",{connectionDurationMs:x});if(Y)Y.close().catch(()=>{});if(q.close().catch(()=>{}),z)$X(J,`Server stderr: ${z}`);throw u}let U=W.getServerCapabilities(),F=W.getServerVersion(),_=W.getInstructions(),O=_;if(_&&_.length>RF0)O=_.slice(0,RF0)+"\u2026 [truncated]",w1(J,`Server instructions truncated from ${_.length} to ${RF0} chars`);if(w1(J,`Connection established with capabilities: ${l0({hasTools:!!U?.tools,hasPrompts:!!U?.prompts,hasResources:!!U?.resources,hasResourceSubscribe:!!U?.resources?.subscribe,serverVersion:F||"unknown"})}`),b(`[MCP] Server "${J}" connected with subscribe=${!!U?.resources?.subscribe}`),W.setRequestHandler(xE,async(u)=>{return w1(J,`Elicitation request received during initialization: ${l0(u)}`),{action:"cancel"}}),Q.type==="sse-ide"||Q.type==="ws-ide"){let u=Date.now()-Z;l("jarvis_api_error",{connectionDurationMs:u,serverVersion:F});try{LR6(W)}catch(x){$X(J,`Failed to send ide_connected notification: ${x}`)}}let L=Date.now(),N=!1,A=W.onerror,R=W.onclose,D=0,$=3,y=!1,v=(u)=>{if(y)return;y=!0,w1(J,`Closing transport (${u})`),W.close().catch((x)=>{w1(J,`Error during close: ${Q1(x)}`)})},E=(u)=>{return u.includes("ECONNRESET")||u.includes("ETIMEDOUT")||u.includes("EPIPE")||u.includes("EHOSTUNREACH")||u.includes("ECONNREFUSED")||u.includes("Body Timeout Error")||u.includes("terminated")||u.includes("SSE stream disconnected")||u.includes("Failed to reconnect SSE stream")};W.onerror=(u)=>{let x=Date.now()-L;N=!0;let m=Q.type||"stdio";if(w1(J,`${m.toUpperCase()} connection dropped after ${Math.floor(x/1000)}s uptime`),u.message)if(u.message.includes("ECONNRESET"))w1(J,"Connection reset - server may have crashed or restarted");else if(u.message.includes("ETIMEDOUT"))w1(J,"Connection timeout - network issue or server unresponsive");else if(u.message.includes("ECONNREFUSED"))w1(J,"Connection refused - server may be down");else if(u.message.includes("EPIPE"))w1(J,"Broken pipe - server closed connection unexpectedly");else if(u.message.includes("EHOSTUNREACH"))w1(J,"Host unreachable - network connectivity issue");else if(u.message.includes("ESRCH"))w1(J,"Process not found - stdio server process terminated");else if(u.message.includes("spawn"))w1(J,"Failed to spawn process - check command and permissions");else w1(J,`Connection error: ${u.message}`);if((m==="http"||m==="glockai-proxy")&&WR6(u)){if(w1(J,"MCP session expired (server returned 404 with session-not-found), triggering reconnection"),v("session expired"),A)A(u);return}if(m==="sse"||m==="http"||m==="glockai-proxy"){if(u.message.includes("Maximum reconnection attempts")){if(v("SSE reconnection exhausted"),A)A(u);return}if(E(u.message)){if(D++,w1(J,`Terminal connection error ${D}/${$}`),D>=$)D=0,v("max consecutive terminal errors")}else D=0}if(A)A(u)},W.onclose=()=>{let u=Date.now()-L,x=Q.type??"unknown";w1(J,`${x.toUpperCase()} connection closed after ${Math.floor(u/1000)}s (${N?"with errors":"cleanly"})`);let m=Hf1(J,Q);if(BL.cache.delete(J),pE.cache.delete(J),Gi.cache.delete(J),ej.cache.delete(m),w1(J,"Cleared connection cache for reconnection"),R)R()};let C=async()=>{if(Y){try{await Y.close()}catch(u){w1(J,`Error closing in-process server: ${u}`)}try{await W.close()}catch(u){w1(J,`Error closing client: ${u}`)}return}if(G&&(Q.type==="stdio"||!Q.type))q.stderr?.off("data",G);if(Q.type==="stdio")try{let x=q.pid;if(x){w1(J,"Sending SIGINT to MCP server process");try{process.kill(x,"SIGINT")}catch(m){w1(J,`Error sending SIGINT: ${m}`);return}await new Promise(async(m)=>{let p=!1,c=setInterval(()=>{try{process.kill(x,0)}catch{if(!p)p=!0,clearInterval(c),clearTimeout(r),w1(J,"MCP server process exited cleanly"),m()}},50),r=setTimeout(()=>{if(!p)p=!0,clearInterval(c),w1(J,"Cleanup timeout reached, stopping process monitoring"),m()},600);try{if(await FJ(100),!p){try{process.kill(x,0),w1(J,"SIGINT failed, sending SIGTERM to MCP server process");try{process.kill(x,"SIGTERM")}catch(J0){w1(J,`Error sending SIGTERM: ${J0}`),p=!0,clearInterval(c),clearTimeout(r),m();return}}catch{p=!0,clearInterval(c),clearTimeout(r),m();return}if(await FJ(400),!p)try{process.kill(x,0),w1(J,"SIGTERM failed, sending SIGKILL to MCP server process");try{process.kill(x,"SIGKILL")}catch(J0){w1(J,`Error sending SIGKILL: ${J0}`)}}catch{p=!0,clearInterval(c),clearTimeout(r),m()}}if(!p)p=!0,clearInterval(c),clearTimeout(r),m()}catch{if(!p)p=!0,clearInterval(c),clearTimeout(r),m()}})}}catch(u){w1(J,`Error terminating process: ${u}`)}try{await W.close()}catch(u){w1(J,`Error closing client: ${u}`)}},S=UJ(C),k=async()=>{S?.(),await C()},h=Date.now()-Z;return l("jarvis_api_error",{connectionDurationMs:h,transportType:Q.type??"stdio",totalServers:X?.totalServers,stdioCount:X?.stdioCount,sseCount:X?.sseCount,httpCount:X?.httpCount,sseIdeCount:X?.sseIdeCount,wsIdeCount:X?.wsIdeCount,...Wf1(Q)}),{name:J,client:W,type:"connected",capabilities:U??{},serverInfo:F,instructions:O,config:Q,cleanup:k}}catch(q){let K=Date.now()-Z;if(l("jarvis_api_error",{connectionDurationMs:K,totalServers:X?.totalServers||1,stdioCount:X?.stdioCount||(Q.type==="stdio"?1:0),sseCount:X?.sseCount||(Q.type==="sse"?1:0),httpCount:X?.httpCount||(Q.type==="http"?1:0),sseIdeCount:X?.sseIdeCount||(Q.type==="sse-ide"?1:0),wsIdeCount:X?.wsIdeCount||(Q.type==="ws-ide"?1:0),transportType:Q.type??"stdio",...Wf1(Q)}),w1(J,`Connection failed after ${K}ms: ${Q1(q)}`),$X(J,`Connection failed: ${Q1(q)}`),Y)Y.close().catch(()=>{});return{name:J,type:"failed",config:Q,error:Q1(q)}}},Hf1);BL=yz(async(J)=>{if(J.type!=="connected")return[];try{if(!J.capabilities?.tools)return[];let Q=await J.client.request({method:"tools/list"},k20),X=ik(Q.tools),Z=J.config.type==="sdk"&&W1(process.env.GLOCK_AGENT_SDK_MCP_NO_PREFIX);return X.map((Y)=>{let q=Oz0(J.name,Y.name);return{...Pw6,name:Z?Y.name:q,mcpInfo:{serverName:J.name,toolName:Y.name},isMcp:!0,searchHint:typeof Y._meta?.["glock/searchHint"]==="string"?Y._meta["glock/searchHint"].replace(/\s+/g," ").trim()||void 0:void 0,alwaysLoad:Y._meta?.["glock/alwaysLoad"]===!0,async description(){return Y.description??""},async prompt(){let K=Y.description??"";return K.length>RF0?K.slice(0,RF0)+"\u2026 [truncated]":K},isConcurrencySafe(){return Y.annotations?.readOnlyHint??!1},isReadOnly(){return Y.annotations?.readOnlyHint??!1},toAutoClassifierInput(K){return MA7(K,Y.name)},isDestructive(){return Y.annotations?.destructiveHint??!1},isOpenWorld(){return Y.annotations?.openWorldHint??!1},isSearchOrReadCommand(){return QR6(J.name,Y.name)},inputJSONSchema:Y.inputSchema,async checkPermissions(){return{behavior:"passthrough",message:"MCPTool requires permission.",suggestions:[{type:"addRules",rules:[{toolName:q,ruleContent:void 0}],behavior:"allow",destination:"localSettings"}]}},async call(K,G,z,W,H){let B=yA7(W),U=B?{"glockcode/toolUseId":B}:{};if(H&&B)H({toolUseID:B,data:{type:"mcp_progress",status:"started",serverName:J.name,toolName:Y.name}});let F=Date.now(),_=1;for(let O=0;;O++)try{let L=await hJ0(J),N=await IA7({client:L,clientConnection:J,tool:Y.name,args:K,meta:U,signal:G.abortController.signal,setAppState:G.setAppState,onProgress:H&&B?(A)=>{H({toolUseID:B,data:A})}:void 0,handleElicitation:G.handleElicitation});if(H&&B)H({toolUseID:B,data:{type:"mcp_progress",status:"completed",serverName:J.name,toolName:Y.name,elapsedTimeMs:Date.now()-F}});return{data:N.content,...(N._meta||N.structuredContent)&&{mcpMeta:{...N._meta&&{_meta:N._meta},...N.structuredContent&&{structuredContent:N.structuredContent}}}}}catch(L){if(L instanceof Uf1&&O<_){w1(J.name,`Retrying tool '${Y.name}' after session recovery`);continue}if(H&&B)H({toolUseID:B,data:{type:"mcp_progress",status:"failed",serverName:J.name,toolName:Y.name,elapsedTimeMs:Date.now()-F}});if(L instanceof Error&&!(L instanceof KF)){let N=L.constructor.name;if(N==="Error")throw new KF(L.message,L.message.slice(0,200));if(N==="McpError"&&"code"in L&&typeof L.code==="number")throw new KF(L.message,`McpError ${L.code}`)}throw L}},userFacingName(){let K=Y.annotations?.title||Y.name;return`${J.name} - ${K} (MCP)`}}}).filter(RA7)}catch(Q){return $X(J.name,`Failed to fetch tools: ${Q1(Q)}`),[]}},(J)=>J.name,_f1),pE=yz(async(J)=>{if(J.type!=="connected")return[];try{if(!J.capabilities?.resources)return[];let Q=await J.client.request({method:"resources/list"},C20);if(!Q.resources)return[];return Q.resources.map((X)=>({...X,server:J.name}))}catch(Q){return $X(J.name,`Failed to fetch resources: ${Q1(Q)}`),[]}},(J)=>J.name,_f1),Gi=yz(async(J)=>{if(J.type!=="connected")return[];try{if(!J.capabilities?.prompts)return[];let Q=await J.client.request({method:"prompts/list"},S20);if(!Q.prompts)return[];return ik(Q.prompts).map((Z)=>{let Y=Object.values(Z.arguments??{}).map((q)=>q.name);return{type:"prompt",name:"mcp__"+ZG(J.name)+"__"+Z.name,description:Z.description??"",hasUserSpecifiedDescription:!!Z.description,contentLength:0,isEnabled:()=>!0,isHidden:!1,isMcp:!0,progressMessage:"running",userFacingName(){return`${J.name}:${Z.name} (MCP)`},argNames:Y,source:"mcp",async getPromptForCommand(q){let K=q.split(" ");try{let G=await hJ0(J),z=await G.client.getPrompt({name:Z.name,arguments:tV6(Y,K)});return(await Promise.all(z.messages.map((H)=>FR6(H.content,G.name)))).flat()}catch(G){throw $X(J.name,`Error running command '${Z.name}': ${Q1(G)}`),G}}}})}catch(Q){return $X(J.name,`Failed to fetch commands: ${Q1(Q)}`),[]}},(J)=>J.name,_f1)});import{homedir as bA7,platform as VR6}from"os";import{join as iB}from"path";function EA7(J){let Q=bA7(),X=[],Z=NR6[J.toLowerCase()];if(!Z)return X;let Y=process.env.APPDATA||iB(Q,"AppData","Roaming"),q=process.env.LOCALAPPDATA||iB(Q,"AppData","Local");switch(VR6()){case"darwin":if(X.push(iB(Q,"Library","Application Support","JetBrains"),iB(Q,"Library","Application Support")),J.toLowerCase()==="androidstudio")X.push(iB(Q,"Library","Application Support","Google"));break;case"win32":if(X.push(iB(Y,"JetBrains"),iB(q,"JetBrains"),iB(Y)),J.toLowerCase()==="androidstudio")X.push(iB(q,"Google"));break;case"linux":X.push(iB(Q,".config","JetBrains"),iB(Q,".local","share","JetBrains"));for(let K of Z)X.push(iB(Q,"."+K));if(J.toLowerCase()==="androidstudio")X.push(iB(Q,".config","Google"));break;default:break}return X}async function TA7(J){let Q=[],X=Y1(),Z=EA7(J),Y=NR6[J.toLowerCase()];if(!Y)return Q;let q=Y.map((K)=>new RegExp("^"+K));for(let K of Z)try{let G=await X.readdir(K);for(let z of q)for(let W of G){if(!z.test(W.name))continue;if(!W.isDirectory()&&!W.isSymbolicLink())continue;let H=iB(K,W.name);if(VR6()==="linux"){Q.push(H);continue}let B=iB(H,"plugins");try{await X.stat(B),Q.push(B)}catch{}}}catch{continue}return Q.filter((K,G)=>Q.indexOf(K)===G)}async function CA7(J){let Q=await TA7(J);for(let X of Q){let Z=iB(X,PA7);try{return await Y1().stat(Z),!0}catch{}}return!1}async function vA7(J,Q=!1){if(!Q){let Z=Of1.get(J);if(Z)return Z}let X=CA7(J).then((Z)=>{return Lf1.set(J,Z),Z});return Of1.set(J,X),X}async function wR6(J,Q=!1){if(Q)Lf1.delete(J),Of1.delete(J);return vA7(J,Q)}function AR6(J){return Lf1.get(J)??!1}var PA7="glock-jetbrains-plugin",NR6,Lf1,Of1;var Vf1=I(()=>{H6();NR6={pycharm:["PyCharm"],intellij:["IntelliJIdea","IdeaIC"],webstorm:["WebStorm"],phpstorm:["PhpStorm"],rubymine:["RubyMine"],clion:["CLion"],goland:["GoLand"],rider:["Rider"],datagrip:["DataGrip"],appcode:["AppCode"],dataspell:["DataSpell"],aqua:["Aqua"],gateway:["Gateway"],fleet:["Fleet"],androidstudio:["AndroidStudio"]};Lf1=new Map,Of1=new Map});import{execFileSync as RR6}from"child_process";class aJ0{wslDistroName;constructor(J){this.wslDistroName=J}toLocalPath(J){if(!J)return J;if(this.wslDistroName){let Q=J.match(/^\\\\wsl(?:\.localhost|\$)\\([^\\]+)(.*)$/);if(Q&&Q[1]!==this.wslDistroName)return J}try{return RR6("wslpath",["-u",J],{encoding:"utf8",stdio:["pipe","pipe","ignore"]}).trim()}catch{return J.replace(/\\/g,"/").replace(/^([A-Z]):/i,(Q,X)=>`/mnt/${X.toLowerCase()}`)}}toIDEPath(J){if(!J)return J;try{return RR6("wslpath",["-w",J],{encoding:"utf8",stdio:["pipe","pipe","ignore"]}).trim()}catch{return J}}}function MR6(J,Q){let X=J.match(/^\\\\wsl(?:\.localhost|\$)\\([^\\]+)(.*)$/);if(X)return X[1]===Q;return!0}var Nf1=()=>{};function DM(J,Q,X){let Z=nk.useRef(0),Y=nk.useRef(void 0),q=nk.useCallback(()=>{if(Y.current)clearTimeout(Y.current),Y.current=void 0},[]);return nk.useEffect(()=>{return()=>{q()}},[q]),nk.useCallback(()=>{let K=Date.now();if(K-Z.current<=DR6&&Y.current!==void 0)q(),J(!1),Q();else X?.(),J(!0),q(),Y.current=setTimeout((W,H)=>{W(!1),H.current=void 0},DR6,J,Y);Z.current=K},[J,Q,X,q])}var nk,DR6=800;var $F0=I(()=>{nk=T(J1(),1)});function $R6(J,Q,X,Z=!0){let{exit:Y}=d10(),[q,K]=rk.useState({pending:!1,keyName:null}),G=rk.useMemo(()=>X??Y,[X,Y]),z=DM((F)=>K({pending:F,keyName:"Ctrl-C"}),G),W=DM((F)=>K({pending:F,keyName:"Ctrl-D"}),G),H=rk.useCallback(()=>{if(Q?.())return;z()},[z,Q]),B=rk.useCallback(()=>{W()},[W]),U=rk.useMemo(()=>({"app:interrupt":H,"app:exit":B}),[H,B]);return J(U,{context:"Global",isActive:Z}),q}var rk;var jR6=I(()=>{zj1();$F0();rk=T(J1(),1)});function B7(J,Q,X){return $R6(C6,Q,J,X)}var Lq=I(()=>{f6();jR6()});function s1(J){let Q=IR6.c(5),{action:X,context:Z,fallback:Y,description:q,parens:K,bold:G}=J,z=r9(X,Z,Y),W;if(Q[0]!==G||Q[1]!==q||Q[2]!==K||Q[3]!==z)W=yR6.jsxDEV(p1,{shortcut:z,action:q,parens:K,bold:G},void 0,!1,void 0,this),Q[0]=G,Q[1]=q,Q[2]=K,Q[3]=z,Q[4]=W;else W=Q[4];return W}var IR6,yR6;var U7=I(()=>{nz();g9();IR6=T(e0(),1),yR6=T(e(),1)});function V8(J){let Q=bR6.c(5),{children:X}=J,Z,Y;if(Q[0]!==X){Y=Symbol.for("react.early_return_sentinel");J:{let K=sJ0.Children.toArray(X);if(K.length===0){Y=null;break J}Z=K.map(fA7)}Q[0]=X,Q[1]=Z,Q[2]=Y}else Z=Q[1],Y=Q[2];if(Y!==Symbol.for("react.early_return_sentinel"))return Y;let q;if(Q[3]!==Z)q=oJ0.jsxDEV(oJ0.Fragment,{children:Z},void 0,!1,void 0,this),Q[3]=Z,Q[4]=q;else q=Q[4];return q}function fA7(J,Q){return oJ0.jsxDEV(sJ0.default.Fragment,{children:[Q>0&&oJ0.jsxDEV(M,{dimColor:!0,children:" \xB7 "},void 0,!1,void 0,this),J]},sJ0.isValidElement(J)?J.key??Q:Q,!0,void 0,this)}var bR6,sJ0,oJ0;var R9=I(()=>{a0();bR6=T(e0(),1),sJ0=T(J1(),1),oJ0=T(e(),1)});function oF(){return tJ0.useContext(jF0)!==null}function ER6(J){let Q=PR6.c(3),X=tJ0.useContext(jF0),Z;if(Q[0]!==X||Q[1]!==J)Z=X?{rows:X.rows,columns:X.columns}:J,Q[0]=X,Q[1]=J,Q[2]=Z;else Z=Q[2];return Z}function TR6(){return tJ0.useContext(jF0)?.scrollRef??null}var PR6,tJ0,jF0;var rE=I(()=>{PR6=T(e0(),1),tJ0=T(J1(),1),jF0=tJ0.createContext(null)});function w4(J){let Q=CR6.c(21),{width:X,color:Z,char:Y,padding:q,title:K}=J,G=Y===void 0?"\u2500":Y,z=q===void 0?0:q,{columns:W}=l8(),H=Math.max(0,(X??W)-z);if(K){let _=B8(K)+2,O=Math.max(0,H-_),L=Math.floor(O/2),N=O-L,A=!Z,R;if(Q[0]!==G||Q[1]!==L)R=G.repeat(L),Q[0]=G,Q[1]=L,Q[2]=R;else R=Q[2];let D;if(Q[3]!==K)D=IF0.jsxDEV(M,{dimColor:!0,children:IF0.jsxDEV(C9,{children:K},void 0,!1,void 0,this)},void 0,!1,void 0,this),Q[3]=K,Q[4]=D;else D=Q[4];let $;if(Q[5]!==G||Q[6]!==N)$=G.repeat(N),Q[5]=G,Q[6]=N,Q[7]=$;else $=Q[7];let y;if(Q[8]!==Z||Q[9]!==A||Q[10]!==R||Q[11]!==D||Q[12]!==$)y=IF0.jsxDEV(M,{color:Z,dimColor:A,children:[R," ",D," ",$]},void 0,!0,void 0,this),Q[8]=Z,Q[9]=A,Q[10]=R,Q[11]=D,Q[12]=$,Q[13]=y;else y=Q[13];return y}let B=!Z,U;if(Q[14]!==G||Q[15]!==H)U=G.repeat(H),Q[14]=G,Q[15]=H,Q[16]=U;else U=Q[16];let F;if(Q[17]!==Z||Q[18]!==B||Q[19]!==U)F=IF0.jsxDEV(M,{color:Z,dimColor:B,children:U},void 0,!1,void 0,this),Q[17]=Z,Q[18]=B,Q[19]=U,Q[20]=F;else F=Q[20];return F}var CR6,IF0;var $M=I(()=>{U9();x7();a0();CR6=T(e0(),1),IF0=T(e(),1)});function yX(J){let Q=vR6.c(9),{children:X,color:Z}=J;if(oF()){let G;if(Q[0]!==X)G=yF0.jsxDEV(f,{flexDirection:"column",paddingX:1,flexShrink:0,children:X},void 0,!1,void 0,this),Q[0]=X,Q[1]=G;else G=Q[1];return G}let Y;if(Q[2]!==Z)Y=yF0.jsxDEV(w4,{color:Z},void 0,!1,void 0,this),Q[2]=Z,Q[3]=Y;else Y=Q[3];let q;if(Q[4]!==X)q=yF0.jsxDEV(f,{flexDirection:"column",paddingX:2,children:X},void 0,!1,void 0,this),Q[4]=X,Q[5]=q;else q=Q[5];let K;if(Q[6]!==Y||Q[7]!==q)K=yF0.jsxDEV(f,{flexDirection:"column",paddingTop:1,children:[Y,q]},void 0,!0,void 0,this),Q[6]=Y,Q[7]=q,Q[8]=K;else K=Q[8];return K}var vR6,yF0;var t3=I(()=>{rE();a0();$M();vR6=T(e0(),1),yF0=T(e(),1)});function D8(J){let Q=fR6.c(27),{title:X,subtitle:Z,children:Y,onCancel:q,color:K,hideInputGuide:G,hideBorder:z,inputGuide:W,isCancelActive:H}=J,B=K===void 0?"permission":K,U=H===void 0?!0:H,F=B7(void 0,void 0,U),_;if(Q[0]!==U)_={context:"Confirmation",isActive:U},Q[0]=U,Q[1]=_;else _=Q[1];J8("confirm:no",q,_);let O;if(Q[2]!==F.keyName||Q[3]!==F.pending)O=F.pending?j2.jsxDEV(M,{children:["Press ",F.keyName," again to exit"]},void 0,!0,void 0,this):j2.jsxDEV(V8,{children:[j2.jsxDEV(p1,{shortcut:"Enter",action:"confirm"},void 0,!1,void 0,this),j2.jsxDEV(s1,{action:"confirm:no",context:"Confirmation",fallback:"Esc",description:"cancel"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),Q[2]=F.keyName,Q[3]=F.pending,Q[4]=O;else O=Q[4];let L=O,N;if(Q[5]!==B||Q[6]!==X)N=j2.jsxDEV(M,{bold:!0,color:B,children:X},void 0,!1,void 0,this),Q[5]=B,Q[6]=X,Q[7]=N;else N=Q[7];let A;if(Q[8]!==Z)A=Z&&j2.jsxDEV(M,{dimColor:!0,children:Z},void 0,!1,void 0,this),Q[8]=Z,Q[9]=A;else A=Q[9];let R;if(Q[10]!==N||Q[11]!==A)R=j2.jsxDEV(f,{flexDirection:"column",children:[N,A]},void 0,!0,void 0,this),Q[10]=N,Q[11]=A,Q[12]=R;else R=Q[12];let D;if(Q[13]!==Y||Q[14]!==R)D=j2.jsxDEV(f,{flexDirection:"column",gap:1,children:[R,Y]},void 0,!0,void 0,this),Q[13]=Y,Q[14]=R,Q[15]=D;else D=Q[15];let $;if(Q[16]!==L||Q[17]!==F||Q[18]!==G||Q[19]!==W)$=!G&&j2.jsxDEV(f,{marginTop:1,children:j2.jsxDEV(M,{dimColor:!0,italic:!0,children:W?W(F):L},void 0,!1,void 0,this)},void 0,!1,void 0,this),Q[16]=L,Q[17]=F,Q[18]=G,Q[19]=W,Q[20]=$;else $=Q[20];let y;if(Q[21]!==D||Q[22]!==$)y=j2.jsxDEV(j2.Fragment,{children:[D,$]},void 0,!0,void 0,this),Q[21]=D,Q[22]=$,Q[23]=y;else y=Q[23];let v=y;if(z)return v;let E;if(Q[24]!==B||Q[25]!==v)E=j2.jsxDEV(yX,{color:B,children:v},void 0,!1,void 0,this),Q[24]=B,Q[25]=v,Q[26]=E;else E=Q[26];return E}var fR6,j2;var M9=I(()=>{Lq();a0();f6();U7();R9();g9();t3();fR6=T(e0(),1),j2=T(e(),1)});var kR6={};X8(kR6,{hasIdeOnboardingDialogBeenShown:()=>xR6,IdeOnboardingDialog:()=>wf1});function wf1(J){let Q=SR6.c(23),{onDone:X,installationStatus:Z}=J;SA7();let Y;if(Q[0]!==X)Y={"confirm:yes":X,"confirm:no":X},Q[0]=X,Q[1]=Y;else Y=Q[1];let q;if(Q[2]===Symbol.for("react.memo_cache_sentinel"))q={context:"Confirmation"},Q[2]=q;else q=Q[2];C6(Y,q);let K;if(Q[3]!==Z?.ideType)K=Z?.ideType??eJ0(),Q[3]=Z?.ideType,Q[4]=K;else K=Q[4];let G=K,z=jM(G),W;if(Q[5]!==G)W=Vq(G),Q[5]=G,Q[6]=W;else W=Q[6];let H=W,B=Z?.installedVersion,U=z?"plugin":"extension",F=k8.platform==="darwin"?"Cmd+Option+K":"Ctrl+Alt+K",_;if(Q[7]===Symbol.for("react.memo_cache_sentinel"))_=EK.jsxDEV(M,{color:"glock",children:"\u273B "},void 0,!1,void 0,this),Q[7]=_;else _=Q[7];let O;if(Q[8]!==H)O=EK.jsxDEV(EK.Fragment,{children:[_,EK.jsxDEV(M,{children:["Welcome to Glock for ",H]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),Q[8]=H,Q[9]=O;else O=Q[9];let L=B?`installed ${U} v${B}`:void 0,N;if(Q[10]===Symbol.for("react.memo_cache_sentinel"))N=EK.jsxDEV(M,{color:"suggestion",children:"\u29C9 open files"},void 0,!1,void 0,this),Q[10]=N;else N=Q[10];let A;if(Q[11]===Symbol.for("react.memo_cache_sentinel"))A=EK.jsxDEV(M,{children:["\u2022 Glock has context of ",N," ","and ",EK.jsxDEV(M,{color:"suggestion",children:"\u29C9 selected lines"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),Q[11]=A;else A=Q[11];let R;if(Q[12]===Symbol.for("react.memo_cache_sentinel"))R=EK.jsxDEV(M,{color:"diffAddedWord",children:"+11"},void 0,!1,void 0,this),Q[12]=R;else R=Q[12];let D;if(Q[13]===Symbol.for("react.memo_cache_sentinel"))D=EK.jsxDEV(M,{children:["\u2022 Review Glock's changes"," ",R," ",EK.jsxDEV(M,{color:"diffRemovedWord",children:"-22"},void 0,!1,void 0,this)," in the comfort of your IDE"]},void 0,!0,void 0,this),Q[13]=D;else D=Q[13];let $;if(Q[14]===Symbol.for("react.memo_cache_sentinel"))$=EK.jsxDEV(M,{children:["\u2022 Cmd+Esc",EK.jsxDEV(M,{dimColor:!0,children:" for Quick Launch"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),Q[14]=$;else $=Q[14];let y;if(Q[15]===Symbol.for("react.memo_cache_sentinel"))y=EK.jsxDEV(f,{flexDirection:"column",gap:1,children:[A,D,$,EK.jsxDEV(M,{children:["\u2022 ",F,EK.jsxDEV(M,{dimColor:!0,children:" to reference files or lines in your input"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),Q[15]=y;else y=Q[15];let v;if(Q[16]!==X||Q[17]!==O||Q[18]!==L)v=EK.jsxDEV(D8,{title:O,subtitle:L,color:"ide",onCancel:X,hideInputGuide:!0,children:y},void 0,!1,void 0,this),Q[16]=X,Q[17]=O,Q[18]=L,Q[19]=v;else v=Q[19];let E;if(Q[20]===Symbol.for("react.memo_cache_sentinel"))E=EK.jsxDEV(f,{paddingX:1,children:EK.jsxDEV(M,{dimColor:!0,italic:!0,children:"Press Enter to continue"},void 0,!1,void 0,this)},void 0,!1,void 0,this),Q[20]=E;else E=Q[20];let C;if(Q[21]!==v)C=EK.jsxDEV(EK.Fragment,{children:[v,E]},void 0,!0,void 0,this),Q[21]=v,Q[22]=C;else C=Q[22];return C}function xR6(){let J=L1(),Q=kR.terminal||"unknown";return J.hasIdeOnboardingBeenShown?.[Q]===!0}function SA7(){if(xR6())return;let J=kR.terminal||"unknown";q8((Q)=>({...Q,hasIdeOnboardingBeenShown:{...Q.hasIdeOnboardingBeenShown,[J]:!0}}))}var SR6,EK;var Af1=I(()=>{e10();a0();f6();m8();WZ();b5();M9();SR6=T(e0(),1),EK=T(e(),1)});import{createConnection as xA7}from"net";import*as oc0 from"os";import{basename as kA7,join as bF0,sep as ac0,resolve as Rf1}from"path";function cR6(J){try{return process.kill(J,0),!0}catch{return!1}}function hA7(){let J=null;return()=>{if(!J)J=f46(process.ppid,10).then((Q)=>new Set(Q));return J}}function sc0(J){if(!J)return!1;let Q=J90[J];return Q&&Q.ideKind==="vscode"}function jM(J){if(!J)return!1;let Q=J90[J];return Q&&Q.ideKind==="jetbrains"}function eJ0(){if(!tz())return null;return k8.terminal}async function tc0(){try{let J=await gA7();return(await Promise.all(J.map(async(X)=>{try{let Y=(await Y1().readdir(X)).filter((K)=>K.name.endsWith(".lock"));return(await Promise.all(Y.map(async(K)=>{let G=bF0(X,K.name);try{let z=await Y1().stat(G);return{path:G,mtime:z.mtime}}catch{return null}}))).filter((K)=>K!==null)}catch(Z){if(!TX(Z))H0(Z);return[]}}))).flat().sort((X,Z)=>Z.mtime.getTime()-X.mtime.getTime()).map((X)=>X.path)}catch(J){return H0(J),[]}}async function dR6(J){try{let Q=await Y1().readFile(J,{encoding:"utf-8"}),X=[],Z,Y,q=!1,K=!1,G;try{let H=c1(Q);if(H.workspaceFolders)X=H.workspaceFolders;Z=H.pid,Y=H.ideName,q=H.transport==="ws",K=H.runningInWindows===!0,G=H.authToken}catch(H){X=Q.split(`
|
|
1584
|
+
`).map((B)=>B.trim())}let z=J.split(ac0).pop();if(!z)return null;let W=z.replace(".lock","");return{workspaceFolders:X,port:parseInt(W),pid:Z,ideName:Y,useWebSocket:q,runningInWindows:K,authToken:G}}catch(Q){return H0(Q),null}}async function Mf1(J,Q,X=500){try{return new Promise((Z)=>{let Y=xA7({host:J,port:Q,timeout:X});Y.on("connect",()=>{Y.destroy(),Z(!0)}),Y.on("error",()=>{Z(!1)}),Y.on("timeout",()=>{Y.destroy(),Z(!1)})})}catch(Z){return!1}}async function gA7(){let J=[bF0(L8(),"ide")];if(N8()!=="wsl")return J;let Q=await uA7();if(Q){let Z=new aJ0(process.env.WSL_DISTRO_NAME).toLocalPath(Q);J.push(Rf1(Z,".glock","ide"))}try{let Z=await Y1().readdir("/mnt/c/Users");for(let Y of Z){if(!Y.isDirectory()&&!Y.isSymbolicLink())continue;if(Y.name==="Public"||Y.name==="Default"||Y.name==="Default User"||Y.name==="All Users")continue;J.push(bF0("/mnt/c/Users",Y.name,".glock","ide"))}}catch(X){if(TX(X))b(`WSL IDE lockfile path detection failed (${X.code}): ${Q1(X)}`);else H0(X)}return J}async function mA7(){try{let J=await tc0();for(let Q of J){let X=await dR6(Q);if(!X){try{await Y1().unlink(Q)}catch(q){H0(q)}continue}let Z=await tR6(X.runningInWindows,X.port),Y=!1;if(X.pid){if(!cR6(X.pid)){if(N8()!=="wsl")Y=!0;else if(!await Mf1(Z,X.port))Y=!0}}else if(!await Mf1(Z,X.port))Y=!0;if(Y)try{await Y1().unlink(Q)}catch(q){H0(q)}}}catch(J){H0(J)}}async function pA7(J){try{let Q=await dA7(J);if(l("jarvis_api_error",{}),!L1().diffTool)q8((Z)=>({...Z,diffTool:"auto"}));return{installed:!0,error:null,installedVersion:Q,ideType:J}}catch(Q){l("jarvis_api_error",{});let X=Q instanceof Error?Q.message:String(Q);return H0(Q),{installed:!1,error:X,installedVersion:null,ideType:J}}}async function uR6(){if(rc0)rc0.abort();rc0=u7();let J=rc0.signal;await mA7();let Q=Date.now();while(Date.now()-Q<30000&&!J.aborted){if(pm()){await FJ(1000,J);continue}let X=await X90(!1);if(J.aborted)return null;if(X.length===1)return X[0];await FJ(1000,J)}return null}async function X90(J){let Q=[];try{let X=process.env.GLOCK_SSE_PORT,Z=X?parseInt(X):null,Y=j8().normalize("NFC"),q=await tc0(),K=await Promise.all(q.map(dR6)),G=hA7(),z=N8()!=="wsl"&&tz();for(let W of K){if(!W)continue;let H=!1;if(W1(process.env.GLOCK_IDE_SKIP_VALID_CHECK))H=!0;else if(W.port===Z)H=!0;else H=W.workspaceFolders.some((_)=>{if(!_)return!1;let O=_;if(N8()==="wsl"&&W.runningInWindows&&process.env.WSL_DISTRO_NAME){if(!MR6(_,process.env.WSL_DISTRO_NAME))return!1;let N=Rf1(O).normalize("NFC");if(Y===N||Y.startsWith(N+ac0))return!0;O=new aJ0(process.env.WSL_DISTRO_NAME).toLocalPath(_)}let L=Rf1(O).normalize("NFC");if(N8()==="windows"){let N=Y.replace(/^[a-zA-Z]:/,(R)=>R.toUpperCase()),A=L.replace(/^[a-zA-Z]:/,(R)=>R.toUpperCase());return N===A||N.startsWith(A+ac0)}return Y===L||Y.startsWith(L+ac0)});if(!H&&!J)continue;if(z){if(!(Z!==null&&W.port===Z)){if(!W.pid||!cR6(W.pid))continue;if(process.ppid!==W.pid){if(!(await G()).has(W.pid))continue}}}let B=W.ideName??(tz()?Vq(kR.terminal):"IDE"),U=await tR6(W.runningInWindows,W.port),F;if(W.useWebSocket)F=`ws://${U}:${W.port}`;else F=`http://${U}:${W.port}/sse`;Q.push({url:F,name:B,workspaceFolders:W.workspaceFolders,port:W.port,isValid:H,authToken:W.authToken,ideRunningInWindows:W.runningInWindows})}if(!J&&Z){let W=Q.filter((H)=>H.isValid&&H.port===Z);if(W.length===1)return W}}catch(X){H0(X)}return Q}async function LR6(J){await J.notification({method:"ide_connected",params:{pid:process.pid}})}function ec0(J){return J.some((Q)=>Q.type==="connected"&&Q.name==="ide")}async function gR6(J){if(sc0(J)){let Q=await lR6(J);if(Q)try{if((await r8(Q,["--list-extensions"],{env:Jd0()})).stdout?.includes(cA7))return!0}catch{}}else if(jM(J))return await wR6(J);return!1}async function dA7(J){if(sc0(J)){let Q=await lR6(J);if(Q){if(process.env.USER_TYPE==="ant")return await rA7(Q);let X=await lA7(Q);if(!X||Ix0(X,mR6())){await FJ(500);let Z=await r8(Q,["--force","--install-extension","glock.glock"],{env:Jd0()});if(Z.code!==0)throw Error(`${Z.code}: ${Z.error} ${Z.stderr}`);X=mR6()}return X}}return null}function Jd0(){if(N8()==="linux")return{...process.env,DISPLAY:""};return}function mR6(){return"0.1.17"}async function lA7(J){let{stdout:Q}=await Z8(J,["--list-extensions","--show-versions"],{env:Jd0()}),X=Q?.split(`
|
|
1585
1585
|
`)||[];for(let Z of X){let[Y,q]=Z.split("@");if(Y==="glock.glock"&&q)return q}return null}function iA7(){try{if(N8()!=="macos")return null;let Q=process.ppid;for(let X=0;X<10;X++){if(!Q||Q===0||Q===1)break;let Z=iA(`ps -o command= -p ${Q}`)?.trim();if(Z){let q={"Visual Studio Code.app":"code","Cursor.app":"cursor","Windsurf.app":"windsurf","Visual Studio Code - Insiders.app":"code","VSCodium.app":"codium"},K="/Contents/MacOS/Electron";for(let[G,z]of Object.entries(q)){let W=Z.indexOf(G+"/Contents/MacOS/Electron");if(W!==-1){let H=W+G.length;return Z.substring(0,H)+"/Contents/Resources/app/bin/"+z}}}let Y=iA(`ps -o ppid= -p ${Q}`)?.trim();if(!Y)break;Q=parseInt(Y.trim())}return null}catch{return null}}async function lR6(J){let Q=iA7();if(Q)try{return await Y1().stat(Q),Q}catch{}let X=N8()==="windows"?".cmd":"";switch(J){case"vscode":return"code"+X;case"cursor":return"cursor"+X;case"windsurf":return"windsurf"+X;default:break}return null}async function iR6(){return(await Z8("cursor",["--version"])).code===0}async function nR6(){return(await Z8("windsurf",["--version"])).code===0}async function rR6(){let J=await Z8("code",["--help"]);return J.code===0&&Boolean(J.stdout?.includes("Visual Studio Code"))}async function nA7(){let J=[];try{let Q=N8();if(Q==="macos"){let Z=(await jZ('ps aux | grep -E "Visual Studio Code|Code Helper|Cursor Helper|Windsurf Helper|IntelliJ IDEA|PyCharm|WebStorm|PhpStorm|RubyMine|CLion|GoLand|Rider|DataGrip|AppCode|DataSpell|Aqua|Gateway|Fleet|Android Studio" | grep -v grep',{shell:!0,reject:!1})).stdout??"";for(let[Y,q]of Object.entries(J90))for(let K of q.processKeywordsMac)if(Z.includes(K)){J.push(Y);break}}else if(Q==="windows"){let Y=((await jZ('tasklist | findstr /I "Code.exe Cursor.exe Windsurf.exe idea64.exe pycharm64.exe webstorm64.exe phpstorm64.exe rubymine64.exe clion64.exe goland64.exe rider64.exe datagrip64.exe appcode.exe dataspell64.exe aqua64.exe gateway64.exe fleet.exe studio64.exe"',{shell:!0,reject:!1})).stdout??"").toLowerCase();for(let[q,K]of Object.entries(J90))for(let G of K.processKeywordsWindows)if(Y.includes(G.toLowerCase())){J.push(q);break}}else if(Q==="linux"){let Y=((await jZ('ps aux | grep -E "code|cursor|windsurf|idea|pycharm|webstorm|phpstorm|rubymine|clion|goland|rider|datagrip|dataspell|aqua|gateway|fleet|android-studio" | grep -v grep',{shell:!0,reject:!1})).stdout??"").toLowerCase();for(let[q,K]of Object.entries(J90))for(let G of K.processKeywordsLinux)if(Y.includes(G)){if(q!=="vscode"){J.push(q);break}else if(!Y.includes("cursor")&&!Y.includes("appcode")){J.push(q);break}}}}catch(Q){H0(Q)}return J}async function $f1(){let J=await nA7();return Df1=J,J}async function aR6(){if(Df1===null)return $f1();return Df1}function Qd0(J){let Q=J.find((X)=>X.type==="connected"&&X.name==="ide");return jf1(Q)}function jf1(J){let Q=J?.config;return Q?.type==="sse-ide"||Q?.type==="ws-ide"?Q.ideName:tz()?Vq(kR.terminal):null}function Vq(J){if(!J)return"IDE";let Q=J90[J];if(Q)return Q.displayName;let X=pR6[J.toLowerCase().trim()];if(X)return X;let Z=J.split(" ")[0],Y=Z?kA7(Z).toLowerCase():null;if(Y){let q=pR6[Y];if(q)return q;return CE(Y)}return CE(J)}function sF(J){if(!J)return;let Q=J.find((X)=>X.type==="connected"&&X.name==="ide");return Q?.type==="connected"?Q:void 0}async function oR6(J){try{await nE("closeAllDiffTabs",{},J)}catch(Q){}}async function sR6(J,Q,X,Z){uR6().then(J);let Y=L1().autoInstallIdeExtension??!0;if(!W1(process.env.GLOCK_IDE_SKIP_AUTO_INSTALL)&&Y){let q=Q??eJ0();if(q){if(sc0(q))gR6(q).then(async(K)=>{pA7(q).catch((G)=>{return{installed:!1,error:G.message||"Installation failed",installedVersion:null,ideType:q}}).then((G)=>{if(Z(G),G?.installed)uR6().then(J);if(!K&&G?.installed===!0&&!hR6().hasIdeOnboardingDialogBeenShown())X()})});else if(jM(q))gR6(q).then(async(K)=>{if(K&&!hR6().hasIdeOnboardingDialogBeenShown())X()})}}}async function rA7(J){let Q=bF0(oc0.homedir(),".npmrc"),X=null,Z=Y1();try{let K=(await Z.readFile(Q,{encoding:"utf8"})).split(`
|
|
1586
1586
|
`);for(let G of K){let z=G.match(/\/\/artifactory\.infra\.ant\.dev\/artifactory\/api\/npm\/npm-all\/:_authToken=(.+)/);if(z&&z[1]){X=z[1].trim();break}}}catch(q){throw H0(q),Error(`Failed to read npm authentication: ${q}`)}if(!X)throw Error("No artifactory auth token found in ~/.npmrc");let Y="https://artifactory.infra.ant.dev/artifactory/armorcode-glock-internal/glock-vscode-releases/stable";try{let K=(await y8.get(Y,{headers:{Authorization:`Bearer ${X}`}})).data.trim();if(!K)throw Error("No version found in artifactory response");let G=`https://artifactory.infra.ant.dev/artifactory/armorcode-glock-internal/glock-vscode-releases/${K}/glock.vsix`,z=bF0(oc0.tmpdir(),`glock-${K}-${Date.now()}.vsix`);try{let W=await y8.get(G,{headers:{Authorization:`Bearer ${X}`},responseType:"stream"}),H=Y1().createWriteStream(z);await new Promise((U,F)=>{W.data.pipe(H),H.on("finish",U),H.on("error",F)}),await FJ(500);let B=await r8(J,["--force","--install-extension",z],{env:Jd0()});if(B.code!==0)throw Error(`${B.code}: ${B.error} ${B.stderr}`);return K}finally{try{await Z.unlink(z)}catch{}}}catch(q){if(y8.isAxiosError(q))throw Error(`Failed to fetch extension version from artifactory: ${q.message}`);throw q}}var hR6=()=>(Af1(),e4(kR6)),J90,PF0,Q90,tz,uA7,rc0=null,cA7,Df1=null,pR6,tR6;var b5=I(()=>{JX();uU();_20();IJ();D1();N1();dB();m8();WZ();t1();T9();H6();t10();Vf1();M1();k9();nq();Z1();e10();T1();Nf1();i1();J90={cursor:{ideKind:"vscode",displayName:"Cursor",processKeywordsMac:["Cursor Helper","Cursor.app"],processKeywordsWindows:["cursor.exe"],processKeywordsLinux:["cursor"]},windsurf:{ideKind:"vscode",displayName:"Windsurf",processKeywordsMac:["Windsurf Helper","Windsurf.app"],processKeywordsWindows:["windsurf.exe"],processKeywordsLinux:["windsurf"]},vscode:{ideKind:"vscode",displayName:"VS Code",processKeywordsMac:["Visual Studio Code","Code Helper"],processKeywordsWindows:["code.exe"],processKeywordsLinux:["code"]},intellij:{ideKind:"jetbrains",displayName:"IntelliJ IDEA",processKeywordsMac:["IntelliJ IDEA"],processKeywordsWindows:["idea64.exe"],processKeywordsLinux:["idea","intellij"]},pycharm:{ideKind:"jetbrains",displayName:"PyCharm",processKeywordsMac:["PyCharm"],processKeywordsWindows:["pycharm64.exe"],processKeywordsLinux:["pycharm"]},webstorm:{ideKind:"jetbrains",displayName:"WebStorm",processKeywordsMac:["WebStorm"],processKeywordsWindows:["webstorm64.exe"],processKeywordsLinux:["webstorm"]},phpstorm:{ideKind:"jetbrains",displayName:"PhpStorm",processKeywordsMac:["PhpStorm"],processKeywordsWindows:["phpstorm64.exe"],processKeywordsLinux:["phpstorm"]},rubymine:{ideKind:"jetbrains",displayName:"RubyMine",processKeywordsMac:["RubyMine"],processKeywordsWindows:["rubymine64.exe"],processKeywordsLinux:["rubymine"]},clion:{ideKind:"jetbrains",displayName:"CLion",processKeywordsMac:["CLion"],processKeywordsWindows:["clion64.exe"],processKeywordsLinux:["clion"]},goland:{ideKind:"jetbrains",displayName:"GoLand",processKeywordsMac:["GoLand"],processKeywordsWindows:["goland64.exe"],processKeywordsLinux:["goland"]},rider:{ideKind:"jetbrains",displayName:"Rider",processKeywordsMac:["Rider"],processKeywordsWindows:["rider64.exe"],processKeywordsLinux:["rider"]},datagrip:{ideKind:"jetbrains",displayName:"DataGrip",processKeywordsMac:["DataGrip"],processKeywordsWindows:["datagrip64.exe"],processKeywordsLinux:["datagrip"]},appcode:{ideKind:"jetbrains",displayName:"AppCode",processKeywordsMac:["AppCode"],processKeywordsWindows:["appcode.exe"],processKeywordsLinux:["appcode"]},dataspell:{ideKind:"jetbrains",displayName:"DataSpell",processKeywordsMac:["DataSpell"],processKeywordsWindows:["dataspell64.exe"],processKeywordsLinux:["dataspell"]},aqua:{ideKind:"jetbrains",displayName:"Aqua",processKeywordsMac:[],processKeywordsWindows:["aqua64.exe"],processKeywordsLinux:[]},gateway:{ideKind:"jetbrains",displayName:"Gateway",processKeywordsMac:[],processKeywordsWindows:["gateway64.exe"],processKeywordsLinux:[]},fleet:{ideKind:"jetbrains",displayName:"Fleet",processKeywordsMac:[],processKeywordsWindows:["fleet.exe"],processKeywordsLinux:[]},androidstudio:{ideKind:"jetbrains",displayName:"Android Studio",processKeywordsMac:["Android Studio"],processKeywordsWindows:["studio64.exe"],processKeywordsLinux:["android-studio"]}};PF0=g1(()=>{return sc0(k8.terminal)}),Q90=g1(()=>{return jM(kR.terminal)}),tz=g1(()=>{return PF0()||Q90()||Boolean(process.env.FORCE_CODE_TERMINAL)});uA7=g1(async()=>{if(process.env.USERPROFILE)return process.env.USERPROFILE;let{stdout:J,code:Q}=await Z8("powershell.exe",["-NoProfile","-NonInteractive","-Command","$env:USERPROFILE"]);if(Q===0&&J.trim())return J.trim();b("Unable to get Windows USERPROFILE via PowerShell - IDE detection may be incomplete");return});cA7=process.env.USER_TYPE==="ant"?"glock.glock-internal":"glock.glock";pR6={code:"VS Code",cursor:"Cursor",windsurf:"Windsurf",antigravity:"Antigravity",vi:"Vim",vim:"Vim",nano:"nano",notepad:"Notepad","start /wait notepad":"Notepad",emacs:"Emacs",subl:"Sublime Text",atom:"Atom"};tR6=g1(async(J,Q)=>{if(process.env.GLOCK_IDE_HOST_OVERRIDE)return process.env.GLOCK_IDE_HOST_OVERRIDE;if(N8()!=="wsl"||!J)return"127.0.0.1";try{let X=await jZ("ip route show | grep -i default",{shell:!0,reject:!1});if(X.exitCode===0&&X.stdout){let Z=X.stdout.match(/default via (\d+\.\d+\.\d+\.\d+)/);if(Z){let Y=Z[1];if(await Mf1(Y,Q))return Y}}}catch(X){}return"127.0.0.1"},(J,Q)=>`${J}:${Q}`)});function JK(J){return typeof J==="object"&&J!==null&&"type"in J&&J.type==="in_process_teammate"}function zi(J,Q){if(J===void 0||J.length===0)return[Q];if(J.length>=eR6){let X=J.slice(-(eR6-1));return X.push(Q),X}return[...J,Q]}var eR6=50;function IM(J){let{viewingAgentTaskId:Q,tasks:X}=J;if(!Q)return;let Z=X[Q];if(!Z)return;if(!JK(Z))return;return Z}function Xd0(J){let Q=IM(J);if(Q)return{type:"viewed",task:Q};let{viewingAgentTaskId:X,tasks:Z}=J;if(X){let Y=Z[X];if(Y?.type==="local_agent")return{type:"named_agent",task:Y}}return{type:"leader"}}var Z90=()=>{};class yM{static instance;baseline=new Map;initialized=!1;mcpClient;lastProcessedTimestamps=new Map;rightFileDiagnosticsState=new Map;static getInstance(){if(!yM.instance)yM.instance=new yM;return yM.instance}initialize(J){if(this.initialized)return;this.mcpClient=J,this.initialized=!0}async shutdown(){this.initialized=!1,this.baseline.clear(),this.rightFileDiagnosticsState.clear(),this.lastProcessedTimestamps.clear()}reset(){this.baseline.clear(),this.rightFileDiagnosticsState.clear(),this.lastProcessedTimestamps.clear()}normalizeFileUri(J){let Q=["file://","_glock_fs_right:","_glock_fs_left:"],X=J;for(let Z of Q)if(J.startsWith(Z)){X=J.slice(Z.length);break}return QG(X)}async ensureFileOpened(J){if(!this.initialized||!this.mcpClient||this.mcpClient.type!=="connected")return;try{await nE("openFile",{filePath:J,preview:!1,startText:"",endText:"",selectToEndOfLine:!1,makeFrontmost:!1},this.mcpClient)}catch(Q){H0(Q)}}async beforeFileEdited(J){if(!this.initialized||!this.mcpClient||this.mcpClient.type!=="connected")return;let Q=Date.now();try{let X=await nE("getDiagnostics",{uri:`file://${J}`},this.mcpClient),Z=this.parseDiagnosticResult(X)[0];if(Z){if(!R28(this.normalizeFileUri(J),this.normalizeFileUri(Z.uri))){H0(new QM6(`Diagnostics file path mismatch: expected ${J}, got ${Z.uri})`));return}let Y=this.normalizeFileUri(J);this.baseline.set(Y,Z.diagnostics),this.lastProcessedTimestamps.set(Y,Q)}else{let Y=this.normalizeFileUri(J);this.baseline.set(Y,[]),this.lastProcessedTimestamps.set(Y,Q)}}catch(X){}}async getNewDiagnostics(){if(!this.initialized||!this.mcpClient||this.mcpClient.type!=="connected")return[];let J=[];try{let Y=await nE("getDiagnostics",{},this.mcpClient);J=this.parseDiagnosticResult(Y)}catch(Y){return[]}let Q=J.filter((Y)=>this.baseline.has(this.normalizeFileUri(Y.uri))).filter((Y)=>Y.uri.startsWith("file://")),X=new Map;J.filter((Y)=>this.baseline.has(this.normalizeFileUri(Y.uri))).filter((Y)=>Y.uri.startsWith("_glock_fs_right:")).forEach((Y)=>{X.set(this.normalizeFileUri(Y.uri),Y)});let Z=[];for(let Y of Q){let q=this.normalizeFileUri(Y.uri),K=this.baseline.get(q)||[],G=X.get(q),z=Y;if(G){let H=this.rightFileDiagnosticsState.get(q);if(!H||!this.areDiagnosticArraysEqual(H,G.diagnostics))z=G;this.rightFileDiagnosticsState.set(q,G.diagnostics)}let W=z.diagnostics.filter((H)=>!K.some((B)=>this.areDiagnosticsEqual(H,B)));if(W.length>0)Z.push({uri:Y.uri,diagnostics:W});this.baseline.set(q,z.diagnostics)}return Z}parseDiagnosticResult(J){if(Array.isArray(J)){let Q=J.find((X)=>X.type==="text");if(Q&&"text"in Q)return c1(Q.text)}return[]}areDiagnosticsEqual(J,Q){return J.message===Q.message&&J.severity===Q.severity&&J.source===Q.source&&J.code===Q.code&&J.range.start.line===Q.range.start.line&&J.range.start.character===Q.range.start.character&&J.range.end.line===Q.range.end.line&&J.range.end.character===Q.range.end.character}areDiagnosticArraysEqual(J,Q){if(J.length!==Q.length)return!1;return J.every((X)=>Q.some((Z)=>this.areDiagnosticsEqual(X,Z)))&&Q.every((X)=>J.some((Z)=>this.areDiagnosticsEqual(Z,X)))}async handleQueryStart(J){if(!this.initialized){let Q=sF(J);if(Q)this.initialize(Q)}else this.reset()}static formatDiagnosticsSummary(J){let X=J.map((Z)=>{let Y=Z.uri.split("/").pop()||Z.uri,q=Z.diagnostics.map((K)=>{return` ${yM.getSeveritySymbol(K.severity)} [Line ${K.range.start.line+1}:${K.range.start.character+1}] ${K.message}${K.code?` [${K.code}]`:""}${K.source?` (${K.source})`:""}`}).join(`
|
|
1587
1587
|
`);return`${Y}:
|
|
@@ -1771,7 +1771,7 @@ ${Y?G:z}`}var Sf1=I(()=>{MR();t1();FZ();lO();vZ();qq();PZ();xF0()});function Oi(
|
|
|
1771
1771
|
${B.instructions}`);for(let B of X){if(!G.has(B.serverName))continue;let U=z.get(B.serverName);z.set(B.serverName,U?`${U}
|
|
1772
1772
|
|
|
1773
1773
|
${B.block}`:`## ${B.serverName}
|
|
1774
|
-
${B.block}`)}let W=[];for(let[B,U]of z)if(!Z.has(B))W.push({name:B,block:U});let H=[];for(let B of Z)if(!G.has(B))H.push(B);if(W.length===0&&H.length===0)return null;return l("jarvis_api_error",{addedCount:W.length,removedCount:H.length,priorAnnouncedCount:Z.size,clientSideCount:X.length,messagesLength:Q.length,attachmentCount:Y,midCount:q}),W.sort((B,U)=>B.name.localeCompare(U.name)),{addedNames:W.map((B)=>B.name),addedBlocks:W.map((B)=>B.block),removedNames:H.sort()}}var nf1=I(()=>{D1();t1()});import{randomUUID as dR7}from"crypto";function cM6({serverName:J,files:Q}){let X=dR7();b(`LSP Diagnostics: Registering ${Q.length} diagnostic file(s) from ${J} (ID: ${X})`),XT.set(X,{serverName:J,files:Q,timestamp:Date.now(),attachmentSent:!1})}function pM6(J){switch(J){case"Error":return 1;case"Warning":return 2;case"Info":return 3;case"Hint":return 4;default:return 4}}function dM6(J){return l0({message:J.message,severity:J.severity,range:J.range,source:J.source||null,code:J.code||null})}function iR7(J){let Q=new Map,X=[];for(let Z of J){if(!Q.has(Z.uri))Q.set(Z.uri,new Set),X.push({uri:Z.uri,diagnostics:[]});let Y=Q.get(Z.uri),q=X.find((G)=>G.uri===Z.uri),K=ok.get(Z.uri)||new Set;for(let G of Z.diagnostics)try{let z=dM6(G);if(Y.has(z)||K.has(z))continue;Y.add(z),q.diagnostics.push(G)}catch(z){let W=R8(z),H=G.message?.substring(0,100)||"<no message>";H0(Error(`Failed to deduplicate diagnostic in ${Z.uri}: ${W.message}. Diagnostic message: ${H}`)),q.diagnostics.push(G)}}return X.filter((Z)=>Z.diagnostics.length>0)}function lM6(){b(`LSP Diagnostics: Checking registry - ${XT.size} pending`);let J=[],Q=new Set,X=[];for(let W of XT.values())if(!W.attachmentSent)J.push(...W.files),Q.add(W.serverName),X.push(W);if(J.length===0)return[];let Z;try{Z=iR7(J)}catch(W){let H=R8(W);H0(Error(`Failed to deduplicate LSP diagnostics: ${H.message}`)),Z=J}for(let W of X)W.attachmentSent=!0;for(let[W,H]of XT)if(H.attachmentSent)XT.delete(W);let Y=J.reduce((W,H)=>W+H.diagnostics.length,0),q=Z.reduce((W,H)=>W+H.diagnostics.length,0);if(Y>q)b(`LSP Diagnostics: Deduplication removed ${Y-q} duplicate diagnostic(s)`);let K=0,G=0;for(let W of Z){if(W.diagnostics.sort((B,U)=>pM6(B.severity)-pM6(U.severity)),W.diagnostics.length>wd0)G+=W.diagnostics.length-wd0,W.diagnostics=W.diagnostics.slice(0,wd0);let H=mM6-K;if(W.diagnostics.length>H)G+=W.diagnostics.length-H,W.diagnostics=W.diagnostics.slice(0,H);K+=W.diagnostics.length}if(Z=Z.filter((W)=>W.diagnostics.length>0),G>0)b(`LSP Diagnostics: Volume limiting removed ${G} diagnostic(s) (max ${wd0}/file, ${mM6} total)`);for(let W of Z){if(!ok.has(W.uri))ok.set(W.uri,new Set);let H=ok.get(W.uri);for(let B of W.diagnostics)try{H.add(dM6(B))}catch(U){let F=R8(U),_=B.message?.substring(0,100)||"<no message>";H0(Error(`Failed to track delivered diagnostic in ${W.uri}: ${F.message}. Diagnostic message: ${_}`))}}let z=Z.reduce((W,H)=>W+H.diagnostics.length,0);if(z===0)return b("LSP Diagnostics: No new diagnostics to deliver (all filtered by deduplication)"),[];return b(`LSP Diagnostics: Delivering ${Z.length} file(s) with ${z} diagnostic(s) from ${Q.size} server(s)`),[{serverName:Array.from(Q).join(", "),files:Z}]}function iM6(){b(`LSP Diagnostics: Clearing ${XT.size} pending diagnostic(s)`),XT.clear()}function nM6(){b(`LSP Diagnostics: Resetting all state (${XT.size} pending, ${ok.size} files tracked)`),XT.clear(),ok.clear()}function Ad0(J){if(ok.has(J))b(`LSP Diagnostics: Clearing delivered diagnostics for ${J}`),ok.delete(J)}var wd0=10,mM6=30,lR7=500,XT,ok;var _90=I(()=>{Jt();Z1();T1();M1();i1();XT=new Map,ok=new cV({max:lR7})});function O90(J){return J.type==="user"&&!J.isMeta&&J.toolUseResult===void 0}function wi(){return!1}function rM6(J){return/\bultrathink\b/i.test(J)}function Rd0(J){let Q=[],X=J.matchAll(/\bultrathink\b/gi);for(let Z of X)if(Z.index!==void 0)Q.push({word:Z[0],start:Z.index,end:Z.index+Z[0].length});return Q}function ZT(J,Q=!1){let X=Q?rR7:nR7;return X[J%X.length]}function aM6(J){let Q=SS(J,"thinking");if(Q!==void 0)return Q;if(process.env.USER_TYPE==="ant"){if(resolveAntModel(J.toLowerCase()))return!0}let X=ZY(J),Z=L6();if(Z==="foundry"||Z==="firstParty")return!X.includes("claude-3-");return X.includes("sonnet-4")||X.includes("opus-4")}function Md0(J){let Q=SS(J,"adaptive_thinking");if(Q!==void 0)return Q;let X=ZY(J);if(X.includes("opus-4-6")||X.includes("sonnet-4-6"))return!0;if(X.includes("opus")||X.includes("sonnet")||X.includes("haiku"))return!1;let Z=L6();return Z==="firstParty"||Z==="foundry"}function sk(){if(process.env.MAX_THINKING_TOKENS)return parseInt(process.env.MAX_THINKING_TOKENS,10)>0;let{settings:J}=op();if(J.alwaysThinkingEnabled===!1)return!1;return!0}var nR7,rR7;var EM=I(()=>{CJ();wf0();m4();g8();nR7=["rainbow_red","rainbow_orange","rainbow_yellow","rainbow_green","rainbow_blue","rainbow_indigo","rainbow_violet"],rR7=["rainbow_red_shimmer","rainbow_orange_shimmer","rainbow_yellow_shimmer","rainbow_green_shimmer","rainbow_blue_shimmer","rainbow_indigo_shimmer","rainbow_violet_shimmer"]});import{randomUUID as aR7}from"crypto";import{mkdir as oR7,readdir as sR7,readFile as tR7}from"fs/promises";import{join as oM6}from"path";async function sM6(J){try{let Z=(await Y1().stat(J)).size;if(Z===0)return{success:!1,error:{reason:"empty",message:`PDF file is empty: ${J}`}};if(Z>F60)return{success:!1,error:{reason:"too_large",message:`PDF file exceeds maximum allowed size of ${wJ(F60)}.`}};let Y=await tR7(J);if(!Y.subarray(0,5).toString("ascii").startsWith("%PDF-"))return{success:!1,error:{reason:"corrupted",message:`File is not a valid PDF (missing %PDF- header): ${J}`}};let K=Y.toString("base64");return{success:!0,data:{type:"pdf",file:{filePath:J,base64:K,originalSize:Z}}}}catch(Q){return{success:!1,error:{reason:"unknown",message:Q1(Q)}}}}async function $d0(J){let{code:Q,stdout:X}=await Z8("pdfinfo",[J],{timeout:1e4,useCwd:!1});if(Q!==0)return null;let Z=/^Pages:\s+(\d+)/m.exec(X);if(!Z)return null;let Y=parseInt(Z[1],10);return isNaN(Y)?null:Y}async function eR7(){if(Dd0!==void 0)return Dd0;let{code:J,stderr:Q}=await Z8("pdftoppm",["-v"],{timeout:5000,useCwd:!1});return Dd0=J===0||Q.length>0,Dd0}async function rf1(J,Q){try{let Y=(await Y1().stat(J)).size;if(Y===0)return{success:!1,error:{reason:"empty",message:`PDF file is empty: ${J}`}};if(Y>WP1)return{success:!1,error:{reason:"too_large",message:`PDF file exceeds maximum allowed size for text extraction (${wJ(WP1)}).`}};if(!await eR7())return{success:!1,error:{reason:"unavailable",message:"pdftoppm is not installed. Install poppler-utils (e.g. `brew install poppler` or `apt-get install poppler-utils`) to enable PDF page rendering."}};let K=aR7(),G=oM6(Rx(),`pdf-${K}`);await oR7(G,{recursive:!0});let z=oM6(G,"page"),W=["-jpeg","-r","100"];if(Q?.firstPage)W.push("-f",String(Q.firstPage));if(Q?.lastPage&&Q.lastPage!==1/0)W.push("-l",String(Q.lastPage));W.push(J,z);let{code:H,stderr:B}=await Z8("pdftoppm",W,{timeout:120000,useCwd:!1});if(H!==0){if(/password/i.test(B))return{success:!1,error:{reason:"password_protected",message:"PDF is password-protected. Please provide an unprotected version."}};if(/damaged|corrupt|invalid/i.test(B))return{success:!1,error:{reason:"corrupted",message:"PDF file is corrupted or invalid."}};return{success:!1,error:{reason:"unknown",message:`pdftoppm failed: ${B}`}}}let F=(await sR7(G)).filter((L)=>L.endsWith(".jpg")).sort();if(F.length===0)return{success:!1,error:{reason:"corrupted",message:"pdftoppm produced no output pages. The PDF may be invalid."}};let O=F.length;return{success:!0,data:{type:"parts",file:{filePath:J,originalSize:Y,outputDir:G,count:O}}}}catch(X){return{success:!1,error:{reason:"unknown",message:Q1(X)}}}}var Dd0;var af1=I(()=>{T1();T9();A6();H6();CB()});import{randomUUID as JM7}from"crypto";import{join as QM7}from"path";import{homedir as XM7}from"os";function ZM7(){return{error:(J,...Q)=>console.error("[Glock SDK ERROR]",J,...Q),warn:(J,...Q)=>console.error("[Glock SDK WARN]",J,...Q),info:(J,...Q)=>console.error("[Glock SDK INFO]",J,...Q),debug:(J,...Q)=>console.error("[Glock SDK DEBUG]",J,...Q)}}async function tk({apiKey:J,maxRetries:Q,model:X,fetchOverride:Z,source:Y}){let q=process.env.GLOCK_GATEWAY_URL??"https://api.getglock.dev",K=process.env.GLOCK_CONFIG_DIR??QM7(XM7(),".glock"),G=I$(K);if(!G)throw Error("Not authenticated. Run `glock login` to authenticate via device flow.");let z={"x-app":"cli","User-Agent":ck(),"X-Glock-Session-Id":A1(),...YM7()};b(`[API:request] Creating gateway client, url=${q}, source=${Y??"unknown"}`);let W=qM7(Z,Y);return new PX8({apiKey:G,baseURL:q,defaultHeaders:z,maxRetries:Q,timeout:parseInt(process.env.API_TIMEOUT_MS||String(600000),10),dangerouslyAllowBrowser:!0,fetchOptions:Sc({forGlockAPI:!0}),...W&&{fetch:W},...jD0()&&{logger:ZM7()}})}function YM7(){let J={},Q=process.env.GLOCK_CUSTOM_HEADERS;if(!Q)return J;let X=Q.split(/\n|\r\n/);for(let Z of X){if(!Z.trim())continue;let Y=Z.indexOf(":");if(Y===-1)continue;let q=Z.slice(0,Y).trim(),K=Z.slice(Y+1).trim();if(q)J[q]=K}return J}function qM7(J,Q){let X=J??globalThis.fetch,Z=L6()==="firstParty"&&eU();return(Y,q)=>{let K=new Headers(q?.headers);if(Z&&!K.has(L90))K.set(L90,JM7());try{let G=Y instanceof Request?Y.url:String(Y),z=K.get(L90);b(`[API REQUEST] ${new URL(G).pathname}${z?` ${L90}=${z}`:""} source=${Q??"unknown"}`)}catch{}return X(Y,{...q,headers:K})}}var L90="x-client-request-id";var jd0=I(()=>{xV();lk();m4();PO();N1();Z1();lf()});import{createHash as KM7}from"crypto";function zM7(J){let Q=J.find((Z)=>Z.type==="user");if(!Q)return"";let X=Q.message.content;if(typeof X==="string")return X;if(Array.isArray(X)){let Z=X.find((Y)=>Y.type==="text");if(Z&&Z.type==="text")return Z.text}return""}function of1(J,Q){let Z=[4,7,20].map((K)=>J[K]||"0").join(""),Y=`${GM7}${Z}${Q}`;return KM7("sha256").update(Y).digest("hex").slice(0,3)}function tM6(J){let Q=zM7(J);return of1(Q,"0.1.16")}var GM7="59cf53e54c78";var sf1=()=>{};function WM7(J){let Q=J.find((Y)=>Y.role==="user");if(!Q)return"";let X=Q.content;if(typeof X==="string")return X;let Z=X.find((Y)=>Y.type==="text");return Z?.type==="text"?Z.text:""}async function YT(J){let{model:Q,system:X,messages:Z,tools:Y,tool_choice:q,output_format:K,max_tokens:G=1024,maxRetries:z=2,signal:W,skipSystemPromptPrefix:H,temperature:B,thinking:U,stop_sequences:F}=J,_=await tk({maxRetries:z,model:Q,source:"side_query"}),O=[...k$(Q)];if(K&&pc(Q)&&!O.includes(vS))O.push(vS);let L=WM7(Z),N=of1(L,"0.1.16"),A=yk0(N),R=[A?{type:"text",text:A}:null,...H?[]:[{type:"text",text:Ik0({isNonInteractive:!1,hasAppendSystemPrompt:!1})}],...Array.isArray(X)?X:X?[{type:"text",text:X}]:[]].filter((k)=>k!==null),D;if(U===!1)D={type:"disabled"};else if(U!==void 0)D={type:"enabled",budget_tokens:Math.min(U,G-1)};let $=SW0(Q),y=Date.now(),v=await _.beta.messages.create({model:$,max_tokens:G,system:R,messages:Z,...Y&&{tools:Y},...q&&{tool_choice:q},...K&&{output_config:{format:K}},...B!==void 0&&{temperature:B},...F&&{stop_sequences:F},...D&&{thinking:D},...O.length>0&&{betas:O},metadata:N90()},{signal:W}),E=v._request_id??void 0,C=Date.now(),S=mm();return l("jarvis_api_error",{requestId:E,querySource:J.querySource,model:$,inputTokens:v.usage.input_tokens,outputTokens:v.usage.output_tokens,cachedInputTokens:v.usage.cache_read_input_tokens??0,uncachedInputTokens:v.usage.cache_creation_input_tokens??0,durationMsIncludingRetries:C-y,timeSinceLastApiCallMs:S!==null?C-S:void 0}),k50(C),v}var V90=I(()=>{N1();E00();bk0();D1();wq();jd0();Q2();sf1();CJ()});function JD6(J){if(typeof J!=="string")return;return eM6.find((Q)=>Q===J)}var eM6,tf1,ef1,HM7="- Memory records can become stale over time. Use memory as context for what was true at a given point in time. Before answering the user or building assumptions based solely on information in memory records, verify that the memory is still correct and up-to-date by reading the current state of the files or resources. If a recalled memory conflicts with current information, trust what you observe now \u2014 and update or remove the stale memory rather than acting on it.",QD6,XD6,Id0;var yd0=I(()=>{eM6=["user","feedback","project","reference"];tf1=["## Types of memory","","There are several discrete types of memory that you can store in your memory system:","","<types>","<type>"," <name>user</name>"," <description>Contain information about the user's role, goals, responsibilities, and knowledge. Great user memories help you tailor your future behavior to the user's preferences and perspective. Your goal in reading and writing these memories is to build up an understanding of who the user is and how you can be most helpful to them specifically. For example, you should collaborate with a senior software engineer differently than a student who is coding for the very first time. Keep in mind, that the aim here is to be helpful to the user. Avoid writing memories about the user that could be viewed as a negative judgement or that are not relevant to the work you're trying to accomplish together.</description>"," <when_to_save>When you learn any details about the user's role, preferences, responsibilities, or knowledge</when_to_save>"," <how_to_use>When your work should be informed by the user's profile or perspective. For example, if the user is asking you to explain a part of the code, you should answer that question in a way that is tailored to the specific details that they will find most valuable or that helps them build their mental model in relation to domain knowledge they already have.</how_to_use>"," <examples>"," user: I'm a data scientist investigating what logging we have in place"," assistant: [saves user memory: user is a data scientist, currently focused on observability/logging]",""," user: I've been writing Go for ten years but this is my first time touching the React side of this repo"," assistant: [saves user memory: deep Go expertise, new to React and this project's frontend \u2014 frame frontend explanations in terms of backend analogues]"," </examples>","</type>","<type>"," <name>feedback</name>"," <description>Guidance the user has given you about how to approach work \u2014 both what to avoid and what to keep doing. These are a very important type of memory to read and write as they allow you to remain coherent and responsive to the way you should approach work in the project. Record from failure AND success: if you only save corrections, you will avoid past mistakes but drift away from approaches the user has already validated, and may grow overly cautious.</description>",` <when_to_save>Any time the user corrects your approach ("no not that", "don't", "stop doing X") OR confirms a non-obvious approach worked ("yes exactly", "perfect, keep doing that", accepting an unusual choice without pushback). Corrections are easy to notice; confirmations are quieter \u2014 watch for them. In both cases, save what is applicable to future conversations, especially if surprising or not obvious from the code. Include *why* so you can judge edge cases later.</when_to_save>`," <how_to_use>Let these memories guide your behavior so that the user does not need to offer the same guidance twice.</how_to_use>"," <body_structure>Lead with the rule itself, then a **Why:** line (the reason the user gave \u2014 often a past incident or strong preference) and a **How to apply:** line (when/where this guidance kicks in). Knowing *why* lets you judge edge cases instead of blindly following the rule.</body_structure>"," <examples>"," user: don't mock the database in these tests \u2014 we got burned last quarter when mocked tests passed but the prod migration failed"," assistant: [saves feedback memory: integration tests must hit a real database, not mocks. Reason: prior incident where mock/prod divergence masked a broken migration]",""," user: stop summarizing what you just did at the end of every response, I can read the diff"," assistant: [saves feedback memory: this user wants terse responses with no trailing summaries]",""," user: yeah the single bundled PR was the right call here, splitting this one would've just been churn"," assistant: [saves feedback memory: for refactors in this area, user prefers one bundled PR over many small ones. Confirmed after I chose this approach \u2014 a validated judgment call, not a correction]"," </examples>","</type>","<type>"," <name>project</name>"," <description>Information that you learn about ongoing work, goals, initiatives, bugs, or incidents within the project that is not otherwise derivable from the code or git history. Project memories help you understand the broader context and motivation behind the work the user is doing within this working directory.</description>",' <when_to_save>When you learn who is doing what, why, or by when. These states change relatively quickly so try to keep your understanding of this up to date. Always convert relative dates in user messages to absolute dates when saving (e.g., "Thursday" \u2192 "2026-03-05"), so the memory remains interpretable after time passes.</when_to_save>'," <how_to_use>Use these memories to more fully understand the details and nuance behind the user's request and make better informed suggestions.</how_to_use>"," <body_structure>Lead with the fact or decision, then a **Why:** line (the motivation \u2014 often a constraint, deadline, or stakeholder ask) and a **How to apply:** line (how this should shape your suggestions). Project memories decay fast, so the why helps future-you judge whether the memory is still load-bearing.</body_structure>"," <examples>"," user: we're freezing all non-critical merges after Thursday \u2014 mobile team is cutting a release branch"," assistant: [saves project memory: merge freeze begins 2026-03-05 for mobile release cut. Flag any non-critical PR work scheduled after that date]",""," user: the reason we're ripping out the old auth middleware is that legal flagged it for storing session tokens in a way that doesn't meet the new compliance requirements"," assistant: [saves project memory: auth middleware rewrite is driven by legal/compliance requirements around session token storage, not tech-debt cleanup \u2014 scope decisions should favor compliance over ergonomics]"," </examples>","</type>","<type>"," <name>reference</name>"," <description>Stores pointers to where information can be found in external systems. These memories allow you to remember where to look to find up-to-date information outside of the project directory.</description>"," <when_to_save>When you learn about resources in external systems and their purpose. For example, that bugs are tracked in a specific project in Linear or that feedback can be found in a specific Slack channel.</when_to_save>"," <how_to_use>When the user references an external system or information that may be in an external system.</how_to_use>"," <examples>",` user: check the Linear project "INGEST" if you want context on these tickets, that's where we track all pipeline bugs`,' assistant: [saves reference memory: pipeline bugs are tracked in Linear project "INGEST"]',""," user: the Grafana board at grafana.internal/d/api-latency is what oncall watches \u2014 if you're touching request handling, that's the thing that'll page someone"," assistant: [saves reference memory: grafana.internal/d/api-latency is the oncall latency dashboard \u2014 check it when editing request-path code]"," </examples>","</type>","</types>",""],ef1=["## What NOT to save in memory","","- Code patterns, conventions, architecture, file paths, or project structure \u2014 these can be derived by reading the current project state.","- Git history, recent changes, or who-changed-what \u2014 `git log` / `git blame` are authoritative.","- Debugging solutions or fix recipes \u2014 the fix is in the code; the commit message has the context.","- Anything already documented in GLOCK.md files.","- Ephemeral task details: in-progress work, temporary state, current conversation context.","","These exclusions apply even when the user explicitly asks you to save. If they ask you to save a PR list or activity summary, ask what was *surprising* or *non-obvious* about it \u2014 that is the part worth keeping."],QD6=["## When to access memories","- When memories seem relevant, or the user references prior-conversation work.","- You MUST access memory when the user explicitly asks you to check, recall, or remember.","- If the user says to *ignore* or *not use* memory: proceed as if MEMORY.md were empty. Do not apply remembered facts, cite, compare against, or mention memory content.",HM7],XD6=["## Before recommending from memory","","A memory that names a specific function, file, or flag is a claim that it existed *when the memory was written*. It may have been renamed, removed, or never merged. Before recommending it:","","- If the memory names a file path: check the file exists.","- If the memory names a function or flag: grep for it.","- If the user is about to act on your recommendation (not just asking about history), verify first.","",'"The memory says X exists" is not the same as "X exists now."',"","A memory that summarizes repo state (activity logs, architecture snapshots) is frozen in time. If the user asks about *recent* or *current* state, prefer `git log` or reading the code over recalling the snapshot."],Id0=["```markdown","---","name: {{memory name}}","description: {{one-line description \u2014 used to decide relevance in future conversations, so be specific}}",`type: {{${eM6.join(", ")}}}`,"---","","{{memory content \u2014 for feedback/project types, structure as: rule/fact, then **Why:** and **How to apply:** lines}}","```"]});import{readdir as BM7}from"fs/promises";import{basename as UM7,join as FM7}from"path";async function JS1(J,Q){try{let Z=(await BM7(J,{recursive:!0})).filter((q)=>q.endsWith(".md")&&UM7(q)!=="MEMORY.md");return(await Promise.allSettled(Z.map(async(q)=>{let K=FM7(J,q),{content:G,mtimeMs:z}=await Mk(K,0,OM7,void 0,Q),{frontmatter:W}=FG(G,K);return{filename:q,filePath:K,mtimeMs:z,description:W.description||null,type:JD6(W.type)}}))).filter((q)=>q.status==="fulfilled").map((q)=>q.value).sort((q,K)=>K.mtimeMs-q.mtimeMs).slice(0,_M7)}catch{return[]}}function QS1(J){return J.map((Q)=>{let X=Q.type?`[${Q.type}] `:"",Z=new Date(Q.mtimeMs).toISOString();return Q.description?`- ${X}${Q.filename} (${Z}): ${Q.description}`:`- ${X}${Q.filename} (${Z})`}).join(`
|
|
1774
|
+
${B.block}`)}let W=[];for(let[B,U]of z)if(!Z.has(B))W.push({name:B,block:U});let H=[];for(let B of Z)if(!G.has(B))H.push(B);if(W.length===0&&H.length===0)return null;return l("jarvis_api_error",{addedCount:W.length,removedCount:H.length,priorAnnouncedCount:Z.size,clientSideCount:X.length,messagesLength:Q.length,attachmentCount:Y,midCount:q}),W.sort((B,U)=>B.name.localeCompare(U.name)),{addedNames:W.map((B)=>B.name),addedBlocks:W.map((B)=>B.block),removedNames:H.sort()}}var nf1=I(()=>{D1();t1()});import{randomUUID as dR7}from"crypto";function cM6({serverName:J,files:Q}){let X=dR7();b(`LSP Diagnostics: Registering ${Q.length} diagnostic file(s) from ${J} (ID: ${X})`),XT.set(X,{serverName:J,files:Q,timestamp:Date.now(),attachmentSent:!1})}function pM6(J){switch(J){case"Error":return 1;case"Warning":return 2;case"Info":return 3;case"Hint":return 4;default:return 4}}function dM6(J){return l0({message:J.message,severity:J.severity,range:J.range,source:J.source||null,code:J.code||null})}function iR7(J){let Q=new Map,X=[];for(let Z of J){if(!Q.has(Z.uri))Q.set(Z.uri,new Set),X.push({uri:Z.uri,diagnostics:[]});let Y=Q.get(Z.uri),q=X.find((G)=>G.uri===Z.uri),K=ok.get(Z.uri)||new Set;for(let G of Z.diagnostics)try{let z=dM6(G);if(Y.has(z)||K.has(z))continue;Y.add(z),q.diagnostics.push(G)}catch(z){let W=R8(z),H=G.message?.substring(0,100)||"<no message>";H0(Error(`Failed to deduplicate diagnostic in ${Z.uri}: ${W.message}. Diagnostic message: ${H}`)),q.diagnostics.push(G)}}return X.filter((Z)=>Z.diagnostics.length>0)}function lM6(){b(`LSP Diagnostics: Checking registry - ${XT.size} pending`);let J=[],Q=new Set,X=[];for(let W of XT.values())if(!W.attachmentSent)J.push(...W.files),Q.add(W.serverName),X.push(W);if(J.length===0)return[];let Z;try{Z=iR7(J)}catch(W){let H=R8(W);H0(Error(`Failed to deduplicate LSP diagnostics: ${H.message}`)),Z=J}for(let W of X)W.attachmentSent=!0;for(let[W,H]of XT)if(H.attachmentSent)XT.delete(W);let Y=J.reduce((W,H)=>W+H.diagnostics.length,0),q=Z.reduce((W,H)=>W+H.diagnostics.length,0);if(Y>q)b(`LSP Diagnostics: Deduplication removed ${Y-q} duplicate diagnostic(s)`);let K=0,G=0;for(let W of Z){if(W.diagnostics.sort((B,U)=>pM6(B.severity)-pM6(U.severity)),W.diagnostics.length>wd0)G+=W.diagnostics.length-wd0,W.diagnostics=W.diagnostics.slice(0,wd0);let H=mM6-K;if(W.diagnostics.length>H)G+=W.diagnostics.length-H,W.diagnostics=W.diagnostics.slice(0,H);K+=W.diagnostics.length}if(Z=Z.filter((W)=>W.diagnostics.length>0),G>0)b(`LSP Diagnostics: Volume limiting removed ${G} diagnostic(s) (max ${wd0}/file, ${mM6} total)`);for(let W of Z){if(!ok.has(W.uri))ok.set(W.uri,new Set);let H=ok.get(W.uri);for(let B of W.diagnostics)try{H.add(dM6(B))}catch(U){let F=R8(U),_=B.message?.substring(0,100)||"<no message>";H0(Error(`Failed to track delivered diagnostic in ${W.uri}: ${F.message}. Diagnostic message: ${_}`))}}let z=Z.reduce((W,H)=>W+H.diagnostics.length,0);if(z===0)return b("LSP Diagnostics: No new diagnostics to deliver (all filtered by deduplication)"),[];return b(`LSP Diagnostics: Delivering ${Z.length} file(s) with ${z} diagnostic(s) from ${Q.size} server(s)`),[{serverName:Array.from(Q).join(", "),files:Z}]}function iM6(){b(`LSP Diagnostics: Clearing ${XT.size} pending diagnostic(s)`),XT.clear()}function nM6(){b(`LSP Diagnostics: Resetting all state (${XT.size} pending, ${ok.size} files tracked)`),XT.clear(),ok.clear()}function Ad0(J){if(ok.has(J))b(`LSP Diagnostics: Clearing delivered diagnostics for ${J}`),ok.delete(J)}var wd0=10,mM6=30,lR7=500,XT,ok;var _90=I(()=>{Jt();Z1();T1();M1();i1();XT=new Map,ok=new cV({max:lR7})});function O90(J){return J.type==="user"&&!J.isMeta&&J.toolUseResult===void 0}function wi(){return!1}function rM6(J){return/\bultrathink\b/i.test(J)}function Rd0(J){let Q=[],X=J.matchAll(/\bultrathink\b/gi);for(let Z of X)if(Z.index!==void 0)Q.push({word:Z[0],start:Z.index,end:Z.index+Z[0].length});return Q}function ZT(J,Q=!1){let X=Q?rR7:nR7;return X[J%X.length]}function aM6(J){let Q=SS(J,"thinking");if(Q!==void 0)return Q;if(process.env.USER_TYPE==="ant"){if(resolveAntModel(J.toLowerCase()))return!0}let X=ZY(J),Z=L6();if(Z==="foundry"||Z==="firstParty")return!X.includes("claude-3-");return X.includes("sonnet-4")||X.includes("opus-4")}function Md0(J){let Q=SS(J,"adaptive_thinking");if(Q!==void 0)return Q;let X=ZY(J);if(X.includes("opus-4-6")||X.includes("sonnet-4-6"))return!0;if(X.includes("opus")||X.includes("sonnet")||X.includes("haiku"))return!1;let Z=L6();return Z==="firstParty"||Z==="foundry"}function sk(){if(process.env.MAX_THINKING_TOKENS)return parseInt(process.env.MAX_THINKING_TOKENS,10)>0;let{settings:J}=op();if(J.alwaysThinkingEnabled===!1)return!1;return!0}var nR7,rR7;var EM=I(()=>{CJ();wf0();m4();g8();nR7=["rainbow_red","rainbow_orange","rainbow_yellow","rainbow_green","rainbow_blue","rainbow_indigo","rainbow_violet"],rR7=["rainbow_red_shimmer","rainbow_orange_shimmer","rainbow_yellow_shimmer","rainbow_green_shimmer","rainbow_blue_shimmer","rainbow_indigo_shimmer","rainbow_violet_shimmer"]});import{randomUUID as aR7}from"crypto";import{mkdir as oR7,readdir as sR7,readFile as tR7}from"fs/promises";import{join as oM6}from"path";async function sM6(J){try{let Z=(await Y1().stat(J)).size;if(Z===0)return{success:!1,error:{reason:"empty",message:`PDF file is empty: ${J}`}};if(Z>F60)return{success:!1,error:{reason:"too_large",message:`PDF file exceeds maximum allowed size of ${wJ(F60)}.`}};let Y=await tR7(J);if(!Y.subarray(0,5).toString("ascii").startsWith("%PDF-"))return{success:!1,error:{reason:"corrupted",message:`File is not a valid PDF (missing %PDF- header): ${J}`}};let K=Y.toString("base64");return{success:!0,data:{type:"pdf",file:{filePath:J,base64:K,originalSize:Z}}}}catch(Q){return{success:!1,error:{reason:"unknown",message:Q1(Q)}}}}async function $d0(J){let{code:Q,stdout:X}=await Z8("pdfinfo",[J],{timeout:1e4,useCwd:!1});if(Q!==0)return null;let Z=/^Pages:\s+(\d+)/m.exec(X);if(!Z)return null;let Y=parseInt(Z[1],10);return isNaN(Y)?null:Y}async function eR7(){if(Dd0!==void 0)return Dd0;let{code:J,stderr:Q}=await Z8("pdftoppm",["-v"],{timeout:5000,useCwd:!1});return Dd0=J===0||Q.length>0,Dd0}async function rf1(J,Q){try{let Y=(await Y1().stat(J)).size;if(Y===0)return{success:!1,error:{reason:"empty",message:`PDF file is empty: ${J}`}};if(Y>WP1)return{success:!1,error:{reason:"too_large",message:`PDF file exceeds maximum allowed size for text extraction (${wJ(WP1)}).`}};if(!await eR7())return{success:!1,error:{reason:"unavailable",message:"pdftoppm is not installed. Install poppler-utils (e.g. `brew install poppler` or `apt-get install poppler-utils`) to enable PDF page rendering."}};let K=aR7(),G=oM6(Rx(),`pdf-${K}`);await oR7(G,{recursive:!0});let z=oM6(G,"page"),W=["-jpeg","-r","100"];if(Q?.firstPage)W.push("-f",String(Q.firstPage));if(Q?.lastPage&&Q.lastPage!==1/0)W.push("-l",String(Q.lastPage));W.push(J,z);let{code:H,stderr:B}=await Z8("pdftoppm",W,{timeout:120000,useCwd:!1});if(H!==0){if(/password/i.test(B))return{success:!1,error:{reason:"password_protected",message:"PDF is password-protected. Please provide an unprotected version."}};if(/damaged|corrupt|invalid/i.test(B))return{success:!1,error:{reason:"corrupted",message:"PDF file is corrupted or invalid."}};return{success:!1,error:{reason:"unknown",message:`pdftoppm failed: ${B}`}}}let F=(await sR7(G)).filter((L)=>L.endsWith(".jpg")).sort();if(F.length===0)return{success:!1,error:{reason:"corrupted",message:"pdftoppm produced no output pages. The PDF may be invalid."}};let O=F.length;return{success:!0,data:{type:"parts",file:{filePath:J,originalSize:Y,outputDir:G,count:O}}}}catch(X){return{success:!1,error:{reason:"unknown",message:Q1(X)}}}}var Dd0;var af1=I(()=>{T1();T9();A6();H6();CB()});import{randomUUID as JM7}from"crypto";import{join as QM7}from"path";import{homedir as XM7}from"os";function ZM7(){return{error:(J,...Q)=>console.error("[Glock SDK ERROR]",J,...Q),warn:(J,...Q)=>console.error("[Glock SDK WARN]",J,...Q),info:(J,...Q)=>console.error("[Glock SDK INFO]",J,...Q),debug:(J,...Q)=>console.error("[Glock SDK DEBUG]",J,...Q)}}async function tk({apiKey:J,maxRetries:Q,model:X,fetchOverride:Z,source:Y}){let q=process.env.GLOCK_GATEWAY_URL??"https://api.getglock.dev",K=process.env.GLOCK_CONFIG_DIR??QM7(XM7(),".glock"),G=I$(K);if(!G)throw Error("Not authenticated. Run `glock login` to authenticate via device flow.");let z={"x-app":"cli","User-Agent":ck(),"X-Glock-Session-Id":A1(),...YM7()};b(`[API:request] Creating gateway client, url=${q}, source=${Y??"unknown"}`);let W=qM7(Z,Y);return new PX8({apiKey:G,baseURL:q,defaultHeaders:z,maxRetries:Q,timeout:parseInt(process.env.API_TIMEOUT_MS||String(600000),10),dangerouslyAllowBrowser:!0,fetchOptions:Sc({forGlockAPI:!0}),...W&&{fetch:W},...jD0()&&{logger:ZM7()}})}function YM7(){let J={},Q=process.env.GLOCK_CUSTOM_HEADERS;if(!Q)return J;let X=Q.split(/\n|\r\n/);for(let Z of X){if(!Z.trim())continue;let Y=Z.indexOf(":");if(Y===-1)continue;let q=Z.slice(0,Y).trim(),K=Z.slice(Y+1).trim();if(q)J[q]=K}return J}function qM7(J,Q){let X=J??globalThis.fetch,Z=L6()==="firstParty"&&eU();return(Y,q)=>{let K=new Headers(q?.headers);if(Z&&!K.has(L90))K.set(L90,JM7());try{let G=Y instanceof Request?Y.url:String(Y),z=K.get(L90);b(`[API REQUEST] ${new URL(G).pathname}${z?` ${L90}=${z}`:""} source=${Q??"unknown"}`)}catch{}return X(Y,{...q,headers:K})}}var L90="x-client-request-id";var jd0=I(()=>{xV();lk();m4();PO();N1();Z1();lf()});import{createHash as KM7}from"crypto";function zM7(J){let Q=J.find((Z)=>Z.type==="user");if(!Q)return"";let X=Q.message.content;if(typeof X==="string")return X;if(Array.isArray(X)){let Z=X.find((Y)=>Y.type==="text");if(Z&&Z.type==="text")return Z.text}return""}function of1(J,Q){let Z=[4,7,20].map((K)=>J[K]||"0").join(""),Y=`${GM7}${Z}${Q}`;return KM7("sha256").update(Y).digest("hex").slice(0,3)}function tM6(J){let Q=zM7(J);return of1(Q,"0.1.17")}var GM7="59cf53e54c78";var sf1=()=>{};function WM7(J){let Q=J.find((Y)=>Y.role==="user");if(!Q)return"";let X=Q.content;if(typeof X==="string")return X;let Z=X.find((Y)=>Y.type==="text");return Z?.type==="text"?Z.text:""}async function YT(J){let{model:Q,system:X,messages:Z,tools:Y,tool_choice:q,output_format:K,max_tokens:G=1024,maxRetries:z=2,signal:W,skipSystemPromptPrefix:H,temperature:B,thinking:U,stop_sequences:F}=J,_=await tk({maxRetries:z,model:Q,source:"side_query"}),O=[...k$(Q)];if(K&&pc(Q)&&!O.includes(vS))O.push(vS);let L=WM7(Z),N=of1(L,"0.1.17"),A=yk0(N),R=[A?{type:"text",text:A}:null,...H?[]:[{type:"text",text:Ik0({isNonInteractive:!1,hasAppendSystemPrompt:!1})}],...Array.isArray(X)?X:X?[{type:"text",text:X}]:[]].filter((k)=>k!==null),D;if(U===!1)D={type:"disabled"};else if(U!==void 0)D={type:"enabled",budget_tokens:Math.min(U,G-1)};let $=SW0(Q),y=Date.now(),v=await _.beta.messages.create({model:$,max_tokens:G,system:R,messages:Z,...Y&&{tools:Y},...q&&{tool_choice:q},...K&&{output_config:{format:K}},...B!==void 0&&{temperature:B},...F&&{stop_sequences:F},...D&&{thinking:D},...O.length>0&&{betas:O},metadata:N90()},{signal:W}),E=v._request_id??void 0,C=Date.now(),S=mm();return l("jarvis_api_error",{requestId:E,querySource:J.querySource,model:$,inputTokens:v.usage.input_tokens,outputTokens:v.usage.output_tokens,cachedInputTokens:v.usage.cache_read_input_tokens??0,uncachedInputTokens:v.usage.cache_creation_input_tokens??0,durationMsIncludingRetries:C-y,timeSinceLastApiCallMs:S!==null?C-S:void 0}),k50(C),v}var V90=I(()=>{N1();E00();bk0();D1();wq();jd0();Q2();sf1();CJ()});function JD6(J){if(typeof J!=="string")return;return eM6.find((Q)=>Q===J)}var eM6,tf1,ef1,HM7="- Memory records can become stale over time. Use memory as context for what was true at a given point in time. Before answering the user or building assumptions based solely on information in memory records, verify that the memory is still correct and up-to-date by reading the current state of the files or resources. If a recalled memory conflicts with current information, trust what you observe now \u2014 and update or remove the stale memory rather than acting on it.",QD6,XD6,Id0;var yd0=I(()=>{eM6=["user","feedback","project","reference"];tf1=["## Types of memory","","There are several discrete types of memory that you can store in your memory system:","","<types>","<type>"," <name>user</name>"," <description>Contain information about the user's role, goals, responsibilities, and knowledge. Great user memories help you tailor your future behavior to the user's preferences and perspective. Your goal in reading and writing these memories is to build up an understanding of who the user is and how you can be most helpful to them specifically. For example, you should collaborate with a senior software engineer differently than a student who is coding for the very first time. Keep in mind, that the aim here is to be helpful to the user. Avoid writing memories about the user that could be viewed as a negative judgement or that are not relevant to the work you're trying to accomplish together.</description>"," <when_to_save>When you learn any details about the user's role, preferences, responsibilities, or knowledge</when_to_save>"," <how_to_use>When your work should be informed by the user's profile or perspective. For example, if the user is asking you to explain a part of the code, you should answer that question in a way that is tailored to the specific details that they will find most valuable or that helps them build their mental model in relation to domain knowledge they already have.</how_to_use>"," <examples>"," user: I'm a data scientist investigating what logging we have in place"," assistant: [saves user memory: user is a data scientist, currently focused on observability/logging]",""," user: I've been writing Go for ten years but this is my first time touching the React side of this repo"," assistant: [saves user memory: deep Go expertise, new to React and this project's frontend \u2014 frame frontend explanations in terms of backend analogues]"," </examples>","</type>","<type>"," <name>feedback</name>"," <description>Guidance the user has given you about how to approach work \u2014 both what to avoid and what to keep doing. These are a very important type of memory to read and write as they allow you to remain coherent and responsive to the way you should approach work in the project. Record from failure AND success: if you only save corrections, you will avoid past mistakes but drift away from approaches the user has already validated, and may grow overly cautious.</description>",` <when_to_save>Any time the user corrects your approach ("no not that", "don't", "stop doing X") OR confirms a non-obvious approach worked ("yes exactly", "perfect, keep doing that", accepting an unusual choice without pushback). Corrections are easy to notice; confirmations are quieter \u2014 watch for them. In both cases, save what is applicable to future conversations, especially if surprising or not obvious from the code. Include *why* so you can judge edge cases later.</when_to_save>`," <how_to_use>Let these memories guide your behavior so that the user does not need to offer the same guidance twice.</how_to_use>"," <body_structure>Lead with the rule itself, then a **Why:** line (the reason the user gave \u2014 often a past incident or strong preference) and a **How to apply:** line (when/where this guidance kicks in). Knowing *why* lets you judge edge cases instead of blindly following the rule.</body_structure>"," <examples>"," user: don't mock the database in these tests \u2014 we got burned last quarter when mocked tests passed but the prod migration failed"," assistant: [saves feedback memory: integration tests must hit a real database, not mocks. Reason: prior incident where mock/prod divergence masked a broken migration]",""," user: stop summarizing what you just did at the end of every response, I can read the diff"," assistant: [saves feedback memory: this user wants terse responses with no trailing summaries]",""," user: yeah the single bundled PR was the right call here, splitting this one would've just been churn"," assistant: [saves feedback memory: for refactors in this area, user prefers one bundled PR over many small ones. Confirmed after I chose this approach \u2014 a validated judgment call, not a correction]"," </examples>","</type>","<type>"," <name>project</name>"," <description>Information that you learn about ongoing work, goals, initiatives, bugs, or incidents within the project that is not otherwise derivable from the code or git history. Project memories help you understand the broader context and motivation behind the work the user is doing within this working directory.</description>",' <when_to_save>When you learn who is doing what, why, or by when. These states change relatively quickly so try to keep your understanding of this up to date. Always convert relative dates in user messages to absolute dates when saving (e.g., "Thursday" \u2192 "2026-03-05"), so the memory remains interpretable after time passes.</when_to_save>'," <how_to_use>Use these memories to more fully understand the details and nuance behind the user's request and make better informed suggestions.</how_to_use>"," <body_structure>Lead with the fact or decision, then a **Why:** line (the motivation \u2014 often a constraint, deadline, or stakeholder ask) and a **How to apply:** line (how this should shape your suggestions). Project memories decay fast, so the why helps future-you judge whether the memory is still load-bearing.</body_structure>"," <examples>"," user: we're freezing all non-critical merges after Thursday \u2014 mobile team is cutting a release branch"," assistant: [saves project memory: merge freeze begins 2026-03-05 for mobile release cut. Flag any non-critical PR work scheduled after that date]",""," user: the reason we're ripping out the old auth middleware is that legal flagged it for storing session tokens in a way that doesn't meet the new compliance requirements"," assistant: [saves project memory: auth middleware rewrite is driven by legal/compliance requirements around session token storage, not tech-debt cleanup \u2014 scope decisions should favor compliance over ergonomics]"," </examples>","</type>","<type>"," <name>reference</name>"," <description>Stores pointers to where information can be found in external systems. These memories allow you to remember where to look to find up-to-date information outside of the project directory.</description>"," <when_to_save>When you learn about resources in external systems and their purpose. For example, that bugs are tracked in a specific project in Linear or that feedback can be found in a specific Slack channel.</when_to_save>"," <how_to_use>When the user references an external system or information that may be in an external system.</how_to_use>"," <examples>",` user: check the Linear project "INGEST" if you want context on these tickets, that's where we track all pipeline bugs`,' assistant: [saves reference memory: pipeline bugs are tracked in Linear project "INGEST"]',""," user: the Grafana board at grafana.internal/d/api-latency is what oncall watches \u2014 if you're touching request handling, that's the thing that'll page someone"," assistant: [saves reference memory: grafana.internal/d/api-latency is the oncall latency dashboard \u2014 check it when editing request-path code]"," </examples>","</type>","</types>",""],ef1=["## What NOT to save in memory","","- Code patterns, conventions, architecture, file paths, or project structure \u2014 these can be derived by reading the current project state.","- Git history, recent changes, or who-changed-what \u2014 `git log` / `git blame` are authoritative.","- Debugging solutions or fix recipes \u2014 the fix is in the code; the commit message has the context.","- Anything already documented in GLOCK.md files.","- Ephemeral task details: in-progress work, temporary state, current conversation context.","","These exclusions apply even when the user explicitly asks you to save. If they ask you to save a PR list or activity summary, ask what was *surprising* or *non-obvious* about it \u2014 that is the part worth keeping."],QD6=["## When to access memories","- When memories seem relevant, or the user references prior-conversation work.","- You MUST access memory when the user explicitly asks you to check, recall, or remember.","- If the user says to *ignore* or *not use* memory: proceed as if MEMORY.md were empty. Do not apply remembered facts, cite, compare against, or mention memory content.",HM7],XD6=["## Before recommending from memory","","A memory that names a specific function, file, or flag is a claim that it existed *when the memory was written*. It may have been renamed, removed, or never merged. Before recommending it:","","- If the memory names a file path: check the file exists.","- If the memory names a function or flag: grep for it.","- If the user is about to act on your recommendation (not just asking about history), verify first.","",'"The memory says X exists" is not the same as "X exists now."',"","A memory that summarizes repo state (activity logs, architecture snapshots) is frozen in time. If the user asks about *recent* or *current* state, prefer `git log` or reading the code over recalling the snapshot."],Id0=["```markdown","---","name: {{memory name}}","description: {{one-line description \u2014 used to decide relevance in future conversations, so be specific}}",`type: {{${eM6.join(", ")}}}`,"---","","{{memory content \u2014 for feedback/project types, structure as: rule/fact, then **Why:** and **How to apply:** lines}}","```"]});import{readdir as BM7}from"fs/promises";import{basename as UM7,join as FM7}from"path";async function JS1(J,Q){try{let Z=(await BM7(J,{recursive:!0})).filter((q)=>q.endsWith(".md")&&UM7(q)!=="MEMORY.md");return(await Promise.allSettled(Z.map(async(q)=>{let K=FM7(J,q),{content:G,mtimeMs:z}=await Mk(K,0,OM7,void 0,Q),{frontmatter:W}=FG(G,K);return{filename:q,filePath:K,mtimeMs:z,description:W.description||null,type:JD6(W.type)}}))).filter((q)=>q.status==="fulfilled").map((q)=>q.value).sort((q,K)=>K.mtimeMs-q.mtimeMs).slice(0,_M7)}catch{return[]}}function QS1(J){return J.map((Q)=>{let X=Q.type?`[${Q.type}] `:"",Z=new Date(Q.mtimeMs).toISOString();return Q.description?`- ${X}${Q.filename} (${Z}): ${Q.description}`:`- ${X}${Q.filename} (${Z})`}).join(`
|
|
1775
1775
|
`)}var _M7=200,OM7=30;var XS1=I(()=>{eO();a60();yd0()});async function ZD6(J,Q,X,Z=[],Y=new Set){let q=(await JS1(Q,X)).filter((W)=>!Y.has(W.filePath));if(q.length===0)return[];let K=await VM7(J,q,X,Z),G=new Map(q.map((W)=>[W.filename,W]));return K.map((W)=>G.get(W)).filter((W)=>W!==void 0).map((W)=>({path:W.filePath,mtimeMs:W.mtimeMs}))}async function VM7(J,Q,X,Z){let Y=new Set(Q.map((G)=>G.filename)),q=QS1(Q),K=Z.length>0?`
|
|
1776
1776
|
|
|
1777
1777
|
Recently used tools: ${Z.join(", ")}`:"";try{let z=(await YT({model:l$(),system:LM7,skipSystemPromptPrefix:!0,messages:[{role:"user",content:`Query: ${J}
|
|
@@ -3489,7 +3489,7 @@ ${X}`:""}`}var Ci6=I(()=>{vd()});import{readdir as Zl7,stat as Yl7}from"fs/promi
|
|
|
3489
3489
|
|
|
3490
3490
|
Sessions since last consolidation (${W.length}):
|
|
3491
3491
|
${W.map(($)=>`- ${$}`).join(`
|
|
3492
|
-
`)}`,A=Ti6(O,L,N),R=await C2({promptMessages:[$1({content:A})],cacheSafeParams:JD(X),canUseTool:Pi6(O),querySource:"auto_dream",forkLabel:"auto_dream",skipTranscript:!0,overrides:{abortController:F},onMessage:Vl7(_,U)});ci6(_,U);let D=X.toolUseContext.getAppState().tasks?.[_];if(Z&&gi6(D)&&D.filesTouched.length>0)Z({...Am1(D.filesTouched),verb:"Improved"});b(`[autoDream] completed \u2014 cache: read=${R.totalUsage.cache_read_input_tokens} created=${R.totalUsage.cache_creation_input_tokens}`),l("jarvis_api_error",{cache_read:R.totalUsage.cache_read_input_tokens,cache_created:R.totalUsage.cache_creation_input_tokens,output:R.totalUsage.output_tokens,sessions_reviewed:W.length})}catch(O){if(F.signal.aborted){b("[autoDream] aborted by user");return}b(`[autoDream] fork failed: ${O.message}`),l("jarvis_api_error",{}),di6(_,U),await fa0(B)}}}function Vl7(J,Q){return(X)=>{if(X.type!=="assistant")return;let Z="",Y=0,q=[];for(let K of X.message.content)if(K.type==="text")Z+=K.text;else if(K.type==="tool_use"){if(Y++,K.name===fJ||K.name===t9){let G=K.input;if(typeof G.file_path==="string")q.push(G.file_path)}}pi6(J,{text:Z.trim(),toolUseCount:Y},q,Q)}}async function ri6(J,Q){await ii6?.(J,Q)}var Fl7=600000,li6,ii6=null;var Dm1=I(()=>{G_();M8();Z1();D1();t5();wm1();gJ();N1();Ei6();Ci6();Sa0();ka0();qq();li6={minHours:24,minSessions:5}});async function*ai6(J,Q,X,Z,Y,q,K,G){let z=Date.now(),W={messages:[...J,...Q],systemPrompt:X,userContext:Z,systemContext:Y,toolUseContext:q,querySource:K};if(K==="repl_main_thread"||K==="sdk")si6(JD(W));if(!y7()){if(!q.agentId)ri6(W,q.appendSystemMessage)}try{let H=[],U=q.getAppState().toolPermissionContext.mode,F=Im1(U,q.abortController.signal,void 0,G??!1,q.agentId,q,[...J,...Q],q.agentType),_="",O=0,L=!1,N="",A=!1,R=[],D=[];for await(let $ of F){if($.message){if(yield $.message,$.message.type==="progress"&&$.message.toolUseID){_=$.message.toolUseID,O++;let y=$.message.data;if(y.command)D.push({command:y.command,promptText:y.promptText})}if($.message.type==="attachment"){let y=$.message.attachment;if("hookEvent"in y&&(y.hookEvent==="Stop"||y.hookEvent==="SubagentStop")){if(y.type==="hook_non_blocking_error")R.push(y.stderr||`Exit code ${y.exitCode}`),A=!0;else if(y.type==="hook_error_during_execution")R.push(y.content),A=!0;else if(y.type==="hook_success"){if(y.stdout&&y.stdout.trim()||y.stderr&&y.stderr.trim())A=!0}if("durationMs"in y&&"command"in y){let v=D.find((E)=>E.command===y.command&&E.durationMs===void 0);if(v)v.durationMs=y.durationMs}}}}if($.blockingError){let y=$1({content:$m1($.blockingError),isMeta:!0});H.push(y),yield y,A=!0,R.push($.blockingError.blockingError)}if($.preventContinuation)L=!0,N=$.stopReason||"Stop hook prevented continuation",yield JJ({type:"hook_stopped_continuation",message:N,hookName:"Stop",toolUseID:_,hookEvent:"Stop"});if(q.abortController.signal.aborted)return l("jarvis_api_error",{queryChainId:q.queryTracking?.chainId,queryDepth:q.queryTracking?.depth}),yield fT({toolUse:!1}),{blockingErrors:[],preventContinuation:!0}}if(O>0){if(yield KL0(O,D,R,L,N,A,"suggestion",_),R.length>0){let $=PK("app:toggleTranscript","Global","ctrl+o");q.addNotification?.({key:"stop-hook-error",text:`Stop hook error occurred \xB7 ${$} to see`,priority:"immediate"})}}if(L)return{blockingErrors:[],preventContinuation:!0};if(H.length>0)return{blockingErrors:H,preventContinuation:!1};if(UZ()){let $=dQ()??"",y=v7()??"",v=[],E=!1,C,S="",k=pB(),u=(await a3(k)).filter((m)=>m.status==="in_progress"&&m.owner===$);for(let m of u){let p=UL0(m.id,m.subject,m.description,$,y,U,q.abortController.signal,void 0,q);for await(let c of p){if(c.message){if(c.message.type==="progress"&&c.message.toolUseID)S=c.message.toolUseID;yield c.message}if(c.blockingError){let r=$1({content:BL0(c.blockingError),isMeta:!0});v.push(r),yield r}if(c.preventContinuation)E=!0,C=c.stopReason||"TaskCompleted hook prevented continuation",yield JJ({type:"hook_stopped_continuation",message:C,hookName:"TaskCompleted",toolUseID:S,hookEvent:"TaskCompleted"});if(q.abortController.signal.aborted)return{blockingErrors:[],preventContinuation:!0}}}let x=ym1($,y,U,q.abortController.signal);for await(let m of x){if(m.message){if(m.message.type==="progress"&&m.message.toolUseID)S=m.message.toolUseID;yield m.message}if(m.blockingError){let p=$1({content:jm1(m.blockingError),isMeta:!0});v.push(p),yield p}if(m.preventContinuation)E=!0,C=m.stopReason||"TeammateIdle hook prevented continuation",yield JJ({type:"hook_stopped_continuation",message:C,hookName:"TeammateIdle",toolUseID:S,hookEvent:"TeammateIdle"});if(q.abortController.signal.aborted)return{blockingErrors:[],preventContinuation:!0}}if(E)return{blockingErrors:[],preventContinuation:!0};if(v.length>0)return{blockingErrors:v,preventContinuation:!1}}return{blockingErrors:[],preventContinuation:!1}}catch(H){let B=Date.now()-z;return l("jarvis_api_error",{duration:B,queryChainId:q.queryTracking?.chainId,queryDepth:q.queryTracking?.depth}),yield Yz(`Stop hook failed: ${Q1(H)}`,"warning"),{blockingErrors:[],preventContinuation:!1}}}var oi6=I(()=>{ij();t5();D1();Z3();Z1();T1();N4();M8();tq();FZ();Dm1();t1();G_()});function ti6(){return{sessionId:A1(),gates:{streamingToolExecution:GZ("jarvis_api_error"),emitToolUseSummaries:W1(process.env.GLOCK_EMIT_TOOL_USE_SUMMARIES),isAnt:process.env.USER_TYPE==="ant",fastModeEnabled:!0}}}var ei6=I(()=>{N1();t1()});import{randomUUID as wl7}from"crypto";function Jn6(){return{callModel:DQ0,microcompact:ZI,autocompact:Cl6,uuid:wl7}}var Qn6=I(()=>{wq();JT();Fw()});var Al7,nF4;var ha0=I(()=>{Al7=/\b(?:use|spend)\s+(\d+(?:\.\d+)?)\s*(k|m|b)\s*tokens?\b/i,nF4=new RegExp(Al7.source,"gi")});var Xn6=I(()=>{ha0()});function*Pm1(J,Q){for(let X of J){let Z=X.message.content.filter((Y)=>Y.type==="tool_use");for(let Y of Z)yield $1({content:[{type:"tool_result",content:Q,is_error:!0,tool_use_id:Y.id}],toolUseResult:Q,sourceToolAssistantUUID:X.uuid})}}function Zn6(J){return J?.type==="assistant"&&J.apiError==="max_output_tokens"}async function*eN(J){let Q=[],X=yield*Ml7(J,Q);for(let Z of Q)jI(Z,"completed");return X}async function*Ml7(J,Q){let L=[];try{let{systemPrompt:X,userContext:Z,systemContext:Y,canUseTool:q,fallbackModel:K,querySource:G,maxTurns:z,skipCacheWrite:W}=J;let H=J.deps??Jn6();let B={messages:J.messages,toolUseContext:J.toolUseContext,maxOutputTokensOverride:J.maxOutputTokensOverride,autoCompactTracking:void 0,stopHookActive:void 0,maxOutputTokensRecoveryCount:0,hasAttemptedReactiveCompact:!1,turnCount:1,pendingToolUseSummary:void 0,transition:void 0};let U=null;let F=void 0;let _=ti6();const O=RX(L,Sm6(B.messages,B.toolUseContext),0);while(!0){let{toolUseContext:D}=B,{messages:$,autoCompactTracking:y,maxOutputTokensRecoveryCount:v,hasAttemptedReactiveCompact:E,maxOutputTokensOverride:C,pendingToolUseSummary:S,stopHookActive:k,turnCount:h}=B,u=bm1?.startSkillDiscoveryPrefetch(null,$,D);if(yield{type:"stream_request_start"},F7("query_fn_entry"),!D.agentId)VG("query_started");let x=D.queryTracking?{chainId:D.queryTracking.chainId,depth:D.queryTracking.depth+1}:{chainId:H.uuid(),depth:0},m=x.chainId;D={...D,queryTracking:x};let p=[...LG($)],c=y,r=G.startsWith("agent:")||G.startsWith("repl_main_thread");p=await JY6(p,D.contentReplacementState,r?(S0)=>void ca0(S0,D.agentId).catch(H0):void 0,new Set(D.options.tools.filter((S0)=>!Number.isFinite(S0.maxResultSizeChars)).map((S0)=>S0.name)));let J0=0;F7("query_microcompact_start"),p=(await H.microcompact(p,D,G)).messages;let s=void 0;F7("query_microcompact_end");let X0=j9(Gn6(X,Y));F7("query_autocompact_start");let{compactionResult:Y0,consecutiveFailures:G0}=await H.autocompact(p,D,{systemPrompt:X,userContext:Z,systemContext:Y,toolUseContext:D,forkContextMessages:p},G,c,J0);if(F7("query_autocompact_end"),Y0){let{preCompactTokenCount:S0,postCompactTokenCount:g0,truePostCompactTokenCount:c0,compactionUsage:t0}=Y0;if(l("jarvis_api_error",{originalMessageCount:$.length,compactedMessageCount:Y0.summaryMessages.length+Y0.attachments.length+Y0.hookResults.length,preCompactTokenCount:S0,postCompactTokenCount:g0,truePostCompactTokenCount:c0,compactionInputTokens:t0?.input_tokens,compactionOutputTokens:t0?.output_tokens,compactionCacheReadTokens:t0?.cache_read_input_tokens??0,compactionCacheCreationTokens:t0?.cache_creation_input_tokens??0,compactionTotalTokens:t0?t0.input_tokens+(t0.cache_creation_input_tokens??0)+(t0.cache_read_input_tokens??0)+t0.output_tokens:0,queryChainId:m,queryDepth:x.depth}),J.taskBudget){let K0=JE1(p);F=Math.max(0,(F??J.taskBudget.total)-K0)}c={compacted:!0,turnId:H.uuid(),turnCounter:0,consecutiveFailures:0};let K1=CT(Y0);for(let K0 of K1)yield K0;p=K1}else if(G0!==void 0)c={...c??{compacted:!1,turnId:"",turnCounter:0},consecutiveFailures:G0};D={...D,messages:p};let j0=[],W0=[],y0=[],V0=!1;F7("query_setup_start");let t=_.gates.streamingToolExecution?new zL0(D.options.tools,q,D):null,q0=D.getAppState(),Q0=q0.toolPermissionContext.mode,a=i$({permissionMode:Q0,mainLoopModel:D.options.mainLoopModel,exceeds200kTokens:Q0==="plan"&&xg0(p)});F7("query_setup_end");let O0=_.gates.isAnt?vD6(D.agentId??_.sessionId):void 0,D0=!1,F0=vn?.isReactiveCompactEnabled()??!1;if(!Y0&&G!=="compact"&&G!=="session_memory"&&!(vn?.isReactiveCompactEnabled()&&Ow())&&!D0){let{isAtBlockingLimit:S0}=Pn(gF(p)-J0,D.options.mainLoopModel);if(S0)return yield r7({content:QM,error:"invalid_request"}),{reason:"blocking_limit"}}let I0=!0;F7("query_api_loop_start");try{while(I0){I0=!1;try{let S0=!1;F7("query_api_streaming_start");for await(let g0 of H.callModel({messages:pa0(p,Z),systemPrompt:X0,thinkingConfig:D.options.thinkingConfig,tools:D.options.tools,signal:D.abortController.signal,options:{async getToolPermissionContext(){return D.getAppState().toolPermissionContext},model:a,..._.gates.fastModeEnabled&&{fastMode:q0.fastMode},toolChoice:void 0,isNonInteractiveSession:D.options.isNonInteractiveSession,fallbackModel:K,onStreamingFallback:()=>{S0=!0},querySource:G,agents:D.options.agentDefinitions.activeAgents,allowedAgentTypes:D.options.agentDefinitions.allowedAgentTypes,hasAppendSystemPrompt:!!D.options.appendSystemPrompt,maxOutputTokensOverride:C,fetchOverride:O0,mcpTools:q0.mcp.tools,hasPendingMcpServers:q0.mcp.clients.some((c0)=>c0.type==="pending"),queryTracking:x,effortValue:q0.effortValue,skipCacheWrite:W,agentId:D.agentId,addNotification:D.addNotification,...J.taskBudget&&{taskBudget:{total:J.taskBudget.total,...F!==void 0&&{remaining:F}}}}})){if(S0){for(let K1 of j0)yield{type:"tombstone",message:K1};if(l("jarvis_api_error",{orphanedMessageCount:j0.length,queryChainId:m,queryDepth:x.depth}),j0.length=0,W0.length=0,y0.length=0,V0=!1,t)t.discard(),t=new zL0(D.options.tools,q,D)}let c0=g0;if(g0.type==="assistant"){let K1;for(let K0=0;K0<g0.message.content.length;K0++){let m0=g0.message.content[K0];if(m0.type==="tool_use"&&typeof m0.input==="object"&&m0.input!==null){let R0=h9(D.options.tools,m0.name);if(R0?.backfillObservableInput){let p0=m0.input,o0={...p0};if(R0.backfillObservableInput(o0),Object.keys(o0).some((l1)=>!(l1 in p0)))K1??=[...g0.message.content],K1[K0]={...m0,input:o0}}}}if(K1)c0={...g0,message:{...g0.message,content:K1}}}let t0=!1;if(vn?.isWithheldPromptTooLong(g0))t0=!0;if(F0&&vn?.isWithheldMediaSizeError(g0))t0=!0;if(Zn6(g0))t0=!0;if(!t0)yield c0;if(g0.type==="assistant"){j0.push(g0);let K1=g0.message.content.filter((K0)=>K0.type==="tool_use");if(K1.length>0)y0.push(...K1),V0=!0;if(t&&!D.abortController.signal.aborted)for(let K0 of K1)t.addTool(K0,g0)}if(t&&!D.abortController.signal.aborted){for(let K1 of t.getCompletedResults())if(K1.message)yield K1.message,W0.push(...NH([K1.message],D.options.tools).filter((K0)=>K0.type==="user"))}}F7("query_api_streaming_end")}catch(S0){if(S0 instanceof Al&&K){if(a=K,I0=!0,yield*Pm1(j0,"Model fallback triggered"),j0.length=0,W0.length=0,y0.length=0,V0=!1,t)t.discard(),t=new zL0(D.options.tools,q,D);if(D.options.mainLoopModel=K,process.env.USER_TYPE==="ant")p=ga0(p);l("jarvis_api_error",{original_model:S0.originalModel,fallback_model:K,entrypoint:"cli",queryChainId:m,queryDepth:x.depth}),yield Yz(`Switched to ${zG(S0.fallbackModel)} due to high demand for ${zG(S0.originalModel)}`,"warning");continue}throw S0}}}catch(S0){H0(S0);let g0=S0 instanceof Error?S0.message:String(S0);if(l("jarvis_api_error",{assistantMessages:j0.length,toolUses:j0.flatMap((c0)=>c0.message.content.filter((t0)=>t0.type==="tool_use")).length,queryChainId:m,queryDepth:x.depth}),S0 instanceof y60||S0 instanceof Pj)return yield r7({content:S0.message}),{reason:"image_error"};return yield*Pm1(j0,g0),yield r7({content:g0}),KO("Query error",S0),{reason:"model_error",error:S0}}if(j0.length>0)ml6([...p,...j0],X,Z,Y,D,G);if(D.abortController.signal.aborted){if(t){for await(let S0 of t.getRemainingResults())if(S0.message)yield S0.message}else yield*Pm1(j0,"Interrupted by user");if(D.abortController.signal.reason!=="interrupt")yield fT({toolUse:!1});return{reason:"aborted_streaming"}}if(S){let S0=await S;if(S0)yield S0}if(!V0){let S0=j0.at(-1),g0=S0?.type==="assistant"&&S0.isApiErrorMessage&&uP1(S0),c0=F0&&vn?.isWithheldMediaSizeError(S0);if((g0||c0)&&vn){let K1=await vn.tryReactiveCompact({hasAttempted:E,querySource:G,aborted:D.abortController.signal.aborted,messages:p,cacheSafeParams:{systemPrompt:X,userContext:Z,systemContext:Y,toolUseContext:D,forkContextMessages:p}});if(K1){if(J.taskBudget){let R0=JE1(p);F=Math.max(0,(F??J.taskBudget.total)-R0)}let K0=CT(K1);for(let R0 of K0)yield R0;B={messages:K0,toolUseContext:D,autoCompactTracking:void 0,maxOutputTokensRecoveryCount:v,hasAttemptedReactiveCompact:!0,maxOutputTokensOverride:void 0,pendingToolUseSummary:void 0,stopHookActive:void 0,turnCount:h,transition:{reason:"reactive_compact_retry"}};continue}return yield S0,ua0(S0,D),{reason:c0?"image_error":"prompt_too_long"}}if(Zn6(S0)){if(Y8("jarvis_api_error",!1)&&C===void 0&&!process.env.GLOCK_MAX_OUTPUT_TOKENS){l("jarvis_api_error",{escalatedTo:SA1}),B={messages:p,toolUseContext:D,autoCompactTracking:c,maxOutputTokensRecoveryCount:v,hasAttemptedReactiveCompact:E,maxOutputTokensOverride:SA1,pendingToolUseSummary:void 0,stopHookActive:void 0,turnCount:h,transition:{reason:"max_output_tokens_escalate"}};continue}if(v<Rl7){let K0=$1({content:"Output token limit hit. Resume directly \u2014 no apology, no recap of what you were doing. "+"Pick up mid-thought if that is where the cut happened. Break remaining work into smaller pieces.",isMeta:!0});B={messages:[...p,...j0,K0],toolUseContext:D,autoCompactTracking:c,maxOutputTokensRecoveryCount:v+1,hasAttemptedReactiveCompact:E,maxOutputTokensOverride:void 0,pendingToolUseSummary:void 0,stopHookActive:void 0,turnCount:h,transition:{reason:"max_output_tokens_recovery",attempt:v+1}};continue}yield S0}if(S0?.isApiErrorMessage)return ua0(S0,D),{reason:"completed"};let t0=yield*ai6(p,j0,X,Z,Y,D,G,k);if(t0.preventContinuation)return{reason:"stop_hook_prevented"};if(t0.blockingErrors.length>0){B={messages:[...p,...j0,...t0.blockingErrors],toolUseContext:D,autoCompactTracking:c,maxOutputTokensRecoveryCount:0,hasAttemptedReactiveCompact:E,maxOutputTokensOverride:void 0,pendingToolUseSummary:void 0,stopHookActive:!0,turnCount:h,transition:{reason:"stop_hook_blocking"}};continue}return{reason:"completed"}}let U0=!1,P0=D;if(F7("query_tool_execution_start"),t)l("jarvis_api_error",{tool_count:y0.length,queryChainId:m,queryDepth:x.depth});else l("jarvis_api_error",{tool_count:y0.length,queryChainId:m,queryDepth:x.depth});let $0=t?t.getRemainingResults():Ta0(y0,j0,q,D);for await(let S0 of $0){if(S0.message){if(yield S0.message,S0.message.type==="attachment"&&S0.message.attachment.type==="hook_stopped_continuation")U0=!0;W0.push(...NH([S0.message],D.options.tools).filter((g0)=>g0.type==="user"))}if(S0.newContext)P0={...S0.newContext,queryTracking:x}}F7("query_tool_execution_end");let w0;if(_.gates.emitToolUseSummaries&&y0.length>0&&!D.abortController.signal.aborted&&!D.agentId){let S0=j0.at(-1),g0;if(S0){let K1=S0.message.content.filter((K0)=>K0.type==="text");if(K1.length>0){let K0=K1.at(-1);if(K0&&"text"in K0)g0=K0.text}}let c0=y0.map((K1)=>K1.id),t0=y0.map((K1)=>{let K0=W0.find((R0)=>R0.type==="user"&&Array.isArray(R0.message.content)&&R0.message.content.some((p0)=>p0.type==="tool_result"&&p0.tool_use_id===K1.id)),m0=K0?.type==="user"&&Array.isArray(K0.message.content)?K0.message.content.find((R0)=>R0.type==="tool_result"&&R0.tool_use_id===K1.id):void 0;return{name:K1.name,input:K1.input,output:m0&&"content"in m0?m0.content:null}});w0=Sl6({tools:t0,signal:D.abortController.signal,isNonInteractiveSession:D.options.isNonInteractiveSession,lastAssistantText:g0}).then((K1)=>{if(K1)return Yn6(K1,c0);return null}).catch(()=>null)}if(D.abortController.signal.aborted){if(D.abortController.signal.reason!=="interrupt")yield fT({toolUse:!0});let S0=h+1;if(z&&S0>z)yield JJ({type:"max_turns_reached",maxTurns:z,turnCount:S0});return{reason:"aborted_tools"}}if(U0)return{reason:"hook_stopped"};if(c?.compacted)c.turnCounter++,l("jarvis_api_error",{turnId:c.turnId,turnCounter:c.turnCounter,queryChainId:m,queryDepth:x.depth});l("jarvis_api_error",{messagesForQueryCount:p.length,assistantMessagesCount:j0.length,toolResultsCount:W0.length,queryChainId:m,queryDepth:x.depth});let E0=y0.some((S0)=>S0.name===QL0),h0=G.startsWith("repl_main_thread")||G==="sdk",u0=D.agentId,B0=ma0(E0?"later":"next").filter((S0)=>{if(Kn6(S0))return!1;if(h0)return S0.agentId===void 0;return S0.mode==="task-notification"&&S0.agentId===u0});for await(let S0 of S70(null,P0,null,B0,[...p,...j0,...W0],G))yield S0,W0.push(S0);if(O&&O.settledAt!==null&&O.consumedOnIteration===-1){let S0=km6(await O.promise,D.readFileState);for(let g0 of S0){let c0=JJ(g0);yield c0,W0.push(c0)}O.consumedOnIteration=h-1}if(bm1&&u){let S0=await bm1.collectSkillDiscoveryPrefetch(u);for(let g0 of S0){let c0=JJ(g0);yield c0,W0.push(c0)}}let _0=B0.filter((S0)=>S0.mode==="prompt"||S0.mode==="task-notification");if(_0.length>0){for(let S0 of _0)if(S0.uuid)Q.push(S0.uuid),jI(S0.uuid,"started");qn6(_0)}let M0=x8(W0,(S0)=>S0.type==="attachment"&&S0.attachment.type==="edited_text_file");if(l("jarvis_api_error",{totalToolResultsCount:W0.length,fileChangeAttachmentCount:M0,queryChainId:m,queryDepth:x.depth}),P0.options.refreshTools){let S0=P0.options.refreshTools();if(S0!==P0.options.tools)P0={...P0,options:{...P0.options,tools:S0}}}let b0={...P0,queryTracking:x},L0=h+1;if(z&&L0>z)return yield JJ({type:"max_turns_reached",maxTurns:z,turnCount:L0}),{reason:"max_turns",turnCount:L0};F7("query_recursive_call"),B={messages:[...p,...j0,...W0],toolUseContext:b0,autoCompactTracking:c,turnCount:L0,maxOutputTokensRecoveryCount:0,hasAttemptedReactiveCompact:!1,pendingToolUseSummary:w0,maxOutputTokensOverride:void 0,stopHookActive:k,transition:{reason:"next_turn"}}}}catch(N){var A=N,R=1}finally{MX(L,A,R)}}var vn=null,bm1=null,Rl7=3;var $l=I(()=>{Xk();JT();LT();D1();jg0();aN();s6();M1();XM();Z1();M8();xl6();Vi();Z3();rq();JL0();CJ();hB();lW();Aa0();XL0();N4();Xh();Di6();Cn();Nm1();CB();gJ();oi6();ei6();Qn6();N1();Xn6()});var v2;var zn6=I(()=>{v2={input_tokens:0,cache_creation_input_tokens:0,cache_read_input_tokens:0,output_tokens:0,server_tool_use:{web_search_requests:0,web_fetch_requests:0},service_tier:"standard",cache_creation:{ephemeral_1h_input_tokens:0,ephemeral_5m_input_tokens:0},inference_geo:"",iterations:[],speed:"standard"}});function $l7(J){if(J instanceof d6){let Q=J.error;if(Q?.error?.message)return Q.error.message}return J instanceof Error?J.message:String(J)}function Wn6({headers:J,baseUrl:Q}){if(J&&typeof J.forEach==="function"){let X=[];J.forEach((Z,Y)=>X.push(Y));for(let[Z,{prefixes:Y}]of Object.entries(jl7))if(Y.some((q)=>X.some((K)=>K.startsWith(q))))return Z}if(Q)try{let X=new URL(Q).hostname.toLowerCase();for(let[Z,Y]of Object.entries(Il7))if(Y.some((q)=>X.endsWith(q)))return Z}catch{}return}function Em1(){return{...process.env.GLOCK_BASE_URL?{baseUrl:process.env.GLOCK_BASE_URL}:{},...process.env.GLOCK_MODEL?{envModel:process.env.GLOCK_MODEL}:{},...process.env.GLOCK_SMALL_FAST_MODEL?{envSmallFastModel:process.env.GLOCK_SMALL_FAST_MODEL}:{}}}function Hn6(){let J=new Date("2026-04-05T08:39:18.323Z").getTime();if(isNaN(J))return;return Math.floor((Date.now()-J)/60000)}function Bn6({model:J,messagesLength:Q,temperature:X,betas:Z,permissionMode:Y,querySource:q,queryTracking:K,thinkingType:G,effortValue:z,fastMode:W,previousRequestId:H}){l("jarvis_api_error",{model:J,messagesLength:Q,temperature:X,provider:RS(),buildAgeMins:Hn6(),...Z?.length?{betas:Z.join(",")}:{},permissionMode:Y,querySource:q,...K?{queryChainId:K.chainId,queryDepth:K.depth}:{},thinkingType:G,effortValue:z,fastMode:W,...H?{previousRequestId:H}:{},...Em1()})}function Tm1({error:J,model:Q,messageCount:X,messageTokens:Z,durationMs:Y,durationMsIncludingRetries:q,attempt:K,requestId:G,clientRequestId:z,didFallBackToNonStreaming:W,promptCategory:H,headers:B,queryTracking:U,querySource:F,fastMode:_,previousRequestId:O}){let L=Wn6({headers:J instanceof d6&&J.headers?J.headers:B,baseUrl:process.env.GLOCK_BASE_URL}),N=$l7(J),A=J instanceof d6?String(J.status):void 0,R=u26(J),D=Qk(J);if(D){let v=D.isSSLError?" (SSL error)":"";b(`Connection error details: code=${D.code}${v}, message=${D.message}`,{level:"error"})}let $=Ij1();if(z)b(`API error x-client-request-id=${z} (give this to the API team for server-log lookup)`,{level:"error"});H0(J),l("jarvis_api_error",{model:Q,error:N,status:A,errorType:R,messageCount:X,messageTokens:Z,durationMs:Y,durationMsIncludingRetries:q,attempt:K,provider:RS(),requestId:G||void 0,...$?{invokingRequestId:$.invokingRequestId,invocationKind:$.invocationKind}:{},clientRequestId:z||void 0,didFallBackToNonStreaming:W,...H?{promptCategory:H}:{},...L?{gateway:L}:{},...U?{queryChainId:U.chainId,queryDepth:U.depth}:{},...F?{querySource:F}:{},fastMode:_,...O?{previousRequestId:O}:{},...Em1()});let y=uM0();if(y?.isTeleported&&!y.hasLoggedFirstMessage)l("jarvis_api_error",{session_id:y.sessionId,error_type:R}),gM0()}function yl7({model:J,preNormalizedModel:Q,messageCount:X,messageTokens:Z,usage:Y,durationMs:q,durationMsIncludingRetries:K,attempt:G,ttftMs:z,requestId:W,stopReason:H,costUSD:B,didFallBackToNonStreaming:U,querySource:F,gateway:_,queryTracking:O,permissionMode:L,globalCacheStrategy:N,textContentLength:A,thinkingContentLength:R,toolUseContentLengths:D,connectorTextBlockCount:$,fastMode:y,previousRequestId:v,betas:E}){let C=x6(),S=i71(),k=process.argv.includes("-p")||process.argv.includes("--print"),h=Date.now(),u=mm(),x=u!==null?h-u:void 0,m=Ij1();l("jarvis_api_error",{model:J,...Q!==J?{preNormalizedModel:Q}:{},...E?.length?{betas:E.join(",")}:{},messageCount:X,messageTokens:Z,inputTokens:Y.input_tokens,outputTokens:Y.output_tokens,cachedInputTokens:Y.cache_read_input_tokens??0,uncachedInputTokens:Y.cache_creation_input_tokens??0,durationMs:q,durationMsIncludingRetries:K,attempt:G,ttftMs:z??void 0,buildAgeMins:Hn6(),provider:RS(),requestId:W??void 0,...m?{invokingRequestId:m.invokingRequestId,invocationKind:m.invocationKind}:{},stop_reason:H??void 0,costUSD:B,didFallBackToNonStreaming:U,isNonInteractiveSession:C,print:k,isTTY:process.stdout.isTTY??!1,querySource:F,..._?{gateway:_}:{},...O?{queryChainId:O.chainId,queryDepth:O.depth}:{},permissionMode:L,...N?{globalCacheStrategy:N}:{},...A!==void 0?{textContentLength:A}:{},...R!==void 0?{thinkingContentLength:R}:{},...D!==void 0?{toolUseContentLengths:l0(D)}:{},...$!==void 0?{connectorTextBlockCount:$}:{},fastMode:y,...{},...v?{previousRequestId:v}:{},...S?{isPostCompaction:S}:{},...Em1(),timeSinceLastApiCallMs:x}),k50(h)}function Un6({model:J,preNormalizedModel:Q,start:X,startIncludingRetries:Z,ttftMs:Y,usage:q,attempt:K,messageCount:G,messageTokens:z,requestId:W,stopReason:H,didFallBackToNonStreaming:B,querySource:U,headers:F,costUSD:_,queryTracking:O,permissionMode:L,newMessages:N,globalCacheStrategy:A,fastMode:R,previousRequestId:D,betas:$}){let y=Wn6({headers:F,baseUrl:process.env.GLOCK_BASE_URL}),v,E,C,S;if(N){let x=0,m=0,p=!1,c={},r=0;for(let J0 of N)for(let n of J0.message.content)if(n.type==="text")x+=n.text.length;else if(n.type==="thinking")m+=n.thinking.length;else if(n.type==="tool_use"||n.type==="server_tool_use"||n.type==="mcp_tool_use"){let s=l0(n.input).length,X0=w9(n.name);c[X0]=(c[X0]??0)+s,p=!0}v=x,E=m>0?m:void 0,C=p?c:void 0,S=r>0?r:void 0}let k=Date.now()-X,h=Date.now()-Z;E71(h,k),yl7({model:J,preNormalizedModel:Q,messageCount:G,messageTokens:z,usage:q,durationMs:k,durationMsIncludingRetries:h,attempt:K,ttftMs:Y,requestId:W,stopReason:H,costUSD:_,didFallBackToNonStreaming:B,querySource:U,gateway:y,queryTracking:O,permissionMode:L,globalCacheStrategy:A,textContentLength:v,thinkingContentLength:E,toolUseContentLengths:C,connectorTextBlockCount:S,fastMode:R,previousRequestId:D,betas:$});let u=uM0();if(u?.isTeleported&&!u.hasLoggedFirstMessage)l("jarvis_api_error",{session_id:u.sessionId}),gM0()}var jl7,Il7;var FL0=I(()=>{xV();N1();Z1();M1();m4();i1();uR();D1();BG();zn6();XM();Ll();jl7={litellm:{prefixes:["x-litellm-"]},helicone:{prefixes:["helicone-"]},portkey:{prefixes:["x-portkey-"]},"cloudflare-ai-gateway":{prefixes:["cf-aig-"]},kong:{prefixes:["x-kong-"]},braintrust:{prefixes:["x-bt-"]}},Il7={databricks:[".cloud.databricks.com",".azuredatabricks.net",".gcp.databricks.com"]}});function Fn6(){return{consecutiveDenials:0,totalDenials:0}}var Cm1=()=>{};import{randomUUID as bl7}from"crypto";function si6(J){_n6=J}function vm1(){return _n6}function JD(J){return{systemPrompt:J.systemPrompt,userContext:J.userContext,systemContext:J.systemContext,toolUseContext:J.toolUseContext,forkContextMessages:J.messages}}function Pl7(J,Q){if(Q.length===0)return J;return()=>{let X=J();return{...X,toolPermissionContext:{...X.toolPermissionContext,alwaysAllowRules:{...X.toolPermissionContext.alwaysAllowRules,command:[...new Set([...X.toolPermissionContext.alwaysAllowRules.command||[],...Q])]}}}}}async function bn0(J,Q,X){let Y=(await J.getPromptForCommand(Q,X)).map((B)=>B.type==="text"?B.text:"").join(`
|
|
3492
|
+
`)}`,A=Ti6(O,L,N),R=await C2({promptMessages:[$1({content:A})],cacheSafeParams:JD(X),canUseTool:Pi6(O),querySource:"auto_dream",forkLabel:"auto_dream",skipTranscript:!0,overrides:{abortController:F},onMessage:Vl7(_,U)});ci6(_,U);let D=X.toolUseContext.getAppState().tasks?.[_];if(Z&&gi6(D)&&D.filesTouched.length>0)Z({...Am1(D.filesTouched),verb:"Improved"});b(`[autoDream] completed \u2014 cache: read=${R.totalUsage.cache_read_input_tokens} created=${R.totalUsage.cache_creation_input_tokens}`),l("jarvis_api_error",{cache_read:R.totalUsage.cache_read_input_tokens,cache_created:R.totalUsage.cache_creation_input_tokens,output:R.totalUsage.output_tokens,sessions_reviewed:W.length})}catch(O){if(F.signal.aborted){b("[autoDream] aborted by user");return}b(`[autoDream] fork failed: ${O.message}`),l("jarvis_api_error",{}),di6(_,U),await fa0(B)}}}function Vl7(J,Q){return(X)=>{if(X.type!=="assistant")return;let Z="",Y=0,q=[];for(let K of X.message.content)if(K.type==="text")Z+=K.text;else if(K.type==="tool_use"){if(Y++,K.name===fJ||K.name===t9){let G=K.input;if(typeof G.file_path==="string")q.push(G.file_path)}}pi6(J,{text:Z.trim(),toolUseCount:Y},q,Q)}}async function ri6(J,Q){await ii6?.(J,Q)}var Fl7=600000,li6,ii6=null;var Dm1=I(()=>{G_();M8();Z1();D1();t5();wm1();gJ();N1();Ei6();Ci6();Sa0();ka0();qq();li6={minHours:24,minSessions:5}});async function*ai6(J,Q,X,Z,Y,q,K,G){let z=Date.now(),W={messages:[...J,...Q],systemPrompt:X,userContext:Z,systemContext:Y,toolUseContext:q,querySource:K};if(K==="repl_main_thread"||K==="sdk")si6(JD(W));if(!y7()){if(!q.agentId)ri6(W,q.appendSystemMessage)}try{let H=[],U=q.getAppState().toolPermissionContext.mode,F=Im1(U,q.abortController.signal,void 0,G??!1,q.agentId,q,[...J,...Q],q.agentType),_="",O=0,L=!1,N="",A=!1,R=[],D=[];for await(let $ of F){if($.message){if(yield $.message,$.message.type==="progress"&&$.message.toolUseID){_=$.message.toolUseID,O++;let y=$.message.data;if(y.command)D.push({command:y.command,promptText:y.promptText})}if($.message.type==="attachment"){let y=$.message.attachment;if("hookEvent"in y&&(y.hookEvent==="Stop"||y.hookEvent==="SubagentStop")){if(y.type==="hook_non_blocking_error")R.push(y.stderr||`Exit code ${y.exitCode}`),A=!0;else if(y.type==="hook_error_during_execution")R.push(y.content),A=!0;else if(y.type==="hook_success"){if(y.stdout&&y.stdout.trim()||y.stderr&&y.stderr.trim())A=!0}if("durationMs"in y&&"command"in y){let v=D.find((E)=>E.command===y.command&&E.durationMs===void 0);if(v)v.durationMs=y.durationMs}}}}if($.blockingError){let y=$1({content:$m1($.blockingError),isMeta:!0});H.push(y),yield y,A=!0,R.push($.blockingError.blockingError)}if($.preventContinuation)L=!0,N=$.stopReason||"Stop hook prevented continuation",yield JJ({type:"hook_stopped_continuation",message:N,hookName:"Stop",toolUseID:_,hookEvent:"Stop"});if(q.abortController.signal.aborted)return l("jarvis_api_error",{queryChainId:q.queryTracking?.chainId,queryDepth:q.queryTracking?.depth}),yield fT({toolUse:!1}),{blockingErrors:[],preventContinuation:!0}}if(O>0){if(yield KL0(O,D,R,L,N,A,"suggestion",_),R.length>0){let $=PK("app:toggleTranscript","Global","ctrl+o");q.addNotification?.({key:"stop-hook-error",text:`Stop hook error occurred \xB7 ${$} to see`,priority:"immediate"})}}if(L)return{blockingErrors:[],preventContinuation:!0};if(H.length>0)return{blockingErrors:H,preventContinuation:!1};if(UZ()){let $=dQ()??"",y=v7()??"",v=[],E=!1,C,S="",k=pB(),u=(await a3(k)).filter((m)=>m.status==="in_progress"&&m.owner===$);for(let m of u){let p=UL0(m.id,m.subject,m.description,$,y,U,q.abortController.signal,void 0,q);for await(let c of p){if(c.message){if(c.message.type==="progress"&&c.message.toolUseID)S=c.message.toolUseID;yield c.message}if(c.blockingError){let r=$1({content:BL0(c.blockingError),isMeta:!0});v.push(r),yield r}if(c.preventContinuation)E=!0,C=c.stopReason||"TaskCompleted hook prevented continuation",yield JJ({type:"hook_stopped_continuation",message:C,hookName:"TaskCompleted",toolUseID:S,hookEvent:"TaskCompleted"});if(q.abortController.signal.aborted)return{blockingErrors:[],preventContinuation:!0}}}let x=ym1($,y,U,q.abortController.signal);for await(let m of x){if(m.message){if(m.message.type==="progress"&&m.message.toolUseID)S=m.message.toolUseID;yield m.message}if(m.blockingError){let p=$1({content:jm1(m.blockingError),isMeta:!0});v.push(p),yield p}if(m.preventContinuation)E=!0,C=m.stopReason||"TeammateIdle hook prevented continuation",yield JJ({type:"hook_stopped_continuation",message:C,hookName:"TeammateIdle",toolUseID:S,hookEvent:"TeammateIdle"});if(q.abortController.signal.aborted)return{blockingErrors:[],preventContinuation:!0}}if(E)return{blockingErrors:[],preventContinuation:!0};if(v.length>0)return{blockingErrors:v,preventContinuation:!1}}return{blockingErrors:[],preventContinuation:!1}}catch(H){let B=Date.now()-z;return l("jarvis_api_error",{duration:B,queryChainId:q.queryTracking?.chainId,queryDepth:q.queryTracking?.depth}),yield Yz(`Stop hook failed: ${Q1(H)}`,"warning"),{blockingErrors:[],preventContinuation:!1}}}var oi6=I(()=>{ij();t5();D1();Z3();Z1();T1();N4();M8();tq();FZ();Dm1();t1();G_()});function ti6(){return{sessionId:A1(),gates:{streamingToolExecution:GZ("jarvis_api_error"),emitToolUseSummaries:W1(process.env.GLOCK_EMIT_TOOL_USE_SUMMARIES),isAnt:process.env.USER_TYPE==="ant",fastModeEnabled:!0}}}var ei6=I(()=>{N1();t1()});import{randomUUID as wl7}from"crypto";function Jn6(){return{callModel:DQ0,microcompact:ZI,autocompact:Cl6,uuid:wl7}}var Qn6=I(()=>{wq();JT();Fw()});var Al7,nF4;var ha0=I(()=>{Al7=/\b(?:use|spend)\s+(\d+(?:\.\d+)?)\s*(k|m|b)\s*tokens?\b/i,nF4=new RegExp(Al7.source,"gi")});var Xn6=I(()=>{ha0()});function*Pm1(J,Q){for(let X of J){let Z=X.message.content.filter((Y)=>Y.type==="tool_use");for(let Y of Z)yield $1({content:[{type:"tool_result",content:Q,is_error:!0,tool_use_id:Y.id}],toolUseResult:Q,sourceToolAssistantUUID:X.uuid})}}function Zn6(J){return J?.type==="assistant"&&J.apiError==="max_output_tokens"}async function*eN(J){let Q=[],X=yield*Ml7(J,Q);for(let Z of Q)jI(Z,"completed");return X}async function*Ml7(J,Q){let L=[];try{let{systemPrompt:X,userContext:Z,systemContext:Y,canUseTool:q,fallbackModel:K,querySource:G,maxTurns:z,skipCacheWrite:W}=J;let H=J.deps??Jn6();let B={messages:J.messages,toolUseContext:J.toolUseContext,maxOutputTokensOverride:J.maxOutputTokensOverride,autoCompactTracking:void 0,stopHookActive:void 0,maxOutputTokensRecoveryCount:0,hasAttemptedReactiveCompact:!1,turnCount:1,pendingToolUseSummary:void 0,transition:void 0};let U=null;let F=void 0;let _=ti6();const O=RX(L,Sm6(B.messages,B.toolUseContext),0);while(!0){let{toolUseContext:D}=B,{messages:$,autoCompactTracking:y,maxOutputTokensRecoveryCount:v,hasAttemptedReactiveCompact:E,maxOutputTokensOverride:C,pendingToolUseSummary:S,stopHookActive:k,turnCount:h}=B,u=bm1?.startSkillDiscoveryPrefetch(null,$,D);if(yield{type:"stream_request_start"},F7("query_fn_entry"),!D.agentId)VG("query_started");let x=D.queryTracking?{chainId:D.queryTracking.chainId,depth:D.queryTracking.depth+1}:{chainId:H.uuid(),depth:0},m=x.chainId;D={...D,queryTracking:x};let p=[...LG($)],c=y,r=G.startsWith("agent:")||G.startsWith("repl_main_thread");p=await JY6(p,D.contentReplacementState,r?(S0)=>void ca0(S0,D.agentId).catch(H0):void 0,new Set(D.options.tools.filter((S0)=>!Number.isFinite(S0.maxResultSizeChars)).map((S0)=>S0.name)));let J0=0;F7("query_microcompact_start"),p=(await H.microcompact(p,D,G)).messages;let s=void 0;F7("query_microcompact_end");let X0=j9(Gn6(X,Y));F7("query_autocompact_start");let{compactionResult:Y0,consecutiveFailures:G0}=await H.autocompact(p,D,{systemPrompt:X,userContext:Z,systemContext:Y,toolUseContext:D,forkContextMessages:p},G,c,J0);if(F7("query_autocompact_end"),Y0){let{preCompactTokenCount:S0,postCompactTokenCount:g0,truePostCompactTokenCount:c0,compactionUsage:t0}=Y0;if(l("jarvis_api_error",{originalMessageCount:$.length,compactedMessageCount:Y0.summaryMessages.length+Y0.attachments.length+Y0.hookResults.length,preCompactTokenCount:S0,postCompactTokenCount:g0,truePostCompactTokenCount:c0,compactionInputTokens:t0?.input_tokens,compactionOutputTokens:t0?.output_tokens,compactionCacheReadTokens:t0?.cache_read_input_tokens??0,compactionCacheCreationTokens:t0?.cache_creation_input_tokens??0,compactionTotalTokens:t0?t0.input_tokens+(t0.cache_creation_input_tokens??0)+(t0.cache_read_input_tokens??0)+t0.output_tokens:0,queryChainId:m,queryDepth:x.depth}),J.taskBudget){let K0=JE1(p);F=Math.max(0,(F??J.taskBudget.total)-K0)}c={compacted:!0,turnId:H.uuid(),turnCounter:0,consecutiveFailures:0};let K1=CT(Y0);for(let K0 of K1)yield K0;p=K1}else if(G0!==void 0)c={...c??{compacted:!1,turnId:"",turnCounter:0},consecutiveFailures:G0};D={...D,messages:p};let j0=[],W0=[],y0=[],V0=!1;F7("query_setup_start");let t=_.gates.streamingToolExecution?new zL0(D.options.tools,q,D):null,q0=D.getAppState(),Q0=q0.toolPermissionContext.mode,a=i$({permissionMode:Q0,mainLoopModel:D.options.mainLoopModel,exceeds200kTokens:Q0==="plan"&&xg0(p)});F7("query_setup_end");let O0=_.gates.isAnt?vD6(D.agentId??_.sessionId):void 0,D0=!1,F0=vn?.isReactiveCompactEnabled()??!1;if(!Y0&&G!=="compact"&&G!=="session_memory"&&!(vn?.isReactiveCompactEnabled()&&Ow())&&!D0){let{isAtBlockingLimit:S0}=Pn(gF(p)-J0,D.options.mainLoopModel);if(S0)return yield r7({content:QM,error:"invalid_request"}),{reason:"blocking_limit"}}let I0=!0;F7("query_api_loop_start");try{while(I0){I0=!1;try{let S0=!1;F7("query_api_streaming_start");for await(let g0 of H.callModel({messages:pa0(p,Z),systemPrompt:X0,thinkingConfig:D.options.thinkingConfig,tools:D.options.tools,signal:D.abortController.signal,options:{async getToolPermissionContext(){return D.getAppState().toolPermissionContext},model:a,..._.gates.fastModeEnabled&&{fastMode:q0.fastMode},toolChoice:void 0,isNonInteractiveSession:D.options.isNonInteractiveSession,fallbackModel:K,onStreamingFallback:()=>{S0=!0},querySource:G,agents:D.options.agentDefinitions.activeAgents,allowedAgentTypes:D.options.agentDefinitions.allowedAgentTypes,hasAppendSystemPrompt:!!D.options.appendSystemPrompt,maxOutputTokensOverride:C,fetchOverride:O0,mcpTools:q0.mcp.tools,hasPendingMcpServers:q0.mcp.clients.some((c0)=>c0.type==="pending"),queryTracking:x,effortValue:q0.effortValue,skipCacheWrite:W,agentId:D.agentId,addNotification:D.addNotification,...J.taskBudget&&{taskBudget:{total:J.taskBudget.total,...F!==void 0&&{remaining:F}}}}})){if(S0){for(let K1 of j0)yield{type:"tombstone",message:K1};if(l("jarvis_api_error",{orphanedMessageCount:j0.length,queryChainId:m,queryDepth:x.depth}),j0.length=0,W0.length=0,y0.length=0,V0=!1,t)t.discard(),t=new zL0(D.options.tools,q,D)}let c0=g0;if(g0.type==="assistant"){let K1;for(let K0=0;K0<g0.message.content.length;K0++){let m0=g0.message.content[K0];if(m0.type==="tool_use"&&typeof m0.input==="object"&&m0.input!==null){let R0=h9(D.options.tools,m0.name);if(R0?.backfillObservableInput){let p0=m0.input,o0={...p0};if(R0.backfillObservableInput(o0),Object.keys(o0).some((l1)=>!(l1 in p0)))K1??=[...g0.message.content],K1[K0]={...m0,input:o0}}}}if(K1)c0={...g0,message:{...g0.message,content:K1}}}let t0=!1;if(vn?.isWithheldPromptTooLong(g0))t0=!0;if(F0&&vn?.isWithheldMediaSizeError(g0))t0=!0;if(Zn6(g0))t0=!0;if(!t0)yield c0;if(g0.type==="assistant"){j0.push(g0);let K1=g0.message.content.filter((K0)=>K0.type==="tool_use");if(K1.length>0)y0.push(...K1),V0=!0;if(t&&!D.abortController.signal.aborted)for(let K0 of K1)t.addTool(K0,g0)}if(t&&!D.abortController.signal.aborted){for(let K1 of t.getCompletedResults())if(K1.message)yield K1.message,W0.push(...NH([K1.message],D.options.tools).filter((K0)=>K0.type==="user"))}}F7("query_api_streaming_end")}catch(S0){if(S0 instanceof Al&&K){if(a=K,I0=!0,yield*Pm1(j0,"Model fallback triggered"),j0.length=0,W0.length=0,y0.length=0,V0=!1,t)t.discard(),t=new zL0(D.options.tools,q,D);if(D.options.mainLoopModel=K,process.env.USER_TYPE==="ant")p=ga0(p);l("jarvis_api_error",{original_model:S0.originalModel,fallback_model:K,entrypoint:"cli",queryChainId:m,queryDepth:x.depth}),yield Yz(`Switched to ${zG(S0.fallbackModel)} due to high demand for ${zG(S0.originalModel)}`,"warning");continue}throw S0}}}catch(S0){H0(S0);let g0=S0 instanceof Error?S0.message:String(S0);if(l("jarvis_api_error",{assistantMessages:j0.length,toolUses:j0.flatMap((c0)=>c0.message.content.filter((t0)=>t0.type==="tool_use")).length,queryChainId:m,queryDepth:x.depth}),S0 instanceof y60||S0 instanceof Pj)return yield r7({content:S0.message}),{reason:"image_error"};return yield*Pm1(j0,g0),yield r7({content:g0}),KO("Query error",S0),{reason:"model_error",error:S0}}if(j0.length>0)ml6([...p,...j0],X,Z,Y,D,G);if(D.abortController.signal.aborted){if(t){for await(let S0 of t.getRemainingResults())if(S0.message)yield S0.message}else yield*Pm1(j0,"Interrupted by user");if(D.abortController.signal.reason!=="interrupt")yield fT({toolUse:!1});return{reason:"aborted_streaming"}}if(S){let S0=await S;if(S0)yield S0}if(!V0){let S0=j0.at(-1),g0=S0?.type==="assistant"&&S0.isApiErrorMessage&&uP1(S0),c0=F0&&vn?.isWithheldMediaSizeError(S0);if((g0||c0)&&vn){let K1=await vn.tryReactiveCompact({hasAttempted:E,querySource:G,aborted:D.abortController.signal.aborted,messages:p,cacheSafeParams:{systemPrompt:X,userContext:Z,systemContext:Y,toolUseContext:D,forkContextMessages:p}});if(K1){if(J.taskBudget){let R0=JE1(p);F=Math.max(0,(F??J.taskBudget.total)-R0)}let K0=CT(K1);for(let R0 of K0)yield R0;B={messages:K0,toolUseContext:D,autoCompactTracking:void 0,maxOutputTokensRecoveryCount:v,hasAttemptedReactiveCompact:!0,maxOutputTokensOverride:void 0,pendingToolUseSummary:void 0,stopHookActive:void 0,turnCount:h,transition:{reason:"reactive_compact_retry"}};continue}return yield S0,ua0(S0,D),{reason:c0?"image_error":"prompt_too_long"}}if(Zn6(S0)){if(Y8("jarvis_api_error",!1)&&C===void 0&&!process.env.GLOCK_MAX_OUTPUT_TOKENS){l("jarvis_api_error",{escalatedTo:SA1}),B={messages:p,toolUseContext:D,autoCompactTracking:c,maxOutputTokensRecoveryCount:v,hasAttemptedReactiveCompact:E,maxOutputTokensOverride:SA1,pendingToolUseSummary:void 0,stopHookActive:void 0,turnCount:h,transition:{reason:"max_output_tokens_escalate"}};continue}if(v<Rl7){let K0=$1({content:"Output token limit hit. Resume directly \u2014 no apology, no recap of what you were doing. "+"Pick up mid-thought if that is where the cut happened. Break remaining work into smaller pieces.",isMeta:!0});B={messages:[...p,...j0,K0],toolUseContext:D,autoCompactTracking:c,maxOutputTokensRecoveryCount:v+1,hasAttemptedReactiveCompact:E,maxOutputTokensOverride:void 0,pendingToolUseSummary:void 0,stopHookActive:void 0,turnCount:h,transition:{reason:"max_output_tokens_recovery",attempt:v+1}};continue}yield S0}if(S0?.isApiErrorMessage)return ua0(S0,D),{reason:"completed"};let t0=yield*ai6(p,j0,X,Z,Y,D,G,k);if(t0.preventContinuation)return{reason:"stop_hook_prevented"};if(t0.blockingErrors.length>0){B={messages:[...p,...j0,...t0.blockingErrors],toolUseContext:D,autoCompactTracking:c,maxOutputTokensRecoveryCount:0,hasAttemptedReactiveCompact:E,maxOutputTokensOverride:void 0,pendingToolUseSummary:void 0,stopHookActive:!0,turnCount:h,transition:{reason:"stop_hook_blocking"}};continue}return{reason:"completed"}}let U0=!1,P0=D;if(F7("query_tool_execution_start"),t)l("jarvis_api_error",{tool_count:y0.length,queryChainId:m,queryDepth:x.depth});else l("jarvis_api_error",{tool_count:y0.length,queryChainId:m,queryDepth:x.depth});let $0=t?t.getRemainingResults():Ta0(y0,j0,q,D);for await(let S0 of $0){if(S0.message){if(yield S0.message,S0.message.type==="attachment"&&S0.message.attachment.type==="hook_stopped_continuation")U0=!0;W0.push(...NH([S0.message],D.options.tools).filter((g0)=>g0.type==="user"))}if(S0.newContext)P0={...S0.newContext,queryTracking:x}}F7("query_tool_execution_end");let w0;if(_.gates.emitToolUseSummaries&&y0.length>0&&!D.abortController.signal.aborted&&!D.agentId){let S0=j0.at(-1),g0;if(S0){let K1=S0.message.content.filter((K0)=>K0.type==="text");if(K1.length>0){let K0=K1.at(-1);if(K0&&"text"in K0)g0=K0.text}}let c0=y0.map((K1)=>K1.id),t0=y0.map((K1)=>{let K0=W0.find((R0)=>R0.type==="user"&&Array.isArray(R0.message.content)&&R0.message.content.some((p0)=>p0.type==="tool_result"&&p0.tool_use_id===K1.id)),m0=K0?.type==="user"&&Array.isArray(K0.message.content)?K0.message.content.find((R0)=>R0.type==="tool_result"&&R0.tool_use_id===K1.id):void 0;return{name:K1.name,input:K1.input,output:m0&&"content"in m0?m0.content:null}});w0=Sl6({tools:t0,signal:D.abortController.signal,isNonInteractiveSession:D.options.isNonInteractiveSession,lastAssistantText:g0}).then((K1)=>{if(K1)return Yn6(K1,c0);return null}).catch(()=>null)}if(D.abortController.signal.aborted){if(D.abortController.signal.reason!=="interrupt")yield fT({toolUse:!0});let S0=h+1;if(z&&S0>z)yield JJ({type:"max_turns_reached",maxTurns:z,turnCount:S0});return{reason:"aborted_tools"}}if(U0)return{reason:"hook_stopped"};if(c?.compacted)c.turnCounter++,l("jarvis_api_error",{turnId:c.turnId,turnCounter:c.turnCounter,queryChainId:m,queryDepth:x.depth});l("jarvis_api_error",{messagesForQueryCount:p.length,assistantMessagesCount:j0.length,toolResultsCount:W0.length,queryChainId:m,queryDepth:x.depth});let E0=y0.some((S0)=>S0.name===QL0),h0=G.startsWith("repl_main_thread")||G==="sdk",u0=D.agentId,B0=ma0(E0?"later":"next").filter((S0)=>{if(Kn6(S0))return!1;if(h0)return S0.agentId===void 0;return S0.mode==="task-notification"&&S0.agentId===u0});for await(let S0 of S70(null,P0,null,B0,[...p,...j0,...W0],G))yield S0,W0.push(S0);if(O&&O.settledAt!==null&&O.consumedOnIteration===-1){let S0=km6(await O.promise,D.readFileState);for(let g0 of S0){let c0=JJ(g0);yield c0,W0.push(c0)}O.consumedOnIteration=h-1}if(bm1&&u){let S0=await bm1.collectSkillDiscoveryPrefetch(u);for(let g0 of S0){let c0=JJ(g0);yield c0,W0.push(c0)}}let _0=B0.filter((S0)=>S0.mode==="prompt"||S0.mode==="task-notification");if(_0.length>0){for(let S0 of _0)if(S0.uuid)Q.push(S0.uuid),jI(S0.uuid,"started");qn6(_0)}let M0=x8(W0,(S0)=>S0.type==="attachment"&&S0.attachment.type==="edited_text_file");if(l("jarvis_api_error",{totalToolResultsCount:W0.length,fileChangeAttachmentCount:M0,queryChainId:m,queryDepth:x.depth}),P0.options.refreshTools){let S0=P0.options.refreshTools();if(S0!==P0.options.tools)P0={...P0,options:{...P0.options,tools:S0}}}let b0={...P0,queryTracking:x},L0=h+1;if(z&&L0>z)return yield JJ({type:"max_turns_reached",maxTurns:z,turnCount:L0}),{reason:"max_turns",turnCount:L0};F7("query_recursive_call"),B={messages:[...p,...j0,...W0],toolUseContext:b0,autoCompactTracking:c,turnCount:L0,maxOutputTokensRecoveryCount:0,hasAttemptedReactiveCompact:!1,pendingToolUseSummary:w0,maxOutputTokensOverride:void 0,stopHookActive:k,transition:{reason:"next_turn"}}}}catch(N){var A=N,R=1}finally{MX(L,A,R)}}var vn=null,bm1=null,Rl7=3;var $l=I(()=>{Xk();JT();LT();D1();jg0();aN();s6();M1();XM();Z1();M8();xl6();Vi();Z3();rq();JL0();CJ();hB();lW();Aa0();XL0();N4();Xh();Di6();Cn();Nm1();CB();gJ();oi6();ei6();Qn6();N1();Xn6()});var v2;var zn6=I(()=>{v2={input_tokens:0,cache_creation_input_tokens:0,cache_read_input_tokens:0,output_tokens:0,server_tool_use:{web_search_requests:0,web_fetch_requests:0},service_tier:"standard",cache_creation:{ephemeral_1h_input_tokens:0,ephemeral_5m_input_tokens:0},inference_geo:"",iterations:[],speed:"standard"}});function $l7(J){if(J instanceof d6){let Q=J.error;if(Q?.error?.message)return Q.error.message}return J instanceof Error?J.message:String(J)}function Wn6({headers:J,baseUrl:Q}){if(J&&typeof J.forEach==="function"){let X=[];J.forEach((Z,Y)=>X.push(Y));for(let[Z,{prefixes:Y}]of Object.entries(jl7))if(Y.some((q)=>X.some((K)=>K.startsWith(q))))return Z}if(Q)try{let X=new URL(Q).hostname.toLowerCase();for(let[Z,Y]of Object.entries(Il7))if(Y.some((q)=>X.endsWith(q)))return Z}catch{}return}function Em1(){return{...process.env.GLOCK_BASE_URL?{baseUrl:process.env.GLOCK_BASE_URL}:{},...process.env.GLOCK_MODEL?{envModel:process.env.GLOCK_MODEL}:{},...process.env.GLOCK_SMALL_FAST_MODEL?{envSmallFastModel:process.env.GLOCK_SMALL_FAST_MODEL}:{}}}function Hn6(){let J=new Date("2026-04-05T08:41:33.635Z").getTime();if(isNaN(J))return;return Math.floor((Date.now()-J)/60000)}function Bn6({model:J,messagesLength:Q,temperature:X,betas:Z,permissionMode:Y,querySource:q,queryTracking:K,thinkingType:G,effortValue:z,fastMode:W,previousRequestId:H}){l("jarvis_api_error",{model:J,messagesLength:Q,temperature:X,provider:RS(),buildAgeMins:Hn6(),...Z?.length?{betas:Z.join(",")}:{},permissionMode:Y,querySource:q,...K?{queryChainId:K.chainId,queryDepth:K.depth}:{},thinkingType:G,effortValue:z,fastMode:W,...H?{previousRequestId:H}:{},...Em1()})}function Tm1({error:J,model:Q,messageCount:X,messageTokens:Z,durationMs:Y,durationMsIncludingRetries:q,attempt:K,requestId:G,clientRequestId:z,didFallBackToNonStreaming:W,promptCategory:H,headers:B,queryTracking:U,querySource:F,fastMode:_,previousRequestId:O}){let L=Wn6({headers:J instanceof d6&&J.headers?J.headers:B,baseUrl:process.env.GLOCK_BASE_URL}),N=$l7(J),A=J instanceof d6?String(J.status):void 0,R=u26(J),D=Qk(J);if(D){let v=D.isSSLError?" (SSL error)":"";b(`Connection error details: code=${D.code}${v}, message=${D.message}`,{level:"error"})}let $=Ij1();if(z)b(`API error x-client-request-id=${z} (give this to the API team for server-log lookup)`,{level:"error"});H0(J),l("jarvis_api_error",{model:Q,error:N,status:A,errorType:R,messageCount:X,messageTokens:Z,durationMs:Y,durationMsIncludingRetries:q,attempt:K,provider:RS(),requestId:G||void 0,...$?{invokingRequestId:$.invokingRequestId,invocationKind:$.invocationKind}:{},clientRequestId:z||void 0,didFallBackToNonStreaming:W,...H?{promptCategory:H}:{},...L?{gateway:L}:{},...U?{queryChainId:U.chainId,queryDepth:U.depth}:{},...F?{querySource:F}:{},fastMode:_,...O?{previousRequestId:O}:{},...Em1()});let y=uM0();if(y?.isTeleported&&!y.hasLoggedFirstMessage)l("jarvis_api_error",{session_id:y.sessionId,error_type:R}),gM0()}function yl7({model:J,preNormalizedModel:Q,messageCount:X,messageTokens:Z,usage:Y,durationMs:q,durationMsIncludingRetries:K,attempt:G,ttftMs:z,requestId:W,stopReason:H,costUSD:B,didFallBackToNonStreaming:U,querySource:F,gateway:_,queryTracking:O,permissionMode:L,globalCacheStrategy:N,textContentLength:A,thinkingContentLength:R,toolUseContentLengths:D,connectorTextBlockCount:$,fastMode:y,previousRequestId:v,betas:E}){let C=x6(),S=i71(),k=process.argv.includes("-p")||process.argv.includes("--print"),h=Date.now(),u=mm(),x=u!==null?h-u:void 0,m=Ij1();l("jarvis_api_error",{model:J,...Q!==J?{preNormalizedModel:Q}:{},...E?.length?{betas:E.join(",")}:{},messageCount:X,messageTokens:Z,inputTokens:Y.input_tokens,outputTokens:Y.output_tokens,cachedInputTokens:Y.cache_read_input_tokens??0,uncachedInputTokens:Y.cache_creation_input_tokens??0,durationMs:q,durationMsIncludingRetries:K,attempt:G,ttftMs:z??void 0,buildAgeMins:Hn6(),provider:RS(),requestId:W??void 0,...m?{invokingRequestId:m.invokingRequestId,invocationKind:m.invocationKind}:{},stop_reason:H??void 0,costUSD:B,didFallBackToNonStreaming:U,isNonInteractiveSession:C,print:k,isTTY:process.stdout.isTTY??!1,querySource:F,..._?{gateway:_}:{},...O?{queryChainId:O.chainId,queryDepth:O.depth}:{},permissionMode:L,...N?{globalCacheStrategy:N}:{},...A!==void 0?{textContentLength:A}:{},...R!==void 0?{thinkingContentLength:R}:{},...D!==void 0?{toolUseContentLengths:l0(D)}:{},...$!==void 0?{connectorTextBlockCount:$}:{},fastMode:y,...{},...v?{previousRequestId:v}:{},...S?{isPostCompaction:S}:{},...Em1(),timeSinceLastApiCallMs:x}),k50(h)}function Un6({model:J,preNormalizedModel:Q,start:X,startIncludingRetries:Z,ttftMs:Y,usage:q,attempt:K,messageCount:G,messageTokens:z,requestId:W,stopReason:H,didFallBackToNonStreaming:B,querySource:U,headers:F,costUSD:_,queryTracking:O,permissionMode:L,newMessages:N,globalCacheStrategy:A,fastMode:R,previousRequestId:D,betas:$}){let y=Wn6({headers:F,baseUrl:process.env.GLOCK_BASE_URL}),v,E,C,S;if(N){let x=0,m=0,p=!1,c={},r=0;for(let J0 of N)for(let n of J0.message.content)if(n.type==="text")x+=n.text.length;else if(n.type==="thinking")m+=n.thinking.length;else if(n.type==="tool_use"||n.type==="server_tool_use"||n.type==="mcp_tool_use"){let s=l0(n.input).length,X0=w9(n.name);c[X0]=(c[X0]??0)+s,p=!0}v=x,E=m>0?m:void 0,C=p?c:void 0,S=r>0?r:void 0}let k=Date.now()-X,h=Date.now()-Z;E71(h,k),yl7({model:J,preNormalizedModel:Q,messageCount:G,messageTokens:z,usage:q,durationMs:k,durationMsIncludingRetries:h,attempt:K,ttftMs:Y,requestId:W,stopReason:H,costUSD:_,didFallBackToNonStreaming:B,querySource:U,gateway:y,queryTracking:O,permissionMode:L,globalCacheStrategy:A,textContentLength:v,thinkingContentLength:E,toolUseContentLengths:C,connectorTextBlockCount:S,fastMode:R,previousRequestId:D,betas:$});let u=uM0();if(u?.isTeleported&&!u.hasLoggedFirstMessage)l("jarvis_api_error",{session_id:u.sessionId}),gM0()}var jl7,Il7;var FL0=I(()=>{xV();N1();Z1();M1();m4();i1();uR();D1();BG();zn6();XM();Ll();jl7={litellm:{prefixes:["x-litellm-"]},helicone:{prefixes:["helicone-"]},portkey:{prefixes:["x-portkey-"]},"cloudflare-ai-gateway":{prefixes:["cf-aig-"]},kong:{prefixes:["x-kong-"]},braintrust:{prefixes:["x-bt-"]}},Il7={databricks:[".cloud.databricks.com",".azuredatabricks.net",".gcp.databricks.com"]}});function Fn6(){return{consecutiveDenials:0,totalDenials:0}}var Cm1=()=>{};import{randomUUID as bl7}from"crypto";function si6(J){_n6=J}function vm1(){return _n6}function JD(J){return{systemPrompt:J.systemPrompt,userContext:J.userContext,systemContext:J.systemContext,toolUseContext:J.toolUseContext,forkContextMessages:J.messages}}function Pl7(J,Q){if(Q.length===0)return J;return()=>{let X=J();return{...X,toolPermissionContext:{...X.toolPermissionContext,alwaysAllowRules:{...X.toolPermissionContext.alwaysAllowRules,command:[...new Set([...X.toolPermissionContext.alwaysAllowRules.command||[],...Q])]}}}}}async function bn0(J,Q,X){let Y=(await J.getPromptForCommand(Q,X)).map((B)=>B.type==="text"?B.text:"").join(`
|
|
3493
3493
|
`),q=vT(J.allowedTools??[]),K=Pl7(X.getAppState,q),G=J.agent??"general-purpose",z=X.options.agentDefinitions.activeAgents,W=z.find((B)=>B.agentType===G)??z.find((B)=>B.agentType==="general-purpose")??z[0];if(!W)throw Error("No agent available for forked execution");let H=[$1({content:Y})];return{skillContent:Y,modifiedGetAppState:K,baseAgent:W,promptMessages:H}}function Pn0(J,Q="Execution completed"){let X=nB(J);if(!X)return Q;return R7(X.message.content,`
|
|
3494
3494
|
`)||Q}function qO0(J,Q){let X=Q?.abortController??(Q?.shareAbortController?J.abortController:uN(J.abortController)),Z=Q?.getAppState?Q.getAppState:Q?.shareAbortController?J.getAppState:()=>{let Y=J.getAppState();if(Y.toolPermissionContext.shouldAvoidPermissionPrompts)return Y;return{...Y,toolPermissionContext:{...Y.toolPermissionContext,shouldAvoidPermissionPrompts:!0}}};return{readFileState:bM(Q?.readFileState??J.readFileState),nestedMemoryAttachmentTriggers:new Set,loadedNestedMemoryPaths:new Set,dynamicSkillDirTriggers:new Set,discoveredSkillNames:new Set,toolDecisions:void 0,contentReplacementState:Q?.contentReplacementState??(J.contentReplacementState?a46(J.contentReplacementState):void 0),abortController:X,getAppState:Z,setAppState:Q?.shareSetAppState?J.setAppState:()=>{},setAppStateForTasks:J.setAppStateForTasks??J.setAppState,localDenialTracking:Q?.shareSetAppState?J.localDenialTracking:Fn6(),setInProgressToolUseIDs:()=>{},setResponseLength:Q?.shareSetResponseLength?J.setResponseLength:()=>{},pushApiMetricsEntry:Q?.shareSetResponseLength?J.pushApiMetricsEntry:void 0,updateFileHistoryState:()=>{},updateAttributionState:J.updateAttributionState,addNotification:void 0,setToolJSX:void 0,setStreamMode:void 0,setSDKStatus:void 0,openMessageSelector:void 0,options:Q?.options??J.options,messages:Q?.messages??J.messages,agentId:Q?.agentId??fM(),agentType:Q?.agentType,queryTracking:{chainId:bl7(),depth:(J.queryTracking?.depth??-1)+1},fileReadingLimits:J.fileReadingLimits,userModified:J.userModified,criticalSystemReminder_EXPERIMENTAL:Q?.criticalSystemReminder_EXPERIMENTAL,requireCanUseTool:Q?.requireCanUseTool}}async function C2({promptMessages:J,cacheSafeParams:Q,canUseTool:X,querySource:Z,forkLabel:Y,overrides:q,maxOutputTokens:K,maxTurns:G,onMessage:z,skipTranscript:W,skipCacheWrite:H}){let B=Date.now(),U=[],F={...v2},{systemPrompt:_,userContext:O,systemContext:L,toolUseContext:N,forkContextMessages:A}=Q,R=qO0(N,q),D=[...A,...J],$=W?void 0:fM(Y),y=null;if($)await Cj(D,$).catch((E)=>b(`Forked agent [${Y}] failed to record initial transcript: ${E}`)),y=D.length>0?D[D.length-1].uuid:null;try{for await(let E of eN({messages:D,systemPrompt:_,userContext:O,systemContext:L,canUseTool:X,toolUseContext:R,querySource:Z,maxOutputTokensOverride:K,maxTurns:G,skipCacheWrite:H})){if(E.type==="stream_event"){if("event"in E&&E.event?.type==="message_delta"&&E.event.usage){let S=rh({...v2},E.event.usage);F=da0(F,S)}continue}if(E.type==="stream_request_start")continue;b(`Forked agent [${Y}] received message: type=${E.type}`),U.push(E),z?.(E);let C=E;if($&&(C.type==="assistant"||C.type==="user"||C.type==="progress")){if(await Cj([C],$,y).catch((S)=>b(`Forked agent [${Y}] failed to record transcript: ${S}`)),C.type!=="progress")y=C.uuid}}}finally{R.readFileState.clear(),D.length=0}b(`Forked agent [${Y}] finished: ${U.length} messages, types=[${U.map((E)=>E.type).join(", ")}], totalUsage: input=${F.input_tokens} output=${F.output_tokens} cacheRead=${F.cache_read_input_tokens} cacheCreate=${F.cache_creation_input_tokens}`);let v=Date.now()-B;return El7({forkLabel:Y,querySource:Z,durationMs:v,messageCount:U.length,totalUsage:F,queryTracking:N.queryTracking}),{messages:U,totalUsage:F}}function El7({forkLabel:J,querySource:Q,durationMs:X,messageCount:Z,totalUsage:Y,queryTracking:q}){let K=Y.input_tokens+Y.cache_creation_input_tokens+Y.cache_read_input_tokens,G=K>0?Y.cache_read_input_tokens/K:0;l("jarvis_api_error",{forkLabel:J,querySource:Q,durationMs:X,messageCount:Z,inputTokens:Y.input_tokens,outputTokens:Y.output_tokens,cacheReadInputTokens:Y.cache_read_input_tokens,cacheCreationInputTokens:Y.cache_creation_input_tokens,serviceTier:Y.service_tier,cacheCreationEphemeral1hTokens:Y.cache_creation.ephemeral_1h_input_tokens,cacheCreationEphemeral5mTokens:Y.cache_creation.ephemeral_5m_input_tokens,cacheHitRate:G,...q?{queryChainId:q.chainId,queryDepth:q.depth}:{}})}var _n6=null;var G_=I(()=>{$l();D1();wq();FL0();nq();Z1();I2();M8();Cm1();JW();gJ();CB();SM()});function vl7(J,Q){let X=Date.now()/1000,Z=J-Q,Y=X-Z;return Math.max(0,Math.min(1,Y/Q))}function On6(){return fm1}function Ln6(J){let Q={};for(let[X,Z]of[["five_hour","5h"],["seven_day","7d"]]){let Y=J.get(`anthropic-ratelimit-unified-${Z}-utilization`),q=J.get(`anthropic-ratelimit-unified-${Z}-reset`);if(Y!==null&&q!==null)Q[X]={utilization:Number(Y),resets_at:Number(q)}}return Q}function Vn6(J){II=J,ah.forEach((X)=>X(J));let Q=Math.round((J.resetsAt?J.resetsAt-Date.now()/1000:0)/3600);l("jarvis_api_error",{status:J.status,unifiedRateLimitFallbackAvailable:J.unifiedRateLimitFallbackAvailable,hoursTillReset:Q})}async function fl7(){let J=jB(),Q=await tk({maxRetries:0,model:J,source:"quota_check"}),X=[{role:"user",content:"quota"}],Z=k$(J);return Q.beta.messages.create({model:J,max_tokens:1,messages:X,metadata:N90(),...Z.length>0?{betas:Z}:{}}).asResponse()}async function Nn6(){if(zB())return;if(x6())return;try{let J=await fl7();Sm1(J.headers)}catch(J){if(J instanceof d6)la0(J)}}function Sl7(J,Q){for(let[X,Z]of Object.entries(Cl7)){let Y=J.get(`anthropic-ratelimit-unified-${X}-surpassed-threshold`);if(Y!==null){let q=J.get(`anthropic-ratelimit-unified-${X}-utilization`),K=J.get(`anthropic-ratelimit-unified-${X}-reset`),G=q?Number(q):void 0;return{status:"allowed_warning",resetsAt:K?Number(K):void 0,rateLimitType:Z,utilization:G,unifiedRateLimitFallbackAvailable:Q,isUsingOverage:!1,surpassedThreshold:Number(Y)}}}return null}function xl7(J,Q,X){let{rateLimitType:Z,claimAbbrev:Y,windowSeconds:q,thresholds:K}=Q,G=J.get(`anthropic-ratelimit-unified-${Y}-utilization`),z=J.get(`anthropic-ratelimit-unified-${Y}-reset`);if(G===null||z===null)return null;let W=Number(G),H=Number(z),B=vl7(H,q);if(!K.some((F)=>W>=F.utilization&&B<=F.timePct))return null;return{status:"allowed_warning",resetsAt:H,rateLimitType:Z,utilization:W,unifiedRateLimitFallbackAvailable:X,isUsingOverage:!1}}function kl7(J,Q){let X=Sl7(J,Q);if(X)return X;for(let Z of Tl7){let Y=xl7(J,Z,Q);if(Y)return Y}return null}function wn6(J){let Q=J.get("anthropic-ratelimit-unified-status")||"allowed",X=J.get("anthropic-ratelimit-unified-reset"),Z=X?Number(X):void 0,Y=J.get("anthropic-ratelimit-unified-fallback")==="available",q=J.get("anthropic-ratelimit-unified-representative-claim"),K=J.get("anthropic-ratelimit-unified-overage-status"),G=J.get("anthropic-ratelimit-unified-overage-reset"),z=G?Number(G):void 0,W=J.get("anthropic-ratelimit-unified-overage-disabled-reason"),H=Q==="rejected"&&(K==="allowed"||K==="allowed_warning"),B=Q;if(Q==="allowed"||Q==="allowed_warning"){let U=kl7(J,Y);if(U)return U;B="allowed"}return{status:B,resetsAt:Z,unifiedRateLimitFallbackAvailable:Y,...q&&{rateLimitType:q},...K&&{overageStatus:K},...z&&{overageResetsAt:z},...W&&{overageDisabledReason:W},isUsingOverage:H}}function An6(J){let Q=J.get("anthropic-ratelimit-unified-overage-disabled-reason")??null;if(L1().cachedExtraUsageDisabledReason!==Q)q8((Z)=>({...Z,cachedExtraUsageDisabledReason:Q}))}function Sm1(J){fm1=Ln6(J);let Q=wn6(J);if(An6(J),!Sj(II,Q))Vn6(Q)}function la0(J){if(J.status!==429)return;try{let Q={...II};if(J.headers)fm1=Ln6(J.headers),Q=wn6(J.headers),An6(J.headers);if(Q.status="rejected",!Sj(II,Q))Vn6(Q)}catch(Q){H0(Q)}}var Tl7,Cl7,II,fm1,ah;var fn=I(()=>{xV();dU0();N1();Q2();m8();M1();CJ();D1();wq();jd0();Tl7=[{rateLimitType:"five_hour",claimAbbrev:"5h",windowSeconds:18000,thresholds:[{utilization:0.9,timePct:0.72}]},{rateLimitType:"seven_day",claimAbbrev:"7d",windowSeconds:604800,thresholds:[{utilization:0.75,timePct:0.6},{utilization:0.5,timePct:0.35},{utilization:0.25,timePct:0.15}]}],Cl7={"5h":"five_hour","7d":"seven_day",overage:"overage"};II={status:"allowed",unifiedRateLimitFallbackAvailable:!1,isUsingOverage:!1},fm1={};ah=new Set});function ia0(){return"user_intent"}function na0(){if(!Y8("jarvis_api_error",!1))return l("jarvis_api_error",{enabled:!1,source:"growthbook"}),!1;if(x6())return l("jarvis_api_error",{enabled:!1,source:"non_interactive"}),!1;if(p6()&&UZ())return l("jarvis_api_error",{enabled:!1,source:"swarm_teammate"}),!1;let J=h6()?.promptSuggestionEnabled!==!1;return l("jarvis_api_error",{enabled:J,source:"setting"}),J}function Mn6(){if(xm1)xm1.abort(),xm1=null}function km1(J){if(!J.promptSuggestionEnabled)return"disabled";if(J.pendingWorkerRequest||J.pendingSandboxRequest)return"pending_permission";if(J.elicitation.queue.length>0)return"elicitation_active";if(J.toolPermissionContext.mode==="plan")return"plan_mode";if(process.env.USER_TYPE==="external"&&II.status!=="allowed")return"rate_limit";return null}async function Dn6(J,Q,X,Z,Y){if(J.signal.aborted)return XU("aborted",void 0,void 0,Y),null;if(x8(Q,(F)=>F.type==="assistant")<2)return XU("early_conversation",void 0,void 0,Y),null;let K=nB(Q);if(K?.isApiErrorMessage)return XU("last_response_error",void 0,void 0,Y),null;let G=ul7(K);if(G)return XU(G,void 0,void 0,Y),null;let z=X(),W=km1(z);if(W)return XU(W,void 0,void 0,Y),null;let H=ia0(),{suggestion:B,generationRequestId:U}=await hm1(J,H,Z);if(J.signal.aborted)return XU("aborted",void 0,void 0,Y),null;if(!B)return XU("empty",void 0,H,Y),null;if(um1(B,H,Y))return null;return{suggestion:B,promptId:H,generationRequestId:U}}function ul7(J){if(!J)return null;let Q=J.message.usage,X=Q.input_tokens??0,Z=Q.cache_creation_input_tokens??0,Y=Q.output_tokens??0;return X+Z+Y>hl7?"cache_cold":null}async function hm1(J,Q,X){let Z=gl7[Q],Y=async()=>({behavior:"deny",message:"No tools needed for suggestion",decisionReason:{type:"other",reason:"suggestion only"}}),q=await C2({promptMessages:[$1({content:Z})],cacheSafeParams:X,canUseTool:Y,querySource:"prompt_suggestion",forkLabel:"prompt_suggestion",overrides:{abortController:J},skipTranscript:!0,skipCacheWrite:!0}),K=q.messages.find((z)=>z.type==="assistant"),G=K?.type==="assistant"?K.requestId??null:null;for(let z of q.messages){if(z.type!=="assistant")continue;let W=z.message.content.find((H)=>H.type==="text");if(W?.type==="text"){let H=W.text.trim();if(H)return{suggestion:H,generationRequestId:G}}}return{suggestion:null,generationRequestId:G}}function um1(J,Q,X){if(!J)return XU("empty",void 0,Q,X),!0;let Z=J.toLowerCase(),Y=J.trim().split(/\s+/).length,q=[["done",()=>Z==="done"],["meta_text",()=>Z==="nothing found"||Z==="nothing found."||Z.startsWith("nothing to suggest")||Z.startsWith("no suggestion")||/\bsilence is\b|\bstay(s|ing)? silent\b/.test(Z)||/^\W*silence\W*$/.test(Z)],["meta_wrapped",()=>/^\(.*\)$|^\[.*\]$/.test(J)],["error_message",()=>Z.startsWith("api error:")||Z.startsWith("prompt is too long")||Z.startsWith("request timed out")||Z.startsWith("invalid api key")||Z.startsWith("image was too large")],["prefixed_label",()=>/^\w+:\s/.test(J)],["too_few_words",()=>{if(Y>=2)return!1;if(J.startsWith("/"))return!1;return!new Set(["yes","yeah","yep","yea","yup","sure","ok","okay","push","commit","deploy","stop","continue","check","exit","quit","no"]).has(Z)}],["too_many_words",()=>Y>12],["too_long",()=>J.length>=100],["multiple_sentences",()=>/[.!?]\s+[A-Z]/.test(J)],["has_formatting",()=>/[\n*]|\*\*/.test(J)],["evaluative",()=>/thanks|thank you|looks good|sounds good|that works|that worked|that's all|nice|great|perfect|makes sense|awesome|excellent/.test(Z)],["glock_voice",()=>/^(let me|i'll|i've|i'm|i can|i would|i think|i notice|here's|here is|here are|that's|this is|this will|you can|you should|you could|sure,|of course|certainly)/i.test(J)]];for(let[K,G]of q)if(G())return XU(K,J,Q,X),!0;return!1}function $n6(J,Q,X,Z,Y){let q=Math.round(Q.length/(J.length||1)*100)/100,K=Q===J,G=Math.max(0,Date.now()-X);l("jarvis_api_error",{source:"sdk",outcome:K?"accepted":"ignored",prompt_id:Z,...Y&&{generationRequestId:Y},...K&&{timeToAcceptMs:G},...!K&&{timeToIgnoreMs:G},similarity:q,...process.env.USER_TYPE==="ant"&&{suggestion:J,userInput:Q}})}function XU(J,Q,X,Z){let Y=X??ia0();l("jarvis_api_error",{...Z&&{source:Z},outcome:"suppressed",reason:J,prompt_id:Y,...process.env.USER_TYPE==="ant"&&Q&&{suggestion:Q}})}var xm1=null,hl7=1e4,Rn6=`[SUGGESTION MODE: Suggest what the user might naturally type next into Glock.]
|
|
3495
3495
|
|
|
@@ -3605,7 +3605,7 @@ chars = "\\u001B\\r"
|
|
|
3605
3605
|
`)).filter((S)=>S.trim()),C=E.filter((S)=>Ao0(S));if(L&&C.length>0){let S=/\/TemporaryItems\/.*screencaptureui.*\/Screenshot/i.test(v);return Promise.all(C.map((k)=>ur6(k))).then((k)=>{let h=k.filter((u)=>u!==null);if(h.length>0){for(let x of h){let m=Mr7(x.path);L(x.base64,x.mediaType,m,x.dimensions,x.path)}let u=E.filter((x)=>!Ao0(x));if(u.length>0&&N)N(u.join(`
|
|
3606
3606
|
`));A(!1)}else if(S&&D)R();else{if(N)N(v);A(!1)}}),{chunks:[],timeoutId:null}}if(D&&L&&v.length===0)return R(),{chunks:[],timeoutId:null};if(N)N(v);return A(!1),{chunks:[],timeoutId:null}})},$r7,Y,X,J,K,B,W,z)},[B,W,X,J]);return{wrappedOnInput:(_,O,L)=>{let N=L.keypress.isPasted;if(N)K(!0);let A=_.split(/ (?=\/|[A-Za-z]:\\)/).flatMap((D)=>D.split(`
|
|
3607
3607
|
`)).some((D)=>Ao0(D.trim()));if(N&&_.length===0&&W&&X){B(),K(!1);return}if(J&&(_.length>No0||z.current||A||N)){z.current=!0,Y(({chunks:D,timeoutId:$})=>{return{chunks:[...D,_],timeoutId:U($)}});return}if(Q(_,O),_.length>10)K(!1)},pasteState:Z,isPasting:q}}var JC,Dr7=50,$r7=100;var Da6=I(()=>{M1();dO();hQ0();k9();JC=T(J1(),1)});function rQ0({line:J,column:Q,active:X}){let Z=QC.useContext(Sx0),Y=QC.useRef(null),q=QC.useCallback((K)=>{Y.current=K},[]);return QC.useLayoutEffect(()=>{let K=Y.current;if(X&&K)Z({relativeX:Q,relativeY:J,node:K});else Z(null,K)}),QC.useLayoutEffect(()=>{return()=>{Z(null,Y.current)}},[Z]),q}var QC;var po0=I(()=>{T$1();QC=T(J1(),1)});function ja6(J,Q){if(Q.length===0)return[{text:J,start:0}];let X=[...Q].sort((q,K)=>{if(q.start!==K.start)return q.start-K.start;return K.priority-q.priority}),Z=[],Y=[];for(let q of X){if(q.start===q.end)continue;if(!Y.some((G)=>q.start>=G.start&&q.start<G.end||q.end>G.start&&q.end<=G.end||q.start<=G.start&&q.end>=G.end))Z.push(q),Y.push({start:q.start,end:q.end})}return new Ia6(J).segment(Z)}class Ia6{text;tokens;visiblePos=0;stringPos=0;tokenIdx=0;charIdx=0;codes=[];constructor(J){this.text=J;this.tokens=w10(J)}segment(J){let Q=[];for(let Z of J){let Y=this.segmentTo(Z.start);if(Y)Q.push(Y);let q=this.segmentTo(Z.end);if(q)q.highlight=Z,Q.push(q)}let X=this.segmentTo(1/0);if(X)Q.push(X);return Q}segmentTo(J){if(this.tokenIdx>=this.tokens.length||J<=this.visiblePos)return null;let Q=this.visiblePos;while(this.tokenIdx<this.tokens.length){let z=this.tokens[this.tokenIdx];if(z.type!=="ansi")break;this.codes.push(z),this.stringPos+=z.code.length,this.tokenIdx++}let X=this.stringPos,Z=[...this.codes];while(this.visiblePos<J&&this.tokenIdx<this.tokens.length){let z=this.tokens[this.tokenIdx];if(z.type==="ansi")this.codes.push(z),this.stringPos+=z.code.length,this.tokenIdx++;else{let W=J-this.visiblePos,H=z.value.length-this.charIdx,B=Math.min(W,H);if(this.stringPos+=B,this.visiblePos+=B,this.charIdx+=B,this.charIdx>=z.value.length)this.tokenIdx++,this.charIdx=0}}if(this.stringPos===X)return null;let Y=$a6(Z),q=$a6(this.codes);this.codes=q;let K=pO(Y),G=pO(Bd(q));return{text:K+this.text.substring(X,this.stringPos)+G,start:Q}}}function $a6(J){return Xx(J).filter((Q)=>Q.code!==Q.endCode)}var ya6=I(()=>{A10()});function Pa6(J){let Q=ba6.c(23),{text:X,highlights:Z}=J,Y;if(Q[0]!==Z||Q[1]!==X){let R=ja6(X,Z);Y=[[]];let D=0;for(let $ of R){let y=$.text.split(`
|
|
3608
|
-
`);for(let v=0;v<y.length;v++){if(v>0)Y.push([]),D=D+1;let E=y[v];if(E.length>0)Y[Y.length-1].push({text:E,highlight:$.highlight,start:D});D=D+E.length}}Q[0]=Z,Q[1]=X,Q[2]=Y}else Y=Q[2];let q;if(Q[3]!==Z)q=Z.some(jr7),Q[3]=Z,Q[4]=q;else q=Q[4];let K=q,G=0,z=1;if(K){let R=1/0,D=-1/0;if(Q[5]!==D||Q[6]!==Z||Q[7]!==R){for(let $ of Z)if($.shimmerColor)R=Math.min(R,$.start),D=Math.max(D,$.end);Q[5]=D,Q[6]=Z,Q[7]=R,Q[8]=R,Q[9]=D}else R=Q[8],D=Q[9];G=R-10,z=D-R+20}let W;if(Q[10]!==z||Q[11]!==K||Q[12]!==Y||Q[13]!==G)W={lines:Y,hasShimmer:K,sweepStart:G,cycleLength:z},Q[10]=z,Q[11]=K,Q[12]=Y,Q[13]=G,Q[14]=W;else W=Q[14];let{lines:H,hasShimmer:B,sweepStart:U,cycleLength:F}=W,[_,O]=H2(B?50:null),L=B?U+Math.floor(O/50)%F:-100,N;if(Q[15]!==L||Q[16]!==H){let R;if(Q[18]!==L)R=(D,$)=>Zu.jsxDEV(f,{children:D.length===0?Zu.jsxDEV(M,{children:" "},void 0,!1,void 0,this):D.map((y,v)=>{if(y.highlight?.shimmerColor&&y.highlight.color)return Zu.jsxDEV(M,{children:y.text.split("").map((E,C)=>Zu.jsxDEV(vQ0,{char:E,index:y.start+C,glimmerIndex:L,messageColor:y.highlight.color,shimmerColor:y.highlight.shimmerColor},C,!1,void 0,this))},v,!1,void 0,this);return Zu.jsxDEV(M,{color:y.highlight?.color,dimColor:y.highlight?.dimColor,inverse:y.highlight?.inverse,children:Zu.jsxDEV(C9,{children:y.text},void 0,!1,void 0,this)},v,!1,void 0,this)})},$,!1,void 0,this),Q[18]=L,Q[19]=R;else R=Q[19];N=H.map(R),Q[15]=L,Q[16]=H,Q[17]=N}else N=Q[17];let A;if(Q[20]!==_||Q[21]!==N)A=Zu.jsxDEV(f,{ref:_,flexDirection:"column",children:N},void 0,!1,void 0,this),Q[20]=_,Q[21]=N,Q[22]=A;else A=Q[22];return A}function jr7(J){return J.shimmerColor}var ba6,Zu;var Ea6=I(()=>{a0();ya6();IL0();ba6=T(e0(),1),Zu=T(e(),1)});function co0(J){let Q=Ta6.c(14),{inputState:X,children:Z,terminalFocus:Y,invert:q,hidePlaceholderText:K,...G}=J,{onInput:z,renderedValue:W,cursorLine:H,cursorColumn:B}=X,U=Boolean(G.focus&&G.showCursor&&Y),F;if(Q[0]!==B||Q[1]!==H||Q[2]!==U)F={line:H,column:B,active:U},Q[0]=B,Q[1]=H,Q[2]=U,Q[3]=F;else F=Q[3];let _=rQ0(F),{wrappedOnInput:O,isPasting:L}=Ma6({onPaste:G.onPaste,onInput:(J0,n)=>{if(N&&n.return)return;z(J0,n)},onImagePaste:G.onImagePaste}),N=L,{onIsPastingChange:A}=G;Ca6.default.useEffect(()=>{if(A)A(N)},[N,A]);let{showPlaceholder:R,renderedPlaceholder:D}=Aa6({placeholder:G.placeholder,value:G.value,showCursor:G.showCursor,focus:G.focus,terminalFocus:Y,invert:q,hidePlaceholderText:K});SJ(O,{isActive:G.focus});let $=G.value&&G.value.trim().indexOf(" ")===-1||G.value&&G.value.endsWith(" "),y=Boolean(G.argumentHint&&G.value&&$&&G.value.startsWith("/")),v=G.showCursor&&G.highlights?G.highlights.filter((J0)=>J0.dimColor||G.cursorOffset<J0.start||G.cursorOffset>=J0.end):G.highlights,{viewportCharOffset:E,viewportCharEnd:C}=X,S=v&&E>0?v.filter((J0)=>J0.end>E&&J0.start<C).map((J0)=>({...J0,start:Math.max(0,J0.start-E),end:J0.end-E})):v;if(S&&S.length>0)return XC.jsxDEV(f,{ref:_,children:[XC.jsxDEV(Pa6,{text:W,highlights:S},void 0,!1,void 0,this),y&&XC.jsxDEV(M,{dimColor:!0,children:[G.value?.endsWith(" ")?"":" ",G.argumentHint]},void 0,!0,void 0,this),Z]},void 0,!0,void 0,this);let h=f,u=M,x="truncate-end",m=R&&G.placeholderElement?G.placeholderElement:R&&D?XC.jsxDEV(C9,{children:D},void 0,!1,void 0,this):XC.jsxDEV(C9,{children:W},void 0,!1,void 0,this),p=y&&XC.jsxDEV(M,{dimColor:!0,children:[G.value?.endsWith(" ")?"":" ",G.argumentHint]},void 0,!0,void 0,this),c;if(Q[4]!==u||Q[5]!==Z||Q[6]!==G||Q[7]!==m||Q[8]!==p)c=XC.jsxDEV(u,{wrap:x,dimColor:G.dimColor,children:[m,p,Z]},void 0,!0,void 0,this),Q[4]=u,Q[5]=Z,Q[6]=G,Q[7]=m,Q[8]=p,Q[9]=c;else c=Q[9];let r;if(Q[10]!==h||Q[11]!==_||Q[12]!==c)r=XC.jsxDEV(h,{ref:_,children:c},void 0,!1,void 0,this),Q[10]=h,Q[11]=_,Q[12]=c,Q[13]=r;else r=Q[13];return r}var Ta6,Ca6,XC;var cp1=I(()=>{Ra6();Da6();po0();a0();Ea6();Ta6=T(e0(),1),Ca6=T(J1(),1),XC=T(e(),1)});function sX(J){let[Q]=j6(),X=X5(),Z=do0.useMemo(()=>W1(process.env.GLOCK_ACCESSIBILITY),[]),q=CK().prefersReducedMotion??!1,K="idle",G=!1,z=[],W=do0.useRef(Array(Ir7).fill(0)),H=!1,[B,U]=[()=>{},0];Mo0(X,!!J.onImagePaste);let F=X&&!Z,_;if(!F)_=(L)=>L;else _=_1.inverse;let O=mo0({value:J.value,onChange:J.onChange,onSubmit:J.onSubmit,onExit:J.onExit,onExitMessage:J.onExitMessage,onHistoryReset:J.onHistoryReset,onHistoryUp:J.onHistoryUp,onHistoryDown:J.onHistoryDown,onClearInput:J.onClearInput,focus:J.focus,mask:J.mask,multiline:J.multiline,cursorChar:J.showCursor?" ":"",highlightPastedText:J.highlightPastedText,invert:_,themeText:G6("text",Q),columns:J.columns,maxVisibleLines:J.maxVisibleLines,onImagePaste:J.onImagePaste,disableCursorMovementForUpDownKeys:J.disableCursorMovementForUpDownKeys,disableEscapeDoublePress:J.disableEscapeDoublePress,externalOffset:J.cursorOffset,onOffsetChange:J.onChangeCursorOffset,inputFilter:J.inputFilter,inlineGhostText:J.inlineGhostText,dim:_1.dim});return dp1.jsxDEV(f,{ref:B,children:dp1.jsxDEV(co0,{inputState:O,terminalFocus:X,highlights:J.highlights,invert:_,hidePlaceholderText:!1,...J},void 0,!1,void 0,this)},void 0,!1,void 0,this)}var do0,dp1,Ir7=1;var EH=I(()=>{k7();Ro0();Ap1();ww();pp1();a0();t1();cp1();Ju();do0=T(J1(),1),dp1=T(e(),1)});function aQ0(J){let Q=fa6.c(32),{isFocused:X,isSelected:Z,children:Y,description:q,showScrollDown:K,showScrollUp:G,styled:z,disabled:W,declareCursor:H}=J,B=Z===void 0?!1:Z,U=z===void 0?!0:z,F=W===void 0?!1:W,_;if(Q[0]!==F||Q[1]!==X||Q[2]!==K||Q[3]!==G)_=function(){if(F)return mw.jsxDEV(M,{children:" "},void 0,!1,void 0,this);if(X)return mw.jsxDEV(M,{color:"suggestion",children:s0.pointer},void 0,!1,void 0,this);if(K)return mw.jsxDEV(M,{dimColor:!0,children:s0.arrowDown},void 0,!1,void 0,this);if(G)return mw.jsxDEV(M,{dimColor:!0,children:s0.arrowUp},void 0,!1,void 0,this);return mw.jsxDEV(M,{children:" "},void 0,!1,void 0,this)},Q[0]=F,Q[1]=X,Q[2]=K,Q[3]=G,Q[4]=_;else _=Q[4];let O=_,L;if(Q[5]!==F||Q[6]!==X||Q[7]!==B||Q[8]!==U)L=function(){if(F)return"inactive";if(!U)return;if(B)return"success";if(X)return"suggestion"}(),Q[5]=F,Q[6]=X,Q[7]=B,Q[8]=U,Q[9]=L;else L=Q[9];let N=L,A=X&&!F&&H!==!1,R;if(Q[10]!==A)R={line:0,column:0,active:A},Q[10]=A,Q[11]=R;else R=Q[11];let D=rQ0(R),$;if(Q[12]!==O)$=O(),Q[12]=O,Q[13]=$;else $=Q[13];let y;if(Q[14]!==Y||Q[15]!==F||Q[16]!==U||Q[17]!==N)y=U?mw.jsxDEV(M,{color:N,dimColor:F,children:Y},void 0,!1,void 0,this):Y,Q[14]=Y,Q[15]=F,Q[16]=U,Q[17]=N,Q[18]=y;else y=Q[18];let v;if(Q[19]!==F||Q[20]!==B)v=B&&!F&&mw.jsxDEV(M,{color:"success",children:s0.tick},void 0,!1,void 0,this),Q[19]=F,Q[20]=B,Q[21]=v;else v=Q[21];let E;if(Q[22]!==v||Q[23]!==$||Q[24]!==y)E=mw.jsxDEV(f,{flexDirection:"row",gap:1,children:[$,y,v]},void 0,!0,void 0,this),Q[22]=v,Q[23]=$,Q[24]=y,Q[25]=E;else E=Q[25];let C;if(Q[26]!==q)C=q&&mw.jsxDEV(f,{paddingLeft:2,children:mw.jsxDEV(M,{color:"inactive",children:q},void 0,!1,void 0,this)},void 0,!1,void 0,this),Q[26]=q,Q[27]=C;else C=Q[27];let S;if(Q[28]!==D||Q[29]!==E||Q[30]!==C)S=mw.jsxDEV(f,{ref:D,flexDirection:"column",children:[E,C]},void 0,!0,void 0,this),Q[28]=D,Q[29]=E,Q[30]=C,Q[31]=S;else S=Q[31];return S}var fa6,mw;var lo0=I(()=>{r6();po0();a0();fa6=T(e0(),1),mw=T(e(),1)});function Yu(J){let Q=Sa6.c(8),{isFocused:X,isSelected:Z,children:Y,description:q,shouldShowDownArrow:K,shouldShowUpArrow:G,declareCursor:z}=J,W;if(Q[0]!==Y||Q[1]!==z||Q[2]!==q||Q[3]!==X||Q[4]!==Z||Q[5]!==K||Q[6]!==G)W=xa6.jsxDEV(aQ0,{isFocused:X,isSelected:Z,description:q,showScrollDown:K,showScrollUp:G,styled:!1,declareCursor:z,children:Y},void 0,!1,void 0,this),Q[0]=Y,Q[1]=z,Q[2]=q,Q[3]=X,Q[4]=Z,Q[5]=K,Q[6]=G,Q[7]=W;else W=Q[7];return W}var Sa6,xa6;var io0=I(()=>{lo0();Sa6=T(e0(),1),xa6=T(e(),1)});function oQ0(J){let Q=ka6.c(100),{option:X,isFocused:Z,isSelected:Y,shouldShowDownArrow:q,shouldShowUpArrow:K,maxIndexWidth:G,index:z,inputValue:W,onInputChange:H,onSubmit:B,onExit:U,layout:F,children:_,showLabel:O,onOpenEditor:L,resetCursorOnUpdate:N,onImagePaste:A,pastedContents:R,onRemoveImage:D,imagesSelected:$,selectedImageIndex:y,onImagesSelectedChange:v,onSelectedImageIndexChange:E}=J,C=O===void 0?!1:O,S=N===void 0?!1:N,k=y===void 0?0:y,h;if(Q[0]!==R)h=R?Object.values(R).filter(yr7):[],Q[0]=R,Q[1]=h;else h=Q[1];let u=h,x=C||X.showLabelWithValue===!0,[m,p]=gn.useState(W.length),c=gn.useRef(!1),r;if(Q[2]!==W.length||Q[3]!==Z||Q[4]!==S)r=()=>{if(S&&Z)if(c.current)c.current=!1;else p(W.length)},Q[2]=W.length,Q[3]=Z,Q[4]=S,Q[5]=r;else r=Q[5];let J0;if(Q[6]!==W||Q[7]!==Z||Q[8]!==S)J0=[S,Z,W],Q[6]=W,Q[7]=Z,Q[8]=S,Q[9]=J0;else J0=Q[9];gn.useEffect(r,J0);let n;if(Q[10]!==W||Q[11]!==H||Q[12]!==L)n=()=>{L?.(W,H)},Q[10]=W,Q[11]=H,Q[12]=L,Q[13]=n;else n=Q[13];let s=Z&&!!L,X0;if(Q[14]!==s)X0={context:"Chat",isActive:s},Q[14]=s,Q[15]=X0;else X0=Q[15];J8("chat:externalEditor",n,X0);let Y0;if(Q[16]!==A)Y0=()=>{if(!A)return;kQ0().then((c0)=>{if(c0)A(c0.base64,c0.mediaType,void 0,c0.dimensions)})},Q[16]=A,Q[17]=Y0;else Y0=Q[17];let G0=Z&&!!A,j0;if(Q[18]!==G0)j0={context:"Chat",isActive:G0},Q[18]=G0,Q[19]=j0;else j0=Q[19];J8("chat:imagePaste",Y0,j0);let W0;if(Q[20]!==u||Q[21]!==D)W0=()=>{if(u.length>0&&D)D(u.at(-1).id)},Q[20]=u,Q[21]=D,Q[22]=W0;else W0=Q[22];let y0=Z&&!$&&W===""&&u.length>0&&!!D,V0;if(Q[23]!==y0)V0={context:"Attachments",isActive:y0},Q[23]=y0,Q[24]=V0;else V0=Q[24];J8("attachments:remove",W0,V0);let Z0,t;if(Q[25]!==u.length||Q[26]!==E||Q[27]!==k)Z0=()=>{if(u.length>1)E?.((k+1)%u.length)},t=()=>{if(u.length>1)E?.((k-1+u.length)%u.length)},Q[25]=u.length,Q[26]=E,Q[27]=k,Q[28]=Z0,Q[29]=t;else Z0=Q[28],t=Q[29];let q0;if(Q[30]!==u||Q[31]!==v||Q[32]!==D||Q[33]!==E||Q[34]!==k)q0=()=>{let c0=u[k];if(c0&&D)if(D(c0.id),u.length<=1)v?.(!1);else E?.(Math.min(k,u.length-2))},Q[30]=u,Q[31]=v,Q[32]=D,Q[33]=E,Q[34]=k,Q[35]=q0;else q0=Q[35];let Q0;if(Q[36]!==v)Q0=()=>{v?.(!1)},Q[36]=v,Q[37]=Q0;else Q0=Q[37];let a;if(Q[38]!==Z0||Q[39]!==t||Q[40]!==q0||Q[41]!==Q0)a={"attachments:next":Z0,"attachments:previous":t,"attachments:remove":q0,"attachments:exit":Q0},Q[38]=Z0,Q[39]=t,Q[40]=q0,Q[41]=Q0,Q[42]=a;else a=Q[42];let O0=Z&&!!$,D0;if(Q[43]!==O0)D0={context:"Attachments",isActive:O0},Q[43]=O0,Q[44]=D0;else D0=Q[44];C6(a,D0);let F0;if(Q[45]!==v)F0=(c0,t0)=>{if(t0.upArrow)v?.(!1)},Q[45]=v,Q[46]=F0;else F0=Q[46];let I0=Z&&!!$,U0;if(Q[47]!==I0)U0={isActive:I0},Q[47]=I0,Q[48]=U0;else U0=Q[48];SJ(F0,U0);let P0,$0;if(Q[49]!==$||Q[50]!==Z||Q[51]!==v)P0=()=>{if(!Z&&$)v?.(!1)},$0=[Z,$,v],Q[49]=$,Q[50]=Z,Q[51]=v,Q[52]=P0,Q[53]=$0;else P0=Q[52],$0=Q[53];gn.useEffect(P0,$0);let w0=F==="expanded"?G+3:G+4,E0=F==="compact"?0:void 0,h0=`${z}.`,u0;if(Q[54]!==G||Q[55]!==h0)u0=h0.padEnd(G+2),Q[54]=G,Q[55]=h0,Q[56]=u0;else u0=Q[56];let B0;if(Q[57]!==u0)B0=R4.jsxDEV(M,{dimColor:!0,children:u0},void 0,!1,void 0,this),Q[57]=u0,Q[58]=B0;else B0=Q[58];let _0;if(Q[59]!==m||Q[60]!==$||Q[61]!==W||Q[62]!==Z||Q[63]!==U||Q[64]!==A||Q[65]!==H||Q[66]!==B||Q[67]!==X||Q[68]!==x)_0=x?R4.jsxDEV(R4.Fragment,{children:[R4.jsxDEV(M,{color:Z?"suggestion":void 0,children:X.label},void 0,!1,void 0,this),Z?R4.jsxDEV(R4.Fragment,{children:[R4.jsxDEV(M,{color:"suggestion",children:X.labelValueSeparator??", "},void 0,!1,void 0,this),R4.jsxDEV(sX,{value:W,onChange:(c0)=>{c.current=!0,H(c0),X.onChange(c0)},onSubmit:B,onExit:U,placeholder:X.placeholder,focus:!$,showCursor:!0,multiline:!0,cursorOffset:m,onChangeCursorOffset:p,columns:80,onImagePaste:A,onPaste:(c0)=>{c.current=!0;let t0=W.slice(0,m),K1=W.slice(m),K0=t0+c0+K1;H(K0),X.onChange(K0),p(t0.length+c0.length)}},void 0,!1,void 0,this)]},void 0,!0,void 0,this):W&&R4.jsxDEV(M,{children:[X.labelValueSeparator??", ",W]},void 0,!0,void 0,this)]},void 0,!0,void 0,this):Z?R4.jsxDEV(sX,{value:W,onChange:(c0)=>{c.current=!0,H(c0),X.onChange(c0)},onSubmit:B,onExit:U,placeholder:X.placeholder||(typeof X.label==="string"?X.label:void 0),focus:!$,showCursor:!0,multiline:!0,cursorOffset:m,onChangeCursorOffset:p,columns:80,onImagePaste:A,onPaste:(c0)=>{c.current=!0;let t0=W.slice(0,m),K1=W.slice(m),K0=t0+c0+K1;H(K0),X.onChange(K0),p(t0.length+c0.length)}},void 0,!1,void 0,this):R4.jsxDEV(M,{color:W?void 0:"inactive",children:W||X.placeholder||X.label},void 0,!1,void 0,this),Q[59]=m,Q[60]=$,Q[61]=W,Q[62]=Z,Q[63]=U,Q[64]=A,Q[65]=H,Q[66]=B,Q[67]=X,Q[68]=x,Q[69]=_0;else _0=Q[69];let M0;if(Q[70]!==_||Q[71]!==E0||Q[72]!==B0||Q[73]!==_0)M0=R4.jsxDEV(f,{flexDirection:"row",flexShrink:E0,children:[B0,_,_0]},void 0,!0,void 0,this),Q[70]=_,Q[71]=E0,Q[72]=B0,Q[73]=_0,Q[74]=M0;else M0=Q[74];let b0;if(Q[75]!==Z||Q[76]!==Y||Q[77]!==q||Q[78]!==K||Q[79]!==M0)b0=R4.jsxDEV(Yu,{isFocused:Z,isSelected:Y,shouldShowDownArrow:q,shouldShowUpArrow:K,declareCursor:!1,children:M0},void 0,!1,void 0,this),Q[75]=Z,Q[76]=Y,Q[77]=q,Q[78]=K,Q[79]=M0,Q[80]=b0;else b0=Q[80];let L0;if(Q[81]!==w0||Q[82]!==Z||Q[83]!==Y||Q[84]!==X.description||Q[85]!==X.dimDescription)L0=X.description&&R4.jsxDEV(f,{paddingLeft:w0,children:R4.jsxDEV(M,{dimColor:X.dimDescription!==!1,color:Y?"success":Z?"suggestion":void 0,children:X.description},void 0,!1,void 0,this)},void 0,!1,void 0,this),Q[81]=w0,Q[82]=Z,Q[83]=Y,Q[84]=X.description,Q[85]=X.dimDescription,Q[86]=L0;else L0=Q[86];let T0;if(Q[87]!==w0||Q[88]!==u||Q[89]!==$||Q[90]!==Z||Q[91]!==k)T0=u.length>0&&R4.jsxDEV(f,{flexDirection:"row",gap:1,paddingLeft:w0,children:[u.map((c0,t0)=>R4.jsxDEV(mr6,{imageId:c0.id,isSelected:!!$&&t0===k},c0.id,!1,void 0,this)),R4.jsxDEV(f,{flexGrow:1,justifyContent:"flex-start",flexDirection:"row",children:R4.jsxDEV(M,{dimColor:!0,children:$?R4.jsxDEV(V8,{children:[u.length>1&&R4.jsxDEV(R4.Fragment,{children:[R4.jsxDEV(s1,{action:"attachments:next",context:"Attachments",fallback:"\u2192",description:"next"},void 0,!1,void 0,this),R4.jsxDEV(s1,{action:"attachments:previous",context:"Attachments",fallback:"\u2190",description:"prev"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),R4.jsxDEV(s1,{action:"attachments:remove",context:"Attachments",fallback:"backspace",description:"remove"},void 0,!1,void 0,this),R4.jsxDEV(s1,{action:"attachments:exit",context:"Attachments",fallback:"esc",description:"cancel"},void 0,!1,void 0,this)]},void 0,!0,void 0,this):Z?"(\u2193 to select)":null},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),Q[87]=w0,Q[88]=u,Q[89]=$,Q[90]=Z,Q[91]=k,Q[92]=T0;else T0=Q[92];let S0;if(Q[93]!==F)S0=F==="expanded"&&R4.jsxDEV(M,{children:" "},void 0,!1,void 0,this),Q[93]=F,Q[94]=S0;else S0=Q[94];let g0;if(Q[95]!==b0||Q[96]!==L0||Q[97]!==T0||Q[98]!==S0)g0=R4.jsxDEV(f,{flexDirection:"column",flexShrink:0,children:[b0,L0,T0,S0]},void 0,!0,void 0,this),Q[95]=b0,Q[96]=L0,Q[97]=T0,Q[98]=S0,Q[99]=g0;else g0=Q[99];return g0}function yr7(J){return J.type==="image"}var ka6,gn,R4;var lp1=I(()=>{a0();f6();hQ0();pr6();U7();R9();EH();io0();ka6=T(e0(),1),gn=T(J1(),1),R4=T(e(),1)});function WW(J,Q){let X=ha6.c(8),Z=Q===void 0?!0:Q,q=sQ0.useContext(B_0)?.setState,K,G;if(X[0]!==Z||X[1]!==J||X[2]!==q)K=()=>{if(!Z||!q)return;return q((H)=>{if(H.activeOverlays.has(J))return H;let B=new Set(H.activeOverlays);return B.add(J),{...H,activeOverlays:B}}),()=>{q((H)=>{if(!H.activeOverlays.has(J))return H;let B=new Set(H.activeOverlays);return B.delete(J),{...H,activeOverlays:B}})}},G=[J,Z,q],X[0]=Z,X[1]=J,X[2]=q,X[3]=K,X[4]=G;else K=X[3],G=X[4];sQ0.useEffect(K,G);let z,W;if(X[5]!==Z)z=()=>{if(!Z)return;return Pr7},W=[Z],X[5]=Z,X[6]=z,X[7]=W;else z=X[6],W=X[7];sQ0.useLayoutEffect(z,W)}function Pr7(){return O4.get(process.stdout)?.invalidatePrevFrame()}function ua6(){return O1(Er7)}function Er7(J){return J.activeOverlays.size>0}function tQ0(){return O1(Tr7)}function Tr7(J){for(let Q of J.activeOverlays)if(!br7.has(Q))return!0;return!1}var ha6,sQ0,br7;var F_=I(()=>{jF();W6();ha6=T(e0(),1),sQ0=T(J1(),1),br7=new Set(["autocomplete"])});var no0;var ga6=I(()=>{no0=class no0 extends Map{first;last;constructor(J){let Q=[],X,Z,Y,q=0;for(let K of J){let G={label:K.label,value:K.value,description:K.description,previous:Y,next:void 0,index:q};if(Y)Y.next=G;X||=G,Z=G,Q.push([K.value,G]),q++,Y=G}super(Q);this.first=X,this.last=Z}}});import{isDeepStrictEqual as Cr7}from"util";function ro0({visibleOptionCount:J=5,options:Q,initialFocusValue:X,onFocus:Z,focusValue:Y}){let[q,K]=Wz.useReducer(vr7,{visibleOptionCount:J,options:Q,initialFocusValue:Y||X},ma6),G=Wz.useRef(Z);G.current=Z;let[z,W]=Wz.useState(Q);if(Q!==z&&!Cr7(Q,z))K({type:"reset",state:ma6({visibleOptionCount:J,options:Q,initialFocusValue:Y??q.focusedValue??X,currentViewport:{visibleFromIndex:q.visibleFromIndex,visibleToIndex:q.visibleToIndex}})}),W(Q);let H=Wz.useCallback(()=>{K({type:"focus-next-option"})},[]),B=Wz.useCallback(()=>{K({type:"focus-previous-option"})},[]),U=Wz.useCallback(()=>{K({type:"focus-next-page"})},[]),F=Wz.useCallback(()=>{K({type:"focus-previous-page"})},[]),_=Wz.useCallback((R)=>{if(R!==void 0)K({type:"set-focus",value:R})},[]),O=Wz.useMemo(()=>{return Q.map((R,D)=>({...R,index:D})).slice(q.visibleFromIndex,q.visibleToIndex)},[Q,q.visibleFromIndex,q.visibleToIndex]),L=Wz.useMemo(()=>{if(q.focusedValue===void 0)return;if(Q.some((D)=>D.value===q.focusedValue))return q.focusedValue;return Q[0]?.value},[q.focusedValue,Q]),N=Wz.useMemo(()=>{return Q.find((D)=>D.value===L)?.type==="input"},[L,Q]);Wz.useEffect(()=>{if(L!==void 0)G.current?.(L)},[L]),Wz.useEffect(()=>{if(Y!==void 0)K({type:"set-focus",value:Y})},[Y]);let A=Wz.useMemo(()=>{if(L===void 0)return 0;let R=Q.findIndex((D)=>D.value===L);return R>=0?R+1:0},[L,Q]);return{focusedValue:L,focusedIndex:A,visibleFromIndex:q.visibleFromIndex,visibleToIndex:q.visibleToIndex,visibleOptions:O,isInInput:N??!1,focusNextOption:H,focusPreviousOption:B,focusNextPage:U,focusPreviousPage:F,focusOption:_,options:Q}}var Wz,vr7=(J,Q)=>{switch(Q.type){case"focus-next-option":{if(J.focusedValue===void 0)return J;let X=J.optionMap.get(J.focusedValue);if(!X)return J;let Z=X.next||J.optionMap.first;if(!Z)return J;if(!X.next&&Z===J.optionMap.first)return{...J,focusedValue:Z.value,visibleFromIndex:0,visibleToIndex:J.visibleOptionCount};if(!(Z.index>=J.visibleToIndex))return{...J,focusedValue:Z.value};let q=Math.min(J.optionMap.size,J.visibleToIndex+1),K=q-J.visibleOptionCount;return{...J,focusedValue:Z.value,visibleFromIndex:K,visibleToIndex:q}}case"focus-previous-option":{if(J.focusedValue===void 0)return J;let X=J.optionMap.get(J.focusedValue);if(!X)return J;let Z=X.previous||J.optionMap.last;if(!Z)return J;if(!X.previous&&Z===J.optionMap.last){let G=J.optionMap.size,z=Math.max(0,G-J.visibleOptionCount);return{...J,focusedValue:Z.value,visibleFromIndex:z,visibleToIndex:G}}if(!(Z.index<=J.visibleFromIndex))return{...J,focusedValue:Z.value};let q=Math.max(0,J.visibleFromIndex-1),K=q+J.visibleOptionCount;return{...J,focusedValue:Z.value,visibleFromIndex:q,visibleToIndex:K}}case"focus-next-page":{if(J.focusedValue===void 0)return J;let X=J.optionMap.get(J.focusedValue);if(!X)return J;let Z=Math.min(J.optionMap.size-1,X.index+J.visibleOptionCount),Y=J.optionMap.first;while(Y&&Y.index<Z)if(Y.next)Y=Y.next;else break;if(!Y)return J;let q=Math.min(J.optionMap.size,Y.index+1),K=Math.max(0,q-J.visibleOptionCount);return{...J,focusedValue:Y.value,visibleFromIndex:K,visibleToIndex:q}}case"focus-previous-page":{if(J.focusedValue===void 0)return J;let X=J.optionMap.get(J.focusedValue);if(!X)return J;let Z=Math.max(0,X.index-J.visibleOptionCount),Y=J.optionMap.first;while(Y&&Y.index<Z)if(Y.next)Y=Y.next;else break;if(!Y)return J;let q=Math.max(0,Y.index),K=Math.min(J.optionMap.size,q+J.visibleOptionCount);return{...J,focusedValue:Y.value,visibleFromIndex:q,visibleToIndex:K}}case"reset":return Q.state;case"set-focus":{if(J.focusedValue===Q.value)return J;let X=J.optionMap.get(Q.value);if(!X)return J;if(X.index>=J.visibleFromIndex&&X.index<J.visibleToIndex)return{...J,focusedValue:Q.value};let Z,Y;if(X.index<J.visibleFromIndex)Z=X.index,Y=Math.min(J.optionMap.size,Z+J.visibleOptionCount);else Y=Math.min(J.optionMap.size,X.index+1),Z=Math.max(0,Y-J.visibleOptionCount);return{...J,focusedValue:Q.value,visibleFromIndex:Z,visibleToIndex:Y}}}},ma6=({visibleOptionCount:J,options:Q,initialFocusValue:X,currentViewport:Z})=>{let Y=typeof J==="number"?Math.min(J,Q.length):Q.length,q=new no0(Q),K=X!==void 0&&q.get(X),G=K?X:q.first?.value,z=0,W=Y;if(K){let H=K.index;if(Z)if(H>=Z.visibleFromIndex&&H<Z.visibleToIndex)z=Z.visibleFromIndex,W=Math.min(q.size,Z.visibleToIndex);else if(H<Z.visibleFromIndex)z=H,W=Math.min(q.size,z+Y);else W=Math.min(q.size,H+1),z=Math.max(0,W-Y);else if(H>=Y)W=Math.min(q.size,H+1),z=Math.max(0,W-Y);z=Math.max(0,Math.min(z,q.size-1)),W=Math.min(q.size,Math.max(Y,W))}return{optionMap:q,visibleOptionCount:Y,focusedValue:G,visibleFromIndex:z,visibleToIndex:W}};var ip1=I(()=>{ga6();Wz=T(J1(),1)});import{isDeepStrictEqual as fr7}from"util";function pa6({isDisabled:J=!1,visibleOptionCount:Q=5,options:X,defaultValue:Z=[],onChange:Y,onCancel:q,onFocus:K,focusValue:G,submitButtonText:z,onSubmit:W,onDownFromLastItem:H,onUpFromFirstItem:B,initialFocusLast:U,hideIndexes:F=!1}){let[_,O]=qu.useState(Z),[L,N]=qu.useState(!1),[A,R]=qu.useState(X);if(X!==A&&!fr7(X,A))O(Z),R(X);let[D,$]=qu.useState(()=>{let C=new Map;return X.forEach((S)=>{if(S.type==="input"&&S.initialValue)C.set(S.value,S.initialValue)}),C}),y=qu.useCallback((C)=>{let S=typeof C==="function"?C(_):C;O(S),Y?.(S)},[_,Y]),v=ro0({visibleOptionCount:Q,options:X,initialFocusValue:U?X[X.length-1]?.value:void 0,onFocus:K,focusValue:G});WW("multi-select");let E=qu.useCallback((C,S)=>{$((h)=>{let u=new Map(h);return u.set(C,S),u});let k=X.find((h)=>h.value===C);if(k&&k.type==="input")k.onChange(S);y((h)=>{if(S){if(!h.includes(C))return[...h,C];return h}else return h.filter((u)=>u!==C)})},[X,y]);return SJ((C,S,k)=>{let h=ip(C),x=X.find((p)=>p.value===v.focusedValue)?.type==="input";if(x){if(!(S.upArrow||S.downArrow||S.escape||S.tab||S.return||S.ctrl&&(C==="n"||C==="p"||S.return)))return}let m=X[X.length-1]?.value;if(S.tab&&!S.shift){if(z&&W&&v.focusedValue===m&&!L)N(!0);else if(!L)v.focusNextOption();return}if(S.tab&&S.shift){if(z&&W&&L)N(!1),v.focusOption(m);else v.focusPreviousOption();return}if(S.downArrow||S.ctrl&&C==="n"||!S.ctrl&&!S.shift&&C==="j"){if(L&&H)H();else if(z&&W&&v.focusedValue===m&&!L)N(!0);else if(!z&&H&&v.focusedValue===m)H();else if(!L)v.focusNextOption();return}if(S.upArrow||S.ctrl&&C==="p"||!S.ctrl&&!S.shift&&C==="k"){if(z&&W&&L)N(!1),v.focusOption(m);else if(B&&v.focusedValue===X[0]?.value)B();else v.focusPreviousOption();return}if(S.pageDown){v.focusNextPage();return}if(S.pageUp){v.focusPreviousPage();return}if(S.return||Ob0(C)===" "){if(S.ctrl&&S.return&&x&&W){W(_);return}if(L&&W){W(_);return}if(S.return&&!z&&W){W(_);return}if(v.focusedValue!==void 0){let p=_.includes(v.focusedValue)?_.filter((c)=>c!==v.focusedValue):[..._,v.focusedValue];y(p)}return}if(!F&&/^[0-9]+$/.test(h)){let p=parseInt(h)-1;if(p>=0&&p<X.length){let c=X[p].value,r=_.includes(c)?_.filter((J0)=>J0!==c):[..._,c];y(r)}return}if(S.escape)q(),k.stopImmediatePropagation()},{isActive:!J}),{...v,selectedValues:_,inputValues:D,isSubmitFocused:L,updateInputValue:E,onCancel:q}}var qu;var ca6=I(()=>{F_();a0();ip1();qu=T(J1(),1)});function ao0(J){let Q=da6.c(44),{isDisabled:X,visibleOptionCount:Z,options:Y,defaultValue:q,onCancel:K,onChange:G,onFocus:z,focusValue:W,submitButtonText:H,onSubmit:B,onDownFromLastItem:U,onUpFromFirstItem:F,initialFocusLast:_,onOpenEditor:O,hideIndexes:L,onImagePaste:N,pastedContents:A,onRemoveImage:R}=J,D=X===void 0?!1:X,$=Z===void 0?5:Z,y;if(Q[0]!==q)y=q===void 0?[]:q,Q[0]=q,Q[1]=y;else y=Q[1];let v=y,E=L===void 0?!1:L,C;if(Q[2]!==v||Q[3]!==W||Q[4]!==E||Q[5]!==_||Q[6]!==D||Q[7]!==K||Q[8]!==G||Q[9]!==U||Q[10]!==z||Q[11]!==B||Q[12]!==F||Q[13]!==Y||Q[14]!==H||Q[15]!==$)C={isDisabled:D,visibleOptionCount:$,options:Y,defaultValue:v,onChange:G,onCancel:K,onFocus:z,focusValue:W,submitButtonText:H,onSubmit:B,onDownFromLastItem:U,onUpFromFirstItem:F,initialFocusLast:_,hideIndexes:E},Q[2]=v,Q[3]=W,Q[4]=E,Q[5]=_,Q[6]=D,Q[7]=K,Q[8]=G,Q[9]=U,Q[10]=z,Q[11]=B,Q[12]=F,Q[13]=Y,Q[14]=H,Q[15]=$,Q[16]=C;else C=Q[16];let S=pa6(C),k,h,u,x,m;if(Q[17]!==E||Q[18]!==D||Q[19]!==K||Q[20]!==N||Q[21]!==O||Q[22]!==R||Q[23]!==Y.length||Q[24]!==A||Q[25]!==S){let J0=Y.length.toString().length;h=f,m="column",k=f,u="column",x=S.visibleOptions.map((n,s)=>{let X0=!D&&S.focusedValue===n.value&&!S.isSubmitFocused,Y0=S.selectedValues.includes(n.value),G0=n.index===S.visibleFromIndex,j0=n.index===S.visibleToIndex-1,W0=S.visibleToIndex<Y.length,y0=S.visibleFromIndex>0,V0=S.visibleFromIndex+s+1;if(n.type==="input"){let Z0=S.inputValues.get(n.value)||"";return ZU.jsxDEV(f,{gap:1,children:ZU.jsxDEV(oQ0,{option:n,isFocused:X0,isSelected:!1,shouldShowDownArrow:W0&&j0,shouldShowUpArrow:y0&&G0,maxIndexWidth:J0,index:V0,inputValue:Z0,onInputChange:(t)=>{S.updateInputValue(n.value,t)},onSubmit:Sr7,onExit:()=>{K()},layout:"compact",onOpenEditor:O,onImagePaste:N,pastedContents:A,onRemoveImage:R,children:ZU.jsxDEV(M,{color:Y0?"success":void 0,children:["[",Y0?s0.tick:" ","]"," "]},void 0,!0,void 0,this)},void 0,!1,void 0,this)},String(n.value),!1,void 0,this)}return ZU.jsxDEV(f,{gap:1,children:ZU.jsxDEV(Yu,{isFocused:X0,isSelected:!1,shouldShowDownArrow:W0&&j0,shouldShowUpArrow:y0&&G0,description:n.description,children:[!E&&ZU.jsxDEV(M,{dimColor:!0,children:`${V0}.`.padEnd(J0)},void 0,!1,void 0,this),ZU.jsxDEV(M,{color:Y0?"success":void 0,children:["[",Y0?s0.tick:" ","]"]},void 0,!0,void 0,this),ZU.jsxDEV(M,{color:X0?"suggestion":void 0,children:n.label},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},String(n.value),!1,void 0,this)}),Q[17]=E,Q[18]=D,Q[19]=K,Q[20]=N,Q[21]=O,Q[22]=R,Q[23]=Y.length,Q[24]=A,Q[25]=S,Q[26]=k,Q[27]=h,Q[28]=u,Q[29]=x,Q[30]=m}else k=Q[26],h=Q[27],u=Q[28],x=Q[29],m=Q[30];let p;if(Q[31]!==k||Q[32]!==u||Q[33]!==x)p=ZU.jsxDEV(k,{flexDirection:u,children:x},void 0,!1,void 0,this),Q[31]=k,Q[32]=u,Q[33]=x,Q[34]=p;else p=Q[34];let c;if(Q[35]!==B||Q[36]!==S.isSubmitFocused||Q[37]!==H)c=H&&B&&ZU.jsxDEV(f,{marginTop:0,gap:1,children:[S.isSubmitFocused?ZU.jsxDEV(M,{color:"suggestion",children:s0.pointer},void 0,!1,void 0,this):ZU.jsxDEV(M,{children:" "},void 0,!1,void 0,this),ZU.jsxDEV(f,{marginLeft:3,children:ZU.jsxDEV(M,{color:S.isSubmitFocused?"suggestion":void 0,bold:!0,children:H},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),Q[35]=B,Q[36]=S.isSubmitFocused,Q[37]=H,Q[38]=c;else c=Q[38];let r;if(Q[39]!==h||Q[40]!==p||Q[41]!==c||Q[42]!==m)r=ZU.jsxDEV(h,{flexDirection:m,children:[p,c]},void 0,!0,void 0,this),Q[39]=h,Q[40]=p,Q[41]=c,Q[42]=m,Q[43]=r;else r=Q[43];return r}function Sr7(){}var da6,ZU;var np1=I(()=>{r6();a0();lp1();io0();ca6();da6=T(e0(),1),ZU=T(e(),1)});var rp1,la6=({isDisabled:J=!1,disableSelection:Q=!1,state:X,options:Z,isMultiSelect:Y=!1,onUpFromFirstItem:q,onDownFromLastItem:K,onInputModeToggle:G,inputValues:z,imagesSelected:W=!1,onEnterImageSelection:H})=>{WW("select",!!X.onCancel);let B=rp1.useMemo(()=>{return Z.find((_)=>_.value===X.focusedValue)?.type==="input"},[Z,X.focusedValue]),U=rp1.useMemo(()=>{let F={};if(!B)F["select:next"]=()=>{if(K){let _=Z[Z.length-1];if(_&&X.focusedValue===_.value){K();return}}X.focusNextOption()},F["select:previous"]=()=>{if(q&&X.visibleFromIndex===0){let _=Z[0];if(_&&X.focusedValue===_.value){q();return}}X.focusPreviousOption()},F["select:accept"]=()=>{if(Q===!0)return;if(X.focusedValue===void 0)return;if(Z.find((O)=>O.value===X.focusedValue)?.disabled===!0)return;X.selectFocusedOption?.(),X.onChange?.(X.focusedValue)};if(X.onCancel)F["select:cancel"]=()=>{X.onCancel()};return F},[Z,X,K,q,B,Q]);C6(U,{context:"Select",isActive:!J}),SJ((F,_,O)=>{let L=ip(F),N=Z.find((R)=>R.value===X.focusedValue),A=N?.type==="input";if(_.tab&&G&&X.focusedValue!==void 0){G(X.focusedValue);return}if(A){if(W)return;if(_.downArrow&&H?.()){O.stopImmediatePropagation();return}if(_.downArrow||_.ctrl&&F==="n"){if(K){let R=Z[Z.length-1];if(R&&X.focusedValue===R.value){K(),O.stopImmediatePropagation();return}}X.focusNextOption(),O.stopImmediatePropagation();return}if(_.upArrow||_.ctrl&&F==="p"){if(q&&X.visibleFromIndex===0){let R=Z[0];if(R&&X.focusedValue===R.value){q(),O.stopImmediatePropagation();return}}X.focusPreviousOption(),O.stopImmediatePropagation();return}return}if(_.pageDown)X.focusNextPage();if(_.pageUp)X.focusPreviousPage();if(Q!==!0){if(Y&&Ob0(F)===" "&&X.focusedValue!==void 0){if(N?.disabled!==!0)X.selectFocusedOption?.(),X.onChange?.(X.focusedValue)}if(Q!=="numeric"&&/^[0-9]+$/.test(L)){let R=parseInt(L)-1;if(R>=0&&R<X.options.length){let D=X.options[R];if(D.disabled===!0)return;if(D.type==="input"){if((z?.get(D.value)??"").trim()){X.onChange?.(D.value);return}if(D.allowEmptySubmitToCancel){X.onChange?.(D.value);return}X.focusOption(D.value);return}X.onChange?.(D.value);return}}}},{isActive:!J})};var ia6=I(()=>{F_();a0();f6();rp1=T(J1(),1)});function na6({visibleOptionCount:J=5,options:Q,defaultValue:X,onChange:Z,onCancel:Y,onFocus:q,focusValue:K}){let[G,z]=oo0.useState(X),W=ro0({visibleOptionCount:J,options:Q,initialFocusValue:void 0,onFocus:q,focusValue:K}),H=oo0.useCallback(()=>{z(W.focusedValue)},[W.focusedValue]);return{...W,value:G,selectFocusedOption:H,onChange:Z,onCancel:Y}}var oo0;var ra6=I(()=>{ip1();oo0=T(J1(),1)});function so0(J){if(typeof J==="string")return J;if(typeof J==="number")return String(J);if(!J)return"";if(Array.isArray(J))return J.map(so0).join("");if(CI.default.isValidElement(J))return so0(J.props.children);return""}function Q8(J){let Q=ap1.c(72),{isDisabled:X,hideIndexes:Z,visibleOptionCount:Y,highlightText:q,options:K,defaultValue:G,onCancel:z,onChange:W,onFocus:H,defaultFocusValue:B,layout:U,disableSelection:F,inlineDescriptions:_,onUpFromFirstItem:O,onDownFromLastItem:L,onInputModeToggle:N,onOpenEditor:A,onImagePaste:R,pastedContents:D,onRemoveImage:$}=J,y=X===void 0?!1:X,v=Z===void 0?!1:Z,E=Y===void 0?5:Y,C=U===void 0?"compact":U,S=F===void 0?!1:F,k=_===void 0?!1:_,[h,u]=CI.useState(!1),[x,m]=CI.useState(0),p;if(Q[0]!==K)p=()=>{let a=new Map;return K.forEach((O0)=>{if(O0.type==="input"&&O0.initialValue)a.set(O0.value,O0.initialValue)}),a},Q[0]=K,Q[1]=p;else p=Q[1];let[c,r]=CI.useState(p),J0;if(Q[2]===Symbol.for("react.memo_cache_sentinel"))J0=new Map,Q[2]=J0;else J0=Q[2];let n=CI.useRef(J0),s,X0;if(Q[3]!==c||Q[4]!==K)X0=()=>{for(let a of K)if(a.type==="input"&&a.initialValue!==void 0){let O0=n.current.get(a.value)??"",D0=c.get(a.value)??"",F0=a.initialValue;if(F0!==O0&&D0===O0)r((I0)=>{let U0=new Map(I0);return U0.set(a.value,F0),U0});n.current.set(a.value,F0)}},s=[K,c],Q[3]=c,Q[4]=K,Q[5]=s,Q[6]=X0;else s=Q[5],X0=Q[6];CI.useEffect(X0,s);let Y0;if(Q[7]!==B||Q[8]!==G||Q[9]!==z||Q[10]!==W||Q[11]!==H||Q[12]!==K||Q[13]!==E)Y0={visibleOptionCount:E,options:K,defaultValue:G,onChange:W,onCancel:z,onFocus:H,focusValue:B},Q[7]=B,Q[8]=G,Q[9]=z,Q[10]=W,Q[11]=H,Q[12]=K,Q[13]=E,Q[14]=Y0;else Y0=Q[14];let G0=na6(Y0),j0=S||(v?"numeric":!1),W0;if(Q[15]!==D)W0=()=>{if(D&&Object.values(D).some(dr7)){let a=x8(Object.values(D),cr7);return u(!0),m(a-1),!0}return!1},Q[15]=D,Q[16]=W0;else W0=Q[16];let y0;if(Q[17]!==h||Q[18]!==c||Q[19]!==y||Q[20]!==L||Q[21]!==N||Q[22]!==O||Q[23]!==K||Q[24]!==G0||Q[25]!==j0||Q[26]!==W0)y0={isDisabled:y,disableSelection:j0,state:G0,options:K,isMultiSelect:!1,onUpFromFirstItem:O,onDownFromLastItem:L,onInputModeToggle:N,inputValues:c,imagesSelected:h,onEnterImageSelection:W0},Q[17]=h,Q[18]=c,Q[19]=y,Q[20]=L,Q[21]=N,Q[22]=O,Q[23]=K,Q[24]=G0,Q[25]=j0,Q[26]=W0,Q[27]=y0;else y0=Q[27];la6(y0);let V0,Z0,t,q0;if(Q[28]!==v||Q[29]!==q||Q[30]!==h||Q[31]!==k||Q[32]!==c||Q[33]!==y||Q[34]!==C||Q[35]!==z||Q[36]!==W||Q[37]!==R||Q[38]!==A||Q[39]!==$||Q[40]!==K.length||Q[41]!==D||Q[42]!==x||Q[43]!==G0.focusedValue||Q[44]!==G0.options||Q[45]!==G0.value||Q[46]!==G0.visibleFromIndex||Q[47]!==G0.visibleOptions||Q[48]!==G0.visibleToIndex){q0=Symbol.for("react.early_return_sentinel");J:{let a={container:pr7,highlightedText:mr7};if(C==="expanded"){let P0;if(Q[53]!==G0.options.length)P0=G0.options.length.toString(),Q[53]=G0.options.length,Q[54]=P0;else P0=Q[54];let $0=P0.length;q0=iJ.jsxDEV(f,{...a.container(),children:G0.visibleOptions.map((w0,E0)=>{let h0=w0.index===G0.visibleFromIndex,u0=w0.index===G0.visibleToIndex-1,B0=G0.visibleToIndex<K.length,_0=G0.visibleFromIndex>0,M0=G0.visibleFromIndex+E0+1,b0=!y&&G0.focusedValue===w0.value,L0=G0.value===w0.value;if(w0.type==="input"){let c0=c.has(w0.value)?c.get(w0.value):w0.initialValue||"";return iJ.jsxDEV(oQ0,{option:w0,isFocused:b0,isSelected:L0,shouldShowDownArrow:B0&&u0,shouldShowUpArrow:_0&&h0,maxIndexWidth:$0,index:M0,inputValue:c0,onInputChange:(t0)=>{r((K1)=>{let K0=new Map(K1);return K0.set(w0.value,t0),K0})},onSubmit:(t0)=>{let K1=D&&Object.values(D).some(gr7);if(t0.trim()||K1||w0.allowEmptySubmitToCancel)W?.(w0.value);else z?.()},onExit:z,layout:"expanded",showLabel:k,onOpenEditor:A,resetCursorOnUpdate:w0.resetCursorOnUpdate,onImagePaste:R,pastedContents:D,onRemoveImage:$,imagesSelected:h,selectedImageIndex:x,onImagesSelectedChange:u,onSelectedImageIndexChange:m},String(w0.value),!1,void 0,this)}let T0=w0.label;if(typeof w0.label==="string"&&q&&w0.label.includes(q)){let c0=w0.label,t0=c0.indexOf(q);T0=iJ.jsxDEV(iJ.Fragment,{children:[c0.slice(0,t0),iJ.jsxDEV(M,{...a.highlightedText(),children:q},void 0,!1,void 0,this),c0.slice(t0+q.length)]},void 0,!0,void 0,this)}let S0=w0.disabled===!0,g0=S0?void 0:L0?"success":b0?"suggestion":void 0;return iJ.jsxDEV(f,{flexDirection:"column",flexShrink:0,children:[iJ.jsxDEV(Yu,{isFocused:b0,isSelected:L0,shouldShowDownArrow:B0&&u0,shouldShowUpArrow:_0&&h0,children:iJ.jsxDEV(M,{dimColor:S0,color:g0,children:T0},void 0,!1,void 0,this)},void 0,!1,void 0,this),w0.description&&iJ.jsxDEV(f,{paddingLeft:2,children:iJ.jsxDEV(M,{dimColor:S0||w0.dimDescription!==!1,color:g0,children:iJ.jsxDEV(C9,{children:w0.description},void 0,!1,void 0,this)},void 0,!1,void 0,this)},void 0,!1,void 0,this),iJ.jsxDEV(M,{children:" "},void 0,!1,void 0,this)]},String(w0.value),!0,void 0,this)})},void 0,!1,void 0,this);break J}if(C==="compact-vertical"){let P0;if(Q[55]!==v||Q[56]!==G0.options)P0=v?0:G0.options.length.toString().length,Q[55]=v,Q[56]=G0.options,Q[57]=P0;else P0=Q[57];let $0=P0;q0=iJ.jsxDEV(f,{...a.container(),children:G0.visibleOptions.map((w0,E0)=>{let h0=w0.index===G0.visibleFromIndex,u0=w0.index===G0.visibleToIndex-1,B0=G0.visibleToIndex<K.length,_0=G0.visibleFromIndex>0,M0=G0.visibleFromIndex+E0+1,b0=!y&&G0.focusedValue===w0.value,L0=G0.value===w0.value;if(w0.type==="input"){let g0=c.has(w0.value)?c.get(w0.value):w0.initialValue||"";return iJ.jsxDEV(oQ0,{option:w0,isFocused:b0,isSelected:L0,shouldShowDownArrow:B0&&u0,shouldShowUpArrow:_0&&h0,maxIndexWidth:$0,index:M0,inputValue:g0,onInputChange:(c0)=>{r((t0)=>{let K1=new Map(t0);return K1.set(w0.value,c0),K1})},onSubmit:(c0)=>{let t0=D&&Object.values(D).some(ur7);if(c0.trim()||t0||w0.allowEmptySubmitToCancel)W?.(w0.value);else z?.()},onExit:z,layout:"compact",showLabel:k,onOpenEditor:A,resetCursorOnUpdate:w0.resetCursorOnUpdate,onImagePaste:R,pastedContents:D,onRemoveImage:$,imagesSelected:h,selectedImageIndex:x,onImagesSelectedChange:u,onSelectedImageIndexChange:m},String(w0.value),!1,void 0,this)}let T0=w0.label;if(typeof w0.label==="string"&&q&&w0.label.includes(q)){let g0=w0.label,c0=g0.indexOf(q);T0=iJ.jsxDEV(iJ.Fragment,{children:[g0.slice(0,c0),iJ.jsxDEV(M,{...a.highlightedText(),children:q},void 0,!1,void 0,this),g0.slice(c0+q.length)]},void 0,!0,void 0,this)}let S0=w0.disabled===!0;return iJ.jsxDEV(f,{flexDirection:"column",flexShrink:0,children:[iJ.jsxDEV(Yu,{isFocused:b0,isSelected:L0,shouldShowDownArrow:B0&&u0,shouldShowUpArrow:_0&&h0,children:iJ.jsxDEV(iJ.Fragment,{children:[!v&&iJ.jsxDEV(M,{dimColor:!0,children:`${M0}.`.padEnd($0+1)},void 0,!1,void 0,this),iJ.jsxDEV(M,{dimColor:S0,color:S0?void 0:L0?"success":b0?"suggestion":void 0,children:T0},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this),w0.description&&iJ.jsxDEV(f,{paddingLeft:v?4:$0+4,children:iJ.jsxDEV(M,{dimColor:S0||w0.dimDescription!==!1,color:S0?void 0:L0?"success":b0?"suggestion":void 0,children:iJ.jsxDEV(C9,{children:w0.description},void 0,!1,void 0,this)},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},String(w0.value),!0,void 0,this)})},void 0,!1,void 0,this);break J}let O0;if(Q[58]!==v||Q[59]!==G0.options)O0=v?0:G0.options.length.toString().length,Q[58]=v,Q[59]=G0.options,Q[60]=O0;else O0=Q[60];let D0=O0,F0=G0.visibleOptions.some(hr7),I0=!k&&!F0&&G0.visibleOptions.some(kr7),U0=G0.visibleOptions.map((P0,$0)=>{let w0=P0.index===G0.visibleFromIndex,E0=P0.index===G0.visibleToIndex-1,h0=G0.visibleToIndex<K.length,u0=G0.visibleFromIndex>0,B0=G0.visibleFromIndex+$0+1,_0=!y&&G0.focusedValue===P0.value,M0=G0.value===P0.value,b0=P0.disabled===!0,L0=P0.label;if(typeof P0.label==="string"&&q&&P0.label.includes(q)){let T0=P0.label,S0=T0.indexOf(q);L0=iJ.jsxDEV(iJ.Fragment,{children:[T0.slice(0,S0),iJ.jsxDEV(M,{...a.highlightedText(),children:q},void 0,!1,void 0,this),T0.slice(S0+q.length)]},void 0,!0,void 0,this)}return{option:P0,index:B0,label:L0,isFocused:_0,isSelected:M0,isOptionDisabled:b0,shouldShowDownArrow:h0&&E0,shouldShowUpArrow:u0&&w0}});if(I0){let P0;if(Q[61]!==v||Q[62]!==D0)P0=(E0)=>{if(E0.option.type==="input")return 0;let h0=so0(E0.option.label),u0=v?0:D0+2,B0=E0.isSelected?2:0;return 2+u0+B8(h0)+B0},Q[61]=v,Q[62]=D0,Q[63]=P0;else P0=Q[63];let $0=Math.max(...U0.map(P0)),w0;if(Q[64]!==v||Q[65]!==D0||Q[66]!==$0)w0=(E0)=>{if(E0.option.type==="input")return null;let h0=so0(E0.option.label),u0=v?0:D0+2,B0=E0.isSelected?2:0,_0=2+u0+B8(h0)+B0,M0=$0-_0;return iJ.jsxDEV(lr7,{isFocused:E0.isFocused,children:[iJ.jsxDEV(f,{flexDirection:"row",flexShrink:0,children:[E0.isFocused?iJ.jsxDEV(M,{color:"suggestion",children:s0.pointer},void 0,!1,void 0,this):E0.shouldShowDownArrow?iJ.jsxDEV(M,{dimColor:!0,children:s0.arrowDown},void 0,!1,void 0,this):E0.shouldShowUpArrow?iJ.jsxDEV(M,{dimColor:!0,children:s0.arrowUp},void 0,!1,void 0,this):iJ.jsxDEV(M,{children:" "},void 0,!1,void 0,this),iJ.jsxDEV(M,{children:" "},void 0,!1,void 0,this),iJ.jsxDEV(M,{dimColor:E0.isOptionDisabled,color:E0.isOptionDisabled?void 0:E0.isSelected?"success":E0.isFocused?"suggestion":void 0,children:[!v&&iJ.jsxDEV(M,{dimColor:!0,children:`${E0.index}.`.padEnd(D0+2)},void 0,!1,void 0,this),E0.label]},void 0,!0,void 0,this),E0.isSelected&&iJ.jsxDEV(M,{color:"success",children:[" ",s0.tick]},void 0,!0,void 0,this),M0>0&&iJ.jsxDEV(M,{children:" ".repeat(M0)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),iJ.jsxDEV(f,{flexGrow:1,marginLeft:2,children:iJ.jsxDEV(M,{wrap:"wrap",dimColor:E0.isOptionDisabled||E0.option.dimDescription!==!1,color:E0.isOptionDisabled?void 0:E0.isSelected?"success":E0.isFocused?"suggestion":void 0,children:iJ.jsxDEV(C9,{children:E0.option.description||" "},void 0,!1,void 0,this)},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},String(E0.option.value),!0,void 0,this)},Q[64]=v,Q[65]=D0,Q[66]=$0,Q[67]=w0;else w0=Q[67];q0=iJ.jsxDEV(f,{...a.container(),children:U0.map(w0)},void 0,!1,void 0,this);break J}V0=f,Z0=a.container(),t=G0.visibleOptions.map((P0,$0)=>{if(P0.type==="input"){let T0=c.has(P0.value)?c.get(P0.value):P0.initialValue||"",S0=P0.index===G0.visibleFromIndex,g0=P0.index===G0.visibleToIndex-1,c0=G0.visibleToIndex<K.length,t0=G0.visibleFromIndex>0,K1=G0.visibleFromIndex+$0+1,K0=!y&&G0.focusedValue===P0.value,m0=G0.value===P0.value;return iJ.jsxDEV(oQ0,{option:P0,isFocused:K0,isSelected:m0,shouldShowDownArrow:c0&&g0,shouldShowUpArrow:t0&&S0,maxIndexWidth:D0,index:K1,inputValue:T0,onInputChange:(R0)=>{r((p0)=>{let o0=new Map(p0);return o0.set(P0.value,R0),o0})},onSubmit:(R0)=>{let p0=D&&Object.values(D).some(xr7);if(R0.trim()||p0||P0.allowEmptySubmitToCancel)W?.(P0.value);else z?.()},onExit:z,layout:"compact",showLabel:k,onOpenEditor:A,resetCursorOnUpdate:P0.resetCursorOnUpdate,onImagePaste:R,pastedContents:D,onRemoveImage:$,imagesSelected:h,selectedImageIndex:x,onImagesSelectedChange:u,onSelectedImageIndexChange:m},String(P0.value),!1,void 0,this)}let w0=P0.label;if(typeof P0.label==="string"&&q&&P0.label.includes(q)){let T0=P0.label,S0=T0.indexOf(q);w0=iJ.jsxDEV(iJ.Fragment,{children:[T0.slice(0,S0),iJ.jsxDEV(M,{...a.highlightedText(),children:q},void 0,!1,void 0,this),T0.slice(S0+q.length)]},void 0,!0,void 0,this)}let E0=P0.index===G0.visibleFromIndex,h0=P0.index===G0.visibleToIndex-1,u0=G0.visibleToIndex<K.length,B0=G0.visibleFromIndex>0,_0=G0.visibleFromIndex+$0+1,M0=!y&&G0.focusedValue===P0.value,b0=G0.value===P0.value,L0=P0.disabled===!0;return iJ.jsxDEV(Yu,{isFocused:M0,isSelected:b0,shouldShowDownArrow:u0&&h0,shouldShowUpArrow:B0&&E0,children:[iJ.jsxDEV(f,{flexDirection:"row",flexShrink:0,children:[!v&&iJ.jsxDEV(M,{dimColor:!0,children:`${_0}.`.padEnd(D0+2)},void 0,!1,void 0,this),iJ.jsxDEV(M,{dimColor:L0,color:L0?void 0:b0?"success":M0?"suggestion":void 0,children:[w0,k&&P0.description&&iJ.jsxDEV(M,{dimColor:L0||P0.dimDescription!==!1,children:[" ",P0.description]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),!k&&P0.description&&iJ.jsxDEV(f,{flexShrink:99,marginLeft:2,children:iJ.jsxDEV(M,{wrap:"wrap-trim",dimColor:L0||P0.dimDescription!==!1,color:L0?void 0:b0?"success":M0?"suggestion":void 0,children:iJ.jsxDEV(C9,{children:P0.description},void 0,!1,void 0,this)},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},String(P0.value),!0,void 0,this)})}Q[28]=v,Q[29]=q,Q[30]=h,Q[31]=k,Q[32]=c,Q[33]=y,Q[34]=C,Q[35]=z,Q[36]=W,Q[37]=R,Q[38]=A,Q[39]=$,Q[40]=K.length,Q[41]=D,Q[42]=x,Q[43]=G0.focusedValue,Q[44]=G0.options,Q[45]=G0.value,Q[46]=G0.visibleFromIndex,Q[47]=G0.visibleOptions,Q[48]=G0.visibleToIndex,Q[49]=V0,Q[50]=Z0,Q[51]=t,Q[52]=q0}else V0=Q[49],Z0=Q[50],t=Q[51],q0=Q[52];if(q0!==Symbol.for("react.early_return_sentinel"))return q0;let Q0;if(Q[68]!==V0||Q[69]!==Z0||Q[70]!==t)Q0=iJ.jsxDEV(V0,{...Z0,children:t},void 0,!1,void 0,this),Q[68]=V0,Q[69]=Z0,Q[70]=t,Q[71]=Q0;else Q0=Q[71];return Q0}function xr7(J){return J.type==="image"}function kr7(J){return J.description}function hr7(J){return J.type==="input"}function ur7(J){return J.type==="image"}function gr7(J){return J.type==="image"}function mr7(){return{bold:!0}}function pr7(){return{flexDirection:"column"}}function cr7(J){return J.type==="image"}function dr7(J){return J.type==="image"}function lr7(J){let Q=ap1.c(5),{isFocused:X,children:Z}=J,Y;if(Q[0]!==X)Y={line:0,column:0,active:X},Q[0]=X,Q[1]=Y;else Y=Q[1];let q=rQ0(Y),K;if(Q[2]!==Z||Q[3]!==q)K=iJ.jsxDEV(f,{ref:q,flexDirection:"row",children:Z},void 0,!1,void 0,this),Q[2]=Z,Q[3]=q,Q[4]=K;else K=Q[4];return K}var ap1,CI,iJ;var AQ=I(()=>{r6();po0();x7();a0();lp1();io0();ia6();ra6();ap1=T(e0(),1),CI=T(J1(),1),iJ=T(e(),1)});var tX=I(()=>{np1();AQ()});function Ku(J){let Q=aa6.c(13),{title:X,subtitle:Z,color:Y,workerBadge:q}=J,K=Y===void 0?"permission":Y,G;if(Q[0]!==K||Q[1]!==X)G=eQ0.jsxDEV(M,{bold:!0,color:K,children:X},void 0,!1,void 0,this),Q[0]=K,Q[1]=X,Q[2]=G;else G=Q[2];let z;if(Q[3]!==q)z=q&&eQ0.jsxDEV(M,{dimColor:!0,children:["\xB7 ","@",q.name]},void 0,!0,void 0,this),Q[3]=q,Q[4]=z;else z=Q[4];let W;if(Q[5]!==G||Q[6]!==z)W=eQ0.jsxDEV(f,{flexDirection:"row",gap:1,children:[G,z]},void 0,!0,void 0,this),Q[5]=G,Q[6]=z,Q[7]=W;else W=Q[7];let H;if(Q[8]!==Z)H=Z!=null&&(typeof Z==="string"?eQ0.jsxDEV(M,{dimColor:!0,wrap:"truncate-start",children:Z},void 0,!1,void 0,this):Z),Q[8]=Z,Q[9]=H;else H=Q[9];let B;if(Q[10]!==W||Q[11]!==H)B=eQ0.jsxDEV(f,{flexDirection:"column",children:[W,H]},void 0,!0,void 0,this),Q[10]=W,Q[11]=H,Q[12]=B;else B=Q[12];return B}var aa6,eQ0;var fL0=I(()=>{a0();aa6=T(e0(),1),eQ0=T(e(),1)});function OZ(J){let Q=oa6.c(15),{title:X,subtitle:Z,color:Y,titleColor:q,innerPaddingX:K,workerBadge:G,titleRight:z,children:W}=J,H=Y===void 0?"permission":Y,B=K===void 0?1:K,U;if(Q[0]!==Z||Q[1]!==X||Q[2]!==q||Q[3]!==G)U=JX0.jsxDEV(Ku,{title:X,subtitle:Z,color:q,workerBadge:G},void 0,!1,void 0,this),Q[0]=Z,Q[1]=X,Q[2]=q,Q[3]=G,Q[4]=U;else U=Q[4];let F;if(Q[5]!==U||Q[6]!==z)F=JX0.jsxDEV(f,{paddingX:1,flexDirection:"column",children:JX0.jsxDEV(f,{justifyContent:"space-between",children:[U,z]},void 0,!0,void 0,this)},void 0,!1,void 0,this),Q[5]=U,Q[6]=z,Q[7]=F;else F=Q[7];let _;if(Q[8]!==W||Q[9]!==B)_=JX0.jsxDEV(f,{flexDirection:"column",paddingX:B,children:W},void 0,!1,void 0,this),Q[8]=W,Q[9]=B,Q[10]=_;else _=Q[10];let O;if(Q[11]!==H||Q[12]!==F||Q[13]!==_)O=JX0.jsxDEV(f,{flexDirection:"column",borderStyle:"round",borderColor:H,borderLeft:!1,borderRight:!1,borderBottom:!1,marginTop:1,children:[F,_]},void 0,!0,void 0,this),Q[11]=H,Q[12]=F,Q[13]=_,Q[14]=O;else O=Q[14];return O}var oa6,JX0;var TH=I(()=>{a0();fL0();oa6=T(e0(),1),JX0=T(e(),1)});function QX0(J){if(!J)return{shellSettings:{},envVars:{},hasHooks:!1};let Q={};for(let Y of CJ8){let q=J[Y];if(typeof q==="string"&&q.length>0)Q[Y]=q}let X={};if(J.env&&typeof J.env==="object"){for(let[Y,q]of Object.entries(J.env))if(typeof q==="string"&&q.length>0){if(!bo.has(Y.toUpperCase()))X[Y]=q}}let Z=J.hooks!==void 0&&J.hooks!==null&&typeof J.hooks==="object"&&Object.keys(J.hooks).length>0;return{shellSettings:Q,envVars:X,hasHooks:Z,hooks:Z?J.hooks:void 0}}function to0(J){return Object.keys(J.shellSettings).length>0||Object.keys(J.envVars).length>0||J.hasHooks}function sa6(J,Q){let X=QX0(J),Z=QX0(Q);if(!to0(Z))return!1;if(!to0(X))return!0;let Y=l0({shellSettings:X.shellSettings,envVars:X.envVars,hooks:X.hooks}),q=l0({shellSettings:Z.shellSettings,envVars:Z.envVars,hooks:Z.hooks});return Y!==q}function ta6(J){let Q=[];for(let X of Object.keys(J.shellSettings))Q.push(X);for(let X of Object.keys(J.envVars))Q.push(X);if(J.hasHooks)Q.push("hooks");return Q}var op1=I(()=>{N50();i1()});function Jo6(J){let Q=ea6.c(26),{settings:X,onAccept:Z,onReject:Y}=J,q=QX0(X),K=ta6(q),G=B7(),z;if(Q[0]===Symbol.for("react.memo_cache_sentinel"))z={context:"Confirmation"},Q[0]=z;else z=Q[0];J8("confirm:no",Y,z);let W;if(Q[1]!==Z||Q[2]!==Y)W=function(p){if(p==="exit"){Y();return}Z()},Q[1]=Z,Q[2]=Y,Q[3]=W;else W=Q[3];let H=W,B=OZ,U="warning",F="warning",_="Managed settings require approval",O=f,L="column",N=1,A=1,R;if(Q[4]===Symbol.for("react.memo_cache_sentinel"))R=HW.jsxDEV(M,{children:"Your organization has configured managed settings that could allow execution of arbitrary code or interception of your prompts and responses."},void 0,!1,void 0,this),Q[4]=R;else R=Q[4];let D=f,$="column",y;if(Q[5]===Symbol.for("react.memo_cache_sentinel"))y=HW.jsxDEV(M,{dimColor:!0,children:"Settings requiring approval:"},void 0,!1,void 0,this),Q[5]=y;else y=Q[5];let v=K.map(ir7),E;if(Q[6]!==D||Q[7]!==y||Q[8]!==v)E=HW.jsxDEV(D,{flexDirection:$,children:[y,v]},void 0,!0,void 0,this),Q[6]=D,Q[7]=y,Q[8]=v,Q[9]=E;else E=Q[9];let C;if(Q[10]===Symbol.for("react.memo_cache_sentinel"))C=HW.jsxDEV(M,{children:"Only accept if you trust your organization's IT administration and expect these settings to be configured."},void 0,!1,void 0,this),Q[10]=C;else C=Q[10];let S;if(Q[11]===Symbol.for("react.memo_cache_sentinel"))S=[{label:"Yes, I trust these settings",value:"accept"},{label:"No, exit Glock",value:"exit"}],Q[11]=S;else S=Q[11];let k;if(Q[12]!==H)k=HW.jsxDEV(Q8,{options:S,onChange:(m)=>H(m),onCancel:()=>H("exit")},void 0,!1,void 0,this),Q[12]=H,Q[13]=k;else k=Q[13];let h;if(Q[14]!==G.keyName||Q[15]!==G.pending)h=HW.jsxDEV(M,{dimColor:!0,children:G.pending?HW.jsxDEV(HW.Fragment,{children:["Press ",G.keyName," again to exit"]},void 0,!0,void 0,this):HW.jsxDEV(HW.Fragment,{children:"Enter to confirm \xB7 Esc to exit"},void 0,!1,void 0,this)},void 0,!1,void 0,this),Q[14]=G.keyName,Q[15]=G.pending,Q[16]=h;else h=Q[16];let u;if(Q[17]!==O||Q[18]!==E||Q[19]!==k||Q[20]!==h||Q[21]!==R)u=HW.jsxDEV(O,{flexDirection:L,gap:N,paddingTop:A,children:[R,E,C,k,h]},void 0,!0,void 0,this),Q[17]=O,Q[18]=E,Q[19]=k,Q[20]=h,Q[21]=R,Q[22]=u;else u=Q[22];let x;if(Q[23]!==B||Q[24]!==u)x=HW.jsxDEV(B,{color:U,titleColor:F,title:_,children:u},void 0,!1,void 0,this),Q[23]=B,Q[24]=u,Q[25]=x;else x=Q[25];return x}function ir7(J,Q){return HW.jsxDEV(f,{paddingLeft:2,children:HW.jsxDEV(M,{children:[HW.jsxDEV(M,{dimColor:!0,children:"\xB7 "},void 0,!1,void 0,this),HW.jsxDEV(M,{children:J},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},Q,!1,void 0,this)}var ea6,HW;var Qo6=I(()=>{Lq();a0();f6();tX();TH();op1();ea6=T(e0(),1),HW=T(e(),1)});function rr7(J,Q){let X=tp1.c(9),{addNotification:Z,removeNotification:Y}=D9(),q;if(X[0]!==Z||X[1]!==Y||X[2]!==J)q=()=>{if(J.length===0){Y("keybinding-config-warning");return}let G=x8(J,or7),z=x8(J,ar7),W;if(G>0&&z>0)W=`Found ${G} keybinding ${J6(G,"error")} and ${z} ${J6(z,"warning")}`;else if(G>0)W=`Found ${G} keybinding ${J6(G,"error")}`;else W=`Found ${z} keybinding ${J6(z,"warning")}`;W=W+" \xB7 /doctor for details",Z({key:"keybinding-config-warning",text:W,color:G>0?"error":"warning",priority:G>0?"immediate":"high",timeoutMs:60000})},X[0]=Z,X[1]=Y,X[2]=J,X[3]=q;else q=X[3];let K;if(X[4]!==Z||X[5]!==Q||X[6]!==Y||X[7]!==J)K=[J,Q,Z,Y],X[4]=Z,X[5]=Q,X[6]=Y,X[7]=J,X[8]=K;else K=X[8];CH.useEffect(q,K)}function ar7(J){return J.severity==="warning"}function or7(J){return J.severity==="error"}function S2({children:J}){let[{bindings:Q,warnings:X},Z]=CH.useState(()=>{let L=XF0();return b(`[keybindings] KeybindingSetup initialized with ${L.bindings.length} bindings, ${L.warnings.length} warnings`),L}),[Y,q]=CH.useState(!1);rr7(X,Y);let K=CH.useRef(null),[G,z]=CH.useState(null),W=CH.useRef(null),H=CH.useRef(new Map),B=CH.useRef(new Set),U=CH.useCallback((L)=>{B.current.add(L)},[]),F=CH.useCallback((L)=>{B.current.delete(L)},[]),_=CH.useCallback(()=>{if(W.current)clearTimeout(W.current),W.current=null},[]),O=CH.useCallback((L)=>{if(_(),L!==null)W.current=setTimeout((N,A)=>{b("[keybindings] Chord timeout - cancelling"),N.current=null,A(null)},nr7,K,z);K.current=L,z(L)},[_]);return CH.useEffect(()=>{kN6();let L=hN6((N)=>{q(!0),Z(N),b(`[keybindings] Reloaded: ${N.bindings.length} bindings, ${N.warnings.length} warnings`)});return()=>{L(),_()}},[_]),sp1.jsxDEV(ap0,{bindings:Q,pendingChordRef:K,pendingChord:G,setPendingChord:O,activeContexts:B.current,registerActiveContext:U,unregisterActiveContext:F,handlerRegistryRef:H,children:[sp1.jsxDEV(sr7,{bindings:Q,pendingChordRef:K,setPendingChord:O,activeContexts:B.current,handlerRegistryRef:H},void 0,!1,void 0,this),J]},void 0,!0,void 0,this)}function sr7(J){let Q=tp1.c(6),{bindings:X,pendingChordRef:Z,setPendingChord:Y,activeContexts:q,handlerRegistryRef:K}=J,G;if(Q[0]!==q||Q[1]!==X||Q[2]!==K||Q[3]!==Z||Q[4]!==Y)G=(W,H,B)=>{if((H.wheelUp||H.wheelDown)&&Z.current===null)return;let U=K.current,F=new Set;if(U)for(let N of U.values())for(let A of N)F.add(A.context);let _=[...F,...q,"Global"],O=Z.current!==null,L=np0(W,H,_,X,Z.current);J:switch(L.type){case"chord_started":{Y(L.pending),B.stopImmediatePropagation();break J}case"match":{if(Y(null),O){let N=new Set(_);if(U){let A=U.get(L.action);if(A&&A.size>0){for(let R of A)if(N.has(R.context)){R.handler(),B.stopImmediatePropagation();break}}}}break J}case"chord_cancelled":{Y(null),B.stopImmediatePropagation();break J}case"unbound":{Y(null),B.stopImmediatePropagation();break J}case"none":}},Q[0]=q,Q[1]=X,Q[2]=K,Q[3]=Z,Q[4]=Y,Q[5]=G;else G=Q[5];return SJ(G),null}var tp1,CH,sp1,nr7=1000;var Gu=I(()=>{UY();a0();Z1();uE();hk();rp0();tp1=T(e0(),1),CH=T(J1(),1),sp1=T(e(),1)});import{openSync as tr7}from"fs";import{ReadStream as er7}from"tty";function Ja7(){if(ZC!==null)return ZC;if(process.stdin.isTTY){ZC=void 0;return}if(W1(process.env.CI)){ZC=void 0;return}if(process.argv.includes("mcp")){ZC=void 0;return}if(process.platform==="win32"){ZC=void 0;return}try{let J=tr7("/dev/tty","r"),Q=new er7(J);return Q.isTTY=!0,ZC=Q,ZC}catch(J){H0(J),ZC=void 0;return}}function XX0(J=!1){let Q=Ja7(),X={exitOnCtrlC:J};if(Q)X.stdin=Q;return X}var ZC=null;var eo0=I(()=>{t1();M1()});async function Xo6(J,Q){if(!Q||!to0(QX0(Q)))return"no_check_needed";if(!sa6(J,Q))return"no_check_needed";if(!EV())return"no_check_needed";return l("jarvis_api_error",{}),new Promise((X)=>{(async()=>{let{unmount:Z}=await Ed(Js0.jsxDEV(b2,{children:Js0.jsxDEV(S2,{children:Js0.jsxDEV(Jo6,{settings:Q,onAccept:()=>{l("jarvis_api_error",{}),Z(),X("approved")},onReject:()=>{l("jarvis_api_error",{}),Z(),X("rejected")}},void 0,!1,void 0,this)},void 0,!1,void 0,this)},void 0,!1,void 0,this),XX0(!1))})()})}function Zo6(J){if(J==="rejected")return a9(1),!1;return!0}var Js0;var Yo6=I(()=>{N1();Qo6();op1();a0();Gu();W6();E5();eo0();D1();Js0=T(e(),1)});function qo6(){vI=void 0,W28()}function GD(){if(vI!==void 0)return vI;if(L6()!=="firstParty")return vI=yf(!1);if(!eU())return vI=yf(!1);if(process.env.GLOCK_ENTRYPOINT==="local-agent")return vI=yf(!1);let J=eJ();if(J?.accessToken&&J.subscriptionType===null)return vI=yf(!0);if(J?.accessToken&&J.scopes?.includes(zb)&&(J.subscriptionType==="enterprise"||J.subscriptionType==="team"))return vI=yf(!0);try{let{key:Q}=pq({skipRetrievingKeyFromApiKeyHelper:!0});if(Q)return vI=yf(!0)}catch{}return vI=yf(!1)}var vI;var ep1=I(()=>{$Z();N9();m4();Uy0()});var Ko6;var Go6=I(()=>{M6();Ko6=k0(()=>j.object({uuid:j.string(),checksum:j.string(),settings:j.record(j.string(),j.unknown())}))});import{createHash as Qa7}from"crypto";import{open as Xa7,unlink as zo6}from"fs/promises";function Wo6(){if(mn)return;if(GD())mn=new Promise((J)=>{pw=J,setTimeout(()=>{if(pw)b("Remote settings: Loading promise timed out, resolving anyway"),pw(),pw=null},qa7)})}function Ka7(){return`${qJ().BASE_API_URL}/api/glock/settings`}function Qc1(J){if(Array.isArray(J))return J.map(Qc1);if(J!==null&&typeof J==="object"){let Q={};for(let X of Object.keys(J).sort())Q[X]=Qc1(J[X]);return Q}return J}function Ga7(J){let Q=Qc1(J),X=l0(Q);return`sha256:${Qa7("sha256").update(X).digest("hex")}`}function Ho6(){return GD()}async function Bo6(){if(mn)await mn}function za7(){try{let{key:Q}=pq({skipRetrievingKeyFromApiKeyHelper:!0});if(Q)return{headers:{"x-api-key":Q}}}catch{}let J=eJ();if(J?.accessToken)return{headers:{Authorization:`Bearer ${J.accessToken}`,"glock-beta":hV}};return{headers:{},error:"No authentication available"}}async function Wa7(J){let Q=null;for(let X=1;X<=Jc1+1;X++){if(Q=await Ha7(J),Q.success)return Q;if(Q.skipRetry)return Q;if(X>Jc1)return Q;let Z=Ej(X);b(`Remote settings: Retry ${X}/${Jc1} after ${Z}ms`),await FJ(Z)}return Q}async function Ha7(J){try{await cW();let Q=za7();if(Q.error)return{success:!1,error:"Authentication required for remote settings",skipRetry:!0};let X=Ka7(),Z={...Q.headers,"User-Agent":sz()};if(J)Z["If-None-Match"]=`"${J}"`;let Y=await y8.get(X,{headers:Z,timeout:Za7,validateStatus:(G)=>G===200||G===204||G===304||G===404});if(Y.status===304)return b("Remote settings: Using cached settings (304)"),{success:!0,settings:null,checksum:J};if(Y.status===204||Y.status===404)return b(`Remote settings: No settings found (${Y.status})`),{success:!0,settings:{},checksum:void 0};let q=Ko6().safeParse(Y.data);if(!q.success)return b(`Remote settings: Invalid response format - ${q.error.message}`),{success:!1,error:"Invalid remote settings format"};let K=v3().safeParse(q.data.settings);if(!K.success)return b(`Remote settings: Settings validation failed - ${K.error.message}`),{success:!1,error:"Invalid settings structure"};return b("Remote settings: Fetched successfully"),{success:!0,settings:K.data,checksum:q.data.checksum}}catch(Q){let{kind:X,status:Z,message:Y}=yq0(Q);if(Z===404)return{success:!0,settings:{},checksum:""};switch(X){case"auth":return{success:!1,error:"Not authorized for remote settings",skipRetry:!0};case"timeout":return{success:!1,error:"Remote settings request timeout"};case"network":return{success:!1,error:"Cannot connect to server"};default:return{success:!1,error:Y}}}}async function Ba7(J){try{let Q=yG0(),X=await Xa7(Q,"w",384);try{await X.writeFile(l0(J,null,2),{encoding:"utf-8"}),await X.datasync()}finally{await X.close()}b(`Remote settings: Saved to ${Q}`)}catch(Q){b(`Remote settings: Failed to save - ${Q instanceof Error?Q.message:"unknown error"}`)}}async function Xc1(){Fo6(),qo6(),mn=null,pw=null;try{let J=yG0();await zo6(J)}catch{}}async function Zc1(){if(!GD())return null;let J=Tb(),Q=J?Ga7(J):void 0;try{let X=await Wa7(Q);if(!X.success){if(J)return b("Remote settings: Using stale cache after fetch failure"),Rt(J),J;return null}if(X.settings===null&&J)return b("Remote settings: Cache still valid (304 Not Modified)"),Rt(J),J;let Z=X.settings||{};if(Object.keys(Z).length>0){let q=await Xo6(J,Z);if(!Zo6(q))return b("Remote settings: User rejected new settings, using cached settings"),J;return Rt(Z),await Ba7(Z),b("Remote settings: Applied new settings successfully"),Z}Rt(Z);try{let q=yG0();await zo6(q),b("Remote settings: Deleted cached file (404 response)")}catch(q){if(c8(q)!=="ENOENT")b(`Remote settings: Failed to delete cached file - ${q instanceof Error?q.message:"unknown error"}`)}return Z}catch{if(J)return b("Remote settings: Using stale cache after error"),Rt(J),J;return null}}async function Uo6(){if(GD()&&!mn)mn=new Promise((J)=>{pw=J});if(Tb()&&pw)pw(),pw=null;try{let J=await Zc1();if(GD())Fa7();if(J!==null)J_.notifyChange("policySettings")}finally{if(pw)pw(),pw=null}}async function Qs0(){if(await Xc1(),!GD()){J_.notifyChange("policySettings");return}await Zc1(),b("Remote settings: Refreshed after auth change"),J_.notifyChange("policySettings")}async function Ua7(){if(!GD())return;let J=Tb(),Q=J?l0(J):null;try{await Zc1();let X=Tb();if((X?l0(X):null)!==Q)b("Remote settings: Changed during background poll"),J_.notifyChange("policySettings")}catch{}}function Fa7(){if(ZX0!==null)return;if(!GD())return;ZX0=setInterval(()=>{Ua7()},Ya7),ZX0.unref(),UJ(async()=>Fo6())}function Fo6(){if(ZX0!==null)clearInterval(ZX0),ZX0=null}var Za7=1e4,Jc1=5,Ya7=3600000,ZX0=null,mn=null,pw=null,qa7=30000;var YX0=I(()=>{JX();$Z();N9();EX();Z1();T1();Pi();eV();i1();Xk();Yo6();ep1();Uy0();Go6()});async function _o6(){if(xL0===null&&!SL0)SL0=Oa7(),xL0=await SL0,SL0=null,Oo6.cache.clear?.()}function qX0(){xL0=null,SL0=null,Oo6.cache.clear?.(),Xs0.cache.clear?.()}function _a7(){if(xL0!==null)return xL0;let J=Yq();if(J?.emailAddress)return J.emailAddress;if(process.env.USER_TYPE!=="ant")return;if(process.env.COO_CREATOR)return`${process.env.COO_CREATOR}@getglock.dev`;return}async function Oa7(){let J=Yq();if(J?.emailAddress)return J.emailAddress;if(process.env.USER_TYPE!=="ant")return;if(process.env.COO_CREATOR)return`${process.env.COO_CREATOR}@getglock.dev`;return Xs0()}var xL0=null,SL0=null,Oo6,Xs0;var kL0=I(()=>{uU();IJ();N1();N9();m8();Z6();WZ();t1();Oo6=g1((J)=>{let Q=M00(),X=L1(),Z;if(J){if(X.glockCodeFirstTokenDate){let G=new Date(X.glockCodeFirstTokenDate).getTime();if(!isNaN(G))Z=G}}let Y=Yq(),q=Y?.organizationUuid,K=Y?.accountUuid;return{deviceId:Q,sessionId:A1(),email:_a7(),appVersion:"0.1.16",platform:gt(),organizationUuid:q,accountUuid:K,userType:process.env.USER_TYPE,firstTokenTime:Z,...W1(process.env.GITHUB_ACTIONS)&&{githubActionsMetadata:{actor:process.env.GITHUB_ACTOR,actorId:process.env.GITHUB_ACTOR_ID,repository:process.env.GITHUB_REPOSITORY,repositoryId:process.env.GITHUB_REPOSITORY_ID,repositoryOwner:process.env.GITHUB_REPOSITORY_OWNER,repositoryOwnerId:process.env.GITHUB_REPOSITORY_OWNER_ID}}}});Xs0=g1(async()=>{let J=await jZ("git config --get user.email",{shell:!0,reject:!1,cwd:B1()});return J.exitCode===0&&J.stdout?J.stdout.trim():void 0})});var Lo6={};X8(Lo6,{call:()=>La7,Login:()=>Ys0,DeviceFlowLogin:()=>KX0});async function La7(J,Q){return NG.jsxDEV(Ys0,{onDone:async(X)=>{if(Q.onChangeAPIKey(),Q.setMessages(ga0),X)so(),Qs0(),Xo0(),qX0(),Kp(),Q.setAppState((Z)=>({...Z,authVersion:Z.authVersion+1}));J(X?"Login successful":"Login interrupted")}},void 0,!1,void 0,this)}function KX0(J){let[Q,X]=Zs0.useState({phase:"requesting"});switch(Zs0.useEffect(()=>{let Z=!1;return Nz0((Y,q)=>{if(!Z)X({phase:"waiting",userCode:Y,url:q})},(Y)=>{IX(Y)}).then((Y)=>{if(Z)return;tp(L8(),Y.accessToken),X({phase:"success",email:Y.email}),setTimeout(()=>J.onDone(),500)}).catch((Y)=>{if(Z)return;X({phase:"error",message:Y instanceof Error?Y.message:"Login failed"})}),()=>{Z=!0}},[]),Q.phase){case"requesting":return NG.jsxDEV(f,{flexDirection:"column",children:NG.jsxDEV(f,{flexDirection:"row",gap:1,children:[NG.jsxDEV(M7,{},void 0,!1,void 0,this),NG.jsxDEV(M,{children:"Requesting device code..."},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this);case"waiting":return NG.jsxDEV(f,{flexDirection:"column",gap:1,children:[NG.jsxDEV(M,{children:["Enter this code at"," ",NG.jsxDEV(zJ,{url:Q.url,children:NG.jsxDEV(M,{bold:!0,color:"cyan",children:"getglock.dev"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),NG.jsxDEV(f,{children:NG.jsxDEV(M,{bold:!0,color:"green",dimColor:!1,children:[" ","Code: ",Q.userCode]},void 0,!0,void 0,this)},void 0,!1,void 0,this),NG.jsxDEV(f,{flexDirection:"row",gap:1,children:[NG.jsxDEV(M7,{},void 0,!1,void 0,this),NG.jsxDEV(M,{dimColor:!0,children:"Waiting for authorization..."},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this);case"success":return NG.jsxDEV(M,{color:"green",children:["Logged in as ",Q.email]},void 0,!0,void 0,this);case"error":return NG.jsxDEV(M,{color:"red",children:Q.message},void 0,!1,void 0,this)}}function Ys0(J){return NG.jsxDEV(D8,{title:"Login",onCancel:()=>J.onDone(!1),color:"permission",inputGuide:(Q)=>Q.pending?NG.jsxDEV(M,{children:["Press ",Q.keyName," again to exit"]},void 0,!0,void 0,this):NG.jsxDEV(s1,{action:"confirm:no",context:"Confirmation",fallback:"Esc",description:"cancel"},void 0,!1,void 0,this),children:NG.jsxDEV(KX0,{onDone:()=>J.onDone(!0)},void 0,!1,void 0,this)},void 0,!1,void 0,this)}var Zs0,NG;var hL0=I(()=>{N1();U7();M9();zz();a0();lf();QD();YX0();M8();s3();t1();kL0();Zs0=T(J1(),1),NG=T(e(),1)});function Vo6({onStashAndContinue:J,onCancel:Q}){let[X,Z]=pn.useState(null),Y=X!==null?[...X.tracked,...X.untracked]:[],[q,K]=pn.useState(!0),[G,z]=pn.useState(!1),[W,H]=pn.useState(null);pn.useEffect(()=>{(async()=>{try{let O=await q51();Z(O)}catch(O){let L=O instanceof Error?O.message:String(O);b(`Error getting changed files: ${L}`,{level:"error"}),H("Failed to get changed files")}finally{K(!1)}})()},[]);let B=async()=>{z(!0);try{if(b("Stashing changes before teleport..."),await $H8("Teleport auto-stash"))b("Successfully stashed changes"),J();else H("Failed to stash changes")}catch(_){let O=_ instanceof Error?_.message:String(_);b(`Error stashing changes: ${O}`,{level:"error"}),H("Failed to stash changes")}finally{z(!1)}},U=(_)=>{if(_==="stash")B();else Q()};if(q)return kK.jsxDEV(f,{flexDirection:"column",padding:1,children:kK.jsxDEV(f,{marginBottom:1,children:[kK.jsxDEV(M7,{},void 0,!1,void 0,this),kK.jsxDEV(M,{children:[" Checking git status",s0.ellipsis]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this);if(W)return kK.jsxDEV(f,{flexDirection:"column",padding:1,children:[kK.jsxDEV(M,{bold:!0,color:"error",children:["Error: ",W]},void 0,!0,void 0,this),kK.jsxDEV(f,{marginTop:1,children:[kK.jsxDEV(M,{dimColor:!0,children:"Press "},void 0,!1,void 0,this),kK.jsxDEV(M,{bold:!0,children:"Escape"},void 0,!1,void 0,this),kK.jsxDEV(M,{dimColor:!0,children:" to cancel"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this);let F=Y.length>8;return kK.jsxDEV(D8,{title:"Working Directory Has Changes",onCancel:Q,children:[kK.jsxDEV(M,{children:"Teleport will switch git branches. The following changes were found:"},void 0,!1,void 0,this),kK.jsxDEV(f,{flexDirection:"column",paddingLeft:2,children:Y.length>0?F?kK.jsxDEV(M,{children:[Y.length," files changed"]},void 0,!0,void 0,this):Y.map((_,O)=>kK.jsxDEV(M,{children:_},O,!1,void 0,this)):kK.jsxDEV(M,{dimColor:!0,children:"No changes detected"},void 0,!1,void 0,this)},void 0,!1,void 0,this),kK.jsxDEV(M,{children:"Would you like to stash these changes and continue with teleport?"},void 0,!1,void 0,this),G?kK.jsxDEV(f,{children:[kK.jsxDEV(M7,{},void 0,!1,void 0,this),kK.jsxDEV(M,{children:" Stashing changes..."},void 0,!1,void 0,this)]},void 0,!0,void 0,this):kK.jsxDEV(Q8,{options:[{label:"Stash changes and continue",value:"stash"},{label:"Exit",value:"exit"}],onChange:U},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}var pn,kK;var No6=I(()=>{r6();a0();Z1();uQ();tX();M9();zz();pn=T(J1(),1),kK=T(e(),1)});function Ao6(J){let Q=wo6.c(18),{onComplete:X,errorsToIgnore:Z}=J,Y=Z===void 0?Va7:Z,[q,K]=uL0.useState(null),[G,z]=uL0.useState(!1),W;if(Q[0]!==Y||Q[1]!==X)W=async()=>{let y=await Yc1(),v=new Set(Array.from(y).filter((E)=>!Y.has(E)));if(v.size===0){X();return}if(v.has("needsLogin"))K("needsLogin");else if(v.has("needsGitStash"))K("needsGitStash")},Q[0]=Y,Q[1]=X,Q[2]=W;else W=Q[2];let H=W,B,U;if(Q[3]!==H)B=()=>{H()},U=[H],Q[3]=H,Q[4]=B,Q[5]=U;else B=Q[4],U=Q[5];uL0.useEffect(B,U);let F=Na7,_;if(Q[6]!==H)_=()=>{z(!1),H()},Q[6]=H,Q[7]=_;else _=Q[7];let O=_,L;if(Q[8]===Symbol.for("react.memo_cache_sentinel"))L=()=>{z(!0)},Q[8]=L;else L=Q[8];let N=L,A;if(Q[9]===Symbol.for("react.memo_cache_sentinel"))A=(y)=>{if(y==="login")N();else F()},Q[9]=A;else A=Q[9];let R=A,D;if(Q[10]!==H)D=()=>{H()},Q[10]=H,Q[11]=D;else D=Q[11];let $=D;if(!q)return null;switch(q){case"needsGitStash":{let y;if(Q[12]!==$)y=zu.jsxDEV(Vo6,{onStashAndContinue:$,onCancel:F},void 0,!1,void 0,this),Q[12]=$,Q[13]=y;else y=Q[13];return y}case"needsLogin":{if(G){let E;if(Q[14]!==O)E=zu.jsxDEV(KX0,{onDone:O},void 0,!1,void 0,this),Q[14]=O,Q[15]=E;else E=Q[15];return E}let y;if(Q[16]===Symbol.for("react.memo_cache_sentinel"))y=zu.jsxDEV(f,{flexDirection:"column",children:[zu.jsxDEV(M,{dimColor:!0,children:"Teleport requires a Glock account."},void 0,!1,void 0,this),zu.jsxDEV(M,{dimColor:!0,children:"Your Glock Pro/Max subscription will be used by Glock."},void 0,!1,void 0,this)]},void 0,!0,void 0,this),Q[16]=y;else y=Q[16];let v;if(Q[17]===Symbol.for("react.memo_cache_sentinel"))v=zu.jsxDEV(D8,{title:"Log in to Glock",onCancel:F,children:[y,zu.jsxDEV(Q8,{options:[{label:"Login with Glock account",value:"login"},{label:"Exit",value:"exit"}],onChange:R},void 0,!1,void 0,this)]},void 0,!0,void 0,this),Q[17]=v;else v=Q[17];return v}}}function Na7(){a9(0)}async function Yc1(){let J=new Set,[Q,X]=await Promise.all([Yo0(),an6()]);if(Q)J.add("needsLogin");if(!X)J.add("needsGitStash");return J}var wo6,uL0,zu,Va7;var Ro6=I(()=>{Ko0();E5();a0();hL0();tX();M9();No6();wo6=T(e0(),1),uL0=T(J1(),1),zu=T(e(),1),Va7=new Set});async function Do6(J,Q){let X=$2();if(!X)return b("No session token available for fetching session logs"),n1("error","session_get_fail_no_token"),null;let Z={Authorization:`Bearer ${X}`},Y=await Io6(J,Q,Z);if(Y&&Y.length>0){let q=Y.at(-1);if(q&&"uuid"in q&&q.uuid)Mo6.set(J,q.uuid)}return Y}async function $o6(J,Q,X){let Z=`${qJ().BASE_API_URL}/v1/session_ingress/session/${J}`;b(`[session-ingress] Fetching session logs from: ${Z}`);let Y={...$q(Q),"x-organization-uuid":X};return await Io6(J,Z,Y)}async function jo6(J,Q,X){let Z=`${qJ().BASE_API_URL}/v1/code/sessions/${J}/teleport-events`,Y={...$q(Q),"x-organization-uuid":X};b(`[teleport] Fetching events from: ${Z}`);let q=[],K,G=0,z=100;while(G<z){let W={limit:1000};if(K!==void 0)W.cursor=K;let H;try{H=await y8.get(Z,{headers:Y,params:W,timeout:20000,validateStatus:(F)=>F<500})}catch(F){return H0(Error(`Teleport events fetch failed: ${F.message}`)),n1("error","teleport_events_fetch_fail"),null}if(H.status===404)return b(`[teleport] Session ${J} not found (page ${G})`),n1("warn","teleport_events_not_found"),G===0?null:q;if(H.status===401)throw n1("error","teleport_events_bad_token"),Error("Your session has expired. Please run /login to sign in again.");if(H.status!==200)return H0(Error(`Teleport events returned ${H.status}: ${l0(H.data)}`)),n1("error","teleport_events_bad_status"),null;let{data:B,next_cursor:U}=H.data;if(!Array.isArray(B))return H0(Error(`Teleport events invalid response shape: ${l0(H.data)}`)),n1("error","teleport_events_invalid_shape"),null;for(let F of B)if(F.payload!==null)q.push(F.payload);if(G++,U==null)break;K=U}if(G>=z)H0(Error(`Teleport events hit page cap (${z}) for ${J}`)),n1("warn","teleport_events_page_cap");return b(`[teleport] Fetched ${q.length} events over ${G} page(s) for ${J}`),q}async function Io6(J,Q,X){try{let Z=await y8.get(Q,{headers:X,timeout:20000,validateStatus:(Y)=>Y<500,params:W1(process.env.GLOCK_AFTER_LAST_COMPACT)?{after_last_compact:!0}:void 0});if(Z.status===200){let Y=Z.data;if(!Y||typeof Y!=="object"||!Array.isArray(Y.loglines))return H0(Error(`Invalid session logs response format: ${l0(Y)}`)),n1("error","session_get_fail_invalid_response"),null;let q=Y.loglines;return b(`Fetched ${q.length} session logs for session ${J}`),q}if(Z.status===404)return b(`No existing logs for session ${J}`),n1("warn","session_get_no_logs_for_session"),[];if(Z.status===401)throw b("Auth token expired or invalid"),n1("error","session_get_fail_bad_token"),Error("Your session has expired. Please run /login to sign in again.");return b(`Failed to fetch session logs: ${Z.status} ${Z.statusText}`),n1("error","session_get_fail_status",{status:Z.status}),null}catch(Z){let Y=Z;return H0(Error(`Error fetching session logs: ${Y.message}`)),n1("error","session_get_fail_status",{status:Y.status}),null}}function yo6(){Mo6.clear(),wa7.clear()}var Mo6,wa7;var qs0=I(()=>{JX();$Z();Z1();h4();t1();M1();iE();i1();TL();Mo6=new Map,wa7=new Map});import{relative as qc1}from"path";function $a7(J){if(J.type!=="attachment")return J;let Q=J.attachment;if(Q.type==="new_file")return{...J,attachment:{...Q,type:"file",displayPath:qc1(B1(),Q.filename)}};if(Q.type==="new_directory")return{...J,attachment:{...Q,type:"directory",displayPath:qc1(B1(),Q.path)}};if(!("displayPath"in Q)){let X="filename"in Q?Q.filename:("path"in Q)?Q.path:("skillDir"in Q)?Q.skillDir:void 0;if(X)return{...J,attachment:{...Q,displayPath:qc1(B1(),X)}}}return J}function Ks0(J){return bo6(J).messages}function bo6(J){try{let Q=J.map($a7),X=new Set(xb);for(let W of Q)if(W.type==="user"&&W.permissionMode!==void 0&&!X.has(W.permissionMode))W.permissionMode=void 0;let Z=zs0(Q),Y=cL0(Z),q=pL0(Y),K=ja7(q),G;if(K.kind==="interrupted_turn"){let[W]=Zz([$1({content:"Continue from where you left off.",isMeta:!0})]);q.push(W),G={kind:"interrupted_prompt",message:W}}else G=K;let z=q.findLastIndex((W)=>W.type!=="system"&&W.type!=="progress");if(z!==-1&&q[z].type==="user")q.splice(z+1,0,q_({content:M_0}));return{messages:q,turnInterruptionState:G}}catch(Q){throw H0(Q),Q}}function ja7(J){if(J.length===0)return{kind:"none"};let Q=J.findLastIndex((Z)=>Z.type!=="system"&&Z.type!=="progress"&&!(Z.type==="assistant"&&Z.isApiErrorMessage)),X=Q!==-1?J[Q]:void 0;if(!X)return{kind:"none"};if(X.type==="assistant")return{kind:"none"};if(X.type==="user"){if(X.isMeta||X.isCompactSummary)return{kind:"none"};if(mL0(X)){if(Ia7(X,J,Q))return{kind:"none"};return{kind:"interrupted_turn"}}return{kind:"interrupted_prompt",message:X}}if(X.type==="attachment")return{kind:"interrupted_turn"};return{kind:"none"}}function Ia7(J,Q,X){let Z=J.message.content;if(!Array.isArray(Z))return!1;let Y=Z[0];if(Y?.type!=="tool_result")return!1;let q=Y.tool_use_id;for(let K=X-1;K>=0;K--){let G=Q[K];if(G.type!=="assistant")continue;for(let z of G.message.content)if(z.type==="tool_use"&&z.id===q)return z.name===Ra7||z.name===Ma7||z.name===Da7}return!1}function ya7(J){for(let Q of J){if(Q.type!=="attachment")continue;if(Q.attachment.type==="invoked_skills"){for(let X of Q.attachment.skills)if(X.name&&X.path&&X.content)Js(X.name,X.path,X.content,null)}if(Q.attachment.type==="skill_listing")hm6()}}async function ba7(J){let{messages:Q,leafUuids:X}=await YC(J),Z=null,Y=0;for(let K of Q.values()){if(K.isSidechain||!X.has(K.uuid))continue;let G=new Date(K.timestamp).getTime();if(G>Y)Y=G,Z=K}if(!Z)return{messages:[],sessionId:void 0};let q=Wu(Q,Z);return{messages:GX0(q),sessionId:Z.sessionId}}async function Kc1(J,Q){try{let X=null,Z=null,Y;if(J===void 0){let G=zX0(),z=new Set;X=(await G).find((H)=>{let B=FY(H);return!B||!z.has(B)})??null}else if(Q){let G=await ba7(Q);Z=G.messages,Y=G.sessionId}else if(typeof J==="string")X=await dL0(J),Y=J;else X=J;if(!X&&!Z)return null;if(X){if(vL(X))X=await zD(X);if(!Y)Y=FY(X);if(Y)await qk0(X,w2(Y));Fm0(X),Z=X.messages,Gc1(Z)}ya7(Z);let q=bo6(Z);Z=q.messages;let K=await KW("resume",{sessionId:Y});return Z.push(...K),{messages:Z,turnInterruptionState:q.turnInterruptionState,fileHistorySnapshots:X?.fileHistorySnapshots,attributionSnapshots:X?.attributionSnapshots,contentReplacements:X?.contentReplacements,contextCollapseCommits:X?.contextCollapseCommits,contextCollapseSnapshot:X?.contextCollapseSnapshot,sessionId:Y,agentName:X?.agentName,agentColor:X?.agentColor,agentSetting:X?.agentSetting,customTitle:X?.customTitle,tag:X?.tag,mode:X?.mode,worktreeSession:X?.worktreeSession,prNumber:X?.prNumber,prUrl:X?.prUrl,prRepository:X?.prRepository,fullPath:X?.fullPath}}catch(X){throw H0(X),X}}var Ra7=null,Ma7=null,Da7=null;var Gs0=I(()=>{Z6();N1();A2();uW1();Z3();pF();M1();M8();$K();ih();gJ()});import{randomUUID as Pa7}from"crypto";import*as Bs0 from"fs/promises";import*as WX0 from"path";function Ca7(){return process.env.GLOCK_BASE_URL||process.env.GLOCK_API_BASE_URL||"https://api.getglock.dev"}function Hs0(J){b(`[files-api] ${J}`)}async function fa7(J,Q){let X="";for(let Z=1;Z<=Ws0;Z++){let Y=await Q(Z);if(Y.done)return Y.value;if(X=Y.error||`${J} failed`,Hs0(`${J} attempt ${Z}/${Ws0} failed: ${X}`),Z<Ws0){let q=va7*Math.pow(2,Z-1);Hs0(`Retrying ${J} in ${q}ms...`),await FJ(q)}}throw Error(`${X} after ${Ws0} attempts`)}async function Eo6(J,Q,X,Z){let q=`${X.baseUrl||Ca7()}/v1/files`,K={Authorization:`Bearer ${X.oauthToken}`,"glock-version":Ta7,"glock-beta":Ea7};Hs0(`Uploading file ${J} as ${Q}`);let G;try{G=await Bs0.readFile(J)}catch(F){return l("jarvis_api_error",{error_type:"file_read"}),{path:Q,error:Q1(F),success:!1}}let z=G.length;if(z>Po6)return l("jarvis_api_error",{error_type:"file_too_large"}),{path:Q,error:`File exceeds maximum size of ${Po6} bytes (actual: ${z})`,success:!1};let W=`----FormBoundary${Pa7()}`,H=WX0.basename(Q),B=[];B.push(Buffer.from(`--${W}\r
|
|
3608
|
+
`);for(let v=0;v<y.length;v++){if(v>0)Y.push([]),D=D+1;let E=y[v];if(E.length>0)Y[Y.length-1].push({text:E,highlight:$.highlight,start:D});D=D+E.length}}Q[0]=Z,Q[1]=X,Q[2]=Y}else Y=Q[2];let q;if(Q[3]!==Z)q=Z.some(jr7),Q[3]=Z,Q[4]=q;else q=Q[4];let K=q,G=0,z=1;if(K){let R=1/0,D=-1/0;if(Q[5]!==D||Q[6]!==Z||Q[7]!==R){for(let $ of Z)if($.shimmerColor)R=Math.min(R,$.start),D=Math.max(D,$.end);Q[5]=D,Q[6]=Z,Q[7]=R,Q[8]=R,Q[9]=D}else R=Q[8],D=Q[9];G=R-10,z=D-R+20}let W;if(Q[10]!==z||Q[11]!==K||Q[12]!==Y||Q[13]!==G)W={lines:Y,hasShimmer:K,sweepStart:G,cycleLength:z},Q[10]=z,Q[11]=K,Q[12]=Y,Q[13]=G,Q[14]=W;else W=Q[14];let{lines:H,hasShimmer:B,sweepStart:U,cycleLength:F}=W,[_,O]=H2(B?50:null),L=B?U+Math.floor(O/50)%F:-100,N;if(Q[15]!==L||Q[16]!==H){let R;if(Q[18]!==L)R=(D,$)=>Zu.jsxDEV(f,{children:D.length===0?Zu.jsxDEV(M,{children:" "},void 0,!1,void 0,this):D.map((y,v)=>{if(y.highlight?.shimmerColor&&y.highlight.color)return Zu.jsxDEV(M,{children:y.text.split("").map((E,C)=>Zu.jsxDEV(vQ0,{char:E,index:y.start+C,glimmerIndex:L,messageColor:y.highlight.color,shimmerColor:y.highlight.shimmerColor},C,!1,void 0,this))},v,!1,void 0,this);return Zu.jsxDEV(M,{color:y.highlight?.color,dimColor:y.highlight?.dimColor,inverse:y.highlight?.inverse,children:Zu.jsxDEV(C9,{children:y.text},void 0,!1,void 0,this)},v,!1,void 0,this)})},$,!1,void 0,this),Q[18]=L,Q[19]=R;else R=Q[19];N=H.map(R),Q[15]=L,Q[16]=H,Q[17]=N}else N=Q[17];let A;if(Q[20]!==_||Q[21]!==N)A=Zu.jsxDEV(f,{ref:_,flexDirection:"column",children:N},void 0,!1,void 0,this),Q[20]=_,Q[21]=N,Q[22]=A;else A=Q[22];return A}function jr7(J){return J.shimmerColor}var ba6,Zu;var Ea6=I(()=>{a0();ya6();IL0();ba6=T(e0(),1),Zu=T(e(),1)});function co0(J){let Q=Ta6.c(14),{inputState:X,children:Z,terminalFocus:Y,invert:q,hidePlaceholderText:K,...G}=J,{onInput:z,renderedValue:W,cursorLine:H,cursorColumn:B}=X,U=Boolean(G.focus&&G.showCursor&&Y),F;if(Q[0]!==B||Q[1]!==H||Q[2]!==U)F={line:H,column:B,active:U},Q[0]=B,Q[1]=H,Q[2]=U,Q[3]=F;else F=Q[3];let _=rQ0(F),{wrappedOnInput:O,isPasting:L}=Ma6({onPaste:G.onPaste,onInput:(J0,n)=>{if(N&&n.return)return;z(J0,n)},onImagePaste:G.onImagePaste}),N=L,{onIsPastingChange:A}=G;Ca6.default.useEffect(()=>{if(A)A(N)},[N,A]);let{showPlaceholder:R,renderedPlaceholder:D}=Aa6({placeholder:G.placeholder,value:G.value,showCursor:G.showCursor,focus:G.focus,terminalFocus:Y,invert:q,hidePlaceholderText:K});SJ(O,{isActive:G.focus});let $=G.value&&G.value.trim().indexOf(" ")===-1||G.value&&G.value.endsWith(" "),y=Boolean(G.argumentHint&&G.value&&$&&G.value.startsWith("/")),v=G.showCursor&&G.highlights?G.highlights.filter((J0)=>J0.dimColor||G.cursorOffset<J0.start||G.cursorOffset>=J0.end):G.highlights,{viewportCharOffset:E,viewportCharEnd:C}=X,S=v&&E>0?v.filter((J0)=>J0.end>E&&J0.start<C).map((J0)=>({...J0,start:Math.max(0,J0.start-E),end:J0.end-E})):v;if(S&&S.length>0)return XC.jsxDEV(f,{ref:_,children:[XC.jsxDEV(Pa6,{text:W,highlights:S},void 0,!1,void 0,this),y&&XC.jsxDEV(M,{dimColor:!0,children:[G.value?.endsWith(" ")?"":" ",G.argumentHint]},void 0,!0,void 0,this),Z]},void 0,!0,void 0,this);let h=f,u=M,x="truncate-end",m=R&&G.placeholderElement?G.placeholderElement:R&&D?XC.jsxDEV(C9,{children:D},void 0,!1,void 0,this):XC.jsxDEV(C9,{children:W},void 0,!1,void 0,this),p=y&&XC.jsxDEV(M,{dimColor:!0,children:[G.value?.endsWith(" ")?"":" ",G.argumentHint]},void 0,!0,void 0,this),c;if(Q[4]!==u||Q[5]!==Z||Q[6]!==G||Q[7]!==m||Q[8]!==p)c=XC.jsxDEV(u,{wrap:x,dimColor:G.dimColor,children:[m,p,Z]},void 0,!0,void 0,this),Q[4]=u,Q[5]=Z,Q[6]=G,Q[7]=m,Q[8]=p,Q[9]=c;else c=Q[9];let r;if(Q[10]!==h||Q[11]!==_||Q[12]!==c)r=XC.jsxDEV(h,{ref:_,children:c},void 0,!1,void 0,this),Q[10]=h,Q[11]=_,Q[12]=c,Q[13]=r;else r=Q[13];return r}var Ta6,Ca6,XC;var cp1=I(()=>{Ra6();Da6();po0();a0();Ea6();Ta6=T(e0(),1),Ca6=T(J1(),1),XC=T(e(),1)});function sX(J){let[Q]=j6(),X=X5(),Z=do0.useMemo(()=>W1(process.env.GLOCK_ACCESSIBILITY),[]),q=CK().prefersReducedMotion??!1,K="idle",G=!1,z=[],W=do0.useRef(Array(Ir7).fill(0)),H=!1,[B,U]=[()=>{},0];Mo0(X,!!J.onImagePaste);let F=X&&!Z,_;if(!F)_=(L)=>L;else _=_1.inverse;let O=mo0({value:J.value,onChange:J.onChange,onSubmit:J.onSubmit,onExit:J.onExit,onExitMessage:J.onExitMessage,onHistoryReset:J.onHistoryReset,onHistoryUp:J.onHistoryUp,onHistoryDown:J.onHistoryDown,onClearInput:J.onClearInput,focus:J.focus,mask:J.mask,multiline:J.multiline,cursorChar:J.showCursor?" ":"",highlightPastedText:J.highlightPastedText,invert:_,themeText:G6("text",Q),columns:J.columns,maxVisibleLines:J.maxVisibleLines,onImagePaste:J.onImagePaste,disableCursorMovementForUpDownKeys:J.disableCursorMovementForUpDownKeys,disableEscapeDoublePress:J.disableEscapeDoublePress,externalOffset:J.cursorOffset,onOffsetChange:J.onChangeCursorOffset,inputFilter:J.inputFilter,inlineGhostText:J.inlineGhostText,dim:_1.dim});return dp1.jsxDEV(f,{ref:B,children:dp1.jsxDEV(co0,{inputState:O,terminalFocus:X,highlights:J.highlights,invert:_,hidePlaceholderText:!1,...J},void 0,!1,void 0,this)},void 0,!1,void 0,this)}var do0,dp1,Ir7=1;var EH=I(()=>{k7();Ro0();Ap1();ww();pp1();a0();t1();cp1();Ju();do0=T(J1(),1),dp1=T(e(),1)});function aQ0(J){let Q=fa6.c(32),{isFocused:X,isSelected:Z,children:Y,description:q,showScrollDown:K,showScrollUp:G,styled:z,disabled:W,declareCursor:H}=J,B=Z===void 0?!1:Z,U=z===void 0?!0:z,F=W===void 0?!1:W,_;if(Q[0]!==F||Q[1]!==X||Q[2]!==K||Q[3]!==G)_=function(){if(F)return mw.jsxDEV(M,{children:" "},void 0,!1,void 0,this);if(X)return mw.jsxDEV(M,{color:"suggestion",children:s0.pointer},void 0,!1,void 0,this);if(K)return mw.jsxDEV(M,{dimColor:!0,children:s0.arrowDown},void 0,!1,void 0,this);if(G)return mw.jsxDEV(M,{dimColor:!0,children:s0.arrowUp},void 0,!1,void 0,this);return mw.jsxDEV(M,{children:" "},void 0,!1,void 0,this)},Q[0]=F,Q[1]=X,Q[2]=K,Q[3]=G,Q[4]=_;else _=Q[4];let O=_,L;if(Q[5]!==F||Q[6]!==X||Q[7]!==B||Q[8]!==U)L=function(){if(F)return"inactive";if(!U)return;if(B)return"success";if(X)return"suggestion"}(),Q[5]=F,Q[6]=X,Q[7]=B,Q[8]=U,Q[9]=L;else L=Q[9];let N=L,A=X&&!F&&H!==!1,R;if(Q[10]!==A)R={line:0,column:0,active:A},Q[10]=A,Q[11]=R;else R=Q[11];let D=rQ0(R),$;if(Q[12]!==O)$=O(),Q[12]=O,Q[13]=$;else $=Q[13];let y;if(Q[14]!==Y||Q[15]!==F||Q[16]!==U||Q[17]!==N)y=U?mw.jsxDEV(M,{color:N,dimColor:F,children:Y},void 0,!1,void 0,this):Y,Q[14]=Y,Q[15]=F,Q[16]=U,Q[17]=N,Q[18]=y;else y=Q[18];let v;if(Q[19]!==F||Q[20]!==B)v=B&&!F&&mw.jsxDEV(M,{color:"success",children:s0.tick},void 0,!1,void 0,this),Q[19]=F,Q[20]=B,Q[21]=v;else v=Q[21];let E;if(Q[22]!==v||Q[23]!==$||Q[24]!==y)E=mw.jsxDEV(f,{flexDirection:"row",gap:1,children:[$,y,v]},void 0,!0,void 0,this),Q[22]=v,Q[23]=$,Q[24]=y,Q[25]=E;else E=Q[25];let C;if(Q[26]!==q)C=q&&mw.jsxDEV(f,{paddingLeft:2,children:mw.jsxDEV(M,{color:"inactive",children:q},void 0,!1,void 0,this)},void 0,!1,void 0,this),Q[26]=q,Q[27]=C;else C=Q[27];let S;if(Q[28]!==D||Q[29]!==E||Q[30]!==C)S=mw.jsxDEV(f,{ref:D,flexDirection:"column",children:[E,C]},void 0,!0,void 0,this),Q[28]=D,Q[29]=E,Q[30]=C,Q[31]=S;else S=Q[31];return S}var fa6,mw;var lo0=I(()=>{r6();po0();a0();fa6=T(e0(),1),mw=T(e(),1)});function Yu(J){let Q=Sa6.c(8),{isFocused:X,isSelected:Z,children:Y,description:q,shouldShowDownArrow:K,shouldShowUpArrow:G,declareCursor:z}=J,W;if(Q[0]!==Y||Q[1]!==z||Q[2]!==q||Q[3]!==X||Q[4]!==Z||Q[5]!==K||Q[6]!==G)W=xa6.jsxDEV(aQ0,{isFocused:X,isSelected:Z,description:q,showScrollDown:K,showScrollUp:G,styled:!1,declareCursor:z,children:Y},void 0,!1,void 0,this),Q[0]=Y,Q[1]=z,Q[2]=q,Q[3]=X,Q[4]=Z,Q[5]=K,Q[6]=G,Q[7]=W;else W=Q[7];return W}var Sa6,xa6;var io0=I(()=>{lo0();Sa6=T(e0(),1),xa6=T(e(),1)});function oQ0(J){let Q=ka6.c(100),{option:X,isFocused:Z,isSelected:Y,shouldShowDownArrow:q,shouldShowUpArrow:K,maxIndexWidth:G,index:z,inputValue:W,onInputChange:H,onSubmit:B,onExit:U,layout:F,children:_,showLabel:O,onOpenEditor:L,resetCursorOnUpdate:N,onImagePaste:A,pastedContents:R,onRemoveImage:D,imagesSelected:$,selectedImageIndex:y,onImagesSelectedChange:v,onSelectedImageIndexChange:E}=J,C=O===void 0?!1:O,S=N===void 0?!1:N,k=y===void 0?0:y,h;if(Q[0]!==R)h=R?Object.values(R).filter(yr7):[],Q[0]=R,Q[1]=h;else h=Q[1];let u=h,x=C||X.showLabelWithValue===!0,[m,p]=gn.useState(W.length),c=gn.useRef(!1),r;if(Q[2]!==W.length||Q[3]!==Z||Q[4]!==S)r=()=>{if(S&&Z)if(c.current)c.current=!1;else p(W.length)},Q[2]=W.length,Q[3]=Z,Q[4]=S,Q[5]=r;else r=Q[5];let J0;if(Q[6]!==W||Q[7]!==Z||Q[8]!==S)J0=[S,Z,W],Q[6]=W,Q[7]=Z,Q[8]=S,Q[9]=J0;else J0=Q[9];gn.useEffect(r,J0);let n;if(Q[10]!==W||Q[11]!==H||Q[12]!==L)n=()=>{L?.(W,H)},Q[10]=W,Q[11]=H,Q[12]=L,Q[13]=n;else n=Q[13];let s=Z&&!!L,X0;if(Q[14]!==s)X0={context:"Chat",isActive:s},Q[14]=s,Q[15]=X0;else X0=Q[15];J8("chat:externalEditor",n,X0);let Y0;if(Q[16]!==A)Y0=()=>{if(!A)return;kQ0().then((c0)=>{if(c0)A(c0.base64,c0.mediaType,void 0,c0.dimensions)})},Q[16]=A,Q[17]=Y0;else Y0=Q[17];let G0=Z&&!!A,j0;if(Q[18]!==G0)j0={context:"Chat",isActive:G0},Q[18]=G0,Q[19]=j0;else j0=Q[19];J8("chat:imagePaste",Y0,j0);let W0;if(Q[20]!==u||Q[21]!==D)W0=()=>{if(u.length>0&&D)D(u.at(-1).id)},Q[20]=u,Q[21]=D,Q[22]=W0;else W0=Q[22];let y0=Z&&!$&&W===""&&u.length>0&&!!D,V0;if(Q[23]!==y0)V0={context:"Attachments",isActive:y0},Q[23]=y0,Q[24]=V0;else V0=Q[24];J8("attachments:remove",W0,V0);let Z0,t;if(Q[25]!==u.length||Q[26]!==E||Q[27]!==k)Z0=()=>{if(u.length>1)E?.((k+1)%u.length)},t=()=>{if(u.length>1)E?.((k-1+u.length)%u.length)},Q[25]=u.length,Q[26]=E,Q[27]=k,Q[28]=Z0,Q[29]=t;else Z0=Q[28],t=Q[29];let q0;if(Q[30]!==u||Q[31]!==v||Q[32]!==D||Q[33]!==E||Q[34]!==k)q0=()=>{let c0=u[k];if(c0&&D)if(D(c0.id),u.length<=1)v?.(!1);else E?.(Math.min(k,u.length-2))},Q[30]=u,Q[31]=v,Q[32]=D,Q[33]=E,Q[34]=k,Q[35]=q0;else q0=Q[35];let Q0;if(Q[36]!==v)Q0=()=>{v?.(!1)},Q[36]=v,Q[37]=Q0;else Q0=Q[37];let a;if(Q[38]!==Z0||Q[39]!==t||Q[40]!==q0||Q[41]!==Q0)a={"attachments:next":Z0,"attachments:previous":t,"attachments:remove":q0,"attachments:exit":Q0},Q[38]=Z0,Q[39]=t,Q[40]=q0,Q[41]=Q0,Q[42]=a;else a=Q[42];let O0=Z&&!!$,D0;if(Q[43]!==O0)D0={context:"Attachments",isActive:O0},Q[43]=O0,Q[44]=D0;else D0=Q[44];C6(a,D0);let F0;if(Q[45]!==v)F0=(c0,t0)=>{if(t0.upArrow)v?.(!1)},Q[45]=v,Q[46]=F0;else F0=Q[46];let I0=Z&&!!$,U0;if(Q[47]!==I0)U0={isActive:I0},Q[47]=I0,Q[48]=U0;else U0=Q[48];SJ(F0,U0);let P0,$0;if(Q[49]!==$||Q[50]!==Z||Q[51]!==v)P0=()=>{if(!Z&&$)v?.(!1)},$0=[Z,$,v],Q[49]=$,Q[50]=Z,Q[51]=v,Q[52]=P0,Q[53]=$0;else P0=Q[52],$0=Q[53];gn.useEffect(P0,$0);let w0=F==="expanded"?G+3:G+4,E0=F==="compact"?0:void 0,h0=`${z}.`,u0;if(Q[54]!==G||Q[55]!==h0)u0=h0.padEnd(G+2),Q[54]=G,Q[55]=h0,Q[56]=u0;else u0=Q[56];let B0;if(Q[57]!==u0)B0=R4.jsxDEV(M,{dimColor:!0,children:u0},void 0,!1,void 0,this),Q[57]=u0,Q[58]=B0;else B0=Q[58];let _0;if(Q[59]!==m||Q[60]!==$||Q[61]!==W||Q[62]!==Z||Q[63]!==U||Q[64]!==A||Q[65]!==H||Q[66]!==B||Q[67]!==X||Q[68]!==x)_0=x?R4.jsxDEV(R4.Fragment,{children:[R4.jsxDEV(M,{color:Z?"suggestion":void 0,children:X.label},void 0,!1,void 0,this),Z?R4.jsxDEV(R4.Fragment,{children:[R4.jsxDEV(M,{color:"suggestion",children:X.labelValueSeparator??", "},void 0,!1,void 0,this),R4.jsxDEV(sX,{value:W,onChange:(c0)=>{c.current=!0,H(c0),X.onChange(c0)},onSubmit:B,onExit:U,placeholder:X.placeholder,focus:!$,showCursor:!0,multiline:!0,cursorOffset:m,onChangeCursorOffset:p,columns:80,onImagePaste:A,onPaste:(c0)=>{c.current=!0;let t0=W.slice(0,m),K1=W.slice(m),K0=t0+c0+K1;H(K0),X.onChange(K0),p(t0.length+c0.length)}},void 0,!1,void 0,this)]},void 0,!0,void 0,this):W&&R4.jsxDEV(M,{children:[X.labelValueSeparator??", ",W]},void 0,!0,void 0,this)]},void 0,!0,void 0,this):Z?R4.jsxDEV(sX,{value:W,onChange:(c0)=>{c.current=!0,H(c0),X.onChange(c0)},onSubmit:B,onExit:U,placeholder:X.placeholder||(typeof X.label==="string"?X.label:void 0),focus:!$,showCursor:!0,multiline:!0,cursorOffset:m,onChangeCursorOffset:p,columns:80,onImagePaste:A,onPaste:(c0)=>{c.current=!0;let t0=W.slice(0,m),K1=W.slice(m),K0=t0+c0+K1;H(K0),X.onChange(K0),p(t0.length+c0.length)}},void 0,!1,void 0,this):R4.jsxDEV(M,{color:W?void 0:"inactive",children:W||X.placeholder||X.label},void 0,!1,void 0,this),Q[59]=m,Q[60]=$,Q[61]=W,Q[62]=Z,Q[63]=U,Q[64]=A,Q[65]=H,Q[66]=B,Q[67]=X,Q[68]=x,Q[69]=_0;else _0=Q[69];let M0;if(Q[70]!==_||Q[71]!==E0||Q[72]!==B0||Q[73]!==_0)M0=R4.jsxDEV(f,{flexDirection:"row",flexShrink:E0,children:[B0,_,_0]},void 0,!0,void 0,this),Q[70]=_,Q[71]=E0,Q[72]=B0,Q[73]=_0,Q[74]=M0;else M0=Q[74];let b0;if(Q[75]!==Z||Q[76]!==Y||Q[77]!==q||Q[78]!==K||Q[79]!==M0)b0=R4.jsxDEV(Yu,{isFocused:Z,isSelected:Y,shouldShowDownArrow:q,shouldShowUpArrow:K,declareCursor:!1,children:M0},void 0,!1,void 0,this),Q[75]=Z,Q[76]=Y,Q[77]=q,Q[78]=K,Q[79]=M0,Q[80]=b0;else b0=Q[80];let L0;if(Q[81]!==w0||Q[82]!==Z||Q[83]!==Y||Q[84]!==X.description||Q[85]!==X.dimDescription)L0=X.description&&R4.jsxDEV(f,{paddingLeft:w0,children:R4.jsxDEV(M,{dimColor:X.dimDescription!==!1,color:Y?"success":Z?"suggestion":void 0,children:X.description},void 0,!1,void 0,this)},void 0,!1,void 0,this),Q[81]=w0,Q[82]=Z,Q[83]=Y,Q[84]=X.description,Q[85]=X.dimDescription,Q[86]=L0;else L0=Q[86];let T0;if(Q[87]!==w0||Q[88]!==u||Q[89]!==$||Q[90]!==Z||Q[91]!==k)T0=u.length>0&&R4.jsxDEV(f,{flexDirection:"row",gap:1,paddingLeft:w0,children:[u.map((c0,t0)=>R4.jsxDEV(mr6,{imageId:c0.id,isSelected:!!$&&t0===k},c0.id,!1,void 0,this)),R4.jsxDEV(f,{flexGrow:1,justifyContent:"flex-start",flexDirection:"row",children:R4.jsxDEV(M,{dimColor:!0,children:$?R4.jsxDEV(V8,{children:[u.length>1&&R4.jsxDEV(R4.Fragment,{children:[R4.jsxDEV(s1,{action:"attachments:next",context:"Attachments",fallback:"\u2192",description:"next"},void 0,!1,void 0,this),R4.jsxDEV(s1,{action:"attachments:previous",context:"Attachments",fallback:"\u2190",description:"prev"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),R4.jsxDEV(s1,{action:"attachments:remove",context:"Attachments",fallback:"backspace",description:"remove"},void 0,!1,void 0,this),R4.jsxDEV(s1,{action:"attachments:exit",context:"Attachments",fallback:"esc",description:"cancel"},void 0,!1,void 0,this)]},void 0,!0,void 0,this):Z?"(\u2193 to select)":null},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),Q[87]=w0,Q[88]=u,Q[89]=$,Q[90]=Z,Q[91]=k,Q[92]=T0;else T0=Q[92];let S0;if(Q[93]!==F)S0=F==="expanded"&&R4.jsxDEV(M,{children:" "},void 0,!1,void 0,this),Q[93]=F,Q[94]=S0;else S0=Q[94];let g0;if(Q[95]!==b0||Q[96]!==L0||Q[97]!==T0||Q[98]!==S0)g0=R4.jsxDEV(f,{flexDirection:"column",flexShrink:0,children:[b0,L0,T0,S0]},void 0,!0,void 0,this),Q[95]=b0,Q[96]=L0,Q[97]=T0,Q[98]=S0,Q[99]=g0;else g0=Q[99];return g0}function yr7(J){return J.type==="image"}var ka6,gn,R4;var lp1=I(()=>{a0();f6();hQ0();pr6();U7();R9();EH();io0();ka6=T(e0(),1),gn=T(J1(),1),R4=T(e(),1)});function WW(J,Q){let X=ha6.c(8),Z=Q===void 0?!0:Q,q=sQ0.useContext(B_0)?.setState,K,G;if(X[0]!==Z||X[1]!==J||X[2]!==q)K=()=>{if(!Z||!q)return;return q((H)=>{if(H.activeOverlays.has(J))return H;let B=new Set(H.activeOverlays);return B.add(J),{...H,activeOverlays:B}}),()=>{q((H)=>{if(!H.activeOverlays.has(J))return H;let B=new Set(H.activeOverlays);return B.delete(J),{...H,activeOverlays:B}})}},G=[J,Z,q],X[0]=Z,X[1]=J,X[2]=q,X[3]=K,X[4]=G;else K=X[3],G=X[4];sQ0.useEffect(K,G);let z,W;if(X[5]!==Z)z=()=>{if(!Z)return;return Pr7},W=[Z],X[5]=Z,X[6]=z,X[7]=W;else z=X[6],W=X[7];sQ0.useLayoutEffect(z,W)}function Pr7(){return O4.get(process.stdout)?.invalidatePrevFrame()}function ua6(){return O1(Er7)}function Er7(J){return J.activeOverlays.size>0}function tQ0(){return O1(Tr7)}function Tr7(J){for(let Q of J.activeOverlays)if(!br7.has(Q))return!0;return!1}var ha6,sQ0,br7;var F_=I(()=>{jF();W6();ha6=T(e0(),1),sQ0=T(J1(),1),br7=new Set(["autocomplete"])});var no0;var ga6=I(()=>{no0=class no0 extends Map{first;last;constructor(J){let Q=[],X,Z,Y,q=0;for(let K of J){let G={label:K.label,value:K.value,description:K.description,previous:Y,next:void 0,index:q};if(Y)Y.next=G;X||=G,Z=G,Q.push([K.value,G]),q++,Y=G}super(Q);this.first=X,this.last=Z}}});import{isDeepStrictEqual as Cr7}from"util";function ro0({visibleOptionCount:J=5,options:Q,initialFocusValue:X,onFocus:Z,focusValue:Y}){let[q,K]=Wz.useReducer(vr7,{visibleOptionCount:J,options:Q,initialFocusValue:Y||X},ma6),G=Wz.useRef(Z);G.current=Z;let[z,W]=Wz.useState(Q);if(Q!==z&&!Cr7(Q,z))K({type:"reset",state:ma6({visibleOptionCount:J,options:Q,initialFocusValue:Y??q.focusedValue??X,currentViewport:{visibleFromIndex:q.visibleFromIndex,visibleToIndex:q.visibleToIndex}})}),W(Q);let H=Wz.useCallback(()=>{K({type:"focus-next-option"})},[]),B=Wz.useCallback(()=>{K({type:"focus-previous-option"})},[]),U=Wz.useCallback(()=>{K({type:"focus-next-page"})},[]),F=Wz.useCallback(()=>{K({type:"focus-previous-page"})},[]),_=Wz.useCallback((R)=>{if(R!==void 0)K({type:"set-focus",value:R})},[]),O=Wz.useMemo(()=>{return Q.map((R,D)=>({...R,index:D})).slice(q.visibleFromIndex,q.visibleToIndex)},[Q,q.visibleFromIndex,q.visibleToIndex]),L=Wz.useMemo(()=>{if(q.focusedValue===void 0)return;if(Q.some((D)=>D.value===q.focusedValue))return q.focusedValue;return Q[0]?.value},[q.focusedValue,Q]),N=Wz.useMemo(()=>{return Q.find((D)=>D.value===L)?.type==="input"},[L,Q]);Wz.useEffect(()=>{if(L!==void 0)G.current?.(L)},[L]),Wz.useEffect(()=>{if(Y!==void 0)K({type:"set-focus",value:Y})},[Y]);let A=Wz.useMemo(()=>{if(L===void 0)return 0;let R=Q.findIndex((D)=>D.value===L);return R>=0?R+1:0},[L,Q]);return{focusedValue:L,focusedIndex:A,visibleFromIndex:q.visibleFromIndex,visibleToIndex:q.visibleToIndex,visibleOptions:O,isInInput:N??!1,focusNextOption:H,focusPreviousOption:B,focusNextPage:U,focusPreviousPage:F,focusOption:_,options:Q}}var Wz,vr7=(J,Q)=>{switch(Q.type){case"focus-next-option":{if(J.focusedValue===void 0)return J;let X=J.optionMap.get(J.focusedValue);if(!X)return J;let Z=X.next||J.optionMap.first;if(!Z)return J;if(!X.next&&Z===J.optionMap.first)return{...J,focusedValue:Z.value,visibleFromIndex:0,visibleToIndex:J.visibleOptionCount};if(!(Z.index>=J.visibleToIndex))return{...J,focusedValue:Z.value};let q=Math.min(J.optionMap.size,J.visibleToIndex+1),K=q-J.visibleOptionCount;return{...J,focusedValue:Z.value,visibleFromIndex:K,visibleToIndex:q}}case"focus-previous-option":{if(J.focusedValue===void 0)return J;let X=J.optionMap.get(J.focusedValue);if(!X)return J;let Z=X.previous||J.optionMap.last;if(!Z)return J;if(!X.previous&&Z===J.optionMap.last){let G=J.optionMap.size,z=Math.max(0,G-J.visibleOptionCount);return{...J,focusedValue:Z.value,visibleFromIndex:z,visibleToIndex:G}}if(!(Z.index<=J.visibleFromIndex))return{...J,focusedValue:Z.value};let q=Math.max(0,J.visibleFromIndex-1),K=q+J.visibleOptionCount;return{...J,focusedValue:Z.value,visibleFromIndex:q,visibleToIndex:K}}case"focus-next-page":{if(J.focusedValue===void 0)return J;let X=J.optionMap.get(J.focusedValue);if(!X)return J;let Z=Math.min(J.optionMap.size-1,X.index+J.visibleOptionCount),Y=J.optionMap.first;while(Y&&Y.index<Z)if(Y.next)Y=Y.next;else break;if(!Y)return J;let q=Math.min(J.optionMap.size,Y.index+1),K=Math.max(0,q-J.visibleOptionCount);return{...J,focusedValue:Y.value,visibleFromIndex:K,visibleToIndex:q}}case"focus-previous-page":{if(J.focusedValue===void 0)return J;let X=J.optionMap.get(J.focusedValue);if(!X)return J;let Z=Math.max(0,X.index-J.visibleOptionCount),Y=J.optionMap.first;while(Y&&Y.index<Z)if(Y.next)Y=Y.next;else break;if(!Y)return J;let q=Math.max(0,Y.index),K=Math.min(J.optionMap.size,q+J.visibleOptionCount);return{...J,focusedValue:Y.value,visibleFromIndex:q,visibleToIndex:K}}case"reset":return Q.state;case"set-focus":{if(J.focusedValue===Q.value)return J;let X=J.optionMap.get(Q.value);if(!X)return J;if(X.index>=J.visibleFromIndex&&X.index<J.visibleToIndex)return{...J,focusedValue:Q.value};let Z,Y;if(X.index<J.visibleFromIndex)Z=X.index,Y=Math.min(J.optionMap.size,Z+J.visibleOptionCount);else Y=Math.min(J.optionMap.size,X.index+1),Z=Math.max(0,Y-J.visibleOptionCount);return{...J,focusedValue:Q.value,visibleFromIndex:Z,visibleToIndex:Y}}}},ma6=({visibleOptionCount:J,options:Q,initialFocusValue:X,currentViewport:Z})=>{let Y=typeof J==="number"?Math.min(J,Q.length):Q.length,q=new no0(Q),K=X!==void 0&&q.get(X),G=K?X:q.first?.value,z=0,W=Y;if(K){let H=K.index;if(Z)if(H>=Z.visibleFromIndex&&H<Z.visibleToIndex)z=Z.visibleFromIndex,W=Math.min(q.size,Z.visibleToIndex);else if(H<Z.visibleFromIndex)z=H,W=Math.min(q.size,z+Y);else W=Math.min(q.size,H+1),z=Math.max(0,W-Y);else if(H>=Y)W=Math.min(q.size,H+1),z=Math.max(0,W-Y);z=Math.max(0,Math.min(z,q.size-1)),W=Math.min(q.size,Math.max(Y,W))}return{optionMap:q,visibleOptionCount:Y,focusedValue:G,visibleFromIndex:z,visibleToIndex:W}};var ip1=I(()=>{ga6();Wz=T(J1(),1)});import{isDeepStrictEqual as fr7}from"util";function pa6({isDisabled:J=!1,visibleOptionCount:Q=5,options:X,defaultValue:Z=[],onChange:Y,onCancel:q,onFocus:K,focusValue:G,submitButtonText:z,onSubmit:W,onDownFromLastItem:H,onUpFromFirstItem:B,initialFocusLast:U,hideIndexes:F=!1}){let[_,O]=qu.useState(Z),[L,N]=qu.useState(!1),[A,R]=qu.useState(X);if(X!==A&&!fr7(X,A))O(Z),R(X);let[D,$]=qu.useState(()=>{let C=new Map;return X.forEach((S)=>{if(S.type==="input"&&S.initialValue)C.set(S.value,S.initialValue)}),C}),y=qu.useCallback((C)=>{let S=typeof C==="function"?C(_):C;O(S),Y?.(S)},[_,Y]),v=ro0({visibleOptionCount:Q,options:X,initialFocusValue:U?X[X.length-1]?.value:void 0,onFocus:K,focusValue:G});WW("multi-select");let E=qu.useCallback((C,S)=>{$((h)=>{let u=new Map(h);return u.set(C,S),u});let k=X.find((h)=>h.value===C);if(k&&k.type==="input")k.onChange(S);y((h)=>{if(S){if(!h.includes(C))return[...h,C];return h}else return h.filter((u)=>u!==C)})},[X,y]);return SJ((C,S,k)=>{let h=ip(C),x=X.find((p)=>p.value===v.focusedValue)?.type==="input";if(x){if(!(S.upArrow||S.downArrow||S.escape||S.tab||S.return||S.ctrl&&(C==="n"||C==="p"||S.return)))return}let m=X[X.length-1]?.value;if(S.tab&&!S.shift){if(z&&W&&v.focusedValue===m&&!L)N(!0);else if(!L)v.focusNextOption();return}if(S.tab&&S.shift){if(z&&W&&L)N(!1),v.focusOption(m);else v.focusPreviousOption();return}if(S.downArrow||S.ctrl&&C==="n"||!S.ctrl&&!S.shift&&C==="j"){if(L&&H)H();else if(z&&W&&v.focusedValue===m&&!L)N(!0);else if(!z&&H&&v.focusedValue===m)H();else if(!L)v.focusNextOption();return}if(S.upArrow||S.ctrl&&C==="p"||!S.ctrl&&!S.shift&&C==="k"){if(z&&W&&L)N(!1),v.focusOption(m);else if(B&&v.focusedValue===X[0]?.value)B();else v.focusPreviousOption();return}if(S.pageDown){v.focusNextPage();return}if(S.pageUp){v.focusPreviousPage();return}if(S.return||Ob0(C)===" "){if(S.ctrl&&S.return&&x&&W){W(_);return}if(L&&W){W(_);return}if(S.return&&!z&&W){W(_);return}if(v.focusedValue!==void 0){let p=_.includes(v.focusedValue)?_.filter((c)=>c!==v.focusedValue):[..._,v.focusedValue];y(p)}return}if(!F&&/^[0-9]+$/.test(h)){let p=parseInt(h)-1;if(p>=0&&p<X.length){let c=X[p].value,r=_.includes(c)?_.filter((J0)=>J0!==c):[..._,c];y(r)}return}if(S.escape)q(),k.stopImmediatePropagation()},{isActive:!J}),{...v,selectedValues:_,inputValues:D,isSubmitFocused:L,updateInputValue:E,onCancel:q}}var qu;var ca6=I(()=>{F_();a0();ip1();qu=T(J1(),1)});function ao0(J){let Q=da6.c(44),{isDisabled:X,visibleOptionCount:Z,options:Y,defaultValue:q,onCancel:K,onChange:G,onFocus:z,focusValue:W,submitButtonText:H,onSubmit:B,onDownFromLastItem:U,onUpFromFirstItem:F,initialFocusLast:_,onOpenEditor:O,hideIndexes:L,onImagePaste:N,pastedContents:A,onRemoveImage:R}=J,D=X===void 0?!1:X,$=Z===void 0?5:Z,y;if(Q[0]!==q)y=q===void 0?[]:q,Q[0]=q,Q[1]=y;else y=Q[1];let v=y,E=L===void 0?!1:L,C;if(Q[2]!==v||Q[3]!==W||Q[4]!==E||Q[5]!==_||Q[6]!==D||Q[7]!==K||Q[8]!==G||Q[9]!==U||Q[10]!==z||Q[11]!==B||Q[12]!==F||Q[13]!==Y||Q[14]!==H||Q[15]!==$)C={isDisabled:D,visibleOptionCount:$,options:Y,defaultValue:v,onChange:G,onCancel:K,onFocus:z,focusValue:W,submitButtonText:H,onSubmit:B,onDownFromLastItem:U,onUpFromFirstItem:F,initialFocusLast:_,hideIndexes:E},Q[2]=v,Q[3]=W,Q[4]=E,Q[5]=_,Q[6]=D,Q[7]=K,Q[8]=G,Q[9]=U,Q[10]=z,Q[11]=B,Q[12]=F,Q[13]=Y,Q[14]=H,Q[15]=$,Q[16]=C;else C=Q[16];let S=pa6(C),k,h,u,x,m;if(Q[17]!==E||Q[18]!==D||Q[19]!==K||Q[20]!==N||Q[21]!==O||Q[22]!==R||Q[23]!==Y.length||Q[24]!==A||Q[25]!==S){let J0=Y.length.toString().length;h=f,m="column",k=f,u="column",x=S.visibleOptions.map((n,s)=>{let X0=!D&&S.focusedValue===n.value&&!S.isSubmitFocused,Y0=S.selectedValues.includes(n.value),G0=n.index===S.visibleFromIndex,j0=n.index===S.visibleToIndex-1,W0=S.visibleToIndex<Y.length,y0=S.visibleFromIndex>0,V0=S.visibleFromIndex+s+1;if(n.type==="input"){let Z0=S.inputValues.get(n.value)||"";return ZU.jsxDEV(f,{gap:1,children:ZU.jsxDEV(oQ0,{option:n,isFocused:X0,isSelected:!1,shouldShowDownArrow:W0&&j0,shouldShowUpArrow:y0&&G0,maxIndexWidth:J0,index:V0,inputValue:Z0,onInputChange:(t)=>{S.updateInputValue(n.value,t)},onSubmit:Sr7,onExit:()=>{K()},layout:"compact",onOpenEditor:O,onImagePaste:N,pastedContents:A,onRemoveImage:R,children:ZU.jsxDEV(M,{color:Y0?"success":void 0,children:["[",Y0?s0.tick:" ","]"," "]},void 0,!0,void 0,this)},void 0,!1,void 0,this)},String(n.value),!1,void 0,this)}return ZU.jsxDEV(f,{gap:1,children:ZU.jsxDEV(Yu,{isFocused:X0,isSelected:!1,shouldShowDownArrow:W0&&j0,shouldShowUpArrow:y0&&G0,description:n.description,children:[!E&&ZU.jsxDEV(M,{dimColor:!0,children:`${V0}.`.padEnd(J0)},void 0,!1,void 0,this),ZU.jsxDEV(M,{color:Y0?"success":void 0,children:["[",Y0?s0.tick:" ","]"]},void 0,!0,void 0,this),ZU.jsxDEV(M,{color:X0?"suggestion":void 0,children:n.label},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},String(n.value),!1,void 0,this)}),Q[17]=E,Q[18]=D,Q[19]=K,Q[20]=N,Q[21]=O,Q[22]=R,Q[23]=Y.length,Q[24]=A,Q[25]=S,Q[26]=k,Q[27]=h,Q[28]=u,Q[29]=x,Q[30]=m}else k=Q[26],h=Q[27],u=Q[28],x=Q[29],m=Q[30];let p;if(Q[31]!==k||Q[32]!==u||Q[33]!==x)p=ZU.jsxDEV(k,{flexDirection:u,children:x},void 0,!1,void 0,this),Q[31]=k,Q[32]=u,Q[33]=x,Q[34]=p;else p=Q[34];let c;if(Q[35]!==B||Q[36]!==S.isSubmitFocused||Q[37]!==H)c=H&&B&&ZU.jsxDEV(f,{marginTop:0,gap:1,children:[S.isSubmitFocused?ZU.jsxDEV(M,{color:"suggestion",children:s0.pointer},void 0,!1,void 0,this):ZU.jsxDEV(M,{children:" "},void 0,!1,void 0,this),ZU.jsxDEV(f,{marginLeft:3,children:ZU.jsxDEV(M,{color:S.isSubmitFocused?"suggestion":void 0,bold:!0,children:H},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),Q[35]=B,Q[36]=S.isSubmitFocused,Q[37]=H,Q[38]=c;else c=Q[38];let r;if(Q[39]!==h||Q[40]!==p||Q[41]!==c||Q[42]!==m)r=ZU.jsxDEV(h,{flexDirection:m,children:[p,c]},void 0,!0,void 0,this),Q[39]=h,Q[40]=p,Q[41]=c,Q[42]=m,Q[43]=r;else r=Q[43];return r}function Sr7(){}var da6,ZU;var np1=I(()=>{r6();a0();lp1();io0();ca6();da6=T(e0(),1),ZU=T(e(),1)});var rp1,la6=({isDisabled:J=!1,disableSelection:Q=!1,state:X,options:Z,isMultiSelect:Y=!1,onUpFromFirstItem:q,onDownFromLastItem:K,onInputModeToggle:G,inputValues:z,imagesSelected:W=!1,onEnterImageSelection:H})=>{WW("select",!!X.onCancel);let B=rp1.useMemo(()=>{return Z.find((_)=>_.value===X.focusedValue)?.type==="input"},[Z,X.focusedValue]),U=rp1.useMemo(()=>{let F={};if(!B)F["select:next"]=()=>{if(K){let _=Z[Z.length-1];if(_&&X.focusedValue===_.value){K();return}}X.focusNextOption()},F["select:previous"]=()=>{if(q&&X.visibleFromIndex===0){let _=Z[0];if(_&&X.focusedValue===_.value){q();return}}X.focusPreviousOption()},F["select:accept"]=()=>{if(Q===!0)return;if(X.focusedValue===void 0)return;if(Z.find((O)=>O.value===X.focusedValue)?.disabled===!0)return;X.selectFocusedOption?.(),X.onChange?.(X.focusedValue)};if(X.onCancel)F["select:cancel"]=()=>{X.onCancel()};return F},[Z,X,K,q,B,Q]);C6(U,{context:"Select",isActive:!J}),SJ((F,_,O)=>{let L=ip(F),N=Z.find((R)=>R.value===X.focusedValue),A=N?.type==="input";if(_.tab&&G&&X.focusedValue!==void 0){G(X.focusedValue);return}if(A){if(W)return;if(_.downArrow&&H?.()){O.stopImmediatePropagation();return}if(_.downArrow||_.ctrl&&F==="n"){if(K){let R=Z[Z.length-1];if(R&&X.focusedValue===R.value){K(),O.stopImmediatePropagation();return}}X.focusNextOption(),O.stopImmediatePropagation();return}if(_.upArrow||_.ctrl&&F==="p"){if(q&&X.visibleFromIndex===0){let R=Z[0];if(R&&X.focusedValue===R.value){q(),O.stopImmediatePropagation();return}}X.focusPreviousOption(),O.stopImmediatePropagation();return}return}if(_.pageDown)X.focusNextPage();if(_.pageUp)X.focusPreviousPage();if(Q!==!0){if(Y&&Ob0(F)===" "&&X.focusedValue!==void 0){if(N?.disabled!==!0)X.selectFocusedOption?.(),X.onChange?.(X.focusedValue)}if(Q!=="numeric"&&/^[0-9]+$/.test(L)){let R=parseInt(L)-1;if(R>=0&&R<X.options.length){let D=X.options[R];if(D.disabled===!0)return;if(D.type==="input"){if((z?.get(D.value)??"").trim()){X.onChange?.(D.value);return}if(D.allowEmptySubmitToCancel){X.onChange?.(D.value);return}X.focusOption(D.value);return}X.onChange?.(D.value);return}}}},{isActive:!J})};var ia6=I(()=>{F_();a0();f6();rp1=T(J1(),1)});function na6({visibleOptionCount:J=5,options:Q,defaultValue:X,onChange:Z,onCancel:Y,onFocus:q,focusValue:K}){let[G,z]=oo0.useState(X),W=ro0({visibleOptionCount:J,options:Q,initialFocusValue:void 0,onFocus:q,focusValue:K}),H=oo0.useCallback(()=>{z(W.focusedValue)},[W.focusedValue]);return{...W,value:G,selectFocusedOption:H,onChange:Z,onCancel:Y}}var oo0;var ra6=I(()=>{ip1();oo0=T(J1(),1)});function so0(J){if(typeof J==="string")return J;if(typeof J==="number")return String(J);if(!J)return"";if(Array.isArray(J))return J.map(so0).join("");if(CI.default.isValidElement(J))return so0(J.props.children);return""}function Q8(J){let Q=ap1.c(72),{isDisabled:X,hideIndexes:Z,visibleOptionCount:Y,highlightText:q,options:K,defaultValue:G,onCancel:z,onChange:W,onFocus:H,defaultFocusValue:B,layout:U,disableSelection:F,inlineDescriptions:_,onUpFromFirstItem:O,onDownFromLastItem:L,onInputModeToggle:N,onOpenEditor:A,onImagePaste:R,pastedContents:D,onRemoveImage:$}=J,y=X===void 0?!1:X,v=Z===void 0?!1:Z,E=Y===void 0?5:Y,C=U===void 0?"compact":U,S=F===void 0?!1:F,k=_===void 0?!1:_,[h,u]=CI.useState(!1),[x,m]=CI.useState(0),p;if(Q[0]!==K)p=()=>{let a=new Map;return K.forEach((O0)=>{if(O0.type==="input"&&O0.initialValue)a.set(O0.value,O0.initialValue)}),a},Q[0]=K,Q[1]=p;else p=Q[1];let[c,r]=CI.useState(p),J0;if(Q[2]===Symbol.for("react.memo_cache_sentinel"))J0=new Map,Q[2]=J0;else J0=Q[2];let n=CI.useRef(J0),s,X0;if(Q[3]!==c||Q[4]!==K)X0=()=>{for(let a of K)if(a.type==="input"&&a.initialValue!==void 0){let O0=n.current.get(a.value)??"",D0=c.get(a.value)??"",F0=a.initialValue;if(F0!==O0&&D0===O0)r((I0)=>{let U0=new Map(I0);return U0.set(a.value,F0),U0});n.current.set(a.value,F0)}},s=[K,c],Q[3]=c,Q[4]=K,Q[5]=s,Q[6]=X0;else s=Q[5],X0=Q[6];CI.useEffect(X0,s);let Y0;if(Q[7]!==B||Q[8]!==G||Q[9]!==z||Q[10]!==W||Q[11]!==H||Q[12]!==K||Q[13]!==E)Y0={visibleOptionCount:E,options:K,defaultValue:G,onChange:W,onCancel:z,onFocus:H,focusValue:B},Q[7]=B,Q[8]=G,Q[9]=z,Q[10]=W,Q[11]=H,Q[12]=K,Q[13]=E,Q[14]=Y0;else Y0=Q[14];let G0=na6(Y0),j0=S||(v?"numeric":!1),W0;if(Q[15]!==D)W0=()=>{if(D&&Object.values(D).some(dr7)){let a=x8(Object.values(D),cr7);return u(!0),m(a-1),!0}return!1},Q[15]=D,Q[16]=W0;else W0=Q[16];let y0;if(Q[17]!==h||Q[18]!==c||Q[19]!==y||Q[20]!==L||Q[21]!==N||Q[22]!==O||Q[23]!==K||Q[24]!==G0||Q[25]!==j0||Q[26]!==W0)y0={isDisabled:y,disableSelection:j0,state:G0,options:K,isMultiSelect:!1,onUpFromFirstItem:O,onDownFromLastItem:L,onInputModeToggle:N,inputValues:c,imagesSelected:h,onEnterImageSelection:W0},Q[17]=h,Q[18]=c,Q[19]=y,Q[20]=L,Q[21]=N,Q[22]=O,Q[23]=K,Q[24]=G0,Q[25]=j0,Q[26]=W0,Q[27]=y0;else y0=Q[27];la6(y0);let V0,Z0,t,q0;if(Q[28]!==v||Q[29]!==q||Q[30]!==h||Q[31]!==k||Q[32]!==c||Q[33]!==y||Q[34]!==C||Q[35]!==z||Q[36]!==W||Q[37]!==R||Q[38]!==A||Q[39]!==$||Q[40]!==K.length||Q[41]!==D||Q[42]!==x||Q[43]!==G0.focusedValue||Q[44]!==G0.options||Q[45]!==G0.value||Q[46]!==G0.visibleFromIndex||Q[47]!==G0.visibleOptions||Q[48]!==G0.visibleToIndex){q0=Symbol.for("react.early_return_sentinel");J:{let a={container:pr7,highlightedText:mr7};if(C==="expanded"){let P0;if(Q[53]!==G0.options.length)P0=G0.options.length.toString(),Q[53]=G0.options.length,Q[54]=P0;else P0=Q[54];let $0=P0.length;q0=iJ.jsxDEV(f,{...a.container(),children:G0.visibleOptions.map((w0,E0)=>{let h0=w0.index===G0.visibleFromIndex,u0=w0.index===G0.visibleToIndex-1,B0=G0.visibleToIndex<K.length,_0=G0.visibleFromIndex>0,M0=G0.visibleFromIndex+E0+1,b0=!y&&G0.focusedValue===w0.value,L0=G0.value===w0.value;if(w0.type==="input"){let c0=c.has(w0.value)?c.get(w0.value):w0.initialValue||"";return iJ.jsxDEV(oQ0,{option:w0,isFocused:b0,isSelected:L0,shouldShowDownArrow:B0&&u0,shouldShowUpArrow:_0&&h0,maxIndexWidth:$0,index:M0,inputValue:c0,onInputChange:(t0)=>{r((K1)=>{let K0=new Map(K1);return K0.set(w0.value,t0),K0})},onSubmit:(t0)=>{let K1=D&&Object.values(D).some(gr7);if(t0.trim()||K1||w0.allowEmptySubmitToCancel)W?.(w0.value);else z?.()},onExit:z,layout:"expanded",showLabel:k,onOpenEditor:A,resetCursorOnUpdate:w0.resetCursorOnUpdate,onImagePaste:R,pastedContents:D,onRemoveImage:$,imagesSelected:h,selectedImageIndex:x,onImagesSelectedChange:u,onSelectedImageIndexChange:m},String(w0.value),!1,void 0,this)}let T0=w0.label;if(typeof w0.label==="string"&&q&&w0.label.includes(q)){let c0=w0.label,t0=c0.indexOf(q);T0=iJ.jsxDEV(iJ.Fragment,{children:[c0.slice(0,t0),iJ.jsxDEV(M,{...a.highlightedText(),children:q},void 0,!1,void 0,this),c0.slice(t0+q.length)]},void 0,!0,void 0,this)}let S0=w0.disabled===!0,g0=S0?void 0:L0?"success":b0?"suggestion":void 0;return iJ.jsxDEV(f,{flexDirection:"column",flexShrink:0,children:[iJ.jsxDEV(Yu,{isFocused:b0,isSelected:L0,shouldShowDownArrow:B0&&u0,shouldShowUpArrow:_0&&h0,children:iJ.jsxDEV(M,{dimColor:S0,color:g0,children:T0},void 0,!1,void 0,this)},void 0,!1,void 0,this),w0.description&&iJ.jsxDEV(f,{paddingLeft:2,children:iJ.jsxDEV(M,{dimColor:S0||w0.dimDescription!==!1,color:g0,children:iJ.jsxDEV(C9,{children:w0.description},void 0,!1,void 0,this)},void 0,!1,void 0,this)},void 0,!1,void 0,this),iJ.jsxDEV(M,{children:" "},void 0,!1,void 0,this)]},String(w0.value),!0,void 0,this)})},void 0,!1,void 0,this);break J}if(C==="compact-vertical"){let P0;if(Q[55]!==v||Q[56]!==G0.options)P0=v?0:G0.options.length.toString().length,Q[55]=v,Q[56]=G0.options,Q[57]=P0;else P0=Q[57];let $0=P0;q0=iJ.jsxDEV(f,{...a.container(),children:G0.visibleOptions.map((w0,E0)=>{let h0=w0.index===G0.visibleFromIndex,u0=w0.index===G0.visibleToIndex-1,B0=G0.visibleToIndex<K.length,_0=G0.visibleFromIndex>0,M0=G0.visibleFromIndex+E0+1,b0=!y&&G0.focusedValue===w0.value,L0=G0.value===w0.value;if(w0.type==="input"){let g0=c.has(w0.value)?c.get(w0.value):w0.initialValue||"";return iJ.jsxDEV(oQ0,{option:w0,isFocused:b0,isSelected:L0,shouldShowDownArrow:B0&&u0,shouldShowUpArrow:_0&&h0,maxIndexWidth:$0,index:M0,inputValue:g0,onInputChange:(c0)=>{r((t0)=>{let K1=new Map(t0);return K1.set(w0.value,c0),K1})},onSubmit:(c0)=>{let t0=D&&Object.values(D).some(ur7);if(c0.trim()||t0||w0.allowEmptySubmitToCancel)W?.(w0.value);else z?.()},onExit:z,layout:"compact",showLabel:k,onOpenEditor:A,resetCursorOnUpdate:w0.resetCursorOnUpdate,onImagePaste:R,pastedContents:D,onRemoveImage:$,imagesSelected:h,selectedImageIndex:x,onImagesSelectedChange:u,onSelectedImageIndexChange:m},String(w0.value),!1,void 0,this)}let T0=w0.label;if(typeof w0.label==="string"&&q&&w0.label.includes(q)){let g0=w0.label,c0=g0.indexOf(q);T0=iJ.jsxDEV(iJ.Fragment,{children:[g0.slice(0,c0),iJ.jsxDEV(M,{...a.highlightedText(),children:q},void 0,!1,void 0,this),g0.slice(c0+q.length)]},void 0,!0,void 0,this)}let S0=w0.disabled===!0;return iJ.jsxDEV(f,{flexDirection:"column",flexShrink:0,children:[iJ.jsxDEV(Yu,{isFocused:b0,isSelected:L0,shouldShowDownArrow:B0&&u0,shouldShowUpArrow:_0&&h0,children:iJ.jsxDEV(iJ.Fragment,{children:[!v&&iJ.jsxDEV(M,{dimColor:!0,children:`${M0}.`.padEnd($0+1)},void 0,!1,void 0,this),iJ.jsxDEV(M,{dimColor:S0,color:S0?void 0:L0?"success":b0?"suggestion":void 0,children:T0},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this),w0.description&&iJ.jsxDEV(f,{paddingLeft:v?4:$0+4,children:iJ.jsxDEV(M,{dimColor:S0||w0.dimDescription!==!1,color:S0?void 0:L0?"success":b0?"suggestion":void 0,children:iJ.jsxDEV(C9,{children:w0.description},void 0,!1,void 0,this)},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},String(w0.value),!0,void 0,this)})},void 0,!1,void 0,this);break J}let O0;if(Q[58]!==v||Q[59]!==G0.options)O0=v?0:G0.options.length.toString().length,Q[58]=v,Q[59]=G0.options,Q[60]=O0;else O0=Q[60];let D0=O0,F0=G0.visibleOptions.some(hr7),I0=!k&&!F0&&G0.visibleOptions.some(kr7),U0=G0.visibleOptions.map((P0,$0)=>{let w0=P0.index===G0.visibleFromIndex,E0=P0.index===G0.visibleToIndex-1,h0=G0.visibleToIndex<K.length,u0=G0.visibleFromIndex>0,B0=G0.visibleFromIndex+$0+1,_0=!y&&G0.focusedValue===P0.value,M0=G0.value===P0.value,b0=P0.disabled===!0,L0=P0.label;if(typeof P0.label==="string"&&q&&P0.label.includes(q)){let T0=P0.label,S0=T0.indexOf(q);L0=iJ.jsxDEV(iJ.Fragment,{children:[T0.slice(0,S0),iJ.jsxDEV(M,{...a.highlightedText(),children:q},void 0,!1,void 0,this),T0.slice(S0+q.length)]},void 0,!0,void 0,this)}return{option:P0,index:B0,label:L0,isFocused:_0,isSelected:M0,isOptionDisabled:b0,shouldShowDownArrow:h0&&E0,shouldShowUpArrow:u0&&w0}});if(I0){let P0;if(Q[61]!==v||Q[62]!==D0)P0=(E0)=>{if(E0.option.type==="input")return 0;let h0=so0(E0.option.label),u0=v?0:D0+2,B0=E0.isSelected?2:0;return 2+u0+B8(h0)+B0},Q[61]=v,Q[62]=D0,Q[63]=P0;else P0=Q[63];let $0=Math.max(...U0.map(P0)),w0;if(Q[64]!==v||Q[65]!==D0||Q[66]!==$0)w0=(E0)=>{if(E0.option.type==="input")return null;let h0=so0(E0.option.label),u0=v?0:D0+2,B0=E0.isSelected?2:0,_0=2+u0+B8(h0)+B0,M0=$0-_0;return iJ.jsxDEV(lr7,{isFocused:E0.isFocused,children:[iJ.jsxDEV(f,{flexDirection:"row",flexShrink:0,children:[E0.isFocused?iJ.jsxDEV(M,{color:"suggestion",children:s0.pointer},void 0,!1,void 0,this):E0.shouldShowDownArrow?iJ.jsxDEV(M,{dimColor:!0,children:s0.arrowDown},void 0,!1,void 0,this):E0.shouldShowUpArrow?iJ.jsxDEV(M,{dimColor:!0,children:s0.arrowUp},void 0,!1,void 0,this):iJ.jsxDEV(M,{children:" "},void 0,!1,void 0,this),iJ.jsxDEV(M,{children:" "},void 0,!1,void 0,this),iJ.jsxDEV(M,{dimColor:E0.isOptionDisabled,color:E0.isOptionDisabled?void 0:E0.isSelected?"success":E0.isFocused?"suggestion":void 0,children:[!v&&iJ.jsxDEV(M,{dimColor:!0,children:`${E0.index}.`.padEnd(D0+2)},void 0,!1,void 0,this),E0.label]},void 0,!0,void 0,this),E0.isSelected&&iJ.jsxDEV(M,{color:"success",children:[" ",s0.tick]},void 0,!0,void 0,this),M0>0&&iJ.jsxDEV(M,{children:" ".repeat(M0)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),iJ.jsxDEV(f,{flexGrow:1,marginLeft:2,children:iJ.jsxDEV(M,{wrap:"wrap",dimColor:E0.isOptionDisabled||E0.option.dimDescription!==!1,color:E0.isOptionDisabled?void 0:E0.isSelected?"success":E0.isFocused?"suggestion":void 0,children:iJ.jsxDEV(C9,{children:E0.option.description||" "},void 0,!1,void 0,this)},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},String(E0.option.value),!0,void 0,this)},Q[64]=v,Q[65]=D0,Q[66]=$0,Q[67]=w0;else w0=Q[67];q0=iJ.jsxDEV(f,{...a.container(),children:U0.map(w0)},void 0,!1,void 0,this);break J}V0=f,Z0=a.container(),t=G0.visibleOptions.map((P0,$0)=>{if(P0.type==="input"){let T0=c.has(P0.value)?c.get(P0.value):P0.initialValue||"",S0=P0.index===G0.visibleFromIndex,g0=P0.index===G0.visibleToIndex-1,c0=G0.visibleToIndex<K.length,t0=G0.visibleFromIndex>0,K1=G0.visibleFromIndex+$0+1,K0=!y&&G0.focusedValue===P0.value,m0=G0.value===P0.value;return iJ.jsxDEV(oQ0,{option:P0,isFocused:K0,isSelected:m0,shouldShowDownArrow:c0&&g0,shouldShowUpArrow:t0&&S0,maxIndexWidth:D0,index:K1,inputValue:T0,onInputChange:(R0)=>{r((p0)=>{let o0=new Map(p0);return o0.set(P0.value,R0),o0})},onSubmit:(R0)=>{let p0=D&&Object.values(D).some(xr7);if(R0.trim()||p0||P0.allowEmptySubmitToCancel)W?.(P0.value);else z?.()},onExit:z,layout:"compact",showLabel:k,onOpenEditor:A,resetCursorOnUpdate:P0.resetCursorOnUpdate,onImagePaste:R,pastedContents:D,onRemoveImage:$,imagesSelected:h,selectedImageIndex:x,onImagesSelectedChange:u,onSelectedImageIndexChange:m},String(P0.value),!1,void 0,this)}let w0=P0.label;if(typeof P0.label==="string"&&q&&P0.label.includes(q)){let T0=P0.label,S0=T0.indexOf(q);w0=iJ.jsxDEV(iJ.Fragment,{children:[T0.slice(0,S0),iJ.jsxDEV(M,{...a.highlightedText(),children:q},void 0,!1,void 0,this),T0.slice(S0+q.length)]},void 0,!0,void 0,this)}let E0=P0.index===G0.visibleFromIndex,h0=P0.index===G0.visibleToIndex-1,u0=G0.visibleToIndex<K.length,B0=G0.visibleFromIndex>0,_0=G0.visibleFromIndex+$0+1,M0=!y&&G0.focusedValue===P0.value,b0=G0.value===P0.value,L0=P0.disabled===!0;return iJ.jsxDEV(Yu,{isFocused:M0,isSelected:b0,shouldShowDownArrow:u0&&h0,shouldShowUpArrow:B0&&E0,children:[iJ.jsxDEV(f,{flexDirection:"row",flexShrink:0,children:[!v&&iJ.jsxDEV(M,{dimColor:!0,children:`${_0}.`.padEnd(D0+2)},void 0,!1,void 0,this),iJ.jsxDEV(M,{dimColor:L0,color:L0?void 0:b0?"success":M0?"suggestion":void 0,children:[w0,k&&P0.description&&iJ.jsxDEV(M,{dimColor:L0||P0.dimDescription!==!1,children:[" ",P0.description]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),!k&&P0.description&&iJ.jsxDEV(f,{flexShrink:99,marginLeft:2,children:iJ.jsxDEV(M,{wrap:"wrap-trim",dimColor:L0||P0.dimDescription!==!1,color:L0?void 0:b0?"success":M0?"suggestion":void 0,children:iJ.jsxDEV(C9,{children:P0.description},void 0,!1,void 0,this)},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},String(P0.value),!0,void 0,this)})}Q[28]=v,Q[29]=q,Q[30]=h,Q[31]=k,Q[32]=c,Q[33]=y,Q[34]=C,Q[35]=z,Q[36]=W,Q[37]=R,Q[38]=A,Q[39]=$,Q[40]=K.length,Q[41]=D,Q[42]=x,Q[43]=G0.focusedValue,Q[44]=G0.options,Q[45]=G0.value,Q[46]=G0.visibleFromIndex,Q[47]=G0.visibleOptions,Q[48]=G0.visibleToIndex,Q[49]=V0,Q[50]=Z0,Q[51]=t,Q[52]=q0}else V0=Q[49],Z0=Q[50],t=Q[51],q0=Q[52];if(q0!==Symbol.for("react.early_return_sentinel"))return q0;let Q0;if(Q[68]!==V0||Q[69]!==Z0||Q[70]!==t)Q0=iJ.jsxDEV(V0,{...Z0,children:t},void 0,!1,void 0,this),Q[68]=V0,Q[69]=Z0,Q[70]=t,Q[71]=Q0;else Q0=Q[71];return Q0}function xr7(J){return J.type==="image"}function kr7(J){return J.description}function hr7(J){return J.type==="input"}function ur7(J){return J.type==="image"}function gr7(J){return J.type==="image"}function mr7(){return{bold:!0}}function pr7(){return{flexDirection:"column"}}function cr7(J){return J.type==="image"}function dr7(J){return J.type==="image"}function lr7(J){let Q=ap1.c(5),{isFocused:X,children:Z}=J,Y;if(Q[0]!==X)Y={line:0,column:0,active:X},Q[0]=X,Q[1]=Y;else Y=Q[1];let q=rQ0(Y),K;if(Q[2]!==Z||Q[3]!==q)K=iJ.jsxDEV(f,{ref:q,flexDirection:"row",children:Z},void 0,!1,void 0,this),Q[2]=Z,Q[3]=q,Q[4]=K;else K=Q[4];return K}var ap1,CI,iJ;var AQ=I(()=>{r6();po0();x7();a0();lp1();io0();ia6();ra6();ap1=T(e0(),1),CI=T(J1(),1),iJ=T(e(),1)});var tX=I(()=>{np1();AQ()});function Ku(J){let Q=aa6.c(13),{title:X,subtitle:Z,color:Y,workerBadge:q}=J,K=Y===void 0?"permission":Y,G;if(Q[0]!==K||Q[1]!==X)G=eQ0.jsxDEV(M,{bold:!0,color:K,children:X},void 0,!1,void 0,this),Q[0]=K,Q[1]=X,Q[2]=G;else G=Q[2];let z;if(Q[3]!==q)z=q&&eQ0.jsxDEV(M,{dimColor:!0,children:["\xB7 ","@",q.name]},void 0,!0,void 0,this),Q[3]=q,Q[4]=z;else z=Q[4];let W;if(Q[5]!==G||Q[6]!==z)W=eQ0.jsxDEV(f,{flexDirection:"row",gap:1,children:[G,z]},void 0,!0,void 0,this),Q[5]=G,Q[6]=z,Q[7]=W;else W=Q[7];let H;if(Q[8]!==Z)H=Z!=null&&(typeof Z==="string"?eQ0.jsxDEV(M,{dimColor:!0,wrap:"truncate-start",children:Z},void 0,!1,void 0,this):Z),Q[8]=Z,Q[9]=H;else H=Q[9];let B;if(Q[10]!==W||Q[11]!==H)B=eQ0.jsxDEV(f,{flexDirection:"column",children:[W,H]},void 0,!0,void 0,this),Q[10]=W,Q[11]=H,Q[12]=B;else B=Q[12];return B}var aa6,eQ0;var fL0=I(()=>{a0();aa6=T(e0(),1),eQ0=T(e(),1)});function OZ(J){let Q=oa6.c(15),{title:X,subtitle:Z,color:Y,titleColor:q,innerPaddingX:K,workerBadge:G,titleRight:z,children:W}=J,H=Y===void 0?"permission":Y,B=K===void 0?1:K,U;if(Q[0]!==Z||Q[1]!==X||Q[2]!==q||Q[3]!==G)U=JX0.jsxDEV(Ku,{title:X,subtitle:Z,color:q,workerBadge:G},void 0,!1,void 0,this),Q[0]=Z,Q[1]=X,Q[2]=q,Q[3]=G,Q[4]=U;else U=Q[4];let F;if(Q[5]!==U||Q[6]!==z)F=JX0.jsxDEV(f,{paddingX:1,flexDirection:"column",children:JX0.jsxDEV(f,{justifyContent:"space-between",children:[U,z]},void 0,!0,void 0,this)},void 0,!1,void 0,this),Q[5]=U,Q[6]=z,Q[7]=F;else F=Q[7];let _;if(Q[8]!==W||Q[9]!==B)_=JX0.jsxDEV(f,{flexDirection:"column",paddingX:B,children:W},void 0,!1,void 0,this),Q[8]=W,Q[9]=B,Q[10]=_;else _=Q[10];let O;if(Q[11]!==H||Q[12]!==F||Q[13]!==_)O=JX0.jsxDEV(f,{flexDirection:"column",borderStyle:"round",borderColor:H,borderLeft:!1,borderRight:!1,borderBottom:!1,marginTop:1,children:[F,_]},void 0,!0,void 0,this),Q[11]=H,Q[12]=F,Q[13]=_,Q[14]=O;else O=Q[14];return O}var oa6,JX0;var TH=I(()=>{a0();fL0();oa6=T(e0(),1),JX0=T(e(),1)});function QX0(J){if(!J)return{shellSettings:{},envVars:{},hasHooks:!1};let Q={};for(let Y of CJ8){let q=J[Y];if(typeof q==="string"&&q.length>0)Q[Y]=q}let X={};if(J.env&&typeof J.env==="object"){for(let[Y,q]of Object.entries(J.env))if(typeof q==="string"&&q.length>0){if(!bo.has(Y.toUpperCase()))X[Y]=q}}let Z=J.hooks!==void 0&&J.hooks!==null&&typeof J.hooks==="object"&&Object.keys(J.hooks).length>0;return{shellSettings:Q,envVars:X,hasHooks:Z,hooks:Z?J.hooks:void 0}}function to0(J){return Object.keys(J.shellSettings).length>0||Object.keys(J.envVars).length>0||J.hasHooks}function sa6(J,Q){let X=QX0(J),Z=QX0(Q);if(!to0(Z))return!1;if(!to0(X))return!0;let Y=l0({shellSettings:X.shellSettings,envVars:X.envVars,hooks:X.hooks}),q=l0({shellSettings:Z.shellSettings,envVars:Z.envVars,hooks:Z.hooks});return Y!==q}function ta6(J){let Q=[];for(let X of Object.keys(J.shellSettings))Q.push(X);for(let X of Object.keys(J.envVars))Q.push(X);if(J.hasHooks)Q.push("hooks");return Q}var op1=I(()=>{N50();i1()});function Jo6(J){let Q=ea6.c(26),{settings:X,onAccept:Z,onReject:Y}=J,q=QX0(X),K=ta6(q),G=B7(),z;if(Q[0]===Symbol.for("react.memo_cache_sentinel"))z={context:"Confirmation"},Q[0]=z;else z=Q[0];J8("confirm:no",Y,z);let W;if(Q[1]!==Z||Q[2]!==Y)W=function(p){if(p==="exit"){Y();return}Z()},Q[1]=Z,Q[2]=Y,Q[3]=W;else W=Q[3];let H=W,B=OZ,U="warning",F="warning",_="Managed settings require approval",O=f,L="column",N=1,A=1,R;if(Q[4]===Symbol.for("react.memo_cache_sentinel"))R=HW.jsxDEV(M,{children:"Your organization has configured managed settings that could allow execution of arbitrary code or interception of your prompts and responses."},void 0,!1,void 0,this),Q[4]=R;else R=Q[4];let D=f,$="column",y;if(Q[5]===Symbol.for("react.memo_cache_sentinel"))y=HW.jsxDEV(M,{dimColor:!0,children:"Settings requiring approval:"},void 0,!1,void 0,this),Q[5]=y;else y=Q[5];let v=K.map(ir7),E;if(Q[6]!==D||Q[7]!==y||Q[8]!==v)E=HW.jsxDEV(D,{flexDirection:$,children:[y,v]},void 0,!0,void 0,this),Q[6]=D,Q[7]=y,Q[8]=v,Q[9]=E;else E=Q[9];let C;if(Q[10]===Symbol.for("react.memo_cache_sentinel"))C=HW.jsxDEV(M,{children:"Only accept if you trust your organization's IT administration and expect these settings to be configured."},void 0,!1,void 0,this),Q[10]=C;else C=Q[10];let S;if(Q[11]===Symbol.for("react.memo_cache_sentinel"))S=[{label:"Yes, I trust these settings",value:"accept"},{label:"No, exit Glock",value:"exit"}],Q[11]=S;else S=Q[11];let k;if(Q[12]!==H)k=HW.jsxDEV(Q8,{options:S,onChange:(m)=>H(m),onCancel:()=>H("exit")},void 0,!1,void 0,this),Q[12]=H,Q[13]=k;else k=Q[13];let h;if(Q[14]!==G.keyName||Q[15]!==G.pending)h=HW.jsxDEV(M,{dimColor:!0,children:G.pending?HW.jsxDEV(HW.Fragment,{children:["Press ",G.keyName," again to exit"]},void 0,!0,void 0,this):HW.jsxDEV(HW.Fragment,{children:"Enter to confirm \xB7 Esc to exit"},void 0,!1,void 0,this)},void 0,!1,void 0,this),Q[14]=G.keyName,Q[15]=G.pending,Q[16]=h;else h=Q[16];let u;if(Q[17]!==O||Q[18]!==E||Q[19]!==k||Q[20]!==h||Q[21]!==R)u=HW.jsxDEV(O,{flexDirection:L,gap:N,paddingTop:A,children:[R,E,C,k,h]},void 0,!0,void 0,this),Q[17]=O,Q[18]=E,Q[19]=k,Q[20]=h,Q[21]=R,Q[22]=u;else u=Q[22];let x;if(Q[23]!==B||Q[24]!==u)x=HW.jsxDEV(B,{color:U,titleColor:F,title:_,children:u},void 0,!1,void 0,this),Q[23]=B,Q[24]=u,Q[25]=x;else x=Q[25];return x}function ir7(J,Q){return HW.jsxDEV(f,{paddingLeft:2,children:HW.jsxDEV(M,{children:[HW.jsxDEV(M,{dimColor:!0,children:"\xB7 "},void 0,!1,void 0,this),HW.jsxDEV(M,{children:J},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},Q,!1,void 0,this)}var ea6,HW;var Qo6=I(()=>{Lq();a0();f6();tX();TH();op1();ea6=T(e0(),1),HW=T(e(),1)});function rr7(J,Q){let X=tp1.c(9),{addNotification:Z,removeNotification:Y}=D9(),q;if(X[0]!==Z||X[1]!==Y||X[2]!==J)q=()=>{if(J.length===0){Y("keybinding-config-warning");return}let G=x8(J,or7),z=x8(J,ar7),W;if(G>0&&z>0)W=`Found ${G} keybinding ${J6(G,"error")} and ${z} ${J6(z,"warning")}`;else if(G>0)W=`Found ${G} keybinding ${J6(G,"error")}`;else W=`Found ${z} keybinding ${J6(z,"warning")}`;W=W+" \xB7 /doctor for details",Z({key:"keybinding-config-warning",text:W,color:G>0?"error":"warning",priority:G>0?"immediate":"high",timeoutMs:60000})},X[0]=Z,X[1]=Y,X[2]=J,X[3]=q;else q=X[3];let K;if(X[4]!==Z||X[5]!==Q||X[6]!==Y||X[7]!==J)K=[J,Q,Z,Y],X[4]=Z,X[5]=Q,X[6]=Y,X[7]=J,X[8]=K;else K=X[8];CH.useEffect(q,K)}function ar7(J){return J.severity==="warning"}function or7(J){return J.severity==="error"}function S2({children:J}){let[{bindings:Q,warnings:X},Z]=CH.useState(()=>{let L=XF0();return b(`[keybindings] KeybindingSetup initialized with ${L.bindings.length} bindings, ${L.warnings.length} warnings`),L}),[Y,q]=CH.useState(!1);rr7(X,Y);let K=CH.useRef(null),[G,z]=CH.useState(null),W=CH.useRef(null),H=CH.useRef(new Map),B=CH.useRef(new Set),U=CH.useCallback((L)=>{B.current.add(L)},[]),F=CH.useCallback((L)=>{B.current.delete(L)},[]),_=CH.useCallback(()=>{if(W.current)clearTimeout(W.current),W.current=null},[]),O=CH.useCallback((L)=>{if(_(),L!==null)W.current=setTimeout((N,A)=>{b("[keybindings] Chord timeout - cancelling"),N.current=null,A(null)},nr7,K,z);K.current=L,z(L)},[_]);return CH.useEffect(()=>{kN6();let L=hN6((N)=>{q(!0),Z(N),b(`[keybindings] Reloaded: ${N.bindings.length} bindings, ${N.warnings.length} warnings`)});return()=>{L(),_()}},[_]),sp1.jsxDEV(ap0,{bindings:Q,pendingChordRef:K,pendingChord:G,setPendingChord:O,activeContexts:B.current,registerActiveContext:U,unregisterActiveContext:F,handlerRegistryRef:H,children:[sp1.jsxDEV(sr7,{bindings:Q,pendingChordRef:K,setPendingChord:O,activeContexts:B.current,handlerRegistryRef:H},void 0,!1,void 0,this),J]},void 0,!0,void 0,this)}function sr7(J){let Q=tp1.c(6),{bindings:X,pendingChordRef:Z,setPendingChord:Y,activeContexts:q,handlerRegistryRef:K}=J,G;if(Q[0]!==q||Q[1]!==X||Q[2]!==K||Q[3]!==Z||Q[4]!==Y)G=(W,H,B)=>{if((H.wheelUp||H.wheelDown)&&Z.current===null)return;let U=K.current,F=new Set;if(U)for(let N of U.values())for(let A of N)F.add(A.context);let _=[...F,...q,"Global"],O=Z.current!==null,L=np0(W,H,_,X,Z.current);J:switch(L.type){case"chord_started":{Y(L.pending),B.stopImmediatePropagation();break J}case"match":{if(Y(null),O){let N=new Set(_);if(U){let A=U.get(L.action);if(A&&A.size>0){for(let R of A)if(N.has(R.context)){R.handler(),B.stopImmediatePropagation();break}}}}break J}case"chord_cancelled":{Y(null),B.stopImmediatePropagation();break J}case"unbound":{Y(null),B.stopImmediatePropagation();break J}case"none":}},Q[0]=q,Q[1]=X,Q[2]=K,Q[3]=Z,Q[4]=Y,Q[5]=G;else G=Q[5];return SJ(G),null}var tp1,CH,sp1,nr7=1000;var Gu=I(()=>{UY();a0();Z1();uE();hk();rp0();tp1=T(e0(),1),CH=T(J1(),1),sp1=T(e(),1)});import{openSync as tr7}from"fs";import{ReadStream as er7}from"tty";function Ja7(){if(ZC!==null)return ZC;if(process.stdin.isTTY){ZC=void 0;return}if(W1(process.env.CI)){ZC=void 0;return}if(process.argv.includes("mcp")){ZC=void 0;return}if(process.platform==="win32"){ZC=void 0;return}try{let J=tr7("/dev/tty","r"),Q=new er7(J);return Q.isTTY=!0,ZC=Q,ZC}catch(J){H0(J),ZC=void 0;return}}function XX0(J=!1){let Q=Ja7(),X={exitOnCtrlC:J};if(Q)X.stdin=Q;return X}var ZC=null;var eo0=I(()=>{t1();M1()});async function Xo6(J,Q){if(!Q||!to0(QX0(Q)))return"no_check_needed";if(!sa6(J,Q))return"no_check_needed";if(!EV())return"no_check_needed";return l("jarvis_api_error",{}),new Promise((X)=>{(async()=>{let{unmount:Z}=await Ed(Js0.jsxDEV(b2,{children:Js0.jsxDEV(S2,{children:Js0.jsxDEV(Jo6,{settings:Q,onAccept:()=>{l("jarvis_api_error",{}),Z(),X("approved")},onReject:()=>{l("jarvis_api_error",{}),Z(),X("rejected")}},void 0,!1,void 0,this)},void 0,!1,void 0,this)},void 0,!1,void 0,this),XX0(!1))})()})}function Zo6(J){if(J==="rejected")return a9(1),!1;return!0}var Js0;var Yo6=I(()=>{N1();Qo6();op1();a0();Gu();W6();E5();eo0();D1();Js0=T(e(),1)});function qo6(){vI=void 0,W28()}function GD(){if(vI!==void 0)return vI;if(L6()!=="firstParty")return vI=yf(!1);if(!eU())return vI=yf(!1);if(process.env.GLOCK_ENTRYPOINT==="local-agent")return vI=yf(!1);let J=eJ();if(J?.accessToken&&J.subscriptionType===null)return vI=yf(!0);if(J?.accessToken&&J.scopes?.includes(zb)&&(J.subscriptionType==="enterprise"||J.subscriptionType==="team"))return vI=yf(!0);try{let{key:Q}=pq({skipRetrievingKeyFromApiKeyHelper:!0});if(Q)return vI=yf(!0)}catch{}return vI=yf(!1)}var vI;var ep1=I(()=>{$Z();N9();m4();Uy0()});var Ko6;var Go6=I(()=>{M6();Ko6=k0(()=>j.object({uuid:j.string(),checksum:j.string(),settings:j.record(j.string(),j.unknown())}))});import{createHash as Qa7}from"crypto";import{open as Xa7,unlink as zo6}from"fs/promises";function Wo6(){if(mn)return;if(GD())mn=new Promise((J)=>{pw=J,setTimeout(()=>{if(pw)b("Remote settings: Loading promise timed out, resolving anyway"),pw(),pw=null},qa7)})}function Ka7(){return`${qJ().BASE_API_URL}/api/glock/settings`}function Qc1(J){if(Array.isArray(J))return J.map(Qc1);if(J!==null&&typeof J==="object"){let Q={};for(let X of Object.keys(J).sort())Q[X]=Qc1(J[X]);return Q}return J}function Ga7(J){let Q=Qc1(J),X=l0(Q);return`sha256:${Qa7("sha256").update(X).digest("hex")}`}function Ho6(){return GD()}async function Bo6(){if(mn)await mn}function za7(){try{let{key:Q}=pq({skipRetrievingKeyFromApiKeyHelper:!0});if(Q)return{headers:{"x-api-key":Q}}}catch{}let J=eJ();if(J?.accessToken)return{headers:{Authorization:`Bearer ${J.accessToken}`,"glock-beta":hV}};return{headers:{},error:"No authentication available"}}async function Wa7(J){let Q=null;for(let X=1;X<=Jc1+1;X++){if(Q=await Ha7(J),Q.success)return Q;if(Q.skipRetry)return Q;if(X>Jc1)return Q;let Z=Ej(X);b(`Remote settings: Retry ${X}/${Jc1} after ${Z}ms`),await FJ(Z)}return Q}async function Ha7(J){try{await cW();let Q=za7();if(Q.error)return{success:!1,error:"Authentication required for remote settings",skipRetry:!0};let X=Ka7(),Z={...Q.headers,"User-Agent":sz()};if(J)Z["If-None-Match"]=`"${J}"`;let Y=await y8.get(X,{headers:Z,timeout:Za7,validateStatus:(G)=>G===200||G===204||G===304||G===404});if(Y.status===304)return b("Remote settings: Using cached settings (304)"),{success:!0,settings:null,checksum:J};if(Y.status===204||Y.status===404)return b(`Remote settings: No settings found (${Y.status})`),{success:!0,settings:{},checksum:void 0};let q=Ko6().safeParse(Y.data);if(!q.success)return b(`Remote settings: Invalid response format - ${q.error.message}`),{success:!1,error:"Invalid remote settings format"};let K=v3().safeParse(q.data.settings);if(!K.success)return b(`Remote settings: Settings validation failed - ${K.error.message}`),{success:!1,error:"Invalid settings structure"};return b("Remote settings: Fetched successfully"),{success:!0,settings:K.data,checksum:q.data.checksum}}catch(Q){let{kind:X,status:Z,message:Y}=yq0(Q);if(Z===404)return{success:!0,settings:{},checksum:""};switch(X){case"auth":return{success:!1,error:"Not authorized for remote settings",skipRetry:!0};case"timeout":return{success:!1,error:"Remote settings request timeout"};case"network":return{success:!1,error:"Cannot connect to server"};default:return{success:!1,error:Y}}}}async function Ba7(J){try{let Q=yG0(),X=await Xa7(Q,"w",384);try{await X.writeFile(l0(J,null,2),{encoding:"utf-8"}),await X.datasync()}finally{await X.close()}b(`Remote settings: Saved to ${Q}`)}catch(Q){b(`Remote settings: Failed to save - ${Q instanceof Error?Q.message:"unknown error"}`)}}async function Xc1(){Fo6(),qo6(),mn=null,pw=null;try{let J=yG0();await zo6(J)}catch{}}async function Zc1(){if(!GD())return null;let J=Tb(),Q=J?Ga7(J):void 0;try{let X=await Wa7(Q);if(!X.success){if(J)return b("Remote settings: Using stale cache after fetch failure"),Rt(J),J;return null}if(X.settings===null&&J)return b("Remote settings: Cache still valid (304 Not Modified)"),Rt(J),J;let Z=X.settings||{};if(Object.keys(Z).length>0){let q=await Xo6(J,Z);if(!Zo6(q))return b("Remote settings: User rejected new settings, using cached settings"),J;return Rt(Z),await Ba7(Z),b("Remote settings: Applied new settings successfully"),Z}Rt(Z);try{let q=yG0();await zo6(q),b("Remote settings: Deleted cached file (404 response)")}catch(q){if(c8(q)!=="ENOENT")b(`Remote settings: Failed to delete cached file - ${q instanceof Error?q.message:"unknown error"}`)}return Z}catch{if(J)return b("Remote settings: Using stale cache after error"),Rt(J),J;return null}}async function Uo6(){if(GD()&&!mn)mn=new Promise((J)=>{pw=J});if(Tb()&&pw)pw(),pw=null;try{let J=await Zc1();if(GD())Fa7();if(J!==null)J_.notifyChange("policySettings")}finally{if(pw)pw(),pw=null}}async function Qs0(){if(await Xc1(),!GD()){J_.notifyChange("policySettings");return}await Zc1(),b("Remote settings: Refreshed after auth change"),J_.notifyChange("policySettings")}async function Ua7(){if(!GD())return;let J=Tb(),Q=J?l0(J):null;try{await Zc1();let X=Tb();if((X?l0(X):null)!==Q)b("Remote settings: Changed during background poll"),J_.notifyChange("policySettings")}catch{}}function Fa7(){if(ZX0!==null)return;if(!GD())return;ZX0=setInterval(()=>{Ua7()},Ya7),ZX0.unref(),UJ(async()=>Fo6())}function Fo6(){if(ZX0!==null)clearInterval(ZX0),ZX0=null}var Za7=1e4,Jc1=5,Ya7=3600000,ZX0=null,mn=null,pw=null,qa7=30000;var YX0=I(()=>{JX();$Z();N9();EX();Z1();T1();Pi();eV();i1();Xk();Yo6();ep1();Uy0();Go6()});async function _o6(){if(xL0===null&&!SL0)SL0=Oa7(),xL0=await SL0,SL0=null,Oo6.cache.clear?.()}function qX0(){xL0=null,SL0=null,Oo6.cache.clear?.(),Xs0.cache.clear?.()}function _a7(){if(xL0!==null)return xL0;let J=Yq();if(J?.emailAddress)return J.emailAddress;if(process.env.USER_TYPE!=="ant")return;if(process.env.COO_CREATOR)return`${process.env.COO_CREATOR}@getglock.dev`;return}async function Oa7(){let J=Yq();if(J?.emailAddress)return J.emailAddress;if(process.env.USER_TYPE!=="ant")return;if(process.env.COO_CREATOR)return`${process.env.COO_CREATOR}@getglock.dev`;return Xs0()}var xL0=null,SL0=null,Oo6,Xs0;var kL0=I(()=>{uU();IJ();N1();N9();m8();Z6();WZ();t1();Oo6=g1((J)=>{let Q=M00(),X=L1(),Z;if(J){if(X.glockCodeFirstTokenDate){let G=new Date(X.glockCodeFirstTokenDate).getTime();if(!isNaN(G))Z=G}}let Y=Yq(),q=Y?.organizationUuid,K=Y?.accountUuid;return{deviceId:Q,sessionId:A1(),email:_a7(),appVersion:"0.1.17",platform:gt(),organizationUuid:q,accountUuid:K,userType:process.env.USER_TYPE,firstTokenTime:Z,...W1(process.env.GITHUB_ACTIONS)&&{githubActionsMetadata:{actor:process.env.GITHUB_ACTOR,actorId:process.env.GITHUB_ACTOR_ID,repository:process.env.GITHUB_REPOSITORY,repositoryId:process.env.GITHUB_REPOSITORY_ID,repositoryOwner:process.env.GITHUB_REPOSITORY_OWNER,repositoryOwnerId:process.env.GITHUB_REPOSITORY_OWNER_ID}}}});Xs0=g1(async()=>{let J=await jZ("git config --get user.email",{shell:!0,reject:!1,cwd:B1()});return J.exitCode===0&&J.stdout?J.stdout.trim():void 0})});var Lo6={};X8(Lo6,{call:()=>La7,Login:()=>Ys0,DeviceFlowLogin:()=>KX0});async function La7(J,Q){return NG.jsxDEV(Ys0,{onDone:async(X)=>{if(Q.onChangeAPIKey(),Q.setMessages(ga0),X)so(),Qs0(),Xo0(),qX0(),Kp(),Q.setAppState((Z)=>({...Z,authVersion:Z.authVersion+1}));J(X?"Login successful":"Login interrupted")}},void 0,!1,void 0,this)}function KX0(J){let[Q,X]=Zs0.useState({phase:"requesting"});switch(Zs0.useEffect(()=>{let Z=!1;return Nz0((Y,q)=>{if(!Z)X({phase:"waiting",userCode:Y,url:q})},(Y)=>{IX(Y)}).then((Y)=>{if(Z)return;tp(L8(),Y.accessToken),X({phase:"success",email:Y.email}),setTimeout(()=>J.onDone(),500)}).catch((Y)=>{if(Z)return;X({phase:"error",message:Y instanceof Error?Y.message:"Login failed"})}),()=>{Z=!0}},[]),Q.phase){case"requesting":return NG.jsxDEV(f,{flexDirection:"column",children:NG.jsxDEV(f,{flexDirection:"row",gap:1,children:[NG.jsxDEV(M7,{},void 0,!1,void 0,this),NG.jsxDEV(M,{children:"Requesting device code..."},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this);case"waiting":return NG.jsxDEV(f,{flexDirection:"column",gap:1,children:[NG.jsxDEV(M,{children:["Enter this code at"," ",NG.jsxDEV(zJ,{url:Q.url,children:NG.jsxDEV(M,{bold:!0,color:"cyan",children:"getglock.dev"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),NG.jsxDEV(f,{children:NG.jsxDEV(M,{bold:!0,color:"green",dimColor:!1,children:[" ","Code: ",Q.userCode]},void 0,!0,void 0,this)},void 0,!1,void 0,this),NG.jsxDEV(f,{flexDirection:"row",gap:1,children:[NG.jsxDEV(M7,{},void 0,!1,void 0,this),NG.jsxDEV(M,{dimColor:!0,children:"Waiting for authorization..."},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this);case"success":return NG.jsxDEV(M,{color:"green",children:["Logged in as ",Q.email]},void 0,!0,void 0,this);case"error":return NG.jsxDEV(M,{color:"red",children:Q.message},void 0,!1,void 0,this)}}function Ys0(J){return NG.jsxDEV(D8,{title:"Login",onCancel:()=>J.onDone(!1),color:"permission",inputGuide:(Q)=>Q.pending?NG.jsxDEV(M,{children:["Press ",Q.keyName," again to exit"]},void 0,!0,void 0,this):NG.jsxDEV(s1,{action:"confirm:no",context:"Confirmation",fallback:"Esc",description:"cancel"},void 0,!1,void 0,this),children:NG.jsxDEV(KX0,{onDone:()=>J.onDone(!0)},void 0,!1,void 0,this)},void 0,!1,void 0,this)}var Zs0,NG;var hL0=I(()=>{N1();U7();M9();zz();a0();lf();QD();YX0();M8();s3();t1();kL0();Zs0=T(J1(),1),NG=T(e(),1)});function Vo6({onStashAndContinue:J,onCancel:Q}){let[X,Z]=pn.useState(null),Y=X!==null?[...X.tracked,...X.untracked]:[],[q,K]=pn.useState(!0),[G,z]=pn.useState(!1),[W,H]=pn.useState(null);pn.useEffect(()=>{(async()=>{try{let O=await q51();Z(O)}catch(O){let L=O instanceof Error?O.message:String(O);b(`Error getting changed files: ${L}`,{level:"error"}),H("Failed to get changed files")}finally{K(!1)}})()},[]);let B=async()=>{z(!0);try{if(b("Stashing changes before teleport..."),await $H8("Teleport auto-stash"))b("Successfully stashed changes"),J();else H("Failed to stash changes")}catch(_){let O=_ instanceof Error?_.message:String(_);b(`Error stashing changes: ${O}`,{level:"error"}),H("Failed to stash changes")}finally{z(!1)}},U=(_)=>{if(_==="stash")B();else Q()};if(q)return kK.jsxDEV(f,{flexDirection:"column",padding:1,children:kK.jsxDEV(f,{marginBottom:1,children:[kK.jsxDEV(M7,{},void 0,!1,void 0,this),kK.jsxDEV(M,{children:[" Checking git status",s0.ellipsis]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this);if(W)return kK.jsxDEV(f,{flexDirection:"column",padding:1,children:[kK.jsxDEV(M,{bold:!0,color:"error",children:["Error: ",W]},void 0,!0,void 0,this),kK.jsxDEV(f,{marginTop:1,children:[kK.jsxDEV(M,{dimColor:!0,children:"Press "},void 0,!1,void 0,this),kK.jsxDEV(M,{bold:!0,children:"Escape"},void 0,!1,void 0,this),kK.jsxDEV(M,{dimColor:!0,children:" to cancel"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this);let F=Y.length>8;return kK.jsxDEV(D8,{title:"Working Directory Has Changes",onCancel:Q,children:[kK.jsxDEV(M,{children:"Teleport will switch git branches. The following changes were found:"},void 0,!1,void 0,this),kK.jsxDEV(f,{flexDirection:"column",paddingLeft:2,children:Y.length>0?F?kK.jsxDEV(M,{children:[Y.length," files changed"]},void 0,!0,void 0,this):Y.map((_,O)=>kK.jsxDEV(M,{children:_},O,!1,void 0,this)):kK.jsxDEV(M,{dimColor:!0,children:"No changes detected"},void 0,!1,void 0,this)},void 0,!1,void 0,this),kK.jsxDEV(M,{children:"Would you like to stash these changes and continue with teleport?"},void 0,!1,void 0,this),G?kK.jsxDEV(f,{children:[kK.jsxDEV(M7,{},void 0,!1,void 0,this),kK.jsxDEV(M,{children:" Stashing changes..."},void 0,!1,void 0,this)]},void 0,!0,void 0,this):kK.jsxDEV(Q8,{options:[{label:"Stash changes and continue",value:"stash"},{label:"Exit",value:"exit"}],onChange:U},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}var pn,kK;var No6=I(()=>{r6();a0();Z1();uQ();tX();M9();zz();pn=T(J1(),1),kK=T(e(),1)});function Ao6(J){let Q=wo6.c(18),{onComplete:X,errorsToIgnore:Z}=J,Y=Z===void 0?Va7:Z,[q,K]=uL0.useState(null),[G,z]=uL0.useState(!1),W;if(Q[0]!==Y||Q[1]!==X)W=async()=>{let y=await Yc1(),v=new Set(Array.from(y).filter((E)=>!Y.has(E)));if(v.size===0){X();return}if(v.has("needsLogin"))K("needsLogin");else if(v.has("needsGitStash"))K("needsGitStash")},Q[0]=Y,Q[1]=X,Q[2]=W;else W=Q[2];let H=W,B,U;if(Q[3]!==H)B=()=>{H()},U=[H],Q[3]=H,Q[4]=B,Q[5]=U;else B=Q[4],U=Q[5];uL0.useEffect(B,U);let F=Na7,_;if(Q[6]!==H)_=()=>{z(!1),H()},Q[6]=H,Q[7]=_;else _=Q[7];let O=_,L;if(Q[8]===Symbol.for("react.memo_cache_sentinel"))L=()=>{z(!0)},Q[8]=L;else L=Q[8];let N=L,A;if(Q[9]===Symbol.for("react.memo_cache_sentinel"))A=(y)=>{if(y==="login")N();else F()},Q[9]=A;else A=Q[9];let R=A,D;if(Q[10]!==H)D=()=>{H()},Q[10]=H,Q[11]=D;else D=Q[11];let $=D;if(!q)return null;switch(q){case"needsGitStash":{let y;if(Q[12]!==$)y=zu.jsxDEV(Vo6,{onStashAndContinue:$,onCancel:F},void 0,!1,void 0,this),Q[12]=$,Q[13]=y;else y=Q[13];return y}case"needsLogin":{if(G){let E;if(Q[14]!==O)E=zu.jsxDEV(KX0,{onDone:O},void 0,!1,void 0,this),Q[14]=O,Q[15]=E;else E=Q[15];return E}let y;if(Q[16]===Symbol.for("react.memo_cache_sentinel"))y=zu.jsxDEV(f,{flexDirection:"column",children:[zu.jsxDEV(M,{dimColor:!0,children:"Teleport requires a Glock account."},void 0,!1,void 0,this),zu.jsxDEV(M,{dimColor:!0,children:"Your Glock Pro/Max subscription will be used by Glock."},void 0,!1,void 0,this)]},void 0,!0,void 0,this),Q[16]=y;else y=Q[16];let v;if(Q[17]===Symbol.for("react.memo_cache_sentinel"))v=zu.jsxDEV(D8,{title:"Log in to Glock",onCancel:F,children:[y,zu.jsxDEV(Q8,{options:[{label:"Login with Glock account",value:"login"},{label:"Exit",value:"exit"}],onChange:R},void 0,!1,void 0,this)]},void 0,!0,void 0,this),Q[17]=v;else v=Q[17];return v}}}function Na7(){a9(0)}async function Yc1(){let J=new Set,[Q,X]=await Promise.all([Yo0(),an6()]);if(Q)J.add("needsLogin");if(!X)J.add("needsGitStash");return J}var wo6,uL0,zu,Va7;var Ro6=I(()=>{Ko0();E5();a0();hL0();tX();M9();No6();wo6=T(e0(),1),uL0=T(J1(),1),zu=T(e(),1),Va7=new Set});async function Do6(J,Q){let X=$2();if(!X)return b("No session token available for fetching session logs"),n1("error","session_get_fail_no_token"),null;let Z={Authorization:`Bearer ${X}`},Y=await Io6(J,Q,Z);if(Y&&Y.length>0){let q=Y.at(-1);if(q&&"uuid"in q&&q.uuid)Mo6.set(J,q.uuid)}return Y}async function $o6(J,Q,X){let Z=`${qJ().BASE_API_URL}/v1/session_ingress/session/${J}`;b(`[session-ingress] Fetching session logs from: ${Z}`);let Y={...$q(Q),"x-organization-uuid":X};return await Io6(J,Z,Y)}async function jo6(J,Q,X){let Z=`${qJ().BASE_API_URL}/v1/code/sessions/${J}/teleport-events`,Y={...$q(Q),"x-organization-uuid":X};b(`[teleport] Fetching events from: ${Z}`);let q=[],K,G=0,z=100;while(G<z){let W={limit:1000};if(K!==void 0)W.cursor=K;let H;try{H=await y8.get(Z,{headers:Y,params:W,timeout:20000,validateStatus:(F)=>F<500})}catch(F){return H0(Error(`Teleport events fetch failed: ${F.message}`)),n1("error","teleport_events_fetch_fail"),null}if(H.status===404)return b(`[teleport] Session ${J} not found (page ${G})`),n1("warn","teleport_events_not_found"),G===0?null:q;if(H.status===401)throw n1("error","teleport_events_bad_token"),Error("Your session has expired. Please run /login to sign in again.");if(H.status!==200)return H0(Error(`Teleport events returned ${H.status}: ${l0(H.data)}`)),n1("error","teleport_events_bad_status"),null;let{data:B,next_cursor:U}=H.data;if(!Array.isArray(B))return H0(Error(`Teleport events invalid response shape: ${l0(H.data)}`)),n1("error","teleport_events_invalid_shape"),null;for(let F of B)if(F.payload!==null)q.push(F.payload);if(G++,U==null)break;K=U}if(G>=z)H0(Error(`Teleport events hit page cap (${z}) for ${J}`)),n1("warn","teleport_events_page_cap");return b(`[teleport] Fetched ${q.length} events over ${G} page(s) for ${J}`),q}async function Io6(J,Q,X){try{let Z=await y8.get(Q,{headers:X,timeout:20000,validateStatus:(Y)=>Y<500,params:W1(process.env.GLOCK_AFTER_LAST_COMPACT)?{after_last_compact:!0}:void 0});if(Z.status===200){let Y=Z.data;if(!Y||typeof Y!=="object"||!Array.isArray(Y.loglines))return H0(Error(`Invalid session logs response format: ${l0(Y)}`)),n1("error","session_get_fail_invalid_response"),null;let q=Y.loglines;return b(`Fetched ${q.length} session logs for session ${J}`),q}if(Z.status===404)return b(`No existing logs for session ${J}`),n1("warn","session_get_no_logs_for_session"),[];if(Z.status===401)throw b("Auth token expired or invalid"),n1("error","session_get_fail_bad_token"),Error("Your session has expired. Please run /login to sign in again.");return b(`Failed to fetch session logs: ${Z.status} ${Z.statusText}`),n1("error","session_get_fail_status",{status:Z.status}),null}catch(Z){let Y=Z;return H0(Error(`Error fetching session logs: ${Y.message}`)),n1("error","session_get_fail_status",{status:Y.status}),null}}function yo6(){Mo6.clear(),wa7.clear()}var Mo6,wa7;var qs0=I(()=>{JX();$Z();Z1();h4();t1();M1();iE();i1();TL();Mo6=new Map,wa7=new Map});import{relative as qc1}from"path";function $a7(J){if(J.type!=="attachment")return J;let Q=J.attachment;if(Q.type==="new_file")return{...J,attachment:{...Q,type:"file",displayPath:qc1(B1(),Q.filename)}};if(Q.type==="new_directory")return{...J,attachment:{...Q,type:"directory",displayPath:qc1(B1(),Q.path)}};if(!("displayPath"in Q)){let X="filename"in Q?Q.filename:("path"in Q)?Q.path:("skillDir"in Q)?Q.skillDir:void 0;if(X)return{...J,attachment:{...Q,displayPath:qc1(B1(),X)}}}return J}function Ks0(J){return bo6(J).messages}function bo6(J){try{let Q=J.map($a7),X=new Set(xb);for(let W of Q)if(W.type==="user"&&W.permissionMode!==void 0&&!X.has(W.permissionMode))W.permissionMode=void 0;let Z=zs0(Q),Y=cL0(Z),q=pL0(Y),K=ja7(q),G;if(K.kind==="interrupted_turn"){let[W]=Zz([$1({content:"Continue from where you left off.",isMeta:!0})]);q.push(W),G={kind:"interrupted_prompt",message:W}}else G=K;let z=q.findLastIndex((W)=>W.type!=="system"&&W.type!=="progress");if(z!==-1&&q[z].type==="user")q.splice(z+1,0,q_({content:M_0}));return{messages:q,turnInterruptionState:G}}catch(Q){throw H0(Q),Q}}function ja7(J){if(J.length===0)return{kind:"none"};let Q=J.findLastIndex((Z)=>Z.type!=="system"&&Z.type!=="progress"&&!(Z.type==="assistant"&&Z.isApiErrorMessage)),X=Q!==-1?J[Q]:void 0;if(!X)return{kind:"none"};if(X.type==="assistant")return{kind:"none"};if(X.type==="user"){if(X.isMeta||X.isCompactSummary)return{kind:"none"};if(mL0(X)){if(Ia7(X,J,Q))return{kind:"none"};return{kind:"interrupted_turn"}}return{kind:"interrupted_prompt",message:X}}if(X.type==="attachment")return{kind:"interrupted_turn"};return{kind:"none"}}function Ia7(J,Q,X){let Z=J.message.content;if(!Array.isArray(Z))return!1;let Y=Z[0];if(Y?.type!=="tool_result")return!1;let q=Y.tool_use_id;for(let K=X-1;K>=0;K--){let G=Q[K];if(G.type!=="assistant")continue;for(let z of G.message.content)if(z.type==="tool_use"&&z.id===q)return z.name===Ra7||z.name===Ma7||z.name===Da7}return!1}function ya7(J){for(let Q of J){if(Q.type!=="attachment")continue;if(Q.attachment.type==="invoked_skills"){for(let X of Q.attachment.skills)if(X.name&&X.path&&X.content)Js(X.name,X.path,X.content,null)}if(Q.attachment.type==="skill_listing")hm6()}}async function ba7(J){let{messages:Q,leafUuids:X}=await YC(J),Z=null,Y=0;for(let K of Q.values()){if(K.isSidechain||!X.has(K.uuid))continue;let G=new Date(K.timestamp).getTime();if(G>Y)Y=G,Z=K}if(!Z)return{messages:[],sessionId:void 0};let q=Wu(Q,Z);return{messages:GX0(q),sessionId:Z.sessionId}}async function Kc1(J,Q){try{let X=null,Z=null,Y;if(J===void 0){let G=zX0(),z=new Set;X=(await G).find((H)=>{let B=FY(H);return!B||!z.has(B)})??null}else if(Q){let G=await ba7(Q);Z=G.messages,Y=G.sessionId}else if(typeof J==="string")X=await dL0(J),Y=J;else X=J;if(!X&&!Z)return null;if(X){if(vL(X))X=await zD(X);if(!Y)Y=FY(X);if(Y)await qk0(X,w2(Y));Fm0(X),Z=X.messages,Gc1(Z)}ya7(Z);let q=bo6(Z);Z=q.messages;let K=await KW("resume",{sessionId:Y});return Z.push(...K),{messages:Z,turnInterruptionState:q.turnInterruptionState,fileHistorySnapshots:X?.fileHistorySnapshots,attributionSnapshots:X?.attributionSnapshots,contentReplacements:X?.contentReplacements,contextCollapseCommits:X?.contextCollapseCommits,contextCollapseSnapshot:X?.contextCollapseSnapshot,sessionId:Y,agentName:X?.agentName,agentColor:X?.agentColor,agentSetting:X?.agentSetting,customTitle:X?.customTitle,tag:X?.tag,mode:X?.mode,worktreeSession:X?.worktreeSession,prNumber:X?.prNumber,prUrl:X?.prUrl,prRepository:X?.prRepository,fullPath:X?.fullPath}}catch(X){throw H0(X),X}}var Ra7=null,Ma7=null,Da7=null;var Gs0=I(()=>{Z6();N1();A2();uW1();Z3();pF();M1();M8();$K();ih();gJ()});import{randomUUID as Pa7}from"crypto";import*as Bs0 from"fs/promises";import*as WX0 from"path";function Ca7(){return process.env.GLOCK_BASE_URL||process.env.GLOCK_API_BASE_URL||"https://api.getglock.dev"}function Hs0(J){b(`[files-api] ${J}`)}async function fa7(J,Q){let X="";for(let Z=1;Z<=Ws0;Z++){let Y=await Q(Z);if(Y.done)return Y.value;if(X=Y.error||`${J} failed`,Hs0(`${J} attempt ${Z}/${Ws0} failed: ${X}`),Z<Ws0){let q=va7*Math.pow(2,Z-1);Hs0(`Retrying ${J} in ${q}ms...`),await FJ(q)}}throw Error(`${X} after ${Ws0} attempts`)}async function Eo6(J,Q,X,Z){let q=`${X.baseUrl||Ca7()}/v1/files`,K={Authorization:`Bearer ${X.oauthToken}`,"glock-version":Ta7,"glock-beta":Ea7};Hs0(`Uploading file ${J} as ${Q}`);let G;try{G=await Bs0.readFile(J)}catch(F){return l("jarvis_api_error",{error_type:"file_read"}),{path:Q,error:Q1(F),success:!1}}let z=G.length;if(z>Po6)return l("jarvis_api_error",{error_type:"file_too_large"}),{path:Q,error:`File exceeds maximum size of ${Po6} bytes (actual: ${z})`,success:!1};let W=`----FormBoundary${Pa7()}`,H=WX0.basename(Q),B=[];B.push(Buffer.from(`--${W}\r
|
|
3609
3609
|
Content-Disposition: form-data; name="file"; filename="${H}"\r
|
|
3610
3610
|
Content-Type: application/octet-stream\r
|
|
3611
3611
|
\r
|
|
@@ -4997,7 +4997,7 @@ then the safety system will see that you said "command_injection_detected" and a
|
|
|
4997
4997
|
|
|
4998
4998
|
Note that not every command has a prefix. If a command has no prefix, return "none".
|
|
4999
4999
|
|
|
5000
|
-
ONLY return the prefix. Do not return any other text, markdown markers, or other content or formatting.`,f9J,BO0,x9J,I9Q;var JU=I(()=>{T9J();wh1();iG();pX0=new Set(["0","1","2"]);f9J=P9J({toolName:"Bash",policySpec:j9Q,eventName:"jarvis_api_error",querySource:"bash_extract_prefix",preCheck:(J)=>$9Q(J)?{commandPrefix:J}:null}),BO0=E9J(f9J,HY);x9J=new Set(["&&","||",";",";;","|"]),I9Q=new Set([...x9J,">&",">",">>"])});function T9Q(J){if(process.env.USER_TYPE==="ant"){let Y=Y8("jarvis_api_error",{commands:[],substrings:[]});for(let q of Y.substrings)if(J.includes(q))return!0;try{let q=HY(J);for(let K of q){let G=K.trim().split(" ")[0];if(G&&Y.commands.includes(G))return!0}}catch{}}let X=q6().sandbox?.excludedCommands??[];if(X.length===0)return!1;let Z;try{Z=HY(J)}catch{Z=[J]}for(let Y of Z){let K=[Y.trim()],G=new Set(K),z=0;while(z<K.length){let W=K.length;for(let H=z;H<W;H++){let B=K[H],U=yh1(B,xg6);if(!G.has(U))K.push(U),G.add(U);let F=ST(B);if(!G.has(F))K.push(F),G.add(F)}z=W}for(let W of X){let H=Ih1(W);for(let B of K)switch(H.type){case"prefix":if(B===H.prefix||B.startsWith(H.prefix+" "))return!0;break;case"exact":if(B===H.command)return!0;break;case"wildcard":if(FO0(H.pattern,B))return!0;break}}}return!1}function Pw(J){if(!p8.isSandboxingEnabled())return!1;if(J.dangerouslyDisableSandbox&&p8.areUnsandboxedCommandsAllowed())return!1;if(!J.command)return!1;if(T9Q(J.command))return!1;return!0}var m70=I(()=>{JU();V4();g8();z_()});class Qi1{config;constructor(J){this.config={...h9Q,...J}}assessPrompt(J){let Q=[];if(this.config.checkPromptInjection){for(let X of C9Q)if(X.test(J))Q.push({category:"prompt_injection",risk:"high",message:"Potential prompt injection detected",pattern:X.source})}return this.buildAssessment(Q)}assessToolRequest(J,Q){let X=[];if(J==="Bash"||J==="bash"){let q=String(Q.command??"");this.checkCommand(q,X)}let Z=String(Q.file_path??Q.filePath??Q.path??"");if(Z)this.checkFilePath(Z,X);let Y=String(Q.pattern??Q.query??"");if(Y)this.checkSearchPattern(Y,X);return this.buildAssessment(X)}assessCodeChange(J,Q){let X=[];if(this.config.checkCredentials){for(let Z of S9Q)if(Z.test(J))X.push({category:"credential_exposure",risk:"critical",message:"Potential credential or secret detected in code",pattern:Z.source,location:Q})}if(this.config.checkSqlInjection){if(/(?:SELECT|INSERT|UPDATE|DELETE).*\+\s*(?:req\.|params\.|query\.|body\.)/i.test(J))X.push({category:"code_vulnerability",risk:"high",message:"Potential SQL injection: string concatenation in SQL query",location:Q})}if(this.config.checkXss){if(/innerHTML\s*=\s*(?!['"]<)/.test(J)||/dangerouslySetInnerHTML/.test(J))X.push({category:"code_vulnerability",risk:"medium",message:"Potential XSS: direct HTML injection",location:Q})}if(/\beval\s*\(/.test(J)||/new\s+Function\s*\(/.test(J))X.push({category:"code_vulnerability",risk:"high",message:"Dynamic code execution detected (eval/new Function)",location:Q});return this.buildAssessment(X)}checkCommand(J,Q){if(this.config.checkDangerousCommands){for(let X of x9Q)if(X.test(J)){if(!this.config.allowedDangerousCommands.some((Y)=>J.includes(Y)))Q.push({category:"dangerous_operation",risk:"critical",message:"Dangerous command detected",pattern:X.source,location:J})}}if(/[;&|`$]/.test(J)&&/\$\(.*\)/.test(J))Q.push({category:"command_injection",risk:"medium",message:"Command substitution detected \u2014 verify intent",location:J})}checkFilePath(J,Q){if(this.config.checkPathTraversal){for(let X of v9Q)if(X.test(J))Q.push({category:"path_traversal",risk:"high",message:"Path traversal pattern detected",pattern:X.source,location:J})}for(let X of f9Q)if(X.test(J))Q.push({category:"sensitive_file_access",risk:"high",message:"Access to sensitive file detected",pattern:X.source,location:J})}checkSearchPattern(J,Q){if(this.config.checkSqlInjection){for(let X of k9Q)if(X.test(J))Q.push({category:"code_vulnerability",risk:"medium",message:"SQL injection pattern in search query",pattern:X.source})}}buildAssessment(J){if(J.length===0)return{allowed:!0,riskLevel:"low",findings:J,requiresApproval:!1};let Q=this.getMaxRisk(J),X=Q==="critical"&&this.config.blockOnCritical||Q==="high"&&this.config.blockOnHigh,Z=!X&&Q==="high"&&this.config.requireApprovalOnHigh;return{allowed:!X,riskLevel:Q,findings:J,requiresApproval:Z,blockedReason:X?`Blocked: ${J.filter((Y)=>Y.risk===Q).map((Y)=>Y.message).join("; ")}`:void 0}}getMaxRisk(J){let Q=["low","medium","high","critical"],X=0;for(let Z of J){let Y=Q.indexOf(Z.risk);if(Y>X)X=Y}return Q[X]}}var C9Q,v9Q,f9Q,S9Q,x9Q,k9Q,h9Q;var k9J=I(()=>{C9Q=[/ignore\s+(all\s+)?(previous|prior|above)\s+(instructions|rules|constraints)/i,/disregard\s+(all\s+)?(previous|prior|above)/i,/pretend\s+(you\s+are|to\s+be|you're)/i,/you\s+are\s+now\s+a/i,/new\s+instructions?\s*:/i,/system\s*:\s*you\s+are/i,/\bact\s+as\s+if\b/i,/forget\s+(everything|all)\s+(you|about)/i,/override\s+(your|all|safety)\s+(instructions|rules|guidelines)/i,/jailbreak/i,/\bDAN\b.*\bmode\b/i,/do\s+anything\s+now/i,/bypass\s+(safety|security|filter|content)/i,/reveal\s+(your|the)\s+(system|initial)\s+prompt/i,/what\s+(is|are)\s+your\s+(system|initial)\s+(prompt|instructions)/i,/print\s+(your|the)\s+(system|initial)\s+prompt/i,/output\s+(your|the)\s+instructions/i,/repeat\s+(the|your)\s+(system|above)\s+(prompt|message|text)/i],v9Q=[/\.\.\//,/\.\.\\/,/%2e%2e%2f/i,/%2e%2e\//i,/\.\.%2f/i,/%2e%2e%5c/i],f9Q=[/\.env(\.\w+)?$/,/\.ssh\//,/id_rsa/,/id_ed25519/,/\.pem$/,/\.key$/,/\.p12$/,/\.pfx$/,/\.kube\/config/,/credentials\.json$/,/service.account\.json$/,/\.aws\/credentials/,/\.netrc$/,/\.npmrc$/,/\.pypirc$/,/shadow$/,/passwd$/,/\.htpasswd$/],S9Q=[/(?:api[_-]?key|apikey)\s*[=:]\s*['"][a-zA-Z0-9_\-]{20,}/i,/AKIA[0-9A-Z]{16}/,/(?:sk-|sk-proj-)[a-zA-Z0-9]{20,}/,/(?:sk-ant-)[a-zA-Z0-9_\-]{20,}/,/xox[bpsar]-[a-zA-Z0-9\-]{20,}/,/ghp_[a-zA-Z0-9]{36}/,/gho_[a-zA-Z0-9]{36}/,/glpat-[a-zA-Z0-9\-_]{20,}/,/(?:password|passwd|pwd)\s*[=:]\s*['"][^'"]{8,}/i,/(?:secret|token)\s*[=:]\s*['"][a-zA-Z0-9_\-]{16,}/i],x9Q=[/\brm\s+(-\w*r\w*f|\w*f\w*r)\s+\//,/\bchmod\s+777\b/,/:\(\)\s*\{\s*:\|:\s*&\s*\}\s*;?\s*:/,/\bdd\s+if=\/dev\/(zero|random|urandom)/,/\b(shutdown|reboot|halt|poweroff)\b/,/\biptables\s+-F\b/,/\bmkfs\b/,/\bsudo\s+rm\b/,/>\s*\/dev\/sd[a-z]/,/\bcurl\b.*\|\s*(bash|sh|zsh)\b/,/\bwget\b.*\|\s*(bash|sh|zsh)\b/],k9Q=[/\b(DROP|DELETE|TRUNCATE)\s+(TABLE|DATABASE|SCHEMA)\b/i,/\bUNION\s+(ALL\s+)?SELECT\b/i,/\bOR\s+['"]?1['"]?\s*=\s*['"]?1['"]?/i,/;\s*(DROP|DELETE|INSERT|UPDATE|ALTER)\b/i,/--\s*$/,/\/\*.*\*\/.*\b(SELECT|DROP|DELETE)\b/i],h9Q={blockOnCritical:!0,blockOnHigh:!1,requireApprovalOnHigh:!0,checkPromptInjection:!0,checkPathTraversal:!0,checkCredentials:!0,checkDangerousCommands:!0,checkSqlInjection:!0,checkXss:!0,additionalSensitivePatterns:[],allowedDangerousCommands:[]}});function kV0(J){return Ry0(J)}function cX0(J){return Zi1.flatMap((Q)=>(J.alwaysAllowRules[Q]||[]).map((X)=>({source:Q,ruleBehavior:"allow",ruleValue:A5(X)})))}function wQ(J,Q){if(Q)switch(Q.type){case"hook":return Q.reason?`Hook '${Q.hookName}' blocked this action: ${Q.reason}`:`Hook '${Q.hookName}' requires approval for this ${J} command`;case"rule":{let Z=T7(Q.rule.ruleValue),Y=kV0(Q.rule.source);return`Permission rule '${Z}' from ${Y} requires approval for this ${J} command`}case"subcommandResults":{let Z=[];for(let[Y,q]of Q.reasons)if(q.behavior==="ask"||q.behavior==="passthrough")if(J==="Bash"){let{commandWithoutRedirections:K,redirections:G}=IL(Y),z=G.length>0?K:Y;Z.push(z)}else Z.push(Y);if(Z.length>0){let Y=Z.length;return`This ${J} command contains multiple operations. The following ${J6(Y,"part")} ${J6(Y,"requires","require")} approval: ${Z.join(", ")}`}return`This ${J} command contains multiple operations that require approval`}case"permissionPromptTool":return`Tool '${Q.permissionPromptToolName}' requires approval for this ${J} command`;case"sandboxOverride":return"Run outside of the sandbox";case"workingDir":return Q.reason;case"safetyCheck":case"other":return Q.reason;case"mode":return`Current permission mode (${kb(Q.mode)}) requires approval for this ${J} command`;case"asyncAgent":return Q.reason}return`Glock requested permissions to use ${J}, but you haven't granted it yet.`}function Du(J){return Zi1.flatMap((Q)=>(J.alwaysDenyRules[Q]||[]).map((X)=>({source:Q,ruleBehavior:"deny",ruleValue:A5(X)})))}function dX0(J){return Zi1.flatMap((Q)=>(J.alwaysAskRules[Q]||[]).map((X)=>({source:Q,ruleBehavior:"ask",ruleValue:A5(X)})))}function Yi1(J,Q){if(Q.ruleValue.ruleContent!==void 0)return!1;let X=eW1(J);if(Q.ruleValue.toolName===X)return!0;let Z=AO(Q.ruleValue.toolName),Y=AO(X);return Z!==null&&Y!==null&&(Z.toolName===void 0||Z.toolName==="*")&&Z.serverName===Y.serverName}function u9Q(J,Q){return cX0(J).find((X)=>Yi1(Q,X))||null}function At0(J,Q){return Du(J).find((X)=>Yi1(Q,X))||null}function u9J(J,Q){return dX0(J).find((X)=>Yi1(Q,X))||null}function Qs6(J,Q,X){return Du(J).find((Z)=>Z.ruleValue.toolName===Q&&Z.ruleValue.ruleContent===X)||null}function jO0(J,Q,X){let Z=new Set;for(let Y of Du(Q))if(Y.ruleValue.toolName===X&&Y.ruleValue.ruleContent!==void 0)Z.add(Y.ruleValue.ruleContent);return J.filter((Y)=>!Z.has(Y.agentType))}function lM(J,Q,X){return Dn(J,eW1(Q),X)}function Dn(J,Q,X){let Z=new Map,Y=[];switch(X){case"allow":Y=cX0(J);break;case"deny":Y=Du(J);break;case"ask":Y=dX0(J);break}for(let q of Y)if(q.ruleValue.toolName===Q&&q.ruleValue.ruleContent!==void 0&&q.ruleBehavior===X)Z.set(q.ruleValue.ruleContent,q);return Z}async function g9Q(J,Q,X,Z,Y,q){try{for await(let K of Yr(J.name,X,Q,Z,Y,q,Z.abortController.signal)){if(!K.permissionRequestResult)continue;let G=K.permissionRequestResult;if(G.behavior==="allow"){let z=G.updatedInput??Q;if(G.updatedPermissions?.length)mR(G.updatedPermissions),Z.setAppState((W)=>({...W,toolPermissionContext:bF(W.toolPermissionContext,G.updatedPermissions)}));return{behavior:"allow",updatedInput:z,decisionReason:{type:"hook",hookName:"PermissionRequest"}}}if(G.behavior==="deny"){if(G.interrupt)b(`Hook interrupt: tool=${J.name} hookMessage=${G.message}`),Z.abortController.abort();return{behavior:"deny",message:G.message||"Permission denied by hook",decisionReason:{type:"hook",hookName:"PermissionRequest",reason:G.message}}}}}catch(K){H0(Error("PermissionRequest hook failed for headless agent",{cause:R8(K)}))}return null}async function al6(J,Q,X){let Z=X.getAppState(),Y=At0(Z.toolPermissionContext,J);if(Y)return{behavior:"deny",decisionReason:{type:"rule",rule:Y},message:`Permission to use ${J.name} has been denied.`};let q=u9J(Z.toolPermissionContext,J);if(q){if(!(J.name===O6&&p8.isSandboxingEnabled()&&p8.isAutoAllowBashIfSandboxedEnabled()&&Pw(Q)))return{behavior:"ask",decisionReason:{type:"rule",rule:q},message:wQ(J.name)}}let K={behavior:"passthrough",message:wQ(J.name)};try{let G=J.inputSchema.parse(Q);K=await J.checkPermissions(G,X)}catch(G){if(G instanceof qZ||G instanceof eQ)throw G;H0(G)}if(K?.behavior==="deny")return K;if(K?.behavior==="ask"&&K.decisionReason?.type==="rule"&&K.decisionReason.rule.ruleBehavior==="ask")return K;if(K?.behavior==="ask"&&K.decisionReason?.type==="safetyCheck")return K;return null}async function m9Q(J,Q,X){if(X.abortController.signal.aborted)throw new qZ;let Z=X.getAppState(),Y=At0(Z.toolPermissionContext,J);if(Y)return{behavior:"deny",decisionReason:{type:"rule",rule:Y},message:`Permission to use ${J.name} has been denied.`};let q=u9J(Z.toolPermissionContext,J);if(q){if(!(J.name===O6&&p8.isSandboxingEnabled()&&p8.isAutoAllowBashIfSandboxedEnabled()&&Pw(Q)))return{behavior:"ask",decisionReason:{type:"rule",rule:q},message:wQ(J.name)}}let K={behavior:"passthrough",message:wQ(J.name)};try{let H=J.inputSchema.parse(Q);K=await J.checkPermissions(H,X)}catch(H){if(H instanceof qZ||H instanceof eQ)throw H;H0(H)}if(K?.behavior==="deny")return K;if(J.requiresUserInteraction?.()&&K?.behavior==="ask")return K;if(K?.behavior==="ask"&&K.decisionReason?.type==="rule"&&K.decisionReason.rule.ruleBehavior==="ask")return K;if(K?.behavior==="ask"&&K.decisionReason?.type==="safetyCheck")return K;if(Z=X.getAppState(),Z.toolPermissionContext.mode==="bypassPermissions"||Z.toolPermissionContext.mode==="plan"&&Z.toolPermissionContext.isBypassPermissionsModeAvailable)return{behavior:"allow",updatedInput:h9J(K,Q),decisionReason:{type:"mode",mode:Z.toolPermissionContext.mode}};let z=u9Q(Z.toolPermissionContext,J);if(z)return{behavior:"allow",updatedInput:h9J(K,Q),decisionReason:{type:"rule",rule:z}};let W=K.behavior==="passthrough"?{...K,behavior:"ask",message:wQ(J.name,K.decisionReason)}:K;if(W.behavior==="ask"&&W.suggestions)b(`Permission suggestions for ${J.name}: ${l0(W.suggestions,null,2)}`);return W}async function g9J({rule:J,initialContext:Q,setToolPermissionContext:X}){if(J.source==="policySettings"||J.source==="flagSettings"||J.source==="command")throw Error("Cannot delete permission rules from read-only settings");let Z=iZ(Q,{type:"removeRules",rules:[J.ruleValue],behavior:J.ruleBehavior,destination:J.source});switch(J.source){case"localSettings":case"userSettings":case"projectSettings":{XY6(J);break}case"cliArg":case"session":break}X(Z)}function m9J(J,Q){let X=new Map;for(let Y of J){let q=`${Y.source}:${Y.ruleBehavior}`;if(!X.has(q))X.set(q,[]);X.get(q).push(Y.ruleValue)}let Z=[];for(let[Y,q]of X){let[K,G]=Y.split(":");Z.push({type:Q,rules:q,behavior:G,destination:K})}return Z}function g6J(J,Q){let X=m9J(Q,"addRules");return bF(J,X)}function H$6(J,Q){let X=J;if(cH0()){let q=["userSettings","projectSettings","localSettings","cliArg","session"],K=["allow","deny","ask"];for(let G of q)for(let z of K)X=iZ(X,{type:"replaceRules",rules:[],behavior:z,destination:G})}let Z=["userSettings","projectSettings","localSettings"];for(let q of Z)for(let K of["allow","deny","ask"])X=iZ(X,{type:"replaceRules",rules:[],behavior:K,destination:q});let Y=m9J(Q,"replaceRules");return bF(X,Y)}function h9J(J,Q){return("updatedInput"in J?J.updatedInput:void 0)??Q}var Zi1,qW=async(J,Q,X,Z,Y)=>{if(J.name===O6&&typeof Q.command==="string"){let z=Q.command,W=/\bgit\s+rm\s+(-\w*r\w*f|\w*f\w*r)\b/.test(z),H=/\brm\s+(-\w*r\w*f|\w*f\w*r)\b/.test(z);if(W)return{behavior:"ask",message:"git rm -rf detected \u2014 requires your approval before executing."};if(H)return{behavior:"deny",message:"rm -rf is blocked. This command is never allowed."}}let K=new Qi1({blockOnCritical:!0,blockOnHigh:!1}).assessToolRequest(J.name,Q??{});if(!K.allowed)return{behavior:"deny",message:K.blockedReason??"Blocked by security gate."};return{behavior:"allow"}};var XK=I(()=>{xV();MO();PZ();m70();k9J();rS();JU();Z1();T1();M1();V4();eY();vW();lq();FB();gR();N1();D1();BG();Vh();t1();N4();M8();dS();i1();Cm1();DS1();Zi1=[...iV,"cliArg","command","session"]});import{randomBytes as p9Q}from"crypto";import{homedir as c9J,tmpdir as c9Q}from"os";import{join as h2,normalize as lX0,posix as $u,sep as hH}from"path";function OW(J){return J.toLowerCase()}function i9Q(J){let Q=e6(J),X=OW(Q),Z=[{dir:e6(h2(j8(),".glock","skills")),prefix:"/.glock/skills/"},{dir:e6(h2(c9J(),".glock","skills")),prefix:"~/.glock/skills/"}];for(let{dir:Y,prefix:q}of Z){let K=OW(Y);for(let G of[hH,"/"])if(X.startsWith(K+G.toLowerCase())){let z=Q.slice(Y.length+G.length),W=z.indexOf("/"),H=hH==="\\"?z.indexOf("\\"):-1,B=W===-1?H:H===-1?W:Math.min(W,H);if(B<=0)return null;let U=z.slice(0,B);if(!U||U==="."||U.includes(".."))return null;if(/[*?[\]]/.test(U))return null;return{skillName:U,pattern:q+U+"/**"}}}return null}function Ki1(J,Q){if(N8()==="windows"){let X=CW(J),Z=CW(Q);return $u.relative(X,Z)}return $u.relative(J,Q)}function qY6(J){if(N8()==="windows")return CW(J);return J}function n9Q(){return iV.map((J)=>wK(J)).filter((J)=>J!==void 0)}function ex1(J){let Q=e6(J),X=OW(Q);if(X.endsWith(`${hH}.claude${hH}settings.json`)||X.endsWith(`${hH}.claude${hH}settings.local.json`))return!0;return n9Q().some((Z)=>OW(Z)===X)}function r9Q(J){if(ex1(J))return!0;let Q=h2(j8(),".glock","commands"),X=h2(j8(),".glock","agents"),Z=h2(j8(),".glock","skills");return EF(J,Q)||EF(J,X)||EF(J,Z)}function d9J(J){let Q=h2(L4(),Zj()),X=lX0(J);return X.startsWith(Q)&&X.endsWith(".md")}function lt0(){return h2(Z5(B1()),A1(),"session-memory")+hH}function C60(){return h2(lt0(),"summary.md")}function a9Q(J){return lX0(J).startsWith(lt0())}function o9Q(J){let Q=Z5(B1()),X=lX0(J);return X===Q||X.startsWith(Q+hH)}function pI(){return GZ("jarvis_api_error")}function uk1(){if(N8()==="windows")return"glock";return`glock-${process.getuid?.()??0}`}function fk0(){return h2(qk(),dU(j8()))+hH}function Ru(){return h2(fk0(),A1(),"scratchpad")}async function l9J(){if(!pI())throw Error("Scratchpad directory feature is not enabled");let J=Y1(),Q=Ru();return await J.mkdir(Q,{mode:448}),Q}function i9J(J){if(!pI())return!1;let Q=Ru(),X=lX0(J);return X===Q||X.startsWith(Q+hH)}function s9Q(J){let X=e6(J).split(hH),Z=X.at(-1);if(J.startsWith("\\\\")||J.startsWith("//"))return!0;for(let Y=0;Y<X.length;Y++){let q=X[Y],K=OW(q);for(let G of l9Q){if(K!==OW(G))continue;if(G===".glock"){let z=X[Y+1];if(z&&OW(z)==="worktrees")break}return!0}}if(Z){let Y=OW(Z);if(d9Q.some((q)=>OW(q)===Y))return!0}return!1}function n9J(J){if(N8()==="windows"||N8()==="wsl"){if(J.indexOf(":",2)!==-1)return!0}if(/~\d/.test(J))return!0;if(J.startsWith("\\\\?\\")||J.startsWith("\\\\.\\")||J.startsWith("//?/")||J.startsWith("//./"))return!0;if(/[.\s]+$/.test(J))return!0;if(/\.(CON|PRN|AUX|NUL|COM[1-9]|LPT[1-9])$/i.test(J))return!0;if(/(^|\/|\\)\.{3,}(\/|\\|$)/.test(J))return!0;if(Yj(J))return!0;return!1}function qB0(J,Q){let X=Q??fA(J);for(let Z of X)if(n9J(Z))return{safe:!1,message:`Glock requested permissions to write to ${J}, which contains a suspicious Windows path pattern that requires manual approval.`,classifierApprovable:!1};for(let Z of X)if(r9Q(Z))return{safe:!1,message:`Glock requested permissions to write to ${J}, but you haven't granted it yet.`,classifierApprovable:!0};for(let Z of X)if(s9Q(Z))return{safe:!1,message:`Glock requested permissions to edit ${J} which is a sensitive file.`,classifierApprovable:!0};return{safe:!0}}function dM(J){return new Set([j8(),...J.additionalWorkingDirectories.keys()])}function oO(J,Q,X){let Z=X??fA(J),Y=Array.from(dM(Q)).flatMap((q)=>t9Q(q));return Z.every((q)=>Y.some((K)=>EF(q,K)))}function EF(J,Q){let X=e6(J),Z=e6(Q),Y=X.replace(/^\/private\/var\//,"/var/").replace(/^\/private\/tmp(\/|$)/,"/tmp$1"),q=Z.replace(/^\/private\/var\//,"/var/").replace(/^\/private\/tmp(\/|$)/,"/tmp$1"),K=OW(Y),G=OW(q),z=Ki1(G,K);if(z==="")return!0;if(V$(z))return!1;return!$u.isAbsolute(z)}function e9Q(J){switch(J){case"cliArg":case"command":case"session":return e6(j8());case"userSettings":case"policySettings":case"projectSettings":case"localSettings":case"flagSettings":return rp(J)}}function qi1(J){return $u.join(cI,J)}function J7Q({patternRoot:J,pattern:Q,rootPath:X}){let Z=$u.join(J,Q);if(J===X)return qi1(Q);else if(Z.startsWith(`${X}${cI}`)){let Y=Z.slice(X.length);return qi1(Y)}else{let Y=$u.relative(X,J);if(!Y||Y.startsWith(`..${cI}`)||Y==="..")return null;else{let q=$u.join(Y,Q);return qi1(q)}}}function O70(J,Q){let X=new Set(J.get(null)??[]);for(let[Z,Y]of J.entries()){if(Z===null)continue;for(let q of Y){let K=J7Q({patternRoot:Z,pattern:q,rootPath:Q});if(K)X.add(K)}}return Array.from(X)}function L70(J){let Q=r9J(J,"read","deny"),X=new Map;for(let[Z,Y]of Q.entries())X.set(Z,Array.from(Y.keys()));return X}function Q7Q(J,Q){if(J.startsWith(`${cI}${cI}`)){let Z=J.slice(1);if(N8()==="windows"&&Z.match(/^\/[a-z]\//i)){let Y=Z[1]?.toUpperCase()??"C",q=Z.slice(2),K=`${Y}:\\`;return{relativePattern:q.startsWith("/")?q.slice(1):q,root:K}}return{relativePattern:Z,root:cI}}else if(J.startsWith(`~${cI}`))return{relativePattern:J.slice(1),root:c9J().normalize("NFC")};else if(J.startsWith(cI))return{relativePattern:J,root:e9Q(Q)};let X=J;if(J.startsWith(`.${cI}`))X=J.slice(2);return{relativePattern:X,root:null}}function r9J(J,Q,X){let Z=(()=>{switch(Q){case"edit":return fJ;case"read":return o6}})(),Y=Dn(J,Z,X),q=new Map;for(let[K,G]of Y.entries()){let{relativePattern:z,root:W}=Q7Q(K,G.source),H=q.get(W);if(H===void 0)H=new Map,q.set(W,H);H.set(z,G)}return q}function iq(J,Q,X,Z){let Y=e6(J);if(N8()==="windows"&&Y.includes("\\"))Y=CW(Y);let q=r9J(Q,X,Z);for(let[K,G]of q.entries()){let z=Array.from(G.keys()).map((U)=>{let F=U;if(F.endsWith("/**"))F=F.slice(0,-3);return F}),W=p9J.default().add(z),H=Ki1(K??B1(),Y??B1());if(H.startsWith(`..${cI}`))continue;if(!H)continue;let B=W.test(H);if(B.ignored&&B.rule){let U=B.rule.pattern,F=U+"/**";if(G.has(F))return G.get(F)??null;return G.get(U)??null}}return null}function V70(J,Q,X){if(typeof J.getPath!=="function")return{behavior:"ask",message:`Glock requested permissions to use ${J.name}, but you haven't granted it yet.`};let Z=J.getPath(Q),Y=fA(Z);for(let H of Y)if(H.startsWith("\\\\")||H.startsWith("//"))return{behavior:"ask",message:`Glock requested permissions to read from ${Z}, which appears to be a UNC path that could access network resources.`,decisionReason:{type:"other",reason:"UNC path detected (defense-in-depth check)"}};for(let H of Y)if(n9J(H))return{behavior:"ask",message:`Glock requested permissions to read from ${Z}, which contains a suspicious Windows path pattern that requires manual approval.`,decisionReason:{type:"other",reason:"Path contains suspicious Windows-specific patterns (alternate data streams, short names, long path prefixes, or three or more consecutive dots) that require manual verification"}};for(let H of Y){let B=iq(H,X,"read","deny");if(B)return{behavior:"deny",message:`Permission to read ${Z} has been denied.`,decisionReason:{type:"rule",rule:B}}}for(let H of Y){let B=iq(H,X,"read","ask");if(B)return{behavior:"ask",message:`Glock requested permissions to read from ${Z}, but you haven't granted it yet.`,decisionReason:{type:"rule",rule:B}}}let q=ai(J,Q,X,Y);if(q.behavior==="allow")return q;if(oO(Z,X,Y))return{behavior:"allow",updatedInput:Q,decisionReason:{type:"mode",mode:"default"}};let G=e6(Z),z=GB0(G,Q);if(z.behavior!=="passthrough")return z;let W=iq(Z,X,"read","allow");if(W)return{behavior:"allow",updatedInput:Q,decisionReason:{type:"rule",rule:W}};return{behavior:"ask",message:`Glock requested permissions to read from ${Z}, but you haven't granted it yet.`,suggestions:hV0(Z,"read",X,Y),decisionReason:{type:"workingDir",reason:"Path is outside allowed working directories"}}}function ai(J,Q,X,Z){if(typeof J.getPath!=="function")return{behavior:"ask",message:`Glock requested permissions to use ${J.name}, but you haven't granted it yet.`};let Y=J.getPath(Q),q=Z??fA(Y);for(let U of q){let F=iq(U,X,"edit","deny");if(F)return{behavior:"deny",message:`Permission to edit ${Y} has been denied.`,decisionReason:{type:"rule",rule:F}}}let K=e6(Y),G=KB0(K,Q);if(G.behavior!=="passthrough")return G;let z=iq(Y,{...X,alwaysAllowRules:{session:X.alwaysAllowRules.session??[]}},"edit","allow");if(z){let U=z.ruleValue.ruleContent;if(U&&(U.startsWith(yb0.slice(0,-2))||U.startsWith(bb0.slice(0,-2)))&&!U.includes("..")&&U.endsWith("/**"))return{behavior:"allow",updatedInput:Q,decisionReason:{type:"rule",rule:z}}}let W=qB0(Y,q);if(!W.safe){let U=i9Q(Y),F=U?[{type:"addRules",rules:[{toolName:fJ,ruleContent:U.pattern}],behavior:"allow",destination:"session"}]:hV0(Y,"write",X,q);return{behavior:"ask",message:W.message,suggestions:F,decisionReason:{type:"safetyCheck",reason:W.message,classifierApprovable:W.classifierApprovable}}}for(let U of q){let F=iq(U,X,"edit","ask");if(F)return{behavior:"ask",message:`Glock requested permissions to write to ${Y}, but you haven't granted it yet.`,decisionReason:{type:"rule",rule:F}}}let H=oO(Y,X,q);if(X.mode==="acceptEdits"&&H)return{behavior:"allow",updatedInput:Q,decisionReason:{type:"mode",mode:X.mode}};let B=iq(Y,X,"edit","allow");if(B)return{behavior:"allow",updatedInput:Q,decisionReason:{type:"rule",rule:B}};return{behavior:"ask",message:`Glock requested permissions to write to ${Y}, but you haven't granted it yet.`,suggestions:hV0(Y,"write",X,q),decisionReason:!H?{type:"workingDir",reason:"Path is outside allowed working directories"}:void 0}}function hV0(J,Q,X,Z){let Y=!oO(J,X,Z);if(Q==="read"&&Y){let K=WB(J);return fA(K).map((W)=>xd(W,"session")).filter((W)=>W!==void 0)}let q=X.mode==="default"||X.mode==="plan";if(Q==="write"||Q==="create"){let K=q?[{type:"setMode",mode:"acceptEdits",destination:"session"}]:[];if(Y){let G=WB(J),z=fA(G);K.push({type:"addDirectories",directories:z,destination:"session"})}return K}return q?[{type:"setMode",mode:"acceptEdits",destination:"session"}]:[]}function KB0(J,Q){let X=lX0(J);if(d9J(X))return{behavior:"allow",updatedInput:Q,decisionReason:{type:"other",reason:"Plan files for current session are allowed for writing"}};if(i9J(X))return{behavior:"allow",updatedInput:Q,decisionReason:{type:"other",reason:"Scratchpad files for current session are allowed for writing"}};if(TH0(X))return{behavior:"allow",updatedInput:Q,decisionReason:{type:"other",reason:"Agent memory files are allowed for writing"}};if(!jb0()&&sp(X))return{behavior:"allow",updatedInput:Q,decisionReason:{type:"other",reason:"auto memory files are allowed for writing"}};if(OW(X)===OW(h2(j8(),".glock","launch.json")))return{behavior:"allow",updatedInput:Q,decisionReason:{type:"other",reason:"Preview launch config is allowed for writing"}};return{behavior:"passthrough",message:""}}function GB0(J,Q){let X=lX0(J);if(a9Q(X))return{behavior:"allow",updatedInput:Q,decisionReason:{type:"other",reason:"Session memory files are allowed for reading"}};if(o9Q(X))return{behavior:"allow",updatedInput:Q,decisionReason:{type:"other",reason:"Project directory files are allowed for reading"}};if(d9J(X))return{behavior:"allow",updatedInput:Q,decisionReason:{type:"other",reason:"Plan files for current session are allowed for reading"}};let Z=Rx(),Y=Z.endsWith(hH)?Z:Z+hH;if(X===Z||X.startsWith(Y))return{behavior:"allow",updatedInput:Q,decisionReason:{type:"other",reason:"Tool result files are allowed for reading"}};if(i9J(X))return{behavior:"allow",updatedInput:Q,decisionReason:{type:"other",reason:"Scratchpad files for current session are allowed for reading"}};let q=fk0();if(X.startsWith(q))return{behavior:"allow",updatedInput:Q,decisionReason:{type:"other",reason:"Project temp directory files are allowed for reading"}};if(TH0(X))return{behavior:"allow",updatedInput:Q,decisionReason:{type:"other",reason:"Agent memory files are allowed for reading"}};if(sp(X))return{behavior:"allow",updatedInput:Q,decisionReason:{type:"other",reason:"auto memory files are allowed for reading"}};let K=h2(L8(),"tasks")+hH;if(X===K.slice(0,-1)||X.startsWith(K))return{behavior:"allow",updatedInput:Q,decisionReason:{type:"other",reason:"Task files are allowed for reading"}};let G=h2(L8(),"teams")+hH;if(X===G.slice(0,-1)||X.startsWith(G))return{behavior:"allow",updatedInput:Q,decisionReason:{type:"other",reason:"Team files are allowed for reading"}};let z=Gi1()+hH;if(X.startsWith(z))return{behavior:"allow",updatedInput:Q,decisionReason:{type:"other",reason:"Bundled skill reference files are allowed for reading"}};return{behavior:"passthrough",message:""}}var p9J,d9Q,l9Q,cI,qk,Gi1,t9Q;var vX=I(()=>{IJ();t5();SR();N1();vZ();Z6();t1();H6();dX();$K();k9();gJ();eY();g8();s10();CB();L$();lq();XK();p9J=T(Is(),1),d9Q=[".gitconfig",".gitmodules",".bashrc",".bash_profile",".zshrc",".zprofile",".profile",".ripgreprc",".mcp.json",".glock.json"],l9Q=[".git",".vscode",".idea",".glock"];cI=$u.sep;qk=g1(function(){let Q=process.env.GLOCK_TMPDIR||(N8()==="windows"?c9Q():"/tmp"),X=Y1(),Z=Q;try{Z=X.realpathSync(Q)}catch{}return h2(Z,uk1())+hH}),Gi1=g1(function(){let Q=p9Q(16).toString("hex");return h2(qk(),"bundled-skills","0.1.16",Q)});t9Q=g1(fA)});import{stat as X7Q}from"fs/promises";import{dirname as Z7Q,resolve as Y7Q}from"path";async function vX0(J,Q){if(!J)return{resultType:"emptyPath"};let X=Y7Q(e6(J));try{if(!(await X7Q(X)).isDirectory())return{resultType:"notADirectory",directoryPath:J,absolutePath:X}}catch(Y){let q=c8(Y);if(q==="ENOENT"||q==="ENOTDIR"||q==="EACCES"||q==="EPERM")return{resultType:"pathNotFound",directoryPath:J,absolutePath:X};throw Y}let Z=dM(Q);for(let Y of Z)if(EF(X,Y))return{resultType:"alreadyInWorkingDirectory",directoryPath:J,workingDir:Y};return{resultType:"success",absolutePath:X}}function fX0(J){switch(J.resultType){case"emptyPath":return"Please provide a directory path.";case"pathNotFound":return`Path ${_1.bold(J.absolutePath)} was not found.`;case"notADirectory":{let Q=Z7Q(J.absolutePath);return`${_1.bold(J.directoryPath)} is not a directory. Did you mean to add the parent directory ${_1.bold(Q)}?`}case"alreadyInWorkingDirectory":return`${_1.bold(J.directoryPath)} is already accessible within the existing working directory ${_1.bold(J.workingDir)}.`;case"success":return`Added ${_1.bold(J.absolutePath)} as a working directory.`}}var Dt0=I(()=>{k7();T1();dX();vX()});import{basename as q7Q,dirname as K7Q,join as s9J,sep as it0}from"path";function J7J(J,Q){if(!J)return{directory:Q||B1(),prefix:""};let X=e6(J,Q);if(J.endsWith("/")||J.endsWith(it0))return{directory:X,prefix:""};let Z=K7Q(X),Y=q7Q(J);return{directory:Z,prefix:Y}}async function G7Q(J){let Q=a9J.get(J);if(Q)return Q;try{let Y=(await Y1().readdir(J)).filter((q)=>q.isDirectory()&&!q.name.startsWith(".")).map((q)=>({name:q.name,path:s9J(J,q.name),type:"directory"})).slice(0,100);return a9J.set(J,Y),Y}catch(X){return H0(X),[]}}async function nt0(J,Q={}){let{basePath:X=B1(),maxResults:Z=10}=Q,{directory:Y,prefix:q}=J7J(J,X),K=await G7Q(Y),G=q.toLowerCase();return K.filter((W)=>W.name.toLowerCase().startsWith(G)).slice(0,Z).map((W)=>({id:W.path,displayText:W.name+"/",description:"directory",metadata:{type:"directory"}}))}function Q7J(J){return J.startsWith("~/")||J.startsWith("/")||J.startsWith("./")||J.startsWith("../")||J==="~"||J==="."||J===".."}async function z7Q(J,Q=!1){let X=`${J}:${Q}`,Z=o9J.get(X);if(Z)return Z;try{let K=(await Y1().readdir(J)).filter((G)=>Q||!G.name.startsWith(".")).map((G)=>({name:G.name,path:s9J(J,G.name),type:G.isDirectory()?"directory":"file"})).sort((G,z)=>{if(G.type==="directory"&&z.type!=="directory")return-1;if(G.type!=="directory"&&z.type==="directory")return 1;return G.name.localeCompare(z.name)}).slice(0,100);return o9J.set(X,K),K}catch(Y){return H0(Y),[]}}async function X7J(J,Q={}){let{basePath:X=B1(),maxResults:Z=10,includeFiles:Y=!0,includeHidden:q=!1}=Q,{directory:K,prefix:G}=J7J(J,X),z=await z7Q(K,q),W=G.toLowerCase(),H=z.filter((F)=>{if(!Y&&F.type==="file")return!1;return F.name.toLowerCase().startsWith(W)}).slice(0,Z),B=J.includes("/")||J.includes(it0),U="";if(B){let F=J.lastIndexOf("/"),_=J.lastIndexOf(it0),O=Math.max(F,_);U=J.substring(0,O+1)}if(U.startsWith("./")||U.startsWith("."+it0))U=U.slice(2);return H.map((F)=>{let _=U+F.name;return{id:_,displayText:F.type==="directory"?_+"/":_,metadata:{type:F.type}}})}var t9J=500,e9J=300000,a9J,o9J;var zi1=I(()=>{Jt();Z6();H6();M1();dX();a9J=new cV({max:t9J,ttl:e9J}),o9J=new cV({max:t9J,ttl:e9J})});function H7Q(J){if(J.startsWith("file-"))return"+";if(J.startsWith("mcp-resource-"))return"\u25C7";if(J.startsWith("agent-"))return"*";return"+"}function B7Q(J){return J.startsWith("file-")||J.startsWith("mcp-resource-")||J.startsWith("agent-")}function uV0(J){let Q=Wi1.c(22),{suggestions:X,selectedSuggestion:Z,maxColumnWidth:Y,overlay:q}=J,{rows:K}=l8(),G=q?W7Q:Math.min(6,Math.max(1,K-3));if(X.length===0)return null;let z;if(Q[0]!==Y||Q[1]!==X)z=Y??Math.max(...X.map(F7Q))+5,Q[0]=Y,Q[1]=X,Q[2]=z;else z=Q[2];let W=z,H=Math.max(0,Math.min(Z-Math.floor(G/2),X.length-G)),B=Math.min(H+G,X.length),U,F,_,O;if(Q[3]!==B||Q[4]!==W||Q[5]!==q||Q[6]!==Z||Q[7]!==H||Q[8]!==X){let N=X.slice(H,B);U=f,F="column",_=q?void 0:"flex-end";let A;if(Q[13]!==W||Q[14]!==Z||Q[15]!==X)A=(R)=>ju.jsxDEV(U7Q,{item:R,maxColumnWidth:W,isSelected:R.id===X[Z]?.id},R.id,!1,void 0,this),Q[13]=W,Q[14]=Z,Q[15]=X,Q[16]=A;else A=Q[16];O=N.map(A),Q[3]=B,Q[4]=W,Q[5]=q,Q[6]=Z,Q[7]=H,Q[8]=X,Q[9]=U,Q[10]=F,Q[11]=_,Q[12]=O}else U=Q[9],F=Q[10],_=Q[11],O=Q[12];let L;if(Q[17]!==U||Q[18]!==F||Q[19]!==_||Q[20]!==O)L=ju.jsxDEV(U,{flexDirection:F,justifyContent:_,children:O},void 0,!1,void 0,this),Q[17]=U,Q[18]=F,Q[19]=_,Q[20]=O,Q[21]=L;else L=Q[21];return L}function F7Q(J){return B8(J.displayText)}var Wi1,Hi1,ju,W7Q=5,U7Q,Z7J;var rt0=I(()=>{U9();x7();a0();A6();Wi1=T(e0(),1),Hi1=T(J1(),1),ju=T(e(),1);U7Q=Hi1.memo(function(Q){let X=Wi1.c(36),{item:Z,maxColumnWidth:Y,isSelected:q}=Q,K=l8().columns;if(B7Q(Z.id)){let C;if(X[0]!==Z.id)C=H7Q(Z.id),X[0]=Z.id,X[1]=C;else C=X[1];let S=C,k=q?"suggestion":void 0,h=!q,u=Z.id.startsWith("file-"),x=Z.id.startsWith("mcp-resource-"),m=Z.description?3:0,p;if(u){let n;if(X[2]!==Z.description)n=Z.description?Math.min(20,B8(Z.description)):0,X[2]=Z.description,X[3]=n;else n=X[3];let s=n,X0=K-2-4-m-s,Y0;if(X[4]!==Z.displayText||X[5]!==X0)Y0=hq0(Z.displayText,X0),X[4]=Z.displayText,X[5]=X0,X[6]=Y0;else Y0=X[6];p=Y0}else if(x){let n;if(X[7]!==Z.displayText)n=x9(Z.displayText,30),X[7]=Z.displayText,X[8]=n;else n=X[8];p=n}else p=Z.displayText;let c=K-2-B8(p)-m-4,r;if(Z.description){let n=Math.max(0,c),s;if(X[9]!==Z.description||X[10]!==n)s=x9(Z.description.replace(/\s+/g," "),n),X[9]=Z.description,X[10]=n,X[11]=s;else s=X[11];r=`${S} ${p} \u2013 ${s}`}else r=`${S} ${p}`;let J0;if(X[12]!==h||X[13]!==r||X[14]!==k)J0=ju.jsxDEV(M,{color:k,dimColor:h,wrap:"truncate",children:r},void 0,!1,void 0,this),X[12]=h,X[13]=r,X[14]=k,X[15]=J0;else J0=X[15];return J0}let z=Math.floor(K*0.4),W=Math.min(Y??B8(Z.displayText)+5,z),H=Z.color||(q?"suggestion":void 0),B=!q,U=Z.displayText;if(B8(U)>W-2){let C=W-2,S;if(X[16]!==U||X[17]!==C)S=x9(U,C),X[16]=U,X[17]=C,X[18]=S;else S=X[18];U=S}let F=U+" ".repeat(Math.max(0,W-B8(U))),_=Z.tag?`[${Z.tag}] `:"",O=B8(_),L=Math.max(0,K-W-O-4),N;if(X[19]!==L||X[20]!==Z.description)N=Z.description?x9(Z.description.replace(/\s+/g," "),L):"",X[19]=L,X[20]=Z.description,X[21]=N;else N=X[21];let A=N,R;if(X[22]!==F||X[23]!==B||X[24]!==H)R=ju.jsxDEV(M,{color:H,dimColor:B,children:F},void 0,!1,void 0,this),X[22]=F,X[23]=B,X[24]=H,X[25]=R;else R=X[25];let D;if(X[26]!==_)D=_?ju.jsxDEV(M,{dimColor:!0,children:_},void 0,!1,void 0,this):null,X[26]=_,X[27]=D;else D=X[27];let $=q?"suggestion":void 0,y=!q,v;if(X[28]!==$||X[29]!==y||X[30]!==A)v=ju.jsxDEV(M,{color:$,dimColor:y,children:A},void 0,!1,void 0,this),X[28]=$,X[29]=y,X[30]=A,X[31]=v;else v=X[31];let E;if(X[32]!==R||X[33]!==D||X[34]!==v)E=ju.jsxDEV(M,{wrap:"truncate",children:[R,D,v]},void 0,!0,void 0,this),X[32]=R,X[33]=D,X[34]=v,X[35]=E;else E=X[35];return E});Z7J=Hi1.memo(uV0)});function Y7J(){let J=gV0.c(1),Q;if(J[0]===Symbol.for("react.memo_cache_sentinel"))Q=v5.jsxDEV(M,{dimColor:!0,children:"Glock will be able to read files in this directory and make edits when auto-accept edits is on."},void 0,!1,void 0,this),J[0]=Q;else Q=J[0];return Q}function O7Q(J){let Q=gV0.c(5),{path:X}=J,Z;if(Q[0]!==X)Z=v5.jsxDEV(M,{color:"permission",children:X},void 0,!1,void 0,this),Q[0]=X,Q[1]=Z;else Z=Q[1];let Y;if(Q[2]===Symbol.for("react.memo_cache_sentinel"))Y=v5.jsxDEV(Y7J,{},void 0,!1,void 0,this),Q[2]=Y;else Y=Q[2];let q;if(Q[3]!==Z)q=v5.jsxDEV(f,{flexDirection:"column",paddingX:2,gap:1,children:[Z,Y]},void 0,!0,void 0,this),Q[3]=Z,Q[4]=q;else q=Q[4];return q}function L7Q(J){let Q=gV0.c(14),{value:X,onChange:Z,onSubmit:Y,error:q,suggestions:K,selectedSuggestion:G}=J,z;if(Q[0]===Symbol.for("react.memo_cache_sentinel"))z=v5.jsxDEV(M,{children:"Enter the path to the directory:"},void 0,!1,void 0,this),Q[0]=z;else z=Q[0];let W;if(Q[1]!==Z||Q[2]!==Y||Q[3]!==X)W=v5.jsxDEV(f,{borderDimColor:!0,borderStyle:"round",marginY:1,paddingLeft:1,children:v5.jsxDEV(sX,{showCursor:!0,placeholder:`Directory path${s0.ellipsis}`,value:X,onChange:Z,onSubmit:Y,columns:80,cursorOffset:X.length,onChangeCursorOffset:V7Q},void 0,!1,void 0,this)},void 0,!1,void 0,this),Q[1]=Z,Q[2]=Y,Q[3]=X,Q[4]=W;else W=Q[4];let H;if(Q[5]!==G||Q[6]!==K)H=K.length>0&&v5.jsxDEV(f,{marginBottom:1,children:v5.jsxDEV(uV0,{suggestions:K,selectedSuggestion:G},void 0,!1,void 0,this)},void 0,!1,void 0,this),Q[5]=G,Q[6]=K,Q[7]=H;else H=Q[7];let B;if(Q[8]!==q)B=q&&v5.jsxDEV(M,{color:"error",children:q},void 0,!1,void 0,this),Q[8]=q,Q[9]=B;else B=Q[9];let U;if(Q[10]!==W||Q[11]!==H||Q[12]!==B)U=v5.jsxDEV(f,{flexDirection:"column",children:[z,W,H,B]},void 0,!0,void 0,this),Q[10]=W,Q[11]=H,Q[12]=B,Q[13]=U;else U=Q[13];return U}function V7Q(){}function mV0(J){let Q=gV0.c(34),{onAddDirectory:X,onCancel:Z,permissionContext:Y,directoryPath:q}=J,[K,G]=qr.useState(""),[z,W]=qr.useState(null),H;if(Q[0]===Symbol.for("react.memo_cache_sentinel"))H=[],Q[0]=H;else H=Q[0];let[B,U]=qr.useState(H),[F,_]=qr.useState(0),O;if(Q[1]===Symbol.for("react.memo_cache_sentinel"))O=async(c)=>{if(!c){U([]),_(0);return}let r=await nt0(c);U(r),_(0)},Q[1]=O;else O=Q[1];let N=bd(O,100),A,R;if(Q[2]!==N||Q[3]!==K)A=()=>{N(K)},R=[K,N],Q[2]=N,Q[3]=K,Q[4]=A,Q[5]=R;else A=Q[4],R=Q[5];qr.useEffect(A,R);let D;if(Q[6]===Symbol.for("react.memo_cache_sentinel"))D=(c)=>{let r=c.id+"/";G(r),W(null)},Q[6]=D;else D=Q[6];let $=D,y;if(Q[7]!==X||Q[8]!==Y)y=async(c)=>{let r=await vX0(c,Y);if(r.resultType==="success")X(r.absolutePath,!1);else W(fX0(r))},Q[7]=X,Q[8]=Y,Q[9]=y;else y=Q[9];let v=y,E;if(Q[10]===Symbol.for("react.memo_cache_sentinel"))E={context:"Settings"},Q[10]=E;else E=Q[10];J8("confirm:no",Z,E);let C;if(Q[11]!==v||Q[12]!==F||Q[13]!==B)C=(c)=>{if(B.length>0){if(c.key==="tab"){c.preventDefault();let r=B[F];if(r)$(r);return}if(c.key==="return"){c.preventDefault();let r=B[F];if(r)v(r.id+"/");return}if(c.key==="up"||c.ctrl&&c.key==="p"){c.preventDefault(),_((r)=>r<=0?B.length-1:r-1);return}if(c.key==="down"||c.ctrl&&c.key==="n"){c.preventDefault(),_((r)=>r>=B.length-1?0:r+1);return}}},Q[11]=v,Q[12]=F,Q[13]=B,Q[14]=C;else C=Q[14];let S=C,k;if(Q[15]!==q||Q[16]!==X||Q[17]!==Z)k=(c)=>{if(!q)return;let r=c;J:switch(r){case"yes-session":{X(q,!1);break J}case"yes-remember":{X(q,!0);break J}case"no":Z()}},Q[15]=q,Q[16]=X,Q[17]=Z,Q[18]=k;else k=Q[18];let h=k,u=q?void 0:N7Q,x;if(Q[19]!==K||Q[20]!==q||Q[21]!==z||Q[22]!==h||Q[23]!==v||Q[24]!==F||Q[25]!==B)x=q?v5.jsxDEV(f,{flexDirection:"column",gap:1,children:[v5.jsxDEV(O7Q,{path:q},void 0,!1,void 0,this),v5.jsxDEV(Q8,{options:_7Q,onChange:h,onCancel:()=>h("no")},void 0,!1,void 0,this)]},void 0,!0,void 0,this):v5.jsxDEV(f,{flexDirection:"column",gap:1,marginX:2,children:[v5.jsxDEV(Y7J,{},void 0,!1,void 0,this),v5.jsxDEV(L7Q,{value:K,onChange:G,onSubmit:v,error:z,suggestions:B,selectedSuggestion:F},void 0,!1,void 0,this)]},void 0,!0,void 0,this),Q[19]=K,Q[20]=q,Q[21]=z,Q[22]=h,Q[23]=v,Q[24]=F,Q[25]=B,Q[26]=x;else x=Q[26];let m;if(Q[27]!==Z||Q[28]!==u||Q[29]!==x)m=v5.jsxDEV(D8,{title:"Add directory to workspace",onCancel:Z,color:"permission",isCancelActive:!1,inputGuide:u,children:x},void 0,!1,void 0,this),Q[27]=Z,Q[28]=u,Q[29]=x,Q[30]=m;else m=Q[30];let p;if(Q[31]!==S||Q[32]!==m)p=v5.jsxDEV(f,{flexDirection:"column",tabIndex:0,autoFocus:!0,onKeyDown:S,children:m},void 0,!1,void 0,this),Q[31]=S,Q[32]=m,Q[33]=p;else p=Q[33];return p}function N7Q(J){return J.pending?v5.jsxDEV(M,{children:["Press ",J.keyName," again to exit"]},void 0,!0,void 0,this):v5.jsxDEV(V8,{children:[v5.jsxDEV(p1,{shortcut:"Tab",action:"complete"},void 0,!1,void 0,this),v5.jsxDEV(p1,{shortcut:"Enter",action:"add"},void 0,!1,void 0,this),v5.jsxDEV(s1,{action:"confirm:no",context:"Settings",fallback:"Esc",description:"cancel"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}var gV0,qr,v5,_7Q;var Bi1=I(()=>{r6();dO();Dt0();EH();a0();f6();zi1();U7();AQ();R9();M9();g9();rt0();gV0=T(e0(),1),qr=T(J1(),1),v5=T(e(),1),_7Q=[{value:"yes-session",label:"Yes, for this session"},{value:"yes-remember",label:"Yes, and remember this directory"},{value:"no",label:"No"}]});var G7J={};X8(G7J,{call:()=>A7Q});function w7Q(J){let Q=q7J.c(10),{message:X,args:Z,onDone:Y}=J,q,K;if(Q[0]!==Y)q=()=>{let H=setTimeout(Y,0);return()=>clearTimeout(H)},K=[Y],Q[0]=Y,Q[1]=q,Q[2]=K;else q=Q[1],K=Q[2];K7J.useEffect(q,K);let G;if(Q[3]!==Z)G=Iu.jsxDEV(M,{dimColor:!0,children:[s0.pointer," /add-dir ",Z]},void 0,!0,void 0,this),Q[3]=Z,Q[4]=G;else G=Q[4];let z;if(Q[5]!==X)z=Iu.jsxDEV(d1,{children:Iu.jsxDEV(M,{children:X},void 0,!1,void 0,this)},void 0,!1,void 0,this),Q[5]=X,Q[6]=z;else z=Q[6];let W;if(Q[7]!==G||Q[8]!==z)W=Iu.jsxDEV(f,{flexDirection:"column",children:[G,z]},void 0,!0,void 0,this),Q[7]=G,Q[8]=z,Q[9]=W;else W=Q[9];return W}async function A7Q(J,Q,X){let Z=(X??"").trim(),Y=Q.getAppState(),q=async(G,z=!1)=>{let H={type:"addDirectories",directories:[G],destination:z?"localSettings":"session"},B=Q.getAppState(),U=iZ(B.toolPermissionContext,H);Q.setAppState((L)=>({...L,toolPermissionContext:U}));let F=qF();if(!F.includes(G))s50([...F,G]);p8.refreshConfig();let _;if(z)try{zj(H),_=`Added ${_1.bold(G)} as a working directory and saved to local settings`}catch(L){_=`Added ${_1.bold(G)} as a working directory. Failed to save to local settings: ${L instanceof Error?L.message:"Unknown error"}`}else _=`Added ${_1.bold(G)} as a working directory for this session`;let O=`${_} ${_1.dim("\xB7 /permissions to manage")}`;J(O)};if(!Z)return Iu.jsxDEV(mV0,{permissionContext:Y.toolPermissionContext,onAddDirectory:q,onCancel:()=>{J("Did not add a working directory.")}},void 0,!1,void 0,this);let K=await vX0(Z,Y.toolPermissionContext);if(K.resultType!=="success"){let G=fX0(K);return Iu.jsxDEV(w7Q,{message:G,args:X??"",onDone:()=>J(G)},void 0,!1,void 0,this)}return Iu.jsxDEV(mV0,{directoryPath:K.absolutePath,permissionContext:Y.toolPermissionContext,onAddDirectory:q,onCancel:()=>{J(`Did not add ${_1.bold(K.absolutePath)} as a working directory.`)}},void 0,!1,void 0,this)}var q7J,K7J,Iu;var z7J=I(()=>{k7();r6();N1();v9();Bi1();a0();lq();V4();Dt0();q7J=T(e0(),1),K7J=T(J1(),1),Iu=T(e(),1)});var R7Q,W7J;var H7J=I(()=>{R7Q={type:"local-jsx",name:"add-dir",description:"Add a new working directory",argumentHint:"<path>",load:()=>Promise.resolve().then(() => (z7J(),G7J))},W7J=R7Q});var B7J;var U7J=I(()=>{B7J={isEnabled:()=>!1,isHidden:!0,name:"stub"}});var F7J;var _7J=I(()=>{F7J={isEnabled:()=>!1,isHidden:!0,name:"stub"}});class Ui1{paths=[];lowerPaths=[];charBits=new Int32Array(0);pathLens=new Uint16Array(0);topLevelCache=null;readyCount=0;loadFromFileList(J){let Q=new Set,X=[];for(let Z of J)if(Z.length>0&&!Q.has(Z))Q.add(Z),X.push(Z);this.buildIndex(X)}loadFromFileListAsync(J){let Q=()=>{},X=new Promise((Y)=>{Q=Y}),Z=this.buildAsync(J,Q);return{queryable:X,done:Z}}async buildAsync(J,Q){let X=new Set,Z=[],Y=performance.now();for(let K=0;K<J.length;K++){let G=J[K];if(G.length>0&&!X.has(G))X.add(G),Z.push(G);if((K&255)===255&&performance.now()-Y>4)await ot0(),Y=performance.now()}this.resetArrays(Z),Y=performance.now();let q=!0;for(let K=0;K<Z.length;K++)if(this.indexPath(K),(K&255)===255&&performance.now()-Y>4){if(this.readyCount=K+1,q)Q(),q=!1;await ot0(),Y=performance.now()}this.readyCount=Z.length,Q()}buildIndex(J){this.resetArrays(J);for(let Q=0;Q<J.length;Q++)this.indexPath(Q);this.readyCount=J.length}resetArrays(J){let Q=J.length;this.paths=J,this.lowerPaths=Array(Q),this.charBits=new Int32Array(Q),this.pathLens=new Uint16Array(Q),this.readyCount=0,this.topLevelCache=j7Q(J,100)}indexPath(J){let Q=this.paths[J].toLowerCase();this.lowerPaths[J]=Q;let X=Q.length;this.pathLens[J]=X;let Z=0;for(let Y=0;Y<X;Y++){let q=Q.charCodeAt(Y);if(q>=97&&q<=122)Z|=1<<q-97}this.charBits[J]=Z}search(J,Q){if(Q<=0)return[];if(J.length===0){if(this.topLevelCache)return this.topLevelCache.slice(0,Q);return[]}let X=J!==J.toLowerCase(),Z=X?J:J.toLowerCase(),Y=Math.min(Z.length,64),q=Array(Y),K=0;for(let A=0;A<Y;A++){let R=Z.charAt(A);q[A]=R;let D=R.charCodeAt(0);if(D>=97&&D<=122)K|=1<<D-97}let G=Y*24+8+32,z=[],W=-1/0,{paths:H,lowerPaths:B,charBits:U,pathLens:F,readyCount:_}=this;J:for(let A=0;A<_;A++){if((U[A]&K)!==K)continue;let R=X?H[A]:B[A],D=R.indexOf(q[0]);if(D===-1)continue;at0[0]=D;let $=0,y=0,v=D;for(let k=1;k<Y;k++){if(D=R.indexOf(q[k],v+1),D===-1)continue J;at0[k]=D;let h=D-v-1;if(h===0)y+=4;else $+=3+h*1;v=D}if(z.length===Q&&G+y-$<=W)continue;let E=H[A],C=F[A],S=Y*16+y-$;S+=O7J(E,at0[0],!0);for(let k=1;k<Y;k++)S+=O7J(E,at0[k],!1);if(S+=Math.max(0,32-(C>>2)),z.length<Q){if(z.push({path:E,fuzzScore:S}),z.length===Q)z.sort((k,h)=>k.fuzzScore-h.fuzzScore),W=z[0].fuzzScore}else if(S>W){let k=0,h=z.length;while(k<h){let u=k+h>>1;if(z[u].fuzzScore<S)k=u+1;else h=u}z.splice(k,0,{path:E,fuzzScore:S}),z.shift(),W=z[0].fuzzScore}}z.sort((A,R)=>R.fuzzScore-A.fuzzScore);let O=z.length,L=Math.max(O,1),N=Array(O);for(let A=0;A<O;A++){let R=z[A].path,D=A/L,$=R.includes("test")?Math.min(D*1.05,1):D;N[A]={path:R,score:$}}return N}}function O7J(J,Q,X){if(Q===0)return X?8:0;let Z=J.charCodeAt(Q-1);if(M7Q(Z))return 8;if(D7Q(Z)&&$7Q(J.charCodeAt(Q)))return 6;return 0}function M7Q(J){return J===47||J===92||J===45||J===95||J===46||J===32}function D7Q(J){return J>=97&&J<=122}function $7Q(J){return J>=65&&J<=90}function ot0(){return new Promise((J)=>setImmediate(J))}function j7Q(J,Q){let X=new Set;for(let Y of J){let q=Y.length;for(let G=0;G<Y.length;G++){let z=Y.charCodeAt(G);if(z===47||z===92){q=G;break}}let K=Y.slice(0,q);if(K.length>0){if(X.add(K),X.size>=Q)break}}let Z=Array.from(X);return Z.sort((Y,q)=>{let K=Y.length-q.length;if(K!==0)return K;return Y<q?-1:Y>q?1:0}),Z.slice(0,Q).map((Y)=>({path:Y,score:0}))}var L7J=4,at0;var V7J=I(()=>{at0=new Int32Array(64)});import{statSync as I7Q}from"fs";import*as HU from"path";function Fi1(){if(!BC)BC=new Ui1;return BC}function M7J(){BC=null,iX0=null,nX0++,st0=null,pV0=[],Mi1=[],Di1=[],Ri1.clear(),_i1=null,Oi1=null,Li1=0,Vi1=null,Ni1=null,tt0=null}function D7J(J){let Q=J.length,X=Math.max(1,Math.floor(Q/500)),Z=-2128831035;for(let Y=0;Y<Q;Y+=X){let q=J[Y];for(let K=0;K<q.length;K++)Z=(Z^q.charCodeAt(K))*16777619|0;Z=Z*16777619|0}if(Q>0){let Y=J[Q-1];for(let q=0;q<Y.length;q++)Z=(Z^Y.charCodeAt(q))*16777619|0}return`${Q}:${(Z>>>0).toString(16)}`}function y7Q(){let J=IZ(B1());if(!J)return null;try{return I7Q(HU.join(J,".git","index")).mtimeMs}catch{return null}}function N7J(J,Q,X){if(X===Q)return J;return J.map((Z)=>{let Y=HU.join(Q,Z);return HU.relative(X,Y)})}async function b7Q(J){if(J.length===0)return;if(!BC||pV0.length===0)return;let Q=await $7J(J),X=[...pV0,...Mi1,...Di1,...J,...Q],Z=D7J(X);if(Z===tt0){b("[FileIndex] skipped index rebuild \u2014 merged paths unchanged");return}await BC.loadFromFileListAsync(X).done,tt0=Z,b(`[FileIndex] rebuilt index with ${pV0.length} tracked + ${J.length} untracked files`)}async function w7J(J,Q){let X=`${J}:${Q}`;if(Oi1===X)return _i1;let Z=Y1(),Y=[".ignore",".rgignore"],q=[...new Set([J,Q])],K=A7J.default(),G=!1,z=q.flatMap((B)=>Y.map((U)=>HU.join(B,U))),W=await Promise.all(z.map((B)=>Z.readFile(B,{encoding:"utf8"}).catch(()=>null)));for(let[B,U]of W.entries()){if(U===null)continue;K.add(U),G=!0,b(`[FileIndex] loaded ignore patterns from ${z[B]}`)}let H=G?K:null;return _i1=H,Oi1=X,H}async function P7Q(J,Q){let X=Date.now();b("[FileIndex] getFilesUsingGit called");let Z=IZ(B1());if(!Z)return b("[FileIndex] not a git repo, returning null"),null;try{let Y=B1(),q=Date.now(),K=await r8(F6(),["-c","core.quotepath=false","ls-files","--recurse-submodules"],{timeout:5000,abortSignal:J,cwd:Z});if(b(`[FileIndex] git ls-files (tracked) took ${Date.now()-q}ms`),K.code!==0)return b(`[FileIndex] git ls-files failed (code=${K.code}, stderr=${K.stderr}), falling back to ripgrep`),null;let G=K.stdout.trim().split(`
|
|
5000
|
+
ONLY return the prefix. Do not return any other text, markdown markers, or other content or formatting.`,f9J,BO0,x9J,I9Q;var JU=I(()=>{T9J();wh1();iG();pX0=new Set(["0","1","2"]);f9J=P9J({toolName:"Bash",policySpec:j9Q,eventName:"jarvis_api_error",querySource:"bash_extract_prefix",preCheck:(J)=>$9Q(J)?{commandPrefix:J}:null}),BO0=E9J(f9J,HY);x9J=new Set(["&&","||",";",";;","|"]),I9Q=new Set([...x9J,">&",">",">>"])});function T9Q(J){if(process.env.USER_TYPE==="ant"){let Y=Y8("jarvis_api_error",{commands:[],substrings:[]});for(let q of Y.substrings)if(J.includes(q))return!0;try{let q=HY(J);for(let K of q){let G=K.trim().split(" ")[0];if(G&&Y.commands.includes(G))return!0}}catch{}}let X=q6().sandbox?.excludedCommands??[];if(X.length===0)return!1;let Z;try{Z=HY(J)}catch{Z=[J]}for(let Y of Z){let K=[Y.trim()],G=new Set(K),z=0;while(z<K.length){let W=K.length;for(let H=z;H<W;H++){let B=K[H],U=yh1(B,xg6);if(!G.has(U))K.push(U),G.add(U);let F=ST(B);if(!G.has(F))K.push(F),G.add(F)}z=W}for(let W of X){let H=Ih1(W);for(let B of K)switch(H.type){case"prefix":if(B===H.prefix||B.startsWith(H.prefix+" "))return!0;break;case"exact":if(B===H.command)return!0;break;case"wildcard":if(FO0(H.pattern,B))return!0;break}}}return!1}function Pw(J){if(!p8.isSandboxingEnabled())return!1;if(J.dangerouslyDisableSandbox&&p8.areUnsandboxedCommandsAllowed())return!1;if(!J.command)return!1;if(T9Q(J.command))return!1;return!0}var m70=I(()=>{JU();V4();g8();z_()});class Qi1{config;constructor(J){this.config={...h9Q,...J}}assessPrompt(J){let Q=[];if(this.config.checkPromptInjection){for(let X of C9Q)if(X.test(J))Q.push({category:"prompt_injection",risk:"high",message:"Potential prompt injection detected",pattern:X.source})}return this.buildAssessment(Q)}assessToolRequest(J,Q){let X=[];if(J==="Bash"||J==="bash"){let q=String(Q.command??"");this.checkCommand(q,X)}let Z=String(Q.file_path??Q.filePath??Q.path??"");if(Z)this.checkFilePath(Z,X);let Y=String(Q.pattern??Q.query??"");if(Y)this.checkSearchPattern(Y,X);return this.buildAssessment(X)}assessCodeChange(J,Q){let X=[];if(this.config.checkCredentials){for(let Z of S9Q)if(Z.test(J))X.push({category:"credential_exposure",risk:"critical",message:"Potential credential or secret detected in code",pattern:Z.source,location:Q})}if(this.config.checkSqlInjection){if(/(?:SELECT|INSERT|UPDATE|DELETE).*\+\s*(?:req\.|params\.|query\.|body\.)/i.test(J))X.push({category:"code_vulnerability",risk:"high",message:"Potential SQL injection: string concatenation in SQL query",location:Q})}if(this.config.checkXss){if(/innerHTML\s*=\s*(?!['"]<)/.test(J)||/dangerouslySetInnerHTML/.test(J))X.push({category:"code_vulnerability",risk:"medium",message:"Potential XSS: direct HTML injection",location:Q})}if(/\beval\s*\(/.test(J)||/new\s+Function\s*\(/.test(J))X.push({category:"code_vulnerability",risk:"high",message:"Dynamic code execution detected (eval/new Function)",location:Q});return this.buildAssessment(X)}checkCommand(J,Q){if(this.config.checkDangerousCommands){for(let X of x9Q)if(X.test(J)){if(!this.config.allowedDangerousCommands.some((Y)=>J.includes(Y)))Q.push({category:"dangerous_operation",risk:"critical",message:"Dangerous command detected",pattern:X.source,location:J})}}if(/[;&|`$]/.test(J)&&/\$\(.*\)/.test(J))Q.push({category:"command_injection",risk:"medium",message:"Command substitution detected \u2014 verify intent",location:J})}checkFilePath(J,Q){if(this.config.checkPathTraversal){for(let X of v9Q)if(X.test(J))Q.push({category:"path_traversal",risk:"high",message:"Path traversal pattern detected",pattern:X.source,location:J})}for(let X of f9Q)if(X.test(J))Q.push({category:"sensitive_file_access",risk:"high",message:"Access to sensitive file detected",pattern:X.source,location:J})}checkSearchPattern(J,Q){if(this.config.checkSqlInjection){for(let X of k9Q)if(X.test(J))Q.push({category:"code_vulnerability",risk:"medium",message:"SQL injection pattern in search query",pattern:X.source})}}buildAssessment(J){if(J.length===0)return{allowed:!0,riskLevel:"low",findings:J,requiresApproval:!1};let Q=this.getMaxRisk(J),X=Q==="critical"&&this.config.blockOnCritical||Q==="high"&&this.config.blockOnHigh,Z=!X&&Q==="high"&&this.config.requireApprovalOnHigh;return{allowed:!X,riskLevel:Q,findings:J,requiresApproval:Z,blockedReason:X?`Blocked: ${J.filter((Y)=>Y.risk===Q).map((Y)=>Y.message).join("; ")}`:void 0}}getMaxRisk(J){let Q=["low","medium","high","critical"],X=0;for(let Z of J){let Y=Q.indexOf(Z.risk);if(Y>X)X=Y}return Q[X]}}var C9Q,v9Q,f9Q,S9Q,x9Q,k9Q,h9Q;var k9J=I(()=>{C9Q=[/ignore\s+(all\s+)?(previous|prior|above)\s+(instructions|rules|constraints)/i,/disregard\s+(all\s+)?(previous|prior|above)/i,/pretend\s+(you\s+are|to\s+be|you're)/i,/you\s+are\s+now\s+a/i,/new\s+instructions?\s*:/i,/system\s*:\s*you\s+are/i,/\bact\s+as\s+if\b/i,/forget\s+(everything|all)\s+(you|about)/i,/override\s+(your|all|safety)\s+(instructions|rules|guidelines)/i,/jailbreak/i,/\bDAN\b.*\bmode\b/i,/do\s+anything\s+now/i,/bypass\s+(safety|security|filter|content)/i,/reveal\s+(your|the)\s+(system|initial)\s+prompt/i,/what\s+(is|are)\s+your\s+(system|initial)\s+(prompt|instructions)/i,/print\s+(your|the)\s+(system|initial)\s+prompt/i,/output\s+(your|the)\s+instructions/i,/repeat\s+(the|your)\s+(system|above)\s+(prompt|message|text)/i],v9Q=[/\.\.\//,/\.\.\\/,/%2e%2e%2f/i,/%2e%2e\//i,/\.\.%2f/i,/%2e%2e%5c/i],f9Q=[/\.env(\.\w+)?$/,/\.ssh\//,/id_rsa/,/id_ed25519/,/\.pem$/,/\.key$/,/\.p12$/,/\.pfx$/,/\.kube\/config/,/credentials\.json$/,/service.account\.json$/,/\.aws\/credentials/,/\.netrc$/,/\.npmrc$/,/\.pypirc$/,/shadow$/,/passwd$/,/\.htpasswd$/],S9Q=[/(?:api[_-]?key|apikey)\s*[=:]\s*['"][a-zA-Z0-9_\-]{20,}/i,/AKIA[0-9A-Z]{16}/,/(?:sk-|sk-proj-)[a-zA-Z0-9]{20,}/,/(?:sk-ant-)[a-zA-Z0-9_\-]{20,}/,/xox[bpsar]-[a-zA-Z0-9\-]{20,}/,/ghp_[a-zA-Z0-9]{36}/,/gho_[a-zA-Z0-9]{36}/,/glpat-[a-zA-Z0-9\-_]{20,}/,/(?:password|passwd|pwd)\s*[=:]\s*['"][^'"]{8,}/i,/(?:secret|token)\s*[=:]\s*['"][a-zA-Z0-9_\-]{16,}/i],x9Q=[/\brm\s+(-\w*r\w*f|\w*f\w*r)\s+\//,/\bchmod\s+777\b/,/:\(\)\s*\{\s*:\|:\s*&\s*\}\s*;?\s*:/,/\bdd\s+if=\/dev\/(zero|random|urandom)/,/\b(shutdown|reboot|halt|poweroff)\b/,/\biptables\s+-F\b/,/\bmkfs\b/,/\bsudo\s+rm\b/,/>\s*\/dev\/sd[a-z]/,/\bcurl\b.*\|\s*(bash|sh|zsh)\b/,/\bwget\b.*\|\s*(bash|sh|zsh)\b/],k9Q=[/\b(DROP|DELETE|TRUNCATE)\s+(TABLE|DATABASE|SCHEMA)\b/i,/\bUNION\s+(ALL\s+)?SELECT\b/i,/\bOR\s+['"]?1['"]?\s*=\s*['"]?1['"]?/i,/;\s*(DROP|DELETE|INSERT|UPDATE|ALTER)\b/i,/--\s*$/,/\/\*.*\*\/.*\b(SELECT|DROP|DELETE)\b/i],h9Q={blockOnCritical:!0,blockOnHigh:!1,requireApprovalOnHigh:!0,checkPromptInjection:!0,checkPathTraversal:!0,checkCredentials:!0,checkDangerousCommands:!0,checkSqlInjection:!0,checkXss:!0,additionalSensitivePatterns:[],allowedDangerousCommands:[]}});function kV0(J){return Ry0(J)}function cX0(J){return Zi1.flatMap((Q)=>(J.alwaysAllowRules[Q]||[]).map((X)=>({source:Q,ruleBehavior:"allow",ruleValue:A5(X)})))}function wQ(J,Q){if(Q)switch(Q.type){case"hook":return Q.reason?`Hook '${Q.hookName}' blocked this action: ${Q.reason}`:`Hook '${Q.hookName}' requires approval for this ${J} command`;case"rule":{let Z=T7(Q.rule.ruleValue),Y=kV0(Q.rule.source);return`Permission rule '${Z}' from ${Y} requires approval for this ${J} command`}case"subcommandResults":{let Z=[];for(let[Y,q]of Q.reasons)if(q.behavior==="ask"||q.behavior==="passthrough")if(J==="Bash"){let{commandWithoutRedirections:K,redirections:G}=IL(Y),z=G.length>0?K:Y;Z.push(z)}else Z.push(Y);if(Z.length>0){let Y=Z.length;return`This ${J} command contains multiple operations. The following ${J6(Y,"part")} ${J6(Y,"requires","require")} approval: ${Z.join(", ")}`}return`This ${J} command contains multiple operations that require approval`}case"permissionPromptTool":return`Tool '${Q.permissionPromptToolName}' requires approval for this ${J} command`;case"sandboxOverride":return"Run outside of the sandbox";case"workingDir":return Q.reason;case"safetyCheck":case"other":return Q.reason;case"mode":return`Current permission mode (${kb(Q.mode)}) requires approval for this ${J} command`;case"asyncAgent":return Q.reason}return`Glock requested permissions to use ${J}, but you haven't granted it yet.`}function Du(J){return Zi1.flatMap((Q)=>(J.alwaysDenyRules[Q]||[]).map((X)=>({source:Q,ruleBehavior:"deny",ruleValue:A5(X)})))}function dX0(J){return Zi1.flatMap((Q)=>(J.alwaysAskRules[Q]||[]).map((X)=>({source:Q,ruleBehavior:"ask",ruleValue:A5(X)})))}function Yi1(J,Q){if(Q.ruleValue.ruleContent!==void 0)return!1;let X=eW1(J);if(Q.ruleValue.toolName===X)return!0;let Z=AO(Q.ruleValue.toolName),Y=AO(X);return Z!==null&&Y!==null&&(Z.toolName===void 0||Z.toolName==="*")&&Z.serverName===Y.serverName}function u9Q(J,Q){return cX0(J).find((X)=>Yi1(Q,X))||null}function At0(J,Q){return Du(J).find((X)=>Yi1(Q,X))||null}function u9J(J,Q){return dX0(J).find((X)=>Yi1(Q,X))||null}function Qs6(J,Q,X){return Du(J).find((Z)=>Z.ruleValue.toolName===Q&&Z.ruleValue.ruleContent===X)||null}function jO0(J,Q,X){let Z=new Set;for(let Y of Du(Q))if(Y.ruleValue.toolName===X&&Y.ruleValue.ruleContent!==void 0)Z.add(Y.ruleValue.ruleContent);return J.filter((Y)=>!Z.has(Y.agentType))}function lM(J,Q,X){return Dn(J,eW1(Q),X)}function Dn(J,Q,X){let Z=new Map,Y=[];switch(X){case"allow":Y=cX0(J);break;case"deny":Y=Du(J);break;case"ask":Y=dX0(J);break}for(let q of Y)if(q.ruleValue.toolName===Q&&q.ruleValue.ruleContent!==void 0&&q.ruleBehavior===X)Z.set(q.ruleValue.ruleContent,q);return Z}async function g9Q(J,Q,X,Z,Y,q){try{for await(let K of Yr(J.name,X,Q,Z,Y,q,Z.abortController.signal)){if(!K.permissionRequestResult)continue;let G=K.permissionRequestResult;if(G.behavior==="allow"){let z=G.updatedInput??Q;if(G.updatedPermissions?.length)mR(G.updatedPermissions),Z.setAppState((W)=>({...W,toolPermissionContext:bF(W.toolPermissionContext,G.updatedPermissions)}));return{behavior:"allow",updatedInput:z,decisionReason:{type:"hook",hookName:"PermissionRequest"}}}if(G.behavior==="deny"){if(G.interrupt)b(`Hook interrupt: tool=${J.name} hookMessage=${G.message}`),Z.abortController.abort();return{behavior:"deny",message:G.message||"Permission denied by hook",decisionReason:{type:"hook",hookName:"PermissionRequest",reason:G.message}}}}}catch(K){H0(Error("PermissionRequest hook failed for headless agent",{cause:R8(K)}))}return null}async function al6(J,Q,X){let Z=X.getAppState(),Y=At0(Z.toolPermissionContext,J);if(Y)return{behavior:"deny",decisionReason:{type:"rule",rule:Y},message:`Permission to use ${J.name} has been denied.`};let q=u9J(Z.toolPermissionContext,J);if(q){if(!(J.name===O6&&p8.isSandboxingEnabled()&&p8.isAutoAllowBashIfSandboxedEnabled()&&Pw(Q)))return{behavior:"ask",decisionReason:{type:"rule",rule:q},message:wQ(J.name)}}let K={behavior:"passthrough",message:wQ(J.name)};try{let G=J.inputSchema.parse(Q);K=await J.checkPermissions(G,X)}catch(G){if(G instanceof qZ||G instanceof eQ)throw G;H0(G)}if(K?.behavior==="deny")return K;if(K?.behavior==="ask"&&K.decisionReason?.type==="rule"&&K.decisionReason.rule.ruleBehavior==="ask")return K;if(K?.behavior==="ask"&&K.decisionReason?.type==="safetyCheck")return K;return null}async function m9Q(J,Q,X){if(X.abortController.signal.aborted)throw new qZ;let Z=X.getAppState(),Y=At0(Z.toolPermissionContext,J);if(Y)return{behavior:"deny",decisionReason:{type:"rule",rule:Y},message:`Permission to use ${J.name} has been denied.`};let q=u9J(Z.toolPermissionContext,J);if(q){if(!(J.name===O6&&p8.isSandboxingEnabled()&&p8.isAutoAllowBashIfSandboxedEnabled()&&Pw(Q)))return{behavior:"ask",decisionReason:{type:"rule",rule:q},message:wQ(J.name)}}let K={behavior:"passthrough",message:wQ(J.name)};try{let H=J.inputSchema.parse(Q);K=await J.checkPermissions(H,X)}catch(H){if(H instanceof qZ||H instanceof eQ)throw H;H0(H)}if(K?.behavior==="deny")return K;if(J.requiresUserInteraction?.()&&K?.behavior==="ask")return K;if(K?.behavior==="ask"&&K.decisionReason?.type==="rule"&&K.decisionReason.rule.ruleBehavior==="ask")return K;if(K?.behavior==="ask"&&K.decisionReason?.type==="safetyCheck")return K;if(Z=X.getAppState(),Z.toolPermissionContext.mode==="bypassPermissions"||Z.toolPermissionContext.mode==="plan"&&Z.toolPermissionContext.isBypassPermissionsModeAvailable)return{behavior:"allow",updatedInput:h9J(K,Q),decisionReason:{type:"mode",mode:Z.toolPermissionContext.mode}};let z=u9Q(Z.toolPermissionContext,J);if(z)return{behavior:"allow",updatedInput:h9J(K,Q),decisionReason:{type:"rule",rule:z}};let W=K.behavior==="passthrough"?{...K,behavior:"ask",message:wQ(J.name,K.decisionReason)}:K;if(W.behavior==="ask"&&W.suggestions)b(`Permission suggestions for ${J.name}: ${l0(W.suggestions,null,2)}`);return W}async function g9J({rule:J,initialContext:Q,setToolPermissionContext:X}){if(J.source==="policySettings"||J.source==="flagSettings"||J.source==="command")throw Error("Cannot delete permission rules from read-only settings");let Z=iZ(Q,{type:"removeRules",rules:[J.ruleValue],behavior:J.ruleBehavior,destination:J.source});switch(J.source){case"localSettings":case"userSettings":case"projectSettings":{XY6(J);break}case"cliArg":case"session":break}X(Z)}function m9J(J,Q){let X=new Map;for(let Y of J){let q=`${Y.source}:${Y.ruleBehavior}`;if(!X.has(q))X.set(q,[]);X.get(q).push(Y.ruleValue)}let Z=[];for(let[Y,q]of X){let[K,G]=Y.split(":");Z.push({type:Q,rules:q,behavior:G,destination:K})}return Z}function g6J(J,Q){let X=m9J(Q,"addRules");return bF(J,X)}function H$6(J,Q){let X=J;if(cH0()){let q=["userSettings","projectSettings","localSettings","cliArg","session"],K=["allow","deny","ask"];for(let G of q)for(let z of K)X=iZ(X,{type:"replaceRules",rules:[],behavior:z,destination:G})}let Z=["userSettings","projectSettings","localSettings"];for(let q of Z)for(let K of["allow","deny","ask"])X=iZ(X,{type:"replaceRules",rules:[],behavior:K,destination:q});let Y=m9J(Q,"replaceRules");return bF(X,Y)}function h9J(J,Q){return("updatedInput"in J?J.updatedInput:void 0)??Q}var Zi1,qW=async(J,Q,X,Z,Y)=>{if(J.name===O6&&typeof Q.command==="string"){let z=Q.command,W=/\bgit\s+rm\s+(-\w*r\w*f|\w*f\w*r)\b/.test(z),H=/\brm\s+(-\w*r\w*f|\w*f\w*r)\b/.test(z);if(W)return{behavior:"ask",message:"git rm -rf detected \u2014 requires your approval before executing."};if(H)return{behavior:"deny",message:"rm -rf is blocked. This command is never allowed."}}let K=new Qi1({blockOnCritical:!0,blockOnHigh:!1}).assessToolRequest(J.name,Q??{});if(!K.allowed)return{behavior:"deny",message:K.blockedReason??"Blocked by security gate."};return{behavior:"allow"}};var XK=I(()=>{xV();MO();PZ();m70();k9J();rS();JU();Z1();T1();M1();V4();eY();vW();lq();FB();gR();N1();D1();BG();Vh();t1();N4();M8();dS();i1();Cm1();DS1();Zi1=[...iV,"cliArg","command","session"]});import{randomBytes as p9Q}from"crypto";import{homedir as c9J,tmpdir as c9Q}from"os";import{join as h2,normalize as lX0,posix as $u,sep as hH}from"path";function OW(J){return J.toLowerCase()}function i9Q(J){let Q=e6(J),X=OW(Q),Z=[{dir:e6(h2(j8(),".glock","skills")),prefix:"/.glock/skills/"},{dir:e6(h2(c9J(),".glock","skills")),prefix:"~/.glock/skills/"}];for(let{dir:Y,prefix:q}of Z){let K=OW(Y);for(let G of[hH,"/"])if(X.startsWith(K+G.toLowerCase())){let z=Q.slice(Y.length+G.length),W=z.indexOf("/"),H=hH==="\\"?z.indexOf("\\"):-1,B=W===-1?H:H===-1?W:Math.min(W,H);if(B<=0)return null;let U=z.slice(0,B);if(!U||U==="."||U.includes(".."))return null;if(/[*?[\]]/.test(U))return null;return{skillName:U,pattern:q+U+"/**"}}}return null}function Ki1(J,Q){if(N8()==="windows"){let X=CW(J),Z=CW(Q);return $u.relative(X,Z)}return $u.relative(J,Q)}function qY6(J){if(N8()==="windows")return CW(J);return J}function n9Q(){return iV.map((J)=>wK(J)).filter((J)=>J!==void 0)}function ex1(J){let Q=e6(J),X=OW(Q);if(X.endsWith(`${hH}.claude${hH}settings.json`)||X.endsWith(`${hH}.claude${hH}settings.local.json`))return!0;return n9Q().some((Z)=>OW(Z)===X)}function r9Q(J){if(ex1(J))return!0;let Q=h2(j8(),".glock","commands"),X=h2(j8(),".glock","agents"),Z=h2(j8(),".glock","skills");return EF(J,Q)||EF(J,X)||EF(J,Z)}function d9J(J){let Q=h2(L4(),Zj()),X=lX0(J);return X.startsWith(Q)&&X.endsWith(".md")}function lt0(){return h2(Z5(B1()),A1(),"session-memory")+hH}function C60(){return h2(lt0(),"summary.md")}function a9Q(J){return lX0(J).startsWith(lt0())}function o9Q(J){let Q=Z5(B1()),X=lX0(J);return X===Q||X.startsWith(Q+hH)}function pI(){return GZ("jarvis_api_error")}function uk1(){if(N8()==="windows")return"glock";return`glock-${process.getuid?.()??0}`}function fk0(){return h2(qk(),dU(j8()))+hH}function Ru(){return h2(fk0(),A1(),"scratchpad")}async function l9J(){if(!pI())throw Error("Scratchpad directory feature is not enabled");let J=Y1(),Q=Ru();return await J.mkdir(Q,{mode:448}),Q}function i9J(J){if(!pI())return!1;let Q=Ru(),X=lX0(J);return X===Q||X.startsWith(Q+hH)}function s9Q(J){let X=e6(J).split(hH),Z=X.at(-1);if(J.startsWith("\\\\")||J.startsWith("//"))return!0;for(let Y=0;Y<X.length;Y++){let q=X[Y],K=OW(q);for(let G of l9Q){if(K!==OW(G))continue;if(G===".glock"){let z=X[Y+1];if(z&&OW(z)==="worktrees")break}return!0}}if(Z){let Y=OW(Z);if(d9Q.some((q)=>OW(q)===Y))return!0}return!1}function n9J(J){if(N8()==="windows"||N8()==="wsl"){if(J.indexOf(":",2)!==-1)return!0}if(/~\d/.test(J))return!0;if(J.startsWith("\\\\?\\")||J.startsWith("\\\\.\\")||J.startsWith("//?/")||J.startsWith("//./"))return!0;if(/[.\s]+$/.test(J))return!0;if(/\.(CON|PRN|AUX|NUL|COM[1-9]|LPT[1-9])$/i.test(J))return!0;if(/(^|\/|\\)\.{3,}(\/|\\|$)/.test(J))return!0;if(Yj(J))return!0;return!1}function qB0(J,Q){let X=Q??fA(J);for(let Z of X)if(n9J(Z))return{safe:!1,message:`Glock requested permissions to write to ${J}, which contains a suspicious Windows path pattern that requires manual approval.`,classifierApprovable:!1};for(let Z of X)if(r9Q(Z))return{safe:!1,message:`Glock requested permissions to write to ${J}, but you haven't granted it yet.`,classifierApprovable:!0};for(let Z of X)if(s9Q(Z))return{safe:!1,message:`Glock requested permissions to edit ${J} which is a sensitive file.`,classifierApprovable:!0};return{safe:!0}}function dM(J){return new Set([j8(),...J.additionalWorkingDirectories.keys()])}function oO(J,Q,X){let Z=X??fA(J),Y=Array.from(dM(Q)).flatMap((q)=>t9Q(q));return Z.every((q)=>Y.some((K)=>EF(q,K)))}function EF(J,Q){let X=e6(J),Z=e6(Q),Y=X.replace(/^\/private\/var\//,"/var/").replace(/^\/private\/tmp(\/|$)/,"/tmp$1"),q=Z.replace(/^\/private\/var\//,"/var/").replace(/^\/private\/tmp(\/|$)/,"/tmp$1"),K=OW(Y),G=OW(q),z=Ki1(G,K);if(z==="")return!0;if(V$(z))return!1;return!$u.isAbsolute(z)}function e9Q(J){switch(J){case"cliArg":case"command":case"session":return e6(j8());case"userSettings":case"policySettings":case"projectSettings":case"localSettings":case"flagSettings":return rp(J)}}function qi1(J){return $u.join(cI,J)}function J7Q({patternRoot:J,pattern:Q,rootPath:X}){let Z=$u.join(J,Q);if(J===X)return qi1(Q);else if(Z.startsWith(`${X}${cI}`)){let Y=Z.slice(X.length);return qi1(Y)}else{let Y=$u.relative(X,J);if(!Y||Y.startsWith(`..${cI}`)||Y==="..")return null;else{let q=$u.join(Y,Q);return qi1(q)}}}function O70(J,Q){let X=new Set(J.get(null)??[]);for(let[Z,Y]of J.entries()){if(Z===null)continue;for(let q of Y){let K=J7Q({patternRoot:Z,pattern:q,rootPath:Q});if(K)X.add(K)}}return Array.from(X)}function L70(J){let Q=r9J(J,"read","deny"),X=new Map;for(let[Z,Y]of Q.entries())X.set(Z,Array.from(Y.keys()));return X}function Q7Q(J,Q){if(J.startsWith(`${cI}${cI}`)){let Z=J.slice(1);if(N8()==="windows"&&Z.match(/^\/[a-z]\//i)){let Y=Z[1]?.toUpperCase()??"C",q=Z.slice(2),K=`${Y}:\\`;return{relativePattern:q.startsWith("/")?q.slice(1):q,root:K}}return{relativePattern:Z,root:cI}}else if(J.startsWith(`~${cI}`))return{relativePattern:J.slice(1),root:c9J().normalize("NFC")};else if(J.startsWith(cI))return{relativePattern:J,root:e9Q(Q)};let X=J;if(J.startsWith(`.${cI}`))X=J.slice(2);return{relativePattern:X,root:null}}function r9J(J,Q,X){let Z=(()=>{switch(Q){case"edit":return fJ;case"read":return o6}})(),Y=Dn(J,Z,X),q=new Map;for(let[K,G]of Y.entries()){let{relativePattern:z,root:W}=Q7Q(K,G.source),H=q.get(W);if(H===void 0)H=new Map,q.set(W,H);H.set(z,G)}return q}function iq(J,Q,X,Z){let Y=e6(J);if(N8()==="windows"&&Y.includes("\\"))Y=CW(Y);let q=r9J(Q,X,Z);for(let[K,G]of q.entries()){let z=Array.from(G.keys()).map((U)=>{let F=U;if(F.endsWith("/**"))F=F.slice(0,-3);return F}),W=p9J.default().add(z),H=Ki1(K??B1(),Y??B1());if(H.startsWith(`..${cI}`))continue;if(!H)continue;let B=W.test(H);if(B.ignored&&B.rule){let U=B.rule.pattern,F=U+"/**";if(G.has(F))return G.get(F)??null;return G.get(U)??null}}return null}function V70(J,Q,X){if(typeof J.getPath!=="function")return{behavior:"ask",message:`Glock requested permissions to use ${J.name}, but you haven't granted it yet.`};let Z=J.getPath(Q),Y=fA(Z);for(let H of Y)if(H.startsWith("\\\\")||H.startsWith("//"))return{behavior:"ask",message:`Glock requested permissions to read from ${Z}, which appears to be a UNC path that could access network resources.`,decisionReason:{type:"other",reason:"UNC path detected (defense-in-depth check)"}};for(let H of Y)if(n9J(H))return{behavior:"ask",message:`Glock requested permissions to read from ${Z}, which contains a suspicious Windows path pattern that requires manual approval.`,decisionReason:{type:"other",reason:"Path contains suspicious Windows-specific patterns (alternate data streams, short names, long path prefixes, or three or more consecutive dots) that require manual verification"}};for(let H of Y){let B=iq(H,X,"read","deny");if(B)return{behavior:"deny",message:`Permission to read ${Z} has been denied.`,decisionReason:{type:"rule",rule:B}}}for(let H of Y){let B=iq(H,X,"read","ask");if(B)return{behavior:"ask",message:`Glock requested permissions to read from ${Z}, but you haven't granted it yet.`,decisionReason:{type:"rule",rule:B}}}let q=ai(J,Q,X,Y);if(q.behavior==="allow")return q;if(oO(Z,X,Y))return{behavior:"allow",updatedInput:Q,decisionReason:{type:"mode",mode:"default"}};let G=e6(Z),z=GB0(G,Q);if(z.behavior!=="passthrough")return z;let W=iq(Z,X,"read","allow");if(W)return{behavior:"allow",updatedInput:Q,decisionReason:{type:"rule",rule:W}};return{behavior:"ask",message:`Glock requested permissions to read from ${Z}, but you haven't granted it yet.`,suggestions:hV0(Z,"read",X,Y),decisionReason:{type:"workingDir",reason:"Path is outside allowed working directories"}}}function ai(J,Q,X,Z){if(typeof J.getPath!=="function")return{behavior:"ask",message:`Glock requested permissions to use ${J.name}, but you haven't granted it yet.`};let Y=J.getPath(Q),q=Z??fA(Y);for(let U of q){let F=iq(U,X,"edit","deny");if(F)return{behavior:"deny",message:`Permission to edit ${Y} has been denied.`,decisionReason:{type:"rule",rule:F}}}let K=e6(Y),G=KB0(K,Q);if(G.behavior!=="passthrough")return G;let z=iq(Y,{...X,alwaysAllowRules:{session:X.alwaysAllowRules.session??[]}},"edit","allow");if(z){let U=z.ruleValue.ruleContent;if(U&&(U.startsWith(yb0.slice(0,-2))||U.startsWith(bb0.slice(0,-2)))&&!U.includes("..")&&U.endsWith("/**"))return{behavior:"allow",updatedInput:Q,decisionReason:{type:"rule",rule:z}}}let W=qB0(Y,q);if(!W.safe){let U=i9Q(Y),F=U?[{type:"addRules",rules:[{toolName:fJ,ruleContent:U.pattern}],behavior:"allow",destination:"session"}]:hV0(Y,"write",X,q);return{behavior:"ask",message:W.message,suggestions:F,decisionReason:{type:"safetyCheck",reason:W.message,classifierApprovable:W.classifierApprovable}}}for(let U of q){let F=iq(U,X,"edit","ask");if(F)return{behavior:"ask",message:`Glock requested permissions to write to ${Y}, but you haven't granted it yet.`,decisionReason:{type:"rule",rule:F}}}let H=oO(Y,X,q);if(X.mode==="acceptEdits"&&H)return{behavior:"allow",updatedInput:Q,decisionReason:{type:"mode",mode:X.mode}};let B=iq(Y,X,"edit","allow");if(B)return{behavior:"allow",updatedInput:Q,decisionReason:{type:"rule",rule:B}};return{behavior:"ask",message:`Glock requested permissions to write to ${Y}, but you haven't granted it yet.`,suggestions:hV0(Y,"write",X,q),decisionReason:!H?{type:"workingDir",reason:"Path is outside allowed working directories"}:void 0}}function hV0(J,Q,X,Z){let Y=!oO(J,X,Z);if(Q==="read"&&Y){let K=WB(J);return fA(K).map((W)=>xd(W,"session")).filter((W)=>W!==void 0)}let q=X.mode==="default"||X.mode==="plan";if(Q==="write"||Q==="create"){let K=q?[{type:"setMode",mode:"acceptEdits",destination:"session"}]:[];if(Y){let G=WB(J),z=fA(G);K.push({type:"addDirectories",directories:z,destination:"session"})}return K}return q?[{type:"setMode",mode:"acceptEdits",destination:"session"}]:[]}function KB0(J,Q){let X=lX0(J);if(d9J(X))return{behavior:"allow",updatedInput:Q,decisionReason:{type:"other",reason:"Plan files for current session are allowed for writing"}};if(i9J(X))return{behavior:"allow",updatedInput:Q,decisionReason:{type:"other",reason:"Scratchpad files for current session are allowed for writing"}};if(TH0(X))return{behavior:"allow",updatedInput:Q,decisionReason:{type:"other",reason:"Agent memory files are allowed for writing"}};if(!jb0()&&sp(X))return{behavior:"allow",updatedInput:Q,decisionReason:{type:"other",reason:"auto memory files are allowed for writing"}};if(OW(X)===OW(h2(j8(),".glock","launch.json")))return{behavior:"allow",updatedInput:Q,decisionReason:{type:"other",reason:"Preview launch config is allowed for writing"}};return{behavior:"passthrough",message:""}}function GB0(J,Q){let X=lX0(J);if(a9Q(X))return{behavior:"allow",updatedInput:Q,decisionReason:{type:"other",reason:"Session memory files are allowed for reading"}};if(o9Q(X))return{behavior:"allow",updatedInput:Q,decisionReason:{type:"other",reason:"Project directory files are allowed for reading"}};if(d9J(X))return{behavior:"allow",updatedInput:Q,decisionReason:{type:"other",reason:"Plan files for current session are allowed for reading"}};let Z=Rx(),Y=Z.endsWith(hH)?Z:Z+hH;if(X===Z||X.startsWith(Y))return{behavior:"allow",updatedInput:Q,decisionReason:{type:"other",reason:"Tool result files are allowed for reading"}};if(i9J(X))return{behavior:"allow",updatedInput:Q,decisionReason:{type:"other",reason:"Scratchpad files for current session are allowed for reading"}};let q=fk0();if(X.startsWith(q))return{behavior:"allow",updatedInput:Q,decisionReason:{type:"other",reason:"Project temp directory files are allowed for reading"}};if(TH0(X))return{behavior:"allow",updatedInput:Q,decisionReason:{type:"other",reason:"Agent memory files are allowed for reading"}};if(sp(X))return{behavior:"allow",updatedInput:Q,decisionReason:{type:"other",reason:"auto memory files are allowed for reading"}};let K=h2(L8(),"tasks")+hH;if(X===K.slice(0,-1)||X.startsWith(K))return{behavior:"allow",updatedInput:Q,decisionReason:{type:"other",reason:"Task files are allowed for reading"}};let G=h2(L8(),"teams")+hH;if(X===G.slice(0,-1)||X.startsWith(G))return{behavior:"allow",updatedInput:Q,decisionReason:{type:"other",reason:"Team files are allowed for reading"}};let z=Gi1()+hH;if(X.startsWith(z))return{behavior:"allow",updatedInput:Q,decisionReason:{type:"other",reason:"Bundled skill reference files are allowed for reading"}};return{behavior:"passthrough",message:""}}var p9J,d9Q,l9Q,cI,qk,Gi1,t9Q;var vX=I(()=>{IJ();t5();SR();N1();vZ();Z6();t1();H6();dX();$K();k9();gJ();eY();g8();s10();CB();L$();lq();XK();p9J=T(Is(),1),d9Q=[".gitconfig",".gitmodules",".bashrc",".bash_profile",".zshrc",".zprofile",".profile",".ripgreprc",".mcp.json",".glock.json"],l9Q=[".git",".vscode",".idea",".glock"];cI=$u.sep;qk=g1(function(){let Q=process.env.GLOCK_TMPDIR||(N8()==="windows"?c9Q():"/tmp"),X=Y1(),Z=Q;try{Z=X.realpathSync(Q)}catch{}return h2(Z,uk1())+hH}),Gi1=g1(function(){let Q=p9Q(16).toString("hex");return h2(qk(),"bundled-skills","0.1.17",Q)});t9Q=g1(fA)});import{stat as X7Q}from"fs/promises";import{dirname as Z7Q,resolve as Y7Q}from"path";async function vX0(J,Q){if(!J)return{resultType:"emptyPath"};let X=Y7Q(e6(J));try{if(!(await X7Q(X)).isDirectory())return{resultType:"notADirectory",directoryPath:J,absolutePath:X}}catch(Y){let q=c8(Y);if(q==="ENOENT"||q==="ENOTDIR"||q==="EACCES"||q==="EPERM")return{resultType:"pathNotFound",directoryPath:J,absolutePath:X};throw Y}let Z=dM(Q);for(let Y of Z)if(EF(X,Y))return{resultType:"alreadyInWorkingDirectory",directoryPath:J,workingDir:Y};return{resultType:"success",absolutePath:X}}function fX0(J){switch(J.resultType){case"emptyPath":return"Please provide a directory path.";case"pathNotFound":return`Path ${_1.bold(J.absolutePath)} was not found.`;case"notADirectory":{let Q=Z7Q(J.absolutePath);return`${_1.bold(J.directoryPath)} is not a directory. Did you mean to add the parent directory ${_1.bold(Q)}?`}case"alreadyInWorkingDirectory":return`${_1.bold(J.directoryPath)} is already accessible within the existing working directory ${_1.bold(J.workingDir)}.`;case"success":return`Added ${_1.bold(J.absolutePath)} as a working directory.`}}var Dt0=I(()=>{k7();T1();dX();vX()});import{basename as q7Q,dirname as K7Q,join as s9J,sep as it0}from"path";function J7J(J,Q){if(!J)return{directory:Q||B1(),prefix:""};let X=e6(J,Q);if(J.endsWith("/")||J.endsWith(it0))return{directory:X,prefix:""};let Z=K7Q(X),Y=q7Q(J);return{directory:Z,prefix:Y}}async function G7Q(J){let Q=a9J.get(J);if(Q)return Q;try{let Y=(await Y1().readdir(J)).filter((q)=>q.isDirectory()&&!q.name.startsWith(".")).map((q)=>({name:q.name,path:s9J(J,q.name),type:"directory"})).slice(0,100);return a9J.set(J,Y),Y}catch(X){return H0(X),[]}}async function nt0(J,Q={}){let{basePath:X=B1(),maxResults:Z=10}=Q,{directory:Y,prefix:q}=J7J(J,X),K=await G7Q(Y),G=q.toLowerCase();return K.filter((W)=>W.name.toLowerCase().startsWith(G)).slice(0,Z).map((W)=>({id:W.path,displayText:W.name+"/",description:"directory",metadata:{type:"directory"}}))}function Q7J(J){return J.startsWith("~/")||J.startsWith("/")||J.startsWith("./")||J.startsWith("../")||J==="~"||J==="."||J===".."}async function z7Q(J,Q=!1){let X=`${J}:${Q}`,Z=o9J.get(X);if(Z)return Z;try{let K=(await Y1().readdir(J)).filter((G)=>Q||!G.name.startsWith(".")).map((G)=>({name:G.name,path:s9J(J,G.name),type:G.isDirectory()?"directory":"file"})).sort((G,z)=>{if(G.type==="directory"&&z.type!=="directory")return-1;if(G.type!=="directory"&&z.type==="directory")return 1;return G.name.localeCompare(z.name)}).slice(0,100);return o9J.set(X,K),K}catch(Y){return H0(Y),[]}}async function X7J(J,Q={}){let{basePath:X=B1(),maxResults:Z=10,includeFiles:Y=!0,includeHidden:q=!1}=Q,{directory:K,prefix:G}=J7J(J,X),z=await z7Q(K,q),W=G.toLowerCase(),H=z.filter((F)=>{if(!Y&&F.type==="file")return!1;return F.name.toLowerCase().startsWith(W)}).slice(0,Z),B=J.includes("/")||J.includes(it0),U="";if(B){let F=J.lastIndexOf("/"),_=J.lastIndexOf(it0),O=Math.max(F,_);U=J.substring(0,O+1)}if(U.startsWith("./")||U.startsWith("."+it0))U=U.slice(2);return H.map((F)=>{let _=U+F.name;return{id:_,displayText:F.type==="directory"?_+"/":_,metadata:{type:F.type}}})}var t9J=500,e9J=300000,a9J,o9J;var zi1=I(()=>{Jt();Z6();H6();M1();dX();a9J=new cV({max:t9J,ttl:e9J}),o9J=new cV({max:t9J,ttl:e9J})});function H7Q(J){if(J.startsWith("file-"))return"+";if(J.startsWith("mcp-resource-"))return"\u25C7";if(J.startsWith("agent-"))return"*";return"+"}function B7Q(J){return J.startsWith("file-")||J.startsWith("mcp-resource-")||J.startsWith("agent-")}function uV0(J){let Q=Wi1.c(22),{suggestions:X,selectedSuggestion:Z,maxColumnWidth:Y,overlay:q}=J,{rows:K}=l8(),G=q?W7Q:Math.min(6,Math.max(1,K-3));if(X.length===0)return null;let z;if(Q[0]!==Y||Q[1]!==X)z=Y??Math.max(...X.map(F7Q))+5,Q[0]=Y,Q[1]=X,Q[2]=z;else z=Q[2];let W=z,H=Math.max(0,Math.min(Z-Math.floor(G/2),X.length-G)),B=Math.min(H+G,X.length),U,F,_,O;if(Q[3]!==B||Q[4]!==W||Q[5]!==q||Q[6]!==Z||Q[7]!==H||Q[8]!==X){let N=X.slice(H,B);U=f,F="column",_=q?void 0:"flex-end";let A;if(Q[13]!==W||Q[14]!==Z||Q[15]!==X)A=(R)=>ju.jsxDEV(U7Q,{item:R,maxColumnWidth:W,isSelected:R.id===X[Z]?.id},R.id,!1,void 0,this),Q[13]=W,Q[14]=Z,Q[15]=X,Q[16]=A;else A=Q[16];O=N.map(A),Q[3]=B,Q[4]=W,Q[5]=q,Q[6]=Z,Q[7]=H,Q[8]=X,Q[9]=U,Q[10]=F,Q[11]=_,Q[12]=O}else U=Q[9],F=Q[10],_=Q[11],O=Q[12];let L;if(Q[17]!==U||Q[18]!==F||Q[19]!==_||Q[20]!==O)L=ju.jsxDEV(U,{flexDirection:F,justifyContent:_,children:O},void 0,!1,void 0,this),Q[17]=U,Q[18]=F,Q[19]=_,Q[20]=O,Q[21]=L;else L=Q[21];return L}function F7Q(J){return B8(J.displayText)}var Wi1,Hi1,ju,W7Q=5,U7Q,Z7J;var rt0=I(()=>{U9();x7();a0();A6();Wi1=T(e0(),1),Hi1=T(J1(),1),ju=T(e(),1);U7Q=Hi1.memo(function(Q){let X=Wi1.c(36),{item:Z,maxColumnWidth:Y,isSelected:q}=Q,K=l8().columns;if(B7Q(Z.id)){let C;if(X[0]!==Z.id)C=H7Q(Z.id),X[0]=Z.id,X[1]=C;else C=X[1];let S=C,k=q?"suggestion":void 0,h=!q,u=Z.id.startsWith("file-"),x=Z.id.startsWith("mcp-resource-"),m=Z.description?3:0,p;if(u){let n;if(X[2]!==Z.description)n=Z.description?Math.min(20,B8(Z.description)):0,X[2]=Z.description,X[3]=n;else n=X[3];let s=n,X0=K-2-4-m-s,Y0;if(X[4]!==Z.displayText||X[5]!==X0)Y0=hq0(Z.displayText,X0),X[4]=Z.displayText,X[5]=X0,X[6]=Y0;else Y0=X[6];p=Y0}else if(x){let n;if(X[7]!==Z.displayText)n=x9(Z.displayText,30),X[7]=Z.displayText,X[8]=n;else n=X[8];p=n}else p=Z.displayText;let c=K-2-B8(p)-m-4,r;if(Z.description){let n=Math.max(0,c),s;if(X[9]!==Z.description||X[10]!==n)s=x9(Z.description.replace(/\s+/g," "),n),X[9]=Z.description,X[10]=n,X[11]=s;else s=X[11];r=`${S} ${p} \u2013 ${s}`}else r=`${S} ${p}`;let J0;if(X[12]!==h||X[13]!==r||X[14]!==k)J0=ju.jsxDEV(M,{color:k,dimColor:h,wrap:"truncate",children:r},void 0,!1,void 0,this),X[12]=h,X[13]=r,X[14]=k,X[15]=J0;else J0=X[15];return J0}let z=Math.floor(K*0.4),W=Math.min(Y??B8(Z.displayText)+5,z),H=Z.color||(q?"suggestion":void 0),B=!q,U=Z.displayText;if(B8(U)>W-2){let C=W-2,S;if(X[16]!==U||X[17]!==C)S=x9(U,C),X[16]=U,X[17]=C,X[18]=S;else S=X[18];U=S}let F=U+" ".repeat(Math.max(0,W-B8(U))),_=Z.tag?`[${Z.tag}] `:"",O=B8(_),L=Math.max(0,K-W-O-4),N;if(X[19]!==L||X[20]!==Z.description)N=Z.description?x9(Z.description.replace(/\s+/g," "),L):"",X[19]=L,X[20]=Z.description,X[21]=N;else N=X[21];let A=N,R;if(X[22]!==F||X[23]!==B||X[24]!==H)R=ju.jsxDEV(M,{color:H,dimColor:B,children:F},void 0,!1,void 0,this),X[22]=F,X[23]=B,X[24]=H,X[25]=R;else R=X[25];let D;if(X[26]!==_)D=_?ju.jsxDEV(M,{dimColor:!0,children:_},void 0,!1,void 0,this):null,X[26]=_,X[27]=D;else D=X[27];let $=q?"suggestion":void 0,y=!q,v;if(X[28]!==$||X[29]!==y||X[30]!==A)v=ju.jsxDEV(M,{color:$,dimColor:y,children:A},void 0,!1,void 0,this),X[28]=$,X[29]=y,X[30]=A,X[31]=v;else v=X[31];let E;if(X[32]!==R||X[33]!==D||X[34]!==v)E=ju.jsxDEV(M,{wrap:"truncate",children:[R,D,v]},void 0,!0,void 0,this),X[32]=R,X[33]=D,X[34]=v,X[35]=E;else E=X[35];return E});Z7J=Hi1.memo(uV0)});function Y7J(){let J=gV0.c(1),Q;if(J[0]===Symbol.for("react.memo_cache_sentinel"))Q=v5.jsxDEV(M,{dimColor:!0,children:"Glock will be able to read files in this directory and make edits when auto-accept edits is on."},void 0,!1,void 0,this),J[0]=Q;else Q=J[0];return Q}function O7Q(J){let Q=gV0.c(5),{path:X}=J,Z;if(Q[0]!==X)Z=v5.jsxDEV(M,{color:"permission",children:X},void 0,!1,void 0,this),Q[0]=X,Q[1]=Z;else Z=Q[1];let Y;if(Q[2]===Symbol.for("react.memo_cache_sentinel"))Y=v5.jsxDEV(Y7J,{},void 0,!1,void 0,this),Q[2]=Y;else Y=Q[2];let q;if(Q[3]!==Z)q=v5.jsxDEV(f,{flexDirection:"column",paddingX:2,gap:1,children:[Z,Y]},void 0,!0,void 0,this),Q[3]=Z,Q[4]=q;else q=Q[4];return q}function L7Q(J){let Q=gV0.c(14),{value:X,onChange:Z,onSubmit:Y,error:q,suggestions:K,selectedSuggestion:G}=J,z;if(Q[0]===Symbol.for("react.memo_cache_sentinel"))z=v5.jsxDEV(M,{children:"Enter the path to the directory:"},void 0,!1,void 0,this),Q[0]=z;else z=Q[0];let W;if(Q[1]!==Z||Q[2]!==Y||Q[3]!==X)W=v5.jsxDEV(f,{borderDimColor:!0,borderStyle:"round",marginY:1,paddingLeft:1,children:v5.jsxDEV(sX,{showCursor:!0,placeholder:`Directory path${s0.ellipsis}`,value:X,onChange:Z,onSubmit:Y,columns:80,cursorOffset:X.length,onChangeCursorOffset:V7Q},void 0,!1,void 0,this)},void 0,!1,void 0,this),Q[1]=Z,Q[2]=Y,Q[3]=X,Q[4]=W;else W=Q[4];let H;if(Q[5]!==G||Q[6]!==K)H=K.length>0&&v5.jsxDEV(f,{marginBottom:1,children:v5.jsxDEV(uV0,{suggestions:K,selectedSuggestion:G},void 0,!1,void 0,this)},void 0,!1,void 0,this),Q[5]=G,Q[6]=K,Q[7]=H;else H=Q[7];let B;if(Q[8]!==q)B=q&&v5.jsxDEV(M,{color:"error",children:q},void 0,!1,void 0,this),Q[8]=q,Q[9]=B;else B=Q[9];let U;if(Q[10]!==W||Q[11]!==H||Q[12]!==B)U=v5.jsxDEV(f,{flexDirection:"column",children:[z,W,H,B]},void 0,!0,void 0,this),Q[10]=W,Q[11]=H,Q[12]=B,Q[13]=U;else U=Q[13];return U}function V7Q(){}function mV0(J){let Q=gV0.c(34),{onAddDirectory:X,onCancel:Z,permissionContext:Y,directoryPath:q}=J,[K,G]=qr.useState(""),[z,W]=qr.useState(null),H;if(Q[0]===Symbol.for("react.memo_cache_sentinel"))H=[],Q[0]=H;else H=Q[0];let[B,U]=qr.useState(H),[F,_]=qr.useState(0),O;if(Q[1]===Symbol.for("react.memo_cache_sentinel"))O=async(c)=>{if(!c){U([]),_(0);return}let r=await nt0(c);U(r),_(0)},Q[1]=O;else O=Q[1];let N=bd(O,100),A,R;if(Q[2]!==N||Q[3]!==K)A=()=>{N(K)},R=[K,N],Q[2]=N,Q[3]=K,Q[4]=A,Q[5]=R;else A=Q[4],R=Q[5];qr.useEffect(A,R);let D;if(Q[6]===Symbol.for("react.memo_cache_sentinel"))D=(c)=>{let r=c.id+"/";G(r),W(null)},Q[6]=D;else D=Q[6];let $=D,y;if(Q[7]!==X||Q[8]!==Y)y=async(c)=>{let r=await vX0(c,Y);if(r.resultType==="success")X(r.absolutePath,!1);else W(fX0(r))},Q[7]=X,Q[8]=Y,Q[9]=y;else y=Q[9];let v=y,E;if(Q[10]===Symbol.for("react.memo_cache_sentinel"))E={context:"Settings"},Q[10]=E;else E=Q[10];J8("confirm:no",Z,E);let C;if(Q[11]!==v||Q[12]!==F||Q[13]!==B)C=(c)=>{if(B.length>0){if(c.key==="tab"){c.preventDefault();let r=B[F];if(r)$(r);return}if(c.key==="return"){c.preventDefault();let r=B[F];if(r)v(r.id+"/");return}if(c.key==="up"||c.ctrl&&c.key==="p"){c.preventDefault(),_((r)=>r<=0?B.length-1:r-1);return}if(c.key==="down"||c.ctrl&&c.key==="n"){c.preventDefault(),_((r)=>r>=B.length-1?0:r+1);return}}},Q[11]=v,Q[12]=F,Q[13]=B,Q[14]=C;else C=Q[14];let S=C,k;if(Q[15]!==q||Q[16]!==X||Q[17]!==Z)k=(c)=>{if(!q)return;let r=c;J:switch(r){case"yes-session":{X(q,!1);break J}case"yes-remember":{X(q,!0);break J}case"no":Z()}},Q[15]=q,Q[16]=X,Q[17]=Z,Q[18]=k;else k=Q[18];let h=k,u=q?void 0:N7Q,x;if(Q[19]!==K||Q[20]!==q||Q[21]!==z||Q[22]!==h||Q[23]!==v||Q[24]!==F||Q[25]!==B)x=q?v5.jsxDEV(f,{flexDirection:"column",gap:1,children:[v5.jsxDEV(O7Q,{path:q},void 0,!1,void 0,this),v5.jsxDEV(Q8,{options:_7Q,onChange:h,onCancel:()=>h("no")},void 0,!1,void 0,this)]},void 0,!0,void 0,this):v5.jsxDEV(f,{flexDirection:"column",gap:1,marginX:2,children:[v5.jsxDEV(Y7J,{},void 0,!1,void 0,this),v5.jsxDEV(L7Q,{value:K,onChange:G,onSubmit:v,error:z,suggestions:B,selectedSuggestion:F},void 0,!1,void 0,this)]},void 0,!0,void 0,this),Q[19]=K,Q[20]=q,Q[21]=z,Q[22]=h,Q[23]=v,Q[24]=F,Q[25]=B,Q[26]=x;else x=Q[26];let m;if(Q[27]!==Z||Q[28]!==u||Q[29]!==x)m=v5.jsxDEV(D8,{title:"Add directory to workspace",onCancel:Z,color:"permission",isCancelActive:!1,inputGuide:u,children:x},void 0,!1,void 0,this),Q[27]=Z,Q[28]=u,Q[29]=x,Q[30]=m;else m=Q[30];let p;if(Q[31]!==S||Q[32]!==m)p=v5.jsxDEV(f,{flexDirection:"column",tabIndex:0,autoFocus:!0,onKeyDown:S,children:m},void 0,!1,void 0,this),Q[31]=S,Q[32]=m,Q[33]=p;else p=Q[33];return p}function N7Q(J){return J.pending?v5.jsxDEV(M,{children:["Press ",J.keyName," again to exit"]},void 0,!0,void 0,this):v5.jsxDEV(V8,{children:[v5.jsxDEV(p1,{shortcut:"Tab",action:"complete"},void 0,!1,void 0,this),v5.jsxDEV(p1,{shortcut:"Enter",action:"add"},void 0,!1,void 0,this),v5.jsxDEV(s1,{action:"confirm:no",context:"Settings",fallback:"Esc",description:"cancel"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}var gV0,qr,v5,_7Q;var Bi1=I(()=>{r6();dO();Dt0();EH();a0();f6();zi1();U7();AQ();R9();M9();g9();rt0();gV0=T(e0(),1),qr=T(J1(),1),v5=T(e(),1),_7Q=[{value:"yes-session",label:"Yes, for this session"},{value:"yes-remember",label:"Yes, and remember this directory"},{value:"no",label:"No"}]});var G7J={};X8(G7J,{call:()=>A7Q});function w7Q(J){let Q=q7J.c(10),{message:X,args:Z,onDone:Y}=J,q,K;if(Q[0]!==Y)q=()=>{let H=setTimeout(Y,0);return()=>clearTimeout(H)},K=[Y],Q[0]=Y,Q[1]=q,Q[2]=K;else q=Q[1],K=Q[2];K7J.useEffect(q,K);let G;if(Q[3]!==Z)G=Iu.jsxDEV(M,{dimColor:!0,children:[s0.pointer," /add-dir ",Z]},void 0,!0,void 0,this),Q[3]=Z,Q[4]=G;else G=Q[4];let z;if(Q[5]!==X)z=Iu.jsxDEV(d1,{children:Iu.jsxDEV(M,{children:X},void 0,!1,void 0,this)},void 0,!1,void 0,this),Q[5]=X,Q[6]=z;else z=Q[6];let W;if(Q[7]!==G||Q[8]!==z)W=Iu.jsxDEV(f,{flexDirection:"column",children:[G,z]},void 0,!0,void 0,this),Q[7]=G,Q[8]=z,Q[9]=W;else W=Q[9];return W}async function A7Q(J,Q,X){let Z=(X??"").trim(),Y=Q.getAppState(),q=async(G,z=!1)=>{let H={type:"addDirectories",directories:[G],destination:z?"localSettings":"session"},B=Q.getAppState(),U=iZ(B.toolPermissionContext,H);Q.setAppState((L)=>({...L,toolPermissionContext:U}));let F=qF();if(!F.includes(G))s50([...F,G]);p8.refreshConfig();let _;if(z)try{zj(H),_=`Added ${_1.bold(G)} as a working directory and saved to local settings`}catch(L){_=`Added ${_1.bold(G)} as a working directory. Failed to save to local settings: ${L instanceof Error?L.message:"Unknown error"}`}else _=`Added ${_1.bold(G)} as a working directory for this session`;let O=`${_} ${_1.dim("\xB7 /permissions to manage")}`;J(O)};if(!Z)return Iu.jsxDEV(mV0,{permissionContext:Y.toolPermissionContext,onAddDirectory:q,onCancel:()=>{J("Did not add a working directory.")}},void 0,!1,void 0,this);let K=await vX0(Z,Y.toolPermissionContext);if(K.resultType!=="success"){let G=fX0(K);return Iu.jsxDEV(w7Q,{message:G,args:X??"",onDone:()=>J(G)},void 0,!1,void 0,this)}return Iu.jsxDEV(mV0,{directoryPath:K.absolutePath,permissionContext:Y.toolPermissionContext,onAddDirectory:q,onCancel:()=>{J(`Did not add ${_1.bold(K.absolutePath)} as a working directory.`)}},void 0,!1,void 0,this)}var q7J,K7J,Iu;var z7J=I(()=>{k7();r6();N1();v9();Bi1();a0();lq();V4();Dt0();q7J=T(e0(),1),K7J=T(J1(),1),Iu=T(e(),1)});var R7Q,W7J;var H7J=I(()=>{R7Q={type:"local-jsx",name:"add-dir",description:"Add a new working directory",argumentHint:"<path>",load:()=>Promise.resolve().then(() => (z7J(),G7J))},W7J=R7Q});var B7J;var U7J=I(()=>{B7J={isEnabled:()=>!1,isHidden:!0,name:"stub"}});var F7J;var _7J=I(()=>{F7J={isEnabled:()=>!1,isHidden:!0,name:"stub"}});class Ui1{paths=[];lowerPaths=[];charBits=new Int32Array(0);pathLens=new Uint16Array(0);topLevelCache=null;readyCount=0;loadFromFileList(J){let Q=new Set,X=[];for(let Z of J)if(Z.length>0&&!Q.has(Z))Q.add(Z),X.push(Z);this.buildIndex(X)}loadFromFileListAsync(J){let Q=()=>{},X=new Promise((Y)=>{Q=Y}),Z=this.buildAsync(J,Q);return{queryable:X,done:Z}}async buildAsync(J,Q){let X=new Set,Z=[],Y=performance.now();for(let K=0;K<J.length;K++){let G=J[K];if(G.length>0&&!X.has(G))X.add(G),Z.push(G);if((K&255)===255&&performance.now()-Y>4)await ot0(),Y=performance.now()}this.resetArrays(Z),Y=performance.now();let q=!0;for(let K=0;K<Z.length;K++)if(this.indexPath(K),(K&255)===255&&performance.now()-Y>4){if(this.readyCount=K+1,q)Q(),q=!1;await ot0(),Y=performance.now()}this.readyCount=Z.length,Q()}buildIndex(J){this.resetArrays(J);for(let Q=0;Q<J.length;Q++)this.indexPath(Q);this.readyCount=J.length}resetArrays(J){let Q=J.length;this.paths=J,this.lowerPaths=Array(Q),this.charBits=new Int32Array(Q),this.pathLens=new Uint16Array(Q),this.readyCount=0,this.topLevelCache=j7Q(J,100)}indexPath(J){let Q=this.paths[J].toLowerCase();this.lowerPaths[J]=Q;let X=Q.length;this.pathLens[J]=X;let Z=0;for(let Y=0;Y<X;Y++){let q=Q.charCodeAt(Y);if(q>=97&&q<=122)Z|=1<<q-97}this.charBits[J]=Z}search(J,Q){if(Q<=0)return[];if(J.length===0){if(this.topLevelCache)return this.topLevelCache.slice(0,Q);return[]}let X=J!==J.toLowerCase(),Z=X?J:J.toLowerCase(),Y=Math.min(Z.length,64),q=Array(Y),K=0;for(let A=0;A<Y;A++){let R=Z.charAt(A);q[A]=R;let D=R.charCodeAt(0);if(D>=97&&D<=122)K|=1<<D-97}let G=Y*24+8+32,z=[],W=-1/0,{paths:H,lowerPaths:B,charBits:U,pathLens:F,readyCount:_}=this;J:for(let A=0;A<_;A++){if((U[A]&K)!==K)continue;let R=X?H[A]:B[A],D=R.indexOf(q[0]);if(D===-1)continue;at0[0]=D;let $=0,y=0,v=D;for(let k=1;k<Y;k++){if(D=R.indexOf(q[k],v+1),D===-1)continue J;at0[k]=D;let h=D-v-1;if(h===0)y+=4;else $+=3+h*1;v=D}if(z.length===Q&&G+y-$<=W)continue;let E=H[A],C=F[A],S=Y*16+y-$;S+=O7J(E,at0[0],!0);for(let k=1;k<Y;k++)S+=O7J(E,at0[k],!1);if(S+=Math.max(0,32-(C>>2)),z.length<Q){if(z.push({path:E,fuzzScore:S}),z.length===Q)z.sort((k,h)=>k.fuzzScore-h.fuzzScore),W=z[0].fuzzScore}else if(S>W){let k=0,h=z.length;while(k<h){let u=k+h>>1;if(z[u].fuzzScore<S)k=u+1;else h=u}z.splice(k,0,{path:E,fuzzScore:S}),z.shift(),W=z[0].fuzzScore}}z.sort((A,R)=>R.fuzzScore-A.fuzzScore);let O=z.length,L=Math.max(O,1),N=Array(O);for(let A=0;A<O;A++){let R=z[A].path,D=A/L,$=R.includes("test")?Math.min(D*1.05,1):D;N[A]={path:R,score:$}}return N}}function O7J(J,Q,X){if(Q===0)return X?8:0;let Z=J.charCodeAt(Q-1);if(M7Q(Z))return 8;if(D7Q(Z)&&$7Q(J.charCodeAt(Q)))return 6;return 0}function M7Q(J){return J===47||J===92||J===45||J===95||J===46||J===32}function D7Q(J){return J>=97&&J<=122}function $7Q(J){return J>=65&&J<=90}function ot0(){return new Promise((J)=>setImmediate(J))}function j7Q(J,Q){let X=new Set;for(let Y of J){let q=Y.length;for(let G=0;G<Y.length;G++){let z=Y.charCodeAt(G);if(z===47||z===92){q=G;break}}let K=Y.slice(0,q);if(K.length>0){if(X.add(K),X.size>=Q)break}}let Z=Array.from(X);return Z.sort((Y,q)=>{let K=Y.length-q.length;if(K!==0)return K;return Y<q?-1:Y>q?1:0}),Z.slice(0,Q).map((Y)=>({path:Y,score:0}))}var L7J=4,at0;var V7J=I(()=>{at0=new Int32Array(64)});import{statSync as I7Q}from"fs";import*as HU from"path";function Fi1(){if(!BC)BC=new Ui1;return BC}function M7J(){BC=null,iX0=null,nX0++,st0=null,pV0=[],Mi1=[],Di1=[],Ri1.clear(),_i1=null,Oi1=null,Li1=0,Vi1=null,Ni1=null,tt0=null}function D7J(J){let Q=J.length,X=Math.max(1,Math.floor(Q/500)),Z=-2128831035;for(let Y=0;Y<Q;Y+=X){let q=J[Y];for(let K=0;K<q.length;K++)Z=(Z^q.charCodeAt(K))*16777619|0;Z=Z*16777619|0}if(Q>0){let Y=J[Q-1];for(let q=0;q<Y.length;q++)Z=(Z^Y.charCodeAt(q))*16777619|0}return`${Q}:${(Z>>>0).toString(16)}`}function y7Q(){let J=IZ(B1());if(!J)return null;try{return I7Q(HU.join(J,".git","index")).mtimeMs}catch{return null}}function N7J(J,Q,X){if(X===Q)return J;return J.map((Z)=>{let Y=HU.join(Q,Z);return HU.relative(X,Y)})}async function b7Q(J){if(J.length===0)return;if(!BC||pV0.length===0)return;let Q=await $7J(J),X=[...pV0,...Mi1,...Di1,...J,...Q],Z=D7J(X);if(Z===tt0){b("[FileIndex] skipped index rebuild \u2014 merged paths unchanged");return}await BC.loadFromFileListAsync(X).done,tt0=Z,b(`[FileIndex] rebuilt index with ${pV0.length} tracked + ${J.length} untracked files`)}async function w7J(J,Q){let X=`${J}:${Q}`;if(Oi1===X)return _i1;let Z=Y1(),Y=[".ignore",".rgignore"],q=[...new Set([J,Q])],K=A7J.default(),G=!1,z=q.flatMap((B)=>Y.map((U)=>HU.join(B,U))),W=await Promise.all(z.map((B)=>Z.readFile(B,{encoding:"utf8"}).catch(()=>null)));for(let[B,U]of W.entries()){if(U===null)continue;K.add(U),G=!0,b(`[FileIndex] loaded ignore patterns from ${z[B]}`)}let H=G?K:null;return _i1=H,Oi1=X,H}async function P7Q(J,Q){let X=Date.now();b("[FileIndex] getFilesUsingGit called");let Z=IZ(B1());if(!Z)return b("[FileIndex] not a git repo, returning null"),null;try{let Y=B1(),q=Date.now(),K=await r8(F6(),["-c","core.quotepath=false","ls-files","--recurse-submodules"],{timeout:5000,abortSignal:J,cwd:Z});if(b(`[FileIndex] git ls-files (tracked) took ${Date.now()-q}ms`),K.code!==0)return b(`[FileIndex] git ls-files failed (code=${K.code}, stderr=${K.stderr}), falling back to ripgrep`),null;let G=K.stdout.trim().split(`
|
|
5001
5001
|
`).filter(Boolean),z=N7J(G,Z,Y),W=await w7J(Z,Y);if(W){let B=z.length;z=W.filter(z),b(`[FileIndex] applied ignore patterns: ${B} -> ${z.length} files`)}pV0=z;let H=Date.now()-X;if(b(`[FileIndex] git ls-files: ${z.length} tracked files in ${H}ms`),l("jarvis_api_error",{file_count:z.length,tracked_count:z.length,untracked_count:0,duration_ms:H}),!st0){let B=Q?["-c","core.quotepath=false","ls-files","--others","--exclude-standard"]:["-c","core.quotepath=false","ls-files","--others"],U=nX0;st0=r8(F6(),B,{timeout:1e4,cwd:Z}).then(async(F)=>{if(U!==nX0)return;if(F.code===0){let _=F.stdout.trim().split(`
|
|
5002
5002
|
`).filter(Boolean),O=N7J(_,Z,Y),L=await w7J(Z,Y);if(L&&O.length>0){let N=O.length;O=L.filter(O),b(`[FileIndex] applied ignore patterns to untracked: ${N} -> ${O.length} files`)}b(`[FileIndex] background untracked fetch: ${O.length} files`),b7Q(O)}}).catch((F)=>{b(`[FileIndex] background untracked fetch failed: ${F}`)}).finally(()=>{st0=null})}return z}catch(Y){return b(`[FileIndex] git ls-files error: ${Q1(Y)}`),null}}async function $7J(J){let Q=new Set,X=performance.now();for(let Z=0;Z<J.length;Z++)if(E7Q(J,Z,Z+1,Q),(Z&255)===255&&performance.now()-X>L7J)await ot0(),X=performance.now();return[...Q].map((Z)=>Z+HU.sep)}function E7Q(J,Q,X,Z){for(let Y=Q;Y<X;Y++){let q=HU.dirname(J[Y]);while(q!=="."&&!Z.has(q)){let K=HU.dirname(q);if(K===q)break;Z.add(q),q=K}}}async function T7Q(J){return(await Promise.all(c6J.map((X)=>TE(X,J)))).flatMap((X)=>X.map((Z)=>Z.filePath))}async function C7Q(J,Q){b(`[FileIndex] getProjectFiles called, respectGitignore=${Q}`);let X=await P7Q(J,Q);if(X!==null)return b(`[FileIndex] using git ls-files result (${X.length} files)`),X;b("[FileIndex] git ls-files returned null, falling back to ripgrep");let Z=Date.now(),Y=["--files","--follow","--hidden","--glob","!.git/","--glob","!.svn/","--glob","!.hg/","--glob","!.bzr/","--glob","!.jj/","--glob","!.sl/"];if(!Q)Y.push("--no-ignore-vcs");let K=(await HI(Y,".",J)).map((z)=>HU.relative(B1(),z)),G=Date.now()-Z;return b(`[FileIndex] ripgrep: ${K.length} files in ${G}ms`),l("jarvis_api_error",{file_count:K.length,duration_ms:G}),K}async function v7Q(){let J=AbortSignal.timeout(1e4),Q=Fi1();try{let X=h6(),Z=L1(),Y=X.respectGitignore??Z.respectGitignore??!0,q=B1(),[K,G]=await Promise.all([C7Q(J,Y),T7Q(q)]);Mi1=G;let z=[...K,...G],W=await $7J(z);Di1=W;let H=[...W,...z],B=D7J(H);if(B!==Ni1)await Q.loadFromFileListAsync(H).done,Ni1=B,tt0=null;else b("[FileIndex] skipped index rebuild \u2014 tracked paths unchanged")}catch(X){H0(X)}return Q}function f7Q(J,Q){let X=Math.min(J.length,Q.length),Z=0;while(Z<X&&J[Z]===Q[Z])Z++;return J.substring(0,Z)}function j7J(J){if(J.length===0)return"";let Q=J.map((Z)=>Z.displayText),X=Q[0];for(let Z=1;Z<Q.length;Z++){let Y=Q[Z];if(X=f7Q(X,Y),X==="")return""}return X}function wi1(J,Q){return{id:`file-${J}`,displayText:J,metadata:Q!==void 0?{score:Q}:void 0}}function S7Q(J,Q){return J.search(Q,Ai1).map((Z)=>wi1(Z.path,Z.score))}function et0(){if(iX0)return;let J=y7Q();if(BC){if(!(J!==null&&J!==Vi1)&&Date.now()-Li1<x7Q)return}let Q=nX0,X=Date.now();Fi1(),iX0=v7Q().then((Z)=>{if(Q!==nX0)return Z;return iX0=null,Ri1.emit(),Vi1=J,Li1=Date.now(),b(`[FileIndex] cache refresh completed in ${Date.now()-X}ms`),Z}).catch((Z)=>{if(b(`[FileIndex] Cache refresh failed: ${Q1(Z)}`),H0(Z),Q===nX0)iX0=null;return Fi1()})}async function k7Q(){let J=Y1(),Q=B1();try{return(await J.readdir(Q)).map((Z)=>{let Y=HU.join(Q,Z.name),q=HU.relative(Q,Y);return Z.isDirectory()?q+HU.sep:q})}catch(X){return H0(X),[]}}async function $i1(J,Q=!1){if(!J&&!Q)return[];if(h6().fileSuggestion?.type==="command"){let Z={...kZ(),query:J};return(await nl1(Z)).slice(0,Ai1).map(wi1)}if(J===""||J==="."||J==="./"){let Z=await k7Q();return et0(),Z.slice(0,Ai1).map(wi1)}let X=Date.now();try{let Z=iX0!==null;et0();let Y=J,q="."+HU.sep;if(J.startsWith(q))Y=J.substring(2);if(Y.startsWith("~"))Y=e6(Y);let K=BC?S7Q(BC,Y):[],G=Date.now()-X;return b(`[FileIndex] generateFileSuggestions: ${K.length} results in ${G}ms (${Z?"partial":"full"} index)`),l("jarvis_api_error",{duration_ms:G,cache_hit:!Z,result_count:K.length,query_length:J.length}),K}catch(Z){return H0(Z),[]}}function Je0(J,Q,X,Z,Y,q){let K=typeof J==="string"?J:J.displayText,G=Q.substring(0,Z)+K+Q.substring(Z+X.length);Y(G);let z=Z+K.length;q(z)}var A7J,BC=null,iX0=null,Ri1,R7J,nX0=0,st0=null,pV0,Mi1,Di1,_i1=null,Oi1=null,Li1=0,Vi1=null,Ni1=null,tt0=null,Ai1=15,x7Q=5000;var cV0=I(()=>{Ak();V7J();D1();m8();Z6();Z1();T1();T9();H6();uQ();N4();M1();dX();mM();g8();A7J=T(Is(),1);Ri1=PX(),R7J=Ri1.subscribe,pV0=[],Mi1=[],Di1=[]});import{join as h7Q}from"path";function u7Q(){return`IMPORTANT: This message and these instructions are NOT part of the actual user conversation. Do NOT include any references to "documentation updates", "magic docs", or these update instructions in the document content.
|
|
5003
5003
|
|
|
@@ -5068,12 +5068,12 @@ Preference saved. Use /config to change copyFullResponse`);return}l("jarvis_api_
|
|
|
5068
5068
|
`))}async function o7J(J,Q){let X=J.getAppState(),Z=await wH(J.options.tools,J.options.mainLoopModel,Array.from(X.toolPermissionContext.additionalWorkingDirectories.keys()),J.options.mcpClients),Y=_w({mainThreadAgentDefinition:void 0,toolUseContext:J,customSystemPrompt:J.options.customSystemPrompt,defaultSystemPrompt:Z,appendSystemPrompt:J.options.appendSystemPrompt}),[q,K]=await Promise.all([G5(),Nq()]);return{systemPrompt:Y,userContext:q,systemContext:K,toolUseContext:J,forkContextMessages:Q}}var a7J=null,WQQ=async(J,Q)=>{let{abortController:X}=Q,{messages:Z}=Q;if(Z=LG(Z),Z.length===0)throw Error("No messages to compact");let Y=J.trim();try{if(!Y){let z=await Va0(Z,Q.agentId);if(z)return G5.cache.clear?.(),eM(),av(),z90(),{type:"compact",compactionResult:z,displayText:Ci1(Q)}}if(a7J?.isReactiveOnlyMode())return await HQQ(Z,Q,Y,a7J);let K=(await ZI(Z,Q)).messages,G=await p70(K,Q,await o7J(Q,K),!1,Y,!1);return Kk(void 0),z90(),G5.cache.clear?.(),eM(),{type:"compact",compactionResult:G,displayText:Ci1(Q,G.userDisplayMessage)}}catch(q){if(X.signal.aborted)throw Error("Compaction canceled.");else if(Zf(q,RQ0))throw Error(RQ0);else if(Zf(q,AQ0))throw Error(AQ0);else throw H0(q),Error(`Error during compaction: ${q}`)}};var t7J=I(()=>{k7();N1();Lw();UL();ij();Yk();LT();Ud0();Fw();sO0();Na0();Dl();T1();N4();M1();M8();Tl0();B90()});var BQQ,e7J;var JQJ=I(()=>{BQQ={type:"local",name:"compact",description:"Clear conversation history but keep a summary in context. Optional: /compact [instructions for summarization]",isEnabled:()=>!0,supportsNonInteractive:!0,argumentHint:"<optional custom summarization instructions>",load:()=>Promise.resolve().then(() => (t7J(),s7J))},e7J=BQQ});function UQQ({children:J,ref:Q,stickyScroll:X,...Z}){let Y=yu.useRef(null),[,q]=yu.useState(0),K=yu.useRef(new Set),G=yu.useRef(!1),z=()=>{for(let H of K.current)H()};function W(H){if(n71(),h3(H),W96(),z(),G.current)return;G.current=!0,queueMicrotask(()=>{G.current=!1,rJ6(H)})}return yu.useImperativeHandle(Q,()=>({scrollTo(H){let B=Y.current;if(!B)return;B.stickyScroll=!1,B.pendingScrollDelta=void 0,B.scrollAnchor=void 0,B.scrollTop=Math.max(0,Math.floor(H)),W(B)},scrollToElement(H,B=0){let U=Y.current;if(!U)return;U.stickyScroll=!1,U.pendingScrollDelta=void 0,U.scrollAnchor={el:H,offset:B},W(U)},scrollBy(H){let B=Y.current;if(!B)return;B.stickyScroll=!1,B.scrollAnchor=void 0,B.pendingScrollDelta=(B.pendingScrollDelta??0)+Math.floor(H),W(B)},scrollToBottom(){let H=Y.current;if(!H)return;H.pendingScrollDelta=void 0,H.stickyScroll=!0,h3(H),z(),q((B)=>B+1)},getScrollTop(){return Y.current?.scrollTop??0},getPendingDelta(){return Y.current?.pendingScrollDelta??0},getScrollHeight(){return Y.current?.scrollHeight??0},getFreshScrollHeight(){return Y.current?.childNodes[0]?.yogaNode?.getComputedHeight()??Y.current?.scrollHeight??0},getViewportHeight(){return Y.current?.scrollViewportHeight??0},getViewportTop(){return Y.current?.scrollViewportTop??0},isSticky(){let H=Y.current;if(!H)return!1;return H.stickyScroll??Boolean(H.attributes.stickyScroll)},subscribe(H){return K.current.add(H),()=>K.current.delete(H)},setClampBounds(H,B){let U=Y.current;if(!U)return;U.scrollClampMin=H,U.scrollClampMax=B}}),[]),vi1.jsxDEV("ink-box",{ref:(H)=>{if(Y.current=H,H)H.scrollTop??=0},style:{flexWrap:"nowrap",flexDirection:Z.flexDirection??"row",flexGrow:Z.flexGrow??0,flexShrink:Z.flexShrink??1,...Z,overflowX:"scroll",overflowY:"scroll"},...X?{stickyScroll:!0}:{},children:vi1.jsxDEV(Wq,{flexDirection:"column",flexGrow:1,flexShrink:0,width:"100%",children:J},void 0,!1,void 0,this)},void 0,!1,void 0,this)}var yu,vi1,Xe0;var fi1=I(()=>{N1();R10();ZH0();oP();yu=T(J1(),1),vi1=T(e(),1);Xe0=UQQ});function tw(J){let Q=Ze0.c(25),{title:X,color:Z,defaultTab:Y,children:q,hidden:K,useFullWidth:G,selectedTab:z,onTabChange:W,banner:H,disableNavigation:B,initialHeaderFocused:U,contentHeight:F,navFromContent:_}=J,O=U===void 0?!0:U,L=_===void 0?!1:_,{columns:N}=l8(),A=q.map(LQQ),R=Y?A.findIndex((w0)=>Y===w0[0]):0,D=z!==void 0,[$,y]=sw.useState(R!==-1?R:0),v=D?A.findIndex((w0)=>w0[0]===z):-1,E=D?v!==-1?v:0:$,C=TR6(),[S,k]=sw.useState(O),h;if(Q[0]===Symbol.for("react.memo_cache_sentinel"))h=()=>k(!0),Q[0]=h;else h=Q[0];let u=h,x;if(Q[1]===Symbol.for("react.memo_cache_sentinel"))x=()=>k(!1),Q[1]=x;else x=Q[1];let m=x,[p,c]=sw.useState(0),r;if(Q[2]===Symbol.for("react.memo_cache_sentinel"))r=()=>{return c(OQQ),()=>c(_QQ)},Q[2]=r;else r=Q[2];let J0=r,n=p>0,s=(w0)=>{let E0=(E+A.length+w0)%A.length,h0=A[E0]?.[0];if(D&&W&&h0)W(h0);else y(E0);k(!0)},X0=!K&&!B&&S,Y0;if(Q[3]!==X0)Y0={context:"Tabs",isActive:X0},Q[3]=X0,Q[4]=Y0;else Y0=Q[4];C6({"tabs:next":()=>s(1),"tabs:previous":()=>s(-1)},Y0);let G0;if(Q[5]!==S||Q[6]!==K||Q[7]!==n)G0=(w0)=>{if(!S||!n||K)return;if(w0.key==="down")w0.preventDefault(),k(!1)},Q[5]=S,Q[6]=K,Q[7]=n,Q[8]=G0;else G0=Q[8];let j0=G0,W0=L&&!S&&n&&!K&&!B,y0;if(Q[9]!==W0)y0={context:"Tabs",isActive:W0},Q[9]=W0,Q[10]=y0;else y0=Q[10];C6({"tabs:next":()=>{s(1),k(!0)},"tabs:previous":()=>{s(-1),k(!0)}},y0);let V0=X?B8(X)+1:0,Z0=A.reduce(FQQ,0),t=V0+Z0,q0=G?Math.max(0,N-t):0,Q0=G?N:void 0,a=f,O0="column",D0=0,F0=!0,I0=C?0:void 0,U0=!K&&FD.jsxDEV(f,{flexDirection:"row",gap:1,flexShrink:C?0:void 0,children:[X!==void 0&&FD.jsxDEV(M,{bold:!0,color:Z,children:X},void 0,!1,void 0,this),A.map((w0,E0)=>{let[h0,u0]=w0,B0=E===E0,_0=Z&&B0&&S;return FD.jsxDEV(M,{backgroundColor:_0?Z:void 0,color:_0?"inverseText":void 0,inverse:B0&&!_0,bold:B0,children:[" ",u0," "]},h0,!0,void 0,this)}),q0>0&&FD.jsxDEV(M,{children:" ".repeat(q0)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),P0;if(Q[11]!==q||Q[12]!==F||Q[13]!==Q0||Q[14]!==K||Q[15]!==C||Q[16]!==E)P0=C?FD.jsxDEV(f,{width:Q0,marginTop:K?0:1,flexShrink:0,children:FD.jsxDEV(Xe0,{ref:C,flexDirection:"column",flexShrink:0,children:q},E,!1,void 0,this)},void 0,!1,void 0,this):FD.jsxDEV(f,{width:Q0,marginTop:K?0:1,height:F,overflowY:F!==void 0?"hidden":void 0,children:q},void 0,!1,void 0,this),Q[11]=q,Q[12]=F,Q[13]=Q0,Q[14]=K,Q[15]=C,Q[16]=E,Q[17]=P0;else P0=Q[17];let $0;if(Q[18]!==a||Q[19]!==H||Q[20]!==j0||Q[21]!==I0||Q[22]!==U0||Q[23]!==P0)$0=FD.jsxDEV(a,{flexDirection:O0,tabIndex:D0,autoFocus:F0,onKeyDown:j0,flexShrink:I0,children:[U0,H,P0]},void 0,!0,void 0,this),Q[18]=a,Q[19]=H,Q[20]=j0,Q[21]=I0,Q[22]=U0,Q[23]=P0,Q[24]=$0;else $0=Q[24];return FD.jsxDEV(Ye0.Provider,{value:{selectedTab:A[E][0],width:Q0,headerFocused:S,focusHeader:u,blurHeader:m,registerOptIn:J0},children:$0},void 0,!1,void 0,this)}function FQQ(J,Q){let[,X]=Q;return J+(X?B8(X):0)+2+1}function _QQ(J){return J-1}function OQQ(J){return J+1}function LQQ(J){return[J.props.id??J.props.title,J.props.title]}function _Y(J){let Q=Ze0.c(4),{title:X,id:Z,children:Y}=J,{selectedTab:q,width:K}=sw.useContext(Ye0),G=oF();if(q!==(Z??X))return null;let z=G?0:void 0,W;if(Q[0]!==Y||Q[1]!==z||Q[2]!==K)W=FD.jsxDEV(f,{width:K,flexShrink:z,children:Y},void 0,!1,void 0,this),Q[0]=Y,Q[1]=z,Q[2]=K,Q[3]=W;else W=Q[3];return W}function QQJ(){let{width:J}=sw.useContext(Ye0);return J}function BU(){let J=Ze0.c(6),{headerFocused:Q,focusHeader:X,blurHeader:Z,registerOptIn:Y}=sw.useContext(Ye0),q;if(J[0]!==Y)q=[Y],J[0]=Y,J[1]=q;else q=J[1];sw.useEffect(Y,q);let K;if(J[2]!==Z||J[3]!==X||J[4]!==Q)K={headerFocused:Q,focusHeader:X,blurHeader:Z},J[2]=Z,J[3]=X,J[4]=Q,J[5]=K;else K=J[5];return K}var Ze0,sw,FD,Ye0;var ew=I(()=>{rE();U9();fi1();x7();a0();f6();Ze0=T(e0(),1),sw=T(J1(),1),FD=T(e(),1),Ye0=sw.createContext({selectedTab:void 0,width:void 0,headerFocused:!1,focusHeader:()=>{},blurHeader:()=>{},registerOptIn:()=>()=>{}})});import{access as VQQ,chmod as NQQ,writeFile as wQQ}from"fs/promises";import{join as lV0}from"path";function qe0(){return lV0(L8(),"local")}function ZQJ(){return lV0(qe0(),"glock")}function YQJ(){return(process.argv[1]||"").includes("/.glock/local/node_modules/")}async function XQJ(J,Q,X){try{return await wQQ(J,Q,{encoding:"utf8",flag:"wx",mode:X}),!0}catch(Z){if(c8(Z)==="EEXIST")return!1;throw Z}}async function AQQ(){try{let J=qe0();await Y1().mkdir(J),await XQJ(lV0(J,"package.json"),l0({name:"glock-local",version:"0.0.1",private:!0},null,2));let Q=lV0(J,"glock");if(await XQJ(Q,`#!/bin/sh
|
|
5069
5069
|
exec "${J}/node_modules/.bin/glock" "$@"`,493))await NQQ(Q,493);return!0}catch(J){return H0(J),!1}}async function Si1(J,Q){try{if(!await AQQ())return"install_failed";let X=Q?Q:J==="stable"?"stable":"latest",Z=await r8("npm",["install",`${MACRO.PACKAGE_URL}@${X}`],{cwd:qe0(),maxBuffer:1e6});if(Z.code!==0){let Y=Error(`Failed to install Glock CLI package: ${Z.stderr}`);return H0(Y),Z.code===190?"in_progress":"install_failed"}return q8((Y)=>({...Y,installMethod:"local"})),"success"}catch(X){return H0(X),"install_failed"}}async function iV0(){try{return await VQQ(lV0(qe0(),"node_modules",".bin","glock")),!0}catch{return!1}}function rX0(){let J=process.env.SHELL||"";if(J.includes("zsh"))return"zsh";if(J.includes("bash"))return"bash";if(J.includes("fish"))return"fish";return"unknown"}var aX0=I(()=>{m8();t1();T1();T9();H6();M1();i1()});import{open as RQQ,readFile as MQQ,stat as DQQ}from"fs/promises";import{homedir as qQJ}from"os";import{join as xi1}from"path";function Gr(J){let Q=J?.homedir??qQJ(),Z=(J?.env??process.env).ZDOTDIR||Q;return{zsh:xi1(Z,".zshrc"),bash:xi1(Q,".bashrc"),fish:xi1(Q,".config/fish/config.fish")}}function ki1(J){let Q=!1;return{filtered:J.filter((Z)=>{if(KQJ.test(Z)){let Y=Z.match(/alias\s+glock\s*=\s*["']([^"']+)["']/);if(!Y)Y=Z.match(/alias\s+glock\s*=\s*([^#\n]+)/);if(Y&&Y[1]){if(Y[1].trim()===ZQJ())return Q=!0,!1}}return!0}),hadAlias:Q}}async function Ke0(J){try{return(await MQQ(J,{encoding:"utf8"})).split(`
|
|
5070
5070
|
`)}catch(Q){if(TX(Q))return null;throw Q}}async function hi1(J,Q){let X=await RQQ(J,"w");try{await X.writeFile(Q.join(`
|
|
5071
|
-
`),{encoding:"utf8"}),await X.datasync()}finally{await X.close()}}async function ui1(J){let Q=Gr(J);for(let X of Object.values(Q)){let Z=await Ke0(X);if(!Z)continue;for(let Y of Z)if(KQJ.test(Y)){let q=Y.match(/alias\s+glock=["']?([^"'\s]+)/);if(q&&q[1])return q[1]}}return null}async function GQJ(J){let Q=await ui1(J);if(!Q)return null;let X=J?.homedir??qQJ(),Z=Q.startsWith("~")?Q.replace("~",X):Q;try{let Y=await DQQ(Z);if(Y.isFile()||Y.isSymbolicLink())return Q}catch{}return null}var KQJ;var Ge0=I(()=>{T1();aX0();KQJ=/^\s*alias\s+glock\s*=/});import{constants as $QQ}from"fs";import{access as jQQ,writeFile as zQJ}from"fs/promises";import{homedir as ze0}from"os";import{join as IQQ}from"path";async function HQJ(){try{let J=await mA("jarvis_api_error",{minVersion:"0.0.0"});if(J.minVersion&&Ix0("0.1.
|
|
5072
|
-
It looks like your version of Glock (0.1.
|
|
5071
|
+
`),{encoding:"utf8"}),await X.datasync()}finally{await X.close()}}async function ui1(J){let Q=Gr(J);for(let X of Object.values(Q)){let Z=await Ke0(X);if(!Z)continue;for(let Y of Z)if(KQJ.test(Y)){let q=Y.match(/alias\s+glock=["']?([^"'\s]+)/);if(q&&q[1])return q[1]}}return null}async function GQJ(J){let Q=await ui1(J);if(!Q)return null;let X=J?.homedir??qQJ(),Z=Q.startsWith("~")?Q.replace("~",X):Q;try{let Y=await DQQ(Z);if(Y.isFile()||Y.isSymbolicLink())return Q}catch{}return null}var KQJ;var Ge0=I(()=>{T1();aX0();KQJ=/^\s*alias\s+glock\s*=/});import{constants as $QQ}from"fs";import{access as jQQ,writeFile as zQJ}from"fs/promises";import{homedir as ze0}from"os";import{join as IQQ}from"path";async function HQJ(){try{let J=await mA("jarvis_api_error",{minVersion:"0.0.0"});if(J.minVersion&&Ix0("0.1.17",J.minVersion))console.error(`
|
|
5072
|
+
It looks like your version of Glock (0.1.17) needs an update.
|
|
5073
5073
|
A newer version (${J.minVersion} or higher) is required to continue.
|
|
5074
5074
|
|
|
5075
5075
|
Please reinstall to get a newer version.
|
|
5076
|
-
`),a9(1)}catch(J){H0(J)}}async function bu(){let J=await UQJ();if(process.env.USER_TYPE==="ant")return J.ant||void 0;return J.external||void 0}async function BQJ(){let J=await UQJ();if(process.env.USER_TYPE==="ant")return J.ant_message||void 0;return J.external_message||void 0}async function UQJ(){try{return await mA("jarvis_api_error",{})}catch(J){return H0(J),{}}}function oX0(J){let X=h6()?.minimumVersion;if(!X)return!1;let Z=!W2(J,X);if(Z)b(`Skipping update to ${J} - below minimumVersion ${X}`);return Z}function FQJ(){return IQQ(L8(),".update.lock")}async function bQQ(){let J=Y1(),Q=FQJ();try{let X=await J.stat(Q);if(Date.now()-X.mtimeMs<WQJ)return!1;try{let Y=await J.stat(Q);if(Date.now()-Y.mtimeMs<WQJ)return!1;await J.unlink(Q)}catch(Y){if(!v8(Y))return H0(Y),!1}}catch(X){if(!v8(X))return H0(X),!1}try{return await zQJ(Q,`${process.pid}`,{encoding:"utf8",flag:"wx"}),!0}catch(X){let Z=c8(X);if(Z==="EEXIST")return!1;if(Z==="ENOENT")try{return await J.mkdir(L8()),await zQJ(Q,`${process.pid}`,{encoding:"utf8",flag:"wx"}),!0}catch(Y){if(c8(Y)==="EEXIST")return!1;return H0(Y),!1}return H0(X),!1}}async function PQQ(){let J=Y1(),Q=FQJ();try{if(await J.readFile(Q,{encoding:"utf8"})===`${process.pid}`)await J.unlink(Q)}catch(X){if(v8(X))return;H0(X)}}async function EQQ(){let J=k8.isRunningWithBun(),Q=null;if(J)Q=await r8("bun",["pm","bin","-g"],{cwd:ze0()});else Q=await r8("npm",["-g","config","get","prefix"],{cwd:ze0()});if(Q.code!==0)return H0(Error(`Failed to check ${J?"bun":"npm"} permissions`)),null;return Q.stdout.trim()}async function gi1(){try{let J=await EQQ();if(!J)return{hasPermissions:!1,npmPrefix:null};try{return await jQQ(J,$QQ.W_OK),{hasPermissions:!0,npmPrefix:J}}catch{return H0(new We0("Insufficient permissions for global npm install.")),{hasPermissions:!1,npmPrefix:J}}}catch(J){return H0(J),{hasPermissions:!1,npmPrefix:null}}}async function _QJ(J){let Q=J==="stable"?"stable":"latest",X=await r8("npm",["view",`${MACRO.PACKAGE_URL}@${Q}`,"version","--prefer-online"],{abortSignal:AbortSignal.timeout(5000),cwd:ze0()});if(X.code!==0){if(b(`npm view failed with code ${X.code}`),X.stderr)b(`npm stderr: ${X.stderr.trim()}`);else b("npm stderr: (empty)");if(X.stdout)b(`npm stdout: ${X.stdout.trim()}`);return null}return X.stdout.trim()}async function OQJ(J){try{return(await y8.get(`${yQQ}/${J}`,{timeout:5000,responseType:"text"})).data.trim()}catch(Q){return b(`Failed to fetch ${J} from GCS: ${Q}`),null}}async function mi1(J){if(!await bQQ())return H0(new We0("Another process is currently installing an update")),l("jarvis_api_error",{pid:process.pid,currentVersion:"0.1.
|
|
5076
|
+
`),a9(1)}catch(J){H0(J)}}async function bu(){let J=await UQJ();if(process.env.USER_TYPE==="ant")return J.ant||void 0;return J.external||void 0}async function BQJ(){let J=await UQJ();if(process.env.USER_TYPE==="ant")return J.ant_message||void 0;return J.external_message||void 0}async function UQJ(){try{return await mA("jarvis_api_error",{})}catch(J){return H0(J),{}}}function oX0(J){let X=h6()?.minimumVersion;if(!X)return!1;let Z=!W2(J,X);if(Z)b(`Skipping update to ${J} - below minimumVersion ${X}`);return Z}function FQJ(){return IQQ(L8(),".update.lock")}async function bQQ(){let J=Y1(),Q=FQJ();try{let X=await J.stat(Q);if(Date.now()-X.mtimeMs<WQJ)return!1;try{let Y=await J.stat(Q);if(Date.now()-Y.mtimeMs<WQJ)return!1;await J.unlink(Q)}catch(Y){if(!v8(Y))return H0(Y),!1}}catch(X){if(!v8(X))return H0(X),!1}try{return await zQJ(Q,`${process.pid}`,{encoding:"utf8",flag:"wx"}),!0}catch(X){let Z=c8(X);if(Z==="EEXIST")return!1;if(Z==="ENOENT")try{return await J.mkdir(L8()),await zQJ(Q,`${process.pid}`,{encoding:"utf8",flag:"wx"}),!0}catch(Y){if(c8(Y)==="EEXIST")return!1;return H0(Y),!1}return H0(X),!1}}async function PQQ(){let J=Y1(),Q=FQJ();try{if(await J.readFile(Q,{encoding:"utf8"})===`${process.pid}`)await J.unlink(Q)}catch(X){if(v8(X))return;H0(X)}}async function EQQ(){let J=k8.isRunningWithBun(),Q=null;if(J)Q=await r8("bun",["pm","bin","-g"],{cwd:ze0()});else Q=await r8("npm",["-g","config","get","prefix"],{cwd:ze0()});if(Q.code!==0)return H0(Error(`Failed to check ${J?"bun":"npm"} permissions`)),null;return Q.stdout.trim()}async function gi1(){try{let J=await EQQ();if(!J)return{hasPermissions:!1,npmPrefix:null};try{return await jQQ(J,$QQ.W_OK),{hasPermissions:!0,npmPrefix:J}}catch{return H0(new We0("Insufficient permissions for global npm install.")),{hasPermissions:!1,npmPrefix:J}}}catch(J){return H0(J),{hasPermissions:!1,npmPrefix:null}}}async function _QJ(J){let Q=J==="stable"?"stable":"latest",X=await r8("npm",["view",`${MACRO.PACKAGE_URL}@${Q}`,"version","--prefer-online"],{abortSignal:AbortSignal.timeout(5000),cwd:ze0()});if(X.code!==0){if(b(`npm view failed with code ${X.code}`),X.stderr)b(`npm stderr: ${X.stderr.trim()}`);else b("npm stderr: (empty)");if(X.stdout)b(`npm stdout: ${X.stdout.trim()}`);return null}return X.stdout.trim()}async function OQJ(J){try{return(await y8.get(`${yQQ}/${J}`,{timeout:5000,responseType:"text"})).data.trim()}catch(Q){return b(`Failed to fetch ${J} from GCS: ${Q}`),null}}async function mi1(J){if(!await bQQ())return H0(new We0("Another process is currently installing an update")),l("jarvis_api_error",{pid:process.pid,currentVersion:"0.1.17"}),"in_progress";try{if(await TQQ(),!k8.isRunningWithBun()&&k8.isNpmFromWindowsPath())return H0(Error("Windows NPM detected in WSL environment")),l("jarvis_api_error",{currentVersion:"0.1.17"}),console.error(`
|
|
5077
5077
|
Error: Windows NPM detected in WSL
|
|
5078
5078
|
|
|
5079
5079
|
You're running Glock in WSL but using the Windows NPM installation from /mnt/c/.
|
|
@@ -5083,11 +5083,11 @@ To fix this issue:
|
|
|
5083
5083
|
1. Install Node.js within your Linux distribution: e.g. sudo apt install nodejs npm
|
|
5084
5084
|
2. Make sure Linux NPM is in your PATH before the Windows version
|
|
5085
5085
|
3. Try installing again
|
|
5086
|
-
`),"install_failed";let{hasPermissions:Q}=await gi1();if(!Q)return"no_permissions";let X=J?`${MACRO.PACKAGE_URL}@${J}`:MACRO.PACKAGE_URL,Z=k8.isRunningWithBun()?"bun":"npm",Y=await r8(Z,["install","-g",X],{cwd:ze0()});if(Y.code!==0){let q=new We0(`Failed to install new version of glock: ${Y.stdout} ${Y.stderr}`);return H0(q),"install_failed"}return q8((q)=>({...q,installMethod:"global"})),"success"}finally{await PQQ()}}async function TQQ(){let J=Gr();for(let[,Q]of Object.entries(J))try{let X=await Ke0(Q);if(!X)continue;let{filtered:Z,hadAlias:Y}=ki1(X);if(Y)await hi1(Q,Z),b(`Removed glock alias from ${Q}`)}catch(X){b(`Failed to remove alias from ${Q}: ${X}`,{level:"error"})}}var yQQ="https://storage.googleapis.com/glock-dist-86c565f3-f756-42ad-8dfa-d59b1c096819/glock-releases",We0,WQJ=300000;var zr=I(()=>{JX();D1();m8();Z1();WZ();t1();T1();T9();H6();E5();M1();g8();Ge0();i1();We0=class We0 extends Iq0{}});import{readFile as CQQ}from"fs/promises";function Be0(J,Q){return Q.includes(J.id)||J.idLike.some((X)=>Q.includes(X))}function pi1(){let J=process.execPath||process.argv[0]||"";if(/[/\\]mise[/\\]installs[/\\]/i.test(J))return b(`Detected mise installation: ${J}`),!0;return!1}function ci1(){let J=process.execPath||process.argv[0]||"";if(/[/\\]\.?asdf[/\\]installs[/\\]/i.test(J))return b(`Detected asdf installation: ${J}`),!0;return!1}function Ue0(){let J=N8();if(J!=="macos"&&J!=="linux"&&J!=="wsl")return!1;let Q=process.execPath||process.argv[0]||"";if(Q.includes("/Caskroom/"))return b(`Detected Homebrew cask installation: ${Q}`),!0;return!1}function di1(){if(N8()!=="windows")return!1;let Q=process.execPath||process.argv[0]||"",X=[/Microsoft[/\\]WinGet[/\\]Packages/i,/Microsoft[/\\]WinGet[/\\]Links/i];for(let Z of X)if(Z.test(Q))return b(`Detected winget installation: ${Q}`),!0;return!1}var He0,li1,ii1,ni1,ri1,Fe0;var ai1=I(()=>{IJ();Z1();T9();k9();He0=g1(async()=>{try{let J=await CQQ("/etc/os-release","utf8"),Q=J.match(/^ID=["']?(\S+?)["']?\s*$/m),X=J.match(/^ID_LIKE=["']?(.+?)["']?\s*$/m);return{id:Q?.[1]??"",idLike:X?.[1]?.split(" ")??[]}}catch{return null}});li1=g1(async()=>{if(N8()!=="linux")return!1;let Q=await He0();if(Q&&!Be0(Q,["arch"]))return!1;let X=process.execPath||process.argv[0]||"",Z=await Z8("pacman",["-Qo",X],{timeout:5000,useCwd:!1});if(Z.code===0&&Z.stdout)return b(`Detected pacman installation: ${Z.stdout.trim()}`),!0;return!1}),ii1=g1(async()=>{if(N8()!=="linux")return!1;let Q=await He0();if(Q&&!Be0(Q,["debian"]))return!1;let X=process.execPath||process.argv[0]||"",Z=await Z8("dpkg",["-S",X],{timeout:5000,useCwd:!1});if(Z.code===0&&Z.stdout)return b(`Detected deb installation: ${Z.stdout.trim()}`),!0;return!1}),ni1=g1(async()=>{if(N8()!=="linux")return!1;let Q=await He0();if(Q&&!Be0(Q,["fedora","rhel","suse"]))return!1;let X=process.execPath||process.argv[0]||"",Z=await Z8("rpm",["-qf",X],{timeout:5000,useCwd:!1});if(Z.code===0&&Z.stdout)return b(`Detected rpm installation: ${Z.stdout.trim()}`),!0;return!1}),ri1=g1(async()=>{if(N8()!=="linux")return!1;let Q=await He0();if(Q&&!Be0(Q,["alpine"]))return!1;let X=process.execPath||process.argv[0]||"",Z=await Z8("apk",["info","--who-owns",X],{timeout:5000,useCwd:!1});if(Z.code===0&&Z.stdout)return b(`Detected apk installation: ${Z.stdout.trim()}`),!0;return!1}),Fe0=g1(async()=>{if(Ue0())return"homebrew";if(di1())return"winget";if(pi1())return"mise";if(ci1())return"asdf";if(await li1())return"pacman";if(await ri1())return"apk";if(await ii1())return"deb";if(await ni1())return"rpm";return"unknown"})});import{readFile as vQQ,realpath as LQJ}from"fs/promises";import{homedir as Wr}from"os";import{delimiter as fQQ,join as _D,posix as nV0,win32 as rV0}from"path";function SQQ(){let J=process.argv[1]||"",Q=process.execPath||process.argv[0]||"";if(N8()==="windows")J=J.split(rV0.sep).join(nV0.sep),Q=Q.split(rV0.sep).join(nV0.sep);return[J,Q]}async function FC(){return"development"}async function xQQ(){return B1()}function kQQ(){try{if(P3())return process.execPath||"unknown";return process.argv[1]||"unknown"}catch{return"unknown"}}async function hQQ(){let J=Y1(),Q=[],X=_D(Wr(),".glock","local");if(await iV0())Q.push({type:"npm-local",path:X});let Z=["@glock-ai/glock"];if(MACRO.PACKAGE_URL&&MACRO.PACKAGE_URL!=="@glock-ai/glock")Z.push(MACRO.PACKAGE_URL);let Y=await Z8("npm",["-g","config","get","prefix"]);if(Y.code===0&&Y.stdout){let G=Y.stdout.trim(),z=N8()==="windows",W=z?_D(G,"glock"):_D(G,"bin","glock"),H=!1;try{await J.stat(W),H=!0}catch{}if(H){let B=!1;try{if((await LQJ(W)).includes("/Caskroom/"))B=Ue0()}catch{}if(!B)Q.push({type:"npm-global",path:W})}else for(let B of Z){let U=z?_D(G,"node_modules",B):_D(G,"lib","node_modules",B);try{await J.stat(U),Q.push({type:"npm-global-orphan",path:U})}catch{}}}let q=_D(Wr(),".local","bin","glock");try{await J.stat(q),Q.push({type:"native",path:q})}catch{}if(L1().installMethod==="native"){let G=_D(Wr(),".local","share","glock");try{if(await J.stat(G),!Q.some((z)=>z.type==="native"))Q.push({type:"native",path:G})}catch{}}return Q}async function uQQ(J){let Q=[];try{let q=await vQQ(_D(Pz(),"managed-settings.json"),"utf-8"),K=c1(q),G=K&&typeof K==="object"?K.strictPluginOnlyCustomization:void 0;if(G!==void 0&&typeof G!=="boolean")if(!Array.isArray(G))Q.push({issue:`managed-settings.json: strictPluginOnlyCustomization has an invalid value (expected true or an array, got ${typeof G})`,fix:`The field is silently ignored (schema .catch rescues it). Set it to true, or an array of: ${ot.join(", ")}.`});else{let z=G.filter((W)=>typeof W==="string"&&!ot.includes(W));if(z.length>0)Q.push({issue:`managed-settings.json: strictPluginOnlyCustomization has ${z.length} value(s) this client doesn't recognize: ${z.map(String).join(", ")}`,fix:`These are silently ignored (forwards-compat). Known surfaces for this version: ${ot.join(", ")}. Either remove them, or this client is older than the managed-settings intended.`})}}catch{}let X=L1();if(J==="development")return Q;if(J==="native"){let K=(process.env.PATH||"").split(fQQ),G=Wr(),z=_D(G,".local","bin"),W=z;if(N8()==="windows")W=z.split(rV0.sep).join(nV0.sep);if(!K.some((B)=>{let U=B;if(N8()==="windows")U=B.split(rV0.sep).join(nV0.sep);let F=U.replace(/\/+$/,""),_=B.replace(/[/\\]+$/,"");return F===W||_==="~/.local/bin"||_==="$HOME/.local/bin"}))if(N8()==="windows"){let U=z.split(nV0.sep).join(rV0.sep);Q.push({issue:`Native installation exists but ${U} is not in your PATH`,fix:"Add it by opening: System Properties \u2192 Environment Variables \u2192 Edit User PATH \u2192 New \u2192 Add the path above. Then restart your terminal."})}else{let U=rX0(),_=Gr()[U],O=_?_.replace(Wr(),"~"):"your shell config file";Q.push({issue:"Native installation exists but ~/.local/bin is not in your PATH",fix:`Run: echo 'export PATH="$HOME/.local/bin:$PATH"' >> ${O} then open a new terminal or run: source ${O}`})}}if(J==="npm-local"&&X.installMethod!=="local")Q.push({issue:`Running from local installation but config install method is '${X.installMethod}'`,fix:"Consider using native installation: glock install"});if(J==="native"&&X.installMethod!=="native")Q.push({issue:`Running native installation but config install method is '${X.installMethod}'`,fix:"Run glock install to update configuration"});if(J==="npm-global"&&await iV0())Q.push({issue:"Local installation exists but not being used",fix:"Consider using native installation: glock install"});let Z=await ui1(),Y=await GQJ();if(J==="npm-local"){if(!await TW("glock")&&!Y)if(Z)Q.push({issue:"Local installation not accessible",fix:`Alias exists but points to invalid target: ${Z}. Update alias: alias glock="~/.glock/local/glock"`});else Q.push({issue:"Local installation not accessible",fix:'Create alias: alias glock="~/.glock/local/glock"'})}return Q}function gQQ(){if(N8()!=="linux")return[];let J=[],Q=p8.getLinuxGlobPatternWarnings();if(Q.length>0){let X=Q.slice(0,3).join(", "),Z=Q.length-3,Y=Z>0?`${X} (${Z} more)`:X;J.push({issue:"Glob patterns in sandbox permission rules are not fully supported on Linux",fix:`Found ${Q.length} pattern(s): ${Y}. On Linux, glob patterns in Edit/Read rules will be ignored.`})}return J}async function VQJ(){let J=await FC(),Q=typeof MACRO<"u"?"0.1.16":"unknown",X=await xQQ(),Z=kQQ(),Y=await hQQ(),q=await uQQ(J);if(q.push(...gQQ()),J==="native"){let F=Y.filter((O)=>O.type==="npm-global"||O.type==="npm-global-orphan"||O.type==="npm-local"),_=N8()==="windows";for(let O of F)if(O.type==="npm-global"){let L="npm -g uninstall @glock-ai/glock";if(MACRO.PACKAGE_URL&&MACRO.PACKAGE_URL!=="@glock-ai/glock")L+=` && npm -g uninstall ${MACRO.PACKAGE_URL}`;q.push({issue:`Leftover npm global installation at ${O.path}`,fix:`Run: ${L}`})}else if(O.type==="npm-global-orphan")q.push({issue:`Orphaned npm global package at ${O.path}`,fix:_?`Run: rmdir /s /q "${O.path}"`:`Run: rm -rf ${O.path}`});else if(O.type==="npm-local")q.push({issue:`Leftover npm local installation at ${O.path}`,fix:_?`Run: rmdir /s /q "${O.path}"`:`Run: rm -rf ${O.path}`})}let G=L1().installMethod||"not set",z=null;if(J==="npm-global"){if(z=(await gi1()).hasPermissions,!z&&!R00())q.push({issue:"Insufficient permissions for auto-updates",fix:"Do one of: (1) Re-install node without sudo, or (2) Use `glock install` for native installation"})}let W=Uk6(),H={working:W.working??!0,mode:W.mode,systemPath:W.mode==="system"?W.path:null},B=J==="package-manager"?await Fe0():void 0;return{installationType:J,version:Q,installationPath:X,invokedBinary:Z,configInstallMethod:G,autoUpdates:(()=>{let F=R00();return F?`disabled (${Sv0(F)})`:"enabled"})(),hasUpdatePermissions:z,multipleInstallations:Y,warnings:q,packageManager:B,ripgrepStatus:H}}var sX0=I(()=>{uU();zr();m8();Z6();T9();H6();aX0();ai1();k9();mM();V4();M$();eV();Ge0();i1();rA()});import{homedir as mQQ}from"os";import{join as _e0}from"path";function Oe0(J){return{env:J?.env??process.env,home:J?.homedir??process.env.HOME??mQQ()}}function NQJ(J){let{env:Q,home:X}=Oe0(J);return Q.XDG_STATE_HOME??_e0(X,".local","state")}function wQJ(J){let{env:Q,home:X}=Oe0(J);return Q.XDG_CACHE_HOME??_e0(X,".cache")}function AQJ(J){let{env:Q,home:X}=Oe0(J);return Q.XDG_DATA_HOME??_e0(X,".local","share")}function RQJ(J){let{home:Q}=Oe0(J);return _e0(Q,".local","bin")}var MQJ=()=>{};import{createHash as cQQ}from"crypto";import{chmod as dQQ,writeFile as lQQ}from"fs/promises";import{join as si1}from"path";async function iQQ(J="latest"){let Q=Date.now(),{stdout:X,code:Z,stderr:Y}=await r8("npm",["view",`${MACRO.NATIVE_PACKAGE_URL}@${J}`,"version","--prefer-online","--registry",ti1],{timeout:30000,preserveOutputOnError:!0}),q=Date.now()-Q;if(Z!==0){l("jarvis_api_error",{latency_ms:q,source_npm:!0,exit_code:Z});let G=Error(`npm view failed with code ${Z}: ${Y}`);throw H0(G),G}return l("jarvis_api_error",{latency_ms:q,source_npm:!0}),b(`npm view ${MACRO.NATIVE_PACKAGE_URL}@${J} version: ${X}`),X.trim()}async function nQQ(J="latest",Q,X){let Z=Date.now();try{let Y=await y8.get(`${Q}/${J}`,{timeout:30000,responseType:"text",...X}),q=Date.now()-Z;return l("jarvis_api_error",{latency_ms:q}),Y.data.trim()}catch(Y){let q=Date.now()-Z,K=Y instanceof Error?Y.message:String(Y),G;if(y8.isAxiosError(Y)&&Y.response)G=Y.response.status;l("jarvis_api_error",{latency_ms:q,http_status:G,is_timeout:K.includes("timeout")});let z=Error(`Failed to fetch version from ${Q}/${J}: ${K}`);throw H0(z),z}}async function $QJ(J){if(/^v?\d+\.\d+\.\d+(-\S+)?$/.test(J)){let X=J.startsWith("v")?J.slice(1):J;if(/^99\.99\./.test(X))throw Error(`Version ${X} is not available for installation. Use 'stable' or 'latest'.`);return X}let Q=J;if(Q!=="stable"&&Q!=="latest")throw Error(`Invalid channel: ${J}. Use 'stable' or 'latest'`);if(process.env.USER_TYPE==="ant")return iQQ(Q==="stable"?"stable":"latest");return nQQ(Q,DQJ)}async function rQQ(J,Q){let X=Y1();await X.rm(Q,{recursive:!0,force:!0});let Z=Pu(),Y=`${MACRO.NATIVE_PACKAGE_URL}-${Z}`;b(`Fetching integrity hash for ${Y}@${J}`);let{stdout:q,code:K,stderr:G}=await r8("npm",["view",`${Y}@${J}`,"dist.integrity","--registry",ti1],{timeout:30000,preserveOutputOnError:!0});if(K!==0)throw Error(`npm view integrity failed with code ${K}: ${G}`);let z=q.trim();if(!z)throw Error(`Failed to fetch integrity hash for ${Y}@${J}`);b(`Got integrity hash for ${Z}: ${z}`),await X.mkdir(Q);let W={name:"glock-native-installer",version:"0.0.1",dependencies:{[MACRO.NATIVE_PACKAGE_URL]:J}},H={name:"glock-native-installer",version:"0.0.1",lockfileVersion:3,requires:!0,packages:{"":{name:"glock-native-installer",version:"0.0.1",dependencies:{[MACRO.NATIVE_PACKAGE_URL]:J}},[`node_modules/${MACRO.NATIVE_PACKAGE_URL}`]:{version:J,optionalDependencies:{[Y]:J}},[`node_modules/${Y}`]:{version:J,integrity:z}}};n5(si1(Q,"package.json"),l0(W,null,2),{encoding:"utf8",flush:!0}),n5(si1(Q,"package-lock.json"),l0(H,null,2),{encoding:"utf8",flush:!0});let B=await r8("npm",["ci","--prefer-online","--registry",ti1],{timeout:60000,preserveOutputOnError:!0,cwd:Q});if(B.code!==0)throw Error(`npm ci failed with code ${B.code}: ${B.stderr}`);b(`Successfully downloaded and verified ${MACRO.NATIVE_PACKAGE_URL}@${J}`)}function oQQ(){return Number(process.env.GLOCK_STALL_TIMEOUT_MS_FOR_TESTING)||aQQ}async function sQQ(J,Q,X,Z={}){let Y;for(let q=1;q<=oi1;q++){let K=new AbortController,G,z=()=>{if(G)clearTimeout(G),G=void 0},W=()=>{z(),G=setTimeout((H)=>H.abort(),oQQ(),K)};try{W();let H=await y8.get(J,{timeout:300000,responseType:"arraybuffer",signal:K.signal,onDownloadProgress:()=>{W()},...Z});z();let B=cQQ("sha256");B.update(H.data);let U=B.digest("hex");if(U!==Q)throw Error(`Checksum mismatch: expected ${Q}, got ${U}`);await lQQ(X,Buffer.from(H.data)),await dQQ(X,493);return}catch(H){z();let B=y8.isCancel(H);if(B)Y=new jQJ;else Y=R8(H);if(B&&q<oi1){b(`Download stalled on attempt ${q}/${oi1}, retrying...`),await FJ(1000);continue}throw Y}}throw Y??Error("Download failed after all retries")}async function tQQ(J,Q,X,Z){let Y=Y1();await Y.rm(Q,{recursive:!0,force:!0});let q=Pu(),K=Date.now();l("jarvis_api_error",{});let G;try{G=(await y8.get(`${X}/${J}/manifest.json`,{timeout:1e4,responseType:"json",...Z})).data}catch(F){let _=Date.now()-K,O=F instanceof Error?F.message:String(F),L;if(y8.isAxiosError(F)&&F.response)L=F.response.status;throw l("jarvis_api_error",{latency_ms:_,http_status:L,is_timeout:O.includes("timeout")}),H0(Error(`Failed to fetch manifest from ${X}/${J}/manifest.json: ${O}`)),F}let z=G.platforms[q];if(!z)throw l("jarvis_api_error",{}),Error(`Platform ${q} not found in manifest for version ${J}`);let W=z.checksum,H=Le0(q),B=`${X}/${J}/${q}/${H}`;await Y.mkdir(Q);let U=si1(Q,H);try{await sQQ(B,W,U,Z||{});let F=Date.now()-K;l("jarvis_api_error",{latency_ms:F})}catch(F){let _=Date.now()-K,O=F instanceof Error?F.message:String(F),L;if(y8.isAxiosError(F)&&F.response)L=F.response.status;throw l("jarvis_api_error",{latency_ms:_,http_status:L,is_timeout:O.includes("timeout"),is_checksum_mismatch:O.includes("Checksum mismatch")}),H0(Error(`Failed to download binary from ${B}: ${O}`)),F}}async function IQJ(J,Q){if(process.env.USER_TYPE==="ant")return await rQQ(J,Q),"npm";return await tQQ(J,Q,DQJ),"binary"}var DQJ="https://storage.googleapis.com/glock-dist-86c565f3-f756-42ad-8dfa-d59b1c096819/glock-releases",ti1="https://artifactory.infra.ant.dev/artifactory/api/npm/npm-all/",aQQ=60000,oi1=3,jQJ;var yQJ=I(()=>{JX();D1();Z1();T1();T9();H6();M1();i1();ei1();jQJ=class jQJ extends Error{constructor(){super("Download stalled: no data received for 60 seconds");this.name="StallTimeoutError"}}});import{basename as eQQ,join as JXQ}from"path";function eX0(){return Y8("jarvis_api_error",!1)}function Jn1(J){if(J<=1)return!1;try{return process.kill(J,0),!0}catch{return!1}}function XXQ(J,Q){if(!Jn1(J))return!1;if(J===process.pid)return!0;try{let X=S46(J);if(!X)return!0;let Z=X.toLowerCase(),Y=Q.toLowerCase();return Z.includes("glock")||Z.includes(Y)}catch{return!0}}function tX0(J){let Q=Y1();try{let X=Q.readFileSync(J,{encoding:"utf8"});if(!X||X.trim()==="")return null;let Z=c1(X);if(typeof Z.pid!=="number"||!Z.version||!Z.execPath)return null;return Z}catch{return null}}function aV0(J){let Q=tX0(J);if(!Q)return!1;let{pid:X,execPath:Z}=Q;if(!Jn1(X))return!1;if(!XXQ(X,Z))return b(`Lock PID ${X} is running but does not appear to be Glock - treating as stale`),!1;let Y=Y1();try{let q=Y.statSync(J);if(Date.now()-q.mtimeMs>QXQ){if(!Jn1(X))return!1}}catch{}return!0}function ZXQ(J,Q){let X=Y1(),Z=`${J}.tmp.${process.pid}.${Date.now()}`;try{n5(Z,l0(Q,null,2),{encoding:"utf8",flush:!0}),X.renameSync(Z,J)}catch(Y){try{X.unlinkSync(Z)}catch{}throw Y}}async function bQJ(J,Q){let X=Y1(),Z=eQQ(J);if(aV0(Q)){let q=tX0(Q);return b(`Cannot acquire lock for ${Z} - held by PID ${q?.pid}`),null}let Y={pid:process.pid,version:Z,execPath:process.execPath,acquiredAt:Date.now()};try{if(ZXQ(Q,Y),tX0(Q)?.pid!==process.pid)return null;return b(`Acquired PID lock for ${Z} (PID ${process.pid})`),()=>{try{if(tX0(Q)?.pid===process.pid)X.unlinkSync(Q),b(`Released PID lock for ${Z}`)}catch(K){b(`Failed to release lock for ${Z}: ${K}`)}}}catch(q){return b(`Failed to acquire lock for ${Z}: ${q}`),null}}async function PQJ(J,Q){let X=await bQJ(J,Q);if(!X)return!1;let Z=()=>{try{X()}catch{}};return process.on("exit",Z),process.on("SIGINT",Z),process.on("SIGTERM",Z),!0}async function EQJ(J,Q,X){let Z=await bQJ(J,Q);if(!Z)return!1;try{return await X(),!0}finally{Z()}}function TQJ(J){let Q=Y1(),X=0;try{let Z=Q.readdirStringSync(J).filter((Y)=>Y.endsWith(".lock"));for(let Y of Z){let q=JXQ(J,Y);try{if(Q.lstatSync(q).isDirectory())Q.rmSync(q,{recursive:!0,force:!0}),X++,b(`Cleaned up legacy directory lock: ${Y}`);else if(!aV0(q))Q.unlinkSync(q),X++,b(`Cleaned up stale lock: ${Y}`)}catch{}}}catch(Z){if(v8(Z))return 0;H0(R8(Z))}return X}var QXQ=7200000;var CQJ=I(()=>{Z1();T1();H6();t10();M1();i1()});import{constants as YXQ}from"fs";import{access as fQJ,chmod as qXQ,copyFile as Xn1,lstat as KXQ,mkdir as Br,readdir as Ne0,readlink as Zn1,realpath as GXQ,rename as we0,rm as Yn1,rmdir as zXQ,stat as OD,symlink as WXQ,unlink as _C,writeFile as HXQ}from"fs/promises";import{homedir as BXQ}from"os";import{basename as UXQ,delimiter as FXQ,dirname as OC,join as uL,resolve as LC}from"path";function Pu(){let J=k8.platform,Q=process.arch==="x64"?"x64":process.arch==="arm64"?"arm64":null;if(!Q){let X=Error(`Unsupported architecture: ${process.arch}`);throw b(`Native installer does not support architecture: ${process.arch}`,{level:"error"}),X}if(J==="linux"&&kR.isMuslEnvironment())return`linux-${Q}-musl`;return`${J}-${Q}`}function Le0(J){return J.startsWith("win32")?"glock.exe":"glock"}function dI(){let J=Pu(),Q=Le0(J);return{versions:uL(AQJ(),"glock","versions"),staging:uL(wQJ(),"glock","staging"),locks:uL(NQJ(),"glock","locks"),executable:uL(RQJ(),Q)}}async function Hr(J){try{let Q=await OD(J);if(!Q.isFile()||Q.size===0)return!1;return await fQJ(J,YXQ.X_OK),!0}catch{return!1}}async function Kn1(J){let Q=dI(),X=[Q.versions,Q.staging,Q.locks];await Promise.all(X.map((q)=>Br(q,{recursive:!0})));let Z=OC(Q.executable);await Br(Z,{recursive:!0});let Y=uL(Q.versions,J);try{await OD(Y)}catch{await HXQ(Y,"",{encoding:"utf8"})}return{stagingPath:uL(Q.staging,J),installPath:Y}}async function SQJ(J,Q,X=0){let Z=dI(),Y=sV0(Z,J);if(await Br(Z.locks,{recursive:!0}),eX0()){let K=0,G=X+1,z=X>0?1000:100,W=X>0?5000:500;while(K<G){if(await EQJ(J,Y,async()=>{try{await Q()}catch(B){throw H0(B),B}}))return l("jarvis_api_error",{is_pid_based:!0,is_lifetime_lock:!1,attempts:K+1}),!0;if(K++,K<G){let B=Math.min(z*Math.pow(2,K-1),W);await FJ(B)}}return l("jarvis_api_error",{is_pid_based:!0,is_lifetime_lock:!1,attempts:G}),Ae0(J,Error("Lock held by another process")),!1}let q=null;try{try{q=await Zq(J,{stale:qn1,retries:{retries:X,minTimeout:X>0?1000:100,maxTimeout:X>0?5000:500},lockfilePath:Y,onCompromised:(K)=>{b(`NON-FATAL: Version lock was compromised during operation: ${K.message}`,{level:"info"})}})}catch(K){return l("jarvis_api_error",{is_pid_based:!1,is_lifetime_lock:!1}),Ae0(J,K),!1}try{return await Q(),l("jarvis_api_error",{is_pid_based:!1,is_lifetime_lock:!1}),!0}catch(K){throw H0(K),K}}finally{if(q)await q()}}async function xQJ(J,Q){await Br(OC(Q),{recursive:!0});let X=`${Q}.tmp.${process.pid}.${Date.now()}`;try{await Xn1(J,X),await qXQ(X,493),await we0(X,Q),b(`Atomically installed binary to ${Q}`)}catch(Z){try{await _C(X)}catch{}throw Z}}async function _XQ(J,Q){try{let X=uL(J,"node_modules","@anthropic-ai"),Y=(await Ne0(X)).find((K)=>K.startsWith("glock-cli-native-"));if(!Y)throw l("jarvis_api_error",{stage_find_package:!0,error_package_not_found:!0}),Error("Could not find platform-specific native package");let q=uL(X,Y,"cli");try{await OD(q)}catch{throw l("jarvis_api_error",{stage_binary_exists:!0,error_binary_not_found:!0}),Error("Native binary not found in staged package")}await xQJ(q,Q),await Yn1(J,{recursive:!0,force:!0}),l("jarvis_api_error",{})}catch(X){let Z=Q1(X);if(!Z.includes("Could not find platform-specific")&&!Z.includes("Native binary not found"))l("jarvis_api_error",{stage_atomic_move:!0,error_move_failed:!0});throw H0(R8(X)),X}}async function OXQ(J,Q){try{let X=Pu(),Z=Le0(X),Y=uL(J,Z);try{await OD(Y)}catch{throw l("jarvis_api_error",{stage_binary_exists:!0,error_binary_not_found:!0}),Error("Staged binary not found")}await xQJ(Y,Q),await Yn1(J,{recursive:!0,force:!0}),l("jarvis_api_error",{})}catch(X){if(!Q1(X).includes("Staged binary not found"))l("jarvis_api_error",{stage_atomic_move:!0,error_move_failed:!0});throw H0(R8(X)),X}}async function LXQ(J,Q,X){if(X==="npm")await _XQ(J,Q);else await OXQ(J,Q)}async function VXQ(J,Q){let{stagingPath:X,installPath:Z}=await Kn1(J),{executable:Y}=dI(),q=X,K=!await kQJ(J)||Q;if(K){b(Q?`Force reinstalling native installer version ${J}`:`Downloading native installer version ${J}`);let G=await IQJ(J,q);await LXQ(q,Z,G)}else b(`Version ${J} already installed, updating symlink`);if(await wXQ(Y),await AXQ(Y,Z),!await Hr(Y)){let G=!1;try{await OD(Z),G=!0}catch{}throw Error(`Failed to create executable at ${Y}. Source file exists: ${G}. Check write permissions to ${Y}.`)}return K}async function kQJ(J){let{installPath:Q}=await Kn1(J);return Hr(Q)}async function NXQ(J,Q=!1){let X=Date.now(),Z=await $QJ(J),{executable:Y}=dI();if(b(`Checking for native installer update to version ${Z}`),!Q){let W=await bu();if(W&&DF(Z,W)){if(b(`Native installer: maxVersion ${W} is set, capping update from ${Z} to ${W}`),W2("0.1.16",W))return b(`Native installer: current version 0.1.16 is already at or above maxVersion ${W}, skipping update`),l("jarvis_api_error",{latency_ms:Date.now()-X,max_version:W,available_version:Z}),{success:!0,latestVersion:Z};Z=W}}if(!Q&&Z==="0.1.16"&&await kQJ(Z)&&await Hr(Y))return b(`Found ${Z} at ${Y}, skipping install`),l("jarvis_api_error",{latency_ms:Date.now()-X,was_new_install:!1,was_force_reinstall:!1,was_already_running:!0}),{success:!0,latestVersion:Z};if(!Q&&oX0(Z))return l("jarvis_api_error",{latency_ms:Date.now()-X,target_version:Z}),{success:!0,latestVersion:Z};let q=!1,K,{installPath:G}=await Kn1(Z);if(Q)await MXQ(G);let z=await SQJ(G,async()=>{q=await VXQ(Z,Q)},3);if(K=Date.now()-X,!z){let W=dI(),H;if(eX0()){let B=sV0(W,G);if(aV0(B))H=tX0(B)?.pid}return l("jarvis_api_error",{latency_ms:K,lock_holder_pid:H}),{success:!1,latestVersion:Z,lockFailed:!0,lockHolderPid:H}}return l("jarvis_api_error",{latency_ms:K,was_new_install:q,was_force_reinstall:Q}),b(`Successfully updated to version ${Z}`),{success:!0,latestVersion:Z}}async function wXQ(J){try{await zXQ(J),b(`Removed empty directory at ${J}`)}catch(Q){let X=c8(Q);if(X!=="ENOTDIR"&&X!=="ENOENT"&&X!=="ENOTEMPTY")b(`Could not remove directory at ${J}: ${Q}`)}}async function AXQ(J,Q){if(Pu().startsWith("win32"))try{let K=OC(J);await Br(K,{recursive:!0});let G;try{G=await OD(J)}catch{}if(G){try{let W=await OD(Q);if(G.size===W.size)return!1}catch{}let z=`${J}.old.${Date.now()}`;await we0(J,z);try{await Xn1(Q,J);try{await _C(z)}catch{}}catch(W){try{await we0(z,J)}catch(H){let B=Error(`Failed to restore old executable: ${H}`,{cause:W});throw H0(B),B}throw W}}else try{await Xn1(Q,J)}catch(z){if(v8(z))throw Error(`Source file does not exist: ${Q}`);throw z}return!0}catch(K){return H0(Error(`Failed to copy executable from ${Q} to ${J}: ${K}`)),!1}let Y=OC(J);try{await Br(Y,{recursive:!0}),b(`Created directory ${Y} for symlink`)}catch(K){return H0(Error(`Failed to create directory ${Y}: ${K}`)),!1}try{let K=!1;try{await OD(J),K=!0}catch{}if(K){try{let G=await Zn1(J),z=LC(OC(J),G),W=LC(Q);if(z===W)return!1}catch{}await _C(J)}}catch(K){H0(Error(`Failed to check/remove existing symlink: ${K}`))}let q=`${J}.tmp.${process.pid}.${Date.now()}`;try{return await WXQ(Q,q),await we0(q,J),b(`Atomically updated symlink ${J} -> ${Q}`),!0}catch(K){try{await _C(q)}catch{}return H0(Error(`Failed to create symlink from ${J} to ${Q}: ${K}`)),!1}}async function oV0(J=!1){let Q=await FC();if(Q==="development")return[];let X=L1();if(!(J||Q==="native"||X.installMethod==="native"))return[];let Y=dI(),q=[],K=OC(Y.executable),G=LC(K),W=Pu().startsWith("win32");try{await fQJ(K)}catch{q.push({message:`installMethod is native, but directory ${K} does not exist`,userActionRequired:!0,type:"error"})}if(W){if(!await Hr(Y.executable))q.push({message:`installMethod is native, but glock command is missing or invalid at ${Y.executable}`,userActionRequired:!0,type:"error"})}else try{let B=await Zn1(Y.executable),U=LC(OC(Y.executable),B);if(!await Hr(U))q.push({message:`Glock symlink points to missing or invalid binary: ${B}`,userActionRequired:!0,type:"error"})}catch(B){if(v8(B))q.push({message:`installMethod is native, but glock command not found at ${Y.executable}`,userActionRequired:!0,type:"error"});else if(!await Hr(Y.executable))q.push({message:`${Y.executable} exists but is not a valid Glock binary`,userActionRequired:!0,type:"error"})}if(!(process.env.PATH||"").split(FXQ).some((B)=>{try{let U=LC(B);if(W)return U.toLowerCase()===G.toLowerCase();return U===G}catch{return!1}}))if(W){let B=K.replace(/\//g,"\\");q.push({message:`Native installation exists but ${B} is not in your PATH. Add it by opening: System Properties \u2192 Environment Variables \u2192 Edit User PATH \u2192 New \u2192 Add the path above. Then restart your terminal.`,userActionRequired:!0,type:"path"})}else{let B=rX0(),F=Gr()[B],_=F?F.replace(BXQ(),"~"):"your shell config file";q.push({message:`Native installation exists but ~/.local/bin is not in your PATH. Run:
|
|
5086
|
+
`),"install_failed";let{hasPermissions:Q}=await gi1();if(!Q)return"no_permissions";let X=J?`${MACRO.PACKAGE_URL}@${J}`:MACRO.PACKAGE_URL,Z=k8.isRunningWithBun()?"bun":"npm",Y=await r8(Z,["install","-g",X],{cwd:ze0()});if(Y.code!==0){let q=new We0(`Failed to install new version of glock: ${Y.stdout} ${Y.stderr}`);return H0(q),"install_failed"}return q8((q)=>({...q,installMethod:"global"})),"success"}finally{await PQQ()}}async function TQQ(){let J=Gr();for(let[,Q]of Object.entries(J))try{let X=await Ke0(Q);if(!X)continue;let{filtered:Z,hadAlias:Y}=ki1(X);if(Y)await hi1(Q,Z),b(`Removed glock alias from ${Q}`)}catch(X){b(`Failed to remove alias from ${Q}: ${X}`,{level:"error"})}}var yQQ="https://storage.googleapis.com/glock-dist-86c565f3-f756-42ad-8dfa-d59b1c096819/glock-releases",We0,WQJ=300000;var zr=I(()=>{JX();D1();m8();Z1();WZ();t1();T1();T9();H6();E5();M1();g8();Ge0();i1();We0=class We0 extends Iq0{}});import{readFile as CQQ}from"fs/promises";function Be0(J,Q){return Q.includes(J.id)||J.idLike.some((X)=>Q.includes(X))}function pi1(){let J=process.execPath||process.argv[0]||"";if(/[/\\]mise[/\\]installs[/\\]/i.test(J))return b(`Detected mise installation: ${J}`),!0;return!1}function ci1(){let J=process.execPath||process.argv[0]||"";if(/[/\\]\.?asdf[/\\]installs[/\\]/i.test(J))return b(`Detected asdf installation: ${J}`),!0;return!1}function Ue0(){let J=N8();if(J!=="macos"&&J!=="linux"&&J!=="wsl")return!1;let Q=process.execPath||process.argv[0]||"";if(Q.includes("/Caskroom/"))return b(`Detected Homebrew cask installation: ${Q}`),!0;return!1}function di1(){if(N8()!=="windows")return!1;let Q=process.execPath||process.argv[0]||"",X=[/Microsoft[/\\]WinGet[/\\]Packages/i,/Microsoft[/\\]WinGet[/\\]Links/i];for(let Z of X)if(Z.test(Q))return b(`Detected winget installation: ${Q}`),!0;return!1}var He0,li1,ii1,ni1,ri1,Fe0;var ai1=I(()=>{IJ();Z1();T9();k9();He0=g1(async()=>{try{let J=await CQQ("/etc/os-release","utf8"),Q=J.match(/^ID=["']?(\S+?)["']?\s*$/m),X=J.match(/^ID_LIKE=["']?(.+?)["']?\s*$/m);return{id:Q?.[1]??"",idLike:X?.[1]?.split(" ")??[]}}catch{return null}});li1=g1(async()=>{if(N8()!=="linux")return!1;let Q=await He0();if(Q&&!Be0(Q,["arch"]))return!1;let X=process.execPath||process.argv[0]||"",Z=await Z8("pacman",["-Qo",X],{timeout:5000,useCwd:!1});if(Z.code===0&&Z.stdout)return b(`Detected pacman installation: ${Z.stdout.trim()}`),!0;return!1}),ii1=g1(async()=>{if(N8()!=="linux")return!1;let Q=await He0();if(Q&&!Be0(Q,["debian"]))return!1;let X=process.execPath||process.argv[0]||"",Z=await Z8("dpkg",["-S",X],{timeout:5000,useCwd:!1});if(Z.code===0&&Z.stdout)return b(`Detected deb installation: ${Z.stdout.trim()}`),!0;return!1}),ni1=g1(async()=>{if(N8()!=="linux")return!1;let Q=await He0();if(Q&&!Be0(Q,["fedora","rhel","suse"]))return!1;let X=process.execPath||process.argv[0]||"",Z=await Z8("rpm",["-qf",X],{timeout:5000,useCwd:!1});if(Z.code===0&&Z.stdout)return b(`Detected rpm installation: ${Z.stdout.trim()}`),!0;return!1}),ri1=g1(async()=>{if(N8()!=="linux")return!1;let Q=await He0();if(Q&&!Be0(Q,["alpine"]))return!1;let X=process.execPath||process.argv[0]||"",Z=await Z8("apk",["info","--who-owns",X],{timeout:5000,useCwd:!1});if(Z.code===0&&Z.stdout)return b(`Detected apk installation: ${Z.stdout.trim()}`),!0;return!1}),Fe0=g1(async()=>{if(Ue0())return"homebrew";if(di1())return"winget";if(pi1())return"mise";if(ci1())return"asdf";if(await li1())return"pacman";if(await ri1())return"apk";if(await ii1())return"deb";if(await ni1())return"rpm";return"unknown"})});import{readFile as vQQ,realpath as LQJ}from"fs/promises";import{homedir as Wr}from"os";import{delimiter as fQQ,join as _D,posix as nV0,win32 as rV0}from"path";function SQQ(){let J=process.argv[1]||"",Q=process.execPath||process.argv[0]||"";if(N8()==="windows")J=J.split(rV0.sep).join(nV0.sep),Q=Q.split(rV0.sep).join(nV0.sep);return[J,Q]}async function FC(){return"development"}async function xQQ(){return B1()}function kQQ(){try{if(P3())return process.execPath||"unknown";return process.argv[1]||"unknown"}catch{return"unknown"}}async function hQQ(){let J=Y1(),Q=[],X=_D(Wr(),".glock","local");if(await iV0())Q.push({type:"npm-local",path:X});let Z=["@glock-ai/glock"];if(MACRO.PACKAGE_URL&&MACRO.PACKAGE_URL!=="@glock-ai/glock")Z.push(MACRO.PACKAGE_URL);let Y=await Z8("npm",["-g","config","get","prefix"]);if(Y.code===0&&Y.stdout){let G=Y.stdout.trim(),z=N8()==="windows",W=z?_D(G,"glock"):_D(G,"bin","glock"),H=!1;try{await J.stat(W),H=!0}catch{}if(H){let B=!1;try{if((await LQJ(W)).includes("/Caskroom/"))B=Ue0()}catch{}if(!B)Q.push({type:"npm-global",path:W})}else for(let B of Z){let U=z?_D(G,"node_modules",B):_D(G,"lib","node_modules",B);try{await J.stat(U),Q.push({type:"npm-global-orphan",path:U})}catch{}}}let q=_D(Wr(),".local","bin","glock");try{await J.stat(q),Q.push({type:"native",path:q})}catch{}if(L1().installMethod==="native"){let G=_D(Wr(),".local","share","glock");try{if(await J.stat(G),!Q.some((z)=>z.type==="native"))Q.push({type:"native",path:G})}catch{}}return Q}async function uQQ(J){let Q=[];try{let q=await vQQ(_D(Pz(),"managed-settings.json"),"utf-8"),K=c1(q),G=K&&typeof K==="object"?K.strictPluginOnlyCustomization:void 0;if(G!==void 0&&typeof G!=="boolean")if(!Array.isArray(G))Q.push({issue:`managed-settings.json: strictPluginOnlyCustomization has an invalid value (expected true or an array, got ${typeof G})`,fix:`The field is silently ignored (schema .catch rescues it). Set it to true, or an array of: ${ot.join(", ")}.`});else{let z=G.filter((W)=>typeof W==="string"&&!ot.includes(W));if(z.length>0)Q.push({issue:`managed-settings.json: strictPluginOnlyCustomization has ${z.length} value(s) this client doesn't recognize: ${z.map(String).join(", ")}`,fix:`These are silently ignored (forwards-compat). Known surfaces for this version: ${ot.join(", ")}. Either remove them, or this client is older than the managed-settings intended.`})}}catch{}let X=L1();if(J==="development")return Q;if(J==="native"){let K=(process.env.PATH||"").split(fQQ),G=Wr(),z=_D(G,".local","bin"),W=z;if(N8()==="windows")W=z.split(rV0.sep).join(nV0.sep);if(!K.some((B)=>{let U=B;if(N8()==="windows")U=B.split(rV0.sep).join(nV0.sep);let F=U.replace(/\/+$/,""),_=B.replace(/[/\\]+$/,"");return F===W||_==="~/.local/bin"||_==="$HOME/.local/bin"}))if(N8()==="windows"){let U=z.split(nV0.sep).join(rV0.sep);Q.push({issue:`Native installation exists but ${U} is not in your PATH`,fix:"Add it by opening: System Properties \u2192 Environment Variables \u2192 Edit User PATH \u2192 New \u2192 Add the path above. Then restart your terminal."})}else{let U=rX0(),_=Gr()[U],O=_?_.replace(Wr(),"~"):"your shell config file";Q.push({issue:"Native installation exists but ~/.local/bin is not in your PATH",fix:`Run: echo 'export PATH="$HOME/.local/bin:$PATH"' >> ${O} then open a new terminal or run: source ${O}`})}}if(J==="npm-local"&&X.installMethod!=="local")Q.push({issue:`Running from local installation but config install method is '${X.installMethod}'`,fix:"Consider using native installation: glock install"});if(J==="native"&&X.installMethod!=="native")Q.push({issue:`Running native installation but config install method is '${X.installMethod}'`,fix:"Run glock install to update configuration"});if(J==="npm-global"&&await iV0())Q.push({issue:"Local installation exists but not being used",fix:"Consider using native installation: glock install"});let Z=await ui1(),Y=await GQJ();if(J==="npm-local"){if(!await TW("glock")&&!Y)if(Z)Q.push({issue:"Local installation not accessible",fix:`Alias exists but points to invalid target: ${Z}. Update alias: alias glock="~/.glock/local/glock"`});else Q.push({issue:"Local installation not accessible",fix:'Create alias: alias glock="~/.glock/local/glock"'})}return Q}function gQQ(){if(N8()!=="linux")return[];let J=[],Q=p8.getLinuxGlobPatternWarnings();if(Q.length>0){let X=Q.slice(0,3).join(", "),Z=Q.length-3,Y=Z>0?`${X} (${Z} more)`:X;J.push({issue:"Glob patterns in sandbox permission rules are not fully supported on Linux",fix:`Found ${Q.length} pattern(s): ${Y}. On Linux, glob patterns in Edit/Read rules will be ignored.`})}return J}async function VQJ(){let J=await FC(),Q=typeof MACRO<"u"?"0.1.17":"unknown",X=await xQQ(),Z=kQQ(),Y=await hQQ(),q=await uQQ(J);if(q.push(...gQQ()),J==="native"){let F=Y.filter((O)=>O.type==="npm-global"||O.type==="npm-global-orphan"||O.type==="npm-local"),_=N8()==="windows";for(let O of F)if(O.type==="npm-global"){let L="npm -g uninstall @glock-ai/glock";if(MACRO.PACKAGE_URL&&MACRO.PACKAGE_URL!=="@glock-ai/glock")L+=` && npm -g uninstall ${MACRO.PACKAGE_URL}`;q.push({issue:`Leftover npm global installation at ${O.path}`,fix:`Run: ${L}`})}else if(O.type==="npm-global-orphan")q.push({issue:`Orphaned npm global package at ${O.path}`,fix:_?`Run: rmdir /s /q "${O.path}"`:`Run: rm -rf ${O.path}`});else if(O.type==="npm-local")q.push({issue:`Leftover npm local installation at ${O.path}`,fix:_?`Run: rmdir /s /q "${O.path}"`:`Run: rm -rf ${O.path}`})}let G=L1().installMethod||"not set",z=null;if(J==="npm-global"){if(z=(await gi1()).hasPermissions,!z&&!R00())q.push({issue:"Insufficient permissions for auto-updates",fix:"Do one of: (1) Re-install node without sudo, or (2) Use `glock install` for native installation"})}let W=Uk6(),H={working:W.working??!0,mode:W.mode,systemPath:W.mode==="system"?W.path:null},B=J==="package-manager"?await Fe0():void 0;return{installationType:J,version:Q,installationPath:X,invokedBinary:Z,configInstallMethod:G,autoUpdates:(()=>{let F=R00();return F?`disabled (${Sv0(F)})`:"enabled"})(),hasUpdatePermissions:z,multipleInstallations:Y,warnings:q,packageManager:B,ripgrepStatus:H}}var sX0=I(()=>{uU();zr();m8();Z6();T9();H6();aX0();ai1();k9();mM();V4();M$();eV();Ge0();i1();rA()});import{homedir as mQQ}from"os";import{join as _e0}from"path";function Oe0(J){return{env:J?.env??process.env,home:J?.homedir??process.env.HOME??mQQ()}}function NQJ(J){let{env:Q,home:X}=Oe0(J);return Q.XDG_STATE_HOME??_e0(X,".local","state")}function wQJ(J){let{env:Q,home:X}=Oe0(J);return Q.XDG_CACHE_HOME??_e0(X,".cache")}function AQJ(J){let{env:Q,home:X}=Oe0(J);return Q.XDG_DATA_HOME??_e0(X,".local","share")}function RQJ(J){let{home:Q}=Oe0(J);return _e0(Q,".local","bin")}var MQJ=()=>{};import{createHash as cQQ}from"crypto";import{chmod as dQQ,writeFile as lQQ}from"fs/promises";import{join as si1}from"path";async function iQQ(J="latest"){let Q=Date.now(),{stdout:X,code:Z,stderr:Y}=await r8("npm",["view",`${MACRO.NATIVE_PACKAGE_URL}@${J}`,"version","--prefer-online","--registry",ti1],{timeout:30000,preserveOutputOnError:!0}),q=Date.now()-Q;if(Z!==0){l("jarvis_api_error",{latency_ms:q,source_npm:!0,exit_code:Z});let G=Error(`npm view failed with code ${Z}: ${Y}`);throw H0(G),G}return l("jarvis_api_error",{latency_ms:q,source_npm:!0}),b(`npm view ${MACRO.NATIVE_PACKAGE_URL}@${J} version: ${X}`),X.trim()}async function nQQ(J="latest",Q,X){let Z=Date.now();try{let Y=await y8.get(`${Q}/${J}`,{timeout:30000,responseType:"text",...X}),q=Date.now()-Z;return l("jarvis_api_error",{latency_ms:q}),Y.data.trim()}catch(Y){let q=Date.now()-Z,K=Y instanceof Error?Y.message:String(Y),G;if(y8.isAxiosError(Y)&&Y.response)G=Y.response.status;l("jarvis_api_error",{latency_ms:q,http_status:G,is_timeout:K.includes("timeout")});let z=Error(`Failed to fetch version from ${Q}/${J}: ${K}`);throw H0(z),z}}async function $QJ(J){if(/^v?\d+\.\d+\.\d+(-\S+)?$/.test(J)){let X=J.startsWith("v")?J.slice(1):J;if(/^99\.99\./.test(X))throw Error(`Version ${X} is not available for installation. Use 'stable' or 'latest'.`);return X}let Q=J;if(Q!=="stable"&&Q!=="latest")throw Error(`Invalid channel: ${J}. Use 'stable' or 'latest'`);if(process.env.USER_TYPE==="ant")return iQQ(Q==="stable"?"stable":"latest");return nQQ(Q,DQJ)}async function rQQ(J,Q){let X=Y1();await X.rm(Q,{recursive:!0,force:!0});let Z=Pu(),Y=`${MACRO.NATIVE_PACKAGE_URL}-${Z}`;b(`Fetching integrity hash for ${Y}@${J}`);let{stdout:q,code:K,stderr:G}=await r8("npm",["view",`${Y}@${J}`,"dist.integrity","--registry",ti1],{timeout:30000,preserveOutputOnError:!0});if(K!==0)throw Error(`npm view integrity failed with code ${K}: ${G}`);let z=q.trim();if(!z)throw Error(`Failed to fetch integrity hash for ${Y}@${J}`);b(`Got integrity hash for ${Z}: ${z}`),await X.mkdir(Q);let W={name:"glock-native-installer",version:"0.0.1",dependencies:{[MACRO.NATIVE_PACKAGE_URL]:J}},H={name:"glock-native-installer",version:"0.0.1",lockfileVersion:3,requires:!0,packages:{"":{name:"glock-native-installer",version:"0.0.1",dependencies:{[MACRO.NATIVE_PACKAGE_URL]:J}},[`node_modules/${MACRO.NATIVE_PACKAGE_URL}`]:{version:J,optionalDependencies:{[Y]:J}},[`node_modules/${Y}`]:{version:J,integrity:z}}};n5(si1(Q,"package.json"),l0(W,null,2),{encoding:"utf8",flush:!0}),n5(si1(Q,"package-lock.json"),l0(H,null,2),{encoding:"utf8",flush:!0});let B=await r8("npm",["ci","--prefer-online","--registry",ti1],{timeout:60000,preserveOutputOnError:!0,cwd:Q});if(B.code!==0)throw Error(`npm ci failed with code ${B.code}: ${B.stderr}`);b(`Successfully downloaded and verified ${MACRO.NATIVE_PACKAGE_URL}@${J}`)}function oQQ(){return Number(process.env.GLOCK_STALL_TIMEOUT_MS_FOR_TESTING)||aQQ}async function sQQ(J,Q,X,Z={}){let Y;for(let q=1;q<=oi1;q++){let K=new AbortController,G,z=()=>{if(G)clearTimeout(G),G=void 0},W=()=>{z(),G=setTimeout((H)=>H.abort(),oQQ(),K)};try{W();let H=await y8.get(J,{timeout:300000,responseType:"arraybuffer",signal:K.signal,onDownloadProgress:()=>{W()},...Z});z();let B=cQQ("sha256");B.update(H.data);let U=B.digest("hex");if(U!==Q)throw Error(`Checksum mismatch: expected ${Q}, got ${U}`);await lQQ(X,Buffer.from(H.data)),await dQQ(X,493);return}catch(H){z();let B=y8.isCancel(H);if(B)Y=new jQJ;else Y=R8(H);if(B&&q<oi1){b(`Download stalled on attempt ${q}/${oi1}, retrying...`),await FJ(1000);continue}throw Y}}throw Y??Error("Download failed after all retries")}async function tQQ(J,Q,X,Z){let Y=Y1();await Y.rm(Q,{recursive:!0,force:!0});let q=Pu(),K=Date.now();l("jarvis_api_error",{});let G;try{G=(await y8.get(`${X}/${J}/manifest.json`,{timeout:1e4,responseType:"json",...Z})).data}catch(F){let _=Date.now()-K,O=F instanceof Error?F.message:String(F),L;if(y8.isAxiosError(F)&&F.response)L=F.response.status;throw l("jarvis_api_error",{latency_ms:_,http_status:L,is_timeout:O.includes("timeout")}),H0(Error(`Failed to fetch manifest from ${X}/${J}/manifest.json: ${O}`)),F}let z=G.platforms[q];if(!z)throw l("jarvis_api_error",{}),Error(`Platform ${q} not found in manifest for version ${J}`);let W=z.checksum,H=Le0(q),B=`${X}/${J}/${q}/${H}`;await Y.mkdir(Q);let U=si1(Q,H);try{await sQQ(B,W,U,Z||{});let F=Date.now()-K;l("jarvis_api_error",{latency_ms:F})}catch(F){let _=Date.now()-K,O=F instanceof Error?F.message:String(F),L;if(y8.isAxiosError(F)&&F.response)L=F.response.status;throw l("jarvis_api_error",{latency_ms:_,http_status:L,is_timeout:O.includes("timeout"),is_checksum_mismatch:O.includes("Checksum mismatch")}),H0(Error(`Failed to download binary from ${B}: ${O}`)),F}}async function IQJ(J,Q){if(process.env.USER_TYPE==="ant")return await rQQ(J,Q),"npm";return await tQQ(J,Q,DQJ),"binary"}var DQJ="https://storage.googleapis.com/glock-dist-86c565f3-f756-42ad-8dfa-d59b1c096819/glock-releases",ti1="https://artifactory.infra.ant.dev/artifactory/api/npm/npm-all/",aQQ=60000,oi1=3,jQJ;var yQJ=I(()=>{JX();D1();Z1();T1();T9();H6();M1();i1();ei1();jQJ=class jQJ extends Error{constructor(){super("Download stalled: no data received for 60 seconds");this.name="StallTimeoutError"}}});import{basename as eQQ,join as JXQ}from"path";function eX0(){return Y8("jarvis_api_error",!1)}function Jn1(J){if(J<=1)return!1;try{return process.kill(J,0),!0}catch{return!1}}function XXQ(J,Q){if(!Jn1(J))return!1;if(J===process.pid)return!0;try{let X=S46(J);if(!X)return!0;let Z=X.toLowerCase(),Y=Q.toLowerCase();return Z.includes("glock")||Z.includes(Y)}catch{return!0}}function tX0(J){let Q=Y1();try{let X=Q.readFileSync(J,{encoding:"utf8"});if(!X||X.trim()==="")return null;let Z=c1(X);if(typeof Z.pid!=="number"||!Z.version||!Z.execPath)return null;return Z}catch{return null}}function aV0(J){let Q=tX0(J);if(!Q)return!1;let{pid:X,execPath:Z}=Q;if(!Jn1(X))return!1;if(!XXQ(X,Z))return b(`Lock PID ${X} is running but does not appear to be Glock - treating as stale`),!1;let Y=Y1();try{let q=Y.statSync(J);if(Date.now()-q.mtimeMs>QXQ){if(!Jn1(X))return!1}}catch{}return!0}function ZXQ(J,Q){let X=Y1(),Z=`${J}.tmp.${process.pid}.${Date.now()}`;try{n5(Z,l0(Q,null,2),{encoding:"utf8",flush:!0}),X.renameSync(Z,J)}catch(Y){try{X.unlinkSync(Z)}catch{}throw Y}}async function bQJ(J,Q){let X=Y1(),Z=eQQ(J);if(aV0(Q)){let q=tX0(Q);return b(`Cannot acquire lock for ${Z} - held by PID ${q?.pid}`),null}let Y={pid:process.pid,version:Z,execPath:process.execPath,acquiredAt:Date.now()};try{if(ZXQ(Q,Y),tX0(Q)?.pid!==process.pid)return null;return b(`Acquired PID lock for ${Z} (PID ${process.pid})`),()=>{try{if(tX0(Q)?.pid===process.pid)X.unlinkSync(Q),b(`Released PID lock for ${Z}`)}catch(K){b(`Failed to release lock for ${Z}: ${K}`)}}}catch(q){return b(`Failed to acquire lock for ${Z}: ${q}`),null}}async function PQJ(J,Q){let X=await bQJ(J,Q);if(!X)return!1;let Z=()=>{try{X()}catch{}};return process.on("exit",Z),process.on("SIGINT",Z),process.on("SIGTERM",Z),!0}async function EQJ(J,Q,X){let Z=await bQJ(J,Q);if(!Z)return!1;try{return await X(),!0}finally{Z()}}function TQJ(J){let Q=Y1(),X=0;try{let Z=Q.readdirStringSync(J).filter((Y)=>Y.endsWith(".lock"));for(let Y of Z){let q=JXQ(J,Y);try{if(Q.lstatSync(q).isDirectory())Q.rmSync(q,{recursive:!0,force:!0}),X++,b(`Cleaned up legacy directory lock: ${Y}`);else if(!aV0(q))Q.unlinkSync(q),X++,b(`Cleaned up stale lock: ${Y}`)}catch{}}}catch(Z){if(v8(Z))return 0;H0(R8(Z))}return X}var QXQ=7200000;var CQJ=I(()=>{Z1();T1();H6();t10();M1();i1()});import{constants as YXQ}from"fs";import{access as fQJ,chmod as qXQ,copyFile as Xn1,lstat as KXQ,mkdir as Br,readdir as Ne0,readlink as Zn1,realpath as GXQ,rename as we0,rm as Yn1,rmdir as zXQ,stat as OD,symlink as WXQ,unlink as _C,writeFile as HXQ}from"fs/promises";import{homedir as BXQ}from"os";import{basename as UXQ,delimiter as FXQ,dirname as OC,join as uL,resolve as LC}from"path";function Pu(){let J=k8.platform,Q=process.arch==="x64"?"x64":process.arch==="arm64"?"arm64":null;if(!Q){let X=Error(`Unsupported architecture: ${process.arch}`);throw b(`Native installer does not support architecture: ${process.arch}`,{level:"error"}),X}if(J==="linux"&&kR.isMuslEnvironment())return`linux-${Q}-musl`;return`${J}-${Q}`}function Le0(J){return J.startsWith("win32")?"glock.exe":"glock"}function dI(){let J=Pu(),Q=Le0(J);return{versions:uL(AQJ(),"glock","versions"),staging:uL(wQJ(),"glock","staging"),locks:uL(NQJ(),"glock","locks"),executable:uL(RQJ(),Q)}}async function Hr(J){try{let Q=await OD(J);if(!Q.isFile()||Q.size===0)return!1;return await fQJ(J,YXQ.X_OK),!0}catch{return!1}}async function Kn1(J){let Q=dI(),X=[Q.versions,Q.staging,Q.locks];await Promise.all(X.map((q)=>Br(q,{recursive:!0})));let Z=OC(Q.executable);await Br(Z,{recursive:!0});let Y=uL(Q.versions,J);try{await OD(Y)}catch{await HXQ(Y,"",{encoding:"utf8"})}return{stagingPath:uL(Q.staging,J),installPath:Y}}async function SQJ(J,Q,X=0){let Z=dI(),Y=sV0(Z,J);if(await Br(Z.locks,{recursive:!0}),eX0()){let K=0,G=X+1,z=X>0?1000:100,W=X>0?5000:500;while(K<G){if(await EQJ(J,Y,async()=>{try{await Q()}catch(B){throw H0(B),B}}))return l("jarvis_api_error",{is_pid_based:!0,is_lifetime_lock:!1,attempts:K+1}),!0;if(K++,K<G){let B=Math.min(z*Math.pow(2,K-1),W);await FJ(B)}}return l("jarvis_api_error",{is_pid_based:!0,is_lifetime_lock:!1,attempts:G}),Ae0(J,Error("Lock held by another process")),!1}let q=null;try{try{q=await Zq(J,{stale:qn1,retries:{retries:X,minTimeout:X>0?1000:100,maxTimeout:X>0?5000:500},lockfilePath:Y,onCompromised:(K)=>{b(`NON-FATAL: Version lock was compromised during operation: ${K.message}`,{level:"info"})}})}catch(K){return l("jarvis_api_error",{is_pid_based:!1,is_lifetime_lock:!1}),Ae0(J,K),!1}try{return await Q(),l("jarvis_api_error",{is_pid_based:!1,is_lifetime_lock:!1}),!0}catch(K){throw H0(K),K}}finally{if(q)await q()}}async function xQJ(J,Q){await Br(OC(Q),{recursive:!0});let X=`${Q}.tmp.${process.pid}.${Date.now()}`;try{await Xn1(J,X),await qXQ(X,493),await we0(X,Q),b(`Atomically installed binary to ${Q}`)}catch(Z){try{await _C(X)}catch{}throw Z}}async function _XQ(J,Q){try{let X=uL(J,"node_modules","@anthropic-ai"),Y=(await Ne0(X)).find((K)=>K.startsWith("glock-cli-native-"));if(!Y)throw l("jarvis_api_error",{stage_find_package:!0,error_package_not_found:!0}),Error("Could not find platform-specific native package");let q=uL(X,Y,"cli");try{await OD(q)}catch{throw l("jarvis_api_error",{stage_binary_exists:!0,error_binary_not_found:!0}),Error("Native binary not found in staged package")}await xQJ(q,Q),await Yn1(J,{recursive:!0,force:!0}),l("jarvis_api_error",{})}catch(X){let Z=Q1(X);if(!Z.includes("Could not find platform-specific")&&!Z.includes("Native binary not found"))l("jarvis_api_error",{stage_atomic_move:!0,error_move_failed:!0});throw H0(R8(X)),X}}async function OXQ(J,Q){try{let X=Pu(),Z=Le0(X),Y=uL(J,Z);try{await OD(Y)}catch{throw l("jarvis_api_error",{stage_binary_exists:!0,error_binary_not_found:!0}),Error("Staged binary not found")}await xQJ(Y,Q),await Yn1(J,{recursive:!0,force:!0}),l("jarvis_api_error",{})}catch(X){if(!Q1(X).includes("Staged binary not found"))l("jarvis_api_error",{stage_atomic_move:!0,error_move_failed:!0});throw H0(R8(X)),X}}async function LXQ(J,Q,X){if(X==="npm")await _XQ(J,Q);else await OXQ(J,Q)}async function VXQ(J,Q){let{stagingPath:X,installPath:Z}=await Kn1(J),{executable:Y}=dI(),q=X,K=!await kQJ(J)||Q;if(K){b(Q?`Force reinstalling native installer version ${J}`:`Downloading native installer version ${J}`);let G=await IQJ(J,q);await LXQ(q,Z,G)}else b(`Version ${J} already installed, updating symlink`);if(await wXQ(Y),await AXQ(Y,Z),!await Hr(Y)){let G=!1;try{await OD(Z),G=!0}catch{}throw Error(`Failed to create executable at ${Y}. Source file exists: ${G}. Check write permissions to ${Y}.`)}return K}async function kQJ(J){let{installPath:Q}=await Kn1(J);return Hr(Q)}async function NXQ(J,Q=!1){let X=Date.now(),Z=await $QJ(J),{executable:Y}=dI();if(b(`Checking for native installer update to version ${Z}`),!Q){let W=await bu();if(W&&DF(Z,W)){if(b(`Native installer: maxVersion ${W} is set, capping update from ${Z} to ${W}`),W2("0.1.17",W))return b(`Native installer: current version 0.1.17 is already at or above maxVersion ${W}, skipping update`),l("jarvis_api_error",{latency_ms:Date.now()-X,max_version:W,available_version:Z}),{success:!0,latestVersion:Z};Z=W}}if(!Q&&Z==="0.1.17"&&await kQJ(Z)&&await Hr(Y))return b(`Found ${Z} at ${Y}, skipping install`),l("jarvis_api_error",{latency_ms:Date.now()-X,was_new_install:!1,was_force_reinstall:!1,was_already_running:!0}),{success:!0,latestVersion:Z};if(!Q&&oX0(Z))return l("jarvis_api_error",{latency_ms:Date.now()-X,target_version:Z}),{success:!0,latestVersion:Z};let q=!1,K,{installPath:G}=await Kn1(Z);if(Q)await MXQ(G);let z=await SQJ(G,async()=>{q=await VXQ(Z,Q)},3);if(K=Date.now()-X,!z){let W=dI(),H;if(eX0()){let B=sV0(W,G);if(aV0(B))H=tX0(B)?.pid}return l("jarvis_api_error",{latency_ms:K,lock_holder_pid:H}),{success:!1,latestVersion:Z,lockFailed:!0,lockHolderPid:H}}return l("jarvis_api_error",{latency_ms:K,was_new_install:q,was_force_reinstall:Q}),b(`Successfully updated to version ${Z}`),{success:!0,latestVersion:Z}}async function wXQ(J){try{await zXQ(J),b(`Removed empty directory at ${J}`)}catch(Q){let X=c8(Q);if(X!=="ENOTDIR"&&X!=="ENOENT"&&X!=="ENOTEMPTY")b(`Could not remove directory at ${J}: ${Q}`)}}async function AXQ(J,Q){if(Pu().startsWith("win32"))try{let K=OC(J);await Br(K,{recursive:!0});let G;try{G=await OD(J)}catch{}if(G){try{let W=await OD(Q);if(G.size===W.size)return!1}catch{}let z=`${J}.old.${Date.now()}`;await we0(J,z);try{await Xn1(Q,J);try{await _C(z)}catch{}}catch(W){try{await we0(z,J)}catch(H){let B=Error(`Failed to restore old executable: ${H}`,{cause:W});throw H0(B),B}throw W}}else try{await Xn1(Q,J)}catch(z){if(v8(z))throw Error(`Source file does not exist: ${Q}`);throw z}return!0}catch(K){return H0(Error(`Failed to copy executable from ${Q} to ${J}: ${K}`)),!1}let Y=OC(J);try{await Br(Y,{recursive:!0}),b(`Created directory ${Y} for symlink`)}catch(K){return H0(Error(`Failed to create directory ${Y}: ${K}`)),!1}try{let K=!1;try{await OD(J),K=!0}catch{}if(K){try{let G=await Zn1(J),z=LC(OC(J),G),W=LC(Q);if(z===W)return!1}catch{}await _C(J)}}catch(K){H0(Error(`Failed to check/remove existing symlink: ${K}`))}let q=`${J}.tmp.${process.pid}.${Date.now()}`;try{return await WXQ(Q,q),await we0(q,J),b(`Atomically updated symlink ${J} -> ${Q}`),!0}catch(K){try{await _C(q)}catch{}return H0(Error(`Failed to create symlink from ${J} to ${Q}: ${K}`)),!1}}async function oV0(J=!1){let Q=await FC();if(Q==="development")return[];let X=L1();if(!(J||Q==="native"||X.installMethod==="native"))return[];let Y=dI(),q=[],K=OC(Y.executable),G=LC(K),W=Pu().startsWith("win32");try{await fQJ(K)}catch{q.push({message:`installMethod is native, but directory ${K} does not exist`,userActionRequired:!0,type:"error"})}if(W){if(!await Hr(Y.executable))q.push({message:`installMethod is native, but glock command is missing or invalid at ${Y.executable}`,userActionRequired:!0,type:"error"})}else try{let B=await Zn1(Y.executable),U=LC(OC(Y.executable),B);if(!await Hr(U))q.push({message:`Glock symlink points to missing or invalid binary: ${B}`,userActionRequired:!0,type:"error"})}catch(B){if(v8(B))q.push({message:`installMethod is native, but glock command not found at ${Y.executable}`,userActionRequired:!0,type:"error"});else if(!await Hr(Y.executable))q.push({message:`${Y.executable} exists but is not a valid Glock binary`,userActionRequired:!0,type:"error"})}if(!(process.env.PATH||"").split(FXQ).some((B)=>{try{let U=LC(B);if(W)return U.toLowerCase()===G.toLowerCase();return U===G}catch{return!1}}))if(W){let B=K.replace(/\//g,"\\");q.push({message:`Native installation exists but ${B} is not in your PATH. Add it by opening: System Properties \u2192 Environment Variables \u2192 Edit User PATH \u2192 New \u2192 Add the path above. Then restart your terminal.`,userActionRequired:!0,type:"path"})}else{let B=rX0(),F=Gr()[B],_=F?F.replace(BXQ(),"~"):"your shell config file";q.push({message:`Native installation exists but ~/.local/bin is not in your PATH. Run:
|
|
5087
5087
|
|
|
5088
5088
|
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ${_} && source ${_}`,userActionRequired:!0,type:"path"})}return q}function Gn1(J,Q=!1){if(Q)return vQJ(J,Q);if(Ve0)return b("installLatest: joining in-flight call"),Ve0;let X=vQJ(J,Q);Ve0=X;let Z=()=>{Ve0=null};return X.then(Z,Z),X}async function vQJ(J,Q=!1){let X=await NXQ(J,Q);if(!X.success)return{latestVersion:null,wasUpdated:!1,lockFailed:X.lockFailed,lockHolderPid:X.lockHolderPid};if(L1().installMethod!=="native")q8((Y)=>({...Y,installMethod:"native",autoUpdates:!1,autoUpdatesProtectedForNative:!0})),b('Native installer: Set installMethod to "native" and disabled legacy auto-updater for protection');return JZ0(),{latestVersion:X.latestVersion,wasUpdated:X.success,lockFailed:!1}}async function RXQ(J){try{let Q=await Zn1(J),X=LC(OC(J),Q);if(await Hr(X))return X}catch{}return null}function sV0(J,Q){let X=UXQ(Q);return uL(J.locks,`${X}.lock`)}async function zn1(){let J=dI();if(!process.execPath.includes(J.versions))return;let Q=LC(process.execPath);try{let X=sV0(J,Q);if(await Br(J.locks,{recursive:!0}),eX0()){if(!await PQJ(Q,X)){l("jarvis_api_error",{is_pid_based:!0,is_lifetime_lock:!0}),Ae0(Q,Error("Lock already held by another process"));return}l("jarvis_api_error",{is_pid_based:!0,is_lifetime_lock:!0}),b(`Acquired PID lock on running version: ${Q}`)}else{let Z;try{Z=await Zq(Q,{stale:qn1,retries:0,lockfilePath:X,onCompromised:(Y)=>{b(`NON-FATAL: Lock on running version was compromised: ${Y.message}`,{level:"info"})}}),l("jarvis_api_error",{is_pid_based:!1,is_lifetime_lock:!0}),b(`Acquired mtime-based lock on running version: ${Q}`),UJ(async()=>{try{await Z?.()}catch{}})}catch(Y){if(v8(Y)){b(`Cannot lock current version - file does not exist: ${Q}`,{level:"info"});return}l("jarvis_api_error",{is_pid_based:!1,is_lifetime_lock:!0}),Ae0(Q,Y);return}}}catch(X){if(v8(X)){b(`Cannot lock current version - file does not exist: ${Q}`,{level:"info"});return}b(`NON-FATAL: Failed to lock current version during execution ${Q1(X)}`,{level:"info"})}}function Ae0(J,Q){H0(Error(`NON-FATAL: Lock acquisition failed for ${J} (expected in multi-process scenarios)`,{cause:Q}))}async function MXQ(J){let Q=dI(),X=sV0(Q,J);try{await _C(X),b(`Force-removed lock file at ${X}`)}catch(Z){b(`Failed to force-remove lock file: ${Q1(Z)}`)}}async function JZ0(){await Promise.resolve();let J=dI(),Q=Date.now()-3600000;if(Pu().startsWith("win32")){let q=OC(J.executable);try{let K=await Ne0(q),G=0;for(let z of K){if(!/^claude\.exe\.old\.\d+$/.test(z))continue;try{await _C(uL(q,z)),G++}catch{}}if(G>0)b(`Cleaned up ${G} old Windows executables on startup`)}catch(K){if(!v8(K))b(`Failed to clean up old Windows executables: ${K}`)}}try{let q=await Ne0(J.staging),K=0;for(let G of q){let z=uL(J.staging,G);try{if((await OD(z)).mtime.getTime()<Q)await Yn1(z,{recursive:!0,force:!0}),K++,b(`Cleaned up old staging directory: ${G}`)}catch{}}if(K>0)b(`Cleaned up ${K} orphaned staging directories`),l("jarvis_api_error",{cleaned_count:K})}catch(q){if(!v8(q))b(`Failed to clean up staging directories: ${q}`)}if(eX0()){let q=TQJ(J.locks);if(q>0)b(`Cleaned up ${q} stale version locks`),l("jarvis_api_error",{cleaned_count:q})}let X;try{X=await Ne0(J.versions)}catch(q){if(!v8(q))b(`Failed to readdir versions directory: ${q}`);return}let Z=[],Y=0;for(let q of X){let K=uL(J.versions,q);if(/\.tmp\.\d+\.\d+$/.test(q)){try{if((await OD(K)).mtime.getTime()<Q)await _C(K),Y++,b(`Cleaned up orphaned temp install file: ${q}`)}catch{}continue}try{let G=await OD(K);if(!G.isFile())continue;if(process.platform!=="win32"&&G.size>0&&(G.mode&73)===0)continue;Z.push({name:q,path:K,resolvedPath:LC(K),mtime:G.mtime})}catch{}}if(Y>0)b(`Cleaned up ${Y} orphaned temp install files`),l("jarvis_api_error",{cleaned_count:Y});if(Z.length===0)return;try{let q=process.execPath,K=new Set;if(q&&q.includes(J.versions))K.add(LC(q));let G=await RXQ(J.executable);if(G)K.add(G);for(let F of Z){if(K.has(F.resolvedPath))continue;let _=sV0(J,F.resolvedPath),O=!1;if(eX0())O=aV0(_);else try{O=await fn8(F.resolvedPath,{stale:qn1,lockfilePath:_})}catch{O=!1}if(O)K.add(F.resolvedPath),b(`Protecting locked version from cleanup: ${F.name}`)}let W=Z.filter((F)=>!K.has(F.resolvedPath)).sort((F,_)=>_.mtime.getTime()-F.mtime.getTime()).slice(Qn1);if(W.length===0){l("jarvis_api_error",{total_count:Z.length,deleted_count:0,protected_count:K.size,retained_count:Qn1,lock_failed_count:0,error_count:0});return}let H=0,B=0,U=0;await Promise.all(W.map(async(F)=>{try{if(await SQJ(F.path,async()=>{await _C(F.path)}))H++;else B++,b(`Skipping deletion of ${F.name} - locked by another process`)}catch(_){U++,H0(Error(`Failed to delete version ${F.name}: ${_}`))}})),l("jarvis_api_error",{total_count:Z.length,deleted_count:H,protected_count:K.size,retained_count:Qn1,lock_failed_count:B,error_count:U})}catch(q){if(!v8(q))H0(Error(`Version cleanup failed: ${q}`))}}async function DXQ(J){let Q=J;if((await KXQ(J)).isSymbolicLink())Q=await GXQ(J);return Q.endsWith(".js")||Q.includes("node_modules")}async function Wn1(){let J=dI();try{if(await DXQ(J.executable)){b(`Skipping removal of ${J.executable} - appears to be npm-managed`);return}await _C(J.executable),b(`Removed glock symlink at ${J.executable}`)}catch(Q){if(v8(Q))return;H0(Error(`Failed to remove glock symlink: ${Q}`))}}var Qn1=2,qn1=604800000,Ve0=null;var ei1=I(()=>{D1();zr();EX();m8();Z1();sX0();WZ();e10();T1();T9();aX0();M1();Ge0();MQJ();yQJ();CQJ()});var Eu=I(()=>{ei1()});function VC(){let J=op(),X=["user","project","local"].flatMap((Z)=>rz(Z).errors);return{settings:J.settings,errors:[...J.errors,...X]}}var tV0=I(()=>{HL();g8()});function hQJ(){return[]}function uQJ(J,Q=null,X){let Z=J?.find((Y)=>Y.name==="ide");if(Q){let Y=Vq(Q.ideType),q=jM(Q.ideType)?"plugin":"extension";if(Q.error)return[{label:"IDE",value:rQJ.jsxDEV(M,{children:[G6("error",X)(s0.cross)," Error installing ",Y," ",q,": ",Q.error,`
|
|
5089
|
-
`,"Please restart your IDE and try again."]},void 0,!0,void 0,this)}];if(Q.installed)if(Z&&Z.type==="connected")if(Q.installedVersion!==Z.serverInfo?.version)return[{label:"IDE",value:`Connected to ${Y} ${q} version ${Q.installedVersion} (server version: ${Z.serverInfo?.version})`}];else return[{label:"IDE",value:`Connected to ${Y} ${q} version ${Q.installedVersion}`}];else return[{label:"IDE",value:`Installed ${Y} ${q}`}]}else if(Z){let Y=jf1(Z)??"IDE";if(Z.type==="connected")return[{label:"IDE",value:`Connected to ${Y} extension`}];else return[{label:"IDE",value:`${G6("error",X)(s0.cross)} Not connected to ${Y}`}]}return[]}function gQJ(J=[],Q){let X=J.filter((q)=>q.name!=="ide");if(!X.length)return[];let Z={connected:0,pending:0,needsAuth:0,failed:0};for(let q of X)if(q.type==="connected")Z.connected++;else if(q.type==="pending")Z.pending++;else if(q.type==="needs-auth")Z.needsAuth++;else Z.failed++;let Y=[];if(Z.connected)Y.push(G6("success",Q)(`${Z.connected} connected`));if(Z.needsAuth)Y.push(G6("warning",Q)(`${Z.needsAuth} need auth`));if(Z.pending)Y.push(G6("inactive",Q)(`${Z.pending} pending`));if(Z.failed)Y.push(G6("error",Q)(`${Z.failed} failed`));return[{label:"MCP servers",value:`${Y.join(", ")} ${G6("inactive",Q)("\xB7 /mcp")}`}]}async function mQJ(){let J=await eG(),Q=JN0(J),X=[];return Q.forEach((Z)=>{let Y=E7(Z.path);X.push(`Large ${Y} will impact performance (${W9(Z.content.length)} chars > ${W9(eV0)})`)}),X}function pQJ(){return[{label:"Setting sources",value:fb().filter((Z)=>{let Y=O8(Z);return Y!==null&&Object.keys(Y).length>0}).map((Z)=>{if(Z==="policySettings"){let Y=BN8();if(Y===null)return null;switch(Y){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:q,hasDropIns:K}=zN8();if(q&&K)return"Enterprise managed settings (file + drop-ins)";if(K)return"Enterprise managed settings (drop-ins)";return"Enterprise managed settings (file)"}case"hkcu":return"Enterprise managed settings (HKCU)"}}return m28(Z)}).filter((Z)=>Z!==null)}]}async function cQJ(){return(await oV0()).map((Q)=>Q.message)}async function dQJ(){let J=await VQJ(),Q=[],{errors:X}=VC();if(X.length>0){let Y=Array.from(new Set(X.map((q)=>q.file))).join(", ");Q.push(`Found invalid settings files: ${Y}. They will be ignored.`)}if(J.warnings.forEach((Z)=>{Q.push(Z.issue)}),J.hasUpdatePermissions===!1)Q.push("No write permissions for auto-updates (requires sudo)");return Q}function lQJ(){let J=yW0();if(!J)return[];let Q=[];if(J.subscription)Q.push({label:"Login method",value:`${J.subscription} Account`});if(J.tokenSource)Q.push({label:"Auth token",value:J.tokenSource});if(J.apiKeySource)Q.push({label:"API key",value:J.apiKeySource});if(J.organization&&!process.env.IS_DEMO)Q.push({label:"Organization",value:J.organization});if(J.email&&!process.env.IS_DEMO)Q.push({label:"Email",value:J.email});return Q}function iQJ(){let J=L6(),Q=[];if(J!=="firstParty"){let Y={bedrock:"AWS Bedrock",foundry:"Microsoft Foundry"}[J];Q.push({label:"API provider",value:Y})}if(J==="firstParty"){let Y=process.env.GLOCK_BASE_URL;if(Y)Q.push({label:"Glock base URL",value:Y})}else if(J==="bedrock"){let Y=process.env.BEDROCK_BASE_URL;if(Y)Q.push({label:"Bedrock base URL",value:Y});if(Q.push({label:"AWS region",value:e50()}),W1(process.env.GLOCK_SKIP_BEDROCK_AUTH))Q.push({value:"AWS auth skipped"})}else if(J==="foundry"){let Y=process.env.GLOCK_FOUNDRY_BASE_URL;if(Y)Q.push({label:"Microsoft Foundry base URL",value:Y});let q=process.env.GLOCK_FOUNDRY_RESOURCE;if(q)Q.push({label:"Microsoft Foundry resource",value:q});if(W1(process.env.GLOCK_SKIP_FOUNDRY_AUTH))Q.push({value:"Microsoft Foundry auth skipped"})}let X=v$();if(X)Q.push({label:"Proxy",value:X});let Z=b$();if(process.env.NODE_EXTRA_CA_CERTS)Q.push({label:"Additional CA cert(s)",value:process.env.NODE_EXTRA_CA_CERTS});if(Z){if(Z.cert&&process.env.GLOCK_CLIENT_CERT)Q.push({label:"mTLS client cert",value:process.env.GLOCK_CLIENT_CERT});if(Z.key&&process.env.GLOCK_CLIENT_KEY)Q.push({label:"mTLS client key",value:process.env.GLOCK_CLIENT_KEY})}return Q}function nQJ(J){let Q=kO(J);if(J===null&&q9()){let X=vW0();Q=`${_1.bold("Default")} ${X}`}return Q}var rQJ;var aQJ=I(()=>{k7();r6();a0();N9();ez();sX0();t1();V9();A6();b5();CJ();m4();lb();Eu();PO();V4();tV0();eY();g8();rQJ=T(e(),1)});function $XQ(){let J=A1(),X=kw(J)??Hz.jsxDEV(M,{dimColor:!0,children:"/rename to add a name"},void 0,!1,void 0,this);return[{label:"Version",value:"0.1.16"},{label:"Session name",value:X},{label:"Session ID",value:J},{label:"cwd",value:B1()},...lQJ(),...iQJ()]}function jXQ({mainLoopModel:J,mcp:Q,theme:X,context:Z}){return[{label:"Model",value:nQJ(J)},...uQJ(Q.clients,Z.options.ideInstallationStatus,X),...gQJ(Q.clients,X),...hQJ(),...pQJ()]}async function oQJ(){return[...await cQJ(),...await dQJ(),...await mQJ()]}function IXQ(J){let Q=Re0.c(8),{value:X}=J;if(Array.isArray(X)){let Z;if(Q[0]!==X){let q;if(Q[2]!==X.length)q=(K,G)=>Hz.jsxDEV(M,{children:[K,G<X.length-1?",":""]},G,!0,void 0,this),Q[2]=X.length,Q[3]=q;else q=Q[3];Z=X.map(q),Q[0]=X,Q[1]=Z}else Z=Q[1];let Y;if(Q[4]!==Z)Y=Hz.jsxDEV(f,{flexWrap:"wrap",columnGap:1,flexShrink:99,children:Z},void 0,!1,void 0,this),Q[4]=Z,Q[5]=Y;else Y=Q[5];return Y}if(typeof X==="string"){let Z;if(Q[6]!==X)Z=Hz.jsxDEV(M,{children:X},void 0,!1,void 0,this),Q[6]=X,Q[7]=Z;else Z=Q[7];return Z}return X}function sQJ(J){let Q=Re0.c(20),{context:X,diagnosticsPromise:Z}=J,Y=O1(EXQ),q=O1(PXQ),[K]=j6(),G;if(Q[0]===Symbol.for("react.memo_cache_sentinel"))G=$XQ(),Q[0]=G;else G=Q[0];let z;if(Q[1]!==X||Q[2]!==Y||Q[3]!==q||Q[4]!==K)z=jXQ({mainLoopModel:Y,mcp:q,theme:K,context:X}),Q[1]=X,Q[2]=Y,Q[3]=q,Q[4]=K,Q[5]=z;else z=Q[5];let W;if(Q[6]!==z)W=[G,z],Q[6]=z,Q[7]=W;else W=Q[7];let H=W,B=oF()?1:void 0,U;if(Q[8]!==H)U=H.map(yXQ),Q[8]=H,Q[9]=U;else U=Q[9];let F;if(Q[10]!==Z)F=Hz.jsxDEV(Me0.Suspense,{fallback:null,children:Hz.jsxDEV(TXQ,{promise:Z},void 0,!1,void 0,this)},void 0,!1,void 0,this),Q[10]=Z,Q[11]=F;else F=Q[11];let _;if(Q[12]!==B||Q[13]!==U||Q[14]!==F)_=Hz.jsxDEV(f,{flexDirection:"column",gap:1,flexGrow:B,children:[U,F]},void 0,!0,void 0,this),Q[12]=B,Q[13]=U,Q[14]=F,Q[15]=_;else _=Q[15];let O;if(Q[16]===Symbol.for("react.memo_cache_sentinel"))O=Hz.jsxDEV(M,{dimColor:!0,children:Hz.jsxDEV(s1,{action:"confirm:no",context:"Settings",fallback:"Esc",description:"cancel"},void 0,!1,void 0,this)},void 0,!1,void 0,this),Q[16]=O;else O=Q[16];let L;if(Q[17]!==B||Q[18]!==_)L=Hz.jsxDEV(f,{flexDirection:"column",flexGrow:B,children:[_,O]},void 0,!0,void 0,this),Q[17]=B,Q[18]=_,Q[19]=L;else L=Q[19];return L}function yXQ(J,Q){return J.length>0&&Hz.jsxDEV(f,{flexDirection:"column",children:J.map(bXQ)},Q,!1,void 0,this)}function bXQ(J,Q){let{label:X,value:Z}=J;return Hz.jsxDEV(f,{flexDirection:"row",gap:1,flexShrink:0,children:[X!==void 0&&Hz.jsxDEV(M,{bold:!0,children:[X,":"]},void 0,!0,void 0,this),Hz.jsxDEV(IXQ,{value:Z},void 0,!1,void 0,this)]},Q,!0,void 0,this)}function PXQ(J){return J.mcp}function EXQ(J){return J.mainLoopModel}function TXQ(J){let Q=Re0.c(5),{promise:X}=J,Z=Me0.use(X);if(Z.length===0)return null;let Y;if(Q[0]===Symbol.for("react.memo_cache_sentinel"))Y=Hz.jsxDEV(M,{bold:!0,children:"System Diagnostics"},void 0,!1,void 0,this),Q[0]=Y;else Y=Q[0];let q;if(Q[1]!==Z)q=Z.map(CXQ),Q[1]=Z,Q[2]=q;else q=Q[2];let K;if(Q[3]!==q)K=Hz.jsxDEV(f,{flexDirection:"column",paddingBottom:1,children:[Y,q]},void 0,!0,void 0,this),Q[3]=q,Q[4]=K;else K=Q[4];return K}function CXQ(J,Q){return Hz.jsxDEV(f,{flexDirection:"row",gap:1,paddingX:1,children:[Hz.jsxDEV(M,{color:"error",children:s0.warning},void 0,!1,void 0,this),typeof J==="string"?Hz.jsxDEV(M,{wrap:"wrap",children:J},void 0,!1,void 0,this):J]},Q,!0,void 0,this)}var Re0,Me0,Hz;var tQJ=I(()=>{r6();N1();rE();a0();W6();Z6();gJ();aQJ();U7();Re0=T(e0(),1),Me0=T(J1(),1),Hz=T(e(),1)});function QZ0(J){let Q=eQJ.c(59),{onThemeSelect:X,showIntroText:Z,helpText:Y,showHelpTextBelow:q,hideEscToCancel:K,skipExitHandling:G,onCancel:z}=J,W=Z===void 0?!1:Z,H=Y===void 0?"":Y,B=q===void 0?!1:q,U=K===void 0?!1:K,F=G===void 0?!1:G,[_]=j6(),O=z10(),{columns:L}=l8(),N;if(Q[0]===Symbol.for("react.memo_cache_sentinel"))N=k_0(),Q[0]=N;else N=Q[0];let A=N,R;if(Q[1]!==_)R=A===null?Sx6(_):null,Q[1]=_,Q[2]=R;else R=Q[2];let D=R,{setPreviewTheme:$,savePreview:y,cancelPreview:v}=wS0(),E=O1(fXQ)??!1,C=T6();op0("ThemePicker");let S=r9("theme:toggleSyntaxHighlighting","ThemePicker","ctrl+t"),k;if(Q[3]!==C||Q[4]!==E)k=()=>{if(A===null){let Q0=!E;y6("userSettings",{syntaxHighlightingDisabled:Q0}),C((a)=>({...a,settings:{...a.settings,syntaxHighlightingDisabled:Q0}}))}},Q[3]=C,Q[4]=E,Q[5]=k;else k=Q[5];let h;if(Q[6]===Symbol.for("react.memo_cache_sentinel"))h={context:"ThemePicker"},Q[6]=h;else h=Q[6];J8("theme:toggleSyntaxHighlighting",k,h);let u=B7(F?vXQ:void 0),x;if(Q[7]===Symbol.for("react.memo_cache_sentinel"))x=[...[],{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"}],Q[7]=x;else x=Q[7];let m=x,p;if(Q[8]!==W)p=W?vY.jsxDEV(M,{children:"Let's get started."},void 0,!1,void 0,this):vY.jsxDEV(M,{bold:!0,color:"permission",children:"Theme"},void 0,!1,void 0,this),Q[8]=W,Q[9]=p;else p=Q[9];let c;if(Q[10]===Symbol.for("react.memo_cache_sentinel"))c=vY.jsxDEV(M,{bold:!0,children:"Choose the text style that looks best with your terminal"},void 0,!1,void 0,this),Q[10]=c;else c=Q[10];let r;if(Q[11]!==H||Q[12]!==B)r=H&&!B&&vY.jsxDEV(M,{dimColor:!0,children:H},void 0,!1,void 0,this),Q[11]=H,Q[12]=B,Q[13]=r;else r=Q[13];let J0;if(Q[14]!==r)J0=vY.jsxDEV(f,{flexDirection:"column",children:[c,r]},void 0,!0,void 0,this),Q[14]=r,Q[15]=J0;else J0=Q[15];let n;if(Q[16]!==$)n=(Q0)=>{$(Q0)},Q[16]=$,Q[17]=n;else n=Q[17];let s;if(Q[18]!==X||Q[19]!==y)s=(Q0)=>{y(),X(Q0)},Q[18]=X,Q[19]=y,Q[20]=s;else s=Q[20];let X0;if(Q[21]!==v||Q[22]!==z||Q[23]!==F)X0=F?()=>{v(),z?.()}:async()=>{v(),await c4(0)},Q[21]=v,Q[22]=z,Q[23]=F,Q[24]=X0;else X0=Q[24];let Y0;if(Q[25]!==n||Q[26]!==s||Q[27]!==X0||Q[28]!==O)Y0=vY.jsxDEV(Q8,{options:m,onFocus:n,onChange:s,onCancel:X0,visibleOptionCount:m.length,defaultValue:O,defaultFocusValue:O},void 0,!1,void 0,this),Q[25]=n,Q[26]=s,Q[27]=X0,Q[28]=O,Q[29]=Y0;else Y0=Q[29];let G0;if(Q[30]!==p||Q[31]!==J0||Q[32]!==Y0)G0=vY.jsxDEV(f,{flexDirection:"column",gap:1,children:[p,J0,Y0]},void 0,!0,void 0,this),Q[30]=p,Q[31]=J0,Q[32]=Y0,Q[33]=G0;else G0=Q[33];let j0;if(Q[34]===Symbol.for("react.memo_cache_sentinel"))j0={oldStart:1,newStart:1,oldLines:3,newLines:3,lines:[" function greet() {",'- console.log("Hello, World!");','+ console.log("Hello, Glock!");'," }"]},Q[34]=j0;else j0=Q[34];let W0;if(Q[35]!==L)W0=vY.jsxDEV(f,{flexDirection:"column",borderTop:!0,borderBottom:!0,borderLeft:!1,borderRight:!1,borderStyle:"dashed",borderColor:"subtle",children:vY.jsxDEV(WI,{patch:j0,dim:!1,filePath:"demo.js",firstLine:null,width:L},void 0,!1,void 0,this)},void 0,!1,void 0,this),Q[35]=L,Q[36]=W0;else W0=Q[36];let y0=A==="env"?`Syntax highlighting disabled (via GLOCK_SYNTAX_HIGHLIGHT=${process.env.GLOCK_SYNTAX_HIGHLIGHT})`:E?`Syntax highlighting disabled (${S} to enable)`:D?`Syntax theme: ${D.theme}${D.source?` (from ${D.source})`:""} (${S} to disable)`:`Syntax highlighting enabled (${S} to disable)`,V0;if(Q[37]!==y0)V0=vY.jsxDEV(M,{dimColor:!0,children:[" ",y0]},void 0,!0,void 0,this),Q[37]=y0,Q[38]=V0;else V0=Q[38];let Z0;if(Q[39]!==W0||Q[40]!==V0)Z0=vY.jsxDEV(f,{flexDirection:"column",width:"100%",children:[W0,V0]},void 0,!0,void 0,this),Q[39]=W0,Q[40]=V0,Q[41]=Z0;else Z0=Q[41];let t;if(Q[42]!==G0||Q[43]!==Z0)t=vY.jsxDEV(f,{flexDirection:"column",gap:1,children:[G0,Z0]},void 0,!0,void 0,this),Q[42]=G0,Q[43]=Z0,Q[44]=t;else t=Q[44];let q0=t;if(!W){let Q0;if(Q[45]!==q0)Q0=vY.jsxDEV(f,{flexDirection:"column",children:q0},void 0,!1,void 0,this),Q[45]=q0,Q[46]=Q0;else Q0=Q[46];let a;if(Q[47]!==H||Q[48]!==B)a=B&&H&&vY.jsxDEV(f,{marginLeft:3,children:vY.jsxDEV(M,{dimColor:!0,children:H},void 0,!1,void 0,this)},void 0,!1,void 0,this),Q[47]=H,Q[48]=B,Q[49]=a;else a=Q[49];let O0;if(Q[50]!==u||Q[51]!==U)O0=!U&&vY.jsxDEV(f,{children:vY.jsxDEV(M,{dimColor:!0,italic:!0,children:u.pending?vY.jsxDEV(vY.Fragment,{children:["Press ",u.keyName," again to exit"]},void 0,!0,void 0,this):vY.jsxDEV(V8,{children:[vY.jsxDEV(p1,{shortcut:"Enter",action:"select"},void 0,!1,void 0,this),vY.jsxDEV(p1,{shortcut:"Esc",action:"cancel"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this)},void 0,!1,void 0,this),Q[50]=u,Q[51]=U,Q[52]=O0;else O0=Q[52];let D0;if(Q[53]!==a||Q[54]!==O0)D0=vY.jsxDEV(f,{marginTop:1,children:[a,O0]},void 0,!0,void 0,this),Q[53]=a,Q[54]=O0,Q[55]=D0;else D0=Q[55];let F0;if(Q[56]!==Q0||Q[57]!==D0)F0=vY.jsxDEV(vY.Fragment,{children:[Q0,D0]},void 0,!0,void 0,this),Q[56]=Q0,Q[57]=D0,Q[58]=F0;else F0=Q[58];return F0}return q0}function vXQ(){}function fXQ(J){return J.settings.syntaxHighlightingDisabled}var eQJ,vY;var De0=I(()=>{Lq();U9();a0();uE();f6();nz();W6();E5();g8();tX();R9();g9();bi0();z70();eQJ=T(e0(),1),vY=T(e(),1)});function JXJ(J,Q){if(!oN(Q))return;let X=EF6(Q,J);return`${QN0(X)} ${X} \xB7 /effort`}function QN0(J){switch(J){case"low":return sL8;case"medium":return tL8;case"high":return kW1;case"max":return eL8;default:return kW1}}var $e0=I(()=>{bZ();sN()});function Ur(J){let Q=Bn1.c(82),{initial:X,sessionModel:Z,onSelect:Y,onCancel:q,isStandaloneCommand:K,showFastModeNotice:G,headerText:z,skipSettingsWrite:W}=J,H=T6(),B=B7(),U=X===null?Ie0:X,[F,_]=je0.useState(U),O=O1(hXQ),[L,N]=je0.useState(!1),A=O1(kXQ),R;if(Q[0]!==A)R=A!==void 0?f60(A):void 0,Q[0]=A,Q[1]=R;else R=Q[1];let[D,$]=je0.useState(R),y=O??!1,v;if(Q[2]!==y)v=Nu(y),Q[2]=y,Q[3]=v;else v=Q[3];let E=v,C;J:{if(X!==null&&!E.some((L0)=>L0.value===X)){let L0;if(Q[4]!==X)L0=kO(X),Q[4]=X,Q[5]=L0;else L0=Q[5];let T0;if(Q[6]!==X||Q[7]!==L0)T0={value:X,label:L0,description:"Current model"},Q[6]=X,Q[7]=L0,Q[8]=T0;else T0=Q[8];let S0;if(Q[9]!==E||Q[10]!==T0)S0=[...E,T0],Q[9]=E,Q[10]=T0,Q[11]=S0;else S0=Q[11];C=S0;break J}C=E}let S=C,k;if(Q[12]!==S)k=S.map(xXQ),Q[12]=S,Q[13]=k;else k=Q[13];let h=k,u;if(Q[14]!==U||Q[15]!==h)u=h.some((L0)=>L0.value===U)?U:h[0]?.value??void 0,Q[14]=U,Q[15]=h,Q[16]=u;else u=Q[16];let x=u,m=Math.min(10,h.length),p=Math.max(0,h.length-m),c;if(Q[17]!==F||Q[18]!==h)c=h.find((L0)=>L0.value===F)?.label,Q[17]=F,Q[18]=h,Q[19]=c;else c=Q[19];let r=c,J0,n;if(Q[20]!==F){let L0=Hn1(F);J0=L0?oN(L0):!1,n=L0?PU0(L0):!1,Q[20]=F,Q[21]=J0,Q[22]=n}else J0=Q[21],n=Q[22];let s=n,X0;if(Q[23]!==F)X0=XXJ(F),Q[23]=F,Q[24]=X0;else X0=Q[24];let Y0=X0,G0=D==="max"&&!s?"high":D,j0;if(Q[25]!==A||Q[26]!==L)j0=(L0)=>{if(_(L0),!L&&A===void 0)$(XXJ(L0))},Q[25]=A,Q[26]=L,Q[27]=j0;else j0=Q[27];let W0=j0,y0;if(Q[28]!==Y0||Q[29]!==J0||Q[30]!==s)y0=(L0)=>{if(!J0)return;$((T0)=>uXQ(T0??Y0,L0,s)),N(!0)},Q[28]=Y0,Q[29]=J0,Q[30]=s,Q[31]=y0;else y0=Q[31];let V0=y0,Z0;if(Q[32]!==V0)Z0={"modelPicker:decreaseEffort":()=>V0("left"),"modelPicker:increaseEffort":()=>V0("right")},Q[32]=V0,Q[33]=Z0;else Z0=Q[33];let t;if(Q[34]===Symbol.for("react.memo_cache_sentinel"))t={context:"ModelPicker"},Q[34]=t;else t=Q[34];C6(Z0,t);let q0;if(Q[35]!==D||Q[36]!==L||Q[37]!==Y||Q[38]!==H||Q[39]!==W)q0=function(T0){if(l("jarvis_api_error",{effort:D}),!W)H((c0)=>({...c0,effortValue:effortLevel}));let S0=Hn1(T0),g0=L&&S0&&oN(S0)?D:void 0;if(T0===Ie0){Y(null,g0);return}Y(T0,g0)},Q[35]=D,Q[36]=L,Q[37]=Y,Q[38]=H,Q[39]=W,Q[40]=q0;else q0=Q[40];let Q0=q0,a;if(Q[41]===Symbol.for("react.memo_cache_sentinel"))a=VZ.jsxDEV(M,{color:"remember",bold:!0,children:"Select model"},void 0,!1,void 0,this),Q[41]=a;else a=Q[41];let O0=z??"Switch between models. Applies to this session and future Glock sessions. For other/previous model names, specify with --model.",D0;if(Q[42]!==O0)D0=VZ.jsxDEV(M,{dimColor:!0,children:O0},void 0,!1,void 0,this),Q[42]=O0,Q[43]=D0;else D0=Q[43];let F0;if(Q[44]!==Z)F0=Z&&VZ.jsxDEV(M,{dimColor:!0,children:["Currently using ",kO(Z)," for this session (set by plan mode). Selecting a model will undo this."]},void 0,!0,void 0,this),Q[44]=Z,Q[45]=F0;else F0=Q[45];let I0;if(Q[46]!==D0||Q[47]!==F0)I0=VZ.jsxDEV(f,{marginBottom:1,flexDirection:"column",children:[a,D0,F0]},void 0,!0,void 0,this),Q[46]=D0,Q[47]=F0,Q[48]=I0;else I0=Q[48];let U0=q??SXQ,P0;if(Q[49]!==W0||Q[50]!==Q0||Q[51]!==x||Q[52]!==U||Q[53]!==h||Q[54]!==U0||Q[55]!==m)P0=VZ.jsxDEV(f,{flexDirection:"column",children:VZ.jsxDEV(Q8,{defaultValue:U,defaultFocusValue:x,options:h,onChange:Q0,onFocus:W0,onCancel:U0,visibleOptionCount:m},void 0,!1,void 0,this)},void 0,!1,void 0,this),Q[49]=W0,Q[50]=Q0,Q[51]=x,Q[52]=U,Q[53]=h,Q[54]=U0,Q[55]=m,Q[56]=P0;else P0=Q[56];let $0;if(Q[57]!==p)$0=p>0&&VZ.jsxDEV(f,{paddingLeft:3,children:VZ.jsxDEV(M,{dimColor:!0,children:["and ",p," more\u2026"]},void 0,!0,void 0,this)},void 0,!1,void 0,this),Q[57]=p,Q[58]=$0;else $0=Q[58];let w0;if(Q[59]!==P0||Q[60]!==$0)w0=VZ.jsxDEV(f,{flexDirection:"column",marginBottom:1,children:[P0,$0]},void 0,!0,void 0,this),Q[59]=P0,Q[60]=$0,Q[61]=w0;else w0=Q[61];let E0;if(Q[62]!==G0||Q[63]!==Y0||Q[64]!==r||Q[65]!==J0)E0=VZ.jsxDEV(f,{marginBottom:1,flexDirection:"column",children:J0?VZ.jsxDEV(M,{dimColor:!0,children:[VZ.jsxDEV(QXJ,{effort:G0},void 0,!1,void 0,this)," ",CE(G0)," effort",G0===Y0?" (default)":""," ",VZ.jsxDEV(M,{color:"subtle",children:"\u2190 \u2192 to adjust"},void 0,!1,void 0,this)]},void 0,!0,void 0,this):VZ.jsxDEV(M,{color:"subtle",children:[VZ.jsxDEV(QXJ,{effort:void 0},void 0,!1,void 0,this)," Effort not supported",r?` for ${r}`:""]},void 0,!0,void 0,this)},void 0,!1,void 0,this),Q[62]=G0,Q[63]=Y0,Q[64]=r,Q[65]=J0,Q[66]=E0;else E0=Q[66];let h0;if(Q[67]!==G)h0=B9()?G?VZ.jsxDEV(f,{marginBottom:1,children:VZ.jsxDEV(M,{dimColor:!0,children:["Fast mode is ",VZ.jsxDEV(M,{bold:!0,children:"ON"},void 0,!1,void 0,this)," and available with"," ",wR," only (/fast). Switching to other models turn off fast mode."]},void 0,!0,void 0,this)},void 0,!1,void 0,this):GG()&&!p$()?VZ.jsxDEV(f,{marginBottom:1,children:VZ.jsxDEV(M,{dimColor:!0,children:["Use ",VZ.jsxDEV(M,{bold:!0,children:"/fast"},void 0,!1,void 0,this)," to turn on Fast mode (",wR," only)."]},void 0,!0,void 0,this)},void 0,!1,void 0,this):null:null,Q[67]=G,Q[68]=h0;else h0=Q[68];let u0;if(Q[69]!==I0||Q[70]!==w0||Q[71]!==E0||Q[72]!==h0)u0=VZ.jsxDEV(f,{flexDirection:"column",children:[I0,w0,E0,h0]},void 0,!0,void 0,this),Q[69]=I0,Q[70]=w0,Q[71]=E0,Q[72]=h0,Q[73]=u0;else u0=Q[73];let B0;if(Q[74]!==B||Q[75]!==K)B0=K&&VZ.jsxDEV(M,{dimColor:!0,italic:!0,children:B.pending?VZ.jsxDEV(VZ.Fragment,{children:["Press ",B.keyName," again to exit"]},void 0,!0,void 0,this):VZ.jsxDEV(V8,{children:[VZ.jsxDEV(p1,{shortcut:"Enter",action:"confirm"},void 0,!1,void 0,this),VZ.jsxDEV(s1,{action:"select:cancel",context:"Select",fallback:"Esc",description:"exit"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this),Q[74]=B,Q[75]=K,Q[76]=B0;else B0=Q[76];let _0;if(Q[77]!==u0||Q[78]!==B0)_0=VZ.jsxDEV(f,{flexDirection:"column",children:[u0,B0]},void 0,!0,void 0,this),Q[77]=u0,Q[78]=B0,Q[79]=_0;else _0=Q[79];let M0=_0;if(!K)return M0;let b0;if(Q[80]!==M0)b0=VZ.jsxDEV(yX,{color:"permission",children:M0},void 0,!1,void 0,this),Q[80]=M0,Q[81]=b0;else b0=Q[81];return b0}function SXQ(){}function xXQ(J){return{...J,value:J.value===null?Ie0:J.value}}function kXQ(J){return J.effortValue}function hXQ(J){return B9()?J.fastMode:!1}function Hn1(J){if(!J)return;return J===Ie0?xO():LQ(J)}function QXJ(J){let Q=Bn1.c(5),{effort:X}=J,Z=X?"glock":"subtle",Y=X??"low",q;if(Q[0]!==Y)q=QN0(Y),Q[0]=Y,Q[1]=q;else q=Q[1];let K;if(Q[2]!==Z||Q[3]!==q)K=VZ.jsxDEV(M,{color:Z,children:q},void 0,!1,void 0,this),Q[2]=Z,Q[3]=q,Q[4]=K;else K=Q[4];return K}function uXQ(J,Q,X){let Z=X?["low","medium","high","max"]:["low","medium","high"],Y=Z.indexOf(J),q=Y!==-1?Y:Z.indexOf("high");if(Q==="right")return Z[(q+1)%Z.length];else return Z[(q-1+Z.length)%Z.length]}function XXJ(J){let Q=Hn1(J)??xO(),X=TU0(Q);return X!==void 0?f60(X):"high"}var Bn1,je0,VZ,Ie0="__NO_PREFERENCE__";var ye0=I(()=>{_20();Lq();D1();$B();a0();f6();W6();sN();CJ();DV0();U7();tX();R9();g9();t3();$e0();Bn1=T(e0(),1),je0=T(J1(),1),VZ=T(e(),1)});function Fr(J,Q,X){if(!q9())return!1;if(Q)return!0;if(J===null||!wF(J))return!1;let Z=J.toLowerCase().replace(/\[1m\]$/,"").trim(),Y=Z==="opus"||Z.includes("opus-4-6"),q=Z==="sonnet"||Z.includes("sonnet-4-6");if(Y&&X)return!1;return Y||q}var be0=I(()=>{N9();lW()});var qXJ={};X8(qXJ,{GlockMdExternalIncludesDialog:()=>Un1});function Un1(J){let Q=ZXJ.c(18),{onDone:X,isStandaloneDialog:Z,externalIncludes:Y}=J,q;if(Q[0]===Symbol.for("react.memo_cache_sentinel"))q=[],Q[0]=q;else q=Q[0];YXJ.default.useEffect(cXQ,q);let K;if(Q[1]!==X)K=(A)=>{if(A==="no")l("jarvis_api_error",{}),KG(pXQ);else l("jarvis_api_error",{}),KG(mXQ);X()},Q[1]=X,Q[2]=K;else K=Q[2];let G=K,z;if(Q[3]!==G)z=()=>{G("no")},Q[3]=G,Q[4]=z;else z=Q[4];let W=z,H=!Z,B=!Z,U;if(Q[5]===Symbol.for("react.memo_cache_sentinel"))U=NC.jsxDEV(M,{children:"This project's GLOCK.md imports files outside the current working directory. Never allow this for third-party repositories."},void 0,!1,void 0,this),Q[5]=U;else U=Q[5];let F;if(Q[6]!==Y)F=Y&&Y.length>0&&NC.jsxDEV(f,{flexDirection:"column",children:[NC.jsxDEV(M,{dimColor:!0,children:"External imports:"},void 0,!1,void 0,this),Y.map(gXQ)]},void 0,!0,void 0,this),Q[6]=Y,Q[7]=F;else F=Q[7];let _;if(Q[8]===Symbol.for("react.memo_cache_sentinel"))_=NC.jsxDEV(M,{dimColor:!0,children:["Important: Only use Glock with files you trust. Accessing untrusted files may pose security risks"," ",NC.jsxDEV(zJ,{url:"https://docs.getglock.dev/en/security"},void 0,!1,void 0,this)," "]},void 0,!0,void 0,this),Q[8]=_;else _=Q[8];let O;if(Q[9]===Symbol.for("react.memo_cache_sentinel"))O=[{label:"Yes, allow external imports",value:"yes"},{label:"No, disable external imports",value:"no"}],Q[9]=O;else O=Q[9];let L;if(Q[10]!==G)L=NC.jsxDEV(Q8,{options:O,onChange:(A)=>G(A)},void 0,!1,void 0,this),Q[10]=G,Q[11]=L;else L=Q[11];let N;if(Q[12]!==W||Q[13]!==L||Q[14]!==H||Q[15]!==B||Q[16]!==F)N=NC.jsxDEV(D8,{title:"Allow external GLOCK.md file imports?",color:"warning",onCancel:W,hideBorder:H,hideInputGuide:B,children:[U,F,_,L]},void 0,!0,void 0,this),Q[12]=W,Q[13]=L,Q[14]=H,Q[15]=B,Q[16]=F,Q[17]=N;else N=Q[17];return N}function gXQ(J,Q){return NC.jsxDEV(M,{dimColor:!0,children:[" ",J.path]},Q,!0,void 0,this)}function mXQ(J){return{...J,hasGlockMdExternalIncludesApproved:!0,hasGlockMdExternalIncludesWarningShown:!0}}function pXQ(J){return{...J,hasGlockMdExternalIncludesApproved:!1,hasGlockMdExternalIncludesWarningShown:!0}}function cXQ(){l("jarvis_api_error",{})}var ZXJ,YXJ,NC;var Fn1=I(()=>{D1();a0();m8();tX();M9();ZXJ=T(e0(),1),YXJ=T(J1(),1),NC=T(e(),1)});function GXJ(J){let Q=KXJ.c(17),{currentVersion:X,onChoice:Z}=J,Y;if(Q[0]!==Z)Y=function(L){Z(L)},Q[0]=Z,Q[1]=Y;else Y=Q[1];let q=Y,K;if(Q[2]!==Z)K=function(){Z("cancel")},Q[2]=Z,Q[3]=K;else K=Q[3];let G=K,z;if(Q[4]!==X)z=XN0.jsxDEV(M,{children:["The stable channel may have an older version than what you're currently running (",X,")."]},void 0,!0,void 0,this),Q[4]=X,Q[5]=z;else z=Q[5];let W;if(Q[6]===Symbol.for("react.memo_cache_sentinel"))W=XN0.jsxDEV(M,{dimColor:!0,children:"How would you like to handle this?"},void 0,!1,void 0,this),Q[6]=W;else W=Q[6];let H;if(Q[7]===Symbol.for("react.memo_cache_sentinel"))H={label:"Allow possible downgrade to stable version",value:"downgrade"},Q[7]=H;else H=Q[7];let B=`Stay on current version (${X}) until stable catches up`,U;if(Q[8]!==B)U=[H,{label:B,value:"stay"}],Q[8]=B,Q[9]=U;else U=Q[9];let F;if(Q[10]!==q||Q[11]!==U)F=XN0.jsxDEV(Q8,{options:U,onChange:q},void 0,!1,void 0,this),Q[10]=q,Q[11]=U,Q[12]=F;else F=Q[12];let _;if(Q[13]!==G||Q[14]!==z||Q[15]!==F)_=XN0.jsxDEV(D8,{title:"Switch to Stable Channel",onCancel:G,color:"permission",hideBorder:!0,hideInputGuide:!0,children:[z,W,F]},void 0,!0,void 0,this),Q[13]=G,Q[14]=z,Q[15]=F,Q[16]=_;else _=Q[16];return _}var KXJ,XN0;var zXJ=I(()=>{a0();tX();M9();KXJ=T(e0(),1),XN0=T(e(),1)});function WXJ(J){return Object.entries(J).map(([Q,X])=>({label:X?.name??dXQ,value:Q,description:X?.description??lXQ}))}function BXJ(J){let Q=HXJ.c(16),{initialStyle:X,onComplete:Z,onCancel:Y,isStandaloneCommand:q}=J,K;if(Q[0]===Symbol.for("react.memo_cache_sentinel"))K=[],Q[0]=K;else K=Q[0];let[G,z]=ZN0.useState(K),[W,H]=ZN0.useState(!0),B,U;if(Q[1]===Symbol.for("react.memo_cache_sentinel"))B=()=>{xX0(B1()).then((D)=>{let $=WXJ(D);z($),H(!1)}).catch(()=>{let D=WXJ(Xl);z(D),H(!1)})},U=[],Q[1]=B,Q[2]=U;else B=Q[1],U=Q[2];ZN0.useEffect(B,U);let F;if(Q[3]!==Z)F=(D)=>{Z(D)},Q[3]=Z,Q[4]=F;else F=Q[4];let _=F,O=!q,L=!q,N;if(Q[5]===Symbol.for("react.memo_cache_sentinel"))N=_r.jsxDEV(f,{marginTop:1,children:_r.jsxDEV(M,{dimColor:!0,children:"This changes how Glock communicates with you"},void 0,!1,void 0,this)},void 0,!1,void 0,this),Q[5]=N;else N=Q[5];let A;if(Q[6]!==_||Q[7]!==X||Q[8]!==W||Q[9]!==G)A=_r.jsxDEV(f,{flexDirection:"column",gap:1,children:[N,W?_r.jsxDEV(M,{dimColor:!0,children:"Loading output styles\u2026"},void 0,!1,void 0,this):_r.jsxDEV(Q8,{options:G,onChange:_,visibleOptionCount:10,defaultValue:X},void 0,!1,void 0,this)]},void 0,!0,void 0,this),Q[6]=_,Q[7]=X,Q[8]=W,Q[9]=G,Q[10]=A;else A=Q[10];let R;if(Q[11]!==Y||Q[12]!==O||Q[13]!==L||Q[14]!==A)R=_r.jsxDEV(D8,{title:"Preferred output style",onCancel:Y,hideInputGuide:O,hideBorder:L,children:A},void 0,!1,void 0,this),Q[11]=Y,Q[12]=O,Q[13]=L,Q[14]=A,Q[15]=R;else R=Q[15];return R}var HXJ,ZN0,_r,dXQ="Default",lXQ="Glock completes coding tasks efficiently and provides concise responses";var UXJ=I(()=>{Vj();a0();Z6();AQ();M9();HXJ=T(e0(),1),ZN0=T(J1(),1),_r=T(e(),1)});function _XJ(J){let Q=FXJ.c(13),{initialLanguage:X,onComplete:Z,onCancel:Y}=J,[q,K]=_n1.useState(X),[G,z]=_n1.useState((X??"").length),W;if(Q[0]===Symbol.for("react.memo_cache_sentinel"))W={context:"Settings"},Q[0]=W;else W=Q[0];J8("confirm:no",Y,W);let H;if(Q[1]!==q||Q[2]!==Z)H=function(){let R=q?.trim();Z(R||void 0)},Q[1]=q,Q[2]=Z,Q[3]=H;else H=Q[3];let B=H,U;if(Q[4]===Symbol.for("react.memo_cache_sentinel"))U=Or.jsxDEV(M,{children:"Enter your preferred response and voice language:"},void 0,!1,void 0,this),Q[4]=U;else U=Q[4];let F;if(Q[5]===Symbol.for("react.memo_cache_sentinel"))F=Or.jsxDEV(M,{children:s0.pointer},void 0,!1,void 0,this),Q[5]=F;else F=Q[5];let _=q??"",O;if(Q[6]!==G||Q[7]!==B||Q[8]!==_)O=Or.jsxDEV(f,{flexDirection:"row",gap:1,children:[F,Or.jsxDEV(sX,{value:_,onChange:K,onSubmit:B,focus:!0,showCursor:!0,placeholder:`e.g., Japanese, \u65E5\u672C\u8A9E, Espa\xF1ol${s0.ellipsis}`,columns:60,cursorOffset:G,onChangeCursorOffset:z},void 0,!1,void 0,this)]},void 0,!0,void 0,this),Q[6]=G,Q[7]=B,Q[8]=_,Q[9]=O;else O=Q[9];let L;if(Q[10]===Symbol.for("react.memo_cache_sentinel"))L=Or.jsxDEV(M,{dimColor:!0,children:"Leave empty for default (English)"},void 0,!1,void 0,this),Q[10]=L;else L=Q[10];let N;if(Q[11]!==O)N=Or.jsxDEV(f,{flexDirection:"column",gap:1,children:[U,O,L]},void 0,!0,void 0,this),Q[11]=O,Q[12]=N;else N=Q[12];return N}var FXJ,_n1,Or;var OXJ=I(()=>{r6();a0();f6();EH();FXJ=T(e0(),1),_n1=T(J1(),1),Or=T(e(),1)});function LD(J){let Q=LXJ.c(17),{query:X,placeholder:Z,isFocused:Y,isTerminalFocused:q,prefix:K,width:G,cursorOffset:z,borderless:W}=J,H=Z===void 0?"Search\u2026":Z,B=K===void 0?"\u2315":K,U=W===void 0?!1:W,F=z??X.length,_=U?void 0:"round",O=Y?"suggestion":void 0,L=!Y,N=U?0:1,A=!Y,R;if(Q[0]!==Y||Q[1]!==q||Q[2]!==F||Q[3]!==H||Q[4]!==X)R=Y?q3.jsxDEV(q3.Fragment,{children:X?q?q3.jsxDEV(q3.Fragment,{children:[q3.jsxDEV(M,{children:X.slice(0,F)},void 0,!1,void 0,this),q3.jsxDEV(M,{inverse:!0,children:F<X.length?X[F]:" "},void 0,!1,void 0,this),F<X.length&&q3.jsxDEV(M,{children:X.slice(F+1)},void 0,!1,void 0,this)]},void 0,!0,void 0,this):q3.jsxDEV(M,{children:X},void 0,!1,void 0,this):q?q3.jsxDEV(q3.Fragment,{children:[q3.jsxDEV(M,{inverse:!0,children:H.charAt(0)},void 0,!1,void 0,this),q3.jsxDEV(M,{dimColor:!0,children:H.slice(1)},void 0,!1,void 0,this)]},void 0,!0,void 0,this):q3.jsxDEV(M,{dimColor:!0,children:H},void 0,!1,void 0,this)},void 0,!1,void 0,this):X?q3.jsxDEV(M,{children:X},void 0,!1,void 0,this):q3.jsxDEV(M,{children:H},void 0,!1,void 0,this),Q[0]=Y,Q[1]=q,Q[2]=F,Q[3]=H,Q[4]=X,Q[5]=R;else R=Q[5];let D;if(Q[6]!==B||Q[7]!==A||Q[8]!==R)D=q3.jsxDEV(M,{dimColor:A,children:[B," ",R]},void 0,!0,void 0,this),Q[6]=B,Q[7]=A,Q[8]=R,Q[9]=D;else D=Q[9];let $;if(Q[10]!==D||Q[11]!==_||Q[12]!==O||Q[13]!==L||Q[14]!==N||Q[15]!==G)$=q3.jsxDEV(f,{flexShrink:0,borderStyle:_,borderColor:O,borderDimColor:L,paddingX:N,width:G,children:D},void 0,!1,void 0,this),Q[10]=D,Q[11]=_,Q[12]=O,Q[13]=L,Q[14]=N,Q[15]=G,Q[16]=$;else $=Q[16];return $}var LXJ,q3;var Lr=I(()=>{a0();LXJ=T(e0(),1),q3=T(e(),1)});function iXQ(J){if(J.ctrl&&(J.key==="k"||J.key==="u"||J.key==="w"))return!0;if(J.meta&&J.key==="backspace")return!0;return!1}function nXQ(J){return(J.ctrl||J.meta)&&J.key==="y"}function gL({isActive:J,onExit:Q,onCancel:X,onExitUp:Z,columns:Y,passthroughCtrlKeys:q=[],initialQuery:K="",backspaceExitsOnEmpty:G=!0}){let{columns:z}=l8(),W=Y??z,[H,B]=YN0.useState(K),[U,F]=YN0.useState(K.length),_=YN0.useCallback((L)=>{B(L),F(L.length)},[]),O=(L)=>{if(!J)return;let N=$9.fromText(H,W,U);if(L.ctrl&&q.includes(L.key.toLowerCase()))return;if(!iXQ(L))CL0();if(!nXQ(L))vL0();if(L.key==="return"||L.key==="down"){L.preventDefault(),Q();return}if(L.key==="up"){if(L.preventDefault(),Z)Z();return}if(L.key==="escape"){if(L.preventDefault(),X)X();else if(H.length>0)B(""),F(0);else Q();return}if(L.key==="backspace"){if(L.preventDefault(),L.meta){let{cursor:R,killed:D}=N.deleteWordBefore();eT(D,"prepend"),B(R.text),F(R.offset);return}if(H.length===0){if(G)(X??Q)();return}let A=N.backspace();B(A.text),F(A.offset);return}if(L.key==="delete"){L.preventDefault();let A=N.del();B(A.text),F(A.offset);return}if(L.key==="left"&&(L.ctrl||L.meta||L.fn)){L.preventDefault();let A=N.prevWord();F(A.offset);return}if(L.key==="right"&&(L.ctrl||L.meta||L.fn)){L.preventDefault();let A=N.nextWord();F(A.offset);return}if(L.key==="left"){L.preventDefault();let A=N.left();F(A.offset);return}if(L.key==="right"){L.preventDefault();let A=N.right();F(A.offset);return}if(L.key==="home"){L.preventDefault(),F(0);return}if(L.key==="end"){L.preventDefault(),F(H.length);return}if(L.ctrl){switch(L.preventDefault(),L.key.toLowerCase()){case"a":F(0);return;case"e":F(H.length);return;case"b":F(N.left().offset);return;case"f":F(N.right().offset);return;case"d":{if(H.length===0){(X??Q)();return}let A=N.del();B(A.text),F(A.offset);return}case"h":{if(H.length===0){if(G)(X??Q)();return}let A=N.backspace();B(A.text),F(A.offset);return}case"k":{let{cursor:A,killed:R}=N.deleteToLineEnd();eT(R,"append"),B(A.text),F(A.offset);return}case"u":{let{cursor:A,killed:R}=N.deleteToLineStart();eT(R,"prepend"),B(A.text),F(A.offset);return}case"w":{let{cursor:A,killed:R}=N.deleteWordBefore();eT(R,"prepend"),B(A.text),F(A.offset);return}case"y":{let A=So0();if(A.length>0){let R=N.offset,D=N.insert(A);xo0(R,A.length),B(D.text),F(D.offset)}return}case"g":case"c":if(X){X();return}}return}if(L.meta){switch(L.preventDefault(),L.key.toLowerCase()){case"b":F(N.prevWord().offset);return;case"f":F(N.nextWord().offset);return;case"d":{let A=N.deleteWordAfter();B(A.text),F(A.offset);return}case"y":{let A=ko0();if(A){let{text:R,start:D,length:$}=A,y=H.slice(0,D),v=H.slice(D+$),E=y+R+v,C=D+R.length;ho0(R.length),B(E),F(C)}return}}return}if(L.key==="tab")return;if(L.key.length>=1&&!rXQ.has(L.key)){L.preventDefault();let A=N.insert(L.key);B(A.text),F(A.offset)}};return SJ((L,N,A)=>{O(new vR(A.keypress))},{isActive:J}),{query:H,setQuery:_,cursorOffset:U,handleKeyDown:O}}var YN0,rXQ;var Tu=I(()=>{f10();a0();un();U9();YN0=T(J1(),1);rXQ=new Set(["pageup","pagedown","insert","wheelup","wheeldown","mouse","f1","f2","f3","f4","f5","f6","f7","f8","f9","f10","f11","f12"])});function wXJ({onClose:J,context:Q,setTabsHidden:X,onIsSearchModeChange:Z,contentHeight:Y}){let{headerFocused:q,focusHeader:K}=BU(),G=oF(),[,z]=j6(),W=z10(),[H,B]=pK.useState(L1()),U=uH.useRef(L1()),[F,_]=pK.useState(h6()),O=uH.useRef(h6()),[L,N]=pK.useState(F?.outputStyle||F2),A=uH.useRef(L),[R,D]=pK.useState(F?.language),$=uH.useRef(R),[y,v]=pK.useState(0),[E,C]=pK.useState(0),[S,k]=pK.useState(!0),h=X5(),{rows:u}=l8(),x=Y??Math.min(Math.floor(u*0.8),30),m=Math.max(5,x-10),p=O1((R0)=>R0.mainLoopModel),c=O1((R0)=>R0.verbose),r=O1((R0)=>R0.thinkingEnabled),J0=O1((R0)=>B9()?R0.fastMode:!1),n=O1((R0)=>R0.promptSuggestionEnabled),s=!1,X0=!1,Y0=T6(),[G0,j0]=pK.useState({}),W0=uH.useRef(r),[y0]=pK.useState(()=>O8("localSettings")),[V0]=pK.useState(()=>O8("userSettings")),Z0=uH.useRef(W),t=aX(),[q0]=pK.useState(()=>{let R0=t.getState();return{mainLoopModel:R0.mainLoopModel,mainLoopModelForSession:R0.mainLoopModelForSession,verbose:R0.verbose,thinkingEnabled:R0.thinkingEnabled,fastMode:R0.fastMode,promptSuggestionEnabled:R0.promptSuggestionEnabled,isBriefOnly:R0.isBriefOnly,settings:R0.settings}}),[Q0]=pK.useState(()=>vM0()),a=uH.useRef(!1),[O0,D0]=pK.useState(!1),[F0,I0]=pK.useState(null),{query:U0,setQuery:P0,cursorOffset:$0}=gL({isActive:S&&F0===null&&!q,onExit:()=>k(!1),onExitUp:K,passthroughCtrlKeys:["c","d"]}),w0=S&&!q;uH.useEffect(()=>{Z?.(w0)},[w0,Z]);let E0=ec0(Q.options.mcpClients),h0=!0,u0=uH.use(eG(!0)),B0=On1(u0),_0=R00();function M0(R0){l("jarvis_api_error",{from_model:p,to_model:R0}),Y0((o0)=>({...o0,mainLoopModel:R0,mainLoopModelForSession:null})),j0((o0)=>{let R1=kO(R0)+(Fr(R0,!1,q2())?" \xB7 Billed as extra usage":"");if("model"in o0){let{model:l1,...a1}=o0;return{...a1,model:R1}}return{...o0,model:R1}})}function b0(R0){q8((p0)=>({...p0,verbose:R0})),B({...L1(),verbose:R0}),Y0((p0)=>({...p0,verbose:R0})),j0((p0)=>{if("verbose"in p0){let{verbose:o0,...R1}=p0;return R1}return{...p0,verbose:R0}})}let L0=[{id:"autoCompactEnabled",label:"Auto-compact",value:H.autoCompactEnabled,type:"boolean",onChange(R0){q8((p0)=>({...p0,autoCompactEnabled:R0})),B({...L1(),autoCompactEnabled:R0}),l("jarvis_api_error",{enabled:R0})}},{id:"spinnerTipsEnabled",label:"Show tips",value:F?.spinnerTipsEnabled??!0,type:"boolean",onChange(R0){y6("localSettings",{spinnerTipsEnabled:R0}),_((p0)=>({...p0,spinnerTipsEnabled:R0})),l("jarvis_api_error",{enabled:R0})}},{id:"prefersReducedMotion",label:"Reduce motion",value:F?.prefersReducedMotion??!1,type:"boolean",onChange(R0){y6("localSettings",{prefersReducedMotion:R0}),_((p0)=>({...p0,prefersReducedMotion:R0})),Y0((p0)=>({...p0,settings:{...p0.settings,prefersReducedMotion:R0}})),l("jarvis_api_error",{enabled:R0})}},{id:"thinkingEnabled",label:"Thinking mode",value:r??!0,type:"boolean",onChange(R0){Y0((p0)=>({...p0,thinkingEnabled:R0})),y6("userSettings",{alwaysThinkingEnabled:R0?void 0:!1}),l("jarvis_api_error",{enabled:R0})}},...B9()&&GG()?[{id:"fastMode",label:`Fast mode (${wR} only)`,value:!!J0,type:"boolean",onChange(R0){if(sc(),y6("userSettings",{fastMode:R0?!0:void 0}),R0)Y0((p0)=>({...p0,mainLoopModel:PW0(),mainLoopModelForSession:null,fastMode:!0})),j0((p0)=>({...p0,model:PW0(),"Fast mode":"ON"}));else Y0((p0)=>({...p0,fastMode:!1})),j0((p0)=>({...p0,"Fast mode":"OFF"}))}}]:[],...Y8("jarvis_api_error",!1)?[{id:"promptSuggestionEnabled",label:"Prompt suggestions",value:n,type:"boolean",onChange(R0){Y0((p0)=>({...p0,promptSuggestionEnabled:R0})),y6("userSettings",{promptSuggestionEnabled:R0?void 0:!1})}}]:[],...[],...h0?[{id:"fileCheckpointingEnabled",label:"Rewind code (checkpoints)",value:H.fileCheckpointingEnabled,type:"boolean",onChange(R0){q8((p0)=>({...p0,fileCheckpointingEnabled:R0})),B({...L1(),fileCheckpointingEnabled:R0}),l("jarvis_api_error",{enabled:R0})}}]:[],{id:"verbose",label:"Verbose output",value:c,type:"boolean",onChange:b0},{id:"terminalProgressBarEnabled",label:"Terminal progress bar",value:H.terminalProgressBarEnabled,type:"boolean",onChange(R0){q8((p0)=>({...p0,terminalProgressBarEnabled:R0})),B({...L1(),terminalProgressBarEnabled:R0}),l("jarvis_api_error",{enabled:R0})}},...Y8("jarvis_api_error",!1)?[{id:"showStatusInTerminalTab",label:"Show status in terminal tab",value:H.showStatusInTerminalTab??!1,type:"boolean",onChange(R0){q8((p0)=>({...p0,showStatusInTerminalTab:R0})),B({...L1(),showStatusInTerminalTab:R0}),l("jarvis_api_error",{enabled:R0})}}]:[],{id:"showTurnDuration",label:"Show turn duration",value:H.showTurnDuration,type:"boolean",onChange(R0){q8((p0)=>({...p0,showTurnDuration:R0})),B({...L1(),showTurnDuration:R0}),l("jarvis_api_error",{enabled:R0})}},{id:"defaultPermissionMode",label:"Default permission mode",value:F?.permissions?.defaultMode||"default",options:(()=>{let R0=["default","plan"],p0=dp,o0=["bypassPermissions"];return[...R0,...p0.filter((R1)=>!R0.includes(R1)&&!o0.includes(R1))]})(),type:"enum",onChange(R0){let p0=wO(R0),o0=KV8(p0)?JR(p0):p0,R1=y6("userSettings",{permissions:{...F?.permissions,defaultMode:o0}});if(R1.error){H0(R1.error);return}_((l1)=>({...l1,permissions:{...l1?.permissions,defaultMode:o0}})),j0((l1)=>({...l1,defaultPermissionMode:R0})),l("jarvis_api_error",{setting:"defaultPermissionMode",value:R0})}},...[],{id:"respectGitignore",label:"Respect .gitignore in file picker",value:H.respectGitignore,type:"boolean",onChange(R0){q8((p0)=>({...p0,respectGitignore:R0})),B({...L1(),respectGitignore:R0}),l("jarvis_api_error",{enabled:R0})}},{id:"copyFullResponse",label:"Always copy full response (skip /copy picker)",value:H.copyFullResponse,type:"boolean",onChange(R0){q8((p0)=>({...p0,copyFullResponse:R0})),B({...L1(),copyFullResponse:R0}),l("jarvis_api_error",{setting:"copyFullResponse",value:String(R0)})}},...yJ()?[{id:"copyOnSelect",label:"Copy on select",value:H.copyOnSelect??!0,type:"boolean",onChange(R0){q8((p0)=>({...p0,copyOnSelect:R0})),B({...L1(),copyOnSelect:R0}),l("jarvis_api_error",{setting:"copyOnSelect",value:String(R0)})}}]:[],_0?{id:"autoUpdatesChannel",label:"Auto-update channel",value:"disabled",type:"managedEnum",onChange(){}}:{id:"autoUpdatesChannel",label:"Auto-update channel",value:F?.autoUpdatesChannel??"latest",type:"managedEnum",onChange(){}},{id:"theme",label:"Theme",value:W,type:"managedEnum",onChange:z},{id:"notifChannel",label:"Notifications",value:H.preferredNotifChannel,options:["auto","iterm2","terminal_bell","iterm2_with_bell","kitty","ghostty","notifications_disabled"],type:"enum",onChange(R0){q8((p0)=>({...p0,preferredNotifChannel:R0})),B({...L1(),preferredNotifChannel:R0})}},...[],{id:"outputStyle",label:"Output style",value:L,type:"managedEnum",onChange:()=>{}},...[],{id:"language",label:"Language",value:R??"Default (English)",type:"managedEnum",onChange:()=>{}},{id:"editorMode",label:"Editor mode",value:H.editorMode==="emacs"?"normal":H.editorMode||"normal",options:["normal","vim"],type:"enum",onChange(R0){q8((p0)=>({...p0,editorMode:R0})),B({...L1(),editorMode:R0}),l("jarvis_api_error",{mode:R0,source:"config_panel"})}},{id:"prStatusFooterEnabled",label:"Show PR status footer",value:H.prStatusFooterEnabled??!0,type:"boolean",onChange(R0){q8((p0)=>{if(p0.prStatusFooterEnabled===R0)return p0;return{...p0,prStatusFooterEnabled:R0}}),B({...L1(),prStatusFooterEnabled:R0}),l("jarvis_api_error",{enabled:R0})}},{id:"model",label:"Model",value:p===null?"Default (recommended)":p,type:"managedEnum",onChange:M0},...E0?[{id:"diffTool",label:"Diff tool",value:H.diffTool??"auto",options:["terminal","auto"],type:"enum",onChange(R0){q8((p0)=>({...p0,diffTool:R0})),B({...L1(),diffTool:R0}),l("jarvis_api_error",{tool:R0,source:"config_panel"})}}]:[],...!tz()?[{id:"autoConnectIde",label:"Auto-connect to IDE (external terminal)",value:H.autoConnectIde??!1,type:"boolean",onChange(R0){q8((p0)=>({...p0,autoConnectIde:R0})),B({...L1(),autoConnectIde:R0}),l("jarvis_api_error",{enabled:R0,source:"config_panel"})}}]:[],...tz()?[{id:"autoInstallIdeExtension",label:"Auto-install IDE extension",value:H.autoInstallIdeExtension??!0,type:"boolean",onChange(R0){q8((p0)=>({...p0,autoInstallIdeExtension:R0})),B({...L1(),autoInstallIdeExtension:R0}),l("jarvis_api_error",{enabled:R0,source:"config_panel"})}}]:[],...p6()?(()=>{let R0=xh1();return[{id:"teammateMode",label:R0?`Teammate mode [overridden: ${R0}]`:"Teammate mode",value:H.teammateMode??"auto",options:["auto","tmux","in-process"],type:"enum",onChange(o0){if(o0!=="auto"&&o0!=="tmux"&&o0!=="in-process")return;kh1(o0),q8((R1)=>({...R1,teammateMode:o0})),B({...L1(),teammateMode:o0}),l("jarvis_api_error",{mode:o0})}},{id:"teammateDefaultModel",label:"Default teammate model",value:VXJ(H.teammateDefaultModel),type:"managedEnum",onChange(){}}]})():[],...B0?[{id:"showExternalIncludesDialog",label:"External GLOCK.md includes",value:(()=>{if(RK().hasGlockMdExternalIncludesApproved)return"true";else return"false"})(),type:"managedEnum",onChange(){}}]:[],...process.env.GLOCK_API_KEY&&!Y$()?[{id:"apiKey",label:o8.jsxDEV(M,{children:["Use custom API key:"," ",o8.jsxDEV(M,{bold:!0,children:ON(process.env.GLOCK_API_KEY)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),searchText:"Use custom API key",value:Boolean(process.env.GLOCK_API_KEY&&H.customApiKeyResponses?.approved?.includes(ON(process.env.GLOCK_API_KEY))),type:"boolean",onChange(R0){q8((p0)=>{let o0={...p0};if(!o0.customApiKeyResponses)o0.customApiKeyResponses={approved:[],rejected:[]};if(!o0.customApiKeyResponses.approved)o0.customApiKeyResponses={...o0.customApiKeyResponses,approved:[]};if(!o0.customApiKeyResponses.rejected)o0.customApiKeyResponses={...o0.customApiKeyResponses,rejected:[]};if(process.env.GLOCK_API_KEY){let R1=ON(process.env.GLOCK_API_KEY);if(R0)o0.customApiKeyResponses={...o0.customApiKeyResponses,approved:[...(o0.customApiKeyResponses.approved??[]).filter((l1)=>l1!==R1),R1],rejected:(o0.customApiKeyResponses.rejected??[]).filter((l1)=>l1!==R1)};else o0.customApiKeyResponses={...o0.customApiKeyResponses,approved:(o0.customApiKeyResponses.approved??[]).filter((l1)=>l1!==R1),rejected:[...(o0.customApiKeyResponses.rejected??[]).filter((l1)=>l1!==R1),R1]}}return o0}),B(L1())}}]:[]],T0=uH.useMemo(()=>{if(!U0)return L0;let R0=U0.toLowerCase();return L0.filter((p0)=>{if(p0.id.toLowerCase().includes(R0))return!0;return("searchText"in p0?p0.searchText:p0.label).toLowerCase().includes(R0)})},[L0,U0]);uH.useEffect(()=>{if(y>=T0.length){let R0=Math.max(0,T0.length-1);v(R0),C(Math.max(0,R0-m+1));return}C((R0)=>{if(y<R0)return y;if(y>=R0+m)return y-m+1;return R0})},[T0.length,y,m]);let S0=pK.useCallback((R0)=>{C((p0)=>{if(R0<p0)return R0;if(R0>=p0+m)return R0-m+1;return p0})},[m]),g0=pK.useCallback(()=>{if(F0!==null)return;let R0=Object.entries(G0).map(([l1,a1])=>{return l("jarvis_api_error",{key:l1,value:a1}),`Set ${l1} to ${_1.bold(a1)}`}),p0=Y$()?void 0:process.env.GLOCK_API_KEY,o0=Boolean(p0&&U.current.customApiKeyResponses?.approved?.includes(ON(p0))),R1=Boolean(p0&&H.customApiKeyResponses?.approved?.includes(ON(p0)));if(o0!==R1)R0.push(`${R1?"Enabled":"Disabled"} custom API key`),l("jarvis_api_error",{key:"env.GLOCK_API_KEY",value:R1});if(H.theme!==U.current.theme)R0.push(`Set theme to ${_1.bold(H.theme)}`);if(H.preferredNotifChannel!==U.current.preferredNotifChannel)R0.push(`Set notifications to ${_1.bold(H.preferredNotifChannel)}`);if(L!==A.current)R0.push(`Set output style to ${_1.bold(L)}`);if(R!==$.current)R0.push(`Set response language to ${_1.bold(R??"Default (English)")}`);if(H.editorMode!==U.current.editorMode)R0.push(`Set editor mode to ${_1.bold(H.editorMode||"emacs")}`);if(H.diffTool!==U.current.diffTool)R0.push(`Set diff tool to ${_1.bold(H.diffTool)}`);if(H.autoConnectIde!==U.current.autoConnectIde)R0.push(`${H.autoConnectIde?"Enabled":"Disabled"} auto-connect to IDE`);if(H.autoInstallIdeExtension!==U.current.autoInstallIdeExtension)R0.push(`${H.autoInstallIdeExtension?"Enabled":"Disabled"} auto-install IDE extension`);if(H.autoCompactEnabled!==U.current.autoCompactEnabled)R0.push(`${H.autoCompactEnabled?"Enabled":"Disabled"} auto-compact`);if(H.respectGitignore!==U.current.respectGitignore)R0.push(`${H.respectGitignore?"Enabled":"Disabled"} respect .gitignore in file picker`);if(H.copyFullResponse!==U.current.copyFullResponse)R0.push(`${H.copyFullResponse?"Enabled":"Disabled"} always copy full response`);if(H.copyOnSelect!==U.current.copyOnSelect)R0.push(`${H.copyOnSelect?"Enabled":"Disabled"} copy on select`);if(H.terminalProgressBarEnabled!==U.current.terminalProgressBarEnabled)R0.push(`${H.terminalProgressBarEnabled?"Enabled":"Disabled"} terminal progress bar`);if(H.showStatusInTerminalTab!==U.current.showStatusInTerminalTab)R0.push(`${H.showStatusInTerminalTab?"Enabled":"Disabled"} terminal tab status`);if(H.showTurnDuration!==U.current.showTurnDuration)R0.push(`${H.showTurnDuration?"Enabled":"Disabled"} turn duration`);if(F?.autoUpdatesChannel!==O.current?.autoUpdatesChannel)R0.push(`Set auto-update channel to ${_1.bold(F?.autoUpdatesChannel??"latest")}`);if(R0.length>0)J(R0.join(`
|
|
5090
|
-
`));else J("Config dialog dismissed",{display:"system"})},[F0,G0,H,p,L,R,F?.autoUpdatesChannel,B9()?F?.fastMode:void 0,J]),c0=pK.useCallback(()=>{if(W!==Z0.current)z(Z0.current);q8(()=>U.current);let R0=y0;y6("localSettings",{spinnerTipsEnabled:R0?.spinnerTipsEnabled,prefersReducedMotion:R0?.prefersReducedMotion,defaultView:R0?.defaultView,outputStyle:R0?.outputStyle});let p0=V0;y6("userSettings",{alwaysThinkingEnabled:p0?.alwaysThinkingEnabled,fastMode:p0?.fastMode,promptSuggestionEnabled:p0?.promptSuggestionEnabled,autoUpdatesChannel:p0?.autoUpdatesChannel,minimumVersion:p0?.minimumVersion,language:p0?.language,...{},syntaxHighlightingDisabled:p0?.syntaxHighlightingDisabled,permissions:p0?.permissions===void 0?void 0:{...p0.permissions,defaultMode:p0.permissions.defaultMode}});let o0=q0;if(Y0((R1)=>({...R1,mainLoopModel:o0.mainLoopModel,mainLoopModelForSession:o0.mainLoopModelForSession,verbose:o0.verbose,thinkingEnabled:o0.thinkingEnabled,fastMode:o0.fastMode,promptSuggestionEnabled:o0.promptSuggestionEnabled,isBriefOnly:o0.isBriefOnly,settings:o0.settings,toolPermissionContext:Ul0(R1.toolPermissionContext)})),vM0()!==Q0)QQ1(Q0)},[W,z,y0,V0,q0,Q0,Y0]),t0=pK.useCallback(()=>{if(F0!==null)return;if(a.current)c0();J("Config dialog dismissed",{display:"system"})},[F0,c0,J]);J8("confirm:no",t0,{context:"Settings",isActive:F0===null&&!S&&!q}),J8("settings:close",g0,{context:"Settings",isActive:F0===null&&!S&&!q});let K1=pK.useCallback(()=>{let R0=T0[y];if(!R0||!R0.onChange)return;if(R0.type==="boolean"){if(a.current=!0,R0.onChange(!R0.value),R0.id==="thinkingEnabled"){if(!R0.value===W0.current)D0(!1);else if(Q.messages.some((R1)=>R1.type==="assistant"))D0(!0)}return}if(R0.id==="theme"||R0.id==="model"||R0.id==="teammateDefaultModel"||R0.id==="showExternalIncludesDialog"||R0.id==="outputStyle"||R0.id==="language")switch(R0.id){case"theme":I0("Theme"),X(!0);return;case"model":I0("Model"),X(!0);return;case"teammateDefaultModel":I0("TeammateModel"),X(!0);return;case"showExternalIncludesDialog":I0("ExternalIncludes"),X(!0);return;case"outputStyle":I0("OutputStyle"),X(!0);return;case"language":I0("Language"),X(!0);return}if(R0.id==="autoUpdatesChannel"){if(_0){I0("EnableAutoUpdates"),X(!0);return}if((F?.autoUpdatesChannel??"latest")==="latest")I0("ChannelDowngrade"),X(!0);else a.current=!0,y6("userSettings",{autoUpdatesChannel:"latest",minimumVersion:void 0}),_((o0)=>({...o0,autoUpdatesChannel:"latest",minimumVersion:void 0})),l("jarvis_api_error",{channel:"latest"});return}if(R0.type==="enum"){a.current=!0;let o0=(R0.options.indexOf(R0.value)+1)%R0.options.length;R0.onChange(R0.options[o0]);return}},[_0,T0,y,F?.autoUpdatesChannel,X]),K0=(R0)=>{D0(!1);let p0=Math.max(0,Math.min(T0.length-1,y+R0));v(p0),S0(p0)};C6({"select:previous":()=>{if(y===0)D0(!1),k(!0),C(0);else K0(-1)},"select:next":()=>K0(1),"scroll:lineUp":()=>K0(-1),"scroll:lineDown":()=>K0(1),"select:accept":K1,"settings:search":()=>{k(!0),P0("")}},{context:"Settings",isActive:F0===null&&!S&&!q});let m0=pK.useCallback((R0)=>{if(F0!==null)return;if(q)return;if(S){if(R0.key==="escape"){if(R0.preventDefault(),U0.length>0)P0("");else k(!1);return}if(R0.key==="return"||R0.key==="down"||R0.key==="wheeldown")R0.preventDefault(),k(!1),v(0),C(0);return}if(R0.key==="left"||R0.key==="right"||R0.key==="tab"){R0.preventDefault(),K1();return}if(R0.ctrl||R0.meta)return;if(R0.key==="j"||R0.key==="k"||R0.key==="/")return;if(R0.key.length===1&&R0.key!==" ")R0.preventDefault(),k(!0),P0(R0.key)},[F0,q,S,U0,P0,K1]);return o8.jsxDEV(f,{flexDirection:"column",width:"100%",tabIndex:0,autoFocus:!0,onKeyDown:m0,children:F0==="Theme"?o8.jsxDEV(o8.Fragment,{children:[o8.jsxDEV(QZ0,{onThemeSelect:(R0)=>{a.current=!0,z(R0),I0(null),X(!1)},onCancel:()=>{I0(null),X(!1)},hideEscToCancel:!0,skipExitHandling:!0},void 0,!1,void 0,this),o8.jsxDEV(f,{children:o8.jsxDEV(M,{dimColor:!0,italic:!0,children:o8.jsxDEV(V8,{children:[o8.jsxDEV(p1,{shortcut:"Enter",action:"select"},void 0,!1,void 0,this),o8.jsxDEV(s1,{action:"confirm:no",context:"Confirmation",fallback:"Esc",description:"cancel"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this):F0==="Model"?o8.jsxDEV(o8.Fragment,{children:[o8.jsxDEV(Ur,{initial:p,onSelect:(R0,p0)=>{a.current=!0,M0(R0),I0(null),X(!1)},onCancel:()=>{I0(null),X(!1)},showFastModeNotice:B9()?J0&&DK(p)&&GG():!1},void 0,!1,void 0,this),o8.jsxDEV(M,{dimColor:!0,children:o8.jsxDEV(V8,{children:[o8.jsxDEV(p1,{shortcut:"Enter",action:"confirm"},void 0,!1,void 0,this),o8.jsxDEV(s1,{action:"confirm:no",context:"Confirmation",fallback:"Esc",description:"cancel"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this):F0==="TeammateModel"?o8.jsxDEV(o8.Fragment,{children:[o8.jsxDEV(Ur,{initial:H.teammateDefaultModel??null,skipSettingsWrite:!0,headerText:"Default model for newly spawned teammates. The leader can override via the tool call's model parameter.",onSelect:(R0,p0)=>{if(I0(null),X(!1),H.teammateDefaultModel===void 0&&R0===null)return;a.current=!0,q8((o0)=>o0.teammateDefaultModel===R0?o0:{...o0,teammateDefaultModel:R0}),B({...L1(),teammateDefaultModel:R0}),j0((o0)=>({...o0,teammateDefaultModel:VXJ(R0)})),l("jarvis_api_error",{model:R0})},onCancel:()=>{I0(null),X(!1)}},void 0,!1,void 0,this),o8.jsxDEV(M,{dimColor:!0,children:o8.jsxDEV(V8,{children:[o8.jsxDEV(p1,{shortcut:"Enter",action:"confirm"},void 0,!1,void 0,this),o8.jsxDEV(s1,{action:"confirm:no",context:"Confirmation",fallback:"Esc",description:"cancel"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this):F0==="ExternalIncludes"?o8.jsxDEV(o8.Fragment,{children:[o8.jsxDEV(Un1,{onDone:()=>{I0(null),X(!1)},externalIncludes:qN0(u0)},void 0,!1,void 0,this),o8.jsxDEV(M,{dimColor:!0,children:o8.jsxDEV(V8,{children:[o8.jsxDEV(p1,{shortcut:"Enter",action:"confirm"},void 0,!1,void 0,this),o8.jsxDEV(s1,{action:"confirm:no",context:"Confirmation",fallback:"Esc",description:"disable external includes"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this):F0==="OutputStyle"?o8.jsxDEV(o8.Fragment,{children:[o8.jsxDEV(BXJ,{initialStyle:L,onComplete:(R0)=>{a.current=!0,N(R0??F2),I0(null),X(!1),y6("localSettings",{outputStyle:R0}),l("jarvis_api_error",{style:R0??F2,source:"config_panel",settings_source:"localSettings"})},onCancel:()=>{I0(null),X(!1)}},void 0,!1,void 0,this),o8.jsxDEV(M,{dimColor:!0,children:o8.jsxDEV(V8,{children:[o8.jsxDEV(p1,{shortcut:"Enter",action:"confirm"},void 0,!1,void 0,this),o8.jsxDEV(s1,{action:"confirm:no",context:"Confirmation",fallback:"Esc",description:"cancel"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this):F0==="Language"?o8.jsxDEV(o8.Fragment,{children:[o8.jsxDEV(_XJ,{initialLanguage:R,onComplete:(R0)=>{a.current=!0,D(R0),I0(null),X(!1),y6("userSettings",{language:R0}),l("jarvis_api_error",{language:R0??"default",source:"config_panel"})},onCancel:()=>{I0(null),X(!1)}},void 0,!1,void 0,this),o8.jsxDEV(M,{dimColor:!0,children:o8.jsxDEV(V8,{children:[o8.jsxDEV(p1,{shortcut:"Enter",action:"confirm"},void 0,!1,void 0,this),o8.jsxDEV(s1,{action:"confirm:no",context:"Settings",fallback:"Esc",description:"cancel"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this):F0==="EnableAutoUpdates"?o8.jsxDEV(D8,{title:"Enable Auto-Updates",onCancel:()=>{I0(null),X(!1)},hideBorder:!0,hideInputGuide:!0,children:_0?.type!=="config"?o8.jsxDEV(o8.Fragment,{children:[o8.jsxDEV(M,{children:_0?.type==="env"?"Auto-updates are controlled by an environment variable and cannot be changed here.":"Auto-updates are disabled in development builds."},void 0,!1,void 0,this),_0?.type==="env"&&o8.jsxDEV(M,{dimColor:!0,children:["Unset ",_0.envVar," to re-enable auto-updates."]},void 0,!0,void 0,this)]},void 0,!0,void 0,this):o8.jsxDEV(Q8,{options:[{label:"Enable with latest channel",value:"latest"},{label:"Enable with stable channel",value:"stable"}],onChange:(R0)=>{a.current=!0,I0(null),X(!1),q8((p0)=>({...p0,autoUpdates:!0})),B({...L1(),autoUpdates:!0}),y6("userSettings",{autoUpdatesChannel:R0,minimumVersion:void 0}),_((p0)=>({...p0,autoUpdatesChannel:R0,minimumVersion:void 0})),l("jarvis_api_error",{channel:R0})}},void 0,!1,void 0,this)},void 0,!1,void 0,this):F0==="ChannelDowngrade"?o8.jsxDEV(GXJ,{currentVersion:"0.1.16",onChoice:(R0)=>{if(I0(null),X(!1),R0==="cancel")return;a.current=!0;let p0={autoUpdatesChannel:"stable"};if(R0==="stay")p0.minimumVersion="0.1.16";y6("userSettings",p0),_((o0)=>({...o0,...p0})),l("jarvis_api_error",{channel:"stable",minimum_version_set:R0==="stay"})}},void 0,!1,void 0,this):o8.jsxDEV(f,{flexDirection:"column",gap:1,marginY:G?void 0:1,children:[o8.jsxDEV(LD,{query:U0,isFocused:S&&!q,isTerminalFocused:h,cursorOffset:$0,placeholder:"Search settings\u2026"},void 0,!1,void 0,this),o8.jsxDEV(f,{flexDirection:"column",children:T0.length===0?o8.jsxDEV(M,{dimColor:!0,italic:!0,children:['No settings match "',U0,'"']},void 0,!0,void 0,this):o8.jsxDEV(o8.Fragment,{children:[E>0&&o8.jsxDEV(M,{dimColor:!0,children:[s0.arrowUp," ",E," more above"]},void 0,!0,void 0,this),T0.slice(E,E+m).map((R0,p0)=>{let R1=E+p0===y&&!q&&!S;return o8.jsxDEV(uH.Fragment,{children:o8.jsxDEV(f,{children:[o8.jsxDEV(f,{width:44,children:o8.jsxDEV(M,{color:R1?"suggestion":void 0,children:[R1?s0.pointer:" "," ",R0.label]},void 0,!0,void 0,this)},void 0,!1,void 0,this),o8.jsxDEV(f,{children:R0.type==="boolean"?o8.jsxDEV(o8.Fragment,{children:[o8.jsxDEV(M,{color:R1?"suggestion":void 0,children:R0.value.toString()},void 0,!1,void 0,this),O0&&R0.id==="thinkingEnabled"&&o8.jsxDEV(M,{color:"warning",children:[" ","Changing thinking mode mid-conversation will increase latency and may reduce quality."]},void 0,!0,void 0,this)]},void 0,!0,void 0,this):R0.id==="theme"?o8.jsxDEV(M,{color:R1?"suggestion":void 0,children:aXQ[R0.value.toString()]??R0.value.toString()},void 0,!1,void 0,this):R0.id==="notifChannel"?o8.jsxDEV(M,{color:R1?"suggestion":void 0,children:o8.jsxDEV(oXQ,{value:R0.value.toString()},void 0,!1,void 0,this)},void 0,!1,void 0,this):R0.id==="defaultPermissionMode"?o8.jsxDEV(M,{color:R1?"suggestion":void 0,children:kb(R0.value)},void 0,!1,void 0,this):R0.id==="autoUpdatesChannel"&&_0?o8.jsxDEV(f,{flexDirection:"column",children:[o8.jsxDEV(M,{color:R1?"suggestion":void 0,children:"disabled"},void 0,!1,void 0,this),o8.jsxDEV(M,{dimColor:!0,children:["(",Sv0(_0),")"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this):o8.jsxDEV(M,{color:R1?"suggestion":void 0,children:R0.value.toString()},void 0,!1,void 0,this)},R1?"selected":"unselected",!1,void 0,this)]},void 0,!0,void 0,this)},R0.id,!1,void 0,this)}),E+m<T0.length&&o8.jsxDEV(M,{dimColor:!0,children:[s0.arrowDown," ",T0.length-E-m," ","more below"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this),q?o8.jsxDEV(M,{dimColor:!0,children:o8.jsxDEV(V8,{children:[o8.jsxDEV(p1,{shortcut:"\u2190/\u2192 tab",action:"switch"},void 0,!1,void 0,this),o8.jsxDEV(p1,{shortcut:"\u2193",action:"return"},void 0,!1,void 0,this),o8.jsxDEV(s1,{action:"confirm:no",context:"Settings",fallback:"Esc",description:"close"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this):S?o8.jsxDEV(M,{dimColor:!0,children:o8.jsxDEV(V8,{children:[o8.jsxDEV(M,{children:"Type to filter"},void 0,!1,void 0,this),o8.jsxDEV(p1,{shortcut:"Enter/\u2193",action:"select"},void 0,!1,void 0,this),o8.jsxDEV(p1,{shortcut:"\u2191",action:"tabs"},void 0,!1,void 0,this),o8.jsxDEV(s1,{action:"confirm:no",context:"Settings",fallback:"Esc",description:"clear"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this):o8.jsxDEV(M,{dimColor:!0,children:o8.jsxDEV(V8,{children:[o8.jsxDEV(s1,{action:"select:accept",context:"Settings",fallback:"Space",description:"change"},void 0,!1,void 0,this),o8.jsxDEV(s1,{action:"settings:close",context:"Settings",fallback:"Enter",description:"save"},void 0,!1,void 0,this),o8.jsxDEV(s1,{action:"settings:search",context:"Settings",fallback:"/",description:"search"},void 0,!1,void 0,this),o8.jsxDEV(s1,{action:"confirm:no",context:"Settings",fallback:"Esc",description:"cancel"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this)}function VXJ(J){if(J===void 0)return kO(nL0());if(J===null)return"Default (leader's model)";return kO(J)}function oXQ(J){let Q=NXJ.c(4),{value:X}=J;switch(X){case"auto":return"Auto";case"iterm2":{let Z;if(Q[0]===Symbol.for("react.memo_cache_sentinel"))Z=o8.jsxDEV(M,{children:["iTerm2 ",o8.jsxDEV(M,{dimColor:!0,children:"(OSC 9)"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),Q[0]=Z;else Z=Q[0];return Z}case"terminal_bell":{let Z;if(Q[1]===Symbol.for("react.memo_cache_sentinel"))Z=o8.jsxDEV(M,{children:["Terminal Bell ",o8.jsxDEV(M,{dimColor:!0,children:"(\\a)"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),Q[1]=Z;else Z=Q[1];return Z}case"kitty":{let Z;if(Q[2]===Symbol.for("react.memo_cache_sentinel"))Z=o8.jsxDEV(M,{children:["Kitty ",o8.jsxDEV(M,{dimColor:!0,children:"(OSC 99)"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),Q[2]=Z;else Z=Q[2];return Z}case"ghostty":{let Z;if(Q[3]===Symbol.for("react.memo_cache_sentinel"))Z=o8.jsxDEV(M,{children:["Ghostty ",o8.jsxDEV(M,{dimColor:!0,children:"(OSC 777)"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),Q[3]=Z;else Z=Q[3];return Z}case"iterm2_with_bell":return"iTerm2 w/ Bell";case"notifications_disabled":return"Disabled";default:return X}}var NXJ,uH,pK,o8,aXQ;var AXJ=I(()=>{a0();f6();r6();m8();c30();m8();k7();vW();JW();M1();D1();De0();W6();ye0();CJ();be0();Fn1();zXJ();M9();tX();UXJ();OXJ();ez();g9();U7();R9();ew();rE();Lr();b5();g8();N1();Vj();t1();lZ();c70();wc1();Tu();U9();$B();fz();NXJ=T(e0(),1),uH=T(J1(),1),pK=T(J1(),1),o8=T(e(),1);aXQ={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)"}});async function RXJ(J){let{accessToken:Q,orgUUID:X}=await Sw(),Z={...$q(Q),"x-organization-uuid":X},Y=`${qJ().BASE_API_URL}/api/oauth/organizations/${X}/admin_requests`;return(await y8.post(Y,J,{headers:Z})).data}async function MXJ(J,Q){let{accessToken:X,orgUUID:Z}=await Sw(),Y={...$q(X),"x-organization-uuid":Z},q=`${qJ().BASE_API_URL}/api/oauth/organizations/${Z}/admin_requests/me?request_type=${J}`;for(let G of Q)q+=`&statuses=${G}`;return(await y8.get(q,{headers:Y})).data}async function DXJ(J){let{accessToken:Q,orgUUID:X}=await Sw(),Z={...$q(Q),"x-organization-uuid":X},Y=`${qJ().BASE_API_URL}/api/oauth/organizations/${X}/admin_requests/eligibility?request_type=${J}`;return(await y8.get(Y,{headers:Z})).data}var $XJ=I(()=>{JX();$Z();TL()});function KN0(){let J=Yq()?.organizationUuid;if(!J)return null;let Q=L1().overageCreditGrantCache?.[J];if(!Q)return null;if(Date.now()-Q.timestamp>sXQ)return null;return Q.info}function jXJ(){let J=Yq()?.organizationUuid;if(!J)return;let Q=L1().overageCreditGrantCache;if(!Q||!(J in Q))return;q8((X)=>{let Z={...X.overageCreditGrantCache};return delete Z[J],{...X,overageCreditGrantCache:Z}})}function GN0(J){if(J.amount_minor_units==null||!J.currency)return null;if(J.currency.toUpperCase()==="USD"){let Q=J.amount_minor_units/100;return Number.isInteger(Q)?`$${Q}`:`$${Q.toFixed(2)}`}return null}var sXQ=3600000;var Pe0=I(()=>{$Z();N9();m8();M1();TL()});async function Ee0(){if(!q9()||!PS())return{};let J=eJ();if(J&&mc(J.expiresAt))return null;let Q=lE();if(Q.error)throw Error(`Auth error: ${Q.error}`);let X={"Content-Type":"application/json","User-Agent":sz(),...Q.headers},Z=`${qJ().BASE_API_URL}/api/oauth/usage`;return(await y8.get(Z,{headers:X,timeout:5000})).data}var Ln1=I(()=>{JX();$Z();N9();lk();x$()});function Te0(){if(q9())return!1;let Q=TP(),X=gc()!==null;if(!Q.hasToken&&!X)return!1;let Z=L1(),Y=Z.oauthAccount?.organizationRole,q=Z.oauthAccount?.workspaceRole;if(!Y||!q)return!1;return["admin","billing"].includes(Y)||["workspace_admin","workspace_billing"].includes(q)}function IXJ(){if(!q9())return!1;return!0}var Ce0=I(()=>{N9();m8()});async function ve0(){if(!L1().hasVisitedExtraUsage)q8((Z)=>({...Z,hasVisitedExtraUsage:!0}));jXJ();let J=!1;if(!IXJ()&&J){let Z;try{Z=(await Ee0())?.extra_usage}catch(Y){H0(Y)}if(Z?.is_enabled&&Z.monthly_limit===null)return{type:"message",value:"Your organization already has unlimited extra usage. No request needed."};try{if((await DXJ("limit_increase"))?.is_allowed===!1)return{type:"message",value:"Please contact your admin to manage extra usage settings."}}catch(Y){H0(Y)}try{let Y=await MXJ("limit_increase",["pending","dismissed"]);if(Y&&Y.length>0)return{type:"message",value:"You have already submitted a request for extra usage to your admin."}}catch(Y){H0(Y)}try{return await RXJ({request_type:"limit_increase",details:null}),{type:"message",value:Z?.is_enabled?"Request sent to your admin to increase extra usage.":"Request sent to your admin to enable extra usage."}}catch(Y){H0(Y)}return{type:"message",value:"Please contact your admin to manage extra usage settings."}}let X=J?"https://glock/admin-settings/usage":"https://glock/settings/usage";try{let Z=await IX(X);return{type:"browser-opened",url:X,opened:Z}}catch(Z){return H0(Z),{type:"message",value:`Failed to open browser. Please visit ${X} to manage extra usage.`}}}var Vn1=I(()=>{$XJ();Pe0();Ln1();Ce0();s3();m8();M1()});var yXJ={};X8(yXJ,{call:()=>tXQ});async function tXQ(J,Q){let X=await ve0();if(X.type==="message")return J(X.value),null;return bXJ.jsxDEV(Ys0,{startingMessage:"Starting new login following /extra-usage. Exit with Ctrl-C to use existing account.",onDone:(Z)=>{Q.onChangeAPIKey(),J(Z?"Login successful":"Login interrupted")}},void 0,!1,void 0,this)}var bXJ;var PXJ=I(()=>{hL0();Vn1();bXJ=T(e(),1)});var EXJ={};X8(EXJ,{call:()=>eXQ});async function eXQ(){let J=await ve0();if(J.type==="message")return{type:"text",value:J.value};return{type:"text",value:J.opened?`Browser opened to manage extra usage. If it didn't open, visit: ${J.url}`:`Please visit ${J.url} to manage extra usage.`}}var TXJ=I(()=>{Vn1()});function CXJ(){return!1}var fe0,vXJ;var Nn1=I(()=>{N1();fe0={type:"local-jsx",name:"extra-usage",description:"Configure extra usage to keep working when limits are hit",isEnabled:()=>CXJ()&&!x6(),load:()=>Promise.resolve().then(() => (PXJ(),yXJ))},vXJ={type:"local",name:"extra-usage",supportsNonInteractive:!0,description:"Configure extra usage to keep working when limits are hit",isEnabled:()=>CXJ()&&x6(),get isHidden(){return!x6()},load:()=>Promise.resolve().then(() => (TXJ(),EXJ))}});function wn1(){let J=KN0();if(!J||!J.available||J.granted)return!1;return GN0(J)!==null}function kXJ(){if(!wn1())return!1;let J=L1();if(J.hasVisitedExtraUsage)return!1;if((J.overageCreditUpsellSeenCount??0)>=QZQ)return!1;return!0}function XZQ(J){return`${J} in extra usage for third-party apps \xB7 /extra-usage`}function SXJ(J){return`${J} in extra usage`}function hXJ(J){let Q=xXJ.c(8),{maxWidth:X,twoLine:Z}=J,Y,q;if(Q[0]!==X||Q[1]!==Z){q=Symbol.for("react.early_return_sentinel");J:{let K=KN0();if(!K){q=null;break J}let G=GN0(K);if(!G){q=null;break J}if(Z){let B=SXJ(G),U;if(Q[4]!==X)U=X?KZ(fXJ,X):fXJ,Q[4]=X,Q[5]=U;else U=Q[5];let F;if(Q[6]!==U)F=Cu.jsxDEV(M,{dimColor:!0,children:U},void 0,!1,void 0,this),Q[6]=U,Q[7]=F;else F=Q[7];q=Cu.jsxDEV(Cu.Fragment,{children:[Cu.jsxDEV(M,{color:"glock",children:X?KZ(B,X):B},void 0,!1,void 0,this),F]},void 0,!0,void 0,this);break J}let z=XZQ(G),W=X?KZ(z,X):z,H=Math.min(SXJ(G).length,W.length);Y=Cu.jsxDEV(M,{dimColor:!0,children:[Cu.jsxDEV(M,{color:"glock",children:W.slice(0,H)},void 0,!1,void 0,this),W.slice(H)]},void 0,!0,void 0,this)}Q[0]=X,Q[1]=Z,Q[2]=Y,Q[3]=q}else Y=Q[2],q=Q[3];if(q!==Symbol.for("react.early_return_sentinel"))return q;return Y}var xXJ,JZQ,Cu,QZQ=3,fXJ="On us. Works on third-party apps \xB7 /extra-usage";var An1=I(()=>{a0();D1();Pe0();m8();A6();xXJ=T(e0(),1),JZQ=T(J1(),1),Cu=T(e(),1)});function gXJ(J){let Q=Mn1.c(34),{title:X,limit:Z,maxWidth:Y,showTimeInReset:q,extraSubtext:K}=J,G=q===void 0?!0:q,{utilization:z,resets_at:W}=Z;if(z===null)return null;let H=`${Math.floor(z)}% used`,B;if(W){let U;if(Q[0]!==W||Q[1]!==G)U=sZ8(W,!0,G),Q[0]=W,Q[1]=G,Q[2]=U;else U=Q[2];B=`Resets ${U}`}if(K)if(B)B=`${K} \xB7 ${B}`;else B=K;if(Y>=62){let U;if(Q[3]!==X)U=RQ.jsxDEV(M,{bold:!0,children:X},void 0,!1,void 0,this),Q[3]=X,Q[4]=U;else U=Q[4];let F=z/100,_;if(Q[5]!==F)_=RQ.jsxDEV(GF0,{ratio:F,width:50,fillColor:"rate_limit_fill",emptyColor:"rate_limit_empty"},void 0,!1,void 0,this),Q[5]=F,Q[6]=_;else _=Q[6];let O;if(Q[7]!==H)O=RQ.jsxDEV(M,{children:H},void 0,!1,void 0,this),Q[7]=H,Q[8]=O;else O=Q[8];let L;if(Q[9]!==_||Q[10]!==O)L=RQ.jsxDEV(f,{flexDirection:"row",gap:1,children:[_,O]},void 0,!0,void 0,this),Q[9]=_,Q[10]=O,Q[11]=L;else L=Q[11];let N;if(Q[12]!==B)N=B&&RQ.jsxDEV(M,{dimColor:!0,children:B},void 0,!1,void 0,this),Q[12]=B,Q[13]=N;else N=Q[13];let A;if(Q[14]!==U||Q[15]!==L||Q[16]!==N)A=RQ.jsxDEV(f,{flexDirection:"column",children:[U,L,N]},void 0,!0,void 0,this),Q[14]=U,Q[15]=L,Q[16]=N,Q[17]=A;else A=Q[17];return A}else{let U;if(Q[18]!==X)U=RQ.jsxDEV(M,{bold:!0,children:X},void 0,!1,void 0,this),Q[18]=X,Q[19]=U;else U=Q[19];let F;if(Q[20]!==B)F=B&&RQ.jsxDEV(RQ.Fragment,{children:[RQ.jsxDEV(M,{children:" "},void 0,!1,void 0,this),RQ.jsxDEV(M,{dimColor:!0,children:["\xB7 ",B]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),Q[20]=B,Q[21]=F;else F=Q[21];let _;if(Q[22]!==U||Q[23]!==F)_=RQ.jsxDEV(M,{children:[U,F]},void 0,!0,void 0,this),Q[22]=U,Q[23]=F,Q[24]=_;else _=Q[24];let O=z/100,L;if(Q[25]!==Y||Q[26]!==O)L=RQ.jsxDEV(GF0,{ratio:O,width:Y,fillColor:"rate_limit_fill",emptyColor:"rate_limit_empty"},void 0,!1,void 0,this),Q[25]=Y,Q[26]=O,Q[27]=L;else L=Q[27];let N;if(Q[28]!==H)N=RQ.jsxDEV(M,{children:H},void 0,!1,void 0,this),Q[28]=H,Q[29]=N;else N=Q[29];let A;if(Q[30]!==_||Q[31]!==L||Q[32]!==N)A=RQ.jsxDEV(f,{flexDirection:"column",children:[_,L,N]},void 0,!0,void 0,this),Q[30]=_,Q[31]=L,Q[32]=N,Q[33]=A;else A=Q[33];return A}}function mXJ(){let[J,Q]=XZ0.useState(null),[X,Z]=XZ0.useState(null),[Y,q]=XZ0.useState(!0),{columns:K}=l8(),G=K-2,z=Math.min(G,80),W=uXJ.useCallback(async()=>{q(!0),Z(null);try{let U=await Ee0();Q(U)}catch(U){H0(U);let F=U,_=F.response?.data?l0(F.response.data):void 0;Z(_?`Failed to load usage data: ${_}`:"Failed to load usage data")}finally{q(!1)}},[]);if(XZ0.useEffect(()=>{W()},[W]),J8("settings:retry",()=>{W()},{context:"Settings",isActive:!!X&&!Y}),X)return RQ.jsxDEV(f,{flexDirection:"column",gap:1,children:[RQ.jsxDEV(M,{color:"error",children:["Error: ",X]},void 0,!0,void 0,this),RQ.jsxDEV(M,{dimColor:!0,children:RQ.jsxDEV(V8,{children:[RQ.jsxDEV(s1,{action:"settings:retry",context:"Settings",fallback:"r",description:"retry"},void 0,!1,void 0,this),RQ.jsxDEV(s1,{action:"confirm:no",context:"Settings",fallback:"Esc",description:"cancel"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this);if(!J)return RQ.jsxDEV(f,{flexDirection:"column",gap:1,children:[RQ.jsxDEV(M,{dimColor:!0,children:"Loading usage data\u2026"},void 0,!1,void 0,this),RQ.jsxDEV(M,{dimColor:!0,children:RQ.jsxDEV(s1,{action:"confirm:no",context:"Settings",fallback:"Esc",description:"cancel"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this);let H=!0,B=[{title:"Current session",limit:J.five_hour},{title:"Current week (all models)",limit:J.seven_day},...H?[{title:"Current week (Sonnet only)",limit:J.seven_day_sonnet}]:[]];return RQ.jsxDEV(f,{flexDirection:"column",gap:1,width:"100%",children:[B.some(({limit:U})=>U)||RQ.jsxDEV(M,{dimColor:!0,children:"/usage is only available for subscription plans."},void 0,!1,void 0,this),B.map(({title:U,limit:F})=>F&&RQ.jsxDEV(gXJ,{title:U,limit:F,maxWidth:z},U,!1,void 0,this)),J.extra_usage&&RQ.jsxDEV(ZZQ,{extraUsage:J.extra_usage,maxWidth:z},void 0,!1,void 0,this),wn1()&&RQ.jsxDEV(hXJ,{maxWidth:z},void 0,!1,void 0,this),RQ.jsxDEV(M,{dimColor:!0,children:RQ.jsxDEV(s1,{action:"confirm:no",context:"Settings",fallback:"Esc",description:"cancel"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}function ZZQ(J){let Q=Mn1.c(20),{extraUsage:X,maxWidth:Z}=J;if(!X.is_enabled){if(fe0.isEnabled()){let N;if(Q[0]===Symbol.for("react.memo_cache_sentinel"))N=RQ.jsxDEV(f,{flexDirection:"column",children:[RQ.jsxDEV(M,{bold:!0,children:Rn1},void 0,!1,void 0,this),RQ.jsxDEV(M,{dimColor:!0,children:"Extra usage not enabled \xB7 /extra-usage to enable"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),Q[0]=N;else N=Q[0];return N}return null}if(X.monthly_limit===null){let N;if(Q[1]===Symbol.for("react.memo_cache_sentinel"))N=RQ.jsxDEV(f,{flexDirection:"column",children:[RQ.jsxDEV(M,{bold:!0,children:Rn1},void 0,!1,void 0,this),RQ.jsxDEV(M,{dimColor:!0,children:"Unlimited"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),Q[1]=N;else N=Q[1];return N}if(typeof X.used_credits!=="number"||typeof X.utilization!=="number")return null;let Y=X.used_credits/100,q;if(Q[2]!==Y)q=EF0(Y,2),Q[2]=Y,Q[3]=q;else q=Q[3];let K=q,G=X.monthly_limit/100,z;if(Q[4]!==G)z=EF0(G,2),Q[4]=G,Q[5]=z;else z=Q[5];let W=z,H,B,U,F;if(Q[6]!==X.utilization){let N=new Date,A=new Date(N.getFullYear(),N.getMonth()+1,1);H=gXJ,F=Rn1,B=X.utilization,U=A.toISOString(),Q[6]=X.utilization,Q[7]=H,Q[8]=B,Q[9]=U,Q[10]=F}else H=Q[7],B=Q[8],U=Q[9],F=Q[10];let _;if(Q[11]!==B||Q[12]!==U)_={utilization:B,resets_at:U},Q[11]=B,Q[12]=U,Q[13]=_;else _=Q[13];let O=`${K} / ${W} spent`,L;if(Q[14]!==H||Q[15]!==Z||Q[16]!==F||Q[17]!==_||Q[18]!==O)L=RQ.jsxDEV(H,{title:F,limit:_,showTimeInReset:!1,extraSubtext:O,maxWidth:Z},void 0,!1,void 0,this),Q[14]=H,Q[15]=Z,Q[16]=F,Q[17]=_,Q[18]=O,Q[19]=L;else L=Q[19];return L}var Mn1,uXJ,XZ0,RQ,Rn1="Extra usage";var pXJ=I(()=>{Nn1();JI();U9();a0();f6();Ln1();A6();M1();i1();U7();R9();bv1();An1();Mn1=T(e0(),1),uXJ=T(J1(),1),XZ0=T(J1(),1),RQ=T(e(),1)});function ZZ0(J){let Q=cXJ.c(25),{onClose:X,context:Z,defaultTab:Y}=J,[q,K]=vu.useState(Y),[G,z]=vu.useState(!1),[W,H]=vu.useState(!1),[B,U]=vu.useState(!1),F=oF(),{rows:_}=ER6(l8()),O=F?_+1:Math.max(15,Math.min(Math.floor(_*0.8),30)),[L]=vu.useState(YZQ);B7();let N;if(Q[0]!==X||Q[1]!==G)N=()=>{if(G)return;X("Status dialog dismissed",{display:"system"})},Q[0]=X,Q[1]=G,Q[2]=N;else N=Q[2];let A=N,R=!G&&!(q==="Config"&&W)&&!(q==="Gates"&&B),D;if(Q[3]!==R)D={context:"Settings",isActive:R},Q[3]=R,Q[4]=D;else D=Q[4];J8("confirm:no",A,D);let $;if(Q[5]!==Z||Q[6]!==L)$=iI.jsxDEV(_Y,{title:"Status",children:iI.jsxDEV(sQJ,{context:Z,diagnosticsPromise:L},void 0,!1,void 0,this)},"status",!1,void 0,this),Q[5]=Z,Q[6]=L,Q[7]=$;else $=Q[7];let y;if(Q[8]!==O||Q[9]!==Z||Q[10]!==X)y=iI.jsxDEV(_Y,{title:"Config",children:iI.jsxDEV(vu.Suspense,{fallback:null,children:iI.jsxDEV(wXJ,{context:Z,onClose:X,setTabsHidden:z,onIsSearchModeChange:H,contentHeight:O},void 0,!1,void 0,this)},void 0,!1,void 0,this)},"config",!1,void 0,this),Q[8]=O,Q[9]=Z,Q[10]=X,Q[11]=y;else y=Q[11];let v;if(Q[12]===Symbol.for("react.memo_cache_sentinel"))v=iI.jsxDEV(_Y,{title:"Usage",children:iI.jsxDEV(mXJ,{},void 0,!1,void 0,this)},"usage",!1,void 0,this),Q[12]=v;else v=Q[12];let E;if(Q[13]!==O)E=[],Q[13]=O,Q[14]=E;else E=Q[14];let C;if(Q[15]!==$||Q[16]!==y||Q[17]!==E)C=[$,y,v,...E],Q[15]=$,Q[16]=y,Q[17]=E,Q[18]=C;else C=Q[18];let S=C,k=Y!=="Config"&&Y!=="Gates",h=G||F?void 0:O,u;if(Q[19]!==q||Q[20]!==h||Q[21]!==k||Q[22]!==S||Q[23]!==G)u=iI.jsxDEV(yX,{color:"permission",children:iI.jsxDEV(tw,{color:"permission",selectedTab:q,onTabChange:K,hidden:G,initialHeaderFocused:k,contentHeight:h,children:S},void 0,!1,void 0,this)},void 0,!1,void 0,this),Q[19]=q,Q[20]=h,Q[21]=k,Q[22]=S,Q[23]=G,Q[24]=u;else u=Q[24];return u}function YZQ(){return oQJ().catch(qZQ)}function qZQ(){return[]}var cXJ,vu,iI;var Se0=I(()=>{f6();Lq();U9();rE();t3();ew();tQJ();AXJ();pXJ();cXJ=T(e0(),1),vu=T(J1(),1),iI=T(e(),1)});var dXJ={};X8(dXJ,{call:()=>KZQ});var lXJ,KZQ=async(J,Q)=>{return lXJ.jsxDEV(ZZ0,{onClose:J,context:Q,defaultTab:"Config"},void 0,!1,void 0,this)};var iXJ=I(()=>{Se0();lXJ=T(e(),1)});var GZQ,nXJ;var rXJ=I(()=>{GZQ={aliases:["settings"],type:"local-jsx",name:"config",description:"Open config panel",load:()=>Promise.resolve().then(() => (iXJ(),dXJ))},nXJ=GZQ});function sXJ(J){let Q=[];return BZQ(J,Q),UZQ(J,Q),_ZQ(J,Q),OZQ(J,Q),LZQ(J,Q),Q.sort((X,Z)=>{if(X.severity!==Z.severity)return X.severity==="warning"?-1:1;return(Z.savingsTokens??0)-(X.savingsTokens??0)}),Q}function BZQ(J,Q){if(J.percentage>=oXJ)Q.push({severity:"warning",title:`Context is ${J.percentage}% full`,detail:J.isAutoCompactEnabled?"Autocompact will trigger soon, which discards older messages. Use /compact now to control what gets kept.":"Autocompact is disabled. Use /compact to free space, or enable autocompact in /config."})}function UZQ(J,Q){if(!J.messageBreakdown)return;for(let X of J.messageBreakdown.toolCallsByType){let Z=X.callTokens+X.resultTokens,Y=Z/J.rawMaxTokens*100;if(Y<aXJ||Z<Dn1)continue;let q=FZQ(X.name,Z,Y);if(q)Q.push(q)}}function FZQ(J,Q,X){let Z=P7(Q);switch(J){case O6:return{severity:"warning",title:`Bash results using ${Z} tokens (${X.toFixed(0)}%)`,detail:"Pipe output through head, tail, or grep to reduce result size. Avoid cat on large files \u2014 use Read with offset/limit instead.",savingsTokens:Math.floor(Q*0.5)};case o6:return{severity:"info",title:`Read results using ${Z} tokens (${X.toFixed(0)}%)`,detail:"Use offset and limit parameters to read only the sections you need. Avoid re-reading entire files when you only need a few lines.",savingsTokens:Math.floor(Q*0.3)};case JQ:return{severity:"info",title:`Grep results using ${Z} tokens (${X.toFixed(0)}%)`,detail:"Add more specific patterns or use the glob or type parameter to narrow file types. Consider Glob for file discovery instead of Grep.",savingsTokens:Math.floor(Q*0.3)};case aG:return{severity:"info",title:`WebFetch results using ${Z} tokens (${X.toFixed(0)}%)`,detail:"Web page content can be very large. Consider extracting only the specific information needed.",savingsTokens:Math.floor(Q*0.4)};default:if(X>=20)return{severity:"info",title:`${J} using ${Z} tokens (${X.toFixed(0)}%)`,detail:"This tool is consuming a significant portion of context.",savingsTokens:Math.floor(Q*0.2)};return null}}function _ZQ(J,Q){if(!J.messageBreakdown)return;let Z=J.messageBreakdown.toolCallsByType.find((G)=>G.name===o6);if(!Z)return;let Y=Z.callTokens+Z.resultTokens,q=Y/J.rawMaxTokens*100,K=Z.resultTokens/J.rawMaxTokens*100;if(q>=aXJ&&Y>=Dn1)return;if(K>=zZQ&&Z.resultTokens>=Dn1)Q.push({severity:"info",title:`File reads using ${P7(Z.resultTokens)} tokens (${K.toFixed(0)}%)`,detail:"If you are re-reading files, consider referencing earlier reads. Use offset/limit for large files.",savingsTokens:Math.floor(Z.resultTokens*0.3)})}function OZQ(J,Q){let X=J.memoryFiles.reduce((Y,q)=>Y+q.tokens,0),Z=X/J.rawMaxTokens*100;if(Z>=WZQ&&X>=HZQ){let Y=[...J.memoryFiles].sort((q,K)=>K.tokens-q.tokens).slice(0,3).map((q)=>{return`${E7(q.path)} (${P7(q.tokens)})`}).join(", ");Q.push({severity:"info",title:`Memory files using ${P7(X)} tokens (${Z.toFixed(0)}%)`,detail:`Largest: ${Y}. Use /memory to review and prune stale entries.`,savingsTokens:Math.floor(X*0.3)})}}function LZQ(J,Q){if(!J.isAutoCompactEnabled&&J.percentage>=50&&J.percentage<oXJ)Q.push({severity:"info",title:"Autocompact is disabled",detail:"Without autocompact, you will hit context limits and lose the conversation. Enable it in /config or use /compact manually."})}var aXJ=15,Dn1=1e4,zZQ=5,oXJ=80,WZQ=5,HZQ=5000;var tXJ=I(()=>{vZ();mG();V9();A6()});function xe0(J){let Q=eXJ.c(5),{status:X,withSpace:Z}=J,Y=Z===void 0?!1:Z,q=VZQ[X],K=!q.color,G=Y&&" ",z;if(Q[0]!==q.color||Q[1]!==q.icon||Q[2]!==K||Q[3]!==G)z=JZJ.jsxDEV(M,{color:q.color,dimColor:K,children:[q.icon,G]},void 0,!0,void 0,this),Q[0]=q.color,Q[1]=q.icon,Q[2]=K,Q[3]=G,Q[4]=z;else z=Q[4];return z}var eXJ,JZJ,VZQ;var $n1=I(()=>{r6();a0();eXJ=T(e0(),1),JZJ=T(e(),1),VZQ={success:{icon:s0.tick,color:"success"},error:{icon:s0.cross,color:"error"},warning:{icon:s0.warning,color:"warning"},info:{icon:s0.info,color:"suggestion"},pending:{icon:s0.circle,color:void 0},loading:{icon:"\u2026",color:void 0}}});function XZJ(J){let Q=QZJ.c(5),{suggestions:X}=J;if(X.length===0)return null;let Z;if(Q[0]===Symbol.for("react.memo_cache_sentinel"))Z=nI.jsxDEV(M,{bold:!0,children:"Suggestions"},void 0,!1,void 0,this),Q[0]=Z;else Z=Q[0];let Y;if(Q[1]!==X)Y=X.map(NZQ),Q[1]=X,Q[2]=Y;else Y=Q[2];let q;if(Q[3]!==Y)q=nI.jsxDEV(f,{flexDirection:"column",marginTop:1,children:[Z,Y]},void 0,!0,void 0,this),Q[3]=Y,Q[4]=q;else q=Q[4];return q}function NZQ(J,Q){return nI.jsxDEV(f,{flexDirection:"column",marginTop:Q===0?0:1,children:[nI.jsxDEV(f,{children:[nI.jsxDEV(xe0,{status:J.severity,withSpace:!0},void 0,!1,void 0,this),nI.jsxDEV(M,{bold:!0,children:J.title},void 0,!1,void 0,this),J.savingsTokens?nI.jsxDEV(M,{dimColor:!0,children:[" ",s0.arrowRight," save ~",P7(J.savingsTokens)]},void 0,!0,void 0,this):null]},void 0,!0,void 0,this),nI.jsxDEV(f,{marginLeft:2,children:nI.jsxDEV(M,{dimColor:!0,children:J.detail},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},Q,!0,void 0,this)}var QZJ,nI;var ZZJ=I(()=>{r6();a0();A6();$n1();QZJ=T(e0(),1),nI=T(e(),1)});function wZQ(){let J=jn1.c(2);return null}function YZJ(J){let Q=new Map;for(let Z of J){let Y=jt(Z.source),q=Q.get(Y)||[];q.push(Z),Q.set(Y,q)}for(let[Z,Y]of Q.entries())Q.set(Z,Y.sort((q,K)=>K.tokens-q.tokens));let X=new Map;for(let Z of AZQ){let Y=Q.get(Z);if(Y)X.set(Z,Y)}return X}function qZJ(J){let Q=jn1.c(87),{data:X}=J,{categories:Z,totalTokens:Y,rawMaxTokens:q,percentage:K,gridRows:G,model:z,memoryFiles:W,mcpTools:H,deferredBuiltinTools:B,systemTools:U,systemPromptSections:F,agents:_,skills:O,messageBreakdown:L}=X,N,A,R,D,$,y,v,E,C,S;if(Q[0]!==Z||Q[1]!==G||Q[2]!==H||Q[3]!==z||Q[4]!==K||Q[5]!==q||Q[6]!==U||Q[7]!==B||Q[8]!==Y){let n=B===void 0?[]:B,s=Z.filter(gZQ),X0;if(Q[19]!==Z)X0=Z.some(uZQ),Q[19]=Z,Q[20]=X0;else X0=Q[20];let Y0=X0,G0=n.length>0,j0=Z.find(hZQ);if(A=f,v="column",E=1,Q[21]===Symbol.for("react.memo_cache_sentinel"))C=OJ.jsxDEV(M,{bold:!0,children:"Context Usage"},void 0,!1,void 0,this),Q[21]=C;else C=Q[21];let W0;if(Q[22]!==G)W0=G.map(xZQ),Q[22]=G,Q[23]=W0;else W0=Q[23];let y0;if(Q[24]!==W0)y0=OJ.jsxDEV(f,{flexDirection:"column",flexShrink:0,children:W0},void 0,!1,void 0,this),Q[24]=W0,Q[25]=y0;else y0=Q[25];let V0;if(Q[26]!==Y)V0=P7(Y),Q[26]=Y,Q[27]=V0;else V0=Q[27];let Z0;if(Q[28]!==q)Z0=P7(q),Q[28]=q,Q[29]=Z0;else Z0=Q[29];let t;if(Q[30]!==z||Q[31]!==K||Q[32]!==V0||Q[33]!==Z0)t=OJ.jsxDEV(M,{dimColor:!0,children:[z," \xB7 ",V0,"/",Z0," ","tokens (",K,"%)"]},void 0,!0,void 0,this),Q[30]=z,Q[31]=K,Q[32]=V0,Q[33]=Z0,Q[34]=t;else t=Q[34];let q0,Q0,a;if(Q[35]===Symbol.for("react.memo_cache_sentinel"))q0=OJ.jsxDEV(wZQ,{},void 0,!1,void 0,this),Q0=OJ.jsxDEV(M,{children:" "},void 0,!1,void 0,this),a=OJ.jsxDEV(M,{dimColor:!0,italic:!0,children:"Estimated usage by category"},void 0,!1,void 0,this),Q[35]=q0,Q[36]=Q0,Q[37]=a;else q0=Q[35],Q0=Q[36],a=Q[37];let O0;if(Q[38]!==q)O0=(P0,$0)=>{let w0=P7(P0.tokens),E0=P0.isDeferred?"N/A":`${(P0.tokens/q*100).toFixed(1)}%`,h0=P0.name===ke0,u0=P0.name,B0=P0.isDeferred?" ":h0?"\u26DD":"\u26C1";return OJ.jsxDEV(f,{children:[OJ.jsxDEV(M,{color:P0.color,children:B0},void 0,!1,void 0,this),OJ.jsxDEV(M,{children:[" ",u0,": "]},void 0,!0,void 0,this),OJ.jsxDEV(M,{dimColor:!0,children:[w0," tokens (",E0,")"]},void 0,!0,void 0,this)]},$0,!0,void 0,this)},Q[38]=q,Q[39]=O0;else O0=Q[39];let D0=s.map(O0),F0;if(Q[40]!==Z||Q[41]!==q)F0=(Z.find(SZQ)?.tokens??0)>0&&OJ.jsxDEV(f,{children:[OJ.jsxDEV(M,{dimColor:!0,children:"\u26F6"},void 0,!1,void 0,this),OJ.jsxDEV(M,{children:" Free space: "},void 0,!1,void 0,this),OJ.jsxDEV(M,{dimColor:!0,children:[P7(Z.find(fZQ)?.tokens||0)," ","(",((Z.find(vZQ)?.tokens||0)/q*100).toFixed(1),"%)"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),Q[40]=Z,Q[41]=q,Q[42]=F0;else F0=Q[42];let I0=j0&&j0.tokens>0&&OJ.jsxDEV(f,{children:[OJ.jsxDEV(M,{color:j0.color,children:"\u26DD"},void 0,!1,void 0,this),OJ.jsxDEV(M,{dimColor:!0,children:[" ",j0.name,": "]},void 0,!0,void 0,this),OJ.jsxDEV(M,{dimColor:!0,children:[P7(j0.tokens)," tokens (",(j0.tokens/q*100).toFixed(1),"%)"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),U0;if(Q[43]!==t||Q[44]!==D0||Q[45]!==F0||Q[46]!==I0)U0=OJ.jsxDEV(f,{flexDirection:"column",gap:0,flexShrink:0,children:[t,q0,Q0,a,D0,F0,I0]},void 0,!0,void 0,this),Q[43]=t,Q[44]=D0,Q[45]=F0,Q[46]=I0,Q[47]=U0;else U0=Q[47];if(Q[48]!==y0||Q[49]!==U0)S=OJ.jsxDEV(f,{flexDirection:"row",gap:2,children:[y0,U0]},void 0,!0,void 0,this),Q[48]=y0,Q[49]=U0,Q[50]=S;else S=Q[50];if(N=f,R="column",D=-1,Q[51]!==Y0||Q[52]!==H)$=H.length>0&&OJ.jsxDEV(f,{flexDirection:"column",marginTop:1,children:[OJ.jsxDEV(f,{children:[OJ.jsxDEV(M,{bold:!0,children:"MCP tools"},void 0,!1,void 0,this),OJ.jsxDEV(M,{dimColor:!0,children:[" ","\xB7 /mcp",Y0?" (loaded on-demand)":""]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),H.some(CZQ)&&OJ.jsxDEV(f,{flexDirection:"column",marginTop:1,children:[OJ.jsxDEV(M,{dimColor:!0,children:"Loaded"},void 0,!1,void 0,this),H.filter(TZQ).map(EZQ)]},void 0,!0,void 0,this),Y0&&H.some(PZQ)&&OJ.jsxDEV(f,{flexDirection:"column",marginTop:1,children:[OJ.jsxDEV(M,{dimColor:!0,children:"Available"},void 0,!1,void 0,this),H.filter(bZQ).map(yZQ)]},void 0,!0,void 0,this),!Y0&&H.map(IZQ)]},void 0,!0,void 0,this),Q[51]=Y0,Q[52]=H,Q[53]=$;else $=Q[53];y=(U&&U.length>0||G0)&&!1,Q[0]=Z,Q[1]=G,Q[2]=H,Q[3]=z,Q[4]=K,Q[5]=q,Q[6]=U,Q[7]=B,Q[8]=Y,Q[9]=N,Q[10]=A,Q[11]=R,Q[12]=D,Q[13]=$,Q[14]=y,Q[15]=v,Q[16]=E,Q[17]=C,Q[18]=S}else N=Q[9],A=Q[10],R=Q[11],D=Q[12],$=Q[13],y=Q[14],v=Q[15],E=Q[16],C=Q[17],S=Q[18];let k;if(Q[54]!==F)k=F&&F.length>0&&!1,Q[54]=F,Q[55]=k;else k=Q[55];let h;if(Q[56]!==_)h=_.length>0&&OJ.jsxDEV(f,{flexDirection:"column",marginTop:1,children:[OJ.jsxDEV(f,{children:[OJ.jsxDEV(M,{bold:!0,children:"Custom agents"},void 0,!1,void 0,this),OJ.jsxDEV(M,{dimColor:!0,children:" \xB7 /agents"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),Array.from(YZJ(_).entries()).map($ZQ)]},void 0,!0,void 0,this),Q[56]=_,Q[57]=h;else h=Q[57];let u;if(Q[58]!==W)u=W.length>0&&OJ.jsxDEV(f,{flexDirection:"column",marginTop:1,children:[OJ.jsxDEV(f,{children:[OJ.jsxDEV(M,{bold:!0,children:"Memory files"},void 0,!1,void 0,this),OJ.jsxDEV(M,{dimColor:!0,children:" \xB7 /memory"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),W.map(DZQ)]},void 0,!0,void 0,this),Q[58]=W,Q[59]=u;else u=Q[59];let x;if(Q[60]!==O)x=O&&O.tokens>0&&OJ.jsxDEV(f,{flexDirection:"column",marginTop:1,children:[OJ.jsxDEV(f,{children:[OJ.jsxDEV(M,{bold:!0,children:"Skills"},void 0,!1,void 0,this),OJ.jsxDEV(M,{dimColor:!0,children:" \xB7 /skills"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),Array.from(YZJ(O.skillFrontmatter).entries()).map(RZQ)]},void 0,!0,void 0,this),Q[60]=O,Q[61]=x;else x=Q[61];let m;if(Q[62]!==L)m=L&&!1,Q[62]=L,Q[63]=m;else m=Q[63];let p;if(Q[64]!==N||Q[65]!==k||Q[66]!==h||Q[67]!==u||Q[68]!==x||Q[69]!==m||Q[70]!==R||Q[71]!==D||Q[72]!==$||Q[73]!==y)p=OJ.jsxDEV(N,{flexDirection:R,marginLeft:D,children:[$,y,k,h,u,x,m]},void 0,!0,void 0,this),Q[64]=N,Q[65]=k,Q[66]=h,Q[67]=u,Q[68]=x,Q[69]=m,Q[70]=R,Q[71]=D,Q[72]=$,Q[73]=y,Q[74]=p;else p=Q[74];let c;if(Q[75]!==X)c=sXJ(X),Q[75]=X,Q[76]=c;else c=Q[76];let r;if(Q[77]!==c)r=OJ.jsxDEV(XZJ,{suggestions:c},void 0,!1,void 0,this),Q[77]=c,Q[78]=r;else r=Q[78];let J0;if(Q[79]!==A||Q[80]!==p||Q[81]!==r||Q[82]!==v||Q[83]!==E||Q[84]!==C||Q[85]!==S)J0=OJ.jsxDEV(A,{flexDirection:v,paddingLeft:E,children:[C,S,p,r]},void 0,!0,void 0,this),Q[79]=A,Q[80]=p,Q[81]=r,Q[82]=v,Q[83]=E,Q[84]=C,Q[85]=S,Q[86]=J0;else J0=Q[86];return J0}function RZQ(J){let[Q,X]=J;return OJ.jsxDEV(f,{flexDirection:"column",marginTop:1,children:[OJ.jsxDEV(M,{dimColor:!0,children:Q},void 0,!1,void 0,this),X.map(MZQ)]},Q,!0,void 0,this)}function MZQ(J,Q){return OJ.jsxDEV(f,{children:[OJ.jsxDEV(M,{children:["\u2514 ",J.name,": "]},void 0,!0,void 0,this),OJ.jsxDEV(M,{dimColor:!0,children:[P7(J.tokens)," tokens"]},void 0,!0,void 0,this)]},Q,!0,void 0,this)}function DZQ(J,Q){return OJ.jsxDEV(f,{children:[OJ.jsxDEV(M,{children:["\u2514 ",E7(J.path),": "]},void 0,!0,void 0,this),OJ.jsxDEV(M,{dimColor:!0,children:[P7(J.tokens)," tokens"]},void 0,!0,void 0,this)]},Q,!0,void 0,this)}function $ZQ(J){let[Q,X]=J;return OJ.jsxDEV(f,{flexDirection:"column",marginTop:1,children:[OJ.jsxDEV(M,{dimColor:!0,children:Q},void 0,!1,void 0,this),X.map(jZQ)]},Q,!0,void 0,this)}function jZQ(J,Q){return OJ.jsxDEV(f,{children:[OJ.jsxDEV(M,{children:["\u2514 ",J.agentType,": "]},void 0,!0,void 0,this),OJ.jsxDEV(M,{dimColor:!0,children:[P7(J.tokens)," tokens"]},void 0,!0,void 0,this)]},Q,!0,void 0,this)}function IZQ(J,Q){return OJ.jsxDEV(f,{children:[OJ.jsxDEV(M,{children:["\u2514 ",J.name,": "]},void 0,!0,void 0,this),OJ.jsxDEV(M,{dimColor:!0,children:[P7(J.tokens)," tokens"]},void 0,!0,void 0,this)]},Q,!0,void 0,this)}function yZQ(J,Q){return OJ.jsxDEV(f,{children:OJ.jsxDEV(M,{dimColor:!0,children:["\u2514 ",J.name]},void 0,!0,void 0,this)},Q,!1,void 0,this)}function bZQ(J){return!J.isLoaded}function PZQ(J){return!J.isLoaded}function EZQ(J,Q){return OJ.jsxDEV(f,{children:[OJ.jsxDEV(M,{children:["\u2514 ",J.name,": "]},void 0,!0,void 0,this),OJ.jsxDEV(M,{dimColor:!0,children:[P7(J.tokens)," tokens"]},void 0,!0,void 0,this)]},Q,!0,void 0,this)}function TZQ(J){return J.isLoaded}function CZQ(J){return J.isLoaded}function vZQ(J){return J.name==="Free space"}function fZQ(J){return J.name==="Free space"}function SZQ(J){return J.name==="Free space"}function xZQ(J,Q){return OJ.jsxDEV(f,{flexDirection:"row",marginLeft:-1,children:J.map(kZQ)},Q,!1,void 0,this)}function kZQ(J,Q){if(J.categoryName==="Free space")return OJ.jsxDEV(M,{dimColor:!0,children:"\u26F6 "},Q,!1,void 0,this);if(J.categoryName===ke0)return OJ.jsxDEV(M,{color:J.color,children:"\u26DD "},Q,!1,void 0,this);return OJ.jsxDEV(M,{color:J.color,children:J.squareFullness>=0.7?"\u26C1 ":"\u26C0 "},Q,!1,void 0,this)}function hZQ(J){return J.name===ke0}function uZQ(J){return J.isDeferred&&J.name.includes("MCP")}function gZQ(J){return J.tokens>0&&J.name!=="Free space"&&J.name!==ke0&&!J.isDeferred}var jn1,OJ,ke0="Autocompact buffer",AZQ;var KZJ=I(()=>{a0();tXJ();V9();A6();eY();ZZJ();jn1=T(e0(),1),OJ=T(e(),1);AZQ=["Project","User","Managed","Plugin","Built-in"]});import{PassThrough as mZQ}from"stream";function pZQ(J){let Q=zZJ.c(5),{children:X}=J,{exit:Z}=d10(),Y,q;if(Q[0]!==Z)Y=()=>{let G=setTimeout(Z,0);return()=>clearTimeout(G)},q=[Z],Q[0]=Z,Q[1]=Y,Q[2]=q;else Y=Q[1],q=Q[2];WZJ.useLayoutEffect(Y,q);let K;if(Q[3]!==X)K=WN0.jsxDEV(WN0.Fragment,{children:X},void 0,!1,void 0,this),Q[3]=X,Q[4]=K;else K=Q[4];return K}function dZQ(J){let Q=J.indexOf(GZJ);if(Q===-1)return J;let X=Q+GZJ.length,Z=J.indexOf(cZQ,X);if(Z===-1)return J;return J.slice(X,Z)}function zN0(J,Q){return new Promise(async(X)=>{let Z="",Y=new mZQ;if(Q!==void 0)Y.columns=Q;Y.on("data",(K)=>{Z+=K.toString()}),await(await Ed(WN0.jsxDEV(pZQ,{children:J},void 0,!1,void 0,this),{stdout:Y,patchConsole:!1})).waitUntilExit(),await X(dZQ(Z))})}async function HZJ(J,Q){let X=await zN0(J,Q);return cX(X)}var zZJ,WZJ,WN0,GZJ="\x1B[?2026h",cZQ="\x1B[?2026l";var he0=I(()=>{xU();a0();zZJ=T(e0(),1),WZJ=T(J1(),1),WN0=T(e(),1)});var BZJ={};X8(BZJ,{call:()=>iZQ});function lZQ(J){return LG(J)}async function iZQ(J,Q){let{messages:X,getAppState:Z,options:{mainLoopModel:Y,tools:q}}=Q,K=lZQ(X),{messages:G}=await ZI(K),z=process.stdout.columns||80,W=Z(),H=await Fd0(G,Y,async()=>W.toolPermissionContext,q,W.agentDefinitions,z,Q,void 0,K),B=await zN0(UZJ.jsxDEV(qZJ,{data:H},void 0,!1,void 0,this));return J(B),null}var UZJ;var FZJ=I(()=>{KZJ();Fw();_d0();M8();he0();UZJ=T(e(),1)});var _ZJ={};X8(_ZJ,{collectContextData:()=>ue0,call:()=>rZQ});async function ue0(J){let{messages:Q,getAppState:X,options:{mainLoopModel:Z,tools:Y,agentDefinitions:q,customSystemPrompt:K,appendSystemPrompt:G}}=J,z=LG(Q),{messages:W}=await ZI(z),H=X();return Fd0(W,Z,async()=>H.toolPermissionContext,Y,q,void 0,{options:{customSystemPrompt:K,appendSystemPrompt:G}},void 0,z)}async function rZQ(J,Q){let X=await ue0(Q);return{type:"text",value:aZQ(X)}}function aZQ(J){let{categories:Q,totalTokens:X,rawMaxTokens:Z,percentage:Y,model:q,memoryFiles:K,mcpTools:G,agents:z,skills:W,messageBreakdown:H,systemTools:B,systemPromptSections:U}=J,F=`## Context Usage
|
|
5089
|
+
`,"Please restart your IDE and try again."]},void 0,!0,void 0,this)}];if(Q.installed)if(Z&&Z.type==="connected")if(Q.installedVersion!==Z.serverInfo?.version)return[{label:"IDE",value:`Connected to ${Y} ${q} version ${Q.installedVersion} (server version: ${Z.serverInfo?.version})`}];else return[{label:"IDE",value:`Connected to ${Y} ${q} version ${Q.installedVersion}`}];else return[{label:"IDE",value:`Installed ${Y} ${q}`}]}else if(Z){let Y=jf1(Z)??"IDE";if(Z.type==="connected")return[{label:"IDE",value:`Connected to ${Y} extension`}];else return[{label:"IDE",value:`${G6("error",X)(s0.cross)} Not connected to ${Y}`}]}return[]}function gQJ(J=[],Q){let X=J.filter((q)=>q.name!=="ide");if(!X.length)return[];let Z={connected:0,pending:0,needsAuth:0,failed:0};for(let q of X)if(q.type==="connected")Z.connected++;else if(q.type==="pending")Z.pending++;else if(q.type==="needs-auth")Z.needsAuth++;else Z.failed++;let Y=[];if(Z.connected)Y.push(G6("success",Q)(`${Z.connected} connected`));if(Z.needsAuth)Y.push(G6("warning",Q)(`${Z.needsAuth} need auth`));if(Z.pending)Y.push(G6("inactive",Q)(`${Z.pending} pending`));if(Z.failed)Y.push(G6("error",Q)(`${Z.failed} failed`));return[{label:"MCP servers",value:`${Y.join(", ")} ${G6("inactive",Q)("\xB7 /mcp")}`}]}async function mQJ(){let J=await eG(),Q=JN0(J),X=[];return Q.forEach((Z)=>{let Y=E7(Z.path);X.push(`Large ${Y} will impact performance (${W9(Z.content.length)} chars > ${W9(eV0)})`)}),X}function pQJ(){return[{label:"Setting sources",value:fb().filter((Z)=>{let Y=O8(Z);return Y!==null&&Object.keys(Y).length>0}).map((Z)=>{if(Z==="policySettings"){let Y=BN8();if(Y===null)return null;switch(Y){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:q,hasDropIns:K}=zN8();if(q&&K)return"Enterprise managed settings (file + drop-ins)";if(K)return"Enterprise managed settings (drop-ins)";return"Enterprise managed settings (file)"}case"hkcu":return"Enterprise managed settings (HKCU)"}}return m28(Z)}).filter((Z)=>Z!==null)}]}async function cQJ(){return(await oV0()).map((Q)=>Q.message)}async function dQJ(){let J=await VQJ(),Q=[],{errors:X}=VC();if(X.length>0){let Y=Array.from(new Set(X.map((q)=>q.file))).join(", ");Q.push(`Found invalid settings files: ${Y}. They will be ignored.`)}if(J.warnings.forEach((Z)=>{Q.push(Z.issue)}),J.hasUpdatePermissions===!1)Q.push("No write permissions for auto-updates (requires sudo)");return Q}function lQJ(){let J=yW0();if(!J)return[];let Q=[];if(J.subscription)Q.push({label:"Login method",value:`${J.subscription} Account`});if(J.tokenSource)Q.push({label:"Auth token",value:J.tokenSource});if(J.apiKeySource)Q.push({label:"API key",value:J.apiKeySource});if(J.organization&&!process.env.IS_DEMO)Q.push({label:"Organization",value:J.organization});if(J.email&&!process.env.IS_DEMO)Q.push({label:"Email",value:J.email});return Q}function iQJ(){let J=L6(),Q=[];if(J!=="firstParty"){let Y={bedrock:"AWS Bedrock",foundry:"Microsoft Foundry"}[J];Q.push({label:"API provider",value:Y})}if(J==="firstParty"){let Y=process.env.GLOCK_BASE_URL;if(Y)Q.push({label:"Glock base URL",value:Y})}else if(J==="bedrock"){let Y=process.env.BEDROCK_BASE_URL;if(Y)Q.push({label:"Bedrock base URL",value:Y});if(Q.push({label:"AWS region",value:e50()}),W1(process.env.GLOCK_SKIP_BEDROCK_AUTH))Q.push({value:"AWS auth skipped"})}else if(J==="foundry"){let Y=process.env.GLOCK_FOUNDRY_BASE_URL;if(Y)Q.push({label:"Microsoft Foundry base URL",value:Y});let q=process.env.GLOCK_FOUNDRY_RESOURCE;if(q)Q.push({label:"Microsoft Foundry resource",value:q});if(W1(process.env.GLOCK_SKIP_FOUNDRY_AUTH))Q.push({value:"Microsoft Foundry auth skipped"})}let X=v$();if(X)Q.push({label:"Proxy",value:X});let Z=b$();if(process.env.NODE_EXTRA_CA_CERTS)Q.push({label:"Additional CA cert(s)",value:process.env.NODE_EXTRA_CA_CERTS});if(Z){if(Z.cert&&process.env.GLOCK_CLIENT_CERT)Q.push({label:"mTLS client cert",value:process.env.GLOCK_CLIENT_CERT});if(Z.key&&process.env.GLOCK_CLIENT_KEY)Q.push({label:"mTLS client key",value:process.env.GLOCK_CLIENT_KEY})}return Q}function nQJ(J){let Q=kO(J);if(J===null&&q9()){let X=vW0();Q=`${_1.bold("Default")} ${X}`}return Q}var rQJ;var aQJ=I(()=>{k7();r6();a0();N9();ez();sX0();t1();V9();A6();b5();CJ();m4();lb();Eu();PO();V4();tV0();eY();g8();rQJ=T(e(),1)});function $XQ(){let J=A1(),X=kw(J)??Hz.jsxDEV(M,{dimColor:!0,children:"/rename to add a name"},void 0,!1,void 0,this);return[{label:"Version",value:"0.1.17"},{label:"Session name",value:X},{label:"Session ID",value:J},{label:"cwd",value:B1()},...lQJ(),...iQJ()]}function jXQ({mainLoopModel:J,mcp:Q,theme:X,context:Z}){return[{label:"Model",value:nQJ(J)},...uQJ(Q.clients,Z.options.ideInstallationStatus,X),...gQJ(Q.clients,X),...hQJ(),...pQJ()]}async function oQJ(){return[...await cQJ(),...await dQJ(),...await mQJ()]}function IXQ(J){let Q=Re0.c(8),{value:X}=J;if(Array.isArray(X)){let Z;if(Q[0]!==X){let q;if(Q[2]!==X.length)q=(K,G)=>Hz.jsxDEV(M,{children:[K,G<X.length-1?",":""]},G,!0,void 0,this),Q[2]=X.length,Q[3]=q;else q=Q[3];Z=X.map(q),Q[0]=X,Q[1]=Z}else Z=Q[1];let Y;if(Q[4]!==Z)Y=Hz.jsxDEV(f,{flexWrap:"wrap",columnGap:1,flexShrink:99,children:Z},void 0,!1,void 0,this),Q[4]=Z,Q[5]=Y;else Y=Q[5];return Y}if(typeof X==="string"){let Z;if(Q[6]!==X)Z=Hz.jsxDEV(M,{children:X},void 0,!1,void 0,this),Q[6]=X,Q[7]=Z;else Z=Q[7];return Z}return X}function sQJ(J){let Q=Re0.c(20),{context:X,diagnosticsPromise:Z}=J,Y=O1(EXQ),q=O1(PXQ),[K]=j6(),G;if(Q[0]===Symbol.for("react.memo_cache_sentinel"))G=$XQ(),Q[0]=G;else G=Q[0];let z;if(Q[1]!==X||Q[2]!==Y||Q[3]!==q||Q[4]!==K)z=jXQ({mainLoopModel:Y,mcp:q,theme:K,context:X}),Q[1]=X,Q[2]=Y,Q[3]=q,Q[4]=K,Q[5]=z;else z=Q[5];let W;if(Q[6]!==z)W=[G,z],Q[6]=z,Q[7]=W;else W=Q[7];let H=W,B=oF()?1:void 0,U;if(Q[8]!==H)U=H.map(yXQ),Q[8]=H,Q[9]=U;else U=Q[9];let F;if(Q[10]!==Z)F=Hz.jsxDEV(Me0.Suspense,{fallback:null,children:Hz.jsxDEV(TXQ,{promise:Z},void 0,!1,void 0,this)},void 0,!1,void 0,this),Q[10]=Z,Q[11]=F;else F=Q[11];let _;if(Q[12]!==B||Q[13]!==U||Q[14]!==F)_=Hz.jsxDEV(f,{flexDirection:"column",gap:1,flexGrow:B,children:[U,F]},void 0,!0,void 0,this),Q[12]=B,Q[13]=U,Q[14]=F,Q[15]=_;else _=Q[15];let O;if(Q[16]===Symbol.for("react.memo_cache_sentinel"))O=Hz.jsxDEV(M,{dimColor:!0,children:Hz.jsxDEV(s1,{action:"confirm:no",context:"Settings",fallback:"Esc",description:"cancel"},void 0,!1,void 0,this)},void 0,!1,void 0,this),Q[16]=O;else O=Q[16];let L;if(Q[17]!==B||Q[18]!==_)L=Hz.jsxDEV(f,{flexDirection:"column",flexGrow:B,children:[_,O]},void 0,!0,void 0,this),Q[17]=B,Q[18]=_,Q[19]=L;else L=Q[19];return L}function yXQ(J,Q){return J.length>0&&Hz.jsxDEV(f,{flexDirection:"column",children:J.map(bXQ)},Q,!1,void 0,this)}function bXQ(J,Q){let{label:X,value:Z}=J;return Hz.jsxDEV(f,{flexDirection:"row",gap:1,flexShrink:0,children:[X!==void 0&&Hz.jsxDEV(M,{bold:!0,children:[X,":"]},void 0,!0,void 0,this),Hz.jsxDEV(IXQ,{value:Z},void 0,!1,void 0,this)]},Q,!0,void 0,this)}function PXQ(J){return J.mcp}function EXQ(J){return J.mainLoopModel}function TXQ(J){let Q=Re0.c(5),{promise:X}=J,Z=Me0.use(X);if(Z.length===0)return null;let Y;if(Q[0]===Symbol.for("react.memo_cache_sentinel"))Y=Hz.jsxDEV(M,{bold:!0,children:"System Diagnostics"},void 0,!1,void 0,this),Q[0]=Y;else Y=Q[0];let q;if(Q[1]!==Z)q=Z.map(CXQ),Q[1]=Z,Q[2]=q;else q=Q[2];let K;if(Q[3]!==q)K=Hz.jsxDEV(f,{flexDirection:"column",paddingBottom:1,children:[Y,q]},void 0,!0,void 0,this),Q[3]=q,Q[4]=K;else K=Q[4];return K}function CXQ(J,Q){return Hz.jsxDEV(f,{flexDirection:"row",gap:1,paddingX:1,children:[Hz.jsxDEV(M,{color:"error",children:s0.warning},void 0,!1,void 0,this),typeof J==="string"?Hz.jsxDEV(M,{wrap:"wrap",children:J},void 0,!1,void 0,this):J]},Q,!0,void 0,this)}var Re0,Me0,Hz;var tQJ=I(()=>{r6();N1();rE();a0();W6();Z6();gJ();aQJ();U7();Re0=T(e0(),1),Me0=T(J1(),1),Hz=T(e(),1)});function QZ0(J){let Q=eQJ.c(59),{onThemeSelect:X,showIntroText:Z,helpText:Y,showHelpTextBelow:q,hideEscToCancel:K,skipExitHandling:G,onCancel:z}=J,W=Z===void 0?!1:Z,H=Y===void 0?"":Y,B=q===void 0?!1:q,U=K===void 0?!1:K,F=G===void 0?!1:G,[_]=j6(),O=z10(),{columns:L}=l8(),N;if(Q[0]===Symbol.for("react.memo_cache_sentinel"))N=k_0(),Q[0]=N;else N=Q[0];let A=N,R;if(Q[1]!==_)R=A===null?Sx6(_):null,Q[1]=_,Q[2]=R;else R=Q[2];let D=R,{setPreviewTheme:$,savePreview:y,cancelPreview:v}=wS0(),E=O1(fXQ)??!1,C=T6();op0("ThemePicker");let S=r9("theme:toggleSyntaxHighlighting","ThemePicker","ctrl+t"),k;if(Q[3]!==C||Q[4]!==E)k=()=>{if(A===null){let Q0=!E;y6("userSettings",{syntaxHighlightingDisabled:Q0}),C((a)=>({...a,settings:{...a.settings,syntaxHighlightingDisabled:Q0}}))}},Q[3]=C,Q[4]=E,Q[5]=k;else k=Q[5];let h;if(Q[6]===Symbol.for("react.memo_cache_sentinel"))h={context:"ThemePicker"},Q[6]=h;else h=Q[6];J8("theme:toggleSyntaxHighlighting",k,h);let u=B7(F?vXQ:void 0),x;if(Q[7]===Symbol.for("react.memo_cache_sentinel"))x=[...[],{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"}],Q[7]=x;else x=Q[7];let m=x,p;if(Q[8]!==W)p=W?vY.jsxDEV(M,{children:"Let's get started."},void 0,!1,void 0,this):vY.jsxDEV(M,{bold:!0,color:"permission",children:"Theme"},void 0,!1,void 0,this),Q[8]=W,Q[9]=p;else p=Q[9];let c;if(Q[10]===Symbol.for("react.memo_cache_sentinel"))c=vY.jsxDEV(M,{bold:!0,children:"Choose the text style that looks best with your terminal"},void 0,!1,void 0,this),Q[10]=c;else c=Q[10];let r;if(Q[11]!==H||Q[12]!==B)r=H&&!B&&vY.jsxDEV(M,{dimColor:!0,children:H},void 0,!1,void 0,this),Q[11]=H,Q[12]=B,Q[13]=r;else r=Q[13];let J0;if(Q[14]!==r)J0=vY.jsxDEV(f,{flexDirection:"column",children:[c,r]},void 0,!0,void 0,this),Q[14]=r,Q[15]=J0;else J0=Q[15];let n;if(Q[16]!==$)n=(Q0)=>{$(Q0)},Q[16]=$,Q[17]=n;else n=Q[17];let s;if(Q[18]!==X||Q[19]!==y)s=(Q0)=>{y(),X(Q0)},Q[18]=X,Q[19]=y,Q[20]=s;else s=Q[20];let X0;if(Q[21]!==v||Q[22]!==z||Q[23]!==F)X0=F?()=>{v(),z?.()}:async()=>{v(),await c4(0)},Q[21]=v,Q[22]=z,Q[23]=F,Q[24]=X0;else X0=Q[24];let Y0;if(Q[25]!==n||Q[26]!==s||Q[27]!==X0||Q[28]!==O)Y0=vY.jsxDEV(Q8,{options:m,onFocus:n,onChange:s,onCancel:X0,visibleOptionCount:m.length,defaultValue:O,defaultFocusValue:O},void 0,!1,void 0,this),Q[25]=n,Q[26]=s,Q[27]=X0,Q[28]=O,Q[29]=Y0;else Y0=Q[29];let G0;if(Q[30]!==p||Q[31]!==J0||Q[32]!==Y0)G0=vY.jsxDEV(f,{flexDirection:"column",gap:1,children:[p,J0,Y0]},void 0,!0,void 0,this),Q[30]=p,Q[31]=J0,Q[32]=Y0,Q[33]=G0;else G0=Q[33];let j0;if(Q[34]===Symbol.for("react.memo_cache_sentinel"))j0={oldStart:1,newStart:1,oldLines:3,newLines:3,lines:[" function greet() {",'- console.log("Hello, World!");','+ console.log("Hello, Glock!");'," }"]},Q[34]=j0;else j0=Q[34];let W0;if(Q[35]!==L)W0=vY.jsxDEV(f,{flexDirection:"column",borderTop:!0,borderBottom:!0,borderLeft:!1,borderRight:!1,borderStyle:"dashed",borderColor:"subtle",children:vY.jsxDEV(WI,{patch:j0,dim:!1,filePath:"demo.js",firstLine:null,width:L},void 0,!1,void 0,this)},void 0,!1,void 0,this),Q[35]=L,Q[36]=W0;else W0=Q[36];let y0=A==="env"?`Syntax highlighting disabled (via GLOCK_SYNTAX_HIGHLIGHT=${process.env.GLOCK_SYNTAX_HIGHLIGHT})`:E?`Syntax highlighting disabled (${S} to enable)`:D?`Syntax theme: ${D.theme}${D.source?` (from ${D.source})`:""} (${S} to disable)`:`Syntax highlighting enabled (${S} to disable)`,V0;if(Q[37]!==y0)V0=vY.jsxDEV(M,{dimColor:!0,children:[" ",y0]},void 0,!0,void 0,this),Q[37]=y0,Q[38]=V0;else V0=Q[38];let Z0;if(Q[39]!==W0||Q[40]!==V0)Z0=vY.jsxDEV(f,{flexDirection:"column",width:"100%",children:[W0,V0]},void 0,!0,void 0,this),Q[39]=W0,Q[40]=V0,Q[41]=Z0;else Z0=Q[41];let t;if(Q[42]!==G0||Q[43]!==Z0)t=vY.jsxDEV(f,{flexDirection:"column",gap:1,children:[G0,Z0]},void 0,!0,void 0,this),Q[42]=G0,Q[43]=Z0,Q[44]=t;else t=Q[44];let q0=t;if(!W){let Q0;if(Q[45]!==q0)Q0=vY.jsxDEV(f,{flexDirection:"column",children:q0},void 0,!1,void 0,this),Q[45]=q0,Q[46]=Q0;else Q0=Q[46];let a;if(Q[47]!==H||Q[48]!==B)a=B&&H&&vY.jsxDEV(f,{marginLeft:3,children:vY.jsxDEV(M,{dimColor:!0,children:H},void 0,!1,void 0,this)},void 0,!1,void 0,this),Q[47]=H,Q[48]=B,Q[49]=a;else a=Q[49];let O0;if(Q[50]!==u||Q[51]!==U)O0=!U&&vY.jsxDEV(f,{children:vY.jsxDEV(M,{dimColor:!0,italic:!0,children:u.pending?vY.jsxDEV(vY.Fragment,{children:["Press ",u.keyName," again to exit"]},void 0,!0,void 0,this):vY.jsxDEV(V8,{children:[vY.jsxDEV(p1,{shortcut:"Enter",action:"select"},void 0,!1,void 0,this),vY.jsxDEV(p1,{shortcut:"Esc",action:"cancel"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this)},void 0,!1,void 0,this),Q[50]=u,Q[51]=U,Q[52]=O0;else O0=Q[52];let D0;if(Q[53]!==a||Q[54]!==O0)D0=vY.jsxDEV(f,{marginTop:1,children:[a,O0]},void 0,!0,void 0,this),Q[53]=a,Q[54]=O0,Q[55]=D0;else D0=Q[55];let F0;if(Q[56]!==Q0||Q[57]!==D0)F0=vY.jsxDEV(vY.Fragment,{children:[Q0,D0]},void 0,!0,void 0,this),Q[56]=Q0,Q[57]=D0,Q[58]=F0;else F0=Q[58];return F0}return q0}function vXQ(){}function fXQ(J){return J.settings.syntaxHighlightingDisabled}var eQJ,vY;var De0=I(()=>{Lq();U9();a0();uE();f6();nz();W6();E5();g8();tX();R9();g9();bi0();z70();eQJ=T(e0(),1),vY=T(e(),1)});function JXJ(J,Q){if(!oN(Q))return;let X=EF6(Q,J);return`${QN0(X)} ${X} \xB7 /effort`}function QN0(J){switch(J){case"low":return sL8;case"medium":return tL8;case"high":return kW1;case"max":return eL8;default:return kW1}}var $e0=I(()=>{bZ();sN()});function Ur(J){let Q=Bn1.c(82),{initial:X,sessionModel:Z,onSelect:Y,onCancel:q,isStandaloneCommand:K,showFastModeNotice:G,headerText:z,skipSettingsWrite:W}=J,H=T6(),B=B7(),U=X===null?Ie0:X,[F,_]=je0.useState(U),O=O1(hXQ),[L,N]=je0.useState(!1),A=O1(kXQ),R;if(Q[0]!==A)R=A!==void 0?f60(A):void 0,Q[0]=A,Q[1]=R;else R=Q[1];let[D,$]=je0.useState(R),y=O??!1,v;if(Q[2]!==y)v=Nu(y),Q[2]=y,Q[3]=v;else v=Q[3];let E=v,C;J:{if(X!==null&&!E.some((L0)=>L0.value===X)){let L0;if(Q[4]!==X)L0=kO(X),Q[4]=X,Q[5]=L0;else L0=Q[5];let T0;if(Q[6]!==X||Q[7]!==L0)T0={value:X,label:L0,description:"Current model"},Q[6]=X,Q[7]=L0,Q[8]=T0;else T0=Q[8];let S0;if(Q[9]!==E||Q[10]!==T0)S0=[...E,T0],Q[9]=E,Q[10]=T0,Q[11]=S0;else S0=Q[11];C=S0;break J}C=E}let S=C,k;if(Q[12]!==S)k=S.map(xXQ),Q[12]=S,Q[13]=k;else k=Q[13];let h=k,u;if(Q[14]!==U||Q[15]!==h)u=h.some((L0)=>L0.value===U)?U:h[0]?.value??void 0,Q[14]=U,Q[15]=h,Q[16]=u;else u=Q[16];let x=u,m=Math.min(10,h.length),p=Math.max(0,h.length-m),c;if(Q[17]!==F||Q[18]!==h)c=h.find((L0)=>L0.value===F)?.label,Q[17]=F,Q[18]=h,Q[19]=c;else c=Q[19];let r=c,J0,n;if(Q[20]!==F){let L0=Hn1(F);J0=L0?oN(L0):!1,n=L0?PU0(L0):!1,Q[20]=F,Q[21]=J0,Q[22]=n}else J0=Q[21],n=Q[22];let s=n,X0;if(Q[23]!==F)X0=XXJ(F),Q[23]=F,Q[24]=X0;else X0=Q[24];let Y0=X0,G0=D==="max"&&!s?"high":D,j0;if(Q[25]!==A||Q[26]!==L)j0=(L0)=>{if(_(L0),!L&&A===void 0)$(XXJ(L0))},Q[25]=A,Q[26]=L,Q[27]=j0;else j0=Q[27];let W0=j0,y0;if(Q[28]!==Y0||Q[29]!==J0||Q[30]!==s)y0=(L0)=>{if(!J0)return;$((T0)=>uXQ(T0??Y0,L0,s)),N(!0)},Q[28]=Y0,Q[29]=J0,Q[30]=s,Q[31]=y0;else y0=Q[31];let V0=y0,Z0;if(Q[32]!==V0)Z0={"modelPicker:decreaseEffort":()=>V0("left"),"modelPicker:increaseEffort":()=>V0("right")},Q[32]=V0,Q[33]=Z0;else Z0=Q[33];let t;if(Q[34]===Symbol.for("react.memo_cache_sentinel"))t={context:"ModelPicker"},Q[34]=t;else t=Q[34];C6(Z0,t);let q0;if(Q[35]!==D||Q[36]!==L||Q[37]!==Y||Q[38]!==H||Q[39]!==W)q0=function(T0){if(l("jarvis_api_error",{effort:D}),!W)H((c0)=>({...c0,effortValue:effortLevel}));let S0=Hn1(T0),g0=L&&S0&&oN(S0)?D:void 0;if(T0===Ie0){Y(null,g0);return}Y(T0,g0)},Q[35]=D,Q[36]=L,Q[37]=Y,Q[38]=H,Q[39]=W,Q[40]=q0;else q0=Q[40];let Q0=q0,a;if(Q[41]===Symbol.for("react.memo_cache_sentinel"))a=VZ.jsxDEV(M,{color:"remember",bold:!0,children:"Select model"},void 0,!1,void 0,this),Q[41]=a;else a=Q[41];let O0=z??"Switch between models. Applies to this session and future Glock sessions. For other/previous model names, specify with --model.",D0;if(Q[42]!==O0)D0=VZ.jsxDEV(M,{dimColor:!0,children:O0},void 0,!1,void 0,this),Q[42]=O0,Q[43]=D0;else D0=Q[43];let F0;if(Q[44]!==Z)F0=Z&&VZ.jsxDEV(M,{dimColor:!0,children:["Currently using ",kO(Z)," for this session (set by plan mode). Selecting a model will undo this."]},void 0,!0,void 0,this),Q[44]=Z,Q[45]=F0;else F0=Q[45];let I0;if(Q[46]!==D0||Q[47]!==F0)I0=VZ.jsxDEV(f,{marginBottom:1,flexDirection:"column",children:[a,D0,F0]},void 0,!0,void 0,this),Q[46]=D0,Q[47]=F0,Q[48]=I0;else I0=Q[48];let U0=q??SXQ,P0;if(Q[49]!==W0||Q[50]!==Q0||Q[51]!==x||Q[52]!==U||Q[53]!==h||Q[54]!==U0||Q[55]!==m)P0=VZ.jsxDEV(f,{flexDirection:"column",children:VZ.jsxDEV(Q8,{defaultValue:U,defaultFocusValue:x,options:h,onChange:Q0,onFocus:W0,onCancel:U0,visibleOptionCount:m},void 0,!1,void 0,this)},void 0,!1,void 0,this),Q[49]=W0,Q[50]=Q0,Q[51]=x,Q[52]=U,Q[53]=h,Q[54]=U0,Q[55]=m,Q[56]=P0;else P0=Q[56];let $0;if(Q[57]!==p)$0=p>0&&VZ.jsxDEV(f,{paddingLeft:3,children:VZ.jsxDEV(M,{dimColor:!0,children:["and ",p," more\u2026"]},void 0,!0,void 0,this)},void 0,!1,void 0,this),Q[57]=p,Q[58]=$0;else $0=Q[58];let w0;if(Q[59]!==P0||Q[60]!==$0)w0=VZ.jsxDEV(f,{flexDirection:"column",marginBottom:1,children:[P0,$0]},void 0,!0,void 0,this),Q[59]=P0,Q[60]=$0,Q[61]=w0;else w0=Q[61];let E0;if(Q[62]!==G0||Q[63]!==Y0||Q[64]!==r||Q[65]!==J0)E0=VZ.jsxDEV(f,{marginBottom:1,flexDirection:"column",children:J0?VZ.jsxDEV(M,{dimColor:!0,children:[VZ.jsxDEV(QXJ,{effort:G0},void 0,!1,void 0,this)," ",CE(G0)," effort",G0===Y0?" (default)":""," ",VZ.jsxDEV(M,{color:"subtle",children:"\u2190 \u2192 to adjust"},void 0,!1,void 0,this)]},void 0,!0,void 0,this):VZ.jsxDEV(M,{color:"subtle",children:[VZ.jsxDEV(QXJ,{effort:void 0},void 0,!1,void 0,this)," Effort not supported",r?` for ${r}`:""]},void 0,!0,void 0,this)},void 0,!1,void 0,this),Q[62]=G0,Q[63]=Y0,Q[64]=r,Q[65]=J0,Q[66]=E0;else E0=Q[66];let h0;if(Q[67]!==G)h0=B9()?G?VZ.jsxDEV(f,{marginBottom:1,children:VZ.jsxDEV(M,{dimColor:!0,children:["Fast mode is ",VZ.jsxDEV(M,{bold:!0,children:"ON"},void 0,!1,void 0,this)," and available with"," ",wR," only (/fast). Switching to other models turn off fast mode."]},void 0,!0,void 0,this)},void 0,!1,void 0,this):GG()&&!p$()?VZ.jsxDEV(f,{marginBottom:1,children:VZ.jsxDEV(M,{dimColor:!0,children:["Use ",VZ.jsxDEV(M,{bold:!0,children:"/fast"},void 0,!1,void 0,this)," to turn on Fast mode (",wR," only)."]},void 0,!0,void 0,this)},void 0,!1,void 0,this):null:null,Q[67]=G,Q[68]=h0;else h0=Q[68];let u0;if(Q[69]!==I0||Q[70]!==w0||Q[71]!==E0||Q[72]!==h0)u0=VZ.jsxDEV(f,{flexDirection:"column",children:[I0,w0,E0,h0]},void 0,!0,void 0,this),Q[69]=I0,Q[70]=w0,Q[71]=E0,Q[72]=h0,Q[73]=u0;else u0=Q[73];let B0;if(Q[74]!==B||Q[75]!==K)B0=K&&VZ.jsxDEV(M,{dimColor:!0,italic:!0,children:B.pending?VZ.jsxDEV(VZ.Fragment,{children:["Press ",B.keyName," again to exit"]},void 0,!0,void 0,this):VZ.jsxDEV(V8,{children:[VZ.jsxDEV(p1,{shortcut:"Enter",action:"confirm"},void 0,!1,void 0,this),VZ.jsxDEV(s1,{action:"select:cancel",context:"Select",fallback:"Esc",description:"exit"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this),Q[74]=B,Q[75]=K,Q[76]=B0;else B0=Q[76];let _0;if(Q[77]!==u0||Q[78]!==B0)_0=VZ.jsxDEV(f,{flexDirection:"column",children:[u0,B0]},void 0,!0,void 0,this),Q[77]=u0,Q[78]=B0,Q[79]=_0;else _0=Q[79];let M0=_0;if(!K)return M0;let b0;if(Q[80]!==M0)b0=VZ.jsxDEV(yX,{color:"permission",children:M0},void 0,!1,void 0,this),Q[80]=M0,Q[81]=b0;else b0=Q[81];return b0}function SXQ(){}function xXQ(J){return{...J,value:J.value===null?Ie0:J.value}}function kXQ(J){return J.effortValue}function hXQ(J){return B9()?J.fastMode:!1}function Hn1(J){if(!J)return;return J===Ie0?xO():LQ(J)}function QXJ(J){let Q=Bn1.c(5),{effort:X}=J,Z=X?"glock":"subtle",Y=X??"low",q;if(Q[0]!==Y)q=QN0(Y),Q[0]=Y,Q[1]=q;else q=Q[1];let K;if(Q[2]!==Z||Q[3]!==q)K=VZ.jsxDEV(M,{color:Z,children:q},void 0,!1,void 0,this),Q[2]=Z,Q[3]=q,Q[4]=K;else K=Q[4];return K}function uXQ(J,Q,X){let Z=X?["low","medium","high","max"]:["low","medium","high"],Y=Z.indexOf(J),q=Y!==-1?Y:Z.indexOf("high");if(Q==="right")return Z[(q+1)%Z.length];else return Z[(q-1+Z.length)%Z.length]}function XXJ(J){let Q=Hn1(J)??xO(),X=TU0(Q);return X!==void 0?f60(X):"high"}var Bn1,je0,VZ,Ie0="__NO_PREFERENCE__";var ye0=I(()=>{_20();Lq();D1();$B();a0();f6();W6();sN();CJ();DV0();U7();tX();R9();g9();t3();$e0();Bn1=T(e0(),1),je0=T(J1(),1),VZ=T(e(),1)});function Fr(J,Q,X){if(!q9())return!1;if(Q)return!0;if(J===null||!wF(J))return!1;let Z=J.toLowerCase().replace(/\[1m\]$/,"").trim(),Y=Z==="opus"||Z.includes("opus-4-6"),q=Z==="sonnet"||Z.includes("sonnet-4-6");if(Y&&X)return!1;return Y||q}var be0=I(()=>{N9();lW()});var qXJ={};X8(qXJ,{GlockMdExternalIncludesDialog:()=>Un1});function Un1(J){let Q=ZXJ.c(18),{onDone:X,isStandaloneDialog:Z,externalIncludes:Y}=J,q;if(Q[0]===Symbol.for("react.memo_cache_sentinel"))q=[],Q[0]=q;else q=Q[0];YXJ.default.useEffect(cXQ,q);let K;if(Q[1]!==X)K=(A)=>{if(A==="no")l("jarvis_api_error",{}),KG(pXQ);else l("jarvis_api_error",{}),KG(mXQ);X()},Q[1]=X,Q[2]=K;else K=Q[2];let G=K,z;if(Q[3]!==G)z=()=>{G("no")},Q[3]=G,Q[4]=z;else z=Q[4];let W=z,H=!Z,B=!Z,U;if(Q[5]===Symbol.for("react.memo_cache_sentinel"))U=NC.jsxDEV(M,{children:"This project's GLOCK.md imports files outside the current working directory. Never allow this for third-party repositories."},void 0,!1,void 0,this),Q[5]=U;else U=Q[5];let F;if(Q[6]!==Y)F=Y&&Y.length>0&&NC.jsxDEV(f,{flexDirection:"column",children:[NC.jsxDEV(M,{dimColor:!0,children:"External imports:"},void 0,!1,void 0,this),Y.map(gXQ)]},void 0,!0,void 0,this),Q[6]=Y,Q[7]=F;else F=Q[7];let _;if(Q[8]===Symbol.for("react.memo_cache_sentinel"))_=NC.jsxDEV(M,{dimColor:!0,children:["Important: Only use Glock with files you trust. Accessing untrusted files may pose security risks"," ",NC.jsxDEV(zJ,{url:"https://docs.getglock.dev/en/security"},void 0,!1,void 0,this)," "]},void 0,!0,void 0,this),Q[8]=_;else _=Q[8];let O;if(Q[9]===Symbol.for("react.memo_cache_sentinel"))O=[{label:"Yes, allow external imports",value:"yes"},{label:"No, disable external imports",value:"no"}],Q[9]=O;else O=Q[9];let L;if(Q[10]!==G)L=NC.jsxDEV(Q8,{options:O,onChange:(A)=>G(A)},void 0,!1,void 0,this),Q[10]=G,Q[11]=L;else L=Q[11];let N;if(Q[12]!==W||Q[13]!==L||Q[14]!==H||Q[15]!==B||Q[16]!==F)N=NC.jsxDEV(D8,{title:"Allow external GLOCK.md file imports?",color:"warning",onCancel:W,hideBorder:H,hideInputGuide:B,children:[U,F,_,L]},void 0,!0,void 0,this),Q[12]=W,Q[13]=L,Q[14]=H,Q[15]=B,Q[16]=F,Q[17]=N;else N=Q[17];return N}function gXQ(J,Q){return NC.jsxDEV(M,{dimColor:!0,children:[" ",J.path]},Q,!0,void 0,this)}function mXQ(J){return{...J,hasGlockMdExternalIncludesApproved:!0,hasGlockMdExternalIncludesWarningShown:!0}}function pXQ(J){return{...J,hasGlockMdExternalIncludesApproved:!1,hasGlockMdExternalIncludesWarningShown:!0}}function cXQ(){l("jarvis_api_error",{})}var ZXJ,YXJ,NC;var Fn1=I(()=>{D1();a0();m8();tX();M9();ZXJ=T(e0(),1),YXJ=T(J1(),1),NC=T(e(),1)});function GXJ(J){let Q=KXJ.c(17),{currentVersion:X,onChoice:Z}=J,Y;if(Q[0]!==Z)Y=function(L){Z(L)},Q[0]=Z,Q[1]=Y;else Y=Q[1];let q=Y,K;if(Q[2]!==Z)K=function(){Z("cancel")},Q[2]=Z,Q[3]=K;else K=Q[3];let G=K,z;if(Q[4]!==X)z=XN0.jsxDEV(M,{children:["The stable channel may have an older version than what you're currently running (",X,")."]},void 0,!0,void 0,this),Q[4]=X,Q[5]=z;else z=Q[5];let W;if(Q[6]===Symbol.for("react.memo_cache_sentinel"))W=XN0.jsxDEV(M,{dimColor:!0,children:"How would you like to handle this?"},void 0,!1,void 0,this),Q[6]=W;else W=Q[6];let H;if(Q[7]===Symbol.for("react.memo_cache_sentinel"))H={label:"Allow possible downgrade to stable version",value:"downgrade"},Q[7]=H;else H=Q[7];let B=`Stay on current version (${X}) until stable catches up`,U;if(Q[8]!==B)U=[H,{label:B,value:"stay"}],Q[8]=B,Q[9]=U;else U=Q[9];let F;if(Q[10]!==q||Q[11]!==U)F=XN0.jsxDEV(Q8,{options:U,onChange:q},void 0,!1,void 0,this),Q[10]=q,Q[11]=U,Q[12]=F;else F=Q[12];let _;if(Q[13]!==G||Q[14]!==z||Q[15]!==F)_=XN0.jsxDEV(D8,{title:"Switch to Stable Channel",onCancel:G,color:"permission",hideBorder:!0,hideInputGuide:!0,children:[z,W,F]},void 0,!0,void 0,this),Q[13]=G,Q[14]=z,Q[15]=F,Q[16]=_;else _=Q[16];return _}var KXJ,XN0;var zXJ=I(()=>{a0();tX();M9();KXJ=T(e0(),1),XN0=T(e(),1)});function WXJ(J){return Object.entries(J).map(([Q,X])=>({label:X?.name??dXQ,value:Q,description:X?.description??lXQ}))}function BXJ(J){let Q=HXJ.c(16),{initialStyle:X,onComplete:Z,onCancel:Y,isStandaloneCommand:q}=J,K;if(Q[0]===Symbol.for("react.memo_cache_sentinel"))K=[],Q[0]=K;else K=Q[0];let[G,z]=ZN0.useState(K),[W,H]=ZN0.useState(!0),B,U;if(Q[1]===Symbol.for("react.memo_cache_sentinel"))B=()=>{xX0(B1()).then((D)=>{let $=WXJ(D);z($),H(!1)}).catch(()=>{let D=WXJ(Xl);z(D),H(!1)})},U=[],Q[1]=B,Q[2]=U;else B=Q[1],U=Q[2];ZN0.useEffect(B,U);let F;if(Q[3]!==Z)F=(D)=>{Z(D)},Q[3]=Z,Q[4]=F;else F=Q[4];let _=F,O=!q,L=!q,N;if(Q[5]===Symbol.for("react.memo_cache_sentinel"))N=_r.jsxDEV(f,{marginTop:1,children:_r.jsxDEV(M,{dimColor:!0,children:"This changes how Glock communicates with you"},void 0,!1,void 0,this)},void 0,!1,void 0,this),Q[5]=N;else N=Q[5];let A;if(Q[6]!==_||Q[7]!==X||Q[8]!==W||Q[9]!==G)A=_r.jsxDEV(f,{flexDirection:"column",gap:1,children:[N,W?_r.jsxDEV(M,{dimColor:!0,children:"Loading output styles\u2026"},void 0,!1,void 0,this):_r.jsxDEV(Q8,{options:G,onChange:_,visibleOptionCount:10,defaultValue:X},void 0,!1,void 0,this)]},void 0,!0,void 0,this),Q[6]=_,Q[7]=X,Q[8]=W,Q[9]=G,Q[10]=A;else A=Q[10];let R;if(Q[11]!==Y||Q[12]!==O||Q[13]!==L||Q[14]!==A)R=_r.jsxDEV(D8,{title:"Preferred output style",onCancel:Y,hideInputGuide:O,hideBorder:L,children:A},void 0,!1,void 0,this),Q[11]=Y,Q[12]=O,Q[13]=L,Q[14]=A,Q[15]=R;else R=Q[15];return R}var HXJ,ZN0,_r,dXQ="Default",lXQ="Glock completes coding tasks efficiently and provides concise responses";var UXJ=I(()=>{Vj();a0();Z6();AQ();M9();HXJ=T(e0(),1),ZN0=T(J1(),1),_r=T(e(),1)});function _XJ(J){let Q=FXJ.c(13),{initialLanguage:X,onComplete:Z,onCancel:Y}=J,[q,K]=_n1.useState(X),[G,z]=_n1.useState((X??"").length),W;if(Q[0]===Symbol.for("react.memo_cache_sentinel"))W={context:"Settings"},Q[0]=W;else W=Q[0];J8("confirm:no",Y,W);let H;if(Q[1]!==q||Q[2]!==Z)H=function(){let R=q?.trim();Z(R||void 0)},Q[1]=q,Q[2]=Z,Q[3]=H;else H=Q[3];let B=H,U;if(Q[4]===Symbol.for("react.memo_cache_sentinel"))U=Or.jsxDEV(M,{children:"Enter your preferred response and voice language:"},void 0,!1,void 0,this),Q[4]=U;else U=Q[4];let F;if(Q[5]===Symbol.for("react.memo_cache_sentinel"))F=Or.jsxDEV(M,{children:s0.pointer},void 0,!1,void 0,this),Q[5]=F;else F=Q[5];let _=q??"",O;if(Q[6]!==G||Q[7]!==B||Q[8]!==_)O=Or.jsxDEV(f,{flexDirection:"row",gap:1,children:[F,Or.jsxDEV(sX,{value:_,onChange:K,onSubmit:B,focus:!0,showCursor:!0,placeholder:`e.g., Japanese, \u65E5\u672C\u8A9E, Espa\xF1ol${s0.ellipsis}`,columns:60,cursorOffset:G,onChangeCursorOffset:z},void 0,!1,void 0,this)]},void 0,!0,void 0,this),Q[6]=G,Q[7]=B,Q[8]=_,Q[9]=O;else O=Q[9];let L;if(Q[10]===Symbol.for("react.memo_cache_sentinel"))L=Or.jsxDEV(M,{dimColor:!0,children:"Leave empty for default (English)"},void 0,!1,void 0,this),Q[10]=L;else L=Q[10];let N;if(Q[11]!==O)N=Or.jsxDEV(f,{flexDirection:"column",gap:1,children:[U,O,L]},void 0,!0,void 0,this),Q[11]=O,Q[12]=N;else N=Q[12];return N}var FXJ,_n1,Or;var OXJ=I(()=>{r6();a0();f6();EH();FXJ=T(e0(),1),_n1=T(J1(),1),Or=T(e(),1)});function LD(J){let Q=LXJ.c(17),{query:X,placeholder:Z,isFocused:Y,isTerminalFocused:q,prefix:K,width:G,cursorOffset:z,borderless:W}=J,H=Z===void 0?"Search\u2026":Z,B=K===void 0?"\u2315":K,U=W===void 0?!1:W,F=z??X.length,_=U?void 0:"round",O=Y?"suggestion":void 0,L=!Y,N=U?0:1,A=!Y,R;if(Q[0]!==Y||Q[1]!==q||Q[2]!==F||Q[3]!==H||Q[4]!==X)R=Y?q3.jsxDEV(q3.Fragment,{children:X?q?q3.jsxDEV(q3.Fragment,{children:[q3.jsxDEV(M,{children:X.slice(0,F)},void 0,!1,void 0,this),q3.jsxDEV(M,{inverse:!0,children:F<X.length?X[F]:" "},void 0,!1,void 0,this),F<X.length&&q3.jsxDEV(M,{children:X.slice(F+1)},void 0,!1,void 0,this)]},void 0,!0,void 0,this):q3.jsxDEV(M,{children:X},void 0,!1,void 0,this):q?q3.jsxDEV(q3.Fragment,{children:[q3.jsxDEV(M,{inverse:!0,children:H.charAt(0)},void 0,!1,void 0,this),q3.jsxDEV(M,{dimColor:!0,children:H.slice(1)},void 0,!1,void 0,this)]},void 0,!0,void 0,this):q3.jsxDEV(M,{dimColor:!0,children:H},void 0,!1,void 0,this)},void 0,!1,void 0,this):X?q3.jsxDEV(M,{children:X},void 0,!1,void 0,this):q3.jsxDEV(M,{children:H},void 0,!1,void 0,this),Q[0]=Y,Q[1]=q,Q[2]=F,Q[3]=H,Q[4]=X,Q[5]=R;else R=Q[5];let D;if(Q[6]!==B||Q[7]!==A||Q[8]!==R)D=q3.jsxDEV(M,{dimColor:A,children:[B," ",R]},void 0,!0,void 0,this),Q[6]=B,Q[7]=A,Q[8]=R,Q[9]=D;else D=Q[9];let $;if(Q[10]!==D||Q[11]!==_||Q[12]!==O||Q[13]!==L||Q[14]!==N||Q[15]!==G)$=q3.jsxDEV(f,{flexShrink:0,borderStyle:_,borderColor:O,borderDimColor:L,paddingX:N,width:G,children:D},void 0,!1,void 0,this),Q[10]=D,Q[11]=_,Q[12]=O,Q[13]=L,Q[14]=N,Q[15]=G,Q[16]=$;else $=Q[16];return $}var LXJ,q3;var Lr=I(()=>{a0();LXJ=T(e0(),1),q3=T(e(),1)});function iXQ(J){if(J.ctrl&&(J.key==="k"||J.key==="u"||J.key==="w"))return!0;if(J.meta&&J.key==="backspace")return!0;return!1}function nXQ(J){return(J.ctrl||J.meta)&&J.key==="y"}function gL({isActive:J,onExit:Q,onCancel:X,onExitUp:Z,columns:Y,passthroughCtrlKeys:q=[],initialQuery:K="",backspaceExitsOnEmpty:G=!0}){let{columns:z}=l8(),W=Y??z,[H,B]=YN0.useState(K),[U,F]=YN0.useState(K.length),_=YN0.useCallback((L)=>{B(L),F(L.length)},[]),O=(L)=>{if(!J)return;let N=$9.fromText(H,W,U);if(L.ctrl&&q.includes(L.key.toLowerCase()))return;if(!iXQ(L))CL0();if(!nXQ(L))vL0();if(L.key==="return"||L.key==="down"){L.preventDefault(),Q();return}if(L.key==="up"){if(L.preventDefault(),Z)Z();return}if(L.key==="escape"){if(L.preventDefault(),X)X();else if(H.length>0)B(""),F(0);else Q();return}if(L.key==="backspace"){if(L.preventDefault(),L.meta){let{cursor:R,killed:D}=N.deleteWordBefore();eT(D,"prepend"),B(R.text),F(R.offset);return}if(H.length===0){if(G)(X??Q)();return}let A=N.backspace();B(A.text),F(A.offset);return}if(L.key==="delete"){L.preventDefault();let A=N.del();B(A.text),F(A.offset);return}if(L.key==="left"&&(L.ctrl||L.meta||L.fn)){L.preventDefault();let A=N.prevWord();F(A.offset);return}if(L.key==="right"&&(L.ctrl||L.meta||L.fn)){L.preventDefault();let A=N.nextWord();F(A.offset);return}if(L.key==="left"){L.preventDefault();let A=N.left();F(A.offset);return}if(L.key==="right"){L.preventDefault();let A=N.right();F(A.offset);return}if(L.key==="home"){L.preventDefault(),F(0);return}if(L.key==="end"){L.preventDefault(),F(H.length);return}if(L.ctrl){switch(L.preventDefault(),L.key.toLowerCase()){case"a":F(0);return;case"e":F(H.length);return;case"b":F(N.left().offset);return;case"f":F(N.right().offset);return;case"d":{if(H.length===0){(X??Q)();return}let A=N.del();B(A.text),F(A.offset);return}case"h":{if(H.length===0){if(G)(X??Q)();return}let A=N.backspace();B(A.text),F(A.offset);return}case"k":{let{cursor:A,killed:R}=N.deleteToLineEnd();eT(R,"append"),B(A.text),F(A.offset);return}case"u":{let{cursor:A,killed:R}=N.deleteToLineStart();eT(R,"prepend"),B(A.text),F(A.offset);return}case"w":{let{cursor:A,killed:R}=N.deleteWordBefore();eT(R,"prepend"),B(A.text),F(A.offset);return}case"y":{let A=So0();if(A.length>0){let R=N.offset,D=N.insert(A);xo0(R,A.length),B(D.text),F(D.offset)}return}case"g":case"c":if(X){X();return}}return}if(L.meta){switch(L.preventDefault(),L.key.toLowerCase()){case"b":F(N.prevWord().offset);return;case"f":F(N.nextWord().offset);return;case"d":{let A=N.deleteWordAfter();B(A.text),F(A.offset);return}case"y":{let A=ko0();if(A){let{text:R,start:D,length:$}=A,y=H.slice(0,D),v=H.slice(D+$),E=y+R+v,C=D+R.length;ho0(R.length),B(E),F(C)}return}}return}if(L.key==="tab")return;if(L.key.length>=1&&!rXQ.has(L.key)){L.preventDefault();let A=N.insert(L.key);B(A.text),F(A.offset)}};return SJ((L,N,A)=>{O(new vR(A.keypress))},{isActive:J}),{query:H,setQuery:_,cursorOffset:U,handleKeyDown:O}}var YN0,rXQ;var Tu=I(()=>{f10();a0();un();U9();YN0=T(J1(),1);rXQ=new Set(["pageup","pagedown","insert","wheelup","wheeldown","mouse","f1","f2","f3","f4","f5","f6","f7","f8","f9","f10","f11","f12"])});function wXJ({onClose:J,context:Q,setTabsHidden:X,onIsSearchModeChange:Z,contentHeight:Y}){let{headerFocused:q,focusHeader:K}=BU(),G=oF(),[,z]=j6(),W=z10(),[H,B]=pK.useState(L1()),U=uH.useRef(L1()),[F,_]=pK.useState(h6()),O=uH.useRef(h6()),[L,N]=pK.useState(F?.outputStyle||F2),A=uH.useRef(L),[R,D]=pK.useState(F?.language),$=uH.useRef(R),[y,v]=pK.useState(0),[E,C]=pK.useState(0),[S,k]=pK.useState(!0),h=X5(),{rows:u}=l8(),x=Y??Math.min(Math.floor(u*0.8),30),m=Math.max(5,x-10),p=O1((R0)=>R0.mainLoopModel),c=O1((R0)=>R0.verbose),r=O1((R0)=>R0.thinkingEnabled),J0=O1((R0)=>B9()?R0.fastMode:!1),n=O1((R0)=>R0.promptSuggestionEnabled),s=!1,X0=!1,Y0=T6(),[G0,j0]=pK.useState({}),W0=uH.useRef(r),[y0]=pK.useState(()=>O8("localSettings")),[V0]=pK.useState(()=>O8("userSettings")),Z0=uH.useRef(W),t=aX(),[q0]=pK.useState(()=>{let R0=t.getState();return{mainLoopModel:R0.mainLoopModel,mainLoopModelForSession:R0.mainLoopModelForSession,verbose:R0.verbose,thinkingEnabled:R0.thinkingEnabled,fastMode:R0.fastMode,promptSuggestionEnabled:R0.promptSuggestionEnabled,isBriefOnly:R0.isBriefOnly,settings:R0.settings}}),[Q0]=pK.useState(()=>vM0()),a=uH.useRef(!1),[O0,D0]=pK.useState(!1),[F0,I0]=pK.useState(null),{query:U0,setQuery:P0,cursorOffset:$0}=gL({isActive:S&&F0===null&&!q,onExit:()=>k(!1),onExitUp:K,passthroughCtrlKeys:["c","d"]}),w0=S&&!q;uH.useEffect(()=>{Z?.(w0)},[w0,Z]);let E0=ec0(Q.options.mcpClients),h0=!0,u0=uH.use(eG(!0)),B0=On1(u0),_0=R00();function M0(R0){l("jarvis_api_error",{from_model:p,to_model:R0}),Y0((o0)=>({...o0,mainLoopModel:R0,mainLoopModelForSession:null})),j0((o0)=>{let R1=kO(R0)+(Fr(R0,!1,q2())?" \xB7 Billed as extra usage":"");if("model"in o0){let{model:l1,...a1}=o0;return{...a1,model:R1}}return{...o0,model:R1}})}function b0(R0){q8((p0)=>({...p0,verbose:R0})),B({...L1(),verbose:R0}),Y0((p0)=>({...p0,verbose:R0})),j0((p0)=>{if("verbose"in p0){let{verbose:o0,...R1}=p0;return R1}return{...p0,verbose:R0}})}let L0=[{id:"autoCompactEnabled",label:"Auto-compact",value:H.autoCompactEnabled,type:"boolean",onChange(R0){q8((p0)=>({...p0,autoCompactEnabled:R0})),B({...L1(),autoCompactEnabled:R0}),l("jarvis_api_error",{enabled:R0})}},{id:"spinnerTipsEnabled",label:"Show tips",value:F?.spinnerTipsEnabled??!0,type:"boolean",onChange(R0){y6("localSettings",{spinnerTipsEnabled:R0}),_((p0)=>({...p0,spinnerTipsEnabled:R0})),l("jarvis_api_error",{enabled:R0})}},{id:"prefersReducedMotion",label:"Reduce motion",value:F?.prefersReducedMotion??!1,type:"boolean",onChange(R0){y6("localSettings",{prefersReducedMotion:R0}),_((p0)=>({...p0,prefersReducedMotion:R0})),Y0((p0)=>({...p0,settings:{...p0.settings,prefersReducedMotion:R0}})),l("jarvis_api_error",{enabled:R0})}},{id:"thinkingEnabled",label:"Thinking mode",value:r??!0,type:"boolean",onChange(R0){Y0((p0)=>({...p0,thinkingEnabled:R0})),y6("userSettings",{alwaysThinkingEnabled:R0?void 0:!1}),l("jarvis_api_error",{enabled:R0})}},...B9()&&GG()?[{id:"fastMode",label:`Fast mode (${wR} only)`,value:!!J0,type:"boolean",onChange(R0){if(sc(),y6("userSettings",{fastMode:R0?!0:void 0}),R0)Y0((p0)=>({...p0,mainLoopModel:PW0(),mainLoopModelForSession:null,fastMode:!0})),j0((p0)=>({...p0,model:PW0(),"Fast mode":"ON"}));else Y0((p0)=>({...p0,fastMode:!1})),j0((p0)=>({...p0,"Fast mode":"OFF"}))}}]:[],...Y8("jarvis_api_error",!1)?[{id:"promptSuggestionEnabled",label:"Prompt suggestions",value:n,type:"boolean",onChange(R0){Y0((p0)=>({...p0,promptSuggestionEnabled:R0})),y6("userSettings",{promptSuggestionEnabled:R0?void 0:!1})}}]:[],...[],...h0?[{id:"fileCheckpointingEnabled",label:"Rewind code (checkpoints)",value:H.fileCheckpointingEnabled,type:"boolean",onChange(R0){q8((p0)=>({...p0,fileCheckpointingEnabled:R0})),B({...L1(),fileCheckpointingEnabled:R0}),l("jarvis_api_error",{enabled:R0})}}]:[],{id:"verbose",label:"Verbose output",value:c,type:"boolean",onChange:b0},{id:"terminalProgressBarEnabled",label:"Terminal progress bar",value:H.terminalProgressBarEnabled,type:"boolean",onChange(R0){q8((p0)=>({...p0,terminalProgressBarEnabled:R0})),B({...L1(),terminalProgressBarEnabled:R0}),l("jarvis_api_error",{enabled:R0})}},...Y8("jarvis_api_error",!1)?[{id:"showStatusInTerminalTab",label:"Show status in terminal tab",value:H.showStatusInTerminalTab??!1,type:"boolean",onChange(R0){q8((p0)=>({...p0,showStatusInTerminalTab:R0})),B({...L1(),showStatusInTerminalTab:R0}),l("jarvis_api_error",{enabled:R0})}}]:[],{id:"showTurnDuration",label:"Show turn duration",value:H.showTurnDuration,type:"boolean",onChange(R0){q8((p0)=>({...p0,showTurnDuration:R0})),B({...L1(),showTurnDuration:R0}),l("jarvis_api_error",{enabled:R0})}},{id:"defaultPermissionMode",label:"Default permission mode",value:F?.permissions?.defaultMode||"default",options:(()=>{let R0=["default","plan"],p0=dp,o0=["bypassPermissions"];return[...R0,...p0.filter((R1)=>!R0.includes(R1)&&!o0.includes(R1))]})(),type:"enum",onChange(R0){let p0=wO(R0),o0=KV8(p0)?JR(p0):p0,R1=y6("userSettings",{permissions:{...F?.permissions,defaultMode:o0}});if(R1.error){H0(R1.error);return}_((l1)=>({...l1,permissions:{...l1?.permissions,defaultMode:o0}})),j0((l1)=>({...l1,defaultPermissionMode:R0})),l("jarvis_api_error",{setting:"defaultPermissionMode",value:R0})}},...[],{id:"respectGitignore",label:"Respect .gitignore in file picker",value:H.respectGitignore,type:"boolean",onChange(R0){q8((p0)=>({...p0,respectGitignore:R0})),B({...L1(),respectGitignore:R0}),l("jarvis_api_error",{enabled:R0})}},{id:"copyFullResponse",label:"Always copy full response (skip /copy picker)",value:H.copyFullResponse,type:"boolean",onChange(R0){q8((p0)=>({...p0,copyFullResponse:R0})),B({...L1(),copyFullResponse:R0}),l("jarvis_api_error",{setting:"copyFullResponse",value:String(R0)})}},...yJ()?[{id:"copyOnSelect",label:"Copy on select",value:H.copyOnSelect??!0,type:"boolean",onChange(R0){q8((p0)=>({...p0,copyOnSelect:R0})),B({...L1(),copyOnSelect:R0}),l("jarvis_api_error",{setting:"copyOnSelect",value:String(R0)})}}]:[],_0?{id:"autoUpdatesChannel",label:"Auto-update channel",value:"disabled",type:"managedEnum",onChange(){}}:{id:"autoUpdatesChannel",label:"Auto-update channel",value:F?.autoUpdatesChannel??"latest",type:"managedEnum",onChange(){}},{id:"theme",label:"Theme",value:W,type:"managedEnum",onChange:z},{id:"notifChannel",label:"Notifications",value:H.preferredNotifChannel,options:["auto","iterm2","terminal_bell","iterm2_with_bell","kitty","ghostty","notifications_disabled"],type:"enum",onChange(R0){q8((p0)=>({...p0,preferredNotifChannel:R0})),B({...L1(),preferredNotifChannel:R0})}},...[],{id:"outputStyle",label:"Output style",value:L,type:"managedEnum",onChange:()=>{}},...[],{id:"language",label:"Language",value:R??"Default (English)",type:"managedEnum",onChange:()=>{}},{id:"editorMode",label:"Editor mode",value:H.editorMode==="emacs"?"normal":H.editorMode||"normal",options:["normal","vim"],type:"enum",onChange(R0){q8((p0)=>({...p0,editorMode:R0})),B({...L1(),editorMode:R0}),l("jarvis_api_error",{mode:R0,source:"config_panel"})}},{id:"prStatusFooterEnabled",label:"Show PR status footer",value:H.prStatusFooterEnabled??!0,type:"boolean",onChange(R0){q8((p0)=>{if(p0.prStatusFooterEnabled===R0)return p0;return{...p0,prStatusFooterEnabled:R0}}),B({...L1(),prStatusFooterEnabled:R0}),l("jarvis_api_error",{enabled:R0})}},{id:"model",label:"Model",value:p===null?"Default (recommended)":p,type:"managedEnum",onChange:M0},...E0?[{id:"diffTool",label:"Diff tool",value:H.diffTool??"auto",options:["terminal","auto"],type:"enum",onChange(R0){q8((p0)=>({...p0,diffTool:R0})),B({...L1(),diffTool:R0}),l("jarvis_api_error",{tool:R0,source:"config_panel"})}}]:[],...!tz()?[{id:"autoConnectIde",label:"Auto-connect to IDE (external terminal)",value:H.autoConnectIde??!1,type:"boolean",onChange(R0){q8((p0)=>({...p0,autoConnectIde:R0})),B({...L1(),autoConnectIde:R0}),l("jarvis_api_error",{enabled:R0,source:"config_panel"})}}]:[],...tz()?[{id:"autoInstallIdeExtension",label:"Auto-install IDE extension",value:H.autoInstallIdeExtension??!0,type:"boolean",onChange(R0){q8((p0)=>({...p0,autoInstallIdeExtension:R0})),B({...L1(),autoInstallIdeExtension:R0}),l("jarvis_api_error",{enabled:R0,source:"config_panel"})}}]:[],...p6()?(()=>{let R0=xh1();return[{id:"teammateMode",label:R0?`Teammate mode [overridden: ${R0}]`:"Teammate mode",value:H.teammateMode??"auto",options:["auto","tmux","in-process"],type:"enum",onChange(o0){if(o0!=="auto"&&o0!=="tmux"&&o0!=="in-process")return;kh1(o0),q8((R1)=>({...R1,teammateMode:o0})),B({...L1(),teammateMode:o0}),l("jarvis_api_error",{mode:o0})}},{id:"teammateDefaultModel",label:"Default teammate model",value:VXJ(H.teammateDefaultModel),type:"managedEnum",onChange(){}}]})():[],...B0?[{id:"showExternalIncludesDialog",label:"External GLOCK.md includes",value:(()=>{if(RK().hasGlockMdExternalIncludesApproved)return"true";else return"false"})(),type:"managedEnum",onChange(){}}]:[],...process.env.GLOCK_API_KEY&&!Y$()?[{id:"apiKey",label:o8.jsxDEV(M,{children:["Use custom API key:"," ",o8.jsxDEV(M,{bold:!0,children:ON(process.env.GLOCK_API_KEY)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),searchText:"Use custom API key",value:Boolean(process.env.GLOCK_API_KEY&&H.customApiKeyResponses?.approved?.includes(ON(process.env.GLOCK_API_KEY))),type:"boolean",onChange(R0){q8((p0)=>{let o0={...p0};if(!o0.customApiKeyResponses)o0.customApiKeyResponses={approved:[],rejected:[]};if(!o0.customApiKeyResponses.approved)o0.customApiKeyResponses={...o0.customApiKeyResponses,approved:[]};if(!o0.customApiKeyResponses.rejected)o0.customApiKeyResponses={...o0.customApiKeyResponses,rejected:[]};if(process.env.GLOCK_API_KEY){let R1=ON(process.env.GLOCK_API_KEY);if(R0)o0.customApiKeyResponses={...o0.customApiKeyResponses,approved:[...(o0.customApiKeyResponses.approved??[]).filter((l1)=>l1!==R1),R1],rejected:(o0.customApiKeyResponses.rejected??[]).filter((l1)=>l1!==R1)};else o0.customApiKeyResponses={...o0.customApiKeyResponses,approved:(o0.customApiKeyResponses.approved??[]).filter((l1)=>l1!==R1),rejected:[...(o0.customApiKeyResponses.rejected??[]).filter((l1)=>l1!==R1),R1]}}return o0}),B(L1())}}]:[]],T0=uH.useMemo(()=>{if(!U0)return L0;let R0=U0.toLowerCase();return L0.filter((p0)=>{if(p0.id.toLowerCase().includes(R0))return!0;return("searchText"in p0?p0.searchText:p0.label).toLowerCase().includes(R0)})},[L0,U0]);uH.useEffect(()=>{if(y>=T0.length){let R0=Math.max(0,T0.length-1);v(R0),C(Math.max(0,R0-m+1));return}C((R0)=>{if(y<R0)return y;if(y>=R0+m)return y-m+1;return R0})},[T0.length,y,m]);let S0=pK.useCallback((R0)=>{C((p0)=>{if(R0<p0)return R0;if(R0>=p0+m)return R0-m+1;return p0})},[m]),g0=pK.useCallback(()=>{if(F0!==null)return;let R0=Object.entries(G0).map(([l1,a1])=>{return l("jarvis_api_error",{key:l1,value:a1}),`Set ${l1} to ${_1.bold(a1)}`}),p0=Y$()?void 0:process.env.GLOCK_API_KEY,o0=Boolean(p0&&U.current.customApiKeyResponses?.approved?.includes(ON(p0))),R1=Boolean(p0&&H.customApiKeyResponses?.approved?.includes(ON(p0)));if(o0!==R1)R0.push(`${R1?"Enabled":"Disabled"} custom API key`),l("jarvis_api_error",{key:"env.GLOCK_API_KEY",value:R1});if(H.theme!==U.current.theme)R0.push(`Set theme to ${_1.bold(H.theme)}`);if(H.preferredNotifChannel!==U.current.preferredNotifChannel)R0.push(`Set notifications to ${_1.bold(H.preferredNotifChannel)}`);if(L!==A.current)R0.push(`Set output style to ${_1.bold(L)}`);if(R!==$.current)R0.push(`Set response language to ${_1.bold(R??"Default (English)")}`);if(H.editorMode!==U.current.editorMode)R0.push(`Set editor mode to ${_1.bold(H.editorMode||"emacs")}`);if(H.diffTool!==U.current.diffTool)R0.push(`Set diff tool to ${_1.bold(H.diffTool)}`);if(H.autoConnectIde!==U.current.autoConnectIde)R0.push(`${H.autoConnectIde?"Enabled":"Disabled"} auto-connect to IDE`);if(H.autoInstallIdeExtension!==U.current.autoInstallIdeExtension)R0.push(`${H.autoInstallIdeExtension?"Enabled":"Disabled"} auto-install IDE extension`);if(H.autoCompactEnabled!==U.current.autoCompactEnabled)R0.push(`${H.autoCompactEnabled?"Enabled":"Disabled"} auto-compact`);if(H.respectGitignore!==U.current.respectGitignore)R0.push(`${H.respectGitignore?"Enabled":"Disabled"} respect .gitignore in file picker`);if(H.copyFullResponse!==U.current.copyFullResponse)R0.push(`${H.copyFullResponse?"Enabled":"Disabled"} always copy full response`);if(H.copyOnSelect!==U.current.copyOnSelect)R0.push(`${H.copyOnSelect?"Enabled":"Disabled"} copy on select`);if(H.terminalProgressBarEnabled!==U.current.terminalProgressBarEnabled)R0.push(`${H.terminalProgressBarEnabled?"Enabled":"Disabled"} terminal progress bar`);if(H.showStatusInTerminalTab!==U.current.showStatusInTerminalTab)R0.push(`${H.showStatusInTerminalTab?"Enabled":"Disabled"} terminal tab status`);if(H.showTurnDuration!==U.current.showTurnDuration)R0.push(`${H.showTurnDuration?"Enabled":"Disabled"} turn duration`);if(F?.autoUpdatesChannel!==O.current?.autoUpdatesChannel)R0.push(`Set auto-update channel to ${_1.bold(F?.autoUpdatesChannel??"latest")}`);if(R0.length>0)J(R0.join(`
|
|
5090
|
+
`));else J("Config dialog dismissed",{display:"system"})},[F0,G0,H,p,L,R,F?.autoUpdatesChannel,B9()?F?.fastMode:void 0,J]),c0=pK.useCallback(()=>{if(W!==Z0.current)z(Z0.current);q8(()=>U.current);let R0=y0;y6("localSettings",{spinnerTipsEnabled:R0?.spinnerTipsEnabled,prefersReducedMotion:R0?.prefersReducedMotion,defaultView:R0?.defaultView,outputStyle:R0?.outputStyle});let p0=V0;y6("userSettings",{alwaysThinkingEnabled:p0?.alwaysThinkingEnabled,fastMode:p0?.fastMode,promptSuggestionEnabled:p0?.promptSuggestionEnabled,autoUpdatesChannel:p0?.autoUpdatesChannel,minimumVersion:p0?.minimumVersion,language:p0?.language,...{},syntaxHighlightingDisabled:p0?.syntaxHighlightingDisabled,permissions:p0?.permissions===void 0?void 0:{...p0.permissions,defaultMode:p0.permissions.defaultMode}});let o0=q0;if(Y0((R1)=>({...R1,mainLoopModel:o0.mainLoopModel,mainLoopModelForSession:o0.mainLoopModelForSession,verbose:o0.verbose,thinkingEnabled:o0.thinkingEnabled,fastMode:o0.fastMode,promptSuggestionEnabled:o0.promptSuggestionEnabled,isBriefOnly:o0.isBriefOnly,settings:o0.settings,toolPermissionContext:Ul0(R1.toolPermissionContext)})),vM0()!==Q0)QQ1(Q0)},[W,z,y0,V0,q0,Q0,Y0]),t0=pK.useCallback(()=>{if(F0!==null)return;if(a.current)c0();J("Config dialog dismissed",{display:"system"})},[F0,c0,J]);J8("confirm:no",t0,{context:"Settings",isActive:F0===null&&!S&&!q}),J8("settings:close",g0,{context:"Settings",isActive:F0===null&&!S&&!q});let K1=pK.useCallback(()=>{let R0=T0[y];if(!R0||!R0.onChange)return;if(R0.type==="boolean"){if(a.current=!0,R0.onChange(!R0.value),R0.id==="thinkingEnabled"){if(!R0.value===W0.current)D0(!1);else if(Q.messages.some((R1)=>R1.type==="assistant"))D0(!0)}return}if(R0.id==="theme"||R0.id==="model"||R0.id==="teammateDefaultModel"||R0.id==="showExternalIncludesDialog"||R0.id==="outputStyle"||R0.id==="language")switch(R0.id){case"theme":I0("Theme"),X(!0);return;case"model":I0("Model"),X(!0);return;case"teammateDefaultModel":I0("TeammateModel"),X(!0);return;case"showExternalIncludesDialog":I0("ExternalIncludes"),X(!0);return;case"outputStyle":I0("OutputStyle"),X(!0);return;case"language":I0("Language"),X(!0);return}if(R0.id==="autoUpdatesChannel"){if(_0){I0("EnableAutoUpdates"),X(!0);return}if((F?.autoUpdatesChannel??"latest")==="latest")I0("ChannelDowngrade"),X(!0);else a.current=!0,y6("userSettings",{autoUpdatesChannel:"latest",minimumVersion:void 0}),_((o0)=>({...o0,autoUpdatesChannel:"latest",minimumVersion:void 0})),l("jarvis_api_error",{channel:"latest"});return}if(R0.type==="enum"){a.current=!0;let o0=(R0.options.indexOf(R0.value)+1)%R0.options.length;R0.onChange(R0.options[o0]);return}},[_0,T0,y,F?.autoUpdatesChannel,X]),K0=(R0)=>{D0(!1);let p0=Math.max(0,Math.min(T0.length-1,y+R0));v(p0),S0(p0)};C6({"select:previous":()=>{if(y===0)D0(!1),k(!0),C(0);else K0(-1)},"select:next":()=>K0(1),"scroll:lineUp":()=>K0(-1),"scroll:lineDown":()=>K0(1),"select:accept":K1,"settings:search":()=>{k(!0),P0("")}},{context:"Settings",isActive:F0===null&&!S&&!q});let m0=pK.useCallback((R0)=>{if(F0!==null)return;if(q)return;if(S){if(R0.key==="escape"){if(R0.preventDefault(),U0.length>0)P0("");else k(!1);return}if(R0.key==="return"||R0.key==="down"||R0.key==="wheeldown")R0.preventDefault(),k(!1),v(0),C(0);return}if(R0.key==="left"||R0.key==="right"||R0.key==="tab"){R0.preventDefault(),K1();return}if(R0.ctrl||R0.meta)return;if(R0.key==="j"||R0.key==="k"||R0.key==="/")return;if(R0.key.length===1&&R0.key!==" ")R0.preventDefault(),k(!0),P0(R0.key)},[F0,q,S,U0,P0,K1]);return o8.jsxDEV(f,{flexDirection:"column",width:"100%",tabIndex:0,autoFocus:!0,onKeyDown:m0,children:F0==="Theme"?o8.jsxDEV(o8.Fragment,{children:[o8.jsxDEV(QZ0,{onThemeSelect:(R0)=>{a.current=!0,z(R0),I0(null),X(!1)},onCancel:()=>{I0(null),X(!1)},hideEscToCancel:!0,skipExitHandling:!0},void 0,!1,void 0,this),o8.jsxDEV(f,{children:o8.jsxDEV(M,{dimColor:!0,italic:!0,children:o8.jsxDEV(V8,{children:[o8.jsxDEV(p1,{shortcut:"Enter",action:"select"},void 0,!1,void 0,this),o8.jsxDEV(s1,{action:"confirm:no",context:"Confirmation",fallback:"Esc",description:"cancel"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this):F0==="Model"?o8.jsxDEV(o8.Fragment,{children:[o8.jsxDEV(Ur,{initial:p,onSelect:(R0,p0)=>{a.current=!0,M0(R0),I0(null),X(!1)},onCancel:()=>{I0(null),X(!1)},showFastModeNotice:B9()?J0&&DK(p)&&GG():!1},void 0,!1,void 0,this),o8.jsxDEV(M,{dimColor:!0,children:o8.jsxDEV(V8,{children:[o8.jsxDEV(p1,{shortcut:"Enter",action:"confirm"},void 0,!1,void 0,this),o8.jsxDEV(s1,{action:"confirm:no",context:"Confirmation",fallback:"Esc",description:"cancel"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this):F0==="TeammateModel"?o8.jsxDEV(o8.Fragment,{children:[o8.jsxDEV(Ur,{initial:H.teammateDefaultModel??null,skipSettingsWrite:!0,headerText:"Default model for newly spawned teammates. The leader can override via the tool call's model parameter.",onSelect:(R0,p0)=>{if(I0(null),X(!1),H.teammateDefaultModel===void 0&&R0===null)return;a.current=!0,q8((o0)=>o0.teammateDefaultModel===R0?o0:{...o0,teammateDefaultModel:R0}),B({...L1(),teammateDefaultModel:R0}),j0((o0)=>({...o0,teammateDefaultModel:VXJ(R0)})),l("jarvis_api_error",{model:R0})},onCancel:()=>{I0(null),X(!1)}},void 0,!1,void 0,this),o8.jsxDEV(M,{dimColor:!0,children:o8.jsxDEV(V8,{children:[o8.jsxDEV(p1,{shortcut:"Enter",action:"confirm"},void 0,!1,void 0,this),o8.jsxDEV(s1,{action:"confirm:no",context:"Confirmation",fallback:"Esc",description:"cancel"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this):F0==="ExternalIncludes"?o8.jsxDEV(o8.Fragment,{children:[o8.jsxDEV(Un1,{onDone:()=>{I0(null),X(!1)},externalIncludes:qN0(u0)},void 0,!1,void 0,this),o8.jsxDEV(M,{dimColor:!0,children:o8.jsxDEV(V8,{children:[o8.jsxDEV(p1,{shortcut:"Enter",action:"confirm"},void 0,!1,void 0,this),o8.jsxDEV(s1,{action:"confirm:no",context:"Confirmation",fallback:"Esc",description:"disable external includes"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this):F0==="OutputStyle"?o8.jsxDEV(o8.Fragment,{children:[o8.jsxDEV(BXJ,{initialStyle:L,onComplete:(R0)=>{a.current=!0,N(R0??F2),I0(null),X(!1),y6("localSettings",{outputStyle:R0}),l("jarvis_api_error",{style:R0??F2,source:"config_panel",settings_source:"localSettings"})},onCancel:()=>{I0(null),X(!1)}},void 0,!1,void 0,this),o8.jsxDEV(M,{dimColor:!0,children:o8.jsxDEV(V8,{children:[o8.jsxDEV(p1,{shortcut:"Enter",action:"confirm"},void 0,!1,void 0,this),o8.jsxDEV(s1,{action:"confirm:no",context:"Confirmation",fallback:"Esc",description:"cancel"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this):F0==="Language"?o8.jsxDEV(o8.Fragment,{children:[o8.jsxDEV(_XJ,{initialLanguage:R,onComplete:(R0)=>{a.current=!0,D(R0),I0(null),X(!1),y6("userSettings",{language:R0}),l("jarvis_api_error",{language:R0??"default",source:"config_panel"})},onCancel:()=>{I0(null),X(!1)}},void 0,!1,void 0,this),o8.jsxDEV(M,{dimColor:!0,children:o8.jsxDEV(V8,{children:[o8.jsxDEV(p1,{shortcut:"Enter",action:"confirm"},void 0,!1,void 0,this),o8.jsxDEV(s1,{action:"confirm:no",context:"Settings",fallback:"Esc",description:"cancel"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this):F0==="EnableAutoUpdates"?o8.jsxDEV(D8,{title:"Enable Auto-Updates",onCancel:()=>{I0(null),X(!1)},hideBorder:!0,hideInputGuide:!0,children:_0?.type!=="config"?o8.jsxDEV(o8.Fragment,{children:[o8.jsxDEV(M,{children:_0?.type==="env"?"Auto-updates are controlled by an environment variable and cannot be changed here.":"Auto-updates are disabled in development builds."},void 0,!1,void 0,this),_0?.type==="env"&&o8.jsxDEV(M,{dimColor:!0,children:["Unset ",_0.envVar," to re-enable auto-updates."]},void 0,!0,void 0,this)]},void 0,!0,void 0,this):o8.jsxDEV(Q8,{options:[{label:"Enable with latest channel",value:"latest"},{label:"Enable with stable channel",value:"stable"}],onChange:(R0)=>{a.current=!0,I0(null),X(!1),q8((p0)=>({...p0,autoUpdates:!0})),B({...L1(),autoUpdates:!0}),y6("userSettings",{autoUpdatesChannel:R0,minimumVersion:void 0}),_((p0)=>({...p0,autoUpdatesChannel:R0,minimumVersion:void 0})),l("jarvis_api_error",{channel:R0})}},void 0,!1,void 0,this)},void 0,!1,void 0,this):F0==="ChannelDowngrade"?o8.jsxDEV(GXJ,{currentVersion:"0.1.17",onChoice:(R0)=>{if(I0(null),X(!1),R0==="cancel")return;a.current=!0;let p0={autoUpdatesChannel:"stable"};if(R0==="stay")p0.minimumVersion="0.1.17";y6("userSettings",p0),_((o0)=>({...o0,...p0})),l("jarvis_api_error",{channel:"stable",minimum_version_set:R0==="stay"})}},void 0,!1,void 0,this):o8.jsxDEV(f,{flexDirection:"column",gap:1,marginY:G?void 0:1,children:[o8.jsxDEV(LD,{query:U0,isFocused:S&&!q,isTerminalFocused:h,cursorOffset:$0,placeholder:"Search settings\u2026"},void 0,!1,void 0,this),o8.jsxDEV(f,{flexDirection:"column",children:T0.length===0?o8.jsxDEV(M,{dimColor:!0,italic:!0,children:['No settings match "',U0,'"']},void 0,!0,void 0,this):o8.jsxDEV(o8.Fragment,{children:[E>0&&o8.jsxDEV(M,{dimColor:!0,children:[s0.arrowUp," ",E," more above"]},void 0,!0,void 0,this),T0.slice(E,E+m).map((R0,p0)=>{let R1=E+p0===y&&!q&&!S;return o8.jsxDEV(uH.Fragment,{children:o8.jsxDEV(f,{children:[o8.jsxDEV(f,{width:44,children:o8.jsxDEV(M,{color:R1?"suggestion":void 0,children:[R1?s0.pointer:" "," ",R0.label]},void 0,!0,void 0,this)},void 0,!1,void 0,this),o8.jsxDEV(f,{children:R0.type==="boolean"?o8.jsxDEV(o8.Fragment,{children:[o8.jsxDEV(M,{color:R1?"suggestion":void 0,children:R0.value.toString()},void 0,!1,void 0,this),O0&&R0.id==="thinkingEnabled"&&o8.jsxDEV(M,{color:"warning",children:[" ","Changing thinking mode mid-conversation will increase latency and may reduce quality."]},void 0,!0,void 0,this)]},void 0,!0,void 0,this):R0.id==="theme"?o8.jsxDEV(M,{color:R1?"suggestion":void 0,children:aXQ[R0.value.toString()]??R0.value.toString()},void 0,!1,void 0,this):R0.id==="notifChannel"?o8.jsxDEV(M,{color:R1?"suggestion":void 0,children:o8.jsxDEV(oXQ,{value:R0.value.toString()},void 0,!1,void 0,this)},void 0,!1,void 0,this):R0.id==="defaultPermissionMode"?o8.jsxDEV(M,{color:R1?"suggestion":void 0,children:kb(R0.value)},void 0,!1,void 0,this):R0.id==="autoUpdatesChannel"&&_0?o8.jsxDEV(f,{flexDirection:"column",children:[o8.jsxDEV(M,{color:R1?"suggestion":void 0,children:"disabled"},void 0,!1,void 0,this),o8.jsxDEV(M,{dimColor:!0,children:["(",Sv0(_0),")"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this):o8.jsxDEV(M,{color:R1?"suggestion":void 0,children:R0.value.toString()},void 0,!1,void 0,this)},R1?"selected":"unselected",!1,void 0,this)]},void 0,!0,void 0,this)},R0.id,!1,void 0,this)}),E+m<T0.length&&o8.jsxDEV(M,{dimColor:!0,children:[s0.arrowDown," ",T0.length-E-m," ","more below"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this),q?o8.jsxDEV(M,{dimColor:!0,children:o8.jsxDEV(V8,{children:[o8.jsxDEV(p1,{shortcut:"\u2190/\u2192 tab",action:"switch"},void 0,!1,void 0,this),o8.jsxDEV(p1,{shortcut:"\u2193",action:"return"},void 0,!1,void 0,this),o8.jsxDEV(s1,{action:"confirm:no",context:"Settings",fallback:"Esc",description:"close"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this):S?o8.jsxDEV(M,{dimColor:!0,children:o8.jsxDEV(V8,{children:[o8.jsxDEV(M,{children:"Type to filter"},void 0,!1,void 0,this),o8.jsxDEV(p1,{shortcut:"Enter/\u2193",action:"select"},void 0,!1,void 0,this),o8.jsxDEV(p1,{shortcut:"\u2191",action:"tabs"},void 0,!1,void 0,this),o8.jsxDEV(s1,{action:"confirm:no",context:"Settings",fallback:"Esc",description:"clear"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this):o8.jsxDEV(M,{dimColor:!0,children:o8.jsxDEV(V8,{children:[o8.jsxDEV(s1,{action:"select:accept",context:"Settings",fallback:"Space",description:"change"},void 0,!1,void 0,this),o8.jsxDEV(s1,{action:"settings:close",context:"Settings",fallback:"Enter",description:"save"},void 0,!1,void 0,this),o8.jsxDEV(s1,{action:"settings:search",context:"Settings",fallback:"/",description:"search"},void 0,!1,void 0,this),o8.jsxDEV(s1,{action:"confirm:no",context:"Settings",fallback:"Esc",description:"cancel"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this)}function VXJ(J){if(J===void 0)return kO(nL0());if(J===null)return"Default (leader's model)";return kO(J)}function oXQ(J){let Q=NXJ.c(4),{value:X}=J;switch(X){case"auto":return"Auto";case"iterm2":{let Z;if(Q[0]===Symbol.for("react.memo_cache_sentinel"))Z=o8.jsxDEV(M,{children:["iTerm2 ",o8.jsxDEV(M,{dimColor:!0,children:"(OSC 9)"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),Q[0]=Z;else Z=Q[0];return Z}case"terminal_bell":{let Z;if(Q[1]===Symbol.for("react.memo_cache_sentinel"))Z=o8.jsxDEV(M,{children:["Terminal Bell ",o8.jsxDEV(M,{dimColor:!0,children:"(\\a)"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),Q[1]=Z;else Z=Q[1];return Z}case"kitty":{let Z;if(Q[2]===Symbol.for("react.memo_cache_sentinel"))Z=o8.jsxDEV(M,{children:["Kitty ",o8.jsxDEV(M,{dimColor:!0,children:"(OSC 99)"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),Q[2]=Z;else Z=Q[2];return Z}case"ghostty":{let Z;if(Q[3]===Symbol.for("react.memo_cache_sentinel"))Z=o8.jsxDEV(M,{children:["Ghostty ",o8.jsxDEV(M,{dimColor:!0,children:"(OSC 777)"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),Q[3]=Z;else Z=Q[3];return Z}case"iterm2_with_bell":return"iTerm2 w/ Bell";case"notifications_disabled":return"Disabled";default:return X}}var NXJ,uH,pK,o8,aXQ;var AXJ=I(()=>{a0();f6();r6();m8();c30();m8();k7();vW();JW();M1();D1();De0();W6();ye0();CJ();be0();Fn1();zXJ();M9();tX();UXJ();OXJ();ez();g9();U7();R9();ew();rE();Lr();b5();g8();N1();Vj();t1();lZ();c70();wc1();Tu();U9();$B();fz();NXJ=T(e0(),1),uH=T(J1(),1),pK=T(J1(),1),o8=T(e(),1);aXQ={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)"}});async function RXJ(J){let{accessToken:Q,orgUUID:X}=await Sw(),Z={...$q(Q),"x-organization-uuid":X},Y=`${qJ().BASE_API_URL}/api/oauth/organizations/${X}/admin_requests`;return(await y8.post(Y,J,{headers:Z})).data}async function MXJ(J,Q){let{accessToken:X,orgUUID:Z}=await Sw(),Y={...$q(X),"x-organization-uuid":Z},q=`${qJ().BASE_API_URL}/api/oauth/organizations/${Z}/admin_requests/me?request_type=${J}`;for(let G of Q)q+=`&statuses=${G}`;return(await y8.get(q,{headers:Y})).data}async function DXJ(J){let{accessToken:Q,orgUUID:X}=await Sw(),Z={...$q(Q),"x-organization-uuid":X},Y=`${qJ().BASE_API_URL}/api/oauth/organizations/${X}/admin_requests/eligibility?request_type=${J}`;return(await y8.get(Y,{headers:Z})).data}var $XJ=I(()=>{JX();$Z();TL()});function KN0(){let J=Yq()?.organizationUuid;if(!J)return null;let Q=L1().overageCreditGrantCache?.[J];if(!Q)return null;if(Date.now()-Q.timestamp>sXQ)return null;return Q.info}function jXJ(){let J=Yq()?.organizationUuid;if(!J)return;let Q=L1().overageCreditGrantCache;if(!Q||!(J in Q))return;q8((X)=>{let Z={...X.overageCreditGrantCache};return delete Z[J],{...X,overageCreditGrantCache:Z}})}function GN0(J){if(J.amount_minor_units==null||!J.currency)return null;if(J.currency.toUpperCase()==="USD"){let Q=J.amount_minor_units/100;return Number.isInteger(Q)?`$${Q}`:`$${Q.toFixed(2)}`}return null}var sXQ=3600000;var Pe0=I(()=>{$Z();N9();m8();M1();TL()});async function Ee0(){if(!q9()||!PS())return{};let J=eJ();if(J&&mc(J.expiresAt))return null;let Q=lE();if(Q.error)throw Error(`Auth error: ${Q.error}`);let X={"Content-Type":"application/json","User-Agent":sz(),...Q.headers},Z=`${qJ().BASE_API_URL}/api/oauth/usage`;return(await y8.get(Z,{headers:X,timeout:5000})).data}var Ln1=I(()=>{JX();$Z();N9();lk();x$()});function Te0(){if(q9())return!1;let Q=TP(),X=gc()!==null;if(!Q.hasToken&&!X)return!1;let Z=L1(),Y=Z.oauthAccount?.organizationRole,q=Z.oauthAccount?.workspaceRole;if(!Y||!q)return!1;return["admin","billing"].includes(Y)||["workspace_admin","workspace_billing"].includes(q)}function IXJ(){if(!q9())return!1;return!0}var Ce0=I(()=>{N9();m8()});async function ve0(){if(!L1().hasVisitedExtraUsage)q8((Z)=>({...Z,hasVisitedExtraUsage:!0}));jXJ();let J=!1;if(!IXJ()&&J){let Z;try{Z=(await Ee0())?.extra_usage}catch(Y){H0(Y)}if(Z?.is_enabled&&Z.monthly_limit===null)return{type:"message",value:"Your organization already has unlimited extra usage. No request needed."};try{if((await DXJ("limit_increase"))?.is_allowed===!1)return{type:"message",value:"Please contact your admin to manage extra usage settings."}}catch(Y){H0(Y)}try{let Y=await MXJ("limit_increase",["pending","dismissed"]);if(Y&&Y.length>0)return{type:"message",value:"You have already submitted a request for extra usage to your admin."}}catch(Y){H0(Y)}try{return await RXJ({request_type:"limit_increase",details:null}),{type:"message",value:Z?.is_enabled?"Request sent to your admin to increase extra usage.":"Request sent to your admin to enable extra usage."}}catch(Y){H0(Y)}return{type:"message",value:"Please contact your admin to manage extra usage settings."}}let X=J?"https://glock/admin-settings/usage":"https://glock/settings/usage";try{let Z=await IX(X);return{type:"browser-opened",url:X,opened:Z}}catch(Z){return H0(Z),{type:"message",value:`Failed to open browser. Please visit ${X} to manage extra usage.`}}}var Vn1=I(()=>{$XJ();Pe0();Ln1();Ce0();s3();m8();M1()});var yXJ={};X8(yXJ,{call:()=>tXQ});async function tXQ(J,Q){let X=await ve0();if(X.type==="message")return J(X.value),null;return bXJ.jsxDEV(Ys0,{startingMessage:"Starting new login following /extra-usage. Exit with Ctrl-C to use existing account.",onDone:(Z)=>{Q.onChangeAPIKey(),J(Z?"Login successful":"Login interrupted")}},void 0,!1,void 0,this)}var bXJ;var PXJ=I(()=>{hL0();Vn1();bXJ=T(e(),1)});var EXJ={};X8(EXJ,{call:()=>eXQ});async function eXQ(){let J=await ve0();if(J.type==="message")return{type:"text",value:J.value};return{type:"text",value:J.opened?`Browser opened to manage extra usage. If it didn't open, visit: ${J.url}`:`Please visit ${J.url} to manage extra usage.`}}var TXJ=I(()=>{Vn1()});function CXJ(){return!1}var fe0,vXJ;var Nn1=I(()=>{N1();fe0={type:"local-jsx",name:"extra-usage",description:"Configure extra usage to keep working when limits are hit",isEnabled:()=>CXJ()&&!x6(),load:()=>Promise.resolve().then(() => (PXJ(),yXJ))},vXJ={type:"local",name:"extra-usage",supportsNonInteractive:!0,description:"Configure extra usage to keep working when limits are hit",isEnabled:()=>CXJ()&&x6(),get isHidden(){return!x6()},load:()=>Promise.resolve().then(() => (TXJ(),EXJ))}});function wn1(){let J=KN0();if(!J||!J.available||J.granted)return!1;return GN0(J)!==null}function kXJ(){if(!wn1())return!1;let J=L1();if(J.hasVisitedExtraUsage)return!1;if((J.overageCreditUpsellSeenCount??0)>=QZQ)return!1;return!0}function XZQ(J){return`${J} in extra usage for third-party apps \xB7 /extra-usage`}function SXJ(J){return`${J} in extra usage`}function hXJ(J){let Q=xXJ.c(8),{maxWidth:X,twoLine:Z}=J,Y,q;if(Q[0]!==X||Q[1]!==Z){q=Symbol.for("react.early_return_sentinel");J:{let K=KN0();if(!K){q=null;break J}let G=GN0(K);if(!G){q=null;break J}if(Z){let B=SXJ(G),U;if(Q[4]!==X)U=X?KZ(fXJ,X):fXJ,Q[4]=X,Q[5]=U;else U=Q[5];let F;if(Q[6]!==U)F=Cu.jsxDEV(M,{dimColor:!0,children:U},void 0,!1,void 0,this),Q[6]=U,Q[7]=F;else F=Q[7];q=Cu.jsxDEV(Cu.Fragment,{children:[Cu.jsxDEV(M,{color:"glock",children:X?KZ(B,X):B},void 0,!1,void 0,this),F]},void 0,!0,void 0,this);break J}let z=XZQ(G),W=X?KZ(z,X):z,H=Math.min(SXJ(G).length,W.length);Y=Cu.jsxDEV(M,{dimColor:!0,children:[Cu.jsxDEV(M,{color:"glock",children:W.slice(0,H)},void 0,!1,void 0,this),W.slice(H)]},void 0,!0,void 0,this)}Q[0]=X,Q[1]=Z,Q[2]=Y,Q[3]=q}else Y=Q[2],q=Q[3];if(q!==Symbol.for("react.early_return_sentinel"))return q;return Y}var xXJ,JZQ,Cu,QZQ=3,fXJ="On us. Works on third-party apps \xB7 /extra-usage";var An1=I(()=>{a0();D1();Pe0();m8();A6();xXJ=T(e0(),1),JZQ=T(J1(),1),Cu=T(e(),1)});function gXJ(J){let Q=Mn1.c(34),{title:X,limit:Z,maxWidth:Y,showTimeInReset:q,extraSubtext:K}=J,G=q===void 0?!0:q,{utilization:z,resets_at:W}=Z;if(z===null)return null;let H=`${Math.floor(z)}% used`,B;if(W){let U;if(Q[0]!==W||Q[1]!==G)U=sZ8(W,!0,G),Q[0]=W,Q[1]=G,Q[2]=U;else U=Q[2];B=`Resets ${U}`}if(K)if(B)B=`${K} \xB7 ${B}`;else B=K;if(Y>=62){let U;if(Q[3]!==X)U=RQ.jsxDEV(M,{bold:!0,children:X},void 0,!1,void 0,this),Q[3]=X,Q[4]=U;else U=Q[4];let F=z/100,_;if(Q[5]!==F)_=RQ.jsxDEV(GF0,{ratio:F,width:50,fillColor:"rate_limit_fill",emptyColor:"rate_limit_empty"},void 0,!1,void 0,this),Q[5]=F,Q[6]=_;else _=Q[6];let O;if(Q[7]!==H)O=RQ.jsxDEV(M,{children:H},void 0,!1,void 0,this),Q[7]=H,Q[8]=O;else O=Q[8];let L;if(Q[9]!==_||Q[10]!==O)L=RQ.jsxDEV(f,{flexDirection:"row",gap:1,children:[_,O]},void 0,!0,void 0,this),Q[9]=_,Q[10]=O,Q[11]=L;else L=Q[11];let N;if(Q[12]!==B)N=B&&RQ.jsxDEV(M,{dimColor:!0,children:B},void 0,!1,void 0,this),Q[12]=B,Q[13]=N;else N=Q[13];let A;if(Q[14]!==U||Q[15]!==L||Q[16]!==N)A=RQ.jsxDEV(f,{flexDirection:"column",children:[U,L,N]},void 0,!0,void 0,this),Q[14]=U,Q[15]=L,Q[16]=N,Q[17]=A;else A=Q[17];return A}else{let U;if(Q[18]!==X)U=RQ.jsxDEV(M,{bold:!0,children:X},void 0,!1,void 0,this),Q[18]=X,Q[19]=U;else U=Q[19];let F;if(Q[20]!==B)F=B&&RQ.jsxDEV(RQ.Fragment,{children:[RQ.jsxDEV(M,{children:" "},void 0,!1,void 0,this),RQ.jsxDEV(M,{dimColor:!0,children:["\xB7 ",B]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),Q[20]=B,Q[21]=F;else F=Q[21];let _;if(Q[22]!==U||Q[23]!==F)_=RQ.jsxDEV(M,{children:[U,F]},void 0,!0,void 0,this),Q[22]=U,Q[23]=F,Q[24]=_;else _=Q[24];let O=z/100,L;if(Q[25]!==Y||Q[26]!==O)L=RQ.jsxDEV(GF0,{ratio:O,width:Y,fillColor:"rate_limit_fill",emptyColor:"rate_limit_empty"},void 0,!1,void 0,this),Q[25]=Y,Q[26]=O,Q[27]=L;else L=Q[27];let N;if(Q[28]!==H)N=RQ.jsxDEV(M,{children:H},void 0,!1,void 0,this),Q[28]=H,Q[29]=N;else N=Q[29];let A;if(Q[30]!==_||Q[31]!==L||Q[32]!==N)A=RQ.jsxDEV(f,{flexDirection:"column",children:[_,L,N]},void 0,!0,void 0,this),Q[30]=_,Q[31]=L,Q[32]=N,Q[33]=A;else A=Q[33];return A}}function mXJ(){let[J,Q]=XZ0.useState(null),[X,Z]=XZ0.useState(null),[Y,q]=XZ0.useState(!0),{columns:K}=l8(),G=K-2,z=Math.min(G,80),W=uXJ.useCallback(async()=>{q(!0),Z(null);try{let U=await Ee0();Q(U)}catch(U){H0(U);let F=U,_=F.response?.data?l0(F.response.data):void 0;Z(_?`Failed to load usage data: ${_}`:"Failed to load usage data")}finally{q(!1)}},[]);if(XZ0.useEffect(()=>{W()},[W]),J8("settings:retry",()=>{W()},{context:"Settings",isActive:!!X&&!Y}),X)return RQ.jsxDEV(f,{flexDirection:"column",gap:1,children:[RQ.jsxDEV(M,{color:"error",children:["Error: ",X]},void 0,!0,void 0,this),RQ.jsxDEV(M,{dimColor:!0,children:RQ.jsxDEV(V8,{children:[RQ.jsxDEV(s1,{action:"settings:retry",context:"Settings",fallback:"r",description:"retry"},void 0,!1,void 0,this),RQ.jsxDEV(s1,{action:"confirm:no",context:"Settings",fallback:"Esc",description:"cancel"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this);if(!J)return RQ.jsxDEV(f,{flexDirection:"column",gap:1,children:[RQ.jsxDEV(M,{dimColor:!0,children:"Loading usage data\u2026"},void 0,!1,void 0,this),RQ.jsxDEV(M,{dimColor:!0,children:RQ.jsxDEV(s1,{action:"confirm:no",context:"Settings",fallback:"Esc",description:"cancel"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this);let H=!0,B=[{title:"Current session",limit:J.five_hour},{title:"Current week (all models)",limit:J.seven_day},...H?[{title:"Current week (Sonnet only)",limit:J.seven_day_sonnet}]:[]];return RQ.jsxDEV(f,{flexDirection:"column",gap:1,width:"100%",children:[B.some(({limit:U})=>U)||RQ.jsxDEV(M,{dimColor:!0,children:"/usage is only available for subscription plans."},void 0,!1,void 0,this),B.map(({title:U,limit:F})=>F&&RQ.jsxDEV(gXJ,{title:U,limit:F,maxWidth:z},U,!1,void 0,this)),J.extra_usage&&RQ.jsxDEV(ZZQ,{extraUsage:J.extra_usage,maxWidth:z},void 0,!1,void 0,this),wn1()&&RQ.jsxDEV(hXJ,{maxWidth:z},void 0,!1,void 0,this),RQ.jsxDEV(M,{dimColor:!0,children:RQ.jsxDEV(s1,{action:"confirm:no",context:"Settings",fallback:"Esc",description:"cancel"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}function ZZQ(J){let Q=Mn1.c(20),{extraUsage:X,maxWidth:Z}=J;if(!X.is_enabled){if(fe0.isEnabled()){let N;if(Q[0]===Symbol.for("react.memo_cache_sentinel"))N=RQ.jsxDEV(f,{flexDirection:"column",children:[RQ.jsxDEV(M,{bold:!0,children:Rn1},void 0,!1,void 0,this),RQ.jsxDEV(M,{dimColor:!0,children:"Extra usage not enabled \xB7 /extra-usage to enable"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),Q[0]=N;else N=Q[0];return N}return null}if(X.monthly_limit===null){let N;if(Q[1]===Symbol.for("react.memo_cache_sentinel"))N=RQ.jsxDEV(f,{flexDirection:"column",children:[RQ.jsxDEV(M,{bold:!0,children:Rn1},void 0,!1,void 0,this),RQ.jsxDEV(M,{dimColor:!0,children:"Unlimited"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),Q[1]=N;else N=Q[1];return N}if(typeof X.used_credits!=="number"||typeof X.utilization!=="number")return null;let Y=X.used_credits/100,q;if(Q[2]!==Y)q=EF0(Y,2),Q[2]=Y,Q[3]=q;else q=Q[3];let K=q,G=X.monthly_limit/100,z;if(Q[4]!==G)z=EF0(G,2),Q[4]=G,Q[5]=z;else z=Q[5];let W=z,H,B,U,F;if(Q[6]!==X.utilization){let N=new Date,A=new Date(N.getFullYear(),N.getMonth()+1,1);H=gXJ,F=Rn1,B=X.utilization,U=A.toISOString(),Q[6]=X.utilization,Q[7]=H,Q[8]=B,Q[9]=U,Q[10]=F}else H=Q[7],B=Q[8],U=Q[9],F=Q[10];let _;if(Q[11]!==B||Q[12]!==U)_={utilization:B,resets_at:U},Q[11]=B,Q[12]=U,Q[13]=_;else _=Q[13];let O=`${K} / ${W} spent`,L;if(Q[14]!==H||Q[15]!==Z||Q[16]!==F||Q[17]!==_||Q[18]!==O)L=RQ.jsxDEV(H,{title:F,limit:_,showTimeInReset:!1,extraSubtext:O,maxWidth:Z},void 0,!1,void 0,this),Q[14]=H,Q[15]=Z,Q[16]=F,Q[17]=_,Q[18]=O,Q[19]=L;else L=Q[19];return L}var Mn1,uXJ,XZ0,RQ,Rn1="Extra usage";var pXJ=I(()=>{Nn1();JI();U9();a0();f6();Ln1();A6();M1();i1();U7();R9();bv1();An1();Mn1=T(e0(),1),uXJ=T(J1(),1),XZ0=T(J1(),1),RQ=T(e(),1)});function ZZ0(J){let Q=cXJ.c(25),{onClose:X,context:Z,defaultTab:Y}=J,[q,K]=vu.useState(Y),[G,z]=vu.useState(!1),[W,H]=vu.useState(!1),[B,U]=vu.useState(!1),F=oF(),{rows:_}=ER6(l8()),O=F?_+1:Math.max(15,Math.min(Math.floor(_*0.8),30)),[L]=vu.useState(YZQ);B7();let N;if(Q[0]!==X||Q[1]!==G)N=()=>{if(G)return;X("Status dialog dismissed",{display:"system"})},Q[0]=X,Q[1]=G,Q[2]=N;else N=Q[2];let A=N,R=!G&&!(q==="Config"&&W)&&!(q==="Gates"&&B),D;if(Q[3]!==R)D={context:"Settings",isActive:R},Q[3]=R,Q[4]=D;else D=Q[4];J8("confirm:no",A,D);let $;if(Q[5]!==Z||Q[6]!==L)$=iI.jsxDEV(_Y,{title:"Status",children:iI.jsxDEV(sQJ,{context:Z,diagnosticsPromise:L},void 0,!1,void 0,this)},"status",!1,void 0,this),Q[5]=Z,Q[6]=L,Q[7]=$;else $=Q[7];let y;if(Q[8]!==O||Q[9]!==Z||Q[10]!==X)y=iI.jsxDEV(_Y,{title:"Config",children:iI.jsxDEV(vu.Suspense,{fallback:null,children:iI.jsxDEV(wXJ,{context:Z,onClose:X,setTabsHidden:z,onIsSearchModeChange:H,contentHeight:O},void 0,!1,void 0,this)},void 0,!1,void 0,this)},"config",!1,void 0,this),Q[8]=O,Q[9]=Z,Q[10]=X,Q[11]=y;else y=Q[11];let v;if(Q[12]===Symbol.for("react.memo_cache_sentinel"))v=iI.jsxDEV(_Y,{title:"Usage",children:iI.jsxDEV(mXJ,{},void 0,!1,void 0,this)},"usage",!1,void 0,this),Q[12]=v;else v=Q[12];let E;if(Q[13]!==O)E=[],Q[13]=O,Q[14]=E;else E=Q[14];let C;if(Q[15]!==$||Q[16]!==y||Q[17]!==E)C=[$,y,v,...E],Q[15]=$,Q[16]=y,Q[17]=E,Q[18]=C;else C=Q[18];let S=C,k=Y!=="Config"&&Y!=="Gates",h=G||F?void 0:O,u;if(Q[19]!==q||Q[20]!==h||Q[21]!==k||Q[22]!==S||Q[23]!==G)u=iI.jsxDEV(yX,{color:"permission",children:iI.jsxDEV(tw,{color:"permission",selectedTab:q,onTabChange:K,hidden:G,initialHeaderFocused:k,contentHeight:h,children:S},void 0,!1,void 0,this)},void 0,!1,void 0,this),Q[19]=q,Q[20]=h,Q[21]=k,Q[22]=S,Q[23]=G,Q[24]=u;else u=Q[24];return u}function YZQ(){return oQJ().catch(qZQ)}function qZQ(){return[]}var cXJ,vu,iI;var Se0=I(()=>{f6();Lq();U9();rE();t3();ew();tQJ();AXJ();pXJ();cXJ=T(e0(),1),vu=T(J1(),1),iI=T(e(),1)});var dXJ={};X8(dXJ,{call:()=>KZQ});var lXJ,KZQ=async(J,Q)=>{return lXJ.jsxDEV(ZZ0,{onClose:J,context:Q,defaultTab:"Config"},void 0,!1,void 0,this)};var iXJ=I(()=>{Se0();lXJ=T(e(),1)});var GZQ,nXJ;var rXJ=I(()=>{GZQ={aliases:["settings"],type:"local-jsx",name:"config",description:"Open config panel",load:()=>Promise.resolve().then(() => (iXJ(),dXJ))},nXJ=GZQ});function sXJ(J){let Q=[];return BZQ(J,Q),UZQ(J,Q),_ZQ(J,Q),OZQ(J,Q),LZQ(J,Q),Q.sort((X,Z)=>{if(X.severity!==Z.severity)return X.severity==="warning"?-1:1;return(Z.savingsTokens??0)-(X.savingsTokens??0)}),Q}function BZQ(J,Q){if(J.percentage>=oXJ)Q.push({severity:"warning",title:`Context is ${J.percentage}% full`,detail:J.isAutoCompactEnabled?"Autocompact will trigger soon, which discards older messages. Use /compact now to control what gets kept.":"Autocompact is disabled. Use /compact to free space, or enable autocompact in /config."})}function UZQ(J,Q){if(!J.messageBreakdown)return;for(let X of J.messageBreakdown.toolCallsByType){let Z=X.callTokens+X.resultTokens,Y=Z/J.rawMaxTokens*100;if(Y<aXJ||Z<Dn1)continue;let q=FZQ(X.name,Z,Y);if(q)Q.push(q)}}function FZQ(J,Q,X){let Z=P7(Q);switch(J){case O6:return{severity:"warning",title:`Bash results using ${Z} tokens (${X.toFixed(0)}%)`,detail:"Pipe output through head, tail, or grep to reduce result size. Avoid cat on large files \u2014 use Read with offset/limit instead.",savingsTokens:Math.floor(Q*0.5)};case o6:return{severity:"info",title:`Read results using ${Z} tokens (${X.toFixed(0)}%)`,detail:"Use offset and limit parameters to read only the sections you need. Avoid re-reading entire files when you only need a few lines.",savingsTokens:Math.floor(Q*0.3)};case JQ:return{severity:"info",title:`Grep results using ${Z} tokens (${X.toFixed(0)}%)`,detail:"Add more specific patterns or use the glob or type parameter to narrow file types. Consider Glob for file discovery instead of Grep.",savingsTokens:Math.floor(Q*0.3)};case aG:return{severity:"info",title:`WebFetch results using ${Z} tokens (${X.toFixed(0)}%)`,detail:"Web page content can be very large. Consider extracting only the specific information needed.",savingsTokens:Math.floor(Q*0.4)};default:if(X>=20)return{severity:"info",title:`${J} using ${Z} tokens (${X.toFixed(0)}%)`,detail:"This tool is consuming a significant portion of context.",savingsTokens:Math.floor(Q*0.2)};return null}}function _ZQ(J,Q){if(!J.messageBreakdown)return;let Z=J.messageBreakdown.toolCallsByType.find((G)=>G.name===o6);if(!Z)return;let Y=Z.callTokens+Z.resultTokens,q=Y/J.rawMaxTokens*100,K=Z.resultTokens/J.rawMaxTokens*100;if(q>=aXJ&&Y>=Dn1)return;if(K>=zZQ&&Z.resultTokens>=Dn1)Q.push({severity:"info",title:`File reads using ${P7(Z.resultTokens)} tokens (${K.toFixed(0)}%)`,detail:"If you are re-reading files, consider referencing earlier reads. Use offset/limit for large files.",savingsTokens:Math.floor(Z.resultTokens*0.3)})}function OZQ(J,Q){let X=J.memoryFiles.reduce((Y,q)=>Y+q.tokens,0),Z=X/J.rawMaxTokens*100;if(Z>=WZQ&&X>=HZQ){let Y=[...J.memoryFiles].sort((q,K)=>K.tokens-q.tokens).slice(0,3).map((q)=>{return`${E7(q.path)} (${P7(q.tokens)})`}).join(", ");Q.push({severity:"info",title:`Memory files using ${P7(X)} tokens (${Z.toFixed(0)}%)`,detail:`Largest: ${Y}. Use /memory to review and prune stale entries.`,savingsTokens:Math.floor(X*0.3)})}}function LZQ(J,Q){if(!J.isAutoCompactEnabled&&J.percentage>=50&&J.percentage<oXJ)Q.push({severity:"info",title:"Autocompact is disabled",detail:"Without autocompact, you will hit context limits and lose the conversation. Enable it in /config or use /compact manually."})}var aXJ=15,Dn1=1e4,zZQ=5,oXJ=80,WZQ=5,HZQ=5000;var tXJ=I(()=>{vZ();mG();V9();A6()});function xe0(J){let Q=eXJ.c(5),{status:X,withSpace:Z}=J,Y=Z===void 0?!1:Z,q=VZQ[X],K=!q.color,G=Y&&" ",z;if(Q[0]!==q.color||Q[1]!==q.icon||Q[2]!==K||Q[3]!==G)z=JZJ.jsxDEV(M,{color:q.color,dimColor:K,children:[q.icon,G]},void 0,!0,void 0,this),Q[0]=q.color,Q[1]=q.icon,Q[2]=K,Q[3]=G,Q[4]=z;else z=Q[4];return z}var eXJ,JZJ,VZQ;var $n1=I(()=>{r6();a0();eXJ=T(e0(),1),JZJ=T(e(),1),VZQ={success:{icon:s0.tick,color:"success"},error:{icon:s0.cross,color:"error"},warning:{icon:s0.warning,color:"warning"},info:{icon:s0.info,color:"suggestion"},pending:{icon:s0.circle,color:void 0},loading:{icon:"\u2026",color:void 0}}});function XZJ(J){let Q=QZJ.c(5),{suggestions:X}=J;if(X.length===0)return null;let Z;if(Q[0]===Symbol.for("react.memo_cache_sentinel"))Z=nI.jsxDEV(M,{bold:!0,children:"Suggestions"},void 0,!1,void 0,this),Q[0]=Z;else Z=Q[0];let Y;if(Q[1]!==X)Y=X.map(NZQ),Q[1]=X,Q[2]=Y;else Y=Q[2];let q;if(Q[3]!==Y)q=nI.jsxDEV(f,{flexDirection:"column",marginTop:1,children:[Z,Y]},void 0,!0,void 0,this),Q[3]=Y,Q[4]=q;else q=Q[4];return q}function NZQ(J,Q){return nI.jsxDEV(f,{flexDirection:"column",marginTop:Q===0?0:1,children:[nI.jsxDEV(f,{children:[nI.jsxDEV(xe0,{status:J.severity,withSpace:!0},void 0,!1,void 0,this),nI.jsxDEV(M,{bold:!0,children:J.title},void 0,!1,void 0,this),J.savingsTokens?nI.jsxDEV(M,{dimColor:!0,children:[" ",s0.arrowRight," save ~",P7(J.savingsTokens)]},void 0,!0,void 0,this):null]},void 0,!0,void 0,this),nI.jsxDEV(f,{marginLeft:2,children:nI.jsxDEV(M,{dimColor:!0,children:J.detail},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},Q,!0,void 0,this)}var QZJ,nI;var ZZJ=I(()=>{r6();a0();A6();$n1();QZJ=T(e0(),1),nI=T(e(),1)});function wZQ(){let J=jn1.c(2);return null}function YZJ(J){let Q=new Map;for(let Z of J){let Y=jt(Z.source),q=Q.get(Y)||[];q.push(Z),Q.set(Y,q)}for(let[Z,Y]of Q.entries())Q.set(Z,Y.sort((q,K)=>K.tokens-q.tokens));let X=new Map;for(let Z of AZQ){let Y=Q.get(Z);if(Y)X.set(Z,Y)}return X}function qZJ(J){let Q=jn1.c(87),{data:X}=J,{categories:Z,totalTokens:Y,rawMaxTokens:q,percentage:K,gridRows:G,model:z,memoryFiles:W,mcpTools:H,deferredBuiltinTools:B,systemTools:U,systemPromptSections:F,agents:_,skills:O,messageBreakdown:L}=X,N,A,R,D,$,y,v,E,C,S;if(Q[0]!==Z||Q[1]!==G||Q[2]!==H||Q[3]!==z||Q[4]!==K||Q[5]!==q||Q[6]!==U||Q[7]!==B||Q[8]!==Y){let n=B===void 0?[]:B,s=Z.filter(gZQ),X0;if(Q[19]!==Z)X0=Z.some(uZQ),Q[19]=Z,Q[20]=X0;else X0=Q[20];let Y0=X0,G0=n.length>0,j0=Z.find(hZQ);if(A=f,v="column",E=1,Q[21]===Symbol.for("react.memo_cache_sentinel"))C=OJ.jsxDEV(M,{bold:!0,children:"Context Usage"},void 0,!1,void 0,this),Q[21]=C;else C=Q[21];let W0;if(Q[22]!==G)W0=G.map(xZQ),Q[22]=G,Q[23]=W0;else W0=Q[23];let y0;if(Q[24]!==W0)y0=OJ.jsxDEV(f,{flexDirection:"column",flexShrink:0,children:W0},void 0,!1,void 0,this),Q[24]=W0,Q[25]=y0;else y0=Q[25];let V0;if(Q[26]!==Y)V0=P7(Y),Q[26]=Y,Q[27]=V0;else V0=Q[27];let Z0;if(Q[28]!==q)Z0=P7(q),Q[28]=q,Q[29]=Z0;else Z0=Q[29];let t;if(Q[30]!==z||Q[31]!==K||Q[32]!==V0||Q[33]!==Z0)t=OJ.jsxDEV(M,{dimColor:!0,children:[z," \xB7 ",V0,"/",Z0," ","tokens (",K,"%)"]},void 0,!0,void 0,this),Q[30]=z,Q[31]=K,Q[32]=V0,Q[33]=Z0,Q[34]=t;else t=Q[34];let q0,Q0,a;if(Q[35]===Symbol.for("react.memo_cache_sentinel"))q0=OJ.jsxDEV(wZQ,{},void 0,!1,void 0,this),Q0=OJ.jsxDEV(M,{children:" "},void 0,!1,void 0,this),a=OJ.jsxDEV(M,{dimColor:!0,italic:!0,children:"Estimated usage by category"},void 0,!1,void 0,this),Q[35]=q0,Q[36]=Q0,Q[37]=a;else q0=Q[35],Q0=Q[36],a=Q[37];let O0;if(Q[38]!==q)O0=(P0,$0)=>{let w0=P7(P0.tokens),E0=P0.isDeferred?"N/A":`${(P0.tokens/q*100).toFixed(1)}%`,h0=P0.name===ke0,u0=P0.name,B0=P0.isDeferred?" ":h0?"\u26DD":"\u26C1";return OJ.jsxDEV(f,{children:[OJ.jsxDEV(M,{color:P0.color,children:B0},void 0,!1,void 0,this),OJ.jsxDEV(M,{children:[" ",u0,": "]},void 0,!0,void 0,this),OJ.jsxDEV(M,{dimColor:!0,children:[w0," tokens (",E0,")"]},void 0,!0,void 0,this)]},$0,!0,void 0,this)},Q[38]=q,Q[39]=O0;else O0=Q[39];let D0=s.map(O0),F0;if(Q[40]!==Z||Q[41]!==q)F0=(Z.find(SZQ)?.tokens??0)>0&&OJ.jsxDEV(f,{children:[OJ.jsxDEV(M,{dimColor:!0,children:"\u26F6"},void 0,!1,void 0,this),OJ.jsxDEV(M,{children:" Free space: "},void 0,!1,void 0,this),OJ.jsxDEV(M,{dimColor:!0,children:[P7(Z.find(fZQ)?.tokens||0)," ","(",((Z.find(vZQ)?.tokens||0)/q*100).toFixed(1),"%)"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),Q[40]=Z,Q[41]=q,Q[42]=F0;else F0=Q[42];let I0=j0&&j0.tokens>0&&OJ.jsxDEV(f,{children:[OJ.jsxDEV(M,{color:j0.color,children:"\u26DD"},void 0,!1,void 0,this),OJ.jsxDEV(M,{dimColor:!0,children:[" ",j0.name,": "]},void 0,!0,void 0,this),OJ.jsxDEV(M,{dimColor:!0,children:[P7(j0.tokens)," tokens (",(j0.tokens/q*100).toFixed(1),"%)"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),U0;if(Q[43]!==t||Q[44]!==D0||Q[45]!==F0||Q[46]!==I0)U0=OJ.jsxDEV(f,{flexDirection:"column",gap:0,flexShrink:0,children:[t,q0,Q0,a,D0,F0,I0]},void 0,!0,void 0,this),Q[43]=t,Q[44]=D0,Q[45]=F0,Q[46]=I0,Q[47]=U0;else U0=Q[47];if(Q[48]!==y0||Q[49]!==U0)S=OJ.jsxDEV(f,{flexDirection:"row",gap:2,children:[y0,U0]},void 0,!0,void 0,this),Q[48]=y0,Q[49]=U0,Q[50]=S;else S=Q[50];if(N=f,R="column",D=-1,Q[51]!==Y0||Q[52]!==H)$=H.length>0&&OJ.jsxDEV(f,{flexDirection:"column",marginTop:1,children:[OJ.jsxDEV(f,{children:[OJ.jsxDEV(M,{bold:!0,children:"MCP tools"},void 0,!1,void 0,this),OJ.jsxDEV(M,{dimColor:!0,children:[" ","\xB7 /mcp",Y0?" (loaded on-demand)":""]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),H.some(CZQ)&&OJ.jsxDEV(f,{flexDirection:"column",marginTop:1,children:[OJ.jsxDEV(M,{dimColor:!0,children:"Loaded"},void 0,!1,void 0,this),H.filter(TZQ).map(EZQ)]},void 0,!0,void 0,this),Y0&&H.some(PZQ)&&OJ.jsxDEV(f,{flexDirection:"column",marginTop:1,children:[OJ.jsxDEV(M,{dimColor:!0,children:"Available"},void 0,!1,void 0,this),H.filter(bZQ).map(yZQ)]},void 0,!0,void 0,this),!Y0&&H.map(IZQ)]},void 0,!0,void 0,this),Q[51]=Y0,Q[52]=H,Q[53]=$;else $=Q[53];y=(U&&U.length>0||G0)&&!1,Q[0]=Z,Q[1]=G,Q[2]=H,Q[3]=z,Q[4]=K,Q[5]=q,Q[6]=U,Q[7]=B,Q[8]=Y,Q[9]=N,Q[10]=A,Q[11]=R,Q[12]=D,Q[13]=$,Q[14]=y,Q[15]=v,Q[16]=E,Q[17]=C,Q[18]=S}else N=Q[9],A=Q[10],R=Q[11],D=Q[12],$=Q[13],y=Q[14],v=Q[15],E=Q[16],C=Q[17],S=Q[18];let k;if(Q[54]!==F)k=F&&F.length>0&&!1,Q[54]=F,Q[55]=k;else k=Q[55];let h;if(Q[56]!==_)h=_.length>0&&OJ.jsxDEV(f,{flexDirection:"column",marginTop:1,children:[OJ.jsxDEV(f,{children:[OJ.jsxDEV(M,{bold:!0,children:"Custom agents"},void 0,!1,void 0,this),OJ.jsxDEV(M,{dimColor:!0,children:" \xB7 /agents"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),Array.from(YZJ(_).entries()).map($ZQ)]},void 0,!0,void 0,this),Q[56]=_,Q[57]=h;else h=Q[57];let u;if(Q[58]!==W)u=W.length>0&&OJ.jsxDEV(f,{flexDirection:"column",marginTop:1,children:[OJ.jsxDEV(f,{children:[OJ.jsxDEV(M,{bold:!0,children:"Memory files"},void 0,!1,void 0,this),OJ.jsxDEV(M,{dimColor:!0,children:" \xB7 /memory"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),W.map(DZQ)]},void 0,!0,void 0,this),Q[58]=W,Q[59]=u;else u=Q[59];let x;if(Q[60]!==O)x=O&&O.tokens>0&&OJ.jsxDEV(f,{flexDirection:"column",marginTop:1,children:[OJ.jsxDEV(f,{children:[OJ.jsxDEV(M,{bold:!0,children:"Skills"},void 0,!1,void 0,this),OJ.jsxDEV(M,{dimColor:!0,children:" \xB7 /skills"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),Array.from(YZJ(O.skillFrontmatter).entries()).map(RZQ)]},void 0,!0,void 0,this),Q[60]=O,Q[61]=x;else x=Q[61];let m;if(Q[62]!==L)m=L&&!1,Q[62]=L,Q[63]=m;else m=Q[63];let p;if(Q[64]!==N||Q[65]!==k||Q[66]!==h||Q[67]!==u||Q[68]!==x||Q[69]!==m||Q[70]!==R||Q[71]!==D||Q[72]!==$||Q[73]!==y)p=OJ.jsxDEV(N,{flexDirection:R,marginLeft:D,children:[$,y,k,h,u,x,m]},void 0,!0,void 0,this),Q[64]=N,Q[65]=k,Q[66]=h,Q[67]=u,Q[68]=x,Q[69]=m,Q[70]=R,Q[71]=D,Q[72]=$,Q[73]=y,Q[74]=p;else p=Q[74];let c;if(Q[75]!==X)c=sXJ(X),Q[75]=X,Q[76]=c;else c=Q[76];let r;if(Q[77]!==c)r=OJ.jsxDEV(XZJ,{suggestions:c},void 0,!1,void 0,this),Q[77]=c,Q[78]=r;else r=Q[78];let J0;if(Q[79]!==A||Q[80]!==p||Q[81]!==r||Q[82]!==v||Q[83]!==E||Q[84]!==C||Q[85]!==S)J0=OJ.jsxDEV(A,{flexDirection:v,paddingLeft:E,children:[C,S,p,r]},void 0,!0,void 0,this),Q[79]=A,Q[80]=p,Q[81]=r,Q[82]=v,Q[83]=E,Q[84]=C,Q[85]=S,Q[86]=J0;else J0=Q[86];return J0}function RZQ(J){let[Q,X]=J;return OJ.jsxDEV(f,{flexDirection:"column",marginTop:1,children:[OJ.jsxDEV(M,{dimColor:!0,children:Q},void 0,!1,void 0,this),X.map(MZQ)]},Q,!0,void 0,this)}function MZQ(J,Q){return OJ.jsxDEV(f,{children:[OJ.jsxDEV(M,{children:["\u2514 ",J.name,": "]},void 0,!0,void 0,this),OJ.jsxDEV(M,{dimColor:!0,children:[P7(J.tokens)," tokens"]},void 0,!0,void 0,this)]},Q,!0,void 0,this)}function DZQ(J,Q){return OJ.jsxDEV(f,{children:[OJ.jsxDEV(M,{children:["\u2514 ",E7(J.path),": "]},void 0,!0,void 0,this),OJ.jsxDEV(M,{dimColor:!0,children:[P7(J.tokens)," tokens"]},void 0,!0,void 0,this)]},Q,!0,void 0,this)}function $ZQ(J){let[Q,X]=J;return OJ.jsxDEV(f,{flexDirection:"column",marginTop:1,children:[OJ.jsxDEV(M,{dimColor:!0,children:Q},void 0,!1,void 0,this),X.map(jZQ)]},Q,!0,void 0,this)}function jZQ(J,Q){return OJ.jsxDEV(f,{children:[OJ.jsxDEV(M,{children:["\u2514 ",J.agentType,": "]},void 0,!0,void 0,this),OJ.jsxDEV(M,{dimColor:!0,children:[P7(J.tokens)," tokens"]},void 0,!0,void 0,this)]},Q,!0,void 0,this)}function IZQ(J,Q){return OJ.jsxDEV(f,{children:[OJ.jsxDEV(M,{children:["\u2514 ",J.name,": "]},void 0,!0,void 0,this),OJ.jsxDEV(M,{dimColor:!0,children:[P7(J.tokens)," tokens"]},void 0,!0,void 0,this)]},Q,!0,void 0,this)}function yZQ(J,Q){return OJ.jsxDEV(f,{children:OJ.jsxDEV(M,{dimColor:!0,children:["\u2514 ",J.name]},void 0,!0,void 0,this)},Q,!1,void 0,this)}function bZQ(J){return!J.isLoaded}function PZQ(J){return!J.isLoaded}function EZQ(J,Q){return OJ.jsxDEV(f,{children:[OJ.jsxDEV(M,{children:["\u2514 ",J.name,": "]},void 0,!0,void 0,this),OJ.jsxDEV(M,{dimColor:!0,children:[P7(J.tokens)," tokens"]},void 0,!0,void 0,this)]},Q,!0,void 0,this)}function TZQ(J){return J.isLoaded}function CZQ(J){return J.isLoaded}function vZQ(J){return J.name==="Free space"}function fZQ(J){return J.name==="Free space"}function SZQ(J){return J.name==="Free space"}function xZQ(J,Q){return OJ.jsxDEV(f,{flexDirection:"row",marginLeft:-1,children:J.map(kZQ)},Q,!1,void 0,this)}function kZQ(J,Q){if(J.categoryName==="Free space")return OJ.jsxDEV(M,{dimColor:!0,children:"\u26F6 "},Q,!1,void 0,this);if(J.categoryName===ke0)return OJ.jsxDEV(M,{color:J.color,children:"\u26DD "},Q,!1,void 0,this);return OJ.jsxDEV(M,{color:J.color,children:J.squareFullness>=0.7?"\u26C1 ":"\u26C0 "},Q,!1,void 0,this)}function hZQ(J){return J.name===ke0}function uZQ(J){return J.isDeferred&&J.name.includes("MCP")}function gZQ(J){return J.tokens>0&&J.name!=="Free space"&&J.name!==ke0&&!J.isDeferred}var jn1,OJ,ke0="Autocompact buffer",AZQ;var KZJ=I(()=>{a0();tXJ();V9();A6();eY();ZZJ();jn1=T(e0(),1),OJ=T(e(),1);AZQ=["Project","User","Managed","Plugin","Built-in"]});import{PassThrough as mZQ}from"stream";function pZQ(J){let Q=zZJ.c(5),{children:X}=J,{exit:Z}=d10(),Y,q;if(Q[0]!==Z)Y=()=>{let G=setTimeout(Z,0);return()=>clearTimeout(G)},q=[Z],Q[0]=Z,Q[1]=Y,Q[2]=q;else Y=Q[1],q=Q[2];WZJ.useLayoutEffect(Y,q);let K;if(Q[3]!==X)K=WN0.jsxDEV(WN0.Fragment,{children:X},void 0,!1,void 0,this),Q[3]=X,Q[4]=K;else K=Q[4];return K}function dZQ(J){let Q=J.indexOf(GZJ);if(Q===-1)return J;let X=Q+GZJ.length,Z=J.indexOf(cZQ,X);if(Z===-1)return J;return J.slice(X,Z)}function zN0(J,Q){return new Promise(async(X)=>{let Z="",Y=new mZQ;if(Q!==void 0)Y.columns=Q;Y.on("data",(K)=>{Z+=K.toString()}),await(await Ed(WN0.jsxDEV(pZQ,{children:J},void 0,!1,void 0,this),{stdout:Y,patchConsole:!1})).waitUntilExit(),await X(dZQ(Z))})}async function HZJ(J,Q){let X=await zN0(J,Q);return cX(X)}var zZJ,WZJ,WN0,GZJ="\x1B[?2026h",cZQ="\x1B[?2026l";var he0=I(()=>{xU();a0();zZJ=T(e0(),1),WZJ=T(J1(),1),WN0=T(e(),1)});var BZJ={};X8(BZJ,{call:()=>iZQ});function lZQ(J){return LG(J)}async function iZQ(J,Q){let{messages:X,getAppState:Z,options:{mainLoopModel:Y,tools:q}}=Q,K=lZQ(X),{messages:G}=await ZI(K),z=process.stdout.columns||80,W=Z(),H=await Fd0(G,Y,async()=>W.toolPermissionContext,q,W.agentDefinitions,z,Q,void 0,K),B=await zN0(UZJ.jsxDEV(qZJ,{data:H},void 0,!1,void 0,this));return J(B),null}var UZJ;var FZJ=I(()=>{KZJ();Fw();_d0();M8();he0();UZJ=T(e(),1)});var _ZJ={};X8(_ZJ,{collectContextData:()=>ue0,call:()=>rZQ});async function ue0(J){let{messages:Q,getAppState:X,options:{mainLoopModel:Z,tools:Y,agentDefinitions:q,customSystemPrompt:K,appendSystemPrompt:G}}=J,z=LG(Q),{messages:W}=await ZI(z),H=X();return Fd0(W,Z,async()=>H.toolPermissionContext,Y,q,void 0,{options:{customSystemPrompt:K,appendSystemPrompt:G}},void 0,z)}async function rZQ(J,Q){let X=await ue0(Q);return{type:"text",value:aZQ(X)}}function aZQ(J){let{categories:Q,totalTokens:X,rawMaxTokens:Z,percentage:Y,model:q,memoryFiles:K,mcpTools:G,agents:z,skills:W,messageBreakdown:H,systemTools:B,systemPromptSections:U}=J,F=`## Context Usage
|
|
5091
5091
|
|
|
5092
5092
|
`;F+=`**Model:** ${q}
|
|
5093
5093
|
`,F+=`**Tokens:** ${P7(X)} / ${P7(Z)} (${Y}%)
|
|
@@ -5165,7 +5165,7 @@ echo 'export PATH="$HOME/.local/bin:$PATH"' >> ${_} && source ${_}`,userActionRe
|
|
|
5165
5165
|
|
|
5166
5166
|
`))K=K.slice(0,-1);if(Q)K=E4Q(K,J,Q);return{content:K}}finally{try{X.unlinkSync(Z)}catch{}}}var b4Q;var cL=I(()=>{uw();jF();oI();tj0();H6();b5();i1();Wc1();b4Q={code:"code -w",subl:"subl --wait"}});var oZJ={};X8(oZJ,{call:()=>f4Q});import{mkdir as T4Q,writeFile as C4Q}from"fs/promises";function v4Q({onDone:J}){let Q=async(Z)=>{try{if(Z.includes(L8()))await T4Q(L8(),{recursive:!0});try{await C4Q(Z,"",{encoding:"utf8",flag:"wx"})}catch(z){if(c8(z)!=="EEXIST")throw z}await pL(Z);let Y="default",q="";if(process.env.VISUAL)Y="$VISUAL",q=process.env.VISUAL;else if(process.env.EDITOR)Y="$EDITOR",q=process.env.EDITOR;let K=Y!=="default"?`Using ${Y}="${q}".`:"",G=K?`> ${K} To change editor, set $EDITOR or $VISUAL environment variable.`:"> To use a different editor, set the $EDITOR or $VISUAL environment variable.";J(`Opened memory file at ${dZJ(Z)}
|
|
5167
5167
|
|
|
5168
|
-
${G}`,{display:"system"})}catch(Y){H0(Y),J(`Error opening memory file: ${Y}`)}},X=()=>{J("Cancelled memory editing",{display:"system"})};return AC.jsxDEV(D8,{title:"Memory",onCancel:X,color:"remember",children:AC.jsxDEV(f,{flexDirection:"column",children:[AC.jsxDEV(aZJ.Suspense,{fallback:null,children:AC.jsxDEV(pZJ,{onSelect:Q,onCancel:X},void 0,!1,void 0,this)},void 0,!1,void 0,this),AC.jsxDEV(f,{marginTop:1,children:AC.jsxDEV(M,{dimColor:!0,children:["Learn more: ",AC.jsxDEV(zJ,{url:"https://docs.getglock.dev/en/memory"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this)}var aZJ,AC,f4Q=async(J)=>{return SL(),await eG(),AC.jsxDEV(v4Q,{onDone:J},void 0,!1,void 0,this)};var sZJ=I(()=>{M9();cZJ();lZJ();a0();ez();t1();T1();M1();cL();aZJ=T(J1(),1),AC=T(e(),1)});var S4Q,tZJ;var eZJ=I(()=>{S4Q={type:"local-jsx",name:"memory",description:"Edit Glock memory files",load:()=>Promise.resolve().then(() => (sZJ(),oZJ))},tZJ=S4Q});function bn1(J){let Q=J4J.c(14),{commands:X,maxHeight:Z,columns:Y,title:q,onCancel:K,emptyMessage:G}=J,{headerFocused:z,focusHeader:W}=BU(),H=Math.max(1,Y-10),B=Math.max(1,Math.floor((Z-10)/2)),U;if(Q[0]!==X||Q[1]!==H){let O=new Set,L;if(Q[3]!==H)L=(N)=>({label:`/${N.name}`,value:N.name,description:KZ(Vr(N),H,!0)}),Q[3]=H,Q[4]=L;else L=Q[4];U=X.filter((N)=>{if(O.has(N.name))return!1;return O.add(N.name),!0}).sort(x4Q).map(L),Q[0]=X,Q[1]=H,Q[2]=U}else U=Q[2];let F=U,_;if(Q[5]!==X.length||Q[6]!==G||Q[7]!==W||Q[8]!==z||Q[9]!==K||Q[10]!==F||Q[11]!==q||Q[12]!==B)_=RC.jsxDEV(f,{flexDirection:"column",paddingY:1,children:X.length===0&&G?RC.jsxDEV(M,{dimColor:!0,children:G},void 0,!1,void 0,this):RC.jsxDEV(RC.Fragment,{children:[RC.jsxDEV(M,{children:q},void 0,!1,void 0,this),RC.jsxDEV(f,{marginTop:1,children:RC.jsxDEV(Q8,{options:F,visibleOptionCount:B,onCancel:K,disableSelection:!0,hideIndexes:!0,layout:"compact-vertical",onUpFromFirstItem:W,isDisabled:z},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this),Q[5]=X.length,Q[6]=G,Q[7]=W,Q[8]=z,Q[9]=K,Q[10]=F,Q[11]=q,Q[12]=B,Q[13]=_;else _=Q[13];return _}function x4Q(J,Q){return J.name.localeCompare(Q.name)}var J4J,RC;var Q4J=I(()=>{PY();a0();A6();AQ();ew();J4J=T(e0(),1),RC=T(e(),1)});function MC(){return L1().editorMode==="vim"}function X4J(){if(k8.terminal==="Apple_Terminal"&&process.platform==="darwin")return"shift + \u23CE for newline";if(Ep1())return"shift + \u23CE for newline";return Tp1()?"\\\u23CE for newline":"backslash (\\) + return (\u23CE) for newline"}function Z4J(J,Q){if(Q.ctrl||Q.meta||Q.escape||Q.return||Q.tab||Q.backspace||Q.delete||Q.upArrow||Q.downArrow||Q.leftArrow||Q.rightArrow||Q.pageUp||Q.pageDown||Q.home||Q.end)return!1;return J.length>0&&!/^\s/.test(J)&&!J.startsWith("\x1B")}var YZ0=I(()=>{hn();m8();WZ()});function sI(J){return J.replace(/\+/g," + ")}function le0(J){let Q=Y4J.c(99),{dimColor:X,fixedWidth:Z,gap:Y,paddingX:q}=J,K=r9("app:toggleTranscript","Global","ctrl+o"),G;if(Q[0]!==K)G=sI(K),Q[0]=K,Q[1]=G;else G=Q[1];let z=G,W=r9("app:toggleTodos","Global","ctrl+t"),H;if(Q[2]!==W)H=sI(W),Q[2]=W,Q[3]=H;else H=Q[3];let B=H,U=r9("chat:undo","Chat","ctrl+_"),F;if(Q[4]!==U)F=sI(U),Q[4]=U,Q[5]=F;else F=Q[5];let _=F,O=r9("chat:stash","Chat","ctrl+s"),L;if(Q[6]!==O)L=sI(O),Q[6]=O,Q[7]=L;else L=Q[7];let N=L,A=r9("chat:cycleMode","Chat","shift+tab"),R;if(Q[8]!==A)R=sI(A),Q[8]=A,Q[9]=R;else R=Q[9];let D=R,$=r9("chat:modelPicker","Chat","alt+p"),y;if(Q[10]!==$)y=sI($),Q[10]=$,Q[11]=y;else y=Q[11];let v=y,E=r9("chat:fastMode","Chat","alt+o"),C;if(Q[12]!==E)C=sI(E),Q[12]=E,Q[13]=C;else C=Q[13];let S=C,k=r9("chat:externalEditor","Chat","ctrl+g"),h;if(Q[14]!==k)h=sI(k),Q[14]=k,Q[15]=h;else h=Q[15];let u=h,x=r9("app:toggleTerminal","Global","meta+j"),m;if(Q[16]!==x)m=sI(x),Q[16]=x,Q[17]=m;else m=Q[17];let p=m,c=r9("chat:imagePaste","Chat","ctrl+v"),r;if(Q[18]!==c)r=sI(c),Q[18]=c,Q[19]=r;else r=Q[19];let J0=r,n;if(Q[20]!==X||Q[21]!==p)n=null,Q[20]=X,Q[21]=p,Q[22]=n;else n=Q[22];let s=n,X0=Z?24:void 0,Y0;if(Q[23]!==X)Y0=MQ.jsxDEV(f,{children:MQ.jsxDEV(M,{dimColor:X,children:"! for bash mode"},void 0,!1,void 0,this)},void 0,!1,void 0,this),Q[23]=X,Q[24]=Y0;else Y0=Q[24];let G0;if(Q[25]!==X)G0=MQ.jsxDEV(f,{children:MQ.jsxDEV(M,{dimColor:X,children:"/ for commands"},void 0,!1,void 0,this)},void 0,!1,void 0,this),Q[25]=X,Q[26]=G0;else G0=Q[26];let j0;if(Q[27]!==X)j0=MQ.jsxDEV(f,{children:MQ.jsxDEV(M,{dimColor:X,children:"@ for file paths"},void 0,!1,void 0,this)},void 0,!1,void 0,this),Q[27]=X,Q[28]=j0;else j0=Q[28];let W0;if(Q[29]!==X)W0=MQ.jsxDEV(f,{children:MQ.jsxDEV(M,{dimColor:X,children:"& for background"},void 0,!1,void 0,this)},void 0,!1,void 0,this),Q[29]=X,Q[30]=W0;else W0=Q[30];let y0;if(Q[31]!==X)y0=MQ.jsxDEV(f,{children:MQ.jsxDEV(M,{dimColor:X,children:"/btw for side question"},void 0,!1,void 0,this)},void 0,!1,void 0,this),Q[31]=X,Q[32]=y0;else y0=Q[32];let V0;if(Q[33]!==X0||Q[34]!==Y0||Q[35]!==G0||Q[36]!==j0||Q[37]!==W0||Q[38]!==y0)V0=MQ.jsxDEV(f,{flexDirection:"column",width:X0,children:[Y0,G0,j0,W0,y0]},void 0,!0,void 0,this),Q[33]=X0,Q[34]=Y0,Q[35]=G0,Q[36]=j0,Q[37]=W0,Q[38]=y0,Q[39]=V0;else V0=Q[39];let Z0=Z?35:void 0,t;if(Q[40]!==X)t=MQ.jsxDEV(f,{children:MQ.jsxDEV(M,{dimColor:X,children:"double tap esc to clear input"},void 0,!1,void 0,this)},void 0,!1,void 0,this),Q[40]=X,Q[41]=t;else t=Q[41];let q0;if(Q[42]!==D||Q[43]!==X)q0=MQ.jsxDEV(f,{children:MQ.jsxDEV(M,{dimColor:X,children:[D," ","to auto-accept edits"]},void 0,!0,void 0,this)},void 0,!1,void 0,this),Q[42]=D,Q[43]=X,Q[44]=q0;else q0=Q[44];let Q0;if(Q[45]!==X||Q[46]!==z)Q0=MQ.jsxDEV(f,{children:MQ.jsxDEV(M,{dimColor:X,children:[z," for verbose output"]},void 0,!0,void 0,this)},void 0,!1,void 0,this),Q[45]=X,Q[46]=z,Q[47]=Q0;else Q0=Q[47];let a;if(Q[48]!==X||Q[49]!==B)a=MQ.jsxDEV(f,{children:MQ.jsxDEV(M,{dimColor:X,children:[B," to toggle tasks"]},void 0,!0,void 0,this)},void 0,!1,void 0,this),Q[48]=X,Q[49]=B,Q[50]=a;else a=Q[50];let O0;if(Q[51]===Symbol.for("react.memo_cache_sentinel"))O0=X4J(),Q[51]=O0;else O0=Q[51];let D0;if(Q[52]!==X)D0=MQ.jsxDEV(f,{children:MQ.jsxDEV(M,{dimColor:X,children:O0},void 0,!1,void 0,this)},void 0,!1,void 0,this),Q[52]=X,Q[53]=D0;else D0=Q[53];let F0;if(Q[54]!==Z0||Q[55]!==t||Q[56]!==q0||Q[57]!==Q0||Q[58]!==a||Q[59]!==D0||Q[60]!==s)F0=MQ.jsxDEV(f,{flexDirection:"column",width:Z0,children:[t,q0,Q0,a,s,D0]},void 0,!0,void 0,this),Q[54]=Z0,Q[55]=t,Q[56]=q0,Q[57]=Q0,Q[58]=a,Q[59]=D0,Q[60]=s,Q[61]=F0;else F0=Q[61];let I0;if(Q[62]!==X||Q[63]!==_)I0=MQ.jsxDEV(f,{children:MQ.jsxDEV(M,{dimColor:X,children:[_," to undo"]},void 0,!0,void 0,this)},void 0,!1,void 0,this),Q[62]=X,Q[63]=_,Q[64]=I0;else I0=Q[64];let U0;if(Q[65]!==X)U0=N8()!=="windows"&&MQ.jsxDEV(f,{children:MQ.jsxDEV(M,{dimColor:X,children:"ctrl + z to suspend"},void 0,!1,void 0,this)},void 0,!1,void 0,this),Q[65]=X,Q[66]=U0;else U0=Q[66];let P0;if(Q[67]!==X||Q[68]!==J0)P0=MQ.jsxDEV(f,{children:MQ.jsxDEV(M,{dimColor:X,children:[J0," to paste images"]},void 0,!0,void 0,this)},void 0,!1,void 0,this),Q[67]=X,Q[68]=J0,Q[69]=P0;else P0=Q[69];let $0;if(Q[70]!==X||Q[71]!==v)$0=MQ.jsxDEV(f,{children:MQ.jsxDEV(M,{dimColor:X,children:[v," to switch model"]},void 0,!0,void 0,this)},void 0,!1,void 0,this),Q[70]=X,Q[71]=v,Q[72]=$0;else $0=Q[72];let w0;if(Q[73]!==X||Q[74]!==S)w0=B9()&&GG()&&MQ.jsxDEV(f,{children:MQ.jsxDEV(M,{dimColor:X,children:[S," to toggle fast mode"]},void 0,!0,void 0,this)},void 0,!1,void 0,this),Q[73]=X,Q[74]=S,Q[75]=w0;else w0=Q[75];let E0;if(Q[76]!==X||Q[77]!==N)E0=MQ.jsxDEV(f,{children:MQ.jsxDEV(M,{dimColor:X,children:[N," to stash prompt"]},void 0,!0,void 0,this)},void 0,!1,void 0,this),Q[76]=X,Q[77]=N,Q[78]=E0;else E0=Q[78];let h0;if(Q[79]!==X||Q[80]!==u)h0=MQ.jsxDEV(f,{children:MQ.jsxDEV(M,{dimColor:X,children:[u," to edit in $EDITOR"]},void 0,!0,void 0,this)},void 0,!1,void 0,this),Q[79]=X,Q[80]=u,Q[81]=h0;else h0=Q[81];let u0;if(Q[82]!==X)u0=AM()&&MQ.jsxDEV(f,{children:MQ.jsxDEV(M,{dimColor:X,children:"/keybindings to customize"},void 0,!1,void 0,this)},void 0,!1,void 0,this),Q[82]=X,Q[83]=u0;else u0=Q[83];let B0;if(Q[84]!==I0||Q[85]!==U0||Q[86]!==P0||Q[87]!==$0||Q[88]!==w0||Q[89]!==E0||Q[90]!==h0||Q[91]!==u0)B0=MQ.jsxDEV(f,{flexDirection:"column",children:[I0,U0,P0,$0,w0,E0,h0,u0]},void 0,!0,void 0,this),Q[84]=I0,Q[85]=U0,Q[86]=P0,Q[87]=$0,Q[88]=w0,Q[89]=E0,Q[90]=h0,Q[91]=u0,Q[92]=B0;else B0=Q[92];let _0;if(Q[93]!==Y||Q[94]!==q||Q[95]!==V0||Q[96]!==F0||Q[97]!==B0)_0=MQ.jsxDEV(f,{paddingX:q,flexDirection:"row",gap:Y,children:[V0,F0,B0]},void 0,!0,void 0,this),Q[93]=Y,Q[94]=q,Q[95]=V0,Q[96]=F0,Q[97]=B0,Q[98]=_0;else _0=Q[98];return _0}var Y4J,MQ;var Pn1=I(()=>{a0();k9();hk();nz();$B();YZ0();Y4J=T(e0(),1),MQ=T(e(),1)});function K4J(){let J=q4J.c(2),Q;if(J[0]===Symbol.for("react.memo_cache_sentinel"))Q=Su.jsxDEV(f,{children:Su.jsxDEV(M,{children:"Glock understands your codebase, makes edits with your permission, and executes commands \u2014 right from your terminal."},void 0,!1,void 0,this)},void 0,!1,void 0,this),J[0]=Q;else Q=J[0];let X;if(J[1]===Symbol.for("react.memo_cache_sentinel"))X=Su.jsxDEV(f,{flexDirection:"column",paddingY:1,gap:1,children:[Q,Su.jsxDEV(f,{flexDirection:"column",children:[Su.jsxDEV(f,{children:Su.jsxDEV(M,{bold:!0,children:"Shortcuts"},void 0,!1,void 0,this)},void 0,!1,void 0,this),Su.jsxDEV(le0,{gap:2,fixedWidth:!0},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),J[1]=X;else X=J[1];return X}var q4J,Su;var G4J=I(()=>{a0();Pn1();q4J=T(e0(),1),Su=T(e(),1)});function W4J(J){let Q=z4J.c(44),{onClose:X,commands:Z}=J,{rows:Y,columns:q}=l8(),K=Math.floor(Y/2),G=oF(),z;if(Q[0]!==X)z=()=>X("Help dialog dismissed",{display:"system"}),Q[0]=X,Q[1]=z;else z=Q[1];let W=z,H;if(Q[2]===Symbol.for("react.memo_cache_sentinel"))H={context:"Help"},Q[2]=H;else H=Q[2];J8("help:dismiss",W,H);let B=B7(W),U=r9("help:dismiss","Help","esc"),F,_,O;if(Q[3]!==Z){let C=FI();_=Z.filter((k)=>C.has(k.name)&&!k.isHidden);let S;if(Q[7]===Symbol.for("react.memo_cache_sentinel"))S=[],Q[7]=S;else S=Q[7];F=S,O=Z.filter((k)=>!C.has(k.name)&&!k.isHidden),Q[3]=Z,Q[4]=F,Q[5]=_,Q[6]=O}else F=Q[4],_=Q[5],O=Q[6];let L=O,N;if(Q[8]===Symbol.for("react.memo_cache_sentinel"))N=K3.jsxDEV(_Y,{title:"general",children:K3.jsxDEV(K4J,{},void 0,!1,void 0,this)},"general",!1,void 0,this),Q[8]=N;else N=Q[8];let A;if(Q[9]!==F||Q[10]!==_||Q[11]!==W||Q[12]!==q||Q[13]!==L||Q[14]!==K){A=[N];let C;if(Q[16]!==_||Q[17]!==W||Q[18]!==q||Q[19]!==K)C=K3.jsxDEV(_Y,{title:"commands",children:K3.jsxDEV(bn1,{commands:_,maxHeight:K,columns:q,title:"Browse default commands:",onCancel:W},void 0,!1,void 0,this)},"commands",!1,void 0,this),Q[16]=_,Q[17]=W,Q[18]=q,Q[19]=K,Q[20]=C;else C=Q[20];A.push(C);let S;if(Q[21]!==W||Q[22]!==q||Q[23]!==L||Q[24]!==K)S=K3.jsxDEV(_Y,{title:"custom-commands",children:K3.jsxDEV(bn1,{commands:L,maxHeight:K,columns:q,title:"Browse custom commands:",emptyMessage:"No custom commands found",onCancel:W},void 0,!1,void 0,this)},"custom",!1,void 0,this),Q[21]=W,Q[22]=q,Q[23]=L,Q[24]=K,Q[25]=S;else S=Q[25];A.push(S),Q[9]=F,Q[10]=_,Q[11]=W,Q[12]=q,Q[13]=L,Q[14]=K,Q[15]=A}else A=Q[15];let R=G?void 0:K,D;if(Q[31]!==A)D=K3.jsxDEV(tw,{title:"Glock v0.1.16",color:"professionalBlue",defaultTab:"general",children:A},void 0,!1,void 0,this),Q[31]=A,Q[32]=D;else D=Q[32];let $;if(Q[33]===Symbol.for("react.memo_cache_sentinel"))$=K3.jsxDEV(f,{marginTop:1,children:K3.jsxDEV(M,{children:["For more help:"," ",K3.jsxDEV(zJ,{url:"https://docs.getglock.dev/en/overview"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this),Q[33]=$;else $=Q[33];let y;if(Q[34]!==U||Q[35]!==B.keyName||Q[36]!==B.pending)y=K3.jsxDEV(f,{marginTop:1,children:K3.jsxDEV(M,{dimColor:!0,children:B.pending?K3.jsxDEV(K3.Fragment,{children:["Press ",B.keyName," again to exit"]},void 0,!0,void 0,this):K3.jsxDEV(M,{italic:!0,children:[U," to cancel"]},void 0,!0,void 0,this)},void 0,!1,void 0,this)},void 0,!1,void 0,this),Q[34]=U,Q[35]=B.keyName,Q[36]=B.pending,Q[37]=y;else y=Q[37];let v;if(Q[38]!==D||Q[39]!==y)v=K3.jsxDEV(yX,{color:"professionalBlue",children:[D,$,y]},void 0,!0,void 0,this),Q[38]=D,Q[39]=y,Q[40]=v;else v=Q[40];let E;if(Q[41]!==R||Q[42]!==v)E=K3.jsxDEV(f,{flexDirection:"column",height:R,children:v},void 0,!1,void 0,this),Q[41]=R,Q[42]=v,Q[43]=E;else E=Q[43];return E}var z4J,K3;var H4J=I(()=>{Lq();nz();PY();rE();U9();a0();f6();t3();ew();Q4J();G4J();z4J=T(e0(),1),K3=T(e(),1)});var B4J={};X8(B4J,{call:()=>k4Q});var U4J,k4Q=async(J,{options:{commands:Q}})=>{return U4J.jsxDEV(W4J,{commands:Q,onClose:J},void 0,!1,void 0,this)};var F4J=I(()=>{H4J();U4J=T(e(),1)});var h4Q,En1;var _4J=I(()=>{h4Q={type:"local-jsx",name:"help",description:"Show help and available commands",load:()=>Promise.resolve().then(() => (F4J(),B4J))},En1=h4Q});function O4J(J){let Q=Tn1.c(9),{onComplete:X}=J,Z;if(Q[0]!==X)Z=async(H)=>{let B=H==="yes";q8((U)=>({...U,autoConnectIde:B,hasIdeAutoConnectDialogBeenShown:!0})),X()},Q[0]=X,Q[1]=Z;else Z=Q[1];let Y=Z,q;if(Q[2]===Symbol.for("react.memo_cache_sentinel"))q=[{label:"Yes",value:"yes"},{label:"No",value:"no"}],Q[2]=q;else q=Q[2];let K=q,G;if(Q[3]!==Y)G=qZ0.jsxDEV(Q8,{options:K,onChange:Y,defaultValue:"yes"},void 0,!1,void 0,this),Q[3]=Y,Q[4]=G;else G=Q[4];let z;if(Q[5]===Symbol.for("react.memo_cache_sentinel"))z=qZ0.jsxDEV(M,{dimColor:!0,children:"You can also configure this in /config or with the --ide flag"},void 0,!1,void 0,this),Q[5]=z;else z=Q[5];let W;if(Q[6]!==X||Q[7]!==G)W=qZ0.jsxDEV(D8,{title:"Do you wish to enable auto-connect to IDE?",color:"ide",onCancel:X,children:[G,z]},void 0,!0,void 0,this),Q[6]=X,Q[7]=G,Q[8]=W;else W=Q[8];return W}function L4J(){let J=L1();return!tz()&&J.autoConnectIde!==!0&&J.hasIdeAutoConnectDialogBeenShown!==!0}function V4J(J){let Q=Tn1.c(10),{onComplete:X}=J,Z;if(Q[0]!==X)Z=(B)=>{let U=B==="yes";if(U)q8(u4Q);X(U)},Q[0]=X,Q[1]=Z;else Z=Q[1];let Y=Z,q;if(Q[2]!==X)q=()=>{X(!1)},Q[2]=X,Q[3]=q;else q=Q[3];let K=q,G;if(Q[4]===Symbol.for("react.memo_cache_sentinel"))G=[{label:"No",value:"no"},{label:"Yes",value:"yes"}],Q[4]=G;else G=Q[4];let z=G,W;if(Q[5]!==Y)W=qZ0.jsxDEV(Q8,{options:z,onChange:Y,defaultValue:"no"},void 0,!1,void 0,this),Q[5]=Y,Q[6]=W;else W=Q[6];let H;if(Q[7]!==K||Q[8]!==W)H=qZ0.jsxDEV(D8,{title:"Do you wish to disable auto-connect to IDE?",subtitle:"You can also configure this in /config",onCancel:K,color:"ide",children:W},void 0,!1,void 0,this),Q[7]=K,Q[8]=W,Q[9]=H;else H=Q[9];return H}function u4Q(J){return{...J,autoConnectIde:!1}}function N4J(){let J=L1();return!tz()&&J.autoConnectIde===!0}var Tn1,qZ0;var w4J=I(()=>{a0();m8();b5();tX();M9();Tn1=T(e0(),1),qZ0=T(e(),1)});var R4J={};X8(R4J,{formatWorkspaceFolders:()=>Cn1,call:()=>o4Q});import*as A4J from"path";function g4Q(J){let Q=BN0.c(39),{availableIDEs:X,unavailableIDEs:Z,selectedIDE:Y,onClose:q,onSelect:K}=J,G;if(Q[0]!==Y?.port)G=Y?.port?.toString()??"None",Q[0]=Y?.port,Q[1]=G;else G=Q[1];let[z,W]=u2.useState(G),[H,B]=u2.useState(!1),[U,F]=u2.useState(!1),_;if(Q[2]!==X||Q[3]!==K)_=(k)=>{if(k!=="None"&&L4J())B(!0);else if(k==="None"&&N4J())F(!0);else K(X.find((h)=>h.port===parseInt(k)))},Q[2]=X,Q[3]=K,Q[4]=_;else _=Q[4];let O=_,L;if(Q[5]!==X)L=X.reduce(c4Q,{}),Q[5]=X,Q[6]=L;else L=Q[6];let N=L,A;if(Q[7]!==X||Q[8]!==N){let k;if(Q[10]!==N)k=(h)=>{let x=(N[h.name]||0)>1&&h.workspaceFolders.length>0;return{label:h.name,value:h.port.toString(),description:x?Cn1(h.workspaceFolders):void 0}},Q[10]=N,Q[11]=k;else k=Q[11];A=X.map(k).concat([{label:"None",value:"None",description:void 0}]),Q[7]=X,Q[8]=N,Q[9]=A}else A=Q[9];let R=A;if(H){let k;if(Q[12]!==O||Q[13]!==z)k=W5.jsxDEV(O4J,{onComplete:()=>O(z)},void 0,!1,void 0,this),Q[12]=O,Q[13]=z,Q[14]=k;else k=Q[14];return k}if(U){let k;if(Q[15]!==K)k=W5.jsxDEV(V4J,{onComplete:()=>{K(void 0)}},void 0,!1,void 0,this),Q[15]=K,Q[16]=k;else k=Q[16];return k}let D;if(Q[17]!==X.length)D=X.length===0&&W5.jsxDEV(M,{dimColor:!0,children:Q90()?"No available IDEs detected. Please install the plugin and restart your IDE.":"No available IDEs detected. Make sure your IDE has the Glock extension or plugin installed and is running."},void 0,!1,void 0,this),Q[17]=X.length,Q[18]=D;else D=Q[18];let $;if(Q[19]!==X.length||Q[20]!==O||Q[21]!==R||Q[22]!==z)$=X.length!==0&&W5.jsxDEV(Q8,{defaultValue:z,defaultFocusValue:z,options:R,onChange:(k)=>{W(k),O(k)}},void 0,!1,void 0,this),Q[19]=X.length,Q[20]=O,Q[21]=R,Q[22]=z,Q[23]=$;else $=Q[23];let y;if(Q[24]!==X)y=X.length!==0&&X.some(p4Q)&&W5.jsxDEV(f,{marginTop:1,children:W5.jsxDEV(M,{color:"warning",children:"Note: Only one Glock instance can be connected to VS Code at a time."},void 0,!1,void 0,this)},void 0,!1,void 0,this),Q[24]=X,Q[25]=y;else y=Q[25];let v;if(Q[26]!==X.length)v=X.length!==0&&!tz()&&W5.jsxDEV(f,{marginTop:1,children:W5.jsxDEV(M,{dimColor:!0,children:"Tip: You can enable auto-connect to IDE in /config or with the --ide flag"},void 0,!1,void 0,this)},void 0,!1,void 0,this),Q[26]=X.length,Q[27]=v;else v=Q[27];let E;if(Q[28]!==Z)E=Z.length>0&&W5.jsxDEV(f,{marginTop:1,flexDirection:"column",children:[W5.jsxDEV(M,{dimColor:!0,children:["Found ",Z.length," other running IDE(s). However, their workspace/project directories do not match the current cwd."]},void 0,!0,void 0,this),W5.jsxDEV(f,{marginTop:1,flexDirection:"column",children:Z.map(m4Q)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),Q[28]=Z,Q[29]=E;else E=Q[29];let C;if(Q[30]!==D||Q[31]!==$||Q[32]!==y||Q[33]!==v||Q[34]!==E)C=W5.jsxDEV(f,{flexDirection:"column",children:[D,$,y,v,E]},void 0,!0,void 0,this),Q[30]=D,Q[31]=$,Q[32]=y,Q[33]=v,Q[34]=E,Q[35]=C;else C=Q[35];let S;if(Q[36]!==q||Q[37]!==C)S=W5.jsxDEV(D8,{title:"Select IDE",subtitle:"Connect to an IDE for integrated development features.",onCancel:q,color:"ide",children:C},void 0,!1,void 0,this),Q[36]=q,Q[37]=C,Q[38]=S;else S=Q[38];return S}function m4Q(J,Q){return W5.jsxDEV(f,{paddingLeft:3,children:W5.jsxDEV(M,{dimColor:!0,children:["\u2022 ",J.name,": ",Cn1(J.workspaceFolders)]},void 0,!0,void 0,this)},Q,!1,void 0,this)}function p4Q(J){return J.name==="VS Code"||J.name==="Visual Studio Code"}function c4Q(J,Q){return J[Q.name]=(J[Q.name]||0)+1,J}async function d4Q(J,Q){let X=Q?.ide;if(!X||X.type!=="sse-ide"&&X.type!=="ws-ide")return null;for(let Z of J)if(Z.url===X.url)return Z;return null}function l4Q(J){let Q=BN0.c(18),{availableIDEs:X,onSelectIDE:Z,onDone:Y}=J,q;if(Q[0]!==X[0]?.port)q=X[0]?.port?.toString()??"",Q[0]=X[0]?.port,Q[1]=q;else q=Q[1];let[K,G]=u2.useState(q),z;if(Q[2]!==X||Q[3]!==Z)z=(N)=>{let A=X.find((R)=>R.port===parseInt(N));Z(A)},Q[2]=X,Q[3]=Z,Q[4]=z;else z=Q[4];let W=z,H;if(Q[5]!==X)H=X.map(i4Q),Q[5]=X,Q[6]=H;else H=Q[6];let B=H,U;if(Q[7]!==Y)U=function(){Y("IDE selection cancelled",{display:"system"})},Q[7]=Y,Q[8]=U;else U=Q[8];let F=U,_;if(Q[9]!==W)_=(N)=>{G(N),W(N)},Q[9]=W,Q[10]=_;else _=Q[10];let O;if(Q[11]!==B||Q[12]!==K||Q[13]!==_)O=W5.jsxDEV(Q8,{defaultValue:K,defaultFocusValue:K,options:B,onChange:_},void 0,!1,void 0,this),Q[11]=B,Q[12]=K,Q[13]=_,Q[14]=O;else O=Q[14];let L;if(Q[15]!==F||Q[16]!==O)L=W5.jsxDEV(D8,{title:"Select an IDE to open the project",onCancel:F,color:"ide",children:O},void 0,!1,void 0,this),Q[15]=F,Q[16]=O,Q[17]=L;else L=Q[17];return L}function i4Q(J){return{label:J.name,value:J.port.toString()}}function n4Q(J){let Q=BN0.c(15),{runningIDEs:X,onSelectIDE:Z,onDone:Y}=J,[q,K]=u2.useState(X[0]??""),G;if(Q[0]!==Z)G=(L)=>{Z(L)},Q[0]=Z,Q[1]=G;else G=Q[1];let z=G,W;if(Q[2]!==X)W=X.map(r4Q),Q[2]=X,Q[3]=W;else W=Q[3];let H=W,B;if(Q[4]!==Y)B=function(){Y("IDE selection cancelled",{display:"system"})},Q[4]=Y,Q[5]=B;else B=Q[5];let U=B,F;if(Q[6]!==z)F=(L)=>{K(L),z(L)},Q[6]=z,Q[7]=F;else F=Q[7];let _;if(Q[8]!==H||Q[9]!==q||Q[10]!==F)_=W5.jsxDEV(Q8,{defaultFocusValue:q,options:H,onChange:F},void 0,!1,void 0,this),Q[8]=H,Q[9]=q,Q[10]=F,Q[11]=_;else _=Q[11];let O;if(Q[12]!==U||Q[13]!==_)O=W5.jsxDEV(D8,{title:"Select IDE to install extension",onCancel:U,color:"ide",children:_},void 0,!1,void 0,this),Q[12]=U,Q[13]=_,Q[14]=O;else O=Q[14];return O}function r4Q(J){return{label:Vq(J),value:J}}function a4Q(J){let Q=BN0.c(4),{ide:X,onInstall:Z}=J,Y,q;if(Q[0]!==X||Q[1]!==Z)Y=()=>{Z(X)},q=[X,Z],Q[0]=X,Q[1]=Z,Q[2]=Y,Q[3]=q;else Y=Q[2],q=Q[3];return u2.useEffect(Y,q),null}async function o4Q(J,Q,X){l("jarvis_api_error",{});let{options:{dynamicMcpConfig:Z},onChangeDynamicMcpConfig:Y}=Q;if(X?.trim()==="open"){let W=yq(),H=W?W.worktreePath:B1(),U=(await X90(!0)).filter((F)=>F.isValid);if(U.length===0)return J("No IDEs with Glock extension detected."),null;return W5.jsxDEV(l4Q,{availableIDEs:U,onSelectIDE:async(F)=>{if(!F){J("No IDE selected.");return}if(F.name.toLowerCase().includes("vscode")||F.name.toLowerCase().includes("cursor")||F.name.toLowerCase().includes("windsurf")){let{code:_}=await Z8("code",[H]);if(_===0)J(`Opened ${W?"worktree":"project"} in ${_1.bold(F.name)}`);else J(`Failed to open in ${F.name}. Try opening manually: ${H}`)}else if(Q90())J(`Please open the ${W?"worktree":"project"} manually in ${_1.bold(F.name)}: ${H}`);else J(`Please open the ${W?"worktree":"project"} manually in ${_1.bold(F.name)}: ${H}`)},onDone:()=>{J("Exited without opening IDE",{display:"system"})}},void 0,!1,void 0,this)}let q=await X90(!0);if(q.length===0&&Q.onInstallIDEExtension&&!tz()){let W=await $f1(),H=(B)=>{if(Q.onInstallIDEExtension)if(Q.onInstallIDEExtension(B),jM(B))J(`Installed plugin to ${_1.bold(Vq(B))}
|
|
5168
|
+
${G}`,{display:"system"})}catch(Y){H0(Y),J(`Error opening memory file: ${Y}`)}},X=()=>{J("Cancelled memory editing",{display:"system"})};return AC.jsxDEV(D8,{title:"Memory",onCancel:X,color:"remember",children:AC.jsxDEV(f,{flexDirection:"column",children:[AC.jsxDEV(aZJ.Suspense,{fallback:null,children:AC.jsxDEV(pZJ,{onSelect:Q,onCancel:X},void 0,!1,void 0,this)},void 0,!1,void 0,this),AC.jsxDEV(f,{marginTop:1,children:AC.jsxDEV(M,{dimColor:!0,children:["Learn more: ",AC.jsxDEV(zJ,{url:"https://docs.getglock.dev/en/memory"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this)}var aZJ,AC,f4Q=async(J)=>{return SL(),await eG(),AC.jsxDEV(v4Q,{onDone:J},void 0,!1,void 0,this)};var sZJ=I(()=>{M9();cZJ();lZJ();a0();ez();t1();T1();M1();cL();aZJ=T(J1(),1),AC=T(e(),1)});var S4Q,tZJ;var eZJ=I(()=>{S4Q={type:"local-jsx",name:"memory",description:"Edit Glock memory files",load:()=>Promise.resolve().then(() => (sZJ(),oZJ))},tZJ=S4Q});function bn1(J){let Q=J4J.c(14),{commands:X,maxHeight:Z,columns:Y,title:q,onCancel:K,emptyMessage:G}=J,{headerFocused:z,focusHeader:W}=BU(),H=Math.max(1,Y-10),B=Math.max(1,Math.floor((Z-10)/2)),U;if(Q[0]!==X||Q[1]!==H){let O=new Set,L;if(Q[3]!==H)L=(N)=>({label:`/${N.name}`,value:N.name,description:KZ(Vr(N),H,!0)}),Q[3]=H,Q[4]=L;else L=Q[4];U=X.filter((N)=>{if(O.has(N.name))return!1;return O.add(N.name),!0}).sort(x4Q).map(L),Q[0]=X,Q[1]=H,Q[2]=U}else U=Q[2];let F=U,_;if(Q[5]!==X.length||Q[6]!==G||Q[7]!==W||Q[8]!==z||Q[9]!==K||Q[10]!==F||Q[11]!==q||Q[12]!==B)_=RC.jsxDEV(f,{flexDirection:"column",paddingY:1,children:X.length===0&&G?RC.jsxDEV(M,{dimColor:!0,children:G},void 0,!1,void 0,this):RC.jsxDEV(RC.Fragment,{children:[RC.jsxDEV(M,{children:q},void 0,!1,void 0,this),RC.jsxDEV(f,{marginTop:1,children:RC.jsxDEV(Q8,{options:F,visibleOptionCount:B,onCancel:K,disableSelection:!0,hideIndexes:!0,layout:"compact-vertical",onUpFromFirstItem:W,isDisabled:z},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this),Q[5]=X.length,Q[6]=G,Q[7]=W,Q[8]=z,Q[9]=K,Q[10]=F,Q[11]=q,Q[12]=B,Q[13]=_;else _=Q[13];return _}function x4Q(J,Q){return J.name.localeCompare(Q.name)}var J4J,RC;var Q4J=I(()=>{PY();a0();A6();AQ();ew();J4J=T(e0(),1),RC=T(e(),1)});function MC(){return L1().editorMode==="vim"}function X4J(){if(k8.terminal==="Apple_Terminal"&&process.platform==="darwin")return"shift + \u23CE for newline";if(Ep1())return"shift + \u23CE for newline";return Tp1()?"\\\u23CE for newline":"backslash (\\) + return (\u23CE) for newline"}function Z4J(J,Q){if(Q.ctrl||Q.meta||Q.escape||Q.return||Q.tab||Q.backspace||Q.delete||Q.upArrow||Q.downArrow||Q.leftArrow||Q.rightArrow||Q.pageUp||Q.pageDown||Q.home||Q.end)return!1;return J.length>0&&!/^\s/.test(J)&&!J.startsWith("\x1B")}var YZ0=I(()=>{hn();m8();WZ()});function sI(J){return J.replace(/\+/g," + ")}function le0(J){let Q=Y4J.c(99),{dimColor:X,fixedWidth:Z,gap:Y,paddingX:q}=J,K=r9("app:toggleTranscript","Global","ctrl+o"),G;if(Q[0]!==K)G=sI(K),Q[0]=K,Q[1]=G;else G=Q[1];let z=G,W=r9("app:toggleTodos","Global","ctrl+t"),H;if(Q[2]!==W)H=sI(W),Q[2]=W,Q[3]=H;else H=Q[3];let B=H,U=r9("chat:undo","Chat","ctrl+_"),F;if(Q[4]!==U)F=sI(U),Q[4]=U,Q[5]=F;else F=Q[5];let _=F,O=r9("chat:stash","Chat","ctrl+s"),L;if(Q[6]!==O)L=sI(O),Q[6]=O,Q[7]=L;else L=Q[7];let N=L,A=r9("chat:cycleMode","Chat","shift+tab"),R;if(Q[8]!==A)R=sI(A),Q[8]=A,Q[9]=R;else R=Q[9];let D=R,$=r9("chat:modelPicker","Chat","alt+p"),y;if(Q[10]!==$)y=sI($),Q[10]=$,Q[11]=y;else y=Q[11];let v=y,E=r9("chat:fastMode","Chat","alt+o"),C;if(Q[12]!==E)C=sI(E),Q[12]=E,Q[13]=C;else C=Q[13];let S=C,k=r9("chat:externalEditor","Chat","ctrl+g"),h;if(Q[14]!==k)h=sI(k),Q[14]=k,Q[15]=h;else h=Q[15];let u=h,x=r9("app:toggleTerminal","Global","meta+j"),m;if(Q[16]!==x)m=sI(x),Q[16]=x,Q[17]=m;else m=Q[17];let p=m,c=r9("chat:imagePaste","Chat","ctrl+v"),r;if(Q[18]!==c)r=sI(c),Q[18]=c,Q[19]=r;else r=Q[19];let J0=r,n;if(Q[20]!==X||Q[21]!==p)n=null,Q[20]=X,Q[21]=p,Q[22]=n;else n=Q[22];let s=n,X0=Z?24:void 0,Y0;if(Q[23]!==X)Y0=MQ.jsxDEV(f,{children:MQ.jsxDEV(M,{dimColor:X,children:"! for bash mode"},void 0,!1,void 0,this)},void 0,!1,void 0,this),Q[23]=X,Q[24]=Y0;else Y0=Q[24];let G0;if(Q[25]!==X)G0=MQ.jsxDEV(f,{children:MQ.jsxDEV(M,{dimColor:X,children:"/ for commands"},void 0,!1,void 0,this)},void 0,!1,void 0,this),Q[25]=X,Q[26]=G0;else G0=Q[26];let j0;if(Q[27]!==X)j0=MQ.jsxDEV(f,{children:MQ.jsxDEV(M,{dimColor:X,children:"@ for file paths"},void 0,!1,void 0,this)},void 0,!1,void 0,this),Q[27]=X,Q[28]=j0;else j0=Q[28];let W0;if(Q[29]!==X)W0=MQ.jsxDEV(f,{children:MQ.jsxDEV(M,{dimColor:X,children:"& for background"},void 0,!1,void 0,this)},void 0,!1,void 0,this),Q[29]=X,Q[30]=W0;else W0=Q[30];let y0;if(Q[31]!==X)y0=MQ.jsxDEV(f,{children:MQ.jsxDEV(M,{dimColor:X,children:"/btw for side question"},void 0,!1,void 0,this)},void 0,!1,void 0,this),Q[31]=X,Q[32]=y0;else y0=Q[32];let V0;if(Q[33]!==X0||Q[34]!==Y0||Q[35]!==G0||Q[36]!==j0||Q[37]!==W0||Q[38]!==y0)V0=MQ.jsxDEV(f,{flexDirection:"column",width:X0,children:[Y0,G0,j0,W0,y0]},void 0,!0,void 0,this),Q[33]=X0,Q[34]=Y0,Q[35]=G0,Q[36]=j0,Q[37]=W0,Q[38]=y0,Q[39]=V0;else V0=Q[39];let Z0=Z?35:void 0,t;if(Q[40]!==X)t=MQ.jsxDEV(f,{children:MQ.jsxDEV(M,{dimColor:X,children:"double tap esc to clear input"},void 0,!1,void 0,this)},void 0,!1,void 0,this),Q[40]=X,Q[41]=t;else t=Q[41];let q0;if(Q[42]!==D||Q[43]!==X)q0=MQ.jsxDEV(f,{children:MQ.jsxDEV(M,{dimColor:X,children:[D," ","to auto-accept edits"]},void 0,!0,void 0,this)},void 0,!1,void 0,this),Q[42]=D,Q[43]=X,Q[44]=q0;else q0=Q[44];let Q0;if(Q[45]!==X||Q[46]!==z)Q0=MQ.jsxDEV(f,{children:MQ.jsxDEV(M,{dimColor:X,children:[z," for verbose output"]},void 0,!0,void 0,this)},void 0,!1,void 0,this),Q[45]=X,Q[46]=z,Q[47]=Q0;else Q0=Q[47];let a;if(Q[48]!==X||Q[49]!==B)a=MQ.jsxDEV(f,{children:MQ.jsxDEV(M,{dimColor:X,children:[B," to toggle tasks"]},void 0,!0,void 0,this)},void 0,!1,void 0,this),Q[48]=X,Q[49]=B,Q[50]=a;else a=Q[50];let O0;if(Q[51]===Symbol.for("react.memo_cache_sentinel"))O0=X4J(),Q[51]=O0;else O0=Q[51];let D0;if(Q[52]!==X)D0=MQ.jsxDEV(f,{children:MQ.jsxDEV(M,{dimColor:X,children:O0},void 0,!1,void 0,this)},void 0,!1,void 0,this),Q[52]=X,Q[53]=D0;else D0=Q[53];let F0;if(Q[54]!==Z0||Q[55]!==t||Q[56]!==q0||Q[57]!==Q0||Q[58]!==a||Q[59]!==D0||Q[60]!==s)F0=MQ.jsxDEV(f,{flexDirection:"column",width:Z0,children:[t,q0,Q0,a,s,D0]},void 0,!0,void 0,this),Q[54]=Z0,Q[55]=t,Q[56]=q0,Q[57]=Q0,Q[58]=a,Q[59]=D0,Q[60]=s,Q[61]=F0;else F0=Q[61];let I0;if(Q[62]!==X||Q[63]!==_)I0=MQ.jsxDEV(f,{children:MQ.jsxDEV(M,{dimColor:X,children:[_," to undo"]},void 0,!0,void 0,this)},void 0,!1,void 0,this),Q[62]=X,Q[63]=_,Q[64]=I0;else I0=Q[64];let U0;if(Q[65]!==X)U0=N8()!=="windows"&&MQ.jsxDEV(f,{children:MQ.jsxDEV(M,{dimColor:X,children:"ctrl + z to suspend"},void 0,!1,void 0,this)},void 0,!1,void 0,this),Q[65]=X,Q[66]=U0;else U0=Q[66];let P0;if(Q[67]!==X||Q[68]!==J0)P0=MQ.jsxDEV(f,{children:MQ.jsxDEV(M,{dimColor:X,children:[J0," to paste images"]},void 0,!0,void 0,this)},void 0,!1,void 0,this),Q[67]=X,Q[68]=J0,Q[69]=P0;else P0=Q[69];let $0;if(Q[70]!==X||Q[71]!==v)$0=MQ.jsxDEV(f,{children:MQ.jsxDEV(M,{dimColor:X,children:[v," to switch model"]},void 0,!0,void 0,this)},void 0,!1,void 0,this),Q[70]=X,Q[71]=v,Q[72]=$0;else $0=Q[72];let w0;if(Q[73]!==X||Q[74]!==S)w0=B9()&&GG()&&MQ.jsxDEV(f,{children:MQ.jsxDEV(M,{dimColor:X,children:[S," to toggle fast mode"]},void 0,!0,void 0,this)},void 0,!1,void 0,this),Q[73]=X,Q[74]=S,Q[75]=w0;else w0=Q[75];let E0;if(Q[76]!==X||Q[77]!==N)E0=MQ.jsxDEV(f,{children:MQ.jsxDEV(M,{dimColor:X,children:[N," to stash prompt"]},void 0,!0,void 0,this)},void 0,!1,void 0,this),Q[76]=X,Q[77]=N,Q[78]=E0;else E0=Q[78];let h0;if(Q[79]!==X||Q[80]!==u)h0=MQ.jsxDEV(f,{children:MQ.jsxDEV(M,{dimColor:X,children:[u," to edit in $EDITOR"]},void 0,!0,void 0,this)},void 0,!1,void 0,this),Q[79]=X,Q[80]=u,Q[81]=h0;else h0=Q[81];let u0;if(Q[82]!==X)u0=AM()&&MQ.jsxDEV(f,{children:MQ.jsxDEV(M,{dimColor:X,children:"/keybindings to customize"},void 0,!1,void 0,this)},void 0,!1,void 0,this),Q[82]=X,Q[83]=u0;else u0=Q[83];let B0;if(Q[84]!==I0||Q[85]!==U0||Q[86]!==P0||Q[87]!==$0||Q[88]!==w0||Q[89]!==E0||Q[90]!==h0||Q[91]!==u0)B0=MQ.jsxDEV(f,{flexDirection:"column",children:[I0,U0,P0,$0,w0,E0,h0,u0]},void 0,!0,void 0,this),Q[84]=I0,Q[85]=U0,Q[86]=P0,Q[87]=$0,Q[88]=w0,Q[89]=E0,Q[90]=h0,Q[91]=u0,Q[92]=B0;else B0=Q[92];let _0;if(Q[93]!==Y||Q[94]!==q||Q[95]!==V0||Q[96]!==F0||Q[97]!==B0)_0=MQ.jsxDEV(f,{paddingX:q,flexDirection:"row",gap:Y,children:[V0,F0,B0]},void 0,!0,void 0,this),Q[93]=Y,Q[94]=q,Q[95]=V0,Q[96]=F0,Q[97]=B0,Q[98]=_0;else _0=Q[98];return _0}var Y4J,MQ;var Pn1=I(()=>{a0();k9();hk();nz();$B();YZ0();Y4J=T(e0(),1),MQ=T(e(),1)});function K4J(){let J=q4J.c(2),Q;if(J[0]===Symbol.for("react.memo_cache_sentinel"))Q=Su.jsxDEV(f,{children:Su.jsxDEV(M,{children:"Glock understands your codebase, makes edits with your permission, and executes commands \u2014 right from your terminal."},void 0,!1,void 0,this)},void 0,!1,void 0,this),J[0]=Q;else Q=J[0];let X;if(J[1]===Symbol.for("react.memo_cache_sentinel"))X=Su.jsxDEV(f,{flexDirection:"column",paddingY:1,gap:1,children:[Q,Su.jsxDEV(f,{flexDirection:"column",children:[Su.jsxDEV(f,{children:Su.jsxDEV(M,{bold:!0,children:"Shortcuts"},void 0,!1,void 0,this)},void 0,!1,void 0,this),Su.jsxDEV(le0,{gap:2,fixedWidth:!0},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),J[1]=X;else X=J[1];return X}var q4J,Su;var G4J=I(()=>{a0();Pn1();q4J=T(e0(),1),Su=T(e(),1)});function W4J(J){let Q=z4J.c(44),{onClose:X,commands:Z}=J,{rows:Y,columns:q}=l8(),K=Math.floor(Y/2),G=oF(),z;if(Q[0]!==X)z=()=>X("Help dialog dismissed",{display:"system"}),Q[0]=X,Q[1]=z;else z=Q[1];let W=z,H;if(Q[2]===Symbol.for("react.memo_cache_sentinel"))H={context:"Help"},Q[2]=H;else H=Q[2];J8("help:dismiss",W,H);let B=B7(W),U=r9("help:dismiss","Help","esc"),F,_,O;if(Q[3]!==Z){let C=FI();_=Z.filter((k)=>C.has(k.name)&&!k.isHidden);let S;if(Q[7]===Symbol.for("react.memo_cache_sentinel"))S=[],Q[7]=S;else S=Q[7];F=S,O=Z.filter((k)=>!C.has(k.name)&&!k.isHidden),Q[3]=Z,Q[4]=F,Q[5]=_,Q[6]=O}else F=Q[4],_=Q[5],O=Q[6];let L=O,N;if(Q[8]===Symbol.for("react.memo_cache_sentinel"))N=K3.jsxDEV(_Y,{title:"general",children:K3.jsxDEV(K4J,{},void 0,!1,void 0,this)},"general",!1,void 0,this),Q[8]=N;else N=Q[8];let A;if(Q[9]!==F||Q[10]!==_||Q[11]!==W||Q[12]!==q||Q[13]!==L||Q[14]!==K){A=[N];let C;if(Q[16]!==_||Q[17]!==W||Q[18]!==q||Q[19]!==K)C=K3.jsxDEV(_Y,{title:"commands",children:K3.jsxDEV(bn1,{commands:_,maxHeight:K,columns:q,title:"Browse default commands:",onCancel:W},void 0,!1,void 0,this)},"commands",!1,void 0,this),Q[16]=_,Q[17]=W,Q[18]=q,Q[19]=K,Q[20]=C;else C=Q[20];A.push(C);let S;if(Q[21]!==W||Q[22]!==q||Q[23]!==L||Q[24]!==K)S=K3.jsxDEV(_Y,{title:"custom-commands",children:K3.jsxDEV(bn1,{commands:L,maxHeight:K,columns:q,title:"Browse custom commands:",emptyMessage:"No custom commands found",onCancel:W},void 0,!1,void 0,this)},"custom",!1,void 0,this),Q[21]=W,Q[22]=q,Q[23]=L,Q[24]=K,Q[25]=S;else S=Q[25];A.push(S),Q[9]=F,Q[10]=_,Q[11]=W,Q[12]=q,Q[13]=L,Q[14]=K,Q[15]=A}else A=Q[15];let R=G?void 0:K,D;if(Q[31]!==A)D=K3.jsxDEV(tw,{title:"Glock v0.1.17",color:"professionalBlue",defaultTab:"general",children:A},void 0,!1,void 0,this),Q[31]=A,Q[32]=D;else D=Q[32];let $;if(Q[33]===Symbol.for("react.memo_cache_sentinel"))$=K3.jsxDEV(f,{marginTop:1,children:K3.jsxDEV(M,{children:["For more help:"," ",K3.jsxDEV(zJ,{url:"https://docs.getglock.dev/en/overview"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this),Q[33]=$;else $=Q[33];let y;if(Q[34]!==U||Q[35]!==B.keyName||Q[36]!==B.pending)y=K3.jsxDEV(f,{marginTop:1,children:K3.jsxDEV(M,{dimColor:!0,children:B.pending?K3.jsxDEV(K3.Fragment,{children:["Press ",B.keyName," again to exit"]},void 0,!0,void 0,this):K3.jsxDEV(M,{italic:!0,children:[U," to cancel"]},void 0,!0,void 0,this)},void 0,!1,void 0,this)},void 0,!1,void 0,this),Q[34]=U,Q[35]=B.keyName,Q[36]=B.pending,Q[37]=y;else y=Q[37];let v;if(Q[38]!==D||Q[39]!==y)v=K3.jsxDEV(yX,{color:"professionalBlue",children:[D,$,y]},void 0,!0,void 0,this),Q[38]=D,Q[39]=y,Q[40]=v;else v=Q[40];let E;if(Q[41]!==R||Q[42]!==v)E=K3.jsxDEV(f,{flexDirection:"column",height:R,children:v},void 0,!1,void 0,this),Q[41]=R,Q[42]=v,Q[43]=E;else E=Q[43];return E}var z4J,K3;var H4J=I(()=>{Lq();nz();PY();rE();U9();a0();f6();t3();ew();Q4J();G4J();z4J=T(e0(),1),K3=T(e(),1)});var B4J={};X8(B4J,{call:()=>k4Q});var U4J,k4Q=async(J,{options:{commands:Q}})=>{return U4J.jsxDEV(W4J,{commands:Q,onClose:J},void 0,!1,void 0,this)};var F4J=I(()=>{H4J();U4J=T(e(),1)});var h4Q,En1;var _4J=I(()=>{h4Q={type:"local-jsx",name:"help",description:"Show help and available commands",load:()=>Promise.resolve().then(() => (F4J(),B4J))},En1=h4Q});function O4J(J){let Q=Tn1.c(9),{onComplete:X}=J,Z;if(Q[0]!==X)Z=async(H)=>{let B=H==="yes";q8((U)=>({...U,autoConnectIde:B,hasIdeAutoConnectDialogBeenShown:!0})),X()},Q[0]=X,Q[1]=Z;else Z=Q[1];let Y=Z,q;if(Q[2]===Symbol.for("react.memo_cache_sentinel"))q=[{label:"Yes",value:"yes"},{label:"No",value:"no"}],Q[2]=q;else q=Q[2];let K=q,G;if(Q[3]!==Y)G=qZ0.jsxDEV(Q8,{options:K,onChange:Y,defaultValue:"yes"},void 0,!1,void 0,this),Q[3]=Y,Q[4]=G;else G=Q[4];let z;if(Q[5]===Symbol.for("react.memo_cache_sentinel"))z=qZ0.jsxDEV(M,{dimColor:!0,children:"You can also configure this in /config or with the --ide flag"},void 0,!1,void 0,this),Q[5]=z;else z=Q[5];let W;if(Q[6]!==X||Q[7]!==G)W=qZ0.jsxDEV(D8,{title:"Do you wish to enable auto-connect to IDE?",color:"ide",onCancel:X,children:[G,z]},void 0,!0,void 0,this),Q[6]=X,Q[7]=G,Q[8]=W;else W=Q[8];return W}function L4J(){let J=L1();return!tz()&&J.autoConnectIde!==!0&&J.hasIdeAutoConnectDialogBeenShown!==!0}function V4J(J){let Q=Tn1.c(10),{onComplete:X}=J,Z;if(Q[0]!==X)Z=(B)=>{let U=B==="yes";if(U)q8(u4Q);X(U)},Q[0]=X,Q[1]=Z;else Z=Q[1];let Y=Z,q;if(Q[2]!==X)q=()=>{X(!1)},Q[2]=X,Q[3]=q;else q=Q[3];let K=q,G;if(Q[4]===Symbol.for("react.memo_cache_sentinel"))G=[{label:"No",value:"no"},{label:"Yes",value:"yes"}],Q[4]=G;else G=Q[4];let z=G,W;if(Q[5]!==Y)W=qZ0.jsxDEV(Q8,{options:z,onChange:Y,defaultValue:"no"},void 0,!1,void 0,this),Q[5]=Y,Q[6]=W;else W=Q[6];let H;if(Q[7]!==K||Q[8]!==W)H=qZ0.jsxDEV(D8,{title:"Do you wish to disable auto-connect to IDE?",subtitle:"You can also configure this in /config",onCancel:K,color:"ide",children:W},void 0,!1,void 0,this),Q[7]=K,Q[8]=W,Q[9]=H;else H=Q[9];return H}function u4Q(J){return{...J,autoConnectIde:!1}}function N4J(){let J=L1();return!tz()&&J.autoConnectIde===!0}var Tn1,qZ0;var w4J=I(()=>{a0();m8();b5();tX();M9();Tn1=T(e0(),1),qZ0=T(e(),1)});var R4J={};X8(R4J,{formatWorkspaceFolders:()=>Cn1,call:()=>o4Q});import*as A4J from"path";function g4Q(J){let Q=BN0.c(39),{availableIDEs:X,unavailableIDEs:Z,selectedIDE:Y,onClose:q,onSelect:K}=J,G;if(Q[0]!==Y?.port)G=Y?.port?.toString()??"None",Q[0]=Y?.port,Q[1]=G;else G=Q[1];let[z,W]=u2.useState(G),[H,B]=u2.useState(!1),[U,F]=u2.useState(!1),_;if(Q[2]!==X||Q[3]!==K)_=(k)=>{if(k!=="None"&&L4J())B(!0);else if(k==="None"&&N4J())F(!0);else K(X.find((h)=>h.port===parseInt(k)))},Q[2]=X,Q[3]=K,Q[4]=_;else _=Q[4];let O=_,L;if(Q[5]!==X)L=X.reduce(c4Q,{}),Q[5]=X,Q[6]=L;else L=Q[6];let N=L,A;if(Q[7]!==X||Q[8]!==N){let k;if(Q[10]!==N)k=(h)=>{let x=(N[h.name]||0)>1&&h.workspaceFolders.length>0;return{label:h.name,value:h.port.toString(),description:x?Cn1(h.workspaceFolders):void 0}},Q[10]=N,Q[11]=k;else k=Q[11];A=X.map(k).concat([{label:"None",value:"None",description:void 0}]),Q[7]=X,Q[8]=N,Q[9]=A}else A=Q[9];let R=A;if(H){let k;if(Q[12]!==O||Q[13]!==z)k=W5.jsxDEV(O4J,{onComplete:()=>O(z)},void 0,!1,void 0,this),Q[12]=O,Q[13]=z,Q[14]=k;else k=Q[14];return k}if(U){let k;if(Q[15]!==K)k=W5.jsxDEV(V4J,{onComplete:()=>{K(void 0)}},void 0,!1,void 0,this),Q[15]=K,Q[16]=k;else k=Q[16];return k}let D;if(Q[17]!==X.length)D=X.length===0&&W5.jsxDEV(M,{dimColor:!0,children:Q90()?"No available IDEs detected. Please install the plugin and restart your IDE.":"No available IDEs detected. Make sure your IDE has the Glock extension or plugin installed and is running."},void 0,!1,void 0,this),Q[17]=X.length,Q[18]=D;else D=Q[18];let $;if(Q[19]!==X.length||Q[20]!==O||Q[21]!==R||Q[22]!==z)$=X.length!==0&&W5.jsxDEV(Q8,{defaultValue:z,defaultFocusValue:z,options:R,onChange:(k)=>{W(k),O(k)}},void 0,!1,void 0,this),Q[19]=X.length,Q[20]=O,Q[21]=R,Q[22]=z,Q[23]=$;else $=Q[23];let y;if(Q[24]!==X)y=X.length!==0&&X.some(p4Q)&&W5.jsxDEV(f,{marginTop:1,children:W5.jsxDEV(M,{color:"warning",children:"Note: Only one Glock instance can be connected to VS Code at a time."},void 0,!1,void 0,this)},void 0,!1,void 0,this),Q[24]=X,Q[25]=y;else y=Q[25];let v;if(Q[26]!==X.length)v=X.length!==0&&!tz()&&W5.jsxDEV(f,{marginTop:1,children:W5.jsxDEV(M,{dimColor:!0,children:"Tip: You can enable auto-connect to IDE in /config or with the --ide flag"},void 0,!1,void 0,this)},void 0,!1,void 0,this),Q[26]=X.length,Q[27]=v;else v=Q[27];let E;if(Q[28]!==Z)E=Z.length>0&&W5.jsxDEV(f,{marginTop:1,flexDirection:"column",children:[W5.jsxDEV(M,{dimColor:!0,children:["Found ",Z.length," other running IDE(s). However, their workspace/project directories do not match the current cwd."]},void 0,!0,void 0,this),W5.jsxDEV(f,{marginTop:1,flexDirection:"column",children:Z.map(m4Q)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),Q[28]=Z,Q[29]=E;else E=Q[29];let C;if(Q[30]!==D||Q[31]!==$||Q[32]!==y||Q[33]!==v||Q[34]!==E)C=W5.jsxDEV(f,{flexDirection:"column",children:[D,$,y,v,E]},void 0,!0,void 0,this),Q[30]=D,Q[31]=$,Q[32]=y,Q[33]=v,Q[34]=E,Q[35]=C;else C=Q[35];let S;if(Q[36]!==q||Q[37]!==C)S=W5.jsxDEV(D8,{title:"Select IDE",subtitle:"Connect to an IDE for integrated development features.",onCancel:q,color:"ide",children:C},void 0,!1,void 0,this),Q[36]=q,Q[37]=C,Q[38]=S;else S=Q[38];return S}function m4Q(J,Q){return W5.jsxDEV(f,{paddingLeft:3,children:W5.jsxDEV(M,{dimColor:!0,children:["\u2022 ",J.name,": ",Cn1(J.workspaceFolders)]},void 0,!0,void 0,this)},Q,!1,void 0,this)}function p4Q(J){return J.name==="VS Code"||J.name==="Visual Studio Code"}function c4Q(J,Q){return J[Q.name]=(J[Q.name]||0)+1,J}async function d4Q(J,Q){let X=Q?.ide;if(!X||X.type!=="sse-ide"&&X.type!=="ws-ide")return null;for(let Z of J)if(Z.url===X.url)return Z;return null}function l4Q(J){let Q=BN0.c(18),{availableIDEs:X,onSelectIDE:Z,onDone:Y}=J,q;if(Q[0]!==X[0]?.port)q=X[0]?.port?.toString()??"",Q[0]=X[0]?.port,Q[1]=q;else q=Q[1];let[K,G]=u2.useState(q),z;if(Q[2]!==X||Q[3]!==Z)z=(N)=>{let A=X.find((R)=>R.port===parseInt(N));Z(A)},Q[2]=X,Q[3]=Z,Q[4]=z;else z=Q[4];let W=z,H;if(Q[5]!==X)H=X.map(i4Q),Q[5]=X,Q[6]=H;else H=Q[6];let B=H,U;if(Q[7]!==Y)U=function(){Y("IDE selection cancelled",{display:"system"})},Q[7]=Y,Q[8]=U;else U=Q[8];let F=U,_;if(Q[9]!==W)_=(N)=>{G(N),W(N)},Q[9]=W,Q[10]=_;else _=Q[10];let O;if(Q[11]!==B||Q[12]!==K||Q[13]!==_)O=W5.jsxDEV(Q8,{defaultValue:K,defaultFocusValue:K,options:B,onChange:_},void 0,!1,void 0,this),Q[11]=B,Q[12]=K,Q[13]=_,Q[14]=O;else O=Q[14];let L;if(Q[15]!==F||Q[16]!==O)L=W5.jsxDEV(D8,{title:"Select an IDE to open the project",onCancel:F,color:"ide",children:O},void 0,!1,void 0,this),Q[15]=F,Q[16]=O,Q[17]=L;else L=Q[17];return L}function i4Q(J){return{label:J.name,value:J.port.toString()}}function n4Q(J){let Q=BN0.c(15),{runningIDEs:X,onSelectIDE:Z,onDone:Y}=J,[q,K]=u2.useState(X[0]??""),G;if(Q[0]!==Z)G=(L)=>{Z(L)},Q[0]=Z,Q[1]=G;else G=Q[1];let z=G,W;if(Q[2]!==X)W=X.map(r4Q),Q[2]=X,Q[3]=W;else W=Q[3];let H=W,B;if(Q[4]!==Y)B=function(){Y("IDE selection cancelled",{display:"system"})},Q[4]=Y,Q[5]=B;else B=Q[5];let U=B,F;if(Q[6]!==z)F=(L)=>{K(L),z(L)},Q[6]=z,Q[7]=F;else F=Q[7];let _;if(Q[8]!==H||Q[9]!==q||Q[10]!==F)_=W5.jsxDEV(Q8,{defaultFocusValue:q,options:H,onChange:F},void 0,!1,void 0,this),Q[8]=H,Q[9]=q,Q[10]=F,Q[11]=_;else _=Q[11];let O;if(Q[12]!==U||Q[13]!==_)O=W5.jsxDEV(D8,{title:"Select IDE to install extension",onCancel:U,color:"ide",children:_},void 0,!1,void 0,this),Q[12]=U,Q[13]=_,Q[14]=O;else O=Q[14];return O}function r4Q(J){return{label:Vq(J),value:J}}function a4Q(J){let Q=BN0.c(4),{ide:X,onInstall:Z}=J,Y,q;if(Q[0]!==X||Q[1]!==Z)Y=()=>{Z(X)},q=[X,Z],Q[0]=X,Q[1]=Z,Q[2]=Y,Q[3]=q;else Y=Q[2],q=Q[3];return u2.useEffect(Y,q),null}async function o4Q(J,Q,X){l("jarvis_api_error",{});let{options:{dynamicMcpConfig:Z},onChangeDynamicMcpConfig:Y}=Q;if(X?.trim()==="open"){let W=yq(),H=W?W.worktreePath:B1(),U=(await X90(!0)).filter((F)=>F.isValid);if(U.length===0)return J("No IDEs with Glock extension detected."),null;return W5.jsxDEV(l4Q,{availableIDEs:U,onSelectIDE:async(F)=>{if(!F){J("No IDE selected.");return}if(F.name.toLowerCase().includes("vscode")||F.name.toLowerCase().includes("cursor")||F.name.toLowerCase().includes("windsurf")){let{code:_}=await Z8("code",[H]);if(_===0)J(`Opened ${W?"worktree":"project"} in ${_1.bold(F.name)}`);else J(`Failed to open in ${F.name}. Try opening manually: ${H}`)}else if(Q90())J(`Please open the ${W?"worktree":"project"} manually in ${_1.bold(F.name)}: ${H}`);else J(`Please open the ${W?"worktree":"project"} manually in ${_1.bold(F.name)}: ${H}`)},onDone:()=>{J("Exited without opening IDE",{display:"system"})}},void 0,!1,void 0,this)}let q=await X90(!0);if(q.length===0&&Q.onInstallIDEExtension&&!tz()){let W=await $f1(),H=(B)=>{if(Q.onInstallIDEExtension)if(Q.onInstallIDEExtension(B),jM(B))J(`Installed plugin to ${_1.bold(Vq(B))}
|
|
5169
5169
|
Please ${_1.bold("restart your IDE")} completely for it to take effect`);else J(`Installed extension to ${_1.bold(Vq(B))}`)};if(W.length>1)return W5.jsxDEV(n4Q,{runningIDEs:W,onSelectIDE:H,onDone:()=>{J("No IDE selected.",{display:"system"})}},void 0,!1,void 0,this);else if(W.length===1)return W5.jsxDEV(a4Q,{ide:W[0],onInstall:H},void 0,!1,void 0,this)}let K=q.filter((W)=>W.isValid),G=q.filter((W)=>!W.isValid),z=await d4Q(K,Z);return W5.jsxDEV(t4Q,{availableIDEs:K,unavailableIDEs:G,currentIDE:z,dynamicMcpConfig:Z,onChangeDynamicMcpConfig:Y,onDone:J},void 0,!1,void 0,this)}function t4Q({availableIDEs:J,unavailableIDEs:Q,currentIDE:X,dynamicMcpConfig:Z,onChangeDynamicMcpConfig:Y,onDone:q}){let[K,G]=u2.useState(null),z=O1((U)=>U.mcp.clients.find((F)=>F.name==="ide")),W=T6(),H=u2.useRef(!0);u2.useEffect(()=>{if(!K)return;if(H.current){H.current=!1;return}if(!z||z.type==="pending")return;if(z.type==="connected")q(`Connected to ${K.name}.`);else if(z.type==="failed")q(`Failed to connect to ${K.name}.`)},[z,K,q]),u2.useEffect(()=>{if(!K)return;let U=setTimeout(q,s4Q,`Connection to ${K.name} timed out.`);return()=>clearTimeout(U)},[K,q]);let B=u2.useCallback((U)=>{if(!Y){q("Error connecting to IDE.");return}let F={...Z||{}};if(X)delete F.ide;if(!U){if(z&&z.type==="connected"&&X)z.client.onclose=()=>{},lB("ide",z.config),W((O)=>({...O,mcp:{...O.mcp,clients:O.mcp.clients.filter((L)=>L.name!=="ide"),tools:O.mcp.tools.filter((L)=>!L.name?.startsWith("mcp__ide__")),commands:O.mcp.commands.filter((L)=>!L.name?.startsWith("mcp__ide__"))}}));Y(F),q(X?`Disconnected from ${X.name}.`:"No IDE selected.");return}let _=U.url;F.ide={type:_.startsWith("ws:")?"ws-ide":"sse-ide",url:_,ideName:U.name,authToken:U.authToken,ideRunningInWindows:U.ideRunningInWindows,scope:"dynamic"},H.current=!0,G(U),Y(F)},[Z,X,z,W,Y,q]);if(K)return W5.jsxDEV(M,{dimColor:!0,children:["Connecting to ",K.name,"\u2026"]},void 0,!0,void 0,this);return W5.jsxDEV(g4Q,{availableIDEs:J,unavailableIDEs:Q,selectedIDE:X,onClose:()=>q("IDE selection cancelled",{display:"system"}),onSelect:B},void 0,!1,void 0,this)}function Cn1(J,Q=100){if(J.length===0)return"";let X=B1(),Z=J.slice(0,2),Y=J.length>2,q=Y?3:0,K=(Z.length-1)*2,G=Q-K-q,z=Math.floor(G/Z.length),W=X.normalize("NFC"),B=Z.map((U)=>{let F=U.normalize("NFC");if(F.startsWith(W+A4J.sep))U=F.slice(W.length+1);if(U.length<=z)return U;return"\u2026"+U.slice(-(z-1))}).join(", ");if(Y)B+=", \u2026";return B}var BN0,u2,W5,s4Q=35000;var M4J=I(()=>{k7();D1();tX();M9();w4J();a0();dB();W6();Z6();T9();b5();__();BN0=T(e0(),1),u2=T(J1(),1),W5=T(e(),1)});var e4Q,D4J;var $4J=I(()=>{e4Q={type:"local-jsx",name:"ide",description:"Manage IDE integrations and show status",argumentHint:"[open]",load:()=>Promise.resolve().then(() => (M4J(),R4J))},D4J=e4Q});var QYQ=`Please analyze this codebase and create a GLOCK.md file, which will be given to future instances of Glock to operate in this repository.
|
|
5170
5170
|
|
|
5171
5171
|
What to add:
|
|
@@ -5479,7 +5479,7 @@ Minimum version required to store current data is: `+q+`.
|
|
|
5479
5479
|
`+K,B=K;for(let U=-1;U<Z+1;U+=2){for(let F=-1;F<Z;F++)B+=W[MKJ(Y,Z,F,U)];B+=W[MKJ(Y,Z,Z,U)]+H}if(B+="\x1B[0m",typeof X==="function")X(null,B);return B}});var $KJ=o((pzQ)=>{var gzQ=AKJ(),mzQ=DKJ();pzQ.render=function(J,Q,X){if(Q&&Q.small)return mzQ.render(J,Q,X);return gzQ.render(J,Q,X)}});var Za1=o((izQ)=>{var dzQ=vN0();function jKJ(J,Q){let X=J.a/255,Z=Q+'="'+J.hex+'"';return X<1?Z+" "+Q+'-opacity="'+X.toFixed(2).slice(1)+'"':Z}function Xa1(J,Q,X){let Z=J+Q;if(typeof X<"u")Z+=" "+X;return Z}function lzQ(J,Q,X){let Z="",Y=0,q=!1,K=0;for(let G=0;G<J.length;G++){let z=Math.floor(G%Q),W=Math.floor(G/Q);if(!z&&!q)q=!0;if(J[G]){if(K++,!(G>0&&z>0&&J[G-1]))Z+=q?Xa1("M",z+X,0.5+W+X):Xa1("m",Y,0),Y=0,q=!1;if(!(z+1<Q&&J[G+1]))Z+=Xa1("h",K),K=0}else Y++}return Z}izQ.render=function(Q,X,Z){let Y=dzQ.getOptions(X),q=Q.modules.size,K=Q.modules.data,G=q+Y.margin*2,z=!Y.color.light.a?"":"<path "+jKJ(Y.color.light,"fill")+' d="M0 0h'+G+"v"+G+'H0z"/>',W="<path "+jKJ(Y.color.dark,"stroke")+' d="'+lzQ(K,q,Y.margin)+'"/>',H='viewBox="0 0 '+G+" "+G+'"',U='<svg xmlns="http://www.w3.org/2000/svg" '+(!Y.width?"":'width="'+Y.width+'" height="'+Y.width+'" ')+H+' shape-rendering="crispEdges">'+z+W+`</svg>
|
|
5480
5480
|
`;if(typeof Z==="function")Z(null,U);return U}});var yKJ=o((azQ)=>{var rzQ=Za1();azQ.render=rzQ.render;azQ.renderToFile=function(Q,X,Z,Y){if(typeof Y>"u")Y=Z,Z=void 0;let q=b1("fs"),G='<?xml version="1.0" encoding="utf-8"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">'+azQ.render(X,Z);q.writeFile(Q,G,Y)}});var PKJ=o((ezQ)=>{var Ya1=vN0();function szQ(J,Q,X){if(J.clearRect(0,0,Q.width,Q.height),!Q.style)Q.style={};Q.height=X,Q.width=X,Q.style.height=X+"px",Q.style.width=X+"px"}function tzQ(){try{return document.createElement("canvas")}catch(J){throw Error("You need to specify a canvas element")}}ezQ.render=function(Q,X,Z){let Y=Z,q=X;if(typeof Y>"u"&&(!X||!X.getContext))Y=X,X=void 0;if(!X)q=tzQ();Y=Ya1.getOptions(Y);let K=Ya1.getImageWidth(Q.modules.size,Y),G=q.getContext("2d"),z=G.createImageData(K,K);return Ya1.qrToImageData(z.data,Q,Y),szQ(G,q,K),G.putImageData(z,0,0),q};ezQ.renderToDataURL=function(Q,X,Z){let Y=Z;if(typeof Y>"u"&&(!X||!X.getContext))Y=X,X=void 0;if(!Y)Y={};let q=ezQ.render(Q,X,Y),K=Y.type||"image/png",G=Y.rendererOpts||{};return q.toDataURL(K,G.quality)}});var TKJ=o((Z3Q)=>{var Q3Q=Or1(),qa1=ur1(),EKJ=PKJ(),X3Q=Za1();function Ka1(J,Q,X,Z,Y){let q=[].slice.call(arguments,1),K=q.length,G=typeof q[K-1]==="function";if(!G&&!Q3Q())throw Error("Callback required as last argument");if(G){if(K<2)throw Error("Too few arguments provided");if(K===2)Y=X,X=Q,Q=Z=void 0;else if(K===3)if(Q.getContext&&typeof Y>"u")Y=Z,Z=void 0;else Y=Z,Z=X,X=Q,Q=void 0}else{if(K<1)throw Error("Too few arguments provided");if(K===1)X=Q,Q=Z=void 0;else if(K===2&&!Q.getContext)Z=X,X=Q,Q=void 0;return new Promise(function(z,W){try{let H=qa1.create(X,Z);z(J(H,Q,Z))}catch(H){W(H)}})}try{let z=qa1.create(X,Z);Y(null,J(z,Q,Z))}catch(z){Y(z)}}Z3Q.create=qa1.create;Z3Q.toCanvas=Ka1.bind(null,EKJ.render);Z3Q.toDataURL=Ka1.bind(null,EKJ.renderToDataURL);Z3Q.toString=Ka1.bind(null,function(J,Q,X){return X3Q.render(J,X)})});function U3Q(J,Q,X){if(typeof J>"u")throw Error("String required as first argument");if(typeof X>"u")X=Q,Q={};if(typeof X!=="function")if(!z3Q())throw Error("Callback required as last argument");else Q=X||{},X=null;return{opts:Q,cb:X}}function F3Q(J){switch(J){case"svg":return B3Q;case"terminal":return H3Q;case"utf8":default:return W3Q}}function _3Q(J,Q,X){if(!X.cb)return new Promise(function(Z,Y){try{let q=Ga1.create(Q,X.opts);return J(q,X.opts,function(K,G){return K?Y(K):Z(G)})}catch(q){Y(q)}});try{let Z=Ga1.create(Q,X.opts);return J(Z,X.opts,X.cb)}catch(Z){X.cb(Z)}}var z3Q,Ga1,oBY,W3Q,H3Q,B3Q,O3Q,L3Q,bZ0=function(Q,X,Z){let Y=U3Q(Q,X,Z),q=Y.opts?Y.opts.type:void 0,K=F3Q(q);return _3Q(K.render,Q,Y)};var za1=I(()=>{z3Q=Or1(),Ga1=ur1(),oBY=VKJ(),W3Q=wKJ(),H3Q=$KJ(),B3Q=yKJ();O3Q=Ga1.create,L3Q=TKJ().toCanvas});var vKJ={};X8(vKJ,{call:()=>M3Q});function V3Q(J){let Q=CKJ.c(52),{onDone:X}=J,[Z,Y]=fN0.useState("ios"),q;if(Q[0]===Symbol.for("react.memo_cache_sentinel"))q={ios:"",android:""},Q[0]=q;else q=Q[0];let[K,G]=fN0.useState(q),{url:z}=Wa1[Z],W=K[Z],H,B;if(Q[1]===Symbol.for("react.memo_cache_sentinel"))H=()=>{(async function(){let[y0,V0]=await Promise.all([bZ0(Wa1.ios.url,{type:"utf8",errorCorrectionLevel:"L"}),bZ0(Wa1.android.url,{type:"utf8",errorCorrectionLevel:"L"})]);G({ios:y0,android:V0})})().catch(R3Q)},B=[],Q[1]=H,Q[2]=B;else H=Q[1],B=Q[2];fN0.useEffect(H,B);let U;if(Q[3]!==X)U=()=>{X()},Q[3]=X,Q[4]=U;else U=Q[4];let F=U,_;if(Q[5]===Symbol.for("react.memo_cache_sentinel"))_={context:"Confirmation"},Q[5]=_;else _=Q[5];J8("confirm:no",F,_);let O;if(Q[6]!==X)O=function(W0){if(W0.key==="q"||W0.ctrl&&W0.key==="c"){W0.preventDefault(),X();return}if(W0.key==="tab"||W0.key==="left"||W0.key==="right")W0.preventDefault(),Y(A3Q)},Q[6]=X,Q[7]=O;else O=Q[7];let L=O,N,A,R,D,$,y,v,E,C;if(Q[8]!==L||Q[9]!==W){let j0=W.split(`
|
|
5481
5481
|
`).filter(w3Q);if(A=yX,N=f,v="column",E=0,C=!0,R=L,Q[19]===Symbol.for("react.memo_cache_sentinel"))D=_U.jsxDEV(M,{children:" "},void 0,!1,void 0,this),$=_U.jsxDEV(M,{children:" "},void 0,!1,void 0,this),Q[19]=D,Q[20]=$;else D=Q[19],$=Q[20];y=j0.map(N3Q),Q[8]=L,Q[9]=W,Q[10]=N,Q[11]=A,Q[12]=R,Q[13]=D,Q[14]=$,Q[15]=y,Q[16]=v,Q[17]=E,Q[18]=C}else N=Q[10],A=Q[11],R=Q[12],D=Q[13],$=Q[14],y=Q[15],v=Q[16],E=Q[17],C=Q[18];let S,k;if(Q[21]===Symbol.for("react.memo_cache_sentinel"))S=_U.jsxDEV(M,{children:" "},void 0,!1,void 0,this),k=_U.jsxDEV(M,{children:" "},void 0,!1,void 0,this),Q[21]=S,Q[22]=k;else S=Q[21],k=Q[22];let h=Z==="ios",u=Z==="ios",x;if(Q[23]!==h||Q[24]!==u)x=_U.jsxDEV(M,{bold:h,underline:u,children:"iOS"},void 0,!1,void 0,this),Q[23]=h,Q[24]=u,Q[25]=x;else x=Q[25];let m;if(Q[26]===Symbol.for("react.memo_cache_sentinel"))m=_U.jsxDEV(M,{dimColor:!0,children:" / "},void 0,!1,void 0,this),Q[26]=m;else m=Q[26];let p=Z==="android",c=Z==="android",r;if(Q[27]!==p||Q[28]!==c)r=_U.jsxDEV(M,{bold:p,underline:c,children:"Android"},void 0,!1,void 0,this),Q[27]=p,Q[28]=c,Q[29]=r;else r=Q[29];let J0;if(Q[30]!==x||Q[31]!==r)J0=_U.jsxDEV(M,{children:[x,m,r]},void 0,!0,void 0,this),Q[30]=x,Q[31]=r,Q[32]=J0;else J0=Q[32];let n;if(Q[33]===Symbol.for("react.memo_cache_sentinel"))n=_U.jsxDEV(M,{dimColor:!0,children:"(tab to switch, esc to close)"},void 0,!1,void 0,this),Q[33]=n;else n=Q[33];let s;if(Q[34]!==J0)s=_U.jsxDEV(f,{flexDirection:"row",gap:2,children:[J0,n]},void 0,!0,void 0,this),Q[34]=J0,Q[35]=s;else s=Q[35];let X0;if(Q[36]!==z)X0=_U.jsxDEV(M,{dimColor:!0,children:z},void 0,!1,void 0,this),Q[36]=z,Q[37]=X0;else X0=Q[37];let Y0;if(Q[38]!==N||Q[39]!==R||Q[40]!==D||Q[41]!==$||Q[42]!==y||Q[43]!==s||Q[44]!==X0||Q[45]!==v||Q[46]!==E||Q[47]!==C)Y0=_U.jsxDEV(N,{flexDirection:v,tabIndex:E,autoFocus:C,onKeyDown:R,children:[D,$,y,S,k,s,X0]},void 0,!0,void 0,this),Q[38]=N,Q[39]=R,Q[40]=D,Q[41]=$,Q[42]=y,Q[43]=s,Q[44]=X0,Q[45]=v,Q[46]=E,Q[47]=C,Q[48]=Y0;else Y0=Q[48];let G0;if(Q[49]!==A||Q[50]!==Y0)G0=_U.jsxDEV(A,{children:Y0},void 0,!1,void 0,this),Q[49]=A,Q[50]=Y0,Q[51]=G0;else G0=Q[51];return G0}function N3Q(J,Q){return _U.jsxDEV(M,{children:J},Q,!1,void 0,this)}function w3Q(J){return J.length>0}function A3Q(J){return J==="ios"?"android":"ios"}function R3Q(){}async function M3Q(J){return _U.jsxDEV(V3Q,{onDone:J},void 0,!1,void 0,this)}var CKJ,fN0,_U,Wa1;var fKJ=I(()=>{za1();t3();a0();f6();CKJ=T(e0(),1),fN0=T(J1(),1),_U=T(e(),1),Wa1={ios:{url:"https://apps.apple.com/app/glock"},android:{url:"https://play.google.com/store/apps/details?id=dev.getglock"}}});var D3Q,Ha1;var SKJ=I(()=>{D3Q={type:"local-jsx",name:"mobile",aliases:["ios","android"],description:"Show QR code to download the Glock mobile app",load:()=>Promise.resolve().then(() => (fKJ(),vKJ))},Ha1=D3Q});var xKJ;var kKJ=I(()=>{xKJ={isEnabled:()=>!1,isHidden:!0,name:"stub"}});import{mkdir as hKJ,readFile as $3Q,writeFile as uKJ}from"fs/promises";import{dirname as gKJ,join as j3Q}from"path";function Ua1(){return j3Q(L8(),"cache","changelog.md")}async function pKJ(){let J=L1();if(!J.cachedChangelog)return;let Q=Ua1();try{await hKJ(gKJ(Q),{recursive:!0}),await uKJ(Q,J.cachedChangelog,{encoding:"utf-8",flag:"wx"})}catch{}q8(({cachedChangelog:X,...Z})=>Z)}async function Fa1(){if(x6())return;if(zB())return;let J=await y8.get(y3Q);if(J.status===200){let Q=J.data;if(Q===yr)return;let X=Ua1();await hKJ(gKJ(X),{recursive:!0}),await uKJ(X,Q,{encoding:"utf-8"}),yr=Q;let Z=Date.now();q8((Y)=>({...Y,changelogLastFetched:Z}))}}async function v01(){if(yr!==null)return yr;let J=Ua1();try{let Q=await $3Q(J,"utf-8");return yr=Q,Q}catch{return yr="",""}}function _a1(){return yr??""}function Oa1(J){try{if(!J)return{};let Q={},X=J.split(/^## /gm).slice(1);for(let Z of X){let Y=Z.trim().split(`
|
|
5482
|
-
`);if(Y.length===0)continue;let q=Y[0];if(!q)continue;let K=q.split(" - ")[0]?.trim()||"";if(!K)continue;let G=Y.slice(1).filter((z)=>z.trim().startsWith("- ")).map((z)=>z.trim().substring(2).trim()).filter(Boolean);if(G.length>0)Q[K]=G}return Q}catch(Q){return H0(R8(Q)),{}}}function b3Q(J,Q,X=_a1()){try{let Z=Oa1(X),Y=Ba1.coerce(J),q=Q?Ba1.coerce(Q):null;if(!q||Y&&DF(Y.version,q.version))return Object.entries(Z).filter(([K])=>!q||DF(K,q.version)).sort(([K],[G])=>DF(K,G)?-1:1).flatMap(([K,G])=>G).filter(Boolean).slice(0,I3Q)}catch(Z){return H0(R8(Z)),[]}return[]}function La1(J=_a1()){try{let Q=Oa1(J);return Object.keys(Q).sort((Z,Y)=>DF(Z,Y)?1:-1).map((Z)=>{let Y=Q[Z];if(!Y||Y.length===0)return null;let q=Y.filter(Boolean);if(q.length===0)return null;return[Z,q]}).filter((Z)=>Z!==null)}catch(Q){return H0(R8(Q)),[]}}async function cKJ(J,Q="0.1.
|
|
5482
|
+
`);if(Y.length===0)continue;let q=Y[0];if(!q)continue;let K=q.split(" - ")[0]?.trim()||"";if(!K)continue;let G=Y.slice(1).filter((z)=>z.trim().startsWith("- ")).map((z)=>z.trim().substring(2).trim()).filter(Boolean);if(G.length>0)Q[K]=G}return Q}catch(Q){return H0(R8(Q)),{}}}function b3Q(J,Q,X=_a1()){try{let Z=Oa1(X),Y=Ba1.coerce(J),q=Q?Ba1.coerce(Q):null;if(!q||Y&&DF(Y.version,q.version))return Object.entries(Z).filter(([K])=>!q||DF(K,q.version)).sort(([K],[G])=>DF(K,G)?-1:1).flatMap(([K,G])=>G).filter(Boolean).slice(0,I3Q)}catch(Z){return H0(R8(Z)),[]}return[]}function La1(J=_a1()){try{let Q=Oa1(J);return Object.keys(Q).sort((Z,Y)=>DF(Z,Y)?1:-1).map((Z)=>{let Y=Q[Z];if(!Y||Y.length===0)return null;let q=Y.filter(Boolean);if(q.length===0)return null;return[Z,q]}).filter((Z)=>Z!==null)}catch(Q){return H0(R8(Q)),[]}}async function cKJ(J,Q="0.1.17"){if(process.env.USER_TYPE==="ant"){let q=MACRO.VERSION_CHANGELOG;if(q){let K=q.trim().split(`
|
|
5483
5483
|
`).filter(Boolean);return{hasReleaseNotes:K.length>0,releaseNotes:K}}return{hasReleaseNotes:!1,releaseNotes:[]}}let X=await v01();if(J!==Q||!X)Fa1().catch((q)=>H0(R8(q)));let Z=b3Q(Q,J,X);return{hasReleaseNotes:Z.length>0,releaseNotes:Z}}var Ba1,I3Q=5,mKJ="https://github.com/glock-ai/glock/blob/main/CHANGELOG.md",y3Q="https://raw.githubusercontent.com/glock-ai/glock/refs/heads/main/CHANGELOG.md",yr=null;var SN0=I(()=>{JX();N1();m8();t1();T1();M1();Ba1=T(b10(),1)});var lKJ={};X8(lKJ,{call:()=>P3Q});function dKJ(J){return J.map(([Q,X])=>{let Z=`Version ${Q}:`,Y=X.map((q)=>`\xB7 ${q}`).join(`
|
|
5484
5484
|
`);return`${Z}
|
|
5485
5485
|
${Y}`}).join(`
|
|
@@ -5774,7 +5774,7 @@ Remember: The agents you create should be autonomous experts capable of handling
|
|
|
5774
5774
|
`+Cd(O,_):()=>Y.systemPrompt}:void 0}),Q()},J[3]=Q,J[4]=Z,J[5]=Y.finalAgent,J[6]=Y.systemPrompt,J[7]=W;else W=J[7];let H=W,B;if(J[8]===Symbol.for("react.memo_cache_sentinel"))B=qg.jsxDEV(V8,{children:[qg.jsxDEV(p1,{shortcut:"\u2191\u2193",action:"navigate"},void 0,!1,void 0,this),qg.jsxDEV(p1,{shortcut:"Enter",action:"select"},void 0,!1,void 0,this),qg.jsxDEV(s1,{action:"confirm:no",context:"Confirmation",fallback:"Esc",description:"go back"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),J[8]=B;else B=J[8];let U;if(J[9]!==X||J[10]!==H||J[11]!==z)U=qg.jsxDEV(bq,{subtitle:"Configure agent memory",footerText:B,children:qg.jsxDEV(f,{children:qg.jsxDEV(Q8,{options:z,onChange:H,onCancel:X},"memory-select",!1,void 0,this)},void 0,!1,void 0,this)},void 0,!1,void 0,this),J[9]=X,J[10]=H,J[11]=z,J[12]=U;else U=J[12];return U}var KUJ,qg;var zUJ=I(()=>{a0();f6();t5();SR();U7();AQ();R9();g9();j_();nL();KUJ=T(e0(),1),qg=T(e(),1)});function HUJ(){let J=WUJ.c(11),{goNext:Q,goBack:X,updateWizardData:Z,goToStep:Y}=kY(),q;if(J[0]===Symbol.for("react.memo_cache_sentinel"))q=[{label:"Generate with Glock (recommended)",value:"generate"},{label:"Manual configuration",value:"manual"}],J[0]=q;else q=J[0];let K=q,G;if(J[1]===Symbol.for("react.memo_cache_sentinel"))G=Kg.jsxDEV(V8,{children:[Kg.jsxDEV(p1,{shortcut:"\u2191\u2193",action:"navigate"},void 0,!1,void 0,this),Kg.jsxDEV(p1,{shortcut:"Enter",action:"select"},void 0,!1,void 0,this),Kg.jsxDEV(s1,{action:"confirm:no",context:"Confirmation",fallback:"Esc",description:"go back"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),J[1]=G;else G=J[1];let z;if(J[2]!==Q||J[3]!==Y||J[4]!==Z)z=(B)=>{let U=B;if(Z({method:U,wasGenerated:U==="generate"}),U==="generate")Q();else Y(3)},J[2]=Q,J[3]=Y,J[4]=Z,J[5]=z;else z=J[5];let W;if(J[6]!==X)W=()=>X(),J[6]=X,J[7]=W;else W=J[7];let H;if(J[8]!==z||J[9]!==W)H=Kg.jsxDEV(bq,{subtitle:"Creation method",footerText:G,children:Kg.jsxDEV(f,{children:Kg.jsxDEV(Q8,{options:K,onChange:z,onCancel:W},"method-select",!1,void 0,this)},void 0,!1,void 0,this)},void 0,!1,void 0,this),J[8]=z,J[9]=W,J[10]=H;else H=J[10];return H}var WUJ,Kg;var BUJ=I(()=>{a0();U7();AQ();R9();g9();j_();nL();WUJ=T(e0(),1),Kg=T(e(),1)});function FUJ(){let J=UUJ.c(8),{goNext:Q,goBack:X,updateWizardData:Z,wizardData:Y}=kY(),q;if(J[0]!==Q||J[1]!==Z)q=(W)=>{Z({selectedModel:W}),Q()},J[0]=Q,J[1]=Z,J[2]=q;else q=J[2];let K=q,G;if(J[3]===Symbol.for("react.memo_cache_sentinel"))G=xr.jsxDEV(V8,{children:[xr.jsxDEV(p1,{shortcut:"\u2191\u2193",action:"navigate"},void 0,!1,void 0,this),xr.jsxDEV(p1,{shortcut:"Enter",action:"select"},void 0,!1,void 0,this),xr.jsxDEV(s1,{action:"confirm:no",context:"Confirmation",fallback:"Esc",description:"go back"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),J[3]=G;else G=J[3];let z;if(J[4]!==X||J[5]!==K||J[6]!==Y.selectedModel)z=xr.jsxDEV(bq,{subtitle:"Select model",footerText:G,children:xr.jsxDEV(A11,{initialModel:Y.selectedModel,onComplete:K,onCancel:X},void 0,!1,void 0,this)},void 0,!1,void 0,this),J[4]=X,J[5]=K,J[6]=Y.selectedModel,J[7]=z;else z=J[7];return z}var UUJ,xr;var _UJ=I(()=>{U7();R9();g9();j_();nL();ho1();UUJ=T(e0(),1),xr=T(e(),1)});function LUJ(){let J=OUJ.c(20),{goNext:Q,goBack:X,updateWizardData:Z,wizardData:Y}=kY(),[q,K]=j11.useState(Y.systemPrompt||""),[G,z]=j11.useState(q.length),[W,H]=j11.useState(null),B;if(J[0]===Symbol.for("react.memo_cache_sentinel"))B={context:"Settings"},J[0]=B;else B=J[0];J8("confirm:no",X,B);let U;if(J[1]!==q)U=async()=>{let v=await R_(q);if(v.content!==null)K(v.content),z(v.content.length)},J[1]=q,J[2]=U;else U=J[2];let F=U,_;if(J[3]===Symbol.for("react.memo_cache_sentinel"))_={context:"Chat"},J[3]=_;else _=J[3];J8("chat:externalEditor",F,_);let O;if(J[4]!==Q||J[5]!==q||J[6]!==Z)O=()=>{let v=q.trim();if(!v){H("System prompt is required");return}H(null),Z({systemPrompt:v}),Q()},J[4]=Q,J[5]=q,J[6]=Z,J[7]=O;else O=J[7];let L=O,N;if(J[8]===Symbol.for("react.memo_cache_sentinel"))N=I_.jsxDEV(V8,{children:[I_.jsxDEV(p1,{shortcut:"Type",action:"enter text"},void 0,!1,void 0,this),I_.jsxDEV(p1,{shortcut:"Enter",action:"continue"},void 0,!1,void 0,this),I_.jsxDEV(s1,{action:"chat:externalEditor",context:"Chat",fallback:"ctrl+g",description:"open in editor"},void 0,!1,void 0,this),I_.jsxDEV(s1,{action:"confirm:no",context:"Settings",fallback:"Esc",description:"go back"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),J[8]=N;else N=J[8];let A,R;if(J[9]===Symbol.for("react.memo_cache_sentinel"))A=I_.jsxDEV(M,{children:"Enter the system prompt for your agent:"},void 0,!1,void 0,this),R=I_.jsxDEV(M,{dimColor:!0,children:"Be comprehensive for best results"},void 0,!1,void 0,this),J[9]=A,J[10]=R;else A=J[9],R=J[10];let D;if(J[11]!==G||J[12]!==L||J[13]!==q)D=I_.jsxDEV(f,{marginTop:1,children:I_.jsxDEV(sX,{value:q,onChange:K,onSubmit:L,placeholder:"You are a helpful code reviewer who...",columns:80,cursorOffset:G,onChangeCursorOffset:z,focus:!0,showCursor:!0},void 0,!1,void 0,this)},void 0,!1,void 0,this),J[11]=G,J[12]=L,J[13]=q,J[14]=D;else D=J[14];let $;if(J[15]!==W)$=W&&I_.jsxDEV(f,{marginTop:1,children:I_.jsxDEV(M,{color:"error",children:W},void 0,!1,void 0,this)},void 0,!1,void 0,this),J[15]=W,J[16]=$;else $=J[16];let y;if(J[17]!==D||J[18]!==$)y=I_.jsxDEV(bq,{subtitle:"System prompt",footerText:N,children:I_.jsxDEV(f,{flexDirection:"column",children:[A,R,D,$]},void 0,!0,void 0,this)},void 0,!1,void 0,this),J[17]=D,J[18]=$,J[19]=y;else y=J[19];return y}var OUJ,j11,I_;var VUJ=I(()=>{a0();f6();cL();U7();R9();g9();EH();j_();nL();OUJ=T(e0(),1),j11=T(J1(),1),I_=T(e(),1)});function wUJ(J){let Q=NUJ.c(9),{tools:X}=J,{goNext:Z,goBack:Y,updateWizardData:q,wizardData:K}=kY(),G;if(Q[0]!==Z||Q[1]!==q)G=(U)=>{q({selectedTools:U}),Z()},Q[0]=Z,Q[1]=q,Q[2]=G;else G=Q[2];let z=G,W=K.selectedTools,H;if(Q[3]===Symbol.for("react.memo_cache_sentinel"))H=kr.jsxDEV(V8,{children:[kr.jsxDEV(p1,{shortcut:"Enter",action:"toggle selection"},void 0,!1,void 0,this),kr.jsxDEV(p1,{shortcut:"\u2191\u2193",action:"navigate"},void 0,!1,void 0,this),kr.jsxDEV(s1,{action:"confirm:no",context:"Confirmation",fallback:"Esc",description:"go back"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),Q[3]=H;else H=Q[3];let B;if(Q[4]!==Y||Q[5]!==z||Q[6]!==W||Q[7]!==X)B=kr.jsxDEV(bq,{subtitle:"Select tools",footerText:H,children:kr.jsxDEV(R11,{tools:X,initialTools:W,onComplete:z,onCancel:Y},void 0,!1,void 0,this)},void 0,!1,void 0,this),Q[4]=Y,Q[5]=z,Q[6]=W,Q[7]=X,Q[8]=B;else B=Q[8];return B}var NUJ,kr;var AUJ=I(()=>{U7();R9();g9();j_();nL();uo1();NUJ=T(e0(),1),kr=T(e(),1)});function MUJ(J){let Q=RUJ.c(15),{goNext:X,goBack:Z,updateWizardData:Y,wizardData:q}=kY(),[K,G]=I11.useState(q.agentType||""),[z,W]=I11.useState(null),[H,B]=I11.useState(K.length),U;if(Q[0]===Symbol.for("react.memo_cache_sentinel"))U={context:"Settings"},Q[0]=U;else U=Q[0];J8("confirm:no",Z,U);let F;if(Q[1]!==X||Q[2]!==Y)F=(D)=>{let $=D.trim(),y=ro1($);if(y){W(y);return}W(null),Y({agentType:$}),X()},Q[1]=X,Q[2]=Y,Q[3]=F;else F=Q[3];let _=F,O;if(Q[4]===Symbol.for("react.memo_cache_sentinel"))O=KA.jsxDEV(V8,{children:[KA.jsxDEV(p1,{shortcut:"Type",action:"enter text"},void 0,!1,void 0,this),KA.jsxDEV(p1,{shortcut:"Enter",action:"continue"},void 0,!1,void 0,this),KA.jsxDEV(s1,{action:"confirm:no",context:"Settings",fallback:"Esc",description:"go back"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),Q[4]=O;else O=Q[4];let L;if(Q[5]===Symbol.for("react.memo_cache_sentinel"))L=KA.jsxDEV(M,{children:"Enter a unique identifier for your agent:"},void 0,!1,void 0,this),Q[5]=L;else L=Q[5];let N;if(Q[6]!==K||Q[7]!==H||Q[8]!==_)N=KA.jsxDEV(f,{marginTop:1,children:KA.jsxDEV(sX,{value:K,onChange:G,onSubmit:_,placeholder:"e.g., test-runner, tech-lead, etc",columns:60,cursorOffset:H,onChangeCursorOffset:B,focus:!0,showCursor:!0},void 0,!1,void 0,this)},void 0,!1,void 0,this),Q[6]=K,Q[7]=H,Q[8]=_,Q[9]=N;else N=Q[9];let A;if(Q[10]!==z)A=z&&KA.jsxDEV(f,{marginTop:1,children:KA.jsxDEV(M,{color:"error",children:z},void 0,!1,void 0,this)},void 0,!1,void 0,this),Q[10]=z,Q[11]=A;else A=Q[11];let R;if(Q[12]!==N||Q[13]!==A)R=KA.jsxDEV(bq,{subtitle:"Agent type (identifier)",footerText:O,children:KA.jsxDEV(f,{flexDirection:"column",children:[L,N,A]},void 0,!0,void 0,this)},void 0,!1,void 0,this),Q[12]=N,Q[13]=A,Q[14]=R;else R=Q[14];return R}var RUJ,I11,KA;var DUJ=I(()=>{a0();f6();U7();R9();g9();EH();j_();nL();ao1();RUJ=T(e0(),1),I11=T(J1(),1),KA=T(e(),1)});function jUJ(J){let Q=$UJ.c(17),{tools:X,existingAgents:Z,onComplete:Y,onCancel:q}=J,K;if(Q[0]!==Z)K=()=>Jw0.jsxDEV(MUJ,{existingAgents:Z},void 0,!1,void 0,this),Q[0]=Z,Q[1]=K;else K=Q[1];let G;if(Q[2]!==X)G=()=>Jw0.jsxDEV(wUJ,{tools:X},void 0,!1,void 0,this),Q[2]=X,Q[3]=G;else G=Q[3];let z;if(Q[4]===Symbol.for("react.memo_cache_sentinel"))z=l7()?[GUJ]:[],Q[4]=z;else z=Q[4];let W;if(Q[5]!==Z||Q[6]!==Y||Q[7]!==X)W=()=>Jw0.jsxDEV(iBJ,{tools:X,existingAgents:Z,onComplete:Y},void 0,!1,void 0,this),Q[5]=Z,Q[6]=Y,Q[7]=X,Q[8]=W;else W=Q[8];let H;if(Q[9]!==K||Q[10]!==G||Q[11]!==W)H=[YUJ,HUJ,QUJ,K,LUJ,oBJ,G,FUJ,gBJ,...z,W],Q[9]=K,Q[10]=G,Q[11]=W,Q[12]=H;else H=Q[12];let B=H,U;if(Q[13]===Symbol.for("react.memo_cache_sentinel"))U={},Q[13]=U;else U=Q[13];let F;if(Q[14]!==q||Q[15]!==B)F=Jw0.jsxDEV(co1,{steps:B,initialData:U,onComplete:a2Q,onCancel:q,title:"Create new agent",showStepCounter:!1},void 0,!1,void 0,this),Q[14]=q,Q[15]=B,Q[16]=F;else F=Q[16];return F}function a2Q(){}var $UJ,Jw0;var IUJ=I(()=>{t5();j_();mBJ();rBJ();sBJ();XUJ();qUJ();zUJ();BUJ();_UJ();VUJ();AUJ();DUJ();$UJ=T(e0(),1),Jw0=T(e(),1)});function bUJ(J){let Q=yUJ.c(157),{tools:X,onExit:Z}=J,Y;if(Q[0]===Symbol.for("react.memo_cache_sentinel"))Y={mode:"list-agents",source:"all"},Q[0]=Y;else Y=Q[0];let[q,K]=oo1.useState(Y),G=O1(qFQ),z=O1(YFQ),W=O1(ZFQ),H=T6(),{allAgents:B,activeAgents:U}=G,F;if(Q[1]===Symbol.for("react.memo_cache_sentinel"))F=[],Q[1]=F;else F=Q[1];let[_,O]=oo1.useState(F),L=L11(X,z,W);B7();let N;if(Q[2]!==B)N=B.filter(XFQ),Q[2]=B,Q[3]=N;else N=Q[3];let A;if(Q[4]!==B)A=B.filter(QFQ),Q[4]=B,Q[5]=A;else A=Q[5];let R;if(Q[6]!==B)R=B.filter(JFQ),Q[6]=B,Q[7]=R;else R=Q[7];let D;if(Q[8]!==B)D=B.filter(e2Q),Q[8]=B,Q[9]=D;else D=Q[9];let $;if(Q[10]!==B)$=B.filter(t2Q),Q[10]=B,Q[11]=$;else $=Q[11];let y;if(Q[12]!==B)y=B.filter(s2Q),Q[12]=B,Q[13]=y;else y=Q[13];let v;if(Q[14]!==B)v=B.filter(o2Q),Q[14]=B,Q[15]=v;else v=Q[15];let E;if(Q[16]!==B||Q[17]!==N||Q[18]!==A||Q[19]!==R||Q[20]!==D||Q[21]!==$||Q[22]!==y||Q[23]!==v)E={"built-in":N,userSettings:A,projectSettings:R,policySettings:D,localSettings:$,flagSettings:y,plugin:v,all:B},Q[16]=B,Q[17]=N,Q[18]=A,Q[19]=R,Q[20]=D,Q[21]=$,Q[22]=y,Q[23]=v,Q[24]=E;else E=Q[24];let C=E,S;if(Q[25]===Symbol.for("react.memo_cache_sentinel"))S=(x)=>{O((m)=>[...m,x]),K({mode:"list-agents",source:"all"})},Q[25]=S;else S=Q[25];let k=S,h;if(Q[26]!==H)h=async(x)=>{try{await wBJ(x),H((m)=>{let p=m.agentDefinitions.allAgents.filter((c)=>!(c.agentType===x.agentType&&c.source===x.source));return{...m,agentDefinitions:{...m.agentDefinitions,allAgents:p,activeAgents:zM(p)}}}),O((m)=>[...m,`Deleted agent: ${_1.bold(x.agentType)}`]),K({mode:"list-agents",source:"all"})}catch(m){H0(R8(m))}},Q[26]=H,Q[27]=h;else h=Q[27];let u=h;switch(q.mode){case"list-agents":{let x;if(Q[28]!==C||Q[29]!==q.source)x=q.source==="all"?[...C["built-in"],...C.userSettings,...C.projectSettings,...C.localSettings,...C.policySettings,...C.flagSettings,...C.plugin]:C[q.source],Q[28]=C,Q[29]=q.source,Q[30]=x;else x=Q[30];let m=x,p;if(Q[31]!==U||Q[32]!==m)p=zBJ(m,U),Q[31]=U,Q[32]=m,Q[33]=p;else p=Q[33];let r=p,J0;if(Q[34]!==_||Q[35]!==Z)J0=()=>{let j0=_.length>0?`Agent changes:
|
|
5775
5775
|
${_.join(`
|
|
5776
5776
|
`)}`:void 0;Z(j0??"Agents dialog dismissed",{display:_.length===0?"system":void 0})},Q[34]=_,Q[35]=Z,Q[36]=J0;else J0=Q[36];let n;if(Q[37]!==q)n=(j0)=>K({mode:"agent-menu",agent:j0,previousMode:q}),Q[37]=q,Q[38]=n;else n=Q[38];let s;if(Q[39]===Symbol.for("react.memo_cache_sentinel"))s=()=>K({mode:"create-agent"}),Q[39]=s;else s=Q[39];let X0;if(Q[40]!==_||Q[41]!==q.source||Q[42]!==r||Q[43]!==J0||Q[44]!==n)X0=hX.jsxDEV(fBJ,{source:q.source,agents:r,onBack:J0,onSelect:n,onCreateNew:s,changes:_},void 0,!1,void 0,this),Q[40]=_,Q[41]=q.source,Q[42]=r,Q[43]=J0,Q[44]=n,Q[45]=X0;else X0=Q[45];let Y0;if(Q[46]===Symbol.for("react.memo_cache_sentinel"))Y0=hX.jsxDEV(lZ0,{},void 0,!1,void 0,this),Q[46]=Y0;else Y0=Q[46];let G0;if(Q[47]!==X0)G0=hX.jsxDEV(hX.Fragment,{children:[X0,Y0]},void 0,!0,void 0,this),Q[47]=X0,Q[48]=G0;else G0=Q[48];return G0}case"create-agent":{let x;if(Q[49]===Symbol.for("react.memo_cache_sentinel"))x=()=>K({mode:"list-agents",source:"all"}),Q[49]=x;else x=Q[49];let m;if(Q[50]!==U||Q[51]!==L)m=hX.jsxDEV(jUJ,{tools:L,existingAgents:U,onComplete:k,onCancel:x},void 0,!1,void 0,this),Q[50]=U,Q[51]=L,Q[52]=m;else m=Q[52];return m}case"agent-menu":{let x;if(Q[53]!==B||Q[54]!==q.agent.agentType||Q[55]!==q.agent.source){let a;if(Q[57]!==q.agent.agentType||Q[58]!==q.agent.source)a=(O0)=>O0.agentType===q.agent.agentType&&O0.source===q.agent.source,Q[57]=q.agent.agentType,Q[58]=q.agent.source,Q[59]=a;else a=Q[59];x=B.find(a),Q[53]=B,Q[54]=q.agent.agentType,Q[55]=q.agent.source,Q[56]=x}else x=Q[56];let p=x||q.agent,c=p.source!=="built-in"&&p.source!=="plugin"&&p.source!=="flagSettings",r;if(Q[60]===Symbol.for("react.memo_cache_sentinel"))r={label:"View agent",value:"view"},Q[60]=r;else r=Q[60];let J0;if(Q[61]!==c)J0=c?[{label:"Edit agent",value:"edit"},{label:"Delete agent",value:"delete"}]:[],Q[61]=c,Q[62]=J0;else J0=Q[62];let n;if(Q[63]===Symbol.for("react.memo_cache_sentinel"))n={label:"Back",value:"back"},Q[63]=n;else n=Q[63];let s;if(Q[64]!==J0)s=[r,...J0,n],Q[64]=J0,Q[65]=s;else s=Q[65];let X0=s,Y0;if(Q[66]!==p||Q[67]!==q)Y0=(a)=>{J:switch(a){case"view":{K({mode:"view-agent",agent:p,previousMode:q.previousMode});break J}case"edit":{K({mode:"edit-agent",agent:p,previousMode:q});break J}case"delete":{K({mode:"delete-confirm",agent:p,previousMode:q});break J}case"back":K(q.previousMode)}},Q[66]=p,Q[67]=q,Q[68]=Y0;else Y0=Q[68];let G0=Y0,j0;if(Q[69]!==q.previousMode)j0=()=>K(q.previousMode),Q[69]=q.previousMode,Q[70]=j0;else j0=Q[70];let W0;if(Q[71]!==q.previousMode)W0=()=>K(q.previousMode),Q[71]=q.previousMode,Q[72]=W0;else W0=Q[72];let y0;if(Q[73]!==G0||Q[74]!==X0||Q[75]!==W0)y0=hX.jsxDEV(Q8,{options:X0,onChange:G0,onCancel:W0},void 0,!1,void 0,this),Q[73]=G0,Q[74]=X0,Q[75]=W0,Q[76]=y0;else y0=Q[76];let V0;if(Q[77]!==_)V0=_.length>0&&hX.jsxDEV(f,{marginTop:1,children:hX.jsxDEV(M,{dimColor:!0,children:_[_.length-1]},void 0,!1,void 0,this)},void 0,!1,void 0,this),Q[77]=_,Q[78]=V0;else V0=Q[78];let Z0;if(Q[79]!==y0||Q[80]!==V0)Z0=hX.jsxDEV(f,{flexDirection:"column",children:[y0,V0]},void 0,!0,void 0,this),Q[79]=y0,Q[80]=V0,Q[81]=Z0;else Z0=Q[81];let t;if(Q[82]!==q.agent.agentType||Q[83]!==j0||Q[84]!==Z0)t=hX.jsxDEV(D8,{title:q.agent.agentType,onCancel:j0,hideInputGuide:!0,children:Z0},void 0,!1,void 0,this),Q[82]=q.agent.agentType,Q[83]=j0,Q[84]=Z0,Q[85]=t;else t=Q[85];let q0;if(Q[86]===Symbol.for("react.memo_cache_sentinel"))q0=hX.jsxDEV(lZ0,{},void 0,!1,void 0,this),Q[86]=q0;else q0=Q[86];let Q0;if(Q[87]!==t)Q0=hX.jsxDEV(hX.Fragment,{children:[t,q0]},void 0,!0,void 0,this),Q[87]=t,Q[88]=Q0;else Q0=Q[88];return Q0}case"view-agent":{let x;if(Q[89]!==B||Q[90]!==q.agent){let Y0;if(Q[92]!==q.agent)Y0=(G0)=>G0.agentType===q.agent.agentType&&G0.source===q.agent.source,Q[92]=q.agent,Q[93]=Y0;else Y0=Q[93];x=B.find(Y0),Q[89]=B,Q[90]=q.agent,Q[91]=x}else x=Q[91];let p=x||q.agent,c;if(Q[94]!==p||Q[95]!==q.previousMode)c=()=>K({mode:"agent-menu",agent:p,previousMode:q.previousMode}),Q[94]=p,Q[95]=q.previousMode,Q[96]=c;else c=Q[96];let r;if(Q[97]!==p||Q[98]!==q.previousMode)r=()=>K({mode:"agent-menu",agent:p,previousMode:q.previousMode}),Q[97]=p,Q[98]=q.previousMode,Q[99]=r;else r=Q[99];let J0;if(Q[100]!==p||Q[101]!==B||Q[102]!==L||Q[103]!==r)J0=hX.jsxDEV(MBJ,{agent:p,tools:L,allAgents:B,onBack:r},void 0,!1,void 0,this),Q[100]=p,Q[101]=B,Q[102]=L,Q[103]=r,Q[104]=J0;else J0=Q[104];let n;if(Q[105]!==p.agentType||Q[106]!==c||Q[107]!==J0)n=hX.jsxDEV(D8,{title:p.agentType,onCancel:c,hideInputGuide:!0,children:J0},void 0,!1,void 0,this),Q[105]=p.agentType,Q[106]=c,Q[107]=J0,Q[108]=n;else n=Q[108];let s;if(Q[109]===Symbol.for("react.memo_cache_sentinel"))s=hX.jsxDEV(lZ0,{instructions:"Press Enter or Esc to go back"},void 0,!1,void 0,this),Q[109]=s;else s=Q[109];let X0;if(Q[110]!==n)X0=hX.jsxDEV(hX.Fragment,{children:[n,s]},void 0,!0,void 0,this),Q[110]=n,Q[111]=X0;else X0=Q[111];return X0}case"delete-confirm":{let x;if(Q[112]===Symbol.for("react.memo_cache_sentinel"))x=[{label:"Yes, delete",value:"yes"},{label:"No, cancel",value:"no"}],Q[112]=x;else x=Q[112];let m=x,p;if(Q[113]!==q)p=()=>{if("previousMode"in q)K(q.previousMode)},Q[113]=q,Q[114]=p;else p=Q[114];let c;if(Q[115]!==q.agent.agentType)c=hX.jsxDEV(M,{children:["Are you sure you want to delete the agent"," ",hX.jsxDEV(M,{bold:!0,children:q.agent.agentType},void 0,!1,void 0,this),"?"]},void 0,!0,void 0,this),Q[115]=q.agent.agentType,Q[116]=c;else c=Q[116];let r;if(Q[117]!==q.agent.source)r=hX.jsxDEV(f,{marginTop:1,children:hX.jsxDEV(M,{dimColor:!0,children:["Source: ",q.agent.source]},void 0,!0,void 0,this)},void 0,!1,void 0,this),Q[117]=q.agent.source,Q[118]=r;else r=Q[118];let J0;if(Q[119]!==u||Q[120]!==q)J0=(j0)=>{if(j0==="yes")u(q.agent);else if("previousMode"in q)K(q.previousMode)},Q[119]=u,Q[120]=q,Q[121]=J0;else J0=Q[121];let n;if(Q[122]!==q)n=()=>{if("previousMode"in q)K(q.previousMode)},Q[122]=q,Q[123]=n;else n=Q[123];let s;if(Q[124]!==J0||Q[125]!==n)s=hX.jsxDEV(f,{marginTop:1,children:hX.jsxDEV(Q8,{options:m,onChange:J0,onCancel:n},void 0,!1,void 0,this)},void 0,!1,void 0,this),Q[124]=J0,Q[125]=n,Q[126]=s;else s=Q[126];let X0;if(Q[127]!==p||Q[128]!==c||Q[129]!==r||Q[130]!==s)X0=hX.jsxDEV(D8,{title:"Delete agent",onCancel:p,color:"error",children:[c,r,s]},void 0,!0,void 0,this),Q[127]=p,Q[128]=c,Q[129]=r,Q[130]=s,Q[131]=X0;else X0=Q[131];let Y0;if(Q[132]===Symbol.for("react.memo_cache_sentinel"))Y0=hX.jsxDEV(lZ0,{instructions:"Press \u2191\u2193 to navigate, Enter to select, Esc to cancel"},void 0,!1,void 0,this),Q[132]=Y0;else Y0=Q[132];let G0;if(Q[133]!==X0)G0=hX.jsxDEV(hX.Fragment,{children:[X0,Y0]},void 0,!0,void 0,this),Q[133]=X0,Q[134]=G0;else G0=Q[134];return G0}case"edit-agent":{let x;if(Q[135]!==B||Q[136]!==q.agent){let j0;if(Q[138]!==q.agent)j0=(W0)=>W0.agentType===q.agent.agentType&&W0.source===q.agent.source,Q[138]=q.agent,Q[139]=j0;else j0=Q[139];x=B.find(j0),Q[135]=B,Q[136]=q.agent,Q[137]=x}else x=Q[137];let p=x||q.agent,c=`Edit agent: ${p.agentType}`,r;if(Q[140]!==q.previousMode)r=()=>K(q.previousMode),Q[140]=q.previousMode,Q[141]=r;else r=Q[141];let J0,n;if(Q[142]!==q.previousMode)J0=(j0)=>{k(j0),K(q.previousMode)},n=()=>K(q.previousMode),Q[142]=q.previousMode,Q[143]=J0,Q[144]=n;else J0=Q[143],n=Q[144];let s;if(Q[145]!==p||Q[146]!==L||Q[147]!==J0||Q[148]!==n)s=hX.jsxDEV(PBJ,{agent:p,tools:L,onSaved:J0,onBack:n},void 0,!1,void 0,this),Q[145]=p,Q[146]=L,Q[147]=J0,Q[148]=n,Q[149]=s;else s=Q[149];let X0;if(Q[150]!==c||Q[151]!==r||Q[152]!==s)X0=hX.jsxDEV(D8,{title:c,onCancel:r,hideInputGuide:!0,children:s},void 0,!1,void 0,this),Q[150]=c,Q[151]=r,Q[152]=s,Q[153]=X0;else X0=Q[153];let Y0;if(Q[154]===Symbol.for("react.memo_cache_sentinel"))Y0=hX.jsxDEV(lZ0,{},void 0,!1,void 0,this),Q[154]=Y0;else Y0=Q[154];let G0;if(Q[155]!==X0)G0=hX.jsxDEV(hX.Fragment,{children:[X0,Y0]},void 0,!0,void 0,this),Q[155]=X0,Q[156]=G0;else G0=Q[156];return G0}default:return null}}function o2Q(J){return J.source==="plugin"}function s2Q(J){return J.source==="flagSettings"}function t2Q(J){return J.source==="localSettings"}function e2Q(J){return J.source==="policySettings"}function JFQ(J){return J.source==="projectSettings"}function QFQ(J){return J.source==="userSettings"}function XFQ(J){return J.source==="built-in"}function ZFQ(J){return J.toolPermissionContext}function YFQ(J){return J.mcp.tools}function qFQ(J){return J.agentDefinitions}var yUJ,oo1,hX;var PUJ=I(()=>{k7();Lq();vo1();a0();W6();So1();r3();T1();M1();AQ();M9();DBJ();EBJ();CBJ();SBJ();mZ0();IUJ();yUJ=T(e0(),1),oo1=T(J1(),1),hX=T(e(),1)});var EUJ={};X8(EUJ,{call:()=>KFQ});async function KFQ(J,Q){let Z=Q.getAppState().toolPermissionContext,Y=x2(Z);return TUJ.jsxDEV(bUJ,{tools:Y,onExit:J},void 0,!1,void 0,this)}var TUJ;var CUJ=I(()=>{PUJ();PH();TUJ=T(e(),1)});var GFQ,vUJ;var fUJ=I(()=>{GFQ={type:"local-jsx",name:"agents",description:"Manage agent configurations",load:()=>Promise.resolve().then(() => (CUJ(),EUJ))},vUJ=GFQ});var SUJ={};X8(SUJ,{call:()=>zFQ});async function zFQ(J,Q,X){return xUJ.jsxDEV(R5J,{onComplete:J,args:X},void 0,!1,void 0,this)}var xUJ;var kUJ=I(()=>{_r1();xUJ=T(e(),1)});var WFQ,hUJ;var uUJ=I(()=>{WFQ={type:"local-jsx",name:"plugin",aliases:["plugins","marketplace"],description:"Manage Glock plugins",immediate:!0,load:()=>Promise.resolve().then(() => (kUJ(),SUJ))},hUJ=WFQ});var HFQ,BFQ;var gUJ=I(()=>{M6();HFQ=k0(()=>j.object({entries:j.record(j.string(),j.string())})),BFQ=k0(()=>j.object({userId:j.string(),version:j.number(),lastModified:j.string(),checksum:j.string(),content:HFQ()}))});var so1=I(()=>{N1();$Z();N9();ez();m8();h4();T1();uQ();m4();Dy0();g8();nv();D1();Xk();gUJ()});async function hr(J){b("refreshActivePlugins: clearing all plugin caches"),fZ(),Lk6();let Q=await dz(),[X,Z]=await Promise.all([Fn(),Rk(j8())]),{enabled:Y,disabled:q,errors:K}=Q,[G,z]=await Promise.all([Promise.all(Y.map(async(F)=>{if(F.mcpServers)return Object.keys(F.mcpServers).length;let _=await BF0(F,K);if(_)F.mcpServers=_;return _?Object.keys(_).length:0})),Promise.all(Y.map(async(F)=>{if(F.lspServers)return Object.keys(F.lspServers).length;let _=await j_0(F,K);if(_)F.lspServers=_;return _?Object.keys(_).length:0}))]),W=G.reduce((F,_)=>F+_,0),H=z.reduce((F,_)=>F+_,0);J((F)=>({...F,plugins:{...F.plugins,enabled:Y,disabled:q,commands:X,errors:UFQ(F.plugins.errors,K),needsRefresh:!1},agentDefinitions:Z,mcp:{...F.mcp,pluginReconnectKey:F.mcp.pluginReconnectKey+1}})),Oi0();let B=!1;try{await LI()}catch(F){B=!0,H0(F),b(`refreshActivePlugins: loadPluginHooks failed: ${Q1(F)}`)}let U=Y.reduce((F,_)=>{if(!_.hooksConfig)return F;return F+Object.values(_.hooksConfig).reduce((O,L)=>O+(L?.reduce((N,A)=>N+A.hooks.length,0)??0),0)},0);return b(`refreshActivePlugins: ${Y.length} enabled, ${X.length} commands, ${Z.allAgents.length} agents, ${U} hooks, ${W} MCP, ${H} LSP`),{enabled_count:Y.length,disabled_count:q.length,command_count:X.length,agent_count:Z.allAgents.length,hook_count:U,mcp_count:W,lsp_count:H,error_count:K.length+(B?1:0),agentDefinitions:Z,pluginCommands:X}}function UFQ(J,Q){let X=J.filter((q)=>q.source==="lsp-manager"||q.source.startsWith("plugin:")),Z=new Set(Q.map(mUJ));return[...X.filter((q)=>!Z.has(mUJ(q))),...Q]}function mUJ(J){return J.type==="generic-error"?`generic-error:${J.source}:${J.error}`:`${J.type}:${J.source}`}var y11=I(()=>{N1();MT();r3();Z1();T1();M1();qL();yO0();_n();Ji0();UF0();m_0();oq()});var pUJ={};X8(pUJ,{call:()=>FFQ});function ur(J,Q){return`${J} ${J6(J,Q)}`}var FFQ=async(J,Q)=>{let X=await hr(Q.setAppState),Y=`Reloaded: ${[ur(X.enabled_count,"plugin"),ur(X.command_count,"skill"),ur(X.agent_count,"agent"),ur(X.hook_count,"hook"),ur(X.mcp_count,"plugin MCP server"),ur(X.lsp_count,"plugin LSP server")].join(" \xB7 ")}`;if(X.error_count>0)Y+=`
|
|
5777
|
-
${ur(X.error_count,"error")} during load. Run /doctor for details.`;return{type:"text",value:Y}};var cUJ=I(()=>{N1();so1();t1();y11();Pi()});var _FQ,dUJ;var lUJ=I(()=>{_FQ={type:"local",name:"reload-plugins",description:"Activate pending plugin changes in the current session",supportsNonInteractive:!1,load:()=>Promise.resolve().then(() => (cUJ(),pUJ))},dUJ=_FQ});var iUJ={};X8(iUJ,{call:()=>OFQ});async function OFQ(J,Q){if(Q.openMessageSelector)Q.openMessageSelector();return{type:"skip"}}var LFQ,nUJ;var rUJ=I(()=>{LFQ={description:"Restore the code and/or conversation to a previous point",name:"rewind",aliases:["checkpoint"],argumentHint:"",type:"local",supportsNonInteractive:!1,load:()=>Promise.resolve().then(() => iUJ)},nUJ=LFQ});var aUJ;var oUJ=I(()=>{aUJ={isEnabled:()=>!1,isHidden:!0,name:"stub"}});var VFQ=async()=>{return{type:"text",value:"0.1.16 (built 2026-04-05T08:39:18.323Z)"}},NFQ,sUJ;var tUJ=I(()=>{NFQ={type:"local",name:"version",description:"Print the version this session is running (not what autoupdate downloaded)",isEnabled:()=>process.env.USER_TYPE==="ant",supportsNonInteractive:!0,load:()=>Promise.resolve({call:VFQ})},sUJ=NFQ});var eUJ;var J2J=I(()=>{eUJ={isEnabled:()=>!1,isHidden:!0,name:"stub"}});var Q2J,X2J,Z2J;var Y2J=I(()=>{Q2J={isEnabled:()=>!1,isHidden:!0,name:"stub"},X2J=Q2J,Z2J=Q2J});var q2J;var K2J=I(()=>{q2J={isEnabled:()=>!1,isHidden:!0,name:"stub"}});function z2J(){let J=G2J.c(3),Q=p8.isSandboxingEnabled(),X;if(J[0]===Symbol.for("react.memo_cache_sentinel")){let q=p8.checkDependencies();X=q.warnings.length>0?hY.jsxDEV(f,{marginTop:1,flexDirection:"column",children:q.warnings.map(wFQ)},void 0,!1,void 0,this):null,J[0]=X}else X=J[0];let Z=X;if(!Q){let q;if(J[1]===Symbol.for("react.memo_cache_sentinel"))q=hY.jsxDEV(f,{flexDirection:"column",paddingY:1,children:[hY.jsxDEV(M,{color:"subtle",children:"Sandbox is not enabled"},void 0,!1,void 0,this),Z]},void 0,!0,void 0,this),J[1]=q;else q=J[1];return q}let Y;if(J[2]===Symbol.for("react.memo_cache_sentinel")){let q=p8.getFsReadConfig(),K=p8.getFsWriteConfig(),G=p8.getNetworkRestrictionConfig(),z=p8.getAllowUnixSockets(),W=p8.getExcludedCommands(),H=p8.getLinuxGlobPatternWarnings();Y=hY.jsxDEV(f,{flexDirection:"column",paddingY:1,children:[hY.jsxDEV(f,{flexDirection:"column",children:[hY.jsxDEV(M,{bold:!0,color:"permission",children:"Excluded Commands:"},void 0,!1,void 0,this),hY.jsxDEV(M,{dimColor:!0,children:W.length>0?W.join(", "):"None"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),q.denyOnly.length>0&&hY.jsxDEV(f,{marginTop:1,flexDirection:"column",children:[hY.jsxDEV(M,{bold:!0,color:"permission",children:"Filesystem Read Restrictions:"},void 0,!1,void 0,this),hY.jsxDEV(M,{dimColor:!0,children:["Denied: ",q.denyOnly.join(", ")]},void 0,!0,void 0,this),q.allowWithinDeny&&q.allowWithinDeny.length>0&&hY.jsxDEV(M,{dimColor:!0,children:["Allowed within denied: ",q.allowWithinDeny.join(", ")]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),K.allowOnly.length>0&&hY.jsxDEV(f,{marginTop:1,flexDirection:"column",children:[hY.jsxDEV(M,{bold:!0,color:"permission",children:"Filesystem Write Restrictions:"},void 0,!1,void 0,this),hY.jsxDEV(M,{dimColor:!0,children:["Allowed: ",K.allowOnly.join(", ")]},void 0,!0,void 0,this),K.denyWithinAllow.length>0&&hY.jsxDEV(M,{dimColor:!0,children:["Denied within allowed: ",K.denyWithinAllow.join(", ")]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),(G.allowedHosts&&G.allowedHosts.length>0||G.deniedHosts&&G.deniedHosts.length>0)&&hY.jsxDEV(f,{marginTop:1,flexDirection:"column",children:[hY.jsxDEV(M,{bold:!0,color:"permission",children:["Network Restrictions",ZB0()?" (Managed)":"",":"]},void 0,!0,void 0,this),G.allowedHosts&&G.allowedHosts.length>0&&hY.jsxDEV(M,{dimColor:!0,children:["Allowed: ",G.allowedHosts.join(", ")]},void 0,!0,void 0,this),G.deniedHosts&&G.deniedHosts.length>0&&hY.jsxDEV(M,{dimColor:!0,children:["Denied: ",G.deniedHosts.join(", ")]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),z&&z.length>0&&hY.jsxDEV(f,{marginTop:1,flexDirection:"column",children:[hY.jsxDEV(M,{bold:!0,color:"permission",children:"Allowed Unix Sockets:"},void 0,!1,void 0,this),hY.jsxDEV(M,{dimColor:!0,children:z.join(", ")},void 0,!1,void 0,this)]},void 0,!0,void 0,this),H.length>0&&hY.jsxDEV(f,{marginTop:1,flexDirection:"column",children:[hY.jsxDEV(M,{bold:!0,color:"warning",children:"\u26A0 Warning: Glob patterns not fully supported on Linux"},void 0,!1,void 0,this),hY.jsxDEV(M,{dimColor:!0,children:["The following patterns will be ignored:"," ",H.slice(0,3).join(", "),H.length>3&&` (${H.length-3} more)`]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),Z]},void 0,!0,void 0,this),J[2]=Y}else Y=J[2];return Y}function wFQ(J,Q){return hY.jsxDEV(M,{dimColor:!0,children:J},Q,!1,void 0,this)}var G2J,hY;var W2J=I(()=>{a0();V4();G2J=T(e0(),1),hY=T(e(),1)});function to1(J){let Q=H2J.c(24),{depCheck:X}=J,Z;if(Q[0]===Symbol.for("react.memo_cache_sentinel"))Z=N8(),Q[0]=Z;else Z=Q[0];let q=Z==="macos",K;if(Q[1]!==X.errors)K=X.errors.some($FQ),Q[1]=X.errors,Q[2]=K;else K=Q[2];let G=K,z;if(Q[3]!==X.errors)z=X.errors.some(DFQ),Q[3]=X.errors,Q[4]=z;else z=Q[4];let W=z,H;if(Q[5]!==X.errors)H=X.errors.some(MFQ),Q[5]=X.errors,Q[6]=H;else H=Q[6];let B=H,U=X.warnings.length>0,F;if(Q[7]!==W||Q[8]!==X.errors||Q[9]!==G||Q[10]!==U||Q[11]!==B){let _=X.errors.filter(RFQ),O=q?"brew install ripgrep":"apt install ripgrep",L;if(Q[13]===Symbol.for("react.memo_cache_sentinel"))L=q&&NZ.jsxDEV(f,{flexDirection:"column",children:NZ.jsxDEV(M,{children:["seatbelt: ",NZ.jsxDEV(M,{color:"success",children:"built-in (macOS)"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this),Q[13]=L;else L=Q[13];let N,A;if(Q[14]!==G)N=NZ.jsxDEV(M,{children:["ripgrep (rg):"," ",G?NZ.jsxDEV(M,{color:"error",children:"not found"},void 0,!1,void 0,this):NZ.jsxDEV(M,{color:"success",children:"found"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),A=G&&NZ.jsxDEV(M,{dimColor:!0,children:[" ","\xB7 ",O]},void 0,!0,void 0,this),Q[14]=G,Q[15]=N,Q[16]=A;else N=Q[15],A=Q[16];let R;if(Q[17]!==N||Q[18]!==A)R=NZ.jsxDEV(f,{flexDirection:"column",children:[N,A]},void 0,!0,void 0,this),Q[17]=N,Q[18]=A,Q[19]=R;else R=Q[19];let D;if(Q[20]!==W||Q[21]!==U||Q[22]!==B)D=!q&&NZ.jsxDEV(NZ.Fragment,{children:[NZ.jsxDEV(f,{flexDirection:"column",children:[NZ.jsxDEV(M,{children:["bubblewrap (bwrap):"," ",W?NZ.jsxDEV(M,{color:"error",children:"not installed"},void 0,!1,void 0,this):NZ.jsxDEV(M,{color:"success",children:"installed"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),W&&NZ.jsxDEV(M,{dimColor:!0,children:[" ","\xB7 apt install bubblewrap"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),NZ.jsxDEV(f,{flexDirection:"column",children:[NZ.jsxDEV(M,{children:["socat:"," ",B?NZ.jsxDEV(M,{color:"error",children:"not installed"},void 0,!1,void 0,this):NZ.jsxDEV(M,{color:"success",children:"installed"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),B&&NZ.jsxDEV(M,{dimColor:!0,children:[" ","\xB7 apt install socat"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),NZ.jsxDEV(f,{flexDirection:"column",children:[NZ.jsxDEV(M,{children:["seccomp filter:"," ",U?NZ.jsxDEV(M,{color:"warning",children:"not installed"},void 0,!1,void 0,this):NZ.jsxDEV(M,{color:"success",children:"installed"},void 0,!1,void 0,this),U&&NZ.jsxDEV(M,{dimColor:!0,children:" (required to block unix domain sockets)"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),U&&NZ.jsxDEV(f,{flexDirection:"column",children:[NZ.jsxDEV(M,{dimColor:!0,children:[" ","\xB7 npm install -g @anthropic-ai/sandbox-runtime"]},void 0,!0,void 0,this),NZ.jsxDEV(M,{dimColor:!0,children:[" ","\xB7 or copy vendor/seccomp/* from sandbox-runtime and set"]},void 0,!0,void 0,this),NZ.jsxDEV(M,{dimColor:!0,children:[" ","sandbox.seccomp.bpfPath and applyPath in settings.json"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),Q[20]=W,Q[21]=U,Q[22]=B,Q[23]=D;else D=Q[23];F=NZ.jsxDEV(f,{flexDirection:"column",paddingY:1,gap:1,children:[L,R,D,_.map(AFQ)]},void 0,!0,void 0,this),Q[7]=W,Q[8]=X.errors,Q[9]=G,Q[10]=U,Q[11]=B,Q[12]=F}else F=Q[12];return F}function AFQ(J){return NZ.jsxDEV(M,{color:"error",children:J},J,!1,void 0,this)}function RFQ(J){return!J.includes("ripgrep")&&!J.includes("bwrap")&&!J.includes("socat")}function MFQ(J){return J.includes("socat")}function DFQ(J){return J.includes("bwrap")}function $FQ(J){return J.includes("ripgrep")}var H2J,NZ;var B2J=I(()=>{a0();k9();H2J=T(e0(),1),NZ=T(e(),1)});function U2J(J){let Q=eo1.c(5),{onComplete:X}=J,Z=p8.isSandboxingEnabled(),Y=p8.areSandboxSettingsLockedByPolicy(),q=p8.areUnsandboxedCommandsAllowed();if(!Z){let G;if(Q[0]===Symbol.for("react.memo_cache_sentinel"))G=W3.jsxDEV(f,{flexDirection:"column",paddingY:1,children:W3.jsxDEV(M,{color:"subtle",children:"Sandbox is not enabled. Enable sandbox to configure override settings."},void 0,!1,void 0,this)},void 0,!1,void 0,this),Q[0]=G;else G=Q[0];return G}if(Y){let G;if(Q[1]===Symbol.for("react.memo_cache_sentinel"))G=W3.jsxDEV(M,{color:"subtle",children:"Override settings are managed by a higher-priority configuration and cannot be changed locally."},void 0,!1,void 0,this),Q[1]=G;else G=Q[1];let z;if(Q[2]===Symbol.for("react.memo_cache_sentinel"))z=W3.jsxDEV(f,{flexDirection:"column",paddingY:1,children:[G,W3.jsxDEV(f,{marginTop:1,children:W3.jsxDEV(M,{dimColor:!0,children:["Current setting:"," ",q?"Allow unsandboxed fallback":"Strict sandbox mode"]},void 0,!0,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),Q[2]=z;else z=Q[2];return z}let K;if(Q[3]!==X)K=W3.jsxDEV(jFQ,{onComplete:X,currentMode:q?"open":"closed"},void 0,!1,void 0,this),Q[3]=X,Q[4]=K;else K=Q[4];return K}function jFQ(J){let Q=eo1.c(25),{onComplete:X,currentMode:Z}=J,[Y]=j6(),{headerFocused:q,focusHeader:K}=BU(),G;if(Q[0]!==Y)G=G6("success",Y)("(current)"),Q[0]=Y,Q[1]=G;else G=Q[1];let z=G,W=Z==="open"?`Allow unsandboxed fallback ${z}`:"Allow unsandboxed fallback",H;if(Q[2]!==W)H={label:W,value:"open"},Q[2]=W,Q[3]=H;else H=Q[3];let B=Z==="closed"?`Strict sandbox mode ${z}`:"Strict sandbox mode",U;if(Q[4]!==B)U={label:B,value:"closed"},Q[4]=B,Q[5]=U;else U=Q[5];let F;if(Q[6]!==H||Q[7]!==U)F=[H,U],Q[6]=H,Q[7]=U,Q[8]=F;else F=Q[8];let _=F,O;if(Q[9]!==X)O=async function(C){let S=C;await p8.setSandboxSettings({allowUnsandboxedCommands:S==="open"}),X(S==="open"?"\u2713 Unsandboxed fallback allowed - commands can run outside sandbox when necessary":"\u2713 Strict sandbox mode - all commands must run in sandbox or be excluded via the `excludedCommands` option")},Q[9]=X,Q[10]=O;else O=Q[10];let L=O,N;if(Q[11]===Symbol.for("react.memo_cache_sentinel"))N=W3.jsxDEV(f,{marginBottom:1,children:W3.jsxDEV(M,{bold:!0,children:"Configure Overrides:"},void 0,!1,void 0,this)},void 0,!1,void 0,this),Q[11]=N;else N=Q[11];let A;if(Q[12]!==X)A=()=>X(void 0,{display:"skip"}),Q[12]=X,Q[13]=A;else A=Q[13];let R;if(Q[14]!==K||Q[15]!==L||Q[16]!==q||Q[17]!==_||Q[18]!==A)R=W3.jsxDEV(Q8,{options:_,onChange:L,onCancel:A,onUpFromFirstItem:K,isDisabled:q},void 0,!1,void 0,this),Q[14]=K,Q[15]=L,Q[16]=q,Q[17]=_,Q[18]=A,Q[19]=R;else R=Q[19];let D;if(Q[20]===Symbol.for("react.memo_cache_sentinel"))D=W3.jsxDEV(M,{dimColor:!0,children:[W3.jsxDEV(M,{bold:!0,dimColor:!0,children:"Allow unsandboxed fallback:"},void 0,!1,void 0,this)," ","When a command fails due to sandbox restrictions, Glock can retry with dangerouslyDisableSandbox to run outside the sandbox (falling back to default permissions)."]},void 0,!0,void 0,this),Q[20]=D;else D=Q[20];let $;if(Q[21]===Symbol.for("react.memo_cache_sentinel"))$=W3.jsxDEV(M,{dimColor:!0,children:[W3.jsxDEV(M,{bold:!0,dimColor:!0,children:"Strict sandbox mode:"},void 0,!1,void 0,this)," ","All bash commands invoked by the model must run in the sandbox unless they are explicitly listed in excludedCommands."]},void 0,!0,void 0,this),Q[21]=$;else $=Q[21];let y;if(Q[22]===Symbol.for("react.memo_cache_sentinel"))y=W3.jsxDEV(f,{flexDirection:"column",marginTop:1,gap:1,children:[D,$,W3.jsxDEV(M,{dimColor:!0,children:["Learn more:"," ",W3.jsxDEV(zJ,{url:"https://docs.getglock.dev/en/sandboxing#configure-sandboxing",children:"docs.getglock.dev/en/sandboxing#configure-sandboxing"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),Q[22]=y;else y=Q[22];let v;if(Q[23]!==R)v=W3.jsxDEV(f,{flexDirection:"column",paddingY:1,children:[N,R,y]},void 0,!0,void 0,this),Q[23]=R,Q[24]=v;else v=Q[24];return v}var eo1,W3;var F2J=I(()=>{a0();V4();AQ();ew();eo1=T(e0(),1),W3=T(e(),1)});function _2J(J){let Q=Js1.c(34),{onComplete:X,depCheck:Z}=J,[Y]=j6(),q=p8.isSandboxingEnabled(),K=p8.isAutoAllowBashIfSandboxedEnabled(),G=Z.warnings.length>0,z;if(Q[0]===Symbol.for("react.memo_cache_sentinel"))z=q6(),Q[0]=z;else z=Q[0];let H=z.sandbox?.network?.allowAllUnixSockets,B=G&&!H,F=(()=>{if(!q)return"disabled";if(K)return"auto-allow";return"regular"})(),_;if(Q[1]!==Y)_=G6("success",Y)("(current)"),Q[1]=Y,Q[2]=_;else _=Q[2];let O=_,L=F==="auto-allow"?`Sandbox BashTool, with auto-allow ${O}`:"Sandbox BashTool, with auto-allow",N;if(Q[3]!==L)N={label:L,value:"auto-allow"},Q[3]=L,Q[4]=N;else N=Q[4];let A=F==="regular"?`Sandbox BashTool, with regular permissions ${O}`:"Sandbox BashTool, with regular permissions",R;if(Q[5]!==A)R={label:A,value:"regular"},Q[5]=A,Q[6]=R;else R=Q[6];let D=F==="disabled"?`No Sandbox ${O}`:"No Sandbox",$;if(Q[7]!==D)$={label:D,value:"disabled"},Q[7]=D,Q[8]=$;else $=Q[8];let y;if(Q[9]!==N||Q[10]!==R||Q[11]!==$)y=[N,R,$],Q[9]=N,Q[10]=R,Q[11]=$,Q[12]=y;else y=Q[12];let v=y,E;if(Q[13]!==X)E=async function(Y0){let G0=Y0;J:switch(G0){case"auto-allow":{await p8.setSandboxSettings({enabled:!0,autoAllowBashIfSandboxed:!0}),X("\u2713 Sandbox enabled with auto-allow for bash commands");break J}case"regular":{await p8.setSandboxSettings({enabled:!0,autoAllowBashIfSandboxed:!1}),X("\u2713 Sandbox enabled with regular bash permissions");break J}case"disabled":await p8.setSandboxSettings({enabled:!1,autoAllowBashIfSandboxed:!1}),X("\u25CB Sandbox disabled")}},Q[13]=X,Q[14]=E;else E=Q[14];let C=E,S;if(Q[15]!==X)S={"confirm:no":()=>X(void 0,{display:"skip"})},Q[15]=X,Q[16]=S;else S=Q[16];let k;if(Q[17]===Symbol.for("react.memo_cache_sentinel"))k={context:"Settings"},Q[17]=k;else k=Q[17];C6(S,k);let h;if(Q[18]!==C||Q[19]!==X||Q[20]!==v||Q[21]!==B)h=Pq.jsxDEV(_Y,{title:"Mode",children:Pq.jsxDEV(IFQ,{showSocketWarning:B,options:v,onSelect:C,onComplete:X},void 0,!1,void 0,this)},"mode",!1,void 0,this),Q[18]=C,Q[19]=X,Q[20]=v,Q[21]=B,Q[22]=h;else h=Q[22];let u=h,x;if(Q[23]!==X)x=Pq.jsxDEV(_Y,{title:"Overrides",children:Pq.jsxDEV(U2J,{onComplete:X},void 0,!1,void 0,this)},"overrides",!1,void 0,this),Q[23]=X,Q[24]=x;else x=Q[24];let m=x,p;if(Q[25]===Symbol.for("react.memo_cache_sentinel"))p=Pq.jsxDEV(_Y,{title:"Config",children:Pq.jsxDEV(z2J,{},void 0,!1,void 0,this)},"config",!1,void 0,this),Q[25]=p;else p=Q[25];let c=p,r=Z.errors.length>0,J0;if(Q[26]!==Z||Q[27]!==r||Q[28]!==G||Q[29]!==u||Q[30]!==m)J0=r?[Pq.jsxDEV(_Y,{title:"Dependencies",children:Pq.jsxDEV(to1,{depCheck:Z},void 0,!1,void 0,this)},"dependencies",!1,void 0,this)]:[u,...G?[Pq.jsxDEV(_Y,{title:"Dependencies",children:Pq.jsxDEV(to1,{depCheck:Z},void 0,!1,void 0,this)},"dependencies",!1,void 0,this)]:[],m,c],Q[26]=Z,Q[27]=r,Q[28]=G,Q[29]=u,Q[30]=m,Q[31]=J0;else J0=Q[31];let n=J0,s;if(Q[32]!==n)s=Pq.jsxDEV(yX,{color:"permission",children:Pq.jsxDEV(tw,{title:"Sandbox:",color:"permission",defaultTab:"Mode",children:n},void 0,!1,void 0,this)},void 0,!1,void 0,this),Q[32]=n,Q[33]=s;else s=Q[33];return s}function IFQ(J){let Q=Js1.c(16),{showSocketWarning:X,options:Z,onSelect:Y,onComplete:q}=J,{headerFocused:K,focusHeader:G}=BU(),z;if(Q[0]!==X)z=X&&Pq.jsxDEV(f,{marginBottom:1,children:Pq.jsxDEV(M,{color:"warning",children:"Cannot block unix domain sockets (see Dependencies tab)"},void 0,!1,void 0,this)},void 0,!1,void 0,this),Q[0]=X,Q[1]=z;else z=Q[1];let W;if(Q[2]===Symbol.for("react.memo_cache_sentinel"))W=Pq.jsxDEV(f,{marginBottom:1,children:Pq.jsxDEV(M,{bold:!0,children:"Configure Mode:"},void 0,!1,void 0,this)},void 0,!1,void 0,this),Q[2]=W;else W=Q[2];let H;if(Q[3]!==q)H=()=>q(void 0,{display:"skip"}),Q[3]=q,Q[4]=H;else H=Q[4];let B;if(Q[5]!==G||Q[6]!==K||Q[7]!==Y||Q[8]!==Z||Q[9]!==H)B=Pq.jsxDEV(Q8,{options:Z,onChange:Y,onCancel:H,onUpFromFirstItem:G,isDisabled:K},void 0,!1,void 0,this),Q[5]=G,Q[6]=K,Q[7]=Y,Q[8]=Z,Q[9]=H,Q[10]=B;else B=Q[10];let U;if(Q[11]===Symbol.for("react.memo_cache_sentinel"))U=Pq.jsxDEV(M,{dimColor:!0,children:[Pq.jsxDEV(M,{bold:!0,dimColor:!0,children:"Auto-allow mode:"},void 0,!1,void 0,this)," ","Commands will try to run in the sandbox automatically, and attempts to run outside of the sandbox fallback to regular permissions. Explicit ask/deny rules are always respected."]},void 0,!0,void 0,this),Q[11]=U;else U=Q[11];let F;if(Q[12]===Symbol.for("react.memo_cache_sentinel"))F=Pq.jsxDEV(f,{flexDirection:"column",marginTop:1,gap:1,children:[U,Pq.jsxDEV(M,{dimColor:!0,children:["Learn more:"," ",Pq.jsxDEV(zJ,{url:"https://docs.getglock.dev/en/sandboxing",children:"docs.getglock.dev/en/sandboxing"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),Q[12]=F;else F=Q[12];let _;if(Q[13]!==z||Q[14]!==B)_=Pq.jsxDEV(f,{flexDirection:"column",paddingY:1,children:[z,W,B,F]},void 0,!0,void 0,this),Q[13]=z,Q[14]=B,Q[15]=_;else _=Q[15];return _}var Js1,Pq;var O2J=I(()=>{a0();f6();V4();g8();AQ();t3();ew();W2J();B2J();F2J();Js1=T(e0(),1),Pq=T(e(),1)});var L2J={};X8(L2J,{call:()=>bFQ});import{relative as yFQ}from"path";async function bFQ(J,Q,X){let Y=q6().theme||"light",q=N8();if(!p8.isSupportedPlatform()){let z=q==="wsl"?"Error: Sandboxing requires WSL2. WSL1 is not supported.":"Error: Sandboxing is currently only supported on macOS, Linux, and WSL2.",W=G6("error",Y)(z);return J(W),null}let K=p8.checkDependencies();if(!p8.isPlatformInEnabledList()){let z=G6("error",Y)(`Error: Sandboxing is disabled for this platform (${q}) via the enabledPlatforms setting.`);return J(z),null}if(p8.areSandboxSettingsLockedByPolicy()){let z=G6("error",Y)("Error: Sandbox settings are overridden by a higher-priority configuration and cannot be changed locally.");return J(z),null}let G=X?.trim()||"";if(!G)return V2J.jsxDEV(_2J,{onComplete:J,depCheck:K},void 0,!1,void 0,this);if(G){let W=G.split(" ")[0];if(W==="exclude"){let H=G.slice(8).trim();if(!H){let O=G6("error",Y)('Error: Please provide a command pattern to exclude (e.g., /sandbox exclude "npm run test:*")');return J(O),null}let B=H.replace(/^["']|["']$/g,"");fI1(B);let U=wK("localSettings"),F=U?yFQ(rv(),U):".glock/settings.local.json",_=G6("success",Y)(`Added "${B}" to excluded commands in ${F}`);return J(_),null}else{let H=G6("error",Y)(`Error: Unknown subcommand "${W}". Available subcommand: exclude`);return J(H),null}}return null}var V2J;var N2J=I(()=>{N1();O2J();a0();k9();V4();g8();V2J=T(e(),1)});var PFQ,w2J;var A2J=I(()=>{r6();V4();PFQ={name:"sandbox",get description(){let J=p8.isSandboxingEnabled(),Q=p8.isAutoAllowBashIfSandboxedEnabled(),X=p8.areUnsandboxedCommandsAllowed(),Z=p8.areSandboxSettingsLockedByPolicy(),Y=p8.checkDependencies().errors.length===0,q;if(!Y)q=s0.warning;else q=J?s0.tick:s0.circle;let K="sandbox disabled";if(J)K=Q?"sandbox enabled (auto-allow)":"sandbox enabled",K+=X?", fallback allowed":"";if(Z)K+=" (managed)";return`${q} ${K} (\u23CE to configure)`},argumentHint:'exclude "command pattern"',get isHidden(){return!p8.isSupportedPlatform()||!p8.isPlatformInEnabledList()},immediate:!0,type:"local-jsx",load:()=>Promise.resolve().then(() => (N2J(),L2J))},w2J=PFQ});var R2J={};X8(R2J,{call:()=>EFQ});async function EFQ(){if(await IX("https://www.stickermule.com/glock"))return{type:"text",value:"Opening sticker page in browser\u2026"};else return{type:"text",value:"Failed to open browser. Visit: https://www.stickermule.com/glock"}}var M2J=I(()=>{s3()});var TFQ,Qs1;var D2J=I(()=>{TFQ={type:"local",name:"stickers",description:"Order Glock stickers",supportsNonInteractive:!1,load:()=>Promise.resolve().then(() => (M2J(),R2J))},Qs1=TFQ});import{constants as b11}from"fs";import{mkdir as CFQ,open as vFQ}from"fs/promises";import{dirname as fFQ,isAbsolute as SFQ,join as $2J,normalize as xFQ,sep as kFQ}from"path";function Bz(J){let{files:Q}=J,X,Z=J.getPromptForCommand;if(Q&&Object.keys(Q).length>0){X=y2J(J.name);let q,K=J.getPromptForCommand;Z=async(G,z)=>{q??=hFQ(J.name,Q);let W=await q,H=await K(G,z);if(W===null)return H;return dFQ(H,W)}}let Y={type:"prompt",name:J.name,description:J.description,aliases:J.aliases,hasUserSpecifiedDescription:!0,allowedTools:J.allowedTools??[],argumentHint:J.argumentHint,whenToUse:J.whenToUse,model:J.model,disableModelInvocation:J.disableModelInvocation??!1,userInvocable:J.userInvocable??!0,contentLength:0,source:"bundled",loadedFrom:"bundled",hooks:J.hooks,skillRoot:X,context:J.context,agent:J.agent,isEnabled:J.isEnabled,isHidden:!(J.userInvocable??!0),progressMessage:"running",getPromptForCommand:Z};j2J.push(Y)}function I2J(){return[...j2J]}function y2J(J){return $2J(Gi1(),J)}async function hFQ(J,Q){let X=y2J(J);try{return await uFQ(X,Q),X}catch(Z){return b(`Failed to extract bundled skill '${J}' to ${X}: ${Z instanceof Error?Z.message:String(Z)}`),null}}async function uFQ(J,Q){let X=new Map;for(let[Z,Y]of Object.entries(Q)){let q=cFQ(J,Z),K=fFQ(q),G=[q,Y],z=X.get(K);if(z)z.push(G);else X.set(K,[G])}await Promise.all([...X].map(async([Z,Y])=>{await CFQ(Z,{recursive:!0,mode:448}),await Promise.all(Y.map(([q,K])=>pFQ(q,K)))}))}async function pFQ(J,Q){let X=await vFQ(J,mFQ,384);try{await X.writeFile(Q,"utf8")}finally{await X.close()}}function cFQ(J,Q){let X=xFQ(Q);if(SFQ(X)||X.split(kFQ).includes("..")||X.split("/").includes(".."))throw Error(`bundled skill file path escapes skill dir: ${Q}`);return $2J(J,X)}function dFQ(J,Q){let X=`Base directory for this skill: ${Q}
|
|
5777
|
+
${ur(X.error_count,"error")} during load. Run /doctor for details.`;return{type:"text",value:Y}};var cUJ=I(()=>{N1();so1();t1();y11();Pi()});var _FQ,dUJ;var lUJ=I(()=>{_FQ={type:"local",name:"reload-plugins",description:"Activate pending plugin changes in the current session",supportsNonInteractive:!1,load:()=>Promise.resolve().then(() => (cUJ(),pUJ))},dUJ=_FQ});var iUJ={};X8(iUJ,{call:()=>OFQ});async function OFQ(J,Q){if(Q.openMessageSelector)Q.openMessageSelector();return{type:"skip"}}var LFQ,nUJ;var rUJ=I(()=>{LFQ={description:"Restore the code and/or conversation to a previous point",name:"rewind",aliases:["checkpoint"],argumentHint:"",type:"local",supportsNonInteractive:!1,load:()=>Promise.resolve().then(() => iUJ)},nUJ=LFQ});var aUJ;var oUJ=I(()=>{aUJ={isEnabled:()=>!1,isHidden:!0,name:"stub"}});var VFQ=async()=>{return{type:"text",value:"0.1.17 (built 2026-04-05T08:41:33.635Z)"}},NFQ,sUJ;var tUJ=I(()=>{NFQ={type:"local",name:"version",description:"Print the version this session is running (not what autoupdate downloaded)",isEnabled:()=>process.env.USER_TYPE==="ant",supportsNonInteractive:!0,load:()=>Promise.resolve({call:VFQ})},sUJ=NFQ});var eUJ;var J2J=I(()=>{eUJ={isEnabled:()=>!1,isHidden:!0,name:"stub"}});var Q2J,X2J,Z2J;var Y2J=I(()=>{Q2J={isEnabled:()=>!1,isHidden:!0,name:"stub"},X2J=Q2J,Z2J=Q2J});var q2J;var K2J=I(()=>{q2J={isEnabled:()=>!1,isHidden:!0,name:"stub"}});function z2J(){let J=G2J.c(3),Q=p8.isSandboxingEnabled(),X;if(J[0]===Symbol.for("react.memo_cache_sentinel")){let q=p8.checkDependencies();X=q.warnings.length>0?hY.jsxDEV(f,{marginTop:1,flexDirection:"column",children:q.warnings.map(wFQ)},void 0,!1,void 0,this):null,J[0]=X}else X=J[0];let Z=X;if(!Q){let q;if(J[1]===Symbol.for("react.memo_cache_sentinel"))q=hY.jsxDEV(f,{flexDirection:"column",paddingY:1,children:[hY.jsxDEV(M,{color:"subtle",children:"Sandbox is not enabled"},void 0,!1,void 0,this),Z]},void 0,!0,void 0,this),J[1]=q;else q=J[1];return q}let Y;if(J[2]===Symbol.for("react.memo_cache_sentinel")){let q=p8.getFsReadConfig(),K=p8.getFsWriteConfig(),G=p8.getNetworkRestrictionConfig(),z=p8.getAllowUnixSockets(),W=p8.getExcludedCommands(),H=p8.getLinuxGlobPatternWarnings();Y=hY.jsxDEV(f,{flexDirection:"column",paddingY:1,children:[hY.jsxDEV(f,{flexDirection:"column",children:[hY.jsxDEV(M,{bold:!0,color:"permission",children:"Excluded Commands:"},void 0,!1,void 0,this),hY.jsxDEV(M,{dimColor:!0,children:W.length>0?W.join(", "):"None"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),q.denyOnly.length>0&&hY.jsxDEV(f,{marginTop:1,flexDirection:"column",children:[hY.jsxDEV(M,{bold:!0,color:"permission",children:"Filesystem Read Restrictions:"},void 0,!1,void 0,this),hY.jsxDEV(M,{dimColor:!0,children:["Denied: ",q.denyOnly.join(", ")]},void 0,!0,void 0,this),q.allowWithinDeny&&q.allowWithinDeny.length>0&&hY.jsxDEV(M,{dimColor:!0,children:["Allowed within denied: ",q.allowWithinDeny.join(", ")]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),K.allowOnly.length>0&&hY.jsxDEV(f,{marginTop:1,flexDirection:"column",children:[hY.jsxDEV(M,{bold:!0,color:"permission",children:"Filesystem Write Restrictions:"},void 0,!1,void 0,this),hY.jsxDEV(M,{dimColor:!0,children:["Allowed: ",K.allowOnly.join(", ")]},void 0,!0,void 0,this),K.denyWithinAllow.length>0&&hY.jsxDEV(M,{dimColor:!0,children:["Denied within allowed: ",K.denyWithinAllow.join(", ")]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),(G.allowedHosts&&G.allowedHosts.length>0||G.deniedHosts&&G.deniedHosts.length>0)&&hY.jsxDEV(f,{marginTop:1,flexDirection:"column",children:[hY.jsxDEV(M,{bold:!0,color:"permission",children:["Network Restrictions",ZB0()?" (Managed)":"",":"]},void 0,!0,void 0,this),G.allowedHosts&&G.allowedHosts.length>0&&hY.jsxDEV(M,{dimColor:!0,children:["Allowed: ",G.allowedHosts.join(", ")]},void 0,!0,void 0,this),G.deniedHosts&&G.deniedHosts.length>0&&hY.jsxDEV(M,{dimColor:!0,children:["Denied: ",G.deniedHosts.join(", ")]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),z&&z.length>0&&hY.jsxDEV(f,{marginTop:1,flexDirection:"column",children:[hY.jsxDEV(M,{bold:!0,color:"permission",children:"Allowed Unix Sockets:"},void 0,!1,void 0,this),hY.jsxDEV(M,{dimColor:!0,children:z.join(", ")},void 0,!1,void 0,this)]},void 0,!0,void 0,this),H.length>0&&hY.jsxDEV(f,{marginTop:1,flexDirection:"column",children:[hY.jsxDEV(M,{bold:!0,color:"warning",children:"\u26A0 Warning: Glob patterns not fully supported on Linux"},void 0,!1,void 0,this),hY.jsxDEV(M,{dimColor:!0,children:["The following patterns will be ignored:"," ",H.slice(0,3).join(", "),H.length>3&&` (${H.length-3} more)`]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),Z]},void 0,!0,void 0,this),J[2]=Y}else Y=J[2];return Y}function wFQ(J,Q){return hY.jsxDEV(M,{dimColor:!0,children:J},Q,!1,void 0,this)}var G2J,hY;var W2J=I(()=>{a0();V4();G2J=T(e0(),1),hY=T(e(),1)});function to1(J){let Q=H2J.c(24),{depCheck:X}=J,Z;if(Q[0]===Symbol.for("react.memo_cache_sentinel"))Z=N8(),Q[0]=Z;else Z=Q[0];let q=Z==="macos",K;if(Q[1]!==X.errors)K=X.errors.some($FQ),Q[1]=X.errors,Q[2]=K;else K=Q[2];let G=K,z;if(Q[3]!==X.errors)z=X.errors.some(DFQ),Q[3]=X.errors,Q[4]=z;else z=Q[4];let W=z,H;if(Q[5]!==X.errors)H=X.errors.some(MFQ),Q[5]=X.errors,Q[6]=H;else H=Q[6];let B=H,U=X.warnings.length>0,F;if(Q[7]!==W||Q[8]!==X.errors||Q[9]!==G||Q[10]!==U||Q[11]!==B){let _=X.errors.filter(RFQ),O=q?"brew install ripgrep":"apt install ripgrep",L;if(Q[13]===Symbol.for("react.memo_cache_sentinel"))L=q&&NZ.jsxDEV(f,{flexDirection:"column",children:NZ.jsxDEV(M,{children:["seatbelt: ",NZ.jsxDEV(M,{color:"success",children:"built-in (macOS)"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this),Q[13]=L;else L=Q[13];let N,A;if(Q[14]!==G)N=NZ.jsxDEV(M,{children:["ripgrep (rg):"," ",G?NZ.jsxDEV(M,{color:"error",children:"not found"},void 0,!1,void 0,this):NZ.jsxDEV(M,{color:"success",children:"found"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),A=G&&NZ.jsxDEV(M,{dimColor:!0,children:[" ","\xB7 ",O]},void 0,!0,void 0,this),Q[14]=G,Q[15]=N,Q[16]=A;else N=Q[15],A=Q[16];let R;if(Q[17]!==N||Q[18]!==A)R=NZ.jsxDEV(f,{flexDirection:"column",children:[N,A]},void 0,!0,void 0,this),Q[17]=N,Q[18]=A,Q[19]=R;else R=Q[19];let D;if(Q[20]!==W||Q[21]!==U||Q[22]!==B)D=!q&&NZ.jsxDEV(NZ.Fragment,{children:[NZ.jsxDEV(f,{flexDirection:"column",children:[NZ.jsxDEV(M,{children:["bubblewrap (bwrap):"," ",W?NZ.jsxDEV(M,{color:"error",children:"not installed"},void 0,!1,void 0,this):NZ.jsxDEV(M,{color:"success",children:"installed"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),W&&NZ.jsxDEV(M,{dimColor:!0,children:[" ","\xB7 apt install bubblewrap"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),NZ.jsxDEV(f,{flexDirection:"column",children:[NZ.jsxDEV(M,{children:["socat:"," ",B?NZ.jsxDEV(M,{color:"error",children:"not installed"},void 0,!1,void 0,this):NZ.jsxDEV(M,{color:"success",children:"installed"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),B&&NZ.jsxDEV(M,{dimColor:!0,children:[" ","\xB7 apt install socat"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),NZ.jsxDEV(f,{flexDirection:"column",children:[NZ.jsxDEV(M,{children:["seccomp filter:"," ",U?NZ.jsxDEV(M,{color:"warning",children:"not installed"},void 0,!1,void 0,this):NZ.jsxDEV(M,{color:"success",children:"installed"},void 0,!1,void 0,this),U&&NZ.jsxDEV(M,{dimColor:!0,children:" (required to block unix domain sockets)"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),U&&NZ.jsxDEV(f,{flexDirection:"column",children:[NZ.jsxDEV(M,{dimColor:!0,children:[" ","\xB7 npm install -g @anthropic-ai/sandbox-runtime"]},void 0,!0,void 0,this),NZ.jsxDEV(M,{dimColor:!0,children:[" ","\xB7 or copy vendor/seccomp/* from sandbox-runtime and set"]},void 0,!0,void 0,this),NZ.jsxDEV(M,{dimColor:!0,children:[" ","sandbox.seccomp.bpfPath and applyPath in settings.json"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),Q[20]=W,Q[21]=U,Q[22]=B,Q[23]=D;else D=Q[23];F=NZ.jsxDEV(f,{flexDirection:"column",paddingY:1,gap:1,children:[L,R,D,_.map(AFQ)]},void 0,!0,void 0,this),Q[7]=W,Q[8]=X.errors,Q[9]=G,Q[10]=U,Q[11]=B,Q[12]=F}else F=Q[12];return F}function AFQ(J){return NZ.jsxDEV(M,{color:"error",children:J},J,!1,void 0,this)}function RFQ(J){return!J.includes("ripgrep")&&!J.includes("bwrap")&&!J.includes("socat")}function MFQ(J){return J.includes("socat")}function DFQ(J){return J.includes("bwrap")}function $FQ(J){return J.includes("ripgrep")}var H2J,NZ;var B2J=I(()=>{a0();k9();H2J=T(e0(),1),NZ=T(e(),1)});function U2J(J){let Q=eo1.c(5),{onComplete:X}=J,Z=p8.isSandboxingEnabled(),Y=p8.areSandboxSettingsLockedByPolicy(),q=p8.areUnsandboxedCommandsAllowed();if(!Z){let G;if(Q[0]===Symbol.for("react.memo_cache_sentinel"))G=W3.jsxDEV(f,{flexDirection:"column",paddingY:1,children:W3.jsxDEV(M,{color:"subtle",children:"Sandbox is not enabled. Enable sandbox to configure override settings."},void 0,!1,void 0,this)},void 0,!1,void 0,this),Q[0]=G;else G=Q[0];return G}if(Y){let G;if(Q[1]===Symbol.for("react.memo_cache_sentinel"))G=W3.jsxDEV(M,{color:"subtle",children:"Override settings are managed by a higher-priority configuration and cannot be changed locally."},void 0,!1,void 0,this),Q[1]=G;else G=Q[1];let z;if(Q[2]===Symbol.for("react.memo_cache_sentinel"))z=W3.jsxDEV(f,{flexDirection:"column",paddingY:1,children:[G,W3.jsxDEV(f,{marginTop:1,children:W3.jsxDEV(M,{dimColor:!0,children:["Current setting:"," ",q?"Allow unsandboxed fallback":"Strict sandbox mode"]},void 0,!0,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),Q[2]=z;else z=Q[2];return z}let K;if(Q[3]!==X)K=W3.jsxDEV(jFQ,{onComplete:X,currentMode:q?"open":"closed"},void 0,!1,void 0,this),Q[3]=X,Q[4]=K;else K=Q[4];return K}function jFQ(J){let Q=eo1.c(25),{onComplete:X,currentMode:Z}=J,[Y]=j6(),{headerFocused:q,focusHeader:K}=BU(),G;if(Q[0]!==Y)G=G6("success",Y)("(current)"),Q[0]=Y,Q[1]=G;else G=Q[1];let z=G,W=Z==="open"?`Allow unsandboxed fallback ${z}`:"Allow unsandboxed fallback",H;if(Q[2]!==W)H={label:W,value:"open"},Q[2]=W,Q[3]=H;else H=Q[3];let B=Z==="closed"?`Strict sandbox mode ${z}`:"Strict sandbox mode",U;if(Q[4]!==B)U={label:B,value:"closed"},Q[4]=B,Q[5]=U;else U=Q[5];let F;if(Q[6]!==H||Q[7]!==U)F=[H,U],Q[6]=H,Q[7]=U,Q[8]=F;else F=Q[8];let _=F,O;if(Q[9]!==X)O=async function(C){let S=C;await p8.setSandboxSettings({allowUnsandboxedCommands:S==="open"}),X(S==="open"?"\u2713 Unsandboxed fallback allowed - commands can run outside sandbox when necessary":"\u2713 Strict sandbox mode - all commands must run in sandbox or be excluded via the `excludedCommands` option")},Q[9]=X,Q[10]=O;else O=Q[10];let L=O,N;if(Q[11]===Symbol.for("react.memo_cache_sentinel"))N=W3.jsxDEV(f,{marginBottom:1,children:W3.jsxDEV(M,{bold:!0,children:"Configure Overrides:"},void 0,!1,void 0,this)},void 0,!1,void 0,this),Q[11]=N;else N=Q[11];let A;if(Q[12]!==X)A=()=>X(void 0,{display:"skip"}),Q[12]=X,Q[13]=A;else A=Q[13];let R;if(Q[14]!==K||Q[15]!==L||Q[16]!==q||Q[17]!==_||Q[18]!==A)R=W3.jsxDEV(Q8,{options:_,onChange:L,onCancel:A,onUpFromFirstItem:K,isDisabled:q},void 0,!1,void 0,this),Q[14]=K,Q[15]=L,Q[16]=q,Q[17]=_,Q[18]=A,Q[19]=R;else R=Q[19];let D;if(Q[20]===Symbol.for("react.memo_cache_sentinel"))D=W3.jsxDEV(M,{dimColor:!0,children:[W3.jsxDEV(M,{bold:!0,dimColor:!0,children:"Allow unsandboxed fallback:"},void 0,!1,void 0,this)," ","When a command fails due to sandbox restrictions, Glock can retry with dangerouslyDisableSandbox to run outside the sandbox (falling back to default permissions)."]},void 0,!0,void 0,this),Q[20]=D;else D=Q[20];let $;if(Q[21]===Symbol.for("react.memo_cache_sentinel"))$=W3.jsxDEV(M,{dimColor:!0,children:[W3.jsxDEV(M,{bold:!0,dimColor:!0,children:"Strict sandbox mode:"},void 0,!1,void 0,this)," ","All bash commands invoked by the model must run in the sandbox unless they are explicitly listed in excludedCommands."]},void 0,!0,void 0,this),Q[21]=$;else $=Q[21];let y;if(Q[22]===Symbol.for("react.memo_cache_sentinel"))y=W3.jsxDEV(f,{flexDirection:"column",marginTop:1,gap:1,children:[D,$,W3.jsxDEV(M,{dimColor:!0,children:["Learn more:"," ",W3.jsxDEV(zJ,{url:"https://docs.getglock.dev/en/sandboxing#configure-sandboxing",children:"docs.getglock.dev/en/sandboxing#configure-sandboxing"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),Q[22]=y;else y=Q[22];let v;if(Q[23]!==R)v=W3.jsxDEV(f,{flexDirection:"column",paddingY:1,children:[N,R,y]},void 0,!0,void 0,this),Q[23]=R,Q[24]=v;else v=Q[24];return v}var eo1,W3;var F2J=I(()=>{a0();V4();AQ();ew();eo1=T(e0(),1),W3=T(e(),1)});function _2J(J){let Q=Js1.c(34),{onComplete:X,depCheck:Z}=J,[Y]=j6(),q=p8.isSandboxingEnabled(),K=p8.isAutoAllowBashIfSandboxedEnabled(),G=Z.warnings.length>0,z;if(Q[0]===Symbol.for("react.memo_cache_sentinel"))z=q6(),Q[0]=z;else z=Q[0];let H=z.sandbox?.network?.allowAllUnixSockets,B=G&&!H,F=(()=>{if(!q)return"disabled";if(K)return"auto-allow";return"regular"})(),_;if(Q[1]!==Y)_=G6("success",Y)("(current)"),Q[1]=Y,Q[2]=_;else _=Q[2];let O=_,L=F==="auto-allow"?`Sandbox BashTool, with auto-allow ${O}`:"Sandbox BashTool, with auto-allow",N;if(Q[3]!==L)N={label:L,value:"auto-allow"},Q[3]=L,Q[4]=N;else N=Q[4];let A=F==="regular"?`Sandbox BashTool, with regular permissions ${O}`:"Sandbox BashTool, with regular permissions",R;if(Q[5]!==A)R={label:A,value:"regular"},Q[5]=A,Q[6]=R;else R=Q[6];let D=F==="disabled"?`No Sandbox ${O}`:"No Sandbox",$;if(Q[7]!==D)$={label:D,value:"disabled"},Q[7]=D,Q[8]=$;else $=Q[8];let y;if(Q[9]!==N||Q[10]!==R||Q[11]!==$)y=[N,R,$],Q[9]=N,Q[10]=R,Q[11]=$,Q[12]=y;else y=Q[12];let v=y,E;if(Q[13]!==X)E=async function(Y0){let G0=Y0;J:switch(G0){case"auto-allow":{await p8.setSandboxSettings({enabled:!0,autoAllowBashIfSandboxed:!0}),X("\u2713 Sandbox enabled with auto-allow for bash commands");break J}case"regular":{await p8.setSandboxSettings({enabled:!0,autoAllowBashIfSandboxed:!1}),X("\u2713 Sandbox enabled with regular bash permissions");break J}case"disabled":await p8.setSandboxSettings({enabled:!1,autoAllowBashIfSandboxed:!1}),X("\u25CB Sandbox disabled")}},Q[13]=X,Q[14]=E;else E=Q[14];let C=E,S;if(Q[15]!==X)S={"confirm:no":()=>X(void 0,{display:"skip"})},Q[15]=X,Q[16]=S;else S=Q[16];let k;if(Q[17]===Symbol.for("react.memo_cache_sentinel"))k={context:"Settings"},Q[17]=k;else k=Q[17];C6(S,k);let h;if(Q[18]!==C||Q[19]!==X||Q[20]!==v||Q[21]!==B)h=Pq.jsxDEV(_Y,{title:"Mode",children:Pq.jsxDEV(IFQ,{showSocketWarning:B,options:v,onSelect:C,onComplete:X},void 0,!1,void 0,this)},"mode",!1,void 0,this),Q[18]=C,Q[19]=X,Q[20]=v,Q[21]=B,Q[22]=h;else h=Q[22];let u=h,x;if(Q[23]!==X)x=Pq.jsxDEV(_Y,{title:"Overrides",children:Pq.jsxDEV(U2J,{onComplete:X},void 0,!1,void 0,this)},"overrides",!1,void 0,this),Q[23]=X,Q[24]=x;else x=Q[24];let m=x,p;if(Q[25]===Symbol.for("react.memo_cache_sentinel"))p=Pq.jsxDEV(_Y,{title:"Config",children:Pq.jsxDEV(z2J,{},void 0,!1,void 0,this)},"config",!1,void 0,this),Q[25]=p;else p=Q[25];let c=p,r=Z.errors.length>0,J0;if(Q[26]!==Z||Q[27]!==r||Q[28]!==G||Q[29]!==u||Q[30]!==m)J0=r?[Pq.jsxDEV(_Y,{title:"Dependencies",children:Pq.jsxDEV(to1,{depCheck:Z},void 0,!1,void 0,this)},"dependencies",!1,void 0,this)]:[u,...G?[Pq.jsxDEV(_Y,{title:"Dependencies",children:Pq.jsxDEV(to1,{depCheck:Z},void 0,!1,void 0,this)},"dependencies",!1,void 0,this)]:[],m,c],Q[26]=Z,Q[27]=r,Q[28]=G,Q[29]=u,Q[30]=m,Q[31]=J0;else J0=Q[31];let n=J0,s;if(Q[32]!==n)s=Pq.jsxDEV(yX,{color:"permission",children:Pq.jsxDEV(tw,{title:"Sandbox:",color:"permission",defaultTab:"Mode",children:n},void 0,!1,void 0,this)},void 0,!1,void 0,this),Q[32]=n,Q[33]=s;else s=Q[33];return s}function IFQ(J){let Q=Js1.c(16),{showSocketWarning:X,options:Z,onSelect:Y,onComplete:q}=J,{headerFocused:K,focusHeader:G}=BU(),z;if(Q[0]!==X)z=X&&Pq.jsxDEV(f,{marginBottom:1,children:Pq.jsxDEV(M,{color:"warning",children:"Cannot block unix domain sockets (see Dependencies tab)"},void 0,!1,void 0,this)},void 0,!1,void 0,this),Q[0]=X,Q[1]=z;else z=Q[1];let W;if(Q[2]===Symbol.for("react.memo_cache_sentinel"))W=Pq.jsxDEV(f,{marginBottom:1,children:Pq.jsxDEV(M,{bold:!0,children:"Configure Mode:"},void 0,!1,void 0,this)},void 0,!1,void 0,this),Q[2]=W;else W=Q[2];let H;if(Q[3]!==q)H=()=>q(void 0,{display:"skip"}),Q[3]=q,Q[4]=H;else H=Q[4];let B;if(Q[5]!==G||Q[6]!==K||Q[7]!==Y||Q[8]!==Z||Q[9]!==H)B=Pq.jsxDEV(Q8,{options:Z,onChange:Y,onCancel:H,onUpFromFirstItem:G,isDisabled:K},void 0,!1,void 0,this),Q[5]=G,Q[6]=K,Q[7]=Y,Q[8]=Z,Q[9]=H,Q[10]=B;else B=Q[10];let U;if(Q[11]===Symbol.for("react.memo_cache_sentinel"))U=Pq.jsxDEV(M,{dimColor:!0,children:[Pq.jsxDEV(M,{bold:!0,dimColor:!0,children:"Auto-allow mode:"},void 0,!1,void 0,this)," ","Commands will try to run in the sandbox automatically, and attempts to run outside of the sandbox fallback to regular permissions. Explicit ask/deny rules are always respected."]},void 0,!0,void 0,this),Q[11]=U;else U=Q[11];let F;if(Q[12]===Symbol.for("react.memo_cache_sentinel"))F=Pq.jsxDEV(f,{flexDirection:"column",marginTop:1,gap:1,children:[U,Pq.jsxDEV(M,{dimColor:!0,children:["Learn more:"," ",Pq.jsxDEV(zJ,{url:"https://docs.getglock.dev/en/sandboxing",children:"docs.getglock.dev/en/sandboxing"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),Q[12]=F;else F=Q[12];let _;if(Q[13]!==z||Q[14]!==B)_=Pq.jsxDEV(f,{flexDirection:"column",paddingY:1,children:[z,W,B,F]},void 0,!0,void 0,this),Q[13]=z,Q[14]=B,Q[15]=_;else _=Q[15];return _}var Js1,Pq;var O2J=I(()=>{a0();f6();V4();g8();AQ();t3();ew();W2J();B2J();F2J();Js1=T(e0(),1),Pq=T(e(),1)});var L2J={};X8(L2J,{call:()=>bFQ});import{relative as yFQ}from"path";async function bFQ(J,Q,X){let Y=q6().theme||"light",q=N8();if(!p8.isSupportedPlatform()){let z=q==="wsl"?"Error: Sandboxing requires WSL2. WSL1 is not supported.":"Error: Sandboxing is currently only supported on macOS, Linux, and WSL2.",W=G6("error",Y)(z);return J(W),null}let K=p8.checkDependencies();if(!p8.isPlatformInEnabledList()){let z=G6("error",Y)(`Error: Sandboxing is disabled for this platform (${q}) via the enabledPlatforms setting.`);return J(z),null}if(p8.areSandboxSettingsLockedByPolicy()){let z=G6("error",Y)("Error: Sandbox settings are overridden by a higher-priority configuration and cannot be changed locally.");return J(z),null}let G=X?.trim()||"";if(!G)return V2J.jsxDEV(_2J,{onComplete:J,depCheck:K},void 0,!1,void 0,this);if(G){let W=G.split(" ")[0];if(W==="exclude"){let H=G.slice(8).trim();if(!H){let O=G6("error",Y)('Error: Please provide a command pattern to exclude (e.g., /sandbox exclude "npm run test:*")');return J(O),null}let B=H.replace(/^["']|["']$/g,"");fI1(B);let U=wK("localSettings"),F=U?yFQ(rv(),U):".glock/settings.local.json",_=G6("success",Y)(`Added "${B}" to excluded commands in ${F}`);return J(_),null}else{let H=G6("error",Y)(`Error: Unknown subcommand "${W}". Available subcommand: exclude`);return J(H),null}}return null}var V2J;var N2J=I(()=>{N1();O2J();a0();k9();V4();g8();V2J=T(e(),1)});var PFQ,w2J;var A2J=I(()=>{r6();V4();PFQ={name:"sandbox",get description(){let J=p8.isSandboxingEnabled(),Q=p8.isAutoAllowBashIfSandboxedEnabled(),X=p8.areUnsandboxedCommandsAllowed(),Z=p8.areSandboxSettingsLockedByPolicy(),Y=p8.checkDependencies().errors.length===0,q;if(!Y)q=s0.warning;else q=J?s0.tick:s0.circle;let K="sandbox disabled";if(J)K=Q?"sandbox enabled (auto-allow)":"sandbox enabled",K+=X?", fallback allowed":"";if(Z)K+=" (managed)";return`${q} ${K} (\u23CE to configure)`},argumentHint:'exclude "command pattern"',get isHidden(){return!p8.isSupportedPlatform()||!p8.isPlatformInEnabledList()},immediate:!0,type:"local-jsx",load:()=>Promise.resolve().then(() => (N2J(),L2J))},w2J=PFQ});var R2J={};X8(R2J,{call:()=>EFQ});async function EFQ(){if(await IX("https://www.stickermule.com/glock"))return{type:"text",value:"Opening sticker page in browser\u2026"};else return{type:"text",value:"Failed to open browser. Visit: https://www.stickermule.com/glock"}}var M2J=I(()=>{s3()});var TFQ,Qs1;var D2J=I(()=>{TFQ={type:"local",name:"stickers",description:"Order Glock stickers",supportsNonInteractive:!1,load:()=>Promise.resolve().then(() => (M2J(),R2J))},Qs1=TFQ});import{constants as b11}from"fs";import{mkdir as CFQ,open as vFQ}from"fs/promises";import{dirname as fFQ,isAbsolute as SFQ,join as $2J,normalize as xFQ,sep as kFQ}from"path";function Bz(J){let{files:Q}=J,X,Z=J.getPromptForCommand;if(Q&&Object.keys(Q).length>0){X=y2J(J.name);let q,K=J.getPromptForCommand;Z=async(G,z)=>{q??=hFQ(J.name,Q);let W=await q,H=await K(G,z);if(W===null)return H;return dFQ(H,W)}}let Y={type:"prompt",name:J.name,description:J.description,aliases:J.aliases,hasUserSpecifiedDescription:!0,allowedTools:J.allowedTools??[],argumentHint:J.argumentHint,whenToUse:J.whenToUse,model:J.model,disableModelInvocation:J.disableModelInvocation??!1,userInvocable:J.userInvocable??!0,contentLength:0,source:"bundled",loadedFrom:"bundled",hooks:J.hooks,skillRoot:X,context:J.context,agent:J.agent,isEnabled:J.isEnabled,isHidden:!(J.userInvocable??!0),progressMessage:"running",getPromptForCommand:Z};j2J.push(Y)}function I2J(){return[...j2J]}function y2J(J){return $2J(Gi1(),J)}async function hFQ(J,Q){let X=y2J(J);try{return await uFQ(X,Q),X}catch(Z){return b(`Failed to extract bundled skill '${J}' to ${X}: ${Z instanceof Error?Z.message:String(Z)}`),null}}async function uFQ(J,Q){let X=new Map;for(let[Z,Y]of Object.entries(Q)){let q=cFQ(J,Z),K=fFQ(q),G=[q,Y],z=X.get(K);if(z)z.push(G);else X.set(K,[G])}await Promise.all([...X].map(async([Z,Y])=>{await CFQ(Z,{recursive:!0,mode:448}),await Promise.all(Y.map(([q,K])=>pFQ(q,K)))}))}async function pFQ(J,Q){let X=await vFQ(J,mFQ,384);try{await X.writeFile(Q,"utf8")}finally{await X.close()}}function cFQ(J,Q){let X=xFQ(Q);if(SFQ(X)||X.split(kFQ).includes("..")||X.split("/").includes(".."))throw Error(`bundled skill file path escapes skill dir: ${Q}`);return $2J(J,X)}function dFQ(J,Q){let X=`Base directory for this skill: ${Q}
|
|
5778
5778
|
|
|
5779
5779
|
`;if(J.length>0&&J[0].type==="text")return[{type:"text",text:X+J[0].text},...J.slice(1)];return[{type:"text",text:X},...J]}var j2J,gFQ,mFQ;var GA=I(()=>{Z1();vX();j2J=[];gFQ=b11.O_NOFOLLOW??0,mFQ=process.platform==="win32"?"wx":b11.O_WRONLY|b11.O_CREAT|b11.O_EXCL|gFQ});var b2J;var P2J=I(()=>{b2J={isEnabled:()=>!1,isHidden:!0,name:"stub"}});function P11(){(gJ(),e4(Gk0)).saveWorktreeState(null)}function E2J({onDone:J,onCancel:Q}){let[X,Z]=Gg.useState("loading"),[Y,q]=Gg.useState([]),[K,G]=Gg.useState(0),[z,W]=Gg.useState(),H=yq();if(Gg.useEffect(()=>{async function $(){let y=[],v=await Z8("git",["status","--porcelain"]);if(v.stdout)y=v.stdout.split(`
|
|
5780
5780
|
`).filter((E)=>E.trim()!==""),q(y);if(H){let{stdout:E}=await Z8("git",["rev-list","--count",`${H.originalHeadCommit}..HEAD`]),C=parseInt(E.trim())||0;if(G(C),y.length===0&&C===0){Z("removing"),RV0().then(()=>{process.chdir(H.originalCwd),Dq(H.originalCwd),P11(),L4.cache.clear?.(),W("Worktree removed (no changes)")}).catch((S)=>{b(`Failed to clean up worktree: ${S}`,{level:"error"}),W("Worktree cleanup failed, exiting anyway")}).then(()=>{Z("done")});return}else Z("asking")}}$()},[H]),Gg.useEffect(()=>{if(X==="done")J(z)},[X,J,z]),!H)return J("No active worktree session found",{display:"system"}),null;if(X==="loading"||X==="done")return null;async function B($){if(!H)return;let y=Boolean(H.tmuxSessionName);if($==="keep"||$==="keep-with-tmux"){if(Z("keeping"),l("jarvis_api_error",{commits:K,changed_files:Y.length}),await AV0(),process.chdir(H.originalCwd),Dq(H.originalCwd),P11(),L4.cache.clear?.(),y)W(`Worktree kept. Your work is saved at ${H.worktreePath} on branch ${H.worktreeBranch}. Reattach to tmux session with: tmux attach -t ${H.tmuxSessionName}`);else W(`Worktree kept. Your work is saved at ${H.worktreePath} on branch ${H.worktreeBranch}`);Z("done")}else if($==="keep-kill-tmux"){if(Z("keeping"),l("jarvis_api_error",{commits:K,changed_files:Y.length}),H.tmuxSessionName)await wV0(H.tmuxSessionName);await AV0(),process.chdir(H.originalCwd),Dq(H.originalCwd),P11(),L4.cache.clear?.(),W(`Worktree kept at ${H.worktreePath} on branch ${H.worktreeBranch}. Tmux session terminated.`),Z("done")}else if($==="remove"||$==="remove-with-tmux"){if(Z("removing"),l("jarvis_api_error",{commits:K,changed_files:Y.length}),H.tmuxSessionName)await wV0(H.tmuxSessionName);try{await RV0(),process.chdir(H.originalCwd),Dq(H.originalCwd),P11(),L4.cache.clear?.()}catch(E){b(`Failed to clean up worktree: ${E}`,{level:"error"}),W("Worktree cleanup failed, exiting anyway"),Z("done");return}let v=y?" Tmux session terminated.":"";if(K>0&&Y.length>0)W(`Worktree removed. ${K} ${K===1?"commit":"commits"} and uncommitted changes were discarded.${v}`);else if(K>0)W(`Worktree removed. ${K} ${K===1?"commit":"commits"} on ${H.worktreeBranch} ${K===1?"was":"were"} discarded.${v}`);else if(Y.length>0)W(`Worktree removed. Uncommitted changes were discarded.${v}`);else W(`Worktree removed.${v}`);Z("done")}}if(X==="keeping")return SC.jsxDEV(f,{flexDirection:"row",marginY:1,children:[SC.jsxDEV(M7,{},void 0,!1,void 0,this),SC.jsxDEV(M,{children:"Keeping worktree\u2026"},void 0,!1,void 0,this)]},void 0,!0,void 0,this);if(X==="removing")return SC.jsxDEV(f,{flexDirection:"row",marginY:1,children:[SC.jsxDEV(M7,{},void 0,!1,void 0,this),SC.jsxDEV(M,{children:"Removing worktree\u2026"},void 0,!1,void 0,this)]},void 0,!0,void 0,this);let U=H.worktreeBranch,F=Y.length>0,_=K>0,O="";if(F&&_)O=`You have ${Y.length} uncommitted ${Y.length===1?"file":"files"} and ${K} ${K===1?"commit":"commits"} on ${U}. All will be lost if you remove.`;else if(F)O=`You have ${Y.length} uncommitted ${Y.length===1?"file":"files"}. These will be lost if you remove the worktree.`;else if(_)O=`You have ${K} ${K===1?"commit":"commits"} on ${U}. The branch will be deleted if you remove the worktree.`;else O="You are working in a worktree. Keep it to continue working there, or remove it to clean up.";function L(){if(Q){Q();return}B("keep")}let N=F||_?"All changes and commits will be lost.":"Clean up the worktree directory.",A=Boolean(H.tmuxSessionName),R=A?[{label:"Keep worktree and tmux session",value:"keep-with-tmux",description:`Stays at ${H.worktreePath}. Reattach with: tmux attach -t ${H.tmuxSessionName}`},{label:"Keep worktree, kill tmux session",value:"keep-kill-tmux",description:`Keeps worktree at ${H.worktreePath}, terminates tmux session.`},{label:"Remove worktree and tmux session",value:"remove-with-tmux",description:N}]:[{label:"Keep worktree",value:"keep",description:`Stays at ${H.worktreePath}`},{label:"Remove worktree",value:"remove",description:N}];return SC.jsxDEV(D8,{title:"Exiting worktree session",subtitle:O,onCancel:L,children:SC.jsxDEV(Q8,{defaultFocusValue:A?"keep-with-tmux":"keep",options:R,onChange:B},void 0,!1,void 0,this)},void 0,!1,void 0,this)}var Gg,SC;var T2J=I(()=>{D1();Z1();a0();T9();$K();$w();__();AQ();M9();zz();Gg=T(J1(),1),SC=T(e(),1)});function iFQ(){return J3(lFQ)??"Goodbye!"}function E11(J){let Q=C2J.c(5),{showWorktree:X,onDone:Z,onCancel:Y}=J,q;if(Q[0]!==Z)q=async function(z){Z(z??iFQ()),await c4(0,"prompt_input_exit")},Q[0]=Z,Q[1]=q;else q=Q[1];let K=q;if(X){let G;if(Q[2]!==Y||Q[3]!==K)G=v2J.jsxDEV(E2J,{onDone:K,onCancel:Y},void 0,!1,void 0,this),Q[2]=Y,Q[3]=K,Q[4]=G;else G=Q[4];return G}return null}var C2J,v2J,lFQ;var Xs1=I(()=>{GT();E5();T2J();C2J=T(e0(),1),v2J=T(e(),1),lFQ=["Goodbye!","See ya!","Bye!","Catch you later!"]});import{chmod as nFQ,mkdir as rFQ,readdir as aFQ,readFile as oFQ,unlink as S2J,writeFile as x2J}from"fs/promises";import{join as T11}from"path";function Zs1(){return T11(L8(),"sessions")}function sFQ(){return}async function k2J(){if(eW()!=null)return!1;let J=sFQ()??"interactive",Q=Zs1(),X=T11(Q,`${process.pid}.json`);UJ(async()=>{try{await S2J(X)}catch{}});try{return await rFQ(Q,{recursive:!0,mode:448}),await nFQ(Q,448),await x2J(X,l0({pid:process.pid,sessionId:A1(),cwd:j8(),startedAt:Date.now(),kind:J,entrypoint:process.env.GLOCK_ENTRYPOINT,...{},...{}})),P71((Z)=>{h2J({sessionId:Z})}),!0}catch(Z){return b(`[concurrentSessions] register failed: ${Q1(Z)}`),!1}}async function h2J(J){let Q=T11(Zs1(),`${process.pid}.json`);try{let X=c1(await oFQ(Q,"utf8"));await x2J(Q,l0({...X,...J}))}catch(X){b(`[concurrentSessions] updatePidFile failed: ${Q1(X)}`)}}async function gr(J){if(!J)return;await h2J({name:J})}async function C11(){let J=Zs1(),Q;try{Q=await aFQ(J)}catch(Z){if(!TX(Z))b(`[concurrentSessions] readdir failed: ${Q1(Z)}`);return 0}let X=0;for(let Z of Q){if(!/^\d+\.json$/.test(Z))continue;let Y=parseInt(Z.slice(0,-5),10);if(Y===process.pid){X++;continue}if(_k0(Y))X++;else if(N8()!=="wsl")S2J(T11(J,Z)).catch(()=>{})}return X}var mr=I(()=>{N1();EX();Z1();t1();T1();t10();k9();i1();FZ()});var u2J={};X8(u2J,{call:()=>J_Q});function eFQ(){return J3(tFQ)??"Goodbye!"}async function J_Q(J){let Q=yq()!==null;if(Q)return g2J.jsxDEV(E11,{showWorktree:Q,onDone:J,onCancel:()=>J()},void 0,!1,void 0,this);return J(eFQ()),await c4(0,"prompt_input_exit"),null}var g2J,tFQ;var m2J=I(()=>{GT();Xs1();mr();E5();__();g2J=T(e(),1),tFQ=["Goodbye!","See ya!","Bye!","Catch you later!"]});var Q_Q,Qw0;var Ys1=I(()=>{Q_Q={type:"local-jsx",name:"exit",aliases:["quit"],description:"Exit the REPL",immediate:!0,load:()=>Promise.resolve().then(() => (m2J(),u2J))},Qw0=Q_Q});import{join as X_Q}from"path";function p2J({content:J,defaultFilename:Q,onDone:X}){let[,Z]=zg.useState(null),[Y,q]=zg.useState(Q),[K,G]=zg.useState(Q.length),[z,W]=zg.useState(!1),{columns:H}=l8(),B=zg.useCallback(()=>{W(!1),Z(null)},[]),U=async(N)=>{if(N==="clipboard"){let A=await $F(J);if(A)process.stdout.write(A);X({success:!0,message:"Conversation copied to clipboard"})}else if(N==="file")Z("file"),W(!0)},F=()=>{let N=Y.endsWith(".txt")?Y:Y.replace(/\.[^.]+$/,"")+".txt",A=X_Q(B1(),N);try{n5(A,J,{encoding:"utf-8",flush:!0}),X({success:!0,message:`Conversation exported to: ${A}`})}catch(R){X({success:!1,message:`Failed to export conversation: ${R instanceof Error?R.message:"Unknown error"}`})}},_=zg.useCallback(()=>{if(z)B();else X({success:!1,message:"Export cancelled"})},[z,B,X]),O=[{label:"Copy to clipboard",value:"clipboard",description:"Copy the conversation to your system clipboard"},{label:"Save to file",value:"file",description:"Save the conversation to a file in the current directory"}];function L(N){if(z)return aL.jsxDEV(V8,{children:[aL.jsxDEV(p1,{shortcut:"Enter",action:"save"},void 0,!1,void 0,this),aL.jsxDEV(s1,{action:"confirm:no",context:"Confirmation",fallback:"Esc",description:"go back"},void 0,!1,void 0,this)]},void 0,!0,void 0,this);if(N.pending)return aL.jsxDEV(M,{children:["Press ",N.keyName," again to exit"]},void 0,!0,void 0,this);return aL.jsxDEV(s1,{action:"confirm:no",context:"Confirmation",fallback:"Esc",description:"cancel"},void 0,!1,void 0,this)}return J8("confirm:no",_,{context:"Settings",isActive:z}),aL.jsxDEV(D8,{title:"Export Conversation",subtitle:"Select export method:",color:"permission",onCancel:_,inputGuide:L,isCancelActive:!z,children:!z?aL.jsxDEV(Q8,{options:O,onChange:U,onCancel:_},void 0,!1,void 0,this):aL.jsxDEV(f,{flexDirection:"column",children:[aL.jsxDEV(M,{children:"Enter filename:"},void 0,!1,void 0,this),aL.jsxDEV(f,{flexDirection:"row",gap:1,marginTop:1,children:[aL.jsxDEV(M,{children:">"},void 0,!1,void 0,this),aL.jsxDEV(sX,{value:Y,onChange:q,onSubmit:F,focus:!0,showCursor:!0,columns:H,cursorOffset:K,onChangeCursorOffset:G},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this)}var zg,aL;var c2J=I(()=>{U9();g3();a0();f6();Z6();i1();U7();AQ();R9();M9();g9();EH();zg=T(J1(),1),aL=T(e(),1)});function Z_Q({children:J}){let{bindings:Q}=XF0(),X=v11.useRef(null),Z=v11.useRef(new Map),Y=v11.useRef(new Set).current;return Xw0.jsxDEV(ap0,{bindings:Q,pendingChordRef:X,pendingChord:null,setPendingChord:()=>{},activeContexts:Y,registerActiveContext:()=>{},unregisterActiveContext:()=>{},handlerRegistryRef:Z,children:J},void 0,!1,void 0,this)}function Y_Q(J){if(!("message"in J))return 1;let Q=J.message.content;return Array.isArray(Q)?Q.length:1}async function q_Q(J,Q,X,{columns:Z,verbose:Y=!1,chunkSize:q=40,onProgress:K}={}){let G=(W)=>zN0(Xw0.jsxDEV(b2,{children:Xw0.jsxDEV(Z_Q,{children:Xw0.jsxDEV(Er,{messages:J,tools:Q,commands:[],verbose:Y,toolJSX:null,toolUseConfirmQueue:[],inProgressToolUseIDs:new Set,isMessageSelectorVisible:!1,conversationId:"export",screen:"prompt",streamingToolUses:[],showAllInTranscript:!0,isLoading:!1,renderRange:W},void 0,!1,void 0,this)},void 0,!1,void 0,this)},void 0,!1,void 0,this),Z),z=q;for(let W of J)z+=Y_Q(W);for(let W=0;W<z;W+=q){let H=await G([W,W+q]);if(cX(H).trim()==="")break;await X(H),K?.(W+q)}}async function f11(J,Q=[],X){let Z=[];return await q_Q(J,Q,(Y)=>void Z.push(cX(Y)),{columns:X}),Z.join("")}var v11,Xw0;var qs1=I(()=>{xU();gN0();uE();hk();W6();he0();v11=T(J1(),1),Xw0=T(e(),1)});var i2J={};X8(i2J,{sanitizeFilename:()=>l2J,extractFirstPrompt:()=>d2J,call:()=>W_Q});import{join as K_Q}from"path";function G_Q(J){let Q=J.getFullYear(),X=String(J.getMonth()+1).padStart(2,"0"),Z=String(J.getDate()).padStart(2,"0"),Y=String(J.getHours()).padStart(2,"0"),q=String(J.getMinutes()).padStart(2,"0"),K=String(J.getSeconds()).padStart(2,"0");return`${Q}-${X}-${Z}-${Y}${q}${K}`}function d2J(J){let Q=J.find((Y)=>Y.type==="user");if(!Q||Q.type!=="user")return"";let X=Q.message?.content,Z="";if(typeof X==="string")Z=X.trim();else if(Array.isArray(X)){let Y=X.find((q)=>q.type==="text");if(Y&&"text"in Y)Z=Y.text.trim()}if(Z=Z.split(`
|
|
@@ -6546,7 +6546,7 @@ ${_}`,maxTokens:8192},N=await G_J(L,"");if(N.result)z.at_a_glance=N.result;retur
|
|
|
6546
6546
|
</div>
|
|
6547
6547
|
<script>${E}</script>
|
|
6548
6548
|
</body>
|
|
6549
|
-
</html>`}function PLQ(J,Q,X,Z){let Y=typeof MACRO<"u"?"0.1.
|
|
6549
|
+
</html>`}function PLQ(J,Q,X,Z){let Y=typeof MACRO<"u"?"0.1.17":"unknown",q=Z?.hosts.filter((G)=>G.sessionCount>0).map((G)=>G.name),K={total:X.size,goal_categories:{},outcomes:{},satisfaction:{},friction:{}};for(let G of X.values()){for(let[z,W]of tZ0(G.goal_categories))if(W>0)K.goal_categories[z]=(K.goal_categories[z]||0)+W;K.outcomes[G.outcome]=(K.outcomes[G.outcome]||0)+1;for(let[z,W]of tZ0(G.user_satisfaction_counts))if(W>0)K.satisfaction[z]=(K.satisfaction[z]||0)+W;for(let[z,W]of tZ0(G.friction_counts))if(W>0)K.friction[z]=(K.friction[z]||0)+W}return{metadata:{username:process.env.SAFEUSER||process.env.USER||"unknown",generated_at:new Date().toISOString(),glock_version:Y,date_range:J.date_range,session_count:J.total_sessions,...q&&q.length>0&&{remote_hosts_collected:q}},aggregated_data:J,insights:Q,facets_summary:K}}async function ELQ(){let J=jD(),Q;try{Q=await Ls1(J,{withFileTypes:!0})}catch{return[]}let X=Q.filter((Y)=>Y.isDirectory()).map((Y)=>NU(J,Y.name)),Z=[];for(let Y=0;Y<X.length;Y++){let q=await zw0(X[Y]);for(let[K,G]of q)Z.push({sessionId:K,path:G.path,mtime:G.mtime,size:G.size});if(Y%10===9)await new Promise((K)=>setImmediate(K))}return Z.sort((Y,q)=>q.mtime-Y.mtime),Z}async function U_J(J){let Q;if(process.env.USER_TYPE==="ant"&&J?.collectRemote){let k=NU(L8(),"projects"),{hosts:h,totalCopied:u}=await ZLQ(k);Q={hosts:h,totalCopied:u}}let X=await ELQ(),Z=X.length,Y=50,q=200,K=[],G=[];for(let k=0;k<X.length;k+=Y){let h=X.slice(k,k+Y),u=await Promise.all(h.map(async(x)=>({sessionInfo:x,cached:await VLQ(x.sessionId)})));for(let{sessionInfo:x,cached:m}of u)if(m)K.push(m);else if(G.length<q)G.push(x)}let z=new Map,W=(k)=>{for(let h of k.messages.slice(0,5))if(h.type==="user"&&h.message){let u=h.message.content;if(typeof u==="string"){if(u.includes("RESPOND WITH ONLY A VALID JSON OBJECT")||u.includes("record_facets"))return!0}}return!1},H=10;for(let k=0;k<G.length;k+=H){let h=G.slice(k,k+H),u=await Promise.all(h.map(async(m)=>{try{return await n11(m.path)}catch{return[]}})),x=[];for(let m of u)for(let p of m){if(W(p)||!WLQ(p))continue;let c=ws1(p);K.push(c),x.push(c),z.set(c.session_id,p)}await Promise.all(x.map((m)=>NLQ(m)))}let B=new Map;for(let k of K){let h=B.get(k.session_id);if(!h||k.user_message_count>h.user_message_count||k.user_message_count===h.user_message_count&&k.duration_minutes>h.duration_minutes)B.set(k.session_id,k)}let U=new Set(B.keys());K=[...B.values()];for(let k of z.keys())if(!U.has(k))z.delete(k);K.sort((k,h)=>h.start_time.localeCompare(k.start_time));let F=(k)=>{if(k.user_message_count<2)return!1;if(k.duration_minutes<1)return!1;return!0},_=K.filter(F),O=new Map,L=[],N=50,A=await Promise.all(_.map(async(k)=>({sessionId:k.session_id,cached:await OLQ(k.session_id)})));for(let{sessionId:k,cached:h}of A)if(h)O.set(k,h);else{let u=z.get(k);if(u&&L.length<N)L.push({log:u,sessionId:k})}let R=50;for(let k=0;k<L.length;k+=R){let h=L.slice(k,k+R),u=await Promise.all(h.map(async({log:m,sessionId:p})=>{let c=await wLQ(m,p);return{sessionId:p,newFacets:c}})),x=[];for(let{sessionId:m,newFacets:p}of u)if(p)O.set(m,p),x.push(p);await Promise.all(x.map((m)=>LLQ(m)))}let D=(k)=>{let h=O.get(k);if(!h)return!1;let u=h.goal_categories,x=TLQ(u).filter((m)=>(u[m]??0)>0);return x.length===1&&x[0]==="warmup_minimal"},$=_.filter((k)=>!D(k.session_id)),y=new Map;for(let[k,h]of O)if(!D(k))y.set(k,h);let v=ALQ($,y);v.total_sessions_scanned=Z;let E=await MLQ(v,O),C=bLQ(v,E);try{await i11(d11(),{recursive:!0})}catch{}let S=NU(d11(),"report.html");return await Ns1(S,C,{encoding:"utf-8",mode:384}),{insights:E,htmlPath:S,data:v,remoteStats:Q,facets:y}}function tZ0(J){return J?Object.entries(J):[]}function TLQ(J){return J?Object.keys(J):[]}function F_J(J){if(!J||typeof J!=="object")return!1;let Q=J;return typeof Q.underlying_goal==="string"&&typeof Q.outcome==="string"&&typeof Q.brief_summary==="string"&&Q.goal_categories!==null&&typeof Q.goal_categories==="object"&&Q.user_satisfaction_counts!==null&&typeof Q.user_satisfaction_counts==="object"&&Q.friction_counts!==null&&typeof Q.friction_counts==="object"}var H_J,QLQ,XLQ,ZLQ,YLQ,qLQ,KLQ=`Analyze this Glock session and extract structured facets.
|
|
6550
6550
|
|
|
6551
6551
|
CRITICAL GUIDELINES:
|
|
6552
6552
|
|
|
@@ -6741,7 +6741,7 @@ Want to dig into any section or try one of the suggestions?
|
|
|
6741
6741
|
`).join("");await Q40(_,O,{encoding:"utf8",mode:384})}b(`Hydrated ${H.length} subagent entries across ${B.size} agents`)}}return n1("info","hydrate_ccr_v2_completed",{duration_ms:Date.now()-Q,event_count:Y.length,subagent_event_count:z}),Y.length>0}catch(Y){if(Y instanceof Error&&Y.message==="CCRClient: Epoch mismatch (409)")throw Y;return b(`Error hydrating session from CCR v2: ${Y}`),n1("error","hydrate_ccr_v2_fail"),!1}}function Ts1(J){let Q=iN0(J);if(Q){let X=Q.replace(/\n/g," ").trim();if(X.length>200)X=X.slice(0,200).trim()+"\u2026";return X}return"No prompt"}function iN0(J){for(let Q of J){if(Q.type!=="user"||Q.isMeta)continue;if("isCompactSummary"in Q&&Q.isCompactSummary)continue;let X=Q.message?.content;if(!X)continue;let Z=[];if(typeof X==="string")Z.push(X);else if(Array.isArray(X)){for(let Y of X)if(Y.type==="text"&&Y.text)Z.push(Y.text)}for(let Y of Z){if(!Y)continue;let q=PJ(Y,GB);if(q){let G=q.replace(/^\//,"");if(FI().has(G))continue;else{let z=PJ(Y,"command-args")?.trim();if(!z)continue;return`${q} ${z}`}}let K=PJ(Y,"bash-input");if(K)return`! ${K}`;if(f_J.test(Y))continue;return Y}}return}function GX0(J){return J.map((Q)=>{let{isSidechain:X,parentUuid:Z,...Y}=Q;return Y})}function KVQ(J){let Q,X=-1,Z=-1,Y=new Map,q=0;for(let W of J.values()){if(Y.set(W.uuid,q),YW(W)){Z=q;let H=W.compactMetadata?.preservedSegment;if(H)Q=H,X=q}q++}if(!Q)return;let K=X===Z,G=new Set;if(K){let W=new Set,H=J.get(Q.tailUuid),B=!1;while(H&&!W.has(H.uuid)){if(W.add(H.uuid),G.add(H.uuid),H.uuid===Q.headUuid){B=!0;break}H=H.parentUuid?J.get(H.parentUuid):void 0}if(!B){l("jarvis_api_error",{tailInTranscript:J.has(Q.tailUuid),headInTranscript:J.has(Q.headUuid),anchorInTranscript:J.has(Q.anchorUuid),walkSteps:W.size,transcriptSize:J.size});return}}if(K){let W=J.get(Q.headUuid);if(W)J.set(Q.headUuid,{...W,parentUuid:Q.anchorUuid});for(let[H,B]of J)if(B.parentUuid===Q.anchorUuid&&H!==Q.headUuid)J.set(H,{...B,parentUuid:Q.tailUuid});for(let H of G){let B=J.get(H);if(B?.type!=="assistant")continue;J.set(H,{...B,message:{...B.message,usage:{...B.message.usage,input_tokens:0,output_tokens:0,cache_creation_input_tokens:0,cache_read_input_tokens:0}}})}}let z=[];for(let[W]of J){let H=Y.get(W);if(H!==void 0&&H<Z&&!G.has(W))z.push(W)}for(let W of z)J.delete(W)}function GVQ(J){let Q=new Set;for(let K of J.values()){let G=K.snipMetadata?.removedUuids;if(!G)continue;for(let z of G)Q.add(z)}if(Q.size===0)return;let X=new Map,Z=0;for(let K of Q){let G=J.get(K);if(!G)continue;X.set(K,G.parentUuid),J.delete(K),Z++}let Y=(K)=>{let G=[],z=K;while(z&&Q.has(z))if(G.push(z),z=X.get(z),z===void 0){z=null;break}for(let W of G)X.set(W,z);return z},q=0;for(let[K,G]of J){if(!G.parentUuid||!Q.has(G.parentUuid))continue;J.set(K,{...G,parentUuid:Y(G.parentUuid)}),q++}l("jarvis_api_error",{removed_count:Z,relinked_count:q})}function s11(J,Q){let X,Z=-1/0;for(let Y of J){if(!Q(Y))continue;let q=Date.parse(Y.timestamp);if(q>Z)Z=q,X=Y}return X}function Wu(J,Q){let X=[],Z=new Set,Y=Q;while(Y){if(Z.has(Y.uuid)){H0(Error(`Cycle detected in parentUuid chain at message ${Y.uuid}. Returning partial transcript.`)),l("jarvis_api_error",{});break}Z.add(Y.uuid),X.push(Y),Y=Y.parentUuid?J.get(Y.parentUuid):void 0}return X.reverse(),zVQ(J,X,Z)}function zVQ(J,Q,X){let Z=Q.filter((B)=>B.type==="assistant");if(Z.length===0)return Q;let Y=new Map;for(let B of Z)if(B.message.id)Y.set(B.message.id,B);let q=new Map,K=new Map;for(let B of J.values())if(B.type==="assistant"&&B.message.id){let U=q.get(B.message.id);if(U)U.push(B);else q.set(B.message.id,[B])}else if(B.type==="user"&&B.parentUuid&&Array.isArray(B.message.content)&&B.message.content.some((U)=>U.type==="tool_result")){let U=K.get(B.parentUuid);if(U)U.push(B);else K.set(B.parentUuid,[B])}let G=new Set,z=new Map,W=0;for(let B of Z){let U=B.message.id;if(!U||G.has(U))continue;G.add(U);let F=q.get(U)??[B],_=F.filter((A)=>!X.has(A.uuid)),O=[];for(let A of F){let R=K.get(A.uuid);if(!R)continue;for(let D of R)if(!X.has(D.uuid))O.push(D)}if(_.length===0&&O.length===0)continue;_.sort((A,R)=>A.timestamp.localeCompare(R.timestamp)),O.sort((A,R)=>A.timestamp.localeCompare(R.timestamp));let L=Y.get(U),N=[..._,...O];for(let A of N)X.add(A.uuid);W+=N.length,z.set(L.uuid,N)}if(W===0)return Q;l("jarvis_api_error",{recovered_count:W});let H=[];for(let B of Q){H.push(B);let U=z.get(B.uuid);if(U)H.push(...U)}return H}function Gc1(J){for(let Q=J.length-1;Q>=0;Q--){let X=J[Q];if(X.type!=="system"||X.subtype!=="turn_duration")continue;let Z=X.messageCount;if(Z===void 0)return;let Y=Q;l("jarvis_api_error",{expected:Z,actual:Y,delta:Y-Z,chain_length:J.length,checkpoint_age_entries:J.length-1-Q});return}}function t11(J,Q){let X=[],Z=new Map;for(let Y of Q){let q=J.get(Y.uuid);if(!q)continue;let{snapshot:K,isSnapshotUpdate:G}=q,z=G?Z.get(K.messageId):void 0;if(z===void 0)Z.set(K.messageId,X.length),X.push(K);else X[z]=K}return X}function e11(J,Q){return Array.from(J.values())}async function WVQ(J){if(J.endsWith(".jsonl")){let{messages:Y,summaries:q,customTitles:K,tags:G,fileHistorySnapshots:z,attributionSnapshots:W,contextCollapseCommits:H,contextCollapseSnapshot:B,leafUuids:U,contentReplacements:F,worktreeStates:_}=await YC(J);if(Y.size===0)throw Error("No messages found in JSONL file");let O=s11(Y.values(),($)=>U.has($.uuid));if(!O)throw Error("No valid conversation chain found in JSONL file");let L=Wu(Y,O),N=q.get(O.uuid),A=K.get(O.sessionId),R=G.get(O.sessionId),D=O.sessionId;return{...Rs1(L,0,N,A,t11(z,L),R,J,e11(W,L),void 0,F.get(D)??[]),contextCollapseCommits:H.filter(($)=>$.sessionId===D),contextCollapseSnapshot:B?.sessionId===D?B:void 0,worktreeSession:_.has(D)?_.get(D):void 0}}let Q=await q40(J,{encoding:"utf-8"}),X;try{X=c1(Q)}catch(Y){throw Error(`Invalid JSON in transcript file: ${Y}`)}let Z;if(Array.isArray(X))Z=X;else if(X&&typeof X==="object"&&"messages"in X){if(!Array.isArray(X.messages))throw Error("Transcript messages must be an array");Z=X.messages}else throw Error("Transcript must be an array of messages or an object with a messages array");return Rs1(Z,0,void 0,void 0,void 0,void 0,J)}function HVQ(J){if(J.type!=="user")return!1;if(J.isMeta)return!1;let Q=J.message?.content;if(!Q)return!1;if(typeof Q==="string")return Q.trim().length>0;if(Array.isArray(Q))return Q.some((X)=>X.type==="text"||X.type==="image"||X.type==="document");return!1}function BVQ(J){if(J.type!=="assistant")return!1;let Q=J.message?.content;if(!Q||!Array.isArray(Q))return!1;return Q.some((X)=>X.type==="text"&&typeof X.text==="string"&&X.text.trim().length>0)}function Cs1(J){let Q=0;for(let X of J)switch(X.type){case"user":if(HVQ(X))Q++;break;case"assistant":if(BVQ(X))Q++;break;case"attachment":case"system":case"progress":break}return Q}function Rs1(J,Q=0,X,Z,Y,q,K,G,z,W){let H=J.at(-1),B=J[0],U=Ts1(J),F=new Date(B.timestamp),_=new Date(H.timestamp);return{date:H.timestamp,messages:GX0(J),fullPath:K,value:Q,created:F,modified:_,firstPrompt:U,messageCount:Cs1(J),isSidechain:B.isSidechain,teamName:B.teamName,agentName:B.agentName,agentSetting:z,leafUuid:H.uuid,summary:X,customTitle:Z,tag:q,fileHistorySnapshots:Y,attributionSnapshots:G,contentReplacements:W,gitBranch:H.gitBranch,projectPath:B.cwd}}async function UVQ(J){let Q=new Map,X=0;for(let K of J){let G=FY(K);if(G){let z=(Q.get(G)||0)+1;Q.set(G,z),X=Math.max(z,X)}}if(X<=1)return;let Z=Array.from(Q.values()).filter((K)=>K>1),Y=Z.length,q=Z.reduce((K,G)=>K+G,0);l("jarvis_api_error",{total_sessions:Q.size,sessions_with_branches:Y,max_branches_per_session:Math.max(...Z),avg_branches_per_session:Math.round(q/Y),total_transcript_count:J.length})}async function u_J(J){let Q=Z5(j8()),X=await eZ0(Q,J,j8());return await UVQ(X),X}function dH(J,Q){let X=Y1(),Z=l0(Q)+`
|
|
6742
6742
|
`;try{X.appendFileSync(J,Z,{mode:384})}catch{X.mkdirSync(Bw0(J),{mode:448}),X.appendFileSync(J,Z,{mode:384})}}function FVQ(J){let Q;try{Q=mLQ(J,"r");let X=gLQ(Q),Z=Math.max(0,X.size-$f),Y=Buffer.allocUnsafe(Math.min($f,X.size-Z)),q=pLQ(Q,Y,0,Y.length,Z);return Y.toString("utf8",0,q)}catch{return""}finally{if(Q!==void 0)try{uLQ(Q)}catch{}}}async function $C(J,Q,X,Z="user"){let Y=X??WU(J);if(dH(Y,{type:"custom-title",customTitle:Q,sessionId:J}),J===A1())eX().currentSessionTitle=Q;l("jarvis_api_error",{source:Z})}function vs1(J,Q){dH(WU(J),{type:"ai-title",aiTitle:Q,sessionId:J})}function _VQ(J,Q){dH(WU(J),{type:"task-summary",summary:Q,sessionId:J,timestamp:new Date().toISOString()})}async function S11(J,Q,X){let Z=X??WU(J);if(dH(Z,{type:"tag",tag:Q,sessionId:J}),J===A1())eX().currentSessionTag=Q;l("jarvis_api_error",{})}async function OVQ(J,Q,X,Z,Y){let q=Y??WU(J);if(dH(q,{type:"pr-link",sessionId:J,prNumber:Q,prUrl:X,prRepository:Z,timestamp:new Date().toISOString()}),J===A1()){let K=eX();K.currentSessionPrNumber=Q,K.currentSessionPrUrl=X,K.currentSessionPrRepository=Z}l("jarvis_api_error",{prNumber:Q})}function Ks1(J){if(J===A1())return eX().currentSessionTag;return}function kw(J){if(J===A1())return eX().currentSessionTitle;return}function fs1(){return eX().currentSessionAgentColor}function ir(J){let Q=eX();if(J.customTitle)Q.currentSessionTitle??=J.customTitle;if(J.tag!==void 0)Q.currentSessionTag=J.tag||void 0;if(J.agentName)Q.currentSessionAgentName=J.agentName;if(J.agentColor)Q.currentSessionAgentColor=J.agentColor;if(J.agentSetting)Q.currentSessionAgentSetting=J.agentSetting;if(J.mode)Q.currentSessionMode=J.mode;if(J.worktreeSession!==void 0)Q.currentSessionWorktree=J.worktreeSession;if(J.prNumber!==void 0)Q.currentSessionPrNumber=J.prNumber;if(J.prUrl)Q.currentSessionPrUrl=J.prUrl;if(J.prRepository)Q.currentSessionPrRepository=J.prRepository}function dV0(){let J=eX();J.currentSessionTitle=void 0,J.currentSessionTag=void 0,J.currentSessionAgentName=void 0,J.currentSessionAgentColor=void 0,J.currentSessionLastPrompt=void 0,J.currentSessionAgentSetting=void 0,J.currentSessionMode=void 0,J.currentSessionWorktree=void 0,J.currentSessionPrNumber=void 0,J.currentSessionPrUrl=void 0,J.currentSessionPrRepository=void 0}function Ua0(){eX().reAppendSessionMetadata()}async function kN0(J,Q,X,Z="user"){let Y=X??WU(J);if(dH(Y,{type:"agent-name",agentName:Q,sessionId:J}),J===A1())eX().currentSessionAgentName=Q,gr(Q);l("jarvis_api_error",{source:Z})}async function LVQ(J,Q,X){let Z=X??WU(J);if(dH(Z,{type:"agent-color",agentColor:Q,sessionId:J}),J===A1())eX().currentSessionAgentColor=Q;l("jarvis_api_error",{})}function Uw0(J){eX().currentSessionAgentSetting=J}function Ss1(J){eX().currentSessionTitle=J}function VVQ(J){eX().currentSessionMode=J}function V_(J){let Q=J?{originalCwd:J.originalCwd,worktreePath:J.worktreePath,worktreeName:J.worktreeName,worktreeBranch:J.worktreeBranch,originalBranch:J.originalBranch,originalHeadCommit:J.originalHeadCommit,sessionId:J.sessionId,tmuxSessionName:J.tmuxSessionName,hookBased:J.hookBased}:null,X=eX();if(X.currentSessionWorktree=Q,X.sessionFile)dH(X.sessionFile,{type:"worktree-state",worktreeSession:Q,sessionId:A1()})}function FY(J){if(J.sessionId)return J.sessionId;return J.messages[0]?.sessionId}function vL(J){return J.messages.length===0&&J.sessionId!==void 0}async function zD(J){if(!vL(J))return J;let Q=J.fullPath;if(!Q)return J;try{let{messages:X,summaries:Z,customTitles:Y,tags:q,agentNames:K,agentColors:G,agentSettings:z,prNumbers:W,prUrls:H,prRepositories:B,modes:U,worktreeStates:F,fileHistorySnapshots:_,attributionSnapshots:O,contentReplacements:L,contextCollapseCommits:N,contextCollapseSnapshot:A,leafUuids:R}=await YC(Q);if(X.size===0)return J;let D=s11(X.values(),(v)=>R.has(v.uuid)&&(v.type==="user"||v.type==="assistant"));if(!D)return J;let $=Wu(X,D),y=D.sessionId;return{...J,messages:GX0($),firstPrompt:Ts1($),messageCount:Cs1($),summary:D?Z.get(D.uuid):J.summary,customTitle:y?Y.get(y):J.customTitle,tag:y?q.get(y):J.tag,agentName:y?K.get(y):J.agentName,agentColor:y?G.get(y):J.agentColor,agentSetting:y?z.get(y):J.agentSetting,mode:y?U.get(y):J.mode,worktreeSession:y&&F.has(y)?F.get(y):J.worktreeSession,prNumber:y?W.get(y):J.prNumber,prUrl:y?H.get(y):J.prUrl,prRepository:y?B.get(y):J.prRepository,gitBranch:D?.gitBranch??J.gitBranch,isSidechain:$[0]?.isSidechain??J.isSidechain,teamName:$[0]?.teamName??J.teamName,leafUuid:D?.uuid??J.leafUuid,fileHistorySnapshots:t11(_,$),attributionSnapshots:e11(O,$),contentReplacements:y?L.get(y)??[]:J.contentReplacements,contextCollapseCommits:y?N.filter((v)=>v.sessionId===y):void 0,contextCollapseSnapshot:y&&A?.sessionId===y?A:void 0}}catch{return J}}async function ou(J,Q){let{limit:X,exact:Z}=Q||{},Y=await br(j8()),q=await c_J(Y),{logs:K}=await Ow0(q,0,q.length),G=J.toLowerCase().trim(),z=K.filter((B)=>{let U=B.customTitle?.toLowerCase().trim();if(!U)return!1;return Z?U===G:U.includes(G)}),W=new Map;for(let B of z){let U=FY(B);if(U){let F=W.get(U);if(!F||B.modified>F.modified)W.set(U,B)}}let H=Array.from(W.values());if(H.sort((B,U)=>U.modified.getTime()-B.modified.getTime()),X)return H.slice(0,X);return H}function AVQ(J,Q){if(J===null||J.length===0)return Q;if(J.length<wVQ)return Buffer.concat([J,Q]);if(J[0]===123){for(let Z of r11)if(J.compare(Z,0,Z.length,1,1+Z.length)===0)return Buffer.concat([J,Q])}let X=Q.indexOf(10);return X===-1?null:Q.subarray(X+1)}async function RVQ(J,Q){let{createReadStream:X}=await import("fs"),Z=10,Y=X(J,{end:Q-1}),q=[],K=null;for await(let G of Y){let W=AVQ(K,G);if(W===null){K=null;continue}let H=!1;for(let B of r11)if(W.includes(B)){H=!0;break}if(H){let B=0,U=W.indexOf(10);while(U!==-1){for(let F of r11){let _=W.indexOf(F,B);if(_!==-1&&_<U){q.push(W.toString("utf-8",B,U));break}}B=U+1,U=W.indexOf(10,B)}K=W.subarray(B)}else{let B=W.lastIndexOf(10);K=B>=0?W.subarray(B+1):W}if(K.length>65536)K=null}if(K!==null&&K.length>0){for(let G of r11)if(K.includes(G)){q.push(K.toString("utf-8"));break}}return q}function MVQ(J,Q,X){let G=0,z=!1,W=!1,H=0;for(let B=Q;H<X.length;B++){if(B===X[H]){if(G===1&&!z)return X[H];H++}let U=J[B];if(W)W=!1;else if(z){if(U===92)W=!0;else if(U===34)z=!1}else if(U===34)z=!0;else if(U===123)G++;else if(U===125)G--}return X.at(-1)}function DVQ(J){let Y=Buffer.from('{"parentUuid":'),q=Buffer.from('"uuid":"'),K=Buffer.from('"isSidechain":true'),G=36,z=Buffer.from('","timestamp":"'),W=z.length,H=Y.length,B=q.length,U=[],F=[],_=new Map,O=0,L=J.length;while(O<L){let E=J.indexOf(10,O),C=E===-1?L:E+1;if(C-O>H&&J[O]===123&&J.compare(Y,0,H,O,O+H)===0){let S=J[O+H]===34?O+H+1:-1,k=-1,h=-1,u,x=O;for(;;){let p=J.indexOf(q,x);if(p<0||p>=C)break;if(k<0)k=p;let c=p+B+36;if(c+W<=C&&J.compare(z,0,W,c,c+W)===0)if(h<0)h=p;else(u??=[h]).push(p);x=p+B}let m=u?MVQ(J,O,u):h>=0?h:k;if(m>=0){let p=m+B,c=J.toString("latin1",p,p+36);_.set(c,U.length),U.push(O,C,S)}else F.push(O,C)}else F.push(O,C);O=C}let N=-1;for(let E=U.length-3;E>=0;E-=3){let C=J.indexOf(K,U[E]);if(C===-1||C>=U[E+1]){N=E;break}}if(N<0)return J;let A=new Set,R=new Set,D=0,$=N;while($!==void 0){if(A.has($))break;A.add($),R.add(U[$]),D+=U[$+1]-U[$];let E=U[$+2];if(E<0)break;let C=J.toString("latin1",E,E+36);$=_.get(C)}if(L-D<L>>1)return J;let y=[],v=0;for(let E=0;E<U.length;E+=3){let C=U[E];while(v<F.length&&F[v]<C)y.push(J.subarray(F[v],F[v+1])),v+=2;if(R.has(C))y.push(J.subarray(C,U[E+1]))}while(v<F.length)y.push(J.subarray(F[v],F[v+1])),v+=2;return Buffer.concat(y)}async function YC(J,Q){let X=new Map,Z=new Map,Y=new Map,q=new Map,K=new Map,G=new Map,z=new Map,W=new Map,H=new Map,B=new Map,U=new Map,F=new Map,_=new Map,O=new Map,L=new Map,N=new Map,A=[],R;try{let C=null,S=null,k=!1;{let{size:x}=await Ms1(J);if(x>B51){let m=await U51(J,x);if(C=m.postBoundaryBuf,k=m.hasPreservedSegment,m.boundaryStartOffset>0)S=await RVQ(J,m.boundaryStartOffset)}}if(C??=await q40(J),!Q?.keepAllLeaves&&!k&&C.length>B51)C=DVQ(C);if(S&&S.length>0){let x=vb(Buffer.from(S.join(`
|
|
6743
6743
|
`)));for(let m of x)if(m.type==="summary"&&m.leafUuid)Z.set(m.leafUuid,m.summary);else if(m.type==="custom-title"&&m.sessionId)Y.set(m.sessionId,m.customTitle);else if(m.type==="tag"&&m.sessionId)q.set(m.sessionId,m.tag);else if(m.type==="agent-name"&&m.sessionId)K.set(m.sessionId,m.agentName);else if(m.type==="agent-color"&&m.sessionId)G.set(m.sessionId,m.agentColor);else if(m.type==="agent-setting"&&m.sessionId)z.set(m.sessionId,m.agentSetting);else if(m.type==="mode"&&m.sessionId)U.set(m.sessionId,m.mode);else if(m.type==="worktree-state"&&m.sessionId)F.set(m.sessionId,m.worktreeSession);else if(m.type==="pr-link"&&m.sessionId)W.set(m.sessionId,m.prNumber),H.set(m.sessionId,m.prUrl),B.set(m.sessionId,m.prRepository)}let h=vb(C),u=new Map;for(let x of h){if(rLQ(x)){let m=x.parentUuid;u.set(x.uuid,m&&u.has(m)?u.get(m)??null:m);continue}if(qC(x)){if(x.parentUuid&&u.has(x.parentUuid))x.parentUuid=u.get(x.parentUuid)??null;if(X.set(x.uuid,x),YW(x))A.length=0,R=void 0}else if(x.type==="summary"&&x.leafUuid)Z.set(x.leafUuid,x.summary);else if(x.type==="custom-title"&&x.sessionId)Y.set(x.sessionId,x.customTitle);else if(x.type==="tag"&&x.sessionId)q.set(x.sessionId,x.tag);else if(x.type==="agent-name"&&x.sessionId)K.set(x.sessionId,x.agentName);else if(x.type==="agent-color"&&x.sessionId)G.set(x.sessionId,x.agentColor);else if(x.type==="agent-setting"&&x.sessionId)z.set(x.sessionId,x.agentSetting);else if(x.type==="mode"&&x.sessionId)U.set(x.sessionId,x.mode);else if(x.type==="worktree-state"&&x.sessionId)F.set(x.sessionId,x.worktreeSession);else if(x.type==="pr-link"&&x.sessionId)W.set(x.sessionId,x.prNumber),H.set(x.sessionId,x.prUrl),B.set(x.sessionId,x.prRepository);else if(x.type==="file-history-snapshot")_.set(x.messageId,x);else if(x.type==="attribution-snapshot")O.set(x.messageId,x);else if(x.type==="content-replacement")if(x.agentId){let m=N.get(x.agentId)??[];N.set(x.agentId,m),m.push(...x.replacements)}else{let m=L.get(x.sessionId)??[];L.set(x.sessionId,m),m.push(...x.replacements)}else if(x.type==="marble-origami-commit")A.push(x);else if(x.type==="marble-origami-snapshot")R=x}}catch{}KVQ(X),GVQ(X);let D=[...X.values()],$=new Set(D.map((C)=>C.parentUuid).filter((C)=>C!==null)),y=D.filter((C)=>!$.has(C.uuid)),v=new Set,E=!1;if(Y8("jarvis_api_error",!1)){let C=new Set;for(let S of D)if(S.parentUuid&&(S.type==="user"||S.type==="assistant"))C.add(S.parentUuid);for(let S of y){let k=new Set,h=S;while(h){if(k.has(h.uuid)){E=!0;break}if(k.add(h.uuid),h.type==="user"||h.type==="assistant"){if(!C.has(h.uuid))v.add(h.uuid);break}h=h.parentUuid?X.get(h.parentUuid):void 0}}}else for(let C of y){let S=new Set,k=C;while(k){if(S.has(k.uuid)){E=!0;break}if(S.add(k.uuid),k.type==="user"||k.type==="assistant"){v.add(k.uuid);break}k=k.parentUuid?X.get(k.parentUuid):void 0}}if(E)l("jarvis_api_error",{});return{messages:X,summaries:Z,customTitles:Y,tags:q,agentNames:K,agentColors:G,agentSettings:z,prNumbers:W,prUrls:H,prRepositories:B,modes:U,worktreeStates:F,fileHistorySnapshots:_,attributionSnapshots:O,contentReplacements:L,agentContentReplacements:N,contextCollapseCommits:A,contextCollapseSnapshot:R,leafUuids:v}}async function g_J(J){let Q=lH(xm()??Z5(j8()),`${J}.jsonl`);return YC(Q)}function ug1(){Z40.cache.clear?.()}async function xs1(J,Q){return(await Z40(J)).has(Q)}async function dL0(J){let{messages:Q,summaries:X,customTitles:Z,tags:Y,agentSettings:q,worktreeStates:K,fileHistorySnapshots:G,attributionSnapshots:z,contentReplacements:W,contextCollapseCommits:H,contextCollapseSnapshot:B}=await g_J(J);if(Q.size===0)return null;if(!Z40.cache.has(J))Z40.cache.set(J,Promise.resolve(new Set(Q.keys())));let U=s11(Q.values(),(A)=>!A.isSidechain);if(!U)return null;let F=Wu(Q,U),_=X.get(U.uuid),O=Z.get(U.sessionId),L=Y.get(U.sessionId),N=q.get(J);return{...Rs1(F,0,_,O,t11(G,F),L,WU(J),e11(z,F),N,W.get(J)??[]),worktreeSession:K.get(J),contextCollapseCommits:H.filter((A)=>A.sessionId===J),contextCollapseSnapshot:B?.sessionId===J?B:void 0}}async function zX0(J){let Q=await u_J(J),{logs:X}=await Ow0(Q,0,Q.length),Z=os(X);return Z.forEach((Y,q)=>{Y.value=q}),Z}async function la1(J,Q){if(Q?.skipIndex)return $VQ(J);return(await m_J(J,Q?.initialEnrichCount??Q81)).logs}async function $VQ(J){let Q=jD(),X;try{X=await Y40(Q,{withFileTypes:!0})}catch{return[]}let Z=X.filter((z)=>z.isDirectory()).map((z)=>lH(Q,z.name)),q=(await Promise.all(Z.map((z)=>EVQ(z,J)))).flat(),K=new Map;for(let z of q){let W=`${z.sessionId??""}:${z.leafUuid??""}`,H=K.get(W);if(!H||z.modified.getTime()>H.modified.getTime())K.set(W,z)}let G=os([...K.values()]);return G.forEach((z,W)=>{z.value=W}),G}async function m_J(J,Q=Q81){let X=jD(),Z;try{Z=await Y40(X,{withFileTypes:!0})}catch{return{logs:[],allStatLogs:[],nextIndex:0}}let Y=Z.filter((W)=>W.isDirectory()).map((W)=>lH(X,W.name)),q=[];for(let W of Y)q.push(...await eZ0(W,J));let K=d_J(q),{logs:G,nextIndex:z}=await Ow0(K,0,Q);return G.forEach((W,H)=>{W.value=H}),{logs:G,allStatLogs:K,nextIndex:z}}async function c01(J,Q,X=Q81){return(await p_J(J,Q,X)).logs}async function p_J(J,Q,X=Q81){b(`/resume: loading sessions for cwd=${j8()}, worktrees=[${J.join(", ")}]`);let Z=await c_J(J,Q);b(`/resume: found ${Z.length} session files on disk`);let{logs:Y,nextIndex:q}=await Ow0(Z,0,X);return Y.forEach((K,G)=>{K.value=G}),{logs:Y,allStatLogs:Z,nextIndex:q}}async function c_J(J,Q){let X=jD();if(J.length<=1){let z=j8(),W=Z5(z);return eZ0(W,void 0,z)}let Z=process.platform==="win32",Y=J.map((z)=>{let W=dU(z);return{path:z,prefix:Z?W.toLowerCase():W}});Y.sort((z,W)=>W.prefix.length-z.prefix.length);let q=[],K=new Set,G;try{G=await Y40(X,{withFileTypes:!0})}catch(z){b(`Failed to read projects dir ${X}, falling back to current project: ${z}`);let W=Z5(j8());return eZ0(W,Q,j8())}for(let z of G){if(!z.isDirectory())continue;let W=Z?z.name.toLowerCase():z.name;if(K.has(W))continue;for(let{path:H,prefix:B}of Y)if(W===B||W.startsWith(B+"-")){K.add(W),q.push(...await eZ0(lH(X,z.name),void 0,H));break}}return d_J(q)}async function oh(J){let Q=zH(J);try{let{messages:X,agentContentReplacements:Z}=await YC(Q),Y=Array.from(X.values()).filter((W)=>W.agentId===J&&W.isSidechain);if(Y.length===0)return null;let q=new Set(Y.map((W)=>W.parentUuid)),K=s11(Y,(W)=>!q.has(W.uuid));if(!K)return null;return{messages:Wu(X,K).filter((W)=>W.agentId===J).map(({isSidechain:W,parentUuid:H,...B})=>B),contentReplacements:Z.get(J)??[]}}catch{return null}}function ks1(J){let Q=[];for(let X of J)if(X.type==="progress"&&X.data&&typeof X.data==="object"&&"type"in X.data&&(X.data.type==="agent_progress"||X.data.type==="skill_progress")&&"agentId"in X.data&&typeof X.data.agentId==="string")Q.push(X.data.agentId);return b3(Q)}function jVQ(J){let Q={};for(let X of Object.values(J))if(X.type==="in_process_teammate"&&X.identity?.agentId&&X.messages&&X.messages.length>0)Q[X.identity.agentId]=X.messages;return Q}async function J81(J){let Q=await Promise.all(J.map(async(Z)=>{try{let Y=await oh(KY(Z));if(Y&&Y.messages.length>0)return{agentId:Z,transcript:Y.messages};return null}catch{return null}})),X={};for(let Z of Q)if(Z)X[Z.agentId]=Z.transcript;return X}async function IVQ(){let J=lH(xm()??Z5(j8()),A1(),"subagents"),Q;try{Q=await Y40(J,{withFileTypes:!0})}catch{return{}}let X=Q.filter((Z)=>Z.isFile()&&Z.name.startsWith("agent-")&&Z.name.endsWith(".jsonl")).map((Z)=>Z.name.slice(6,-6));return J81(X)}function Fw0(J){if(J.type==="progress")return!1;if(J.type==="attachment"&&a11()!=="ant"){if(J.attachment.type==="hook_additional_context"&&W1(process.env.GLOCK_SAVE_HOOK_ADDITIONAL_CONTEXT))return!0;return!1}return!0}function yVQ(J){let Q=new Set;for(let X of J)if(X.type==="assistant"&&Array.isArray(X.message.content)){for(let Z of X.message.content)if(Z.type==="tool_use"&&Z.name===n$)Q.add(Z.id)}return Q}function bVQ(J,Q){return J.flatMap((X)=>{if(X.type==="assistant"&&Array.isArray(X.message.content)){let Z=X.message.content,q=Z.some((K)=>K.type==="tool_use"&&K.name===n$)?Z.filter((K)=>!(K.type==="tool_use"&&K.name===n$)):Z;if(q.length===0)return[];if(X.isVirtual){let{isVirtual:K,...G}=X;return[{...G,message:{...X.message,content:q}}]}if(q!==Z)return[{...X,message:{...X.message,content:q}}];return[X]}if(X.type==="user"&&Array.isArray(X.message.content)){let Z=X.message.content,q=Z.some((K)=>K.type==="tool_result"&&Q.has(K.tool_use_id))?Z.filter((K)=>!(K.type==="tool_result"&&Q.has(K.tool_use_id))):Z;if(q.length===0)return[];if(X.isVirtual){let{isVirtual:K,...G}=X;return[{...G,message:{...X.message,content:q}}]}if(q!==Z)return[{...X,message:{...X.message,content:q}}];return[X]}if("isVirtual"in X&&X.isVirtual){let{isVirtual:Z,...Y}=X;return[Y]}return[X]})}function _w0(J,Q=J){let X=J.filter(Fw0);return a11()!=="ant"?bVQ(X,yVQ(Q)):X}async function PVQ(J){return(await zX0())[J]||null}async function hs1(J){try{let Q=TY(),{messages:X}=await YC(Q),Z=null;for(let Y of X.values())if(Y.type==="assistant"){let q=Y.message.content;if(Array.isArray(q)){for(let K of q)if(K.type==="tool_use"&&K.id===J){Z=Y;break}}}else if(Y.type==="user"){let q=Y.message.content;if(Array.isArray(q)){for(let K of q)if(K.type==="tool_result"&&K.tool_use_id===J)return null}}return Z}catch{return null}}async function zw0(J){let Q=new Map,X;try{X=await Y40(J,{withFileTypes:!0})}catch{return Q}let Z=[];for(let Y of X){if(!Y.isFile()||!Y.name.endsWith(".jsonl"))continue;let q=vM(lLQ(Y.name,".jsonl"));if(!q)continue;Z.push({sessionId:q,filePath:lH(J,Y.name)})}return await Promise.all(Z.map(async({sessionId:Y,filePath:q})=>{try{let K=await Ms1(q);Q.set(Y,{path:q,mtime:K.mtime.getTime(),ctime:K.birthtime.getTime(),size:K.size})}catch{b(`Failed to stat session file: ${q}`)}})),Q}async function n11(J,Q){let{messages:X,summaries:Z,customTitles:Y,tags:q,agentNames:K,agentColors:G,agentSettings:z,prNumbers:W,prUrls:H,prRepositories:B,modes:U,fileHistorySnapshots:F,attributionSnapshots:_,contentReplacements:O,leafUuids:L}=await YC(J,{keepAllLeaves:!0});if(X.size===0)return[];let N=[],A=new Map;for(let D of X.values())if(L.has(D.uuid))N.push(D);else if(D.parentUuid){let $=A.get(D.parentUuid);if($)$.push(D);else A.set(D.parentUuid,[D])}let R=[];for(let D of N){let $=Wu(X,D);if($.length===0)continue;let y=A.get(D.uuid);if(y)y.sort((C,S)=>C.timestamp<S.timestamp?-1:C.timestamp>S.timestamp?1:0),$.push(...y);let v=$[0],E=D.sessionId;R.push({date:D.timestamp,messages:GX0($),fullPath:J,value:0,created:new Date(v.timestamp),modified:new Date(D.timestamp),firstPrompt:Ts1($),messageCount:Cs1($),isSidechain:v.isSidechain??!1,sessionId:E,leafUuid:D.uuid,summary:Z.get(D.uuid),customTitle:Y.get(E),tag:q.get(E),agentName:K.get(E),agentColor:G.get(E),agentSetting:z.get(E),mode:U.get(E),prNumber:W.get(E),prUrl:H.get(E),prRepository:B.get(E),gitBranch:D.gitBranch,projectPath:Q??v.cwd,fileHistorySnapshots:t11(F,$),attributionSnapshots:e11(_,$),contentReplacements:O.get(E)??[]})}return R}async function EVQ(J,Q){let X=await zw0(J);if(X.size===0)return[];let Z;if(Q&&X.size>Q)Z=[...X.values()].sort((q,K)=>K.mtime-q.mtime).slice(0,Q);else Z=[...X.values()];let Y=[];for(let q of Z)try{let K=await n11(q.path);Y.push(...K)}catch{b(`Failed to load session file: ${q.path}`)}return Y}async function TVQ(J,Q,X){let{head:Z,tail:Y}=await CH8(J,Q,X);if(!Z)return{firstPrompt:"",isSidechain:!1};let q=Z.includes('"isSidechain":true')||Z.includes('"isSidechain": true'),K=Zt(Z,"cwd"),G=Zt(Z,"teamName"),z=Zt(Z,"agentSetting"),W=cU(Y,"lastPrompt")||CVQ(Z)||v_J(Z,"content",200)||v_J(Z,"text",200)||"",H=cU(Y,"customTitle")??cU(Z,"customTitle")??cU(Y,"aiTitle")??cU(Z,"aiTitle"),B=cU(Y,"summary"),U=cU(Y,"tag"),F=cU(Y,"gitBranch")??Zt(Z,"gitBranch"),_=cU(Y,"prUrl"),O=cU(Y,"prRepository"),L,N=cU(Y,"prNumber");if(N)L=parseInt(N,10)||void 0;if(!L){let A=Y.lastIndexOf('"prNumber":');if(A>=0){let R=Y.slice(A+11,A+25),D=parseInt(R.trim(),10);if(D>0)L=D}}return{firstPrompt:W,gitBranch:F,isSidechain:q,projectPath:K,teamName:G,customTitle:H,summary:B,tag:U,agentSetting:z,prNumber:L,prUrl:_,prRepository:O}}function CVQ(J){let Q=0,X=!1,Z="";while(Q<J.length){let Y=J.indexOf(`
|
|
6744
|
-
`,Q),q=Y>=0?J.slice(Q,Y):J.slice(Q);if(Q=Y>=0?Y+1:J.length,!q.includes('"type":"user"')&&!q.includes('"type": "user"'))continue;if(q.includes('"tool_result"'))continue;if(q.includes('"isMeta":true')||q.includes('"isMeta": true'))continue;try{let K=c1(q);if(K.type!=="user")continue;let G=K.message;if(!G)continue;let z=G.content,W=[];if(typeof z==="string")W.push(z);else if(Array.isArray(z))for(let H of z){let B=H;if(B.type==="text"&&typeof B.text==="string")W.push(B.text)}for(let H of W){if(!H)continue;let B=H.replace(/\n/g," ").trim(),U=PJ(B,GB);if(U){let _=U.replace(/^\//,""),O=PJ(B,"command-args")?.trim()||"";if(FI().has(_)||!O){if(!Z)Z=U;continue}return O?`${U} ${O}`:U}let F=PJ(B,"bash-input");if(F)return`! ${F}`;if(f_J.test(B))continue;if(B.length>200)B=B.slice(0,200).trim()+"\u2026";return B}}catch{continue}}if(Z)return Z;return""}function v_J(J,Q,X){let Z=[`"${Q}":"`,`"${Q}": "`];for(let Y of Z){let q=J.indexOf(Y);if(q<0)continue;let K=q+Y.length,G=K,z=0;while(G<J.length&&z<X){if(J[G]==="\\"){G+=2,z++;continue}if(J[G]==='"')break;G++,z++}return J.slice(K,G).replace(/\\n/g," ").replace(/\\t/g," ").trim()}return""}function d_J(J){let Q=new Map;for(let X of J){if(!X.sessionId)continue;let Z=Q.get(X.sessionId);if(!Z||X.modified.getTime()>Z.modified.getTime())Q.set(X.sessionId,X)}return os([...Q.values()]).map((X,Z)=>({...X,value:Z}))}async function eZ0(J,Q,X){let Y=[...(await zw0(J)).entries()].sort((G,z)=>z[1].mtime-G[1].mtime);if(Q&&Y.length>Q)Y=Y.slice(0,Q);let q=[];for(let[G,z]of Y)q.push({date:new Date(z.mtime).toISOString(),messages:[],isLite:!0,fullPath:z.path,value:0,created:new Date(z.ctime),modified:new Date(z.mtime),firstPrompt:"",messageCount:0,fileSize:z.size,isSidechain:!1,sessionId:G,projectPath:X});let K=os(q);return K.forEach((G,z)=>{G.value=z}),K}async function vVQ(J,Q){if(!J.isLite||!J.fullPath)return J;let X=await TVQ(J.fullPath,J.fileSize??0,Q),Z={...J,isLite:!1,firstPrompt:X.firstPrompt,gitBranch:X.gitBranch,isSidechain:X.isSidechain,teamName:X.teamName,customTitle:X.customTitle,summary:X.summary,tag:X.tag,agentSetting:X.agentSetting,prNumber:X.prNumber,prUrl:X.prUrl,prRepository:X.prRepository,projectPath:X.projectPath??J.projectPath};if(!Z.firstPrompt&&!Z.customTitle)Z.firstPrompt="(session)";if(Z.isSidechain)return b(`Session ${J.sessionId} filtered from /resume: isSidechain=true`),null;if(Z.teamName)return b(`Session ${J.sessionId} filtered from /resume: teamName=${Z.teamName}`),null;return Z}async function Ow0(J,Q,X){let Z=[],Y=Buffer.alloc($f),q=Q;while(q<J.length&&Z.length<X){let z=J[q];q++;let W=await vVQ(z,Y);if(W)Z.push(W)}let K=q-Q,G=K-Z.length;if(G>0)b(`/resume: enriched ${K} sessions, ${G} filtered out, ${Z.length} visible (${J.length-q} remaining on disk)`);return{logs:Z,nextIndex:q}}var iLQ,nLQ=52428800,f_J,aLQ,$s1=52428800,js1,Z5,lr=null,T_J=!1,C_J=10,NVQ,r11,wVQ=25,Z40,Q81=50;var gJ=I(()=>{IJ();D1();N1();PY();zZ();qs0();rS();A2();EX();mr();Z6();Z1();h4();t1();T1();A6();H6();S01();uQ();E5();s5();M1();M8();dX();CK0();g8();i1();SM();iLQ=typeof MACRO<"u"?"0.1.
|
|
6744
|
+
`,Q),q=Y>=0?J.slice(Q,Y):J.slice(Q);if(Q=Y>=0?Y+1:J.length,!q.includes('"type":"user"')&&!q.includes('"type": "user"'))continue;if(q.includes('"tool_result"'))continue;if(q.includes('"isMeta":true')||q.includes('"isMeta": true'))continue;try{let K=c1(q);if(K.type!=="user")continue;let G=K.message;if(!G)continue;let z=G.content,W=[];if(typeof z==="string")W.push(z);else if(Array.isArray(z))for(let H of z){let B=H;if(B.type==="text"&&typeof B.text==="string")W.push(B.text)}for(let H of W){if(!H)continue;let B=H.replace(/\n/g," ").trim(),U=PJ(B,GB);if(U){let _=U.replace(/^\//,""),O=PJ(B,"command-args")?.trim()||"";if(FI().has(_)||!O){if(!Z)Z=U;continue}return O?`${U} ${O}`:U}let F=PJ(B,"bash-input");if(F)return`! ${F}`;if(f_J.test(B))continue;if(B.length>200)B=B.slice(0,200).trim()+"\u2026";return B}}catch{continue}}if(Z)return Z;return""}function v_J(J,Q,X){let Z=[`"${Q}":"`,`"${Q}": "`];for(let Y of Z){let q=J.indexOf(Y);if(q<0)continue;let K=q+Y.length,G=K,z=0;while(G<J.length&&z<X){if(J[G]==="\\"){G+=2,z++;continue}if(J[G]==='"')break;G++,z++}return J.slice(K,G).replace(/\\n/g," ").replace(/\\t/g," ").trim()}return""}function d_J(J){let Q=new Map;for(let X of J){if(!X.sessionId)continue;let Z=Q.get(X.sessionId);if(!Z||X.modified.getTime()>Z.modified.getTime())Q.set(X.sessionId,X)}return os([...Q.values()]).map((X,Z)=>({...X,value:Z}))}async function eZ0(J,Q,X){let Y=[...(await zw0(J)).entries()].sort((G,z)=>z[1].mtime-G[1].mtime);if(Q&&Y.length>Q)Y=Y.slice(0,Q);let q=[];for(let[G,z]of Y)q.push({date:new Date(z.mtime).toISOString(),messages:[],isLite:!0,fullPath:z.path,value:0,created:new Date(z.ctime),modified:new Date(z.mtime),firstPrompt:"",messageCount:0,fileSize:z.size,isSidechain:!1,sessionId:G,projectPath:X});let K=os(q);return K.forEach((G,z)=>{G.value=z}),K}async function vVQ(J,Q){if(!J.isLite||!J.fullPath)return J;let X=await TVQ(J.fullPath,J.fileSize??0,Q),Z={...J,isLite:!1,firstPrompt:X.firstPrompt,gitBranch:X.gitBranch,isSidechain:X.isSidechain,teamName:X.teamName,customTitle:X.customTitle,summary:X.summary,tag:X.tag,agentSetting:X.agentSetting,prNumber:X.prNumber,prUrl:X.prUrl,prRepository:X.prRepository,projectPath:X.projectPath??J.projectPath};if(!Z.firstPrompt&&!Z.customTitle)Z.firstPrompt="(session)";if(Z.isSidechain)return b(`Session ${J.sessionId} filtered from /resume: isSidechain=true`),null;if(Z.teamName)return b(`Session ${J.sessionId} filtered from /resume: teamName=${Z.teamName}`),null;return Z}async function Ow0(J,Q,X){let Z=[],Y=Buffer.alloc($f),q=Q;while(q<J.length&&Z.length<X){let z=J[q];q++;let W=await vVQ(z,Y);if(W)Z.push(W)}let K=q-Q,G=K-Z.length;if(G>0)b(`/resume: enriched ${K} sessions, ${G} filtered out, ${Z.length} visible (${J.length-q} remaining on disk)`);return{logs:Z,nextIndex:q}}var iLQ,nLQ=52428800,f_J,aLQ,$s1=52428800,js1,Z5,lr=null,T_J=!1,C_J=10,NVQ,r11,wVQ=25,Z40,Q81=50;var gJ=I(()=>{IJ();D1();N1();PY();zZ();qs0();rS();A2();EX();mr();Z6();Z1();h4();t1();T1();A6();H6();S01();uQ();E5();s5();M1();M8();dX();CK0();g8();i1();SM();iLQ=typeof MACRO<"u"?"0.1.17":"unknown",f_J=/^(?:\s*<[a-z][\w-]*[\s>]|\[Request interrupted by user[^\]]*\])/;aLQ=new Set(["bash_progress","powershell_progress","mcp_progress",...[]]);js1=new Map;Z5=g1((J)=>{return lH(jD(),dU(J))});NVQ=['"type":"summary"','"type":"custom-title"','"type":"tag"','"type":"agent-name"','"type":"agent-color"','"type":"agent-setting"','"type":"mode"','"type":"worktree-state"','"type":"pr-link"'],r11=NVQ.map((J)=>Buffer.from(J));Z40=g1(async(J)=>{let{messages:Q}=await g_J(J);return new Set(Q.keys())},(J)=>J)});function us1(J){let Q=J.trim(),X=Q.split(`
|
|
6745
6745
|
`),Z=X.length,Y=Q.length,q=Z>IQ0,K=Y>Lw0;if(!q&&!K)return{content:Q,lineCount:Z,byteCount:Y,wasLineTruncated:q,wasByteTruncated:K};let G=q?X.slice(0,IQ0).join(`
|
|
6746
6746
|
`):Q;if(G.length>Lw0){let W=G.lastIndexOf(`
|
|
6747
6747
|
`,Lw0);G=G.slice(0,W>0?W:Lw0)}let z=K&&!q?`${wJ(Y)} (limit: ${wJ(Lw0)}) \u2014 index entries are too long`:q&&!K?`${Z} lines (limit: ${IQ0})`:`${Z} lines and ${wJ(Y)}`;return{content:G+`
|
|
@@ -6842,7 +6842,7 @@ Output format: ${U}
|
|
|
6842
6842
|
Parse the user's input into ISO 8601 format. Return ONLY the formatted string, or "INVALID" if the input is incomplete or unparseable.`;try{let _=await B_({systemPrompt:B,userPrompt:F,signal:X,options:{querySource:"mcp_datetime_parse",agents:[],isNonInteractiveSession:!1,hasAppendSystemPrompt:!1,mcpTools:[],enablePromptCaching:!1}}),O=R7(_.message.content).trim();if(!O||O==="INVALID")return{success:!1,error:"Unable to parse date/time from input"};if(!/^\d{4}/.test(O))return{success:!1,error:"Unable to parse date/time from input"};return{success:!0,value:O}}catch(_){return H0(_),{success:!1,error:"Unable to parse date/time. Please enter in ISO 8601 format manually."}}}function jNJ(J){return/^\d{4}-\d{2}-\d{2}(T|$)/.test(J.trim())}var INJ=I(()=>{wq();M1();M8()});function Ya(J){return J.type==="array"&&"items"in J&&typeof J.items==="object"&&J.items!==null&&(("enum"in J.items)||("anyOf"in J.items))}function uw0(J){if("anyOf"in J.items)return J.items.anyOf.map((Q)=>Q.const);if("enum"in J.items)return J.items.enum;return[]}function ORQ(J){if("anyOf"in J.items)return J.items.anyOf.map((Q)=>Q.title);if("enum"in J.items)return J.items.enum;return[]}function gw0(J,Q){let X=uw0(J).indexOf(Q);return X>=0?ORQ(J)[X]??Q:Q}function R40(J){if("oneOf"in J)return J.oneOf.map((Q)=>Q.const);if("enum"in J)return J.enum;return[]}function LRQ(J){if("oneOf"in J)return J.oneOf.map((Q)=>Q.title);if("enum"in J)return("enumNames"in J?J.enumNames:void 0)??J.enum;return[]}function mw0(J,Q){let X=R40(J).indexOf(Q);return X>=0?LRQ(J)[X]??Q:Q}function VRQ(J){if(Hy(J)){let[Q,...X]=R40(J);if(!Q)return j.never();return j.enum([Q,...X])}if(J.type==="string"){let Q=j.string();if(J.minLength!==void 0)Q=Q.min(J.minLength,{message:`Must be at least ${J.minLength} ${J6(J.minLength,"character")}`});if(J.maxLength!==void 0)Q=Q.max(J.maxLength,{message:`Must be at most ${J.maxLength} ${J6(J.maxLength,"character")}`});switch(J.format){case"email":Q=Q.email({message:"Must be a valid email address, e.g. user@example.com"});break;case"uri":Q=Q.url({message:"Must be a valid URI, e.g. https://example.com"});break;case"date":Q=Q.date("Must be a valid date, e.g. 2024-03-15, today, next Monday");break;case"date-time":Q=Q.datetime({offset:!0,message:"Must be a valid date-time, e.g. 2024-03-15T14:30:00Z, tomorrow at 3pm"});break;default:break}return Q}if(J.type==="number"||J.type==="integer"){let Q=J.type==="integer"?"an integer":"a number",X=J.type==="integer",Z=(K)=>Number.isInteger(K)&&!X?`${K}.0`:String(K),Y=J.minimum!==void 0&&J.maximum!==void 0?`Must be ${Q} between ${Z(J.minimum)} and ${Z(J.maximum)}`:J.minimum!==void 0?`Must be ${Q} >= ${Z(J.minimum)}`:J.maximum!==void 0?`Must be ${Q} <= ${Z(J.maximum)}`:`Must be ${Q}`,q=j.coerce.number({error:Y});if(J.type==="integer")q=q.int({message:Y});if(J.minimum!==void 0)q=q.min(J.minimum,{message:Y});if(J.maximum!==void 0)q=q.max(J.maximum,{message:Y});return q}if(J.type==="boolean")return j.coerce.boolean();throw Error(`Unsupported schema: ${l0(J)}`)}function hw0(J,Q){let Z=VRQ(Q).safeParse(J);if(Z.success)return{value:Z.data,isValid:!0};return{isValid:!1,error:Z.error.issues.map((Y)=>Y.message).join("; ")}}function pw0(J){return J.type==="string"&&"format"in J&&(J.format==="date"||J.format==="date-time")}async function yNJ(J,Q,X){let Z=hw0(J,Q);if(Z.isValid)return Z;if(pw0(Q)&&!jNJ(J)){let Y=await $NJ(J,Q.format,X);if(Y.success){let q=hw0(Y.value,Q);if(q.isValid)return q}}return Z}var Hy=(J)=>{return J.type==="string"&&(("enum"in J)||("oneOf"in J))};var bNJ=I(()=>{M6();i1();INJ()});function wRQ(J){J.buffer="",J.timer=void 0}function ARQ(){let J=yt1.c(4),[Q,X]=Q4.useState(0),Z,Y;if(J[0]===Symbol.for("react.memo_cache_sentinel"))Z=()=>{let G=setInterval(X,80,NRQ);return()=>clearInterval(G)},Y=[],J[0]=Z,J[1]=Y;else Z=J[0],Y=J[1];Q4.useEffect(Z,Y);let q=PNJ[Q],K;if(J[2]!==q)K=i8.jsxDEV(M,{color:"warning",children:q},void 0,!1,void 0,this),J[2]=q,J[3]=K;else K=J[3];return K}function RRQ(J,Q){try{let X=new Date(J);if(Number.isNaN(X.getTime()))return J;if(("format"in Q?Q.format:void 0)==="date-time")return X.toLocaleDateString("en-US",{weekday:"short",year:"numeric",month:"short",day:"numeric",hour:"numeric",minute:"2-digit",timeZoneName:"short"});let Y=J.split("-");if(Y.length===3)return new Date(Number(Y[0]),Number(Y[1])-1,Number(Y[2])).toLocaleDateString("en-US",{weekday:"short",year:"numeric",month:"short",day:"numeric"});return J}catch{return J}}function ENJ(J){let Q=yt1.c(7),{event:X,onResponse:Z,onWaitingDismiss:Y}=J;if(X.params.mode==="url"){let K;if(Q[0]!==X||Q[1]!==Z||Q[2]!==Y)K=i8.jsxDEV(DRQ,{event:X,onResponse:Z,onWaitingDismiss:Y},void 0,!1,void 0,this),Q[0]=X,Q[1]=Z,Q[2]=Y,Q[3]=K;else K=Q[3];return K}let q;if(Q[4]!==X||Q[5]!==Z)q=i8.jsxDEV(MRQ,{event:X,onResponse:Z},void 0,!1,void 0,this),Q[4]=X,Q[5]=Z,Q[6]=q;else q=Q[6];return q}function MRQ({event:J,onResponse:Q}){let{serverName:X,signal:Z}=J,Y=J.params,{message:q,requestedSchema:K}=Y,G=Object.keys(K.properties).length>0,[z,W]=Q4.useState(G?null:"accept"),[H,B]=Q4.useState(()=>{let U0={};if(K.properties){for(let[P0,$0]of Object.entries(K.properties))if(typeof $0==="object"&&$0!==null){if($0.default!==void 0)U0[P0]=$0.default}}return U0}),[U,F]=Q4.useState(()=>{let U0={};for(let[P0,$0]of Object.entries(K.properties))if(cw0($0)&&$0?.default!==void 0){let w0=hw0(String($0.default),$0);if(!w0.isValid&&w0.error)U0[P0]=w0.error}return U0});Q4.useEffect(()=>{if(!Z)return;let U0=()=>{Q("cancel")};if(Z.aborted){U0();return}return Z.addEventListener("abort",U0),()=>{Z.removeEventListener("abort",U0)}},[Z,Q]);let _=Q4.useMemo(()=>{let U0=K.required??[];return Object.entries(K.properties).map(([P0,$0])=>({name:P0,schema:$0,isRequired:U0.includes(P0)}))},[K]),[O,L]=Q4.useState(G?0:void 0),[N,A]=Q4.useState(()=>{let U0=_[0];if(U0&&cw0(U0.schema)){let P0=H[U0.name];if(P0===void 0)return"";return String(P0)}return""}),[R,D]=Q4.useState(N.length),[$,y]=Q4.useState(()=>new Set),[v,E]=Q4.useState(),[C,S]=Q4.useState(0),k=Q4.useRef(void 0),h=Q4.useRef(new Map),u=Q4.useRef({buffer:"",timer:void 0});Q4.useEffect(()=>()=>{if(k.current!==void 0)clearTimeout(k.current);let U0=u.current;if(U0.timer!==void 0)clearTimeout(U0.timer);for(let P0 of h.current.values())P0.abort();h.current.clear()},[]);let{columns:x,rows:m}=l8(),p=O!==void 0?_[O]:void 0,r=p!==void 0&&cw0(p.schema)&&!Hy(p.schema)&&!z;WW("elicitation"),Iw0("Glock needs your input","elicitation_dialog");let J0=Q4.useCallback((U0)=>{if(U0===void 0){A(""),D(0);return}let P0=_[U0];if(P0&&cw0(P0.schema)&&!Hy(P0.schema)){let $0=H[P0.name],w0=$0!==void 0?String($0):"";A(w0),D(w0.length)}},[_,H]);function n(U0,P0){if(!Ya(P0))return;let $0=H[U0]??[],w0=_.find((u0)=>u0.name===U0)?.isRequired??!1,E0=P0.minItems,h0=P0.maxItems;if(E0!==void 0&&$0.length<E0&&($0.length>0||w0))Y0(U0,`Select at least ${E0} ${J6(E0,"item")}`);else if(h0!==void 0&&$0.length>h0)Y0(U0,`Select at most ${h0} ${J6(h0,"item")}`);else Y0(U0)}function s(U0){if(p&&Ya(p.schema))n(p.name,p.schema),E(void 0);else if(p&&Hy(p.schema))E(void 0);if(r&&p){if(j0(p.name,p.schema,N),k.current!==void 0)clearTimeout(k.current),k.current=void 0;if(pw0(p.schema)&&N.trim()!==""&&U[p.name])W0(p.name,p.schema,N)}let P0=_.length+2,$0=O??(z==="accept"?_.length:z==="decline"?_.length+1:void 0),w0=$0!==void 0?($0+(U0==="up"?P0-1:1))%P0:0;if(w0<_.length)L(w0),W(null),J0(w0);else L(void 0),W(w0===_.length?"accept":"decline"),A("")}function X0(U0,P0){if(B(($0)=>{let w0={...$0};if(P0===void 0)delete w0[U0];else w0[U0]=P0;return w0}),P0!==void 0&&U[U0]==="This field is required")Y0(U0)}function Y0(U0,P0){F(($0)=>{let w0={...$0};if(P0)w0[U0]=P0;else delete w0[U0];return w0})}function G0(U0){if(!U0)return;X0(U0,void 0),Y0(U0),A(""),D(0)}function j0(U0,P0,$0){let w0=$0.trim();if(w0===""&&(P0.type!=="string"||("format"in P0)&&P0.format!==void 0)){G0(U0);return}if(w0===""){if(H[U0]!==void 0)X0(U0,"");return}let E0=hw0($0,P0);X0(U0,E0.isValid?E0.value:$0),Y0(U0,E0.isValid?void 0:E0.error)}function W0(U0,P0,$0){if(!Z)return;let w0=h.current.get(U0);if(w0)w0.abort();let E0=new AbortController;h.current.set(U0,E0),y((h0)=>new Set(h0).add(U0)),yNJ($0,P0,E0.signal).then((h0)=>{if(h.current.delete(U0),y((u0)=>{let B0=new Set(u0);return B0.delete(U0),B0}),E0.signal.aborted)return;if(h0.isValid){X0(U0,h0.value),Y0(U0);let u0=String(h0.value);A((B0)=>{if(B0===$0)return D(u0.length),u0;return B0})}else Y0(U0,h0.error)},()=>{h.current.delete(U0),y((h0)=>{let u0=new Set(h0);return u0.delete(U0),u0})})}function y0(U0){if(A(U0),p){if(j0(p.name,p.schema,U0),k.current!==void 0)clearTimeout(k.current),k.current=void 0;if(pw0(p.schema)&&U0.trim()!==""&&U[p.name]){let{name:P0,schema:$0}=p;k.current=setTimeout((w0,E0,h0,u0,B0)=>{w0.current=void 0,E0(h0,u0,B0)},2000,k,W0,P0,$0,U0)}}}function V0(){s("down")}function Z0(U0,P0,$0){let w0=u.current;if(w0.timer!==void 0)clearTimeout(w0.timer);w0.buffer+=U0.toLowerCase(),w0.timer=setTimeout(wRQ,2000,w0);let E0=P0.findIndex((h0)=>h0.startsWith(w0.buffer));if(E0!==-1)$0(E0)}J8("confirm:no",()=>{if(r&&p){let U0=H[p.name];A(U0!==void 0?String(U0):""),D(0)}Q("cancel")},{context:"Settings",isActive:!!p&&!z&&!v}),SJ((U0,P0)=>{if(r&&!P0.upArrow&&!P0.downArrow&&!P0.return&&!P0.backspace)return;if(v&&p&&Ya(p.schema)){let h0=p.schema,u0=uw0(h0),B0=H[p.name]??[];if(P0.leftArrow||P0.escape){E(void 0),n(p.name,h0);return}if(P0.upArrow){if(C===0)E(void 0),n(p.name,h0);else S(C-1);return}if(P0.downArrow){if(C>=u0.length-1)E(void 0),s("down");else S(C+1);return}if(U0===" "){let _0=u0[C];if(_0!==void 0){let M0=B0.includes(_0)?B0.filter((S0)=>S0!==_0):[...B0,_0],b0=M0.length>0?M0:void 0;X0(p.name,b0);let{minItems:L0,maxItems:T0}=h0;if(L0!==void 0&&M0.length<L0&&(M0.length>0||p.isRequired))Y0(p.name,`Select at least ${L0} ${J6(L0,"item")}`);else if(T0!==void 0&&M0.length>T0)Y0(p.name,`Select at most ${T0} ${J6(T0,"item")}`);else Y0(p.name)}return}if(P0.return){let _0=u0[C];if(_0!==void 0&&!B0.includes(_0))X0(p.name,[...B0,_0]);E(void 0),s("down");return}if(U0){let _0=u0.map((M0)=>gw0(h0,M0).toLowerCase());Z0(U0,_0,S);return}return}if(v&&p&&Hy(p.schema)){let h0=p.schema,u0=R40(h0);if(P0.leftArrow||P0.escape){E(void 0);return}if(P0.upArrow){if(C===0)E(void 0);else S(C-1);return}if(P0.downArrow){if(C>=u0.length-1)E(void 0),s("down");else S(C+1);return}if(U0===" "){let B0=u0[C];if(B0!==void 0)X0(p.name,B0);E(void 0);return}if(P0.return){let B0=u0[C];if(B0!==void 0)X0(p.name,B0);E(void 0),s("down");return}if(U0){let B0=u0.map((_0)=>mw0(h0,_0).toLowerCase());Z0(U0,B0,S);return}return}if(P0.return&&z==="accept"){if(t()&&Object.keys(U).length===0)Q("accept",H);else{let h0=K.required||[];for(let B0 of h0)if(H[B0]===void 0)Y0(B0,"This field is required");let u0=_.findIndex((B0)=>h0.includes(B0.name)&&H[B0.name]===void 0||U[B0.name]!==void 0);if(u0!==-1)L(u0),W(null),J0(u0)}return}if(P0.return&&z==="decline"){Q("decline");return}if(P0.upArrow||P0.downArrow){let h0=u.current;if(h0.buffer="",h0.timer!==void 0)clearTimeout(h0.timer),h0.timer=void 0;s(P0.upArrow?"up":"down");return}if(z&&(P0.leftArrow||P0.rightArrow)){W(z==="accept"?"decline":"accept");return}if(!p)return;let{schema:$0,name:w0}=p,E0=H[w0];if($0.type==="boolean"){if(U0===" "){X0(w0,E0===void 0?!0:!E0);return}if(P0.return){s("down");return}if(P0.backspace&&E0!==void 0){G0(w0);return}if(U0&&!P0.return){Z0(U0,["yes","no"],(h0)=>X0(w0,h0===0));return}return}if(Hy($0)||Ya($0)){if(P0.return){s("down");return}if(P0.backspace&&E0!==void 0){G0(w0);return}let h0,u0=0;if(Hy($0)){let B0=R40($0);if(h0=B0.map((_0)=>mw0($0,_0).toLowerCase()),E0!==void 0)u0=Math.max(0,B0.indexOf(E0))}else h0=uw0($0).map((_0)=>gw0($0,_0).toLowerCase());if(P0.rightArrow){E(w0),S(u0);return}if(U0&&!P0.leftArrow){Z0(U0,h0,(B0)=>{E(w0),S(B0)});return}return}if(P0.backspace){if(r&&N===""){G0(w0);return}}},{isActive:!0});function t(){let U0=K.required||[];for(let P0 of U0){let $0=H[P0];if($0===void 0||$0===null||$0==="")return!1;if(Array.isArray($0)&&$0.length===0)return!1}return!0}let q0=3,a=Math.max(2,Math.floor((m-14)/q0)),O0=Q4.useMemo(()=>{let U0=_.length;if(U0<=a)return{start:0,end:U0};let P0=O??U0-1,$0=Math.max(0,P0-Math.floor(a/2)),w0=Math.min($0+a,U0);return $0=Math.max(0,w0-a),{start:$0,end:w0}},[_.length,a,O]),D0=O0.start>0,F0=O0.end<_.length;function I0(){if(!_.length)return null;return i8.jsxDEV(f,{flexDirection:"column",children:[D0&&i8.jsxDEV(f,{marginLeft:2,children:i8.jsxDEV(M,{dimColor:!0,children:[s0.arrowUp," ",O0.start," more above"]},void 0,!0,void 0,this)},void 0,!1,void 0,this),_.slice(O0.start,O0.end).map((U0,P0)=>{let $0=O0.start+P0,{name:w0,schema:E0,isRequired:h0}=U0,u0=$0===O&&!z,B0=H[w0],_0=B0!==void 0&&(!Array.isArray(B0)||B0.length>0),M0=U[w0],L0=$.has(w0)?i8.jsxDEV(ARQ,{},void 0,!1,void 0,this):M0?i8.jsxDEV(M,{color:"error",children:s0.warning},void 0,!1,void 0,this):_0?i8.jsxDEV(M,{color:"success",dimColor:!u0,children:s0.tick},void 0,!1,void 0,this):h0?i8.jsxDEV(M,{color:"error",children:"*"},void 0,!1,void 0,this):i8.jsxDEV(M,{children:" "},void 0,!1,void 0,this),T0=M0?"error":_0?"success":h0?"error":"suggestion",S0=u0?T0:void 0,g0=i8.jsxDEV(M,{color:S0,bold:u0,children:E0.title||w0},void 0,!1,void 0,this),c0,t0=null;if(Ya(E0)){let K1=uw0(E0),K0=B0??[];if(v===w0&&u0)c0=i8.jsxDEV(M,{dimColor:!0,children:s0.triangleDownSmall},void 0,!1,void 0,this),t0=i8.jsxDEV(f,{flexDirection:"column",marginLeft:6,children:K1.map((R0,p0)=>{let o0=gw0(E0,R0),R1=K0.includes(R0),l1=p0===C;return i8.jsxDEV(f,{gap:1,children:[i8.jsxDEV(M,{color:"suggestion",children:l1?s0.pointer:" "},void 0,!1,void 0,this),i8.jsxDEV(M,{color:R1?"success":void 0,children:R1?s0.checkboxOn:s0.checkboxOff},void 0,!1,void 0,this),i8.jsxDEV(M,{color:l1?"suggestion":void 0,bold:l1,children:o0},void 0,!1,void 0,this)]},R0,!0,void 0,this)})},void 0,!1,void 0,this);else{let R0=u0?i8.jsxDEV(M,{dimColor:!0,children:[s0.triangleRightSmall," "]},void 0,!0,void 0,this):null;if(K0.length>0){let p0=K0.map((o0)=>gw0(E0,o0));c0=i8.jsxDEV(M,{children:[R0,i8.jsxDEV(M,{color:S0,bold:u0,children:p0.join(", ")},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}else c0=i8.jsxDEV(M,{children:[R0,i8.jsxDEV(M,{dimColor:!0,italic:!0,children:"not set"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}}else if(Hy(E0)){let K1=R40(E0);if(v===w0&&u0)c0=i8.jsxDEV(M,{dimColor:!0,children:s0.triangleDownSmall},void 0,!1,void 0,this),t0=i8.jsxDEV(f,{flexDirection:"column",marginLeft:6,children:K1.map((m0,R0)=>{let p0=mw0(E0,m0),o0=B0===m0,R1=R0===C;return i8.jsxDEV(f,{gap:1,children:[i8.jsxDEV(M,{color:"suggestion",children:R1?s0.pointer:" "},void 0,!1,void 0,this),i8.jsxDEV(M,{color:o0?"success":void 0,children:o0?s0.radioOn:s0.radioOff},void 0,!1,void 0,this),i8.jsxDEV(M,{color:R1?"suggestion":void 0,bold:R1,children:p0},void 0,!1,void 0,this)]},m0,!0,void 0,this)})},void 0,!1,void 0,this);else{let m0=u0?i8.jsxDEV(M,{dimColor:!0,children:[s0.triangleRightSmall," "]},void 0,!0,void 0,this):null;if(_0)c0=i8.jsxDEV(M,{children:[m0,i8.jsxDEV(M,{color:S0,bold:u0,children:mw0(E0,B0)},void 0,!1,void 0,this)]},void 0,!0,void 0,this);else c0=i8.jsxDEV(M,{children:[m0,i8.jsxDEV(M,{dimColor:!0,italic:!0,children:"not set"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}}else if(E0.type==="boolean")if(u0)c0=_0?i8.jsxDEV(M,{color:S0,bold:!0,children:B0?s0.checkboxOn:s0.checkboxOff},void 0,!1,void 0,this):i8.jsxDEV(M,{dimColor:!0,children:s0.checkboxOff},void 0,!1,void 0,this);else c0=_0?i8.jsxDEV(M,{children:B0?s0.checkboxOn:s0.checkboxOff},void 0,!1,void 0,this):i8.jsxDEV(M,{dimColor:!0,italic:!0,children:"not set"},void 0,!1,void 0,this);else if(cw0(E0))if(u0)c0=i8.jsxDEV(sX,{value:N,onChange:y0,onSubmit:V0,placeholder:"Type something\u2026",columns:Math.min(x-20,60),cursorOffset:R,onChangeCursorOffset:D,focus:!0,showCursor:!0},void 0,!1,void 0,this);else{let K1=_0&&pw0(E0)?RRQ(String(B0),E0):String(B0);c0=_0?i8.jsxDEV(M,{children:K1},void 0,!1,void 0,this):i8.jsxDEV(M,{dimColor:!0,italic:!0,children:"not set"},void 0,!1,void 0,this)}else c0=_0?i8.jsxDEV(M,{children:String(B0)},void 0,!1,void 0,this):i8.jsxDEV(M,{dimColor:!0,italic:!0,children:"not set"},void 0,!1,void 0,this);return i8.jsxDEV(f,{flexDirection:"column",children:[i8.jsxDEV(f,{gap:1,children:[i8.jsxDEV(M,{color:T0,children:u0?s0.pointer:" "},void 0,!1,void 0,this),L0,i8.jsxDEV(f,{children:[g0,i8.jsxDEV(M,{color:S0,children:": "},void 0,!1,void 0,this),c0]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),t0,E0.description&&i8.jsxDEV(f,{marginLeft:6,children:i8.jsxDEV(M,{dimColor:!0,children:E0.description},void 0,!1,void 0,this)},void 0,!1,void 0,this),i8.jsxDEV(f,{marginLeft:6,height:1,children:M0?i8.jsxDEV(M,{color:"error",italic:!0,children:M0},void 0,!1,void 0,this):i8.jsxDEV(M,{children:" "},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},w0,!0,void 0,this)}),F0&&i8.jsxDEV(f,{marginLeft:2,children:i8.jsxDEV(M,{dimColor:!0,children:[s0.arrowDown," ",_.length-O0.end," more below"]},void 0,!0,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}return i8.jsxDEV(D8,{title:`MCP server \u201C${X}\u201D requests your input`,subtitle:`
|
|
6843
6843
|
${q}`,color:"permission",onCancel:()=>Q("cancel"),isCancelActive:(!p||!!z)&&!v,inputGuide:(U0)=>U0.pending?i8.jsxDEV(M,{children:["Press ",U0.keyName," again to exit"]},void 0,!0,void 0,this):i8.jsxDEV(V8,{children:[i8.jsxDEV(s1,{action:"confirm:no",context:"Confirmation",fallback:"Esc",description:"cancel"},void 0,!1,void 0,this),i8.jsxDEV(p1,{shortcut:"\u2191\u2193",action:"navigate"},void 0,!1,void 0,this),p&&i8.jsxDEV(p1,{shortcut:"Backspace",action:"unset"},void 0,!1,void 0,this),p&&p.schema.type==="boolean"&&i8.jsxDEV(p1,{shortcut:"Space",action:"toggle"},void 0,!1,void 0,this),p&&Hy(p.schema)&&(v?i8.jsxDEV(p1,{shortcut:"Space",action:"select"},void 0,!1,void 0,this):i8.jsxDEV(p1,{shortcut:"\u2192",action:"expand"},void 0,!1,void 0,this)),p&&Ya(p.schema)&&(v?i8.jsxDEV(p1,{shortcut:"Space",action:"toggle"},void 0,!1,void 0,this):i8.jsxDEV(p1,{shortcut:"\u2192",action:"expand"},void 0,!1,void 0,this))]},void 0,!0,void 0,this),children:i8.jsxDEV(f,{flexDirection:"column",children:[I0(),i8.jsxDEV(f,{children:[i8.jsxDEV(M,{color:"success",children:z==="accept"?s0.pointer:" "},void 0,!1,void 0,this),i8.jsxDEV(M,{bold:z==="accept",color:z==="accept"?"success":void 0,dimColor:z!=="accept",children:" Accept "},void 0,!1,void 0,this),i8.jsxDEV(M,{color:"error",children:z==="decline"?s0.pointer:" "},void 0,!1,void 0,this),i8.jsxDEV(M,{bold:z==="decline",color:z==="decline"?"error":void 0,dimColor:z!=="decline",children:" Decline"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this)}function DRQ({event:J,onResponse:Q,onWaitingDismiss:X}){let{serverName:Z,signal:Y,waitingState:q}=J,K=J.params,{message:G,url:z}=K,[W,H]=Q4.useState("prompt"),B=Q4.useRef("prompt"),[U,F]=Q4.useState("accept"),_=q?.showCancel??!1;Iw0("Glock needs your input","elicitation_url_dialog"),WW("elicitation-url"),B.current=W;let O=Q4.useRef(X);O.current=X,Q4.useEffect(()=>{let D=()=>{if(B.current==="waiting")O.current?.("cancel");else Q("cancel")};if(Y.aborted){D();return}return Y.addEventListener("abort",D),()=>Y.removeEventListener("abort",D)},[Y,Q]);let L="",N="",A="";try{L=new URL(z).hostname;let $=z.indexOf(L);N=z.slice(0,$),A=z.slice($+L.length)}catch{L=z}Q4.useEffect(()=>{if(W==="waiting"&&J.completed)X?.(_?"retry":"dismiss")},[W,J.completed,X,_]);let R=Q4.useCallback(()=>{IX(z),Q("accept"),H("waiting"),B.current="waiting",F("open")},[Q,z]);if(SJ((D,$)=>{if(W==="prompt"){if($.leftArrow||$.rightArrow){F((y)=>y==="accept"?"decline":"accept");return}if($.return)if(U==="accept")R();else Q("decline")}else{let y=_?["open","action","cancel"]:["open","action"];if($.leftArrow||$.rightArrow){F((v)=>{let E=y.indexOf(v),C=$.rightArrow?1:-1;return y[(E+C+y.length)%y.length]});return}if($.return)if(U==="open")IX(z);else if(U==="cancel")X?.("cancel");else X?.(_?"retry":"dismiss")}}),W==="waiting"){let D=q?.actionLabel??"Continue without waiting";return i8.jsxDEV(D8,{title:`MCP server \u201C${Z}\u201D \u2014 waiting for completion`,subtitle:`
|
|
6844
6844
|
${G}`,color:"permission",onCancel:()=>X?.("cancel"),isCancelActive:!0,inputGuide:($)=>$.pending?i8.jsxDEV(M,{children:["Press ",$.keyName," again to exit"]},void 0,!0,void 0,this):i8.jsxDEV(V8,{children:[i8.jsxDEV(s1,{action:"confirm:no",context:"Confirmation",fallback:"Esc",description:"cancel"},void 0,!1,void 0,this),i8.jsxDEV(p1,{shortcut:"\\u2190\\u2192",action:"switch"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),children:i8.jsxDEV(f,{flexDirection:"column",children:[i8.jsxDEV(f,{marginBottom:1,flexDirection:"column",children:i8.jsxDEV(M,{children:[N,i8.jsxDEV(M,{bold:!0,children:L},void 0,!1,void 0,this),A]},void 0,!0,void 0,this)},void 0,!1,void 0,this),i8.jsxDEV(f,{marginBottom:1,children:i8.jsxDEV(M,{dimColor:!0,italic:!0,children:"Waiting for the server to confirm completion\u2026"},void 0,!1,void 0,this)},void 0,!1,void 0,this),i8.jsxDEV(f,{children:[i8.jsxDEV(M,{color:"success",children:U==="open"?s0.pointer:" "},void 0,!1,void 0,this),i8.jsxDEV(M,{bold:U==="open",color:U==="open"?"success":void 0,dimColor:U!=="open",children:" Reopen URL "},void 0,!1,void 0,this),i8.jsxDEV(M,{color:"success",children:U==="action"?s0.pointer:" "},void 0,!1,void 0,this),i8.jsxDEV(M,{bold:U==="action",color:U==="action"?"success":void 0,dimColor:U!=="action",children:` ${D}`},void 0,!1,void 0,this),_&&i8.jsxDEV(i8.Fragment,{children:[i8.jsxDEV(M,{children:" "},void 0,!1,void 0,this),i8.jsxDEV(M,{color:"error",children:U==="cancel"?s0.pointer:" "},void 0,!1,void 0,this),i8.jsxDEV(M,{bold:U==="cancel",color:U==="cancel"?"error":void 0,dimColor:U!=="cancel",children:" Cancel"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this)}return i8.jsxDEV(D8,{title:`MCP server \u201C${Z}\u201D wants to open a URL`,subtitle:`
|
|
6845
|
-
${G}`,color:"permission",onCancel:()=>Q("cancel"),isCancelActive:!0,inputGuide:(D)=>D.pending?i8.jsxDEV(M,{children:["Press ",D.keyName," again to exit"]},void 0,!0,void 0,this):i8.jsxDEV(V8,{children:[i8.jsxDEV(s1,{action:"confirm:no",context:"Confirmation",fallback:"Esc",description:"cancel"},void 0,!1,void 0,this),i8.jsxDEV(p1,{shortcut:"\\u2190\\u2192",action:"switch"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),children:i8.jsxDEV(f,{flexDirection:"column",children:[i8.jsxDEV(f,{marginBottom:1,flexDirection:"column",children:i8.jsxDEV(M,{children:[N,i8.jsxDEV(M,{bold:!0,children:L},void 0,!1,void 0,this),A]},void 0,!0,void 0,this)},void 0,!1,void 0,this),i8.jsxDEV(f,{children:[i8.jsxDEV(M,{color:"success",children:U==="accept"?s0.pointer:" "},void 0,!1,void 0,this),i8.jsxDEV(M,{bold:U==="accept",color:U==="accept"?"success":void 0,dimColor:U!=="accept",children:" Accept "},void 0,!1,void 0,this),i8.jsxDEV(M,{color:"error",children:U==="decline"?s0.pointer:" "},void 0,!1,void 0,this),i8.jsxDEV(M,{bold:U==="decline",color:U==="decline"?"error":void 0,dimColor:U!=="decline",children:" Decline"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this)}var yt1,Q4,i8,cw0=(J)=>["string","number","integer"].includes(J.type),PNJ="\u280B\u2819\u2839\u2838\u283C\u2834\u2826\u2827\u2807\u280F",NRQ=(J)=>(J+1)%PNJ.length;var TNJ=I(()=>{r6();F_();Yt1();U9();a0();f6();s3();bNJ();U7();R9();M9();g9();EH();yt1=T(e0(),1),Q4=T(J1(),1),i8=T(e(),1)});function vNJ(J){let Q=CNJ.c(15),{title:X,toolInputSummary:Z,request:Y,onRespond:q,onAbort:K}=J,G;if(Q[0]===Symbol.for("react.memo_cache_sentinel"))G={isActive:!0},Q[0]=G;else G=Q[0];J8("app:interrupt",K,G);let z;if(Q[1]!==Y.options)z=Y.options.map($RQ),Q[1]=Y.options,Q[2]=z;else z=Q[2];let W=z,H;if(Q[3]!==Z)H=Z?dw0.jsxDEV(M,{dimColor:!0,children:Z},void 0,!1,void 0,this):void 0,Q[3]=Z,Q[4]=H;else H=Q[4];let B;if(Q[5]!==q)B=(_)=>{q(_)},Q[5]=q,Q[6]=B;else B=Q[6];let U;if(Q[7]!==W||Q[8]!==B)U=dw0.jsxDEV(f,{flexDirection:"column",paddingY:1,children:dw0.jsxDEV(Q8,{options:W,onChange:B},void 0,!1,void 0,this)},void 0,!1,void 0,this),Q[7]=W,Q[8]=B,Q[9]=U;else U=Q[9];let F;if(Q[10]!==Y.message||Q[11]!==H||Q[12]!==U||Q[13]!==X)F=dw0.jsxDEV(OZ,{title:X,subtitle:Y.message,titleRight:H,children:U},void 0,!1,void 0,this),Q[10]=Y.message,Q[11]=H,Q[12]=U,Q[13]=X,Q[14]=F;else F=Q[14];return F}function $RQ(J){return{label:J.label,value:J.key,description:J.description}}var CNJ,dw0;var fNJ=I(()=>{a0();f6();AQ();TH();CNJ=T(e0(),1),dw0=T(e(),1)});function By(){return SNJ.useSyncExternalStore(hX0,Pt0)}var SNJ;var M40=I(()=>{rq();SNJ=T(J1(),1)});function xNJ(J,Q){let X=T81.useRef(void 0);T81.useEffect(()=>{let Z=sF(J);if(X.current!==Z)X.current=Z;if(Z)Z.client.setNotificationHandler(IRQ(),(Y)=>{if(X.current!==Z)return;try{let q=Y.params,K=q.lineStart!==void 0?q.lineStart+1:void 0,G=q.lineEnd!==void 0?q.lineEnd+1:void 0;Q({filePath:q.filePath,lineStart:K,lineEnd:G})}catch(q){H0(q)}})},[J,Q])}var T81,jRQ="at_mentioned",IRQ;var kNJ=I(()=>{M1();M6();b5();T81=T(J1(),1),IRQ=k0(()=>j.object({method:j.literal(jRQ),params:j.object({filePath:j.string(),lineStart:j.number().optional(),lineEnd:j.number().optional()})}))});function D40(J){return hNJ.useMemo(()=>{let Q=J?.find((Y)=>Y.name==="ide");if(!Q)return{status:null,ideName:null};let X=Q.config,Z=X.type==="sse-ide"||X.type==="ws-ide"?X.ideName:null;if(Q.type==="connected")return{status:"connected",ideName:Z};if(Q.type==="pending")return{status:"pending",ideName:Z};return{status:"disconnected",ideName:Z}},[J])}var hNJ;var C81=I(()=>{hNJ=T(J1(),1)});var yRQ;var bt1=I(()=>{W6();Nl1();yRQ=T(J1(),1)});function uNJ(){let[J,Q]=v81.useState({...II});return v81.useEffect(()=>{let X=(Z)=>{Q({...Z})};return ah.add(X),()=>{ah.delete(X)}},[]),J}var v81;var gNJ=I(()=>{fn();v81=T(J1(),1)});function mNJ(J){return`${$40.major(J,{loose:!0})}.${$40.minor(J,{loose:!0})}.${$40.patch(J,{loose:!0})}`}function f81(J,Q="0.1.16"){let[X,Z]=pNJ.useState(()=>mNJ(Q));if(!J)return null;let Y=mNJ(J);if(Y!==X)return Z(Y),Y;return null}var pNJ,$40;var Pt1=I(()=>{pNJ=T(J1(),1),$40=T(b10(),1)});function dNJ({isUpdating:J,onChangeIsUpdating:Q,onAutoUpdaterResult:X,autoUpdaterResult:Z,showSuccessMessage:Y,verbose:q}){let[K,G]=Mg.useState({}),[z,W]=Mg.useState(!1),H=f81(Z?.version);Mg.useEffect(()=>{iV0().then(W)},[]);let B=Mg.useRef(J);B.current=J;let U=cNJ.useCallback(async()=>{if(B.current)return;let F="0.1.16",_=h6()?.autoUpdatesChannel??"latest",O=await _QJ(_),L=RP(),N=await bu();if(N&&O&&DF(O,N)){if(b(`AutoUpdater: maxVersion ${N} is set, capping update from ${O} to ${N}`),W2(F,N)){b(`AutoUpdater: current version ${F} is already at or above maxVersion ${N}, skipping update`),G({global:F,latest:O});return}O=N}if(G({global:F,latest:O}),!L&&F&&O&&!W2(F,O)&&!oX0(O)){let A=Date.now();Q(!0);let R=L1();if(R.installMethod!=="native")await Wn1();let D=await FC();if(b(`AutoUpdater: Detected installation type: ${D}`),D==="development"){b("AutoUpdater: Cannot auto-update development build"),Q(!1);return}let $,y;if(D==="npm-local")b("AutoUpdater: Using local update method"),y="local",$=await Si1(_);else if(D==="npm-global")b("AutoUpdater: Using global update method"),y="global",$=await mi1();else if(D==="native"){b("AutoUpdater: Unexpected native installation in non-native updater"),Q(!1);return}else{b("AutoUpdater: Unknown installation type, falling back to config");let v=R.installMethod==="local";if(y=v?"local":"global",v)$=await Si1(_);else $=await mi1()}if(Q(!1),$==="success")l("jarvis_api_error",{fromVersion:F,toVersion:O,durationMs:Date.now()-A,wasMigrated:y==="local",installationType:D});else l("jarvis_api_error",{fromVersion:F,attemptedVersion:O,status:$,durationMs:Date.now()-A,wasMigrated:y==="local",installationType:D});X({version:O,status:$})}},[X]);if(Mg.useEffect(()=>{U()},[U]),EB(U,1800000),!Z?.version&&(!K.global||!K.latest))return null;if(!Z?.version&&!J)return null;return FA.jsxDEV(f,{flexDirection:"row",gap:1,children:[q&&FA.jsxDEV(M,{dimColor:!0,wrap:"truncate",children:["globalVersion: ",K.global," \xB7 latestVersion:"," ",K.latest]},void 0,!0,void 0,this),J?FA.jsxDEV(FA.Fragment,{children:FA.jsxDEV(f,{children:FA.jsxDEV(M,{color:"text",dimColor:!0,wrap:"truncate",children:"Auto-updating\u2026"},void 0,!1,void 0,this)},void 0,!1,void 0,this)},void 0,!1,void 0,this):Z?.status==="success"&&Y&&H&&FA.jsxDEV(M,{color:"success",wrap:"truncate",children:"\u2713 Update installed \xB7 Restart to apply"},void 0,!1,void 0,this),(Z?.status==="install_failed"||Z?.status==="no_permissions")&&FA.jsxDEV(M,{color:"error",wrap:"truncate",children:["\u2717 Auto-update failed \xB7 Try ",FA.jsxDEV(M,{bold:!0,children:"glock doctor"},void 0,!1,void 0,this)," or"," ",FA.jsxDEV(M,{bold:!0,children:z?`cd ~/.glock/local && npm update ${MACRO.PACKAGE_URL}`:`npm i -g ${MACRO.PACKAGE_URL}`},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)}var cNJ,Mg,FA;var lNJ=I(()=>{D1();dO();Pt1();a0();zr();m8();Z1();sX0();aX0();Eu();g8();cNJ=T(J1(),1),Mg=T(J1(),1),FA=T(e(),1)});function bRQ(J){if(J.includes("timeout"))return"timeout";if(J.includes("Checksum mismatch"))return"checksum_mismatch";if(J.includes("ENOENT")||J.includes("not found"))return"not_found";if(J.includes("EACCES")||J.includes("permission"))return"permission_denied";if(J.includes("ENOSPC"))return"disk_full";if(J.includes("npm"))return"npm_error";if(J.includes("network")||J.includes("ECONNREFUSED")||J.includes("ENOTFOUND"))return"network_error";return"unknown"}function nNJ({isUpdating:J,onChangeIsUpdating:Q,onAutoUpdaterResult:X,autoUpdaterResult:Z,showSuccessMessage:Y,verbose:q}){let[K,G]=qa.useState({}),[z,W]=qa.useState(null),H=f81(Z?.version),B=h6()?.autoUpdatesChannel??"latest",U=qa.useRef(J);U.current=J;let F=iNJ.useCallback(async()=>{if(U.current)return;if(RP())return;Q(!0);let N=Date.now();l("jarvis_api_error",{});try{let A=await bu();if(A&&DF("0.1.16",A)){let y=await BQJ();W(y??"affects your version")}let R=await Gn1(B),D="0.1.16",$=Date.now()-N;if(R.lockFailed){l("jarvis_api_error",{latency_ms:$});return}if(G({current:D,latest:R.latestVersion}),R.wasUpdated)l("jarvis_api_error",{latency_ms:$}),X({version:R.latestVersion,status:"success"});else l("jarvis_api_error",{latency_ms:$})}catch(A){let R=Date.now()-N,D=A instanceof Error?A.message:String(A);H0(A);let $=bRQ(D);l("jarvis_api_error",{latency_ms:R,error_timeout:$==="timeout",error_checksum:$==="checksum_mismatch",error_not_found:$==="not_found",error_permission:$==="permission_denied",error_disk_full:$==="disk_full",error_npm:$==="npm_error",error_network:$==="network_error"}),X({version:null,status:"install_failed"})}finally{Q(!1)}},[X,B]);qa.useEffect(()=>{F()},[F]),EB(F,1800000);let _=!!Z?.version,O=!!K.current&&!!K.latest;if(!(!!z||_||J&&O))return null;return Dg.jsxDEV(f,{flexDirection:"row",gap:1,children:[q&&Dg.jsxDEV(M,{dimColor:!0,wrap:"truncate",children:["current: ",K.current," \xB7 ",B,": ",K.latest]},void 0,!0,void 0,this),J?Dg.jsxDEV(f,{children:Dg.jsxDEV(M,{dimColor:!0,wrap:"truncate",children:"Checking for updates"},void 0,!1,void 0,this)},void 0,!1,void 0,this):Z?.status==="success"&&Y&&H&&Dg.jsxDEV(M,{color:"success",wrap:"truncate",children:"\u2713 Update installed \xB7 Restart to update"},void 0,!1,void 0,this),Z?.status==="install_failed"&&Dg.jsxDEV(M,{color:"error",wrap:"truncate",children:["\u2717 Auto-update failed \xB7 Try ",Dg.jsxDEV(M,{bold:!0,children:"/status"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),z&&!1]},void 0,!0,void 0,this)}var iNJ,qa,Dg;var rNJ=I(()=>{D1();Z1();M1();dO();Pt1();a0();zr();m8();Eu();g8();iNJ=T(J1(),1),qa=T(J1(),1),Dg=T(e(),1)});function sNJ(J){let Q=aNJ.c(10),{verbose:X}=J,[Z,Y]=Et1.useState(!1),[q,K]=Et1.useState("unknown"),G;if(Q[0]===Symbol.for("react.memo_cache_sentinel"))G=async()=>{if(RP())return;let[O,L]=await Promise.all([Promise.resolve(h6()?.autoUpdatesChannel??"latest"),Fe0()]);K(L);let N=await OQJ(O),A=await bu();if(A&&N&&DF(N,A)){if(b(`PackageManagerAutoUpdater: maxVersion ${A} is set, capping update from ${N} to ${A}`),W2("0.1.16",A)){b(`PackageManagerAutoUpdater: current version 0.1.16 is already at or above maxVersion ${A}, skipping update`),Y(!1);return}N=A}let R=N&&!W2("0.1.16",N)&&!oX0(N);if(Y(!!R),R)b(`PackageManagerAutoUpdater: Update available 0.1.16 -> ${N}`)},Q[0]=G;else G=Q[0];let z=G,W,H;if(Q[1]===Symbol.for("react.memo_cache_sentinel"))W=()=>{z()},H=[z],Q[1]=W,Q[2]=H;else W=Q[1],H=Q[2];if(oNJ.useEffect(W,H),EB(z,1800000),!Z)return null;let B=q==="homebrew"?"brew upgrade glock":q==="winget"?"winget upgrade Glock":q==="apk"?"apk upgrade glock":"your package manager update command",U;if(Q[3]!==X)U=X&&Ka.jsxDEV(M,{dimColor:!0,wrap:"truncate",children:["currentVersion: ","0.1.16"]},void 0,!0,void 0,this),Q[3]=X,Q[4]=U;else U=Q[4];let F;if(Q[5]!==B)F=Ka.jsxDEV(M,{color:"warning",wrap:"truncate",children:["Update available! Run: ",Ka.jsxDEV(M,{bold:!0,children:B},void 0,!1,void 0,this)]},void 0,!0,void 0,this),Q[5]=B,Q[6]=F;else F=Q[6];let _;if(Q[7]!==U||Q[8]!==F)_=Ka.jsxDEV(Ka.Fragment,{children:[U,F]},void 0,!0,void 0,this),Q[7]=U,Q[8]=F,Q[9]=_;else _=Q[9];return _}var aNJ,oNJ,Et1,Ka;var tNJ=I(()=>{dO();a0();zr();m8();Z1();ai1();g8();aNJ=T(e0(),1),oNJ=T(J1(),1),Et1=T(J1(),1),Ka=T(e(),1)});function JwJ(J){let Q=eNJ.c(17),{isUpdating:X,onChangeIsUpdating:Z,onAutoUpdaterResult:Y,autoUpdaterResult:q,showSuccessMessage:K,verbose:G}=J,[z,W]=lw0.useState(null),[H,B]=lw0.useState(null),U,F;if(Q[0]===Symbol.for("react.memo_cache_sentinel"))U=()=>{(async function(){let A=await FC();b(`AutoUpdaterWrapper: Installation type: ${A}`),W(A==="native"),B(A==="package-manager")})()},F=[],Q[0]=U,Q[1]=F;else U=Q[0],F=Q[1];if(lw0.useEffect(U,F),z===null||H===null)return null;if(H){let L;if(Q[2]!==q||Q[3]!==X||Q[4]!==Y||Q[5]!==Z||Q[6]!==K||Q[7]!==G)L=Tt1.jsxDEV(sNJ,{verbose:G,onAutoUpdaterResult:Y,autoUpdaterResult:q,isUpdating:X,onChangeIsUpdating:Z,showSuccessMessage:K},void 0,!1,void 0,this),Q[2]=q,Q[3]=X,Q[4]=Y,Q[5]=Z,Q[6]=K,Q[7]=G,Q[8]=L;else L=Q[8];return L}let _=z?nNJ:dNJ,O;if(Q[9]!==_||Q[10]!==q||Q[11]!==X||Q[12]!==Y||Q[13]!==Z||Q[14]!==K||Q[15]!==G)O=Tt1.jsxDEV(_,{verbose:G,onAutoUpdaterResult:Y,autoUpdaterResult:q,isUpdating:X,onChangeIsUpdating:Z,showSuccessMessage:K},void 0,!1,void 0,this),Q[9]=_,Q[10]=q,Q[11]=X,Q[12]=Y,Q[13]=Z,Q[14]=K,Q[15]=G,Q[16]=O;else O=Q[16];return O}var eNJ,lw0,Tt1;var QwJ=I(()=>{m8();Z1();sX0();lNJ();rNJ();tNJ();eNJ=T(e0(),1),lw0=T(J1(),1),Tt1=T(e(),1)});import{basename as PRQ}from"path";function ZwJ(J){let Q=XwJ.c(7),{ideSelection:X,mcpClients:Z}=J,{status:Y}=D40(Z),q=Y==="connected"&&(X?.filePath||X?.text&&X.lineCount>0);if(Y===null||!q||!X)return null;if(X.text&&X.lineCount>0){let K=X.lineCount===1?"line":"lines",G;if(Q[0]!==X.lineCount||Q[1]!==K)G=Ct1.jsxDEV(M,{color:"ide",wrap:"truncate",children:["\u29C9 ",X.lineCount," ",K," selected"]},"selection-indicator",!0,void 0,this),Q[0]=X.lineCount,Q[1]=K,Q[2]=G;else G=Q[2];return G}if(X.filePath){let K;if(Q[3]!==X.filePath)K=PRQ(X.filePath),Q[3]=X.filePath,Q[4]=K;else K=Q[4];let G;if(Q[5]!==K)G=Ct1.jsxDEV(M,{color:"ide",wrap:"truncate",children:["\u29C9 In ",K]},"selection-indicator",!0,void 0,this),Q[5]=K,Q[6]=G;else G=Q[6];return G}}var XwJ,Ct1;var YwJ=I(()=>{C81();a0();XwJ=T(e0(),1),Ct1=T(e(),1)});function KwJ(){let[J,Q]=qwJ.useState(null);return EB(()=>{let X=process.memoryUsage().heapUsed,Z=X>=TRQ?"critical":X>=ERQ?"high":"normal";Q((Y)=>{if(Z==="normal")return Y===null?Y:null;return{heapUsed:X,status:Z}})},1e4),J}var qwJ,ERQ=1610612736,TRQ=2684354560;var GwJ=I(()=>{dO();qwJ=T(J1(),1)});function zwJ(){return null}var vt1;var WwJ=I(()=>{GwJ();a0();A6();vt1=T(e(),1)});function BwJ(){return HwJ.useSyncExternalStore(kF0.subscribe,kF0.getState)}var HwJ;var UwJ=I(()=>{Ud0();HwJ=T(J1(),1)});function OwJ(J){let Q=_wJ.c(13),{tokenUsage:X,model:Z}=J,Y;if(Q[0]!==Z||Q[1]!==X)Y=Pn(X,Z),Q[0]=Z,Q[1]=X,Q[2]=Y;else Y=Q[2];let{percentLeft:q,isAboveWarningThreshold:K,isAboveErrorThreshold:G}=Y,z=BwJ();if(!K||z)return null;let W;if(Q[3]===Symbol.for("react.memo_cache_sentinel"))W=Ow(),Q[3]=W;else W=Q[3];let H=W,B;if(Q[4]===Symbol.for("react.memo_cache_sentinel"))B=o90("warning"),Q[4]=B;else B=Q[4];let U=B,F=q,_=!1,O=!1;if(_||O){let A=eE(Z),R;if(Q[5]!==A||Q[6]!==X)R=Math.round((A-X)/A*100),Q[5]=A,Q[6]=X,Q[7]=R;else R=Q[7];F=Math.max(0,R)}let L=_?`${100-F}% context used`:`${F}% until auto-compact`,N;if(Q[9]!==L||Q[10]!==G||Q[11]!==q)N=S81.jsxDEV(f,{flexDirection:"row",children:H?S81.jsxDEV(M,{dimColor:!0,wrap:"truncate",children:U?`${L} \xB7 ${U}`:L},void 0,!1,void 0,this):S81.jsxDEV(M,{color:G?"error":"warning",wrap:"truncate",children:U?`Context low (${q}% remaining) \xB7 ${U}`:`Context low (${q}% remaining) \xB7 Run /compact to compact & continue`},void 0,!1,void 0,this)},void 0,!1,void 0,this),Q[9]=L,Q[10]=G,Q[11]=q,Q[12]=N;else N=Q[12];return N}var _wJ,CRQ,S81;var LwJ=I(()=>{a0();JT();UwJ();Tl0();_wJ=T(e0(),1),CRQ=T(J1(),1),S81=T(e(),1)});function NwJ(){let J=VwJ.c(6),[Q,X]=j40.useState(0),Z=j40.useRef(null),Y=r9("app:toggleTranscript","Global","ctrl+o"),q,K;if(J[0]===Symbol.for("react.memo_cache_sentinel"))q=()=>{if(!p8.isSandboxingEnabled())return;let W=p8.getSandboxViolationStore(),H=W.getTotalCount(),B=W.subscribe(()=>{let U=W.getTotalCount(),F=U-H;if(F>0){if(X(F),H=U,Z.current)clearTimeout(Z.current);Z.current=setTimeout(X,5000,0)}});return()=>{if(B(),Z.current)clearTimeout(Z.current)}},K=[],J[0]=q,J[1]=K;else q=J[0],K=J[1];if(j40.useEffect(q,K),!p8.isSandboxingEnabled()||Q===0)return null;let G=Q===1?"operation":"operations",z;if(J[2]!==Y||J[3]!==Q||J[4]!==G)z=ft1.jsxDEV(f,{paddingX:0,paddingY:0,children:ft1.jsxDEV(M,{color:"inactive",wrap:"truncate",children:["\u29C8 Sandbox blocked ",Q," ",G," \xB7"," ",Y," for details \xB7 /sandbox to disable"]},void 0,!0,void 0,this)},void 0,!1,void 0,this),J[2]=Y,J[3]=Q,J[4]=G,J[5]=z;else z=J[5];return z}var VwJ,j40,ft1;var wwJ=I(()=>{a0();nz();V4();VwJ=T(e0(),1),j40=T(J1(),1),ft1=T(e(),1)});function k81(J){let Q=AwJ.c(34),{apiKeyStatus:X,autoUpdaterResult:Z,debug:Y,isAutoUpdating:q,verbose:K,messages:G,onAutoUpdaterResult:z,onChangeIsUpdating:W,ideSelection:H,mcpClients:B,isInputWrapped:U,isNarrow:F}=J,_=U===void 0?!1:U,O=F===void 0?!1:F,L;if(Q[0]!==G){let j0=LG(G);L=YM(j0),Q[0]=G,Q[1]=L}else L=Q[1];let N=L,A=Ky(),R;if(Q[2]!==A||Q[3]!==N)R=Pn(N,A),Q[2]=A,Q[3]=N,Q[4]=R;else R=Q[4];let D=R.isAboveWarningThreshold,{status:$}=D40(B),y=O1(fRQ),{addNotification:v,removeNotification:E}=D9(),C=uNJ(),S,k;if(Q[5]!==v)S=()=>{return jk1((j0,W0)=>{v({key:"env-hook",text:j0,color:W0?"error":void 0,priority:W0?"medium":"low",timeoutMs:W0?8000:5000})}),vRQ},k=[v],Q[5]=v,Q[6]=S,Q[7]=k;else S=Q[6],k=Q[7];y40.useEffect(S,k);let u=!($==="connected"&&(H?.filePath||H?.text&&H.lineCount>0))||q||Z?.status!=="success",x=C.isUsingOverage,m=!1,p;if(Q[9]===Symbol.for("react.memo_cache_sentinel"))p=mL(),Q[9]=p;else p=Q[9];let c=p,r=_&&!D&&X!=="invalid"&&X!=="missing"&&c!==void 0,J0,n;if(Q[10]!==v||Q[11]!==E||Q[12]!==r)n=()=>{if(r&&c)l("jarvis_api_error",{}),v({key:"external-editor-hint",jsx:U5.jsxDEV(M,{dimColor:!0,children:U5.jsxDEV(s1,{action:"chat:externalEditor",context:"Chat",fallback:"ctrl+g",description:`edit in ${Vq(c)}`},void 0,!1,void 0,this)},void 0,!1,void 0,this),priority:"immediate",timeoutMs:5000});else E("external-editor-hint")},J0=[r,c,v,E],Q[10]=v,Q[11]=E,Q[12]=r,Q[13]=J0,Q[14]=n;else J0=Q[13],n=Q[14];y40.useEffect(n,J0);let s=O?"flex-start":"flex-end",X0=x??!1,Y0;if(Q[15]!==X||Q[16]!==Z||Q[17]!==Y||Q[18]!==H||Q[19]!==q||Q[20]!==D||Q[21]!==A||Q[22]!==B||Q[23]!==y||Q[24]!==z||Q[25]!==W||Q[26]!==u||Q[27]!==X0||Q[28]!==N||Q[29]!==K)Y0=U5.jsxDEV(SRQ,{ideSelection:H,mcpClients:B,notifications:y,isInOverageMode:X0,isTeamOrEnterprise:m,apiKeyStatus:X,debug:Y,verbose:K,tokenUsage:N,mainLoopModel:A,shouldShowAutoUpdater:u,autoUpdaterResult:Z,isAutoUpdating:q,isShowingCompactMessage:D,onAutoUpdaterResult:z,onChangeIsUpdating:W},void 0,!1,void 0,this),Q[15]=X,Q[16]=Z,Q[17]=Y,Q[18]=H,Q[19]=q,Q[20]=D,Q[21]=A,Q[22]=B,Q[23]=y,Q[24]=z,Q[25]=W,Q[26]=u,Q[27]=X0,Q[28]=N,Q[29]=K,Q[30]=Y0;else Y0=Q[30];let G0;if(Q[31]!==s||Q[32]!==Y0)G0=U5.jsxDEV(f,{flexDirection:"column",alignItems:s,flexShrink:0,overflowX:"hidden",children:Y0},void 0,!1,void 0,this),Q[31]=s,Q[32]=Y0,Q[33]=G0;else G0=Q[33];return G0}function vRQ(){return jk1(null)}function fRQ(J){return J.notifications}function SRQ({ideSelection:J,mcpClients:Q,notifications:X,isInOverageMode:Z,isTeamOrEnterprise:Y,apiKeyStatus:q,debug:K,verbose:G,tokenUsage:z,mainLoopModel:W,shouldShowAutoUpdater:H,autoUpdaterResult:B,isAutoUpdating:U,isShowingCompactMessage:F,onAutoUpdaterResult:_,onChangeIsUpdating:O}){let[L,N]=y40.useState(null);y40.useEffect(()=>{if(!oc())return;let y=setInterval((v)=>{let E=O86(),C=E>=1e4?jQ(E):null;v((S)=>C===S?S:C)},1000,N);return()=>clearInterval(y)},[]);let A="idle",R=!1,D=null,$=!1;return U5.jsxDEV(U5.Fragment,{children:[U5.jsxDEV(ZwJ,{ideSelection:J,mcpClients:Q},void 0,!1,void 0,this),X.current&&("jsx"in X.current?U5.jsxDEV(M,{wrap:"truncate",children:X.current.jsx},X.current.key,!1,void 0,this):U5.jsxDEV(M,{color:X.current.color,dimColor:!X.current.color,wrap:"truncate",children:X.current.text},void 0,!1,void 0,this)),Z&&!Y&&U5.jsxDEV(f,{children:U5.jsxDEV(M,{dimColor:!0,wrap:"truncate",children:"Now using extra usage"},void 0,!1,void 0,this)},void 0,!1,void 0,this),L&&U5.jsxDEV(f,{children:[U5.jsxDEV(M,{color:"warning",wrap:"truncate",children:["apiKeyHelper is taking a while"," "]},void 0,!0,void 0,this),U5.jsxDEV(M,{dimColor:!0,wrap:"truncate",children:["(",L,")"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),(q==="invalid"||q==="missing")&&U5.jsxDEV(f,{children:U5.jsxDEV(M,{color:"error",wrap:"truncate",children:W1(process.env.GLOCK_REMOTE)?"Authentication error \xB7 Try again":"Not logged in \xB7 Run /login"},void 0,!1,void 0,this)},void 0,!1,void 0,this),K&&U5.jsxDEV(f,{children:U5.jsxDEV(M,{color:"warning",wrap:"truncate",children:"Debug mode"},void 0,!1,void 0,this)},void 0,!1,void 0,this),q!=="invalid"&&q!=="missing"&&G&&U5.jsxDEV(f,{children:U5.jsxDEV(M,{dimColor:!0,wrap:"truncate",children:[z," tokens"]},void 0,!0,void 0,this)},void 0,!1,void 0,this),!$&&U5.jsxDEV(OwJ,{tokenUsage:z,model:W},void 0,!1,void 0,this),H&&U5.jsxDEV(JwJ,{verbose:G,onAutoUpdaterResult:_,autoUpdaterResult:B,isUpdating:U,onChangeIsUpdating:O,showSuccessMessage:!F},void 0,!1,void 0,this),null,U5.jsxDEV(zwJ,{},void 0,!1,void 0,this),U5.jsxDEV(NwJ,{},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}var AwJ,y40,U5,x81=5000;var h81=I(()=>{UY();D1();W6();Ro0();C81();rZ0();bt1();a0();gNJ();JT();N9();oI();t1();A6();l_0();b5();M8();hB();QwJ();U7();YwJ();WwJ();LwJ();wwJ();AwJ=T(e0(),1),y40=T(J1(),1),U5=T(e(),1)});async function xRQ(J,Q){let X=Math.ceil(J/RwJ)*RwJ;if(Ga&&u81>=X&&St1===Q)return Ga;if(Ga)await Ga;u81=X,St1=Q,Ga=(async()=>{let Z=[],Y=0;for await(let q of To0()){if(Q){if(CL(q.display)!==Q)continue}if(Z.push(q),Y++,Y>=u81)break}return Z})();try{return await Ga}finally{Ga=null,u81=0,St1=void 0}}function MwJ(J,Q,X,Z,Y){let[q,K]=Fz.useState(0),[G,z]=Fz.useState(void 0),W=Fz.useRef(!1),{addNotification:H,removeNotification:B}=D9(),U=Fz.useRef([]),F=Fz.useRef(void 0),_=Fz.useRef(0),O=Fz.useRef(void 0),L=Fz.useRef(Q),N=Fz.useRef(X),A=Fz.useRef(Y);L.current=Q,N.current=X,A.current=Y;let R=Fz.useCallback((S,k,h,u=!1)=>{J(S,k,h),Z?.(u?0:S.length)},[J,Z]),D=Fz.useCallback((S,k=!1)=>{if(!S||!S.display)return;let h=CL(S.display),u=h==="bash"?S.display.slice(1):S.display;R(u,h,S.pastedContents??{},k)},[R]),$=Fz.useCallback(()=>{H({key:"search-history-hint",jsx:xt1.jsxDEV(M,{dimColor:!0,children:xt1.jsxDEV(s1,{action:"history:search",context:"Global",fallback:"ctrl+r",description:"search history"},void 0,!1,void 0,this)},void 0,!1,void 0,this),priority:"immediate",timeoutMs:x81})},[H]),y=Fz.useCallback(()=>{let S=_.current;_.current++;let k=L.current,h=N.current,u=A.current;if(S===0){O.current=u==="bash"?u:void 0;let m=k.trim()!=="";z(m?{display:k,pastedContents:h,mode:u}:void 0)}let x=O.current;(async()=>{let m=S+1;if(F.current!==x)U.current=[],F.current=x,_.current=0;if(U.current.length<m){let c=await xRQ(m,x);if(c.length>U.current.length)U.current=c}if(S>=U.current.length){_.current--;return}let p=S+1;if(K(p),D(U.current[S],!0),p>=2&&!W.current)W.current=!0,$()})()},[D,$]),v=Fz.useCallback(()=>{let S=_.current;if(S>1)_.current--,K(S-1),D(U.current[S-2]);else if(S===1)if(_.current=0,K(0),G){let k=G.mode;if(k)R(G.display,k,G.pastedContents??{});else D(G)}else R("",O.current??"prompt",{});return S<=0},[G,D,R]),E=Fz.useCallback(()=>{z(void 0),K(0),_.current=0,O.current=void 0,B("search-history-hint"),U.current=[],F.current=void 0},[B]),C=Fz.useCallback(()=>{B("search-history-hint")},[B]);return{historyIndex:q,setHistoryIndex:K,onHistoryUp:y,onHistoryDown:v,resetHistory:E,dismissSearchHint:C}}var Fz,xt1,RwJ=10,Ga=null,u81=0,St1=void 0;var DwJ=I(()=>{UY();U7();h81();uw();a0();Fz=T(J1(),1),xt1=T(e(),1)});function $wJ(J,Q,X,Z,Y,q,K,G,z,W,H){let[B,U]=F5.useState(""),[F,_]=F5.useState(!1),[O,L]=F5.useState(""),[N,A]=F5.useState(0),[R,D]=F5.useState("prompt"),[$,y]=F5.useState({}),[v,E]=F5.useState(void 0),C=F5.useRef(void 0),S=F5.useRef(new Set),k=F5.useRef(null),h=F5.useCallback(()=>{if(C.current)C.current.return(void 0),C.current=void 0},[]),u=F5.useCallback(()=>{z(!1),U(""),_(!1),L(""),A(0),D("prompt"),y({}),E(void 0),h(),S.current.clear()},[z,h]),x=F5.useCallback(async(Y0,G0)=>{if(!G)return;if(B.length===0){h(),S.current.clear(),E(void 0),_(!1),X(O),Z(N),q(R),W($);return}if(!Y0)h(),C.current=hp1(),S.current.clear();if(!C.current)return;while(!0){if(G0?.aborted)return;let j0=await C.current.next();if(j0.done){_(!0);return}let W0=j0.value.display,y0=W0.lastIndexOf(B);if(y0!==-1&&!S.current.has(W0)){S.current.add(W0),E(j0.value),_(!1);let V0=CL(W0);q(V0),X(W0),W(j0.value.pastedContents);let t=qD(W0).lastIndexOf(B);Z(t!==-1?t:y0);return}}},[G,B,h,X,Z,q,W,O,N,R,$]),m=F5.useCallback(()=>{z(!0),L(Q),A(Y),D(K),y(H),C.current=hp1(),S.current.clear()},[z,Q,Y,K,H]),p=F5.useCallback(()=>{x(!0)},[x]),c=F5.useCallback(()=>{if(v){let Y0=CL(v.display),G0=qD(v.display);X(G0),q(Y0),W(v.pastedContents)}else W($);u()},[v,X,q,W,$,u]),r=F5.useCallback(()=>{X(O),Z(N),W($),u()},[X,Z,W,O,N,$,u]),J0=F5.useCallback(()=>{if(B.length===0)J({display:O,pastedContents:$});else if(v){let Y0=CL(v.display),G0=qD(v.display);q(Y0),J({display:G0,pastedContents:v.pastedContents})}u()},[B,v,J,q,O,$,u]);J8("history:search",m,{context:"Global",isActive:!G});let n=F5.useMemo(()=>({"historySearch:next":p,"historySearch:accept":c,"historySearch:cancel":r,"historySearch:execute":J0}),[p,c,r,J0]);C6(n,{context:"HistorySearch",isActive:G});let s=(Y0)=>{if(!G)return;if(Y0.key==="backspace"&&B==="")Y0.preventDefault(),r()};SJ((Y0,G0,j0)=>{s(new vR(j0.keypress))},{isActive:G});let X0=F5.useRef(x);return X0.current=x,F5.useEffect(()=>{k.current?.abort();let Y0=new AbortController;return k.current=Y0,X0.current(!1,Y0.signal),()=>{Y0.abort()}},[B]),{historyQuery:B,setHistoryQuery:U,historyMatch:v,historyFailedMatch:F,handleKeyDown:s}}var F5;var jwJ=I(()=>{uw();f10();a0();f6();F5=T(J1(),1)});function IwJ({maxBufferSize:J,debounceMs:Q}){let[X,Z]=Uy.useState([]),[Y,q]=Uy.useState(-1),K=Uy.useRef(0),G=Uy.useRef(null),z=Uy.useCallback((U,F,_={})=>{let O=Date.now();if(G.current)clearTimeout(G.current),G.current=null;if(O-K.current<Q){G.current=setTimeout(z,Q,U,F,_);return}K.current=O,Z((L)=>{let N=Y>=0?L.slice(0,Y+1):L,A=N[N.length-1];if(A&&A.text===U)return N;let R=[...N,{text:U,cursorOffset:F,pastedContents:_,timestamp:O}];if(R.length>J)return R.slice(-J);return R}),q((L)=>{let N=L>=0?L+1:X.length;return Math.min(N,J-1)})},[Q,J,Y,X.length]),W=Uy.useCallback(()=>{if(Y<0||X.length===0)return;let U=Math.max(0,Y-1),F=X[U];if(F)return q(U),F;return},[X,Y]),H=Uy.useCallback(()=>{if(Z([]),q(-1),K.current=0,G.current)clearTimeout(G.current),G.current=null},[K,G]),B=Y>0&&X.length>1;return{pushToBuffer:z,undo:W,canUndo:B,clearBuffer:H}}var Uy;var ywJ=I(()=>{Uy=T(J1(),1)});function bwJ({inputValue:J,isAssistantResponding:Q}){let X=O1((R)=>R.promptSuggestion),Z=T6(),Y=X5(),{text:q,promptId:K,shownAt:G,acceptedAt:z,generationRequestId:W}=X,H=Q||J.length>0?null:q,B=q&&G>0,U=pC.useRef(0),F=pC.useRef(!0),_=pC.useRef(0);if(G>0&&G!==_.current)_.current=G,F.current=Y,U.current=0;else if(G===0)_.current=0;if(J.length>0&&U.current===0&&B)U.current=Date.now();let O=pC.useCallback(()=>{KM(Z),Z((R)=>({...R,promptSuggestion:{text:null,promptId:null,shownAt:0,acceptedAt:0,generationRequestId:null}}))},[Z]),L=pC.useCallback(()=>{if(!B)return;Z((R)=>({...R,promptSuggestion:{...R.promptSuggestion,acceptedAt:Date.now()}}))},[B,Z]),N=pC.useCallback(()=>{Z((R)=>{if(R.promptSuggestion.shownAt!==0||!R.promptSuggestion.text)return R;return{...R,promptSuggestion:{...R.promptSuggestion,shownAt:Date.now()}}})},[Z]),A=pC.useCallback((R,D)=>{if(!B)return;let $=z>G,y=$||R===q,v=y?z||Date.now():Date.now();if(l("jarvis_api_error",{source:"cli",outcome:y?"accepted":"ignored",prompt_id:K,...W&&{generationRequestId:W},...y&&{acceptMethod:$?"tab":"enter"},...y&&{timeToAcceptMs:v-G},...!y&&{timeToIgnoreMs:v-G},...U.current>0&&{timeToFirstKeystrokeMs:U.current-G},wasFocusedWhenShown:F.current,similarity:Math.round(R.length/(q?.length||1)*100)/100,...process.env.USER_TYPE==="ant"&&{suggestion:q,userInput:R}}),!D?.skipReset)O()},[B,z,G,q,K,W,O]);return{suggestion:H,markAccepted:L,markShown:N,logOutcomeAtSubmission:A}}var pC;var PwJ=I(()=>{vx0();D1();jl();W6();pC=T(J1(),1)});function TwJ(J){return typeof J==="object"&&J!==null&&"op"in J&&hRQ.includes(J.op)}function EwJ(J){if(J.startsWith("$"))return"variable";if(J.includes("/")||J.startsWith("~")||J.startsWith("."))return"file";return"command"}function uRQ(J){let Q=J.findLastIndex((X)=>typeof X==="string");return Q!==-1?{token:J[Q],index:Q}:null}function gRQ(J,Q){if(Q===0)return!0;let X=J[Q-1];return X!==void 0&&TwJ(X)}function mRQ(J,Q){let X=J.slice(0,Q),Z=X.match(/\$[a-zA-Z_][a-zA-Z0-9_]*$/);if(Z)return{prefix:Z[0],completionType:"variable"};let Y=nZ(X);if(!Y.success){let z=X.split(/\s+/),W=z[z.length-1]||"",B=z.length===1&&!X.includes(" ")?"command":EwJ(W);return{prefix:W,completionType:B}}let q=uRQ(Y.tokens);if(!q){let z=Y.tokens[Y.tokens.length-1];return{prefix:"",completionType:z&&TwJ(z)?"command":"command"}}if(X.endsWith(" "))return{prefix:"",completionType:"file"};let K=EwJ(q.token);if(K==="variable"||K==="file")return{prefix:q.token,completionType:K};let G=gRQ(Y.tokens,q.index)?"command":"file";return{prefix:q.token,completionType:G}}function pRQ(J,Q){if(Q==="variable"){let X=J.slice(1);return`compgen -v ${QJ([X])} 2>/dev/null`}else if(Q==="file")return`compgen -f ${QJ([J])} 2>/dev/null | head -${kt1} | while IFS= read -r f; do [ -d "$f" ] && echo "$f/" || echo "$f "; done`;else return`compgen -c ${QJ([J])} 2>/dev/null`}function cRQ(J,Q){if(Q==="variable"){let X=J.slice(1);return`print -rl -- \${(k)parameters[(I)${QJ([X])}*]} 2>/dev/null`}else if(Q==="file")return`for f in ${QJ([J])}*(N[1,${kt1}]); do [[ -d "$f" ]] && echo "$f/" || echo "$f "; done`;else return`print -rl -- \${(k)commands[(I)${QJ([J])}*]} 2>/dev/null`}async function dRQ(J,Q,X,Z){let Y;if(J==="bash")Y=pRQ(Q,X);else if(J==="zsh")Y=cRQ(Q,X);else return[];return(await(await A70(Y,Z,"bash",{timeout:kRQ})).result).stdout.split(`
|
|
6845
|
+
${G}`,color:"permission",onCancel:()=>Q("cancel"),isCancelActive:!0,inputGuide:(D)=>D.pending?i8.jsxDEV(M,{children:["Press ",D.keyName," again to exit"]},void 0,!0,void 0,this):i8.jsxDEV(V8,{children:[i8.jsxDEV(s1,{action:"confirm:no",context:"Confirmation",fallback:"Esc",description:"cancel"},void 0,!1,void 0,this),i8.jsxDEV(p1,{shortcut:"\\u2190\\u2192",action:"switch"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),children:i8.jsxDEV(f,{flexDirection:"column",children:[i8.jsxDEV(f,{marginBottom:1,flexDirection:"column",children:i8.jsxDEV(M,{children:[N,i8.jsxDEV(M,{bold:!0,children:L},void 0,!1,void 0,this),A]},void 0,!0,void 0,this)},void 0,!1,void 0,this),i8.jsxDEV(f,{children:[i8.jsxDEV(M,{color:"success",children:U==="accept"?s0.pointer:" "},void 0,!1,void 0,this),i8.jsxDEV(M,{bold:U==="accept",color:U==="accept"?"success":void 0,dimColor:U!=="accept",children:" Accept "},void 0,!1,void 0,this),i8.jsxDEV(M,{color:"error",children:U==="decline"?s0.pointer:" "},void 0,!1,void 0,this),i8.jsxDEV(M,{bold:U==="decline",color:U==="decline"?"error":void 0,dimColor:U!=="decline",children:" Decline"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this)}var yt1,Q4,i8,cw0=(J)=>["string","number","integer"].includes(J.type),PNJ="\u280B\u2819\u2839\u2838\u283C\u2834\u2826\u2827\u2807\u280F",NRQ=(J)=>(J+1)%PNJ.length;var TNJ=I(()=>{r6();F_();Yt1();U9();a0();f6();s3();bNJ();U7();R9();M9();g9();EH();yt1=T(e0(),1),Q4=T(J1(),1),i8=T(e(),1)});function vNJ(J){let Q=CNJ.c(15),{title:X,toolInputSummary:Z,request:Y,onRespond:q,onAbort:K}=J,G;if(Q[0]===Symbol.for("react.memo_cache_sentinel"))G={isActive:!0},Q[0]=G;else G=Q[0];J8("app:interrupt",K,G);let z;if(Q[1]!==Y.options)z=Y.options.map($RQ),Q[1]=Y.options,Q[2]=z;else z=Q[2];let W=z,H;if(Q[3]!==Z)H=Z?dw0.jsxDEV(M,{dimColor:!0,children:Z},void 0,!1,void 0,this):void 0,Q[3]=Z,Q[4]=H;else H=Q[4];let B;if(Q[5]!==q)B=(_)=>{q(_)},Q[5]=q,Q[6]=B;else B=Q[6];let U;if(Q[7]!==W||Q[8]!==B)U=dw0.jsxDEV(f,{flexDirection:"column",paddingY:1,children:dw0.jsxDEV(Q8,{options:W,onChange:B},void 0,!1,void 0,this)},void 0,!1,void 0,this),Q[7]=W,Q[8]=B,Q[9]=U;else U=Q[9];let F;if(Q[10]!==Y.message||Q[11]!==H||Q[12]!==U||Q[13]!==X)F=dw0.jsxDEV(OZ,{title:X,subtitle:Y.message,titleRight:H,children:U},void 0,!1,void 0,this),Q[10]=Y.message,Q[11]=H,Q[12]=U,Q[13]=X,Q[14]=F;else F=Q[14];return F}function $RQ(J){return{label:J.label,value:J.key,description:J.description}}var CNJ,dw0;var fNJ=I(()=>{a0();f6();AQ();TH();CNJ=T(e0(),1),dw0=T(e(),1)});function By(){return SNJ.useSyncExternalStore(hX0,Pt0)}var SNJ;var M40=I(()=>{rq();SNJ=T(J1(),1)});function xNJ(J,Q){let X=T81.useRef(void 0);T81.useEffect(()=>{let Z=sF(J);if(X.current!==Z)X.current=Z;if(Z)Z.client.setNotificationHandler(IRQ(),(Y)=>{if(X.current!==Z)return;try{let q=Y.params,K=q.lineStart!==void 0?q.lineStart+1:void 0,G=q.lineEnd!==void 0?q.lineEnd+1:void 0;Q({filePath:q.filePath,lineStart:K,lineEnd:G})}catch(q){H0(q)}})},[J,Q])}var T81,jRQ="at_mentioned",IRQ;var kNJ=I(()=>{M1();M6();b5();T81=T(J1(),1),IRQ=k0(()=>j.object({method:j.literal(jRQ),params:j.object({filePath:j.string(),lineStart:j.number().optional(),lineEnd:j.number().optional()})}))});function D40(J){return hNJ.useMemo(()=>{let Q=J?.find((Y)=>Y.name==="ide");if(!Q)return{status:null,ideName:null};let X=Q.config,Z=X.type==="sse-ide"||X.type==="ws-ide"?X.ideName:null;if(Q.type==="connected")return{status:"connected",ideName:Z};if(Q.type==="pending")return{status:"pending",ideName:Z};return{status:"disconnected",ideName:Z}},[J])}var hNJ;var C81=I(()=>{hNJ=T(J1(),1)});var yRQ;var bt1=I(()=>{W6();Nl1();yRQ=T(J1(),1)});function uNJ(){let[J,Q]=v81.useState({...II});return v81.useEffect(()=>{let X=(Z)=>{Q({...Z})};return ah.add(X),()=>{ah.delete(X)}},[]),J}var v81;var gNJ=I(()=>{fn();v81=T(J1(),1)});function mNJ(J){return`${$40.major(J,{loose:!0})}.${$40.minor(J,{loose:!0})}.${$40.patch(J,{loose:!0})}`}function f81(J,Q="0.1.17"){let[X,Z]=pNJ.useState(()=>mNJ(Q));if(!J)return null;let Y=mNJ(J);if(Y!==X)return Z(Y),Y;return null}var pNJ,$40;var Pt1=I(()=>{pNJ=T(J1(),1),$40=T(b10(),1)});function dNJ({isUpdating:J,onChangeIsUpdating:Q,onAutoUpdaterResult:X,autoUpdaterResult:Z,showSuccessMessage:Y,verbose:q}){let[K,G]=Mg.useState({}),[z,W]=Mg.useState(!1),H=f81(Z?.version);Mg.useEffect(()=>{iV0().then(W)},[]);let B=Mg.useRef(J);B.current=J;let U=cNJ.useCallback(async()=>{if(B.current)return;let F="0.1.17",_=h6()?.autoUpdatesChannel??"latest",O=await _QJ(_),L=RP(),N=await bu();if(N&&O&&DF(O,N)){if(b(`AutoUpdater: maxVersion ${N} is set, capping update from ${O} to ${N}`),W2(F,N)){b(`AutoUpdater: current version ${F} is already at or above maxVersion ${N}, skipping update`),G({global:F,latest:O});return}O=N}if(G({global:F,latest:O}),!L&&F&&O&&!W2(F,O)&&!oX0(O)){let A=Date.now();Q(!0);let R=L1();if(R.installMethod!=="native")await Wn1();let D=await FC();if(b(`AutoUpdater: Detected installation type: ${D}`),D==="development"){b("AutoUpdater: Cannot auto-update development build"),Q(!1);return}let $,y;if(D==="npm-local")b("AutoUpdater: Using local update method"),y="local",$=await Si1(_);else if(D==="npm-global")b("AutoUpdater: Using global update method"),y="global",$=await mi1();else if(D==="native"){b("AutoUpdater: Unexpected native installation in non-native updater"),Q(!1);return}else{b("AutoUpdater: Unknown installation type, falling back to config");let v=R.installMethod==="local";if(y=v?"local":"global",v)$=await Si1(_);else $=await mi1()}if(Q(!1),$==="success")l("jarvis_api_error",{fromVersion:F,toVersion:O,durationMs:Date.now()-A,wasMigrated:y==="local",installationType:D});else l("jarvis_api_error",{fromVersion:F,attemptedVersion:O,status:$,durationMs:Date.now()-A,wasMigrated:y==="local",installationType:D});X({version:O,status:$})}},[X]);if(Mg.useEffect(()=>{U()},[U]),EB(U,1800000),!Z?.version&&(!K.global||!K.latest))return null;if(!Z?.version&&!J)return null;return FA.jsxDEV(f,{flexDirection:"row",gap:1,children:[q&&FA.jsxDEV(M,{dimColor:!0,wrap:"truncate",children:["globalVersion: ",K.global," \xB7 latestVersion:"," ",K.latest]},void 0,!0,void 0,this),J?FA.jsxDEV(FA.Fragment,{children:FA.jsxDEV(f,{children:FA.jsxDEV(M,{color:"text",dimColor:!0,wrap:"truncate",children:"Auto-updating\u2026"},void 0,!1,void 0,this)},void 0,!1,void 0,this)},void 0,!1,void 0,this):Z?.status==="success"&&Y&&H&&FA.jsxDEV(M,{color:"success",wrap:"truncate",children:"\u2713 Update installed \xB7 Restart to apply"},void 0,!1,void 0,this),(Z?.status==="install_failed"||Z?.status==="no_permissions")&&FA.jsxDEV(M,{color:"error",wrap:"truncate",children:["\u2717 Auto-update failed \xB7 Try ",FA.jsxDEV(M,{bold:!0,children:"glock doctor"},void 0,!1,void 0,this)," or"," ",FA.jsxDEV(M,{bold:!0,children:z?`cd ~/.glock/local && npm update ${MACRO.PACKAGE_URL}`:`npm i -g ${MACRO.PACKAGE_URL}`},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)}var cNJ,Mg,FA;var lNJ=I(()=>{D1();dO();Pt1();a0();zr();m8();Z1();sX0();aX0();Eu();g8();cNJ=T(J1(),1),Mg=T(J1(),1),FA=T(e(),1)});function bRQ(J){if(J.includes("timeout"))return"timeout";if(J.includes("Checksum mismatch"))return"checksum_mismatch";if(J.includes("ENOENT")||J.includes("not found"))return"not_found";if(J.includes("EACCES")||J.includes("permission"))return"permission_denied";if(J.includes("ENOSPC"))return"disk_full";if(J.includes("npm"))return"npm_error";if(J.includes("network")||J.includes("ECONNREFUSED")||J.includes("ENOTFOUND"))return"network_error";return"unknown"}function nNJ({isUpdating:J,onChangeIsUpdating:Q,onAutoUpdaterResult:X,autoUpdaterResult:Z,showSuccessMessage:Y,verbose:q}){let[K,G]=qa.useState({}),[z,W]=qa.useState(null),H=f81(Z?.version),B=h6()?.autoUpdatesChannel??"latest",U=qa.useRef(J);U.current=J;let F=iNJ.useCallback(async()=>{if(U.current)return;if(RP())return;Q(!0);let N=Date.now();l("jarvis_api_error",{});try{let A=await bu();if(A&&DF("0.1.17",A)){let y=await BQJ();W(y??"affects your version")}let R=await Gn1(B),D="0.1.17",$=Date.now()-N;if(R.lockFailed){l("jarvis_api_error",{latency_ms:$});return}if(G({current:D,latest:R.latestVersion}),R.wasUpdated)l("jarvis_api_error",{latency_ms:$}),X({version:R.latestVersion,status:"success"});else l("jarvis_api_error",{latency_ms:$})}catch(A){let R=Date.now()-N,D=A instanceof Error?A.message:String(A);H0(A);let $=bRQ(D);l("jarvis_api_error",{latency_ms:R,error_timeout:$==="timeout",error_checksum:$==="checksum_mismatch",error_not_found:$==="not_found",error_permission:$==="permission_denied",error_disk_full:$==="disk_full",error_npm:$==="npm_error",error_network:$==="network_error"}),X({version:null,status:"install_failed"})}finally{Q(!1)}},[X,B]);qa.useEffect(()=>{F()},[F]),EB(F,1800000);let _=!!Z?.version,O=!!K.current&&!!K.latest;if(!(!!z||_||J&&O))return null;return Dg.jsxDEV(f,{flexDirection:"row",gap:1,children:[q&&Dg.jsxDEV(M,{dimColor:!0,wrap:"truncate",children:["current: ",K.current," \xB7 ",B,": ",K.latest]},void 0,!0,void 0,this),J?Dg.jsxDEV(f,{children:Dg.jsxDEV(M,{dimColor:!0,wrap:"truncate",children:"Checking for updates"},void 0,!1,void 0,this)},void 0,!1,void 0,this):Z?.status==="success"&&Y&&H&&Dg.jsxDEV(M,{color:"success",wrap:"truncate",children:"\u2713 Update installed \xB7 Restart to update"},void 0,!1,void 0,this),Z?.status==="install_failed"&&Dg.jsxDEV(M,{color:"error",wrap:"truncate",children:["\u2717 Auto-update failed \xB7 Try ",Dg.jsxDEV(M,{bold:!0,children:"/status"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),z&&!1]},void 0,!0,void 0,this)}var iNJ,qa,Dg;var rNJ=I(()=>{D1();Z1();M1();dO();Pt1();a0();zr();m8();Eu();g8();iNJ=T(J1(),1),qa=T(J1(),1),Dg=T(e(),1)});function sNJ(J){let Q=aNJ.c(10),{verbose:X}=J,[Z,Y]=Et1.useState(!1),[q,K]=Et1.useState("unknown"),G;if(Q[0]===Symbol.for("react.memo_cache_sentinel"))G=async()=>{if(RP())return;let[O,L]=await Promise.all([Promise.resolve(h6()?.autoUpdatesChannel??"latest"),Fe0()]);K(L);let N=await OQJ(O),A=await bu();if(A&&N&&DF(N,A)){if(b(`PackageManagerAutoUpdater: maxVersion ${A} is set, capping update from ${N} to ${A}`),W2("0.1.17",A)){b(`PackageManagerAutoUpdater: current version 0.1.17 is already at or above maxVersion ${A}, skipping update`),Y(!1);return}N=A}let R=N&&!W2("0.1.17",N)&&!oX0(N);if(Y(!!R),R)b(`PackageManagerAutoUpdater: Update available 0.1.17 -> ${N}`)},Q[0]=G;else G=Q[0];let z=G,W,H;if(Q[1]===Symbol.for("react.memo_cache_sentinel"))W=()=>{z()},H=[z],Q[1]=W,Q[2]=H;else W=Q[1],H=Q[2];if(oNJ.useEffect(W,H),EB(z,1800000),!Z)return null;let B=q==="homebrew"?"brew upgrade glock":q==="winget"?"winget upgrade Glock":q==="apk"?"apk upgrade glock":"your package manager update command",U;if(Q[3]!==X)U=X&&Ka.jsxDEV(M,{dimColor:!0,wrap:"truncate",children:["currentVersion: ","0.1.17"]},void 0,!0,void 0,this),Q[3]=X,Q[4]=U;else U=Q[4];let F;if(Q[5]!==B)F=Ka.jsxDEV(M,{color:"warning",wrap:"truncate",children:["Update available! Run: ",Ka.jsxDEV(M,{bold:!0,children:B},void 0,!1,void 0,this)]},void 0,!0,void 0,this),Q[5]=B,Q[6]=F;else F=Q[6];let _;if(Q[7]!==U||Q[8]!==F)_=Ka.jsxDEV(Ka.Fragment,{children:[U,F]},void 0,!0,void 0,this),Q[7]=U,Q[8]=F,Q[9]=_;else _=Q[9];return _}var aNJ,oNJ,Et1,Ka;var tNJ=I(()=>{dO();a0();zr();m8();Z1();ai1();g8();aNJ=T(e0(),1),oNJ=T(J1(),1),Et1=T(J1(),1),Ka=T(e(),1)});function JwJ(J){let Q=eNJ.c(17),{isUpdating:X,onChangeIsUpdating:Z,onAutoUpdaterResult:Y,autoUpdaterResult:q,showSuccessMessage:K,verbose:G}=J,[z,W]=lw0.useState(null),[H,B]=lw0.useState(null),U,F;if(Q[0]===Symbol.for("react.memo_cache_sentinel"))U=()=>{(async function(){let A=await FC();b(`AutoUpdaterWrapper: Installation type: ${A}`),W(A==="native"),B(A==="package-manager")})()},F=[],Q[0]=U,Q[1]=F;else U=Q[0],F=Q[1];if(lw0.useEffect(U,F),z===null||H===null)return null;if(H){let L;if(Q[2]!==q||Q[3]!==X||Q[4]!==Y||Q[5]!==Z||Q[6]!==K||Q[7]!==G)L=Tt1.jsxDEV(sNJ,{verbose:G,onAutoUpdaterResult:Y,autoUpdaterResult:q,isUpdating:X,onChangeIsUpdating:Z,showSuccessMessage:K},void 0,!1,void 0,this),Q[2]=q,Q[3]=X,Q[4]=Y,Q[5]=Z,Q[6]=K,Q[7]=G,Q[8]=L;else L=Q[8];return L}let _=z?nNJ:dNJ,O;if(Q[9]!==_||Q[10]!==q||Q[11]!==X||Q[12]!==Y||Q[13]!==Z||Q[14]!==K||Q[15]!==G)O=Tt1.jsxDEV(_,{verbose:G,onAutoUpdaterResult:Y,autoUpdaterResult:q,isUpdating:X,onChangeIsUpdating:Z,showSuccessMessage:K},void 0,!1,void 0,this),Q[9]=_,Q[10]=q,Q[11]=X,Q[12]=Y,Q[13]=Z,Q[14]=K,Q[15]=G,Q[16]=O;else O=Q[16];return O}var eNJ,lw0,Tt1;var QwJ=I(()=>{m8();Z1();sX0();lNJ();rNJ();tNJ();eNJ=T(e0(),1),lw0=T(J1(),1),Tt1=T(e(),1)});import{basename as PRQ}from"path";function ZwJ(J){let Q=XwJ.c(7),{ideSelection:X,mcpClients:Z}=J,{status:Y}=D40(Z),q=Y==="connected"&&(X?.filePath||X?.text&&X.lineCount>0);if(Y===null||!q||!X)return null;if(X.text&&X.lineCount>0){let K=X.lineCount===1?"line":"lines",G;if(Q[0]!==X.lineCount||Q[1]!==K)G=Ct1.jsxDEV(M,{color:"ide",wrap:"truncate",children:["\u29C9 ",X.lineCount," ",K," selected"]},"selection-indicator",!0,void 0,this),Q[0]=X.lineCount,Q[1]=K,Q[2]=G;else G=Q[2];return G}if(X.filePath){let K;if(Q[3]!==X.filePath)K=PRQ(X.filePath),Q[3]=X.filePath,Q[4]=K;else K=Q[4];let G;if(Q[5]!==K)G=Ct1.jsxDEV(M,{color:"ide",wrap:"truncate",children:["\u29C9 In ",K]},"selection-indicator",!0,void 0,this),Q[5]=K,Q[6]=G;else G=Q[6];return G}}var XwJ,Ct1;var YwJ=I(()=>{C81();a0();XwJ=T(e0(),1),Ct1=T(e(),1)});function KwJ(){let[J,Q]=qwJ.useState(null);return EB(()=>{let X=process.memoryUsage().heapUsed,Z=X>=TRQ?"critical":X>=ERQ?"high":"normal";Q((Y)=>{if(Z==="normal")return Y===null?Y:null;return{heapUsed:X,status:Z}})},1e4),J}var qwJ,ERQ=1610612736,TRQ=2684354560;var GwJ=I(()=>{dO();qwJ=T(J1(),1)});function zwJ(){return null}var vt1;var WwJ=I(()=>{GwJ();a0();A6();vt1=T(e(),1)});function BwJ(){return HwJ.useSyncExternalStore(kF0.subscribe,kF0.getState)}var HwJ;var UwJ=I(()=>{Ud0();HwJ=T(J1(),1)});function OwJ(J){let Q=_wJ.c(13),{tokenUsage:X,model:Z}=J,Y;if(Q[0]!==Z||Q[1]!==X)Y=Pn(X,Z),Q[0]=Z,Q[1]=X,Q[2]=Y;else Y=Q[2];let{percentLeft:q,isAboveWarningThreshold:K,isAboveErrorThreshold:G}=Y,z=BwJ();if(!K||z)return null;let W;if(Q[3]===Symbol.for("react.memo_cache_sentinel"))W=Ow(),Q[3]=W;else W=Q[3];let H=W,B;if(Q[4]===Symbol.for("react.memo_cache_sentinel"))B=o90("warning"),Q[4]=B;else B=Q[4];let U=B,F=q,_=!1,O=!1;if(_||O){let A=eE(Z),R;if(Q[5]!==A||Q[6]!==X)R=Math.round((A-X)/A*100),Q[5]=A,Q[6]=X,Q[7]=R;else R=Q[7];F=Math.max(0,R)}let L=_?`${100-F}% context used`:`${F}% until auto-compact`,N;if(Q[9]!==L||Q[10]!==G||Q[11]!==q)N=S81.jsxDEV(f,{flexDirection:"row",children:H?S81.jsxDEV(M,{dimColor:!0,wrap:"truncate",children:U?`${L} \xB7 ${U}`:L},void 0,!1,void 0,this):S81.jsxDEV(M,{color:G?"error":"warning",wrap:"truncate",children:U?`Context low (${q}% remaining) \xB7 ${U}`:`Context low (${q}% remaining) \xB7 Run /compact to compact & continue`},void 0,!1,void 0,this)},void 0,!1,void 0,this),Q[9]=L,Q[10]=G,Q[11]=q,Q[12]=N;else N=Q[12];return N}var _wJ,CRQ,S81;var LwJ=I(()=>{a0();JT();UwJ();Tl0();_wJ=T(e0(),1),CRQ=T(J1(),1),S81=T(e(),1)});function NwJ(){let J=VwJ.c(6),[Q,X]=j40.useState(0),Z=j40.useRef(null),Y=r9("app:toggleTranscript","Global","ctrl+o"),q,K;if(J[0]===Symbol.for("react.memo_cache_sentinel"))q=()=>{if(!p8.isSandboxingEnabled())return;let W=p8.getSandboxViolationStore(),H=W.getTotalCount(),B=W.subscribe(()=>{let U=W.getTotalCount(),F=U-H;if(F>0){if(X(F),H=U,Z.current)clearTimeout(Z.current);Z.current=setTimeout(X,5000,0)}});return()=>{if(B(),Z.current)clearTimeout(Z.current)}},K=[],J[0]=q,J[1]=K;else q=J[0],K=J[1];if(j40.useEffect(q,K),!p8.isSandboxingEnabled()||Q===0)return null;let G=Q===1?"operation":"operations",z;if(J[2]!==Y||J[3]!==Q||J[4]!==G)z=ft1.jsxDEV(f,{paddingX:0,paddingY:0,children:ft1.jsxDEV(M,{color:"inactive",wrap:"truncate",children:["\u29C8 Sandbox blocked ",Q," ",G," \xB7"," ",Y," for details \xB7 /sandbox to disable"]},void 0,!0,void 0,this)},void 0,!1,void 0,this),J[2]=Y,J[3]=Q,J[4]=G,J[5]=z;else z=J[5];return z}var VwJ,j40,ft1;var wwJ=I(()=>{a0();nz();V4();VwJ=T(e0(),1),j40=T(J1(),1),ft1=T(e(),1)});function k81(J){let Q=AwJ.c(34),{apiKeyStatus:X,autoUpdaterResult:Z,debug:Y,isAutoUpdating:q,verbose:K,messages:G,onAutoUpdaterResult:z,onChangeIsUpdating:W,ideSelection:H,mcpClients:B,isInputWrapped:U,isNarrow:F}=J,_=U===void 0?!1:U,O=F===void 0?!1:F,L;if(Q[0]!==G){let j0=LG(G);L=YM(j0),Q[0]=G,Q[1]=L}else L=Q[1];let N=L,A=Ky(),R;if(Q[2]!==A||Q[3]!==N)R=Pn(N,A),Q[2]=A,Q[3]=N,Q[4]=R;else R=Q[4];let D=R.isAboveWarningThreshold,{status:$}=D40(B),y=O1(fRQ),{addNotification:v,removeNotification:E}=D9(),C=uNJ(),S,k;if(Q[5]!==v)S=()=>{return jk1((j0,W0)=>{v({key:"env-hook",text:j0,color:W0?"error":void 0,priority:W0?"medium":"low",timeoutMs:W0?8000:5000})}),vRQ},k=[v],Q[5]=v,Q[6]=S,Q[7]=k;else S=Q[6],k=Q[7];y40.useEffect(S,k);let u=!($==="connected"&&(H?.filePath||H?.text&&H.lineCount>0))||q||Z?.status!=="success",x=C.isUsingOverage,m=!1,p;if(Q[9]===Symbol.for("react.memo_cache_sentinel"))p=mL(),Q[9]=p;else p=Q[9];let c=p,r=_&&!D&&X!=="invalid"&&X!=="missing"&&c!==void 0,J0,n;if(Q[10]!==v||Q[11]!==E||Q[12]!==r)n=()=>{if(r&&c)l("jarvis_api_error",{}),v({key:"external-editor-hint",jsx:U5.jsxDEV(M,{dimColor:!0,children:U5.jsxDEV(s1,{action:"chat:externalEditor",context:"Chat",fallback:"ctrl+g",description:`edit in ${Vq(c)}`},void 0,!1,void 0,this)},void 0,!1,void 0,this),priority:"immediate",timeoutMs:5000});else E("external-editor-hint")},J0=[r,c,v,E],Q[10]=v,Q[11]=E,Q[12]=r,Q[13]=J0,Q[14]=n;else J0=Q[13],n=Q[14];y40.useEffect(n,J0);let s=O?"flex-start":"flex-end",X0=x??!1,Y0;if(Q[15]!==X||Q[16]!==Z||Q[17]!==Y||Q[18]!==H||Q[19]!==q||Q[20]!==D||Q[21]!==A||Q[22]!==B||Q[23]!==y||Q[24]!==z||Q[25]!==W||Q[26]!==u||Q[27]!==X0||Q[28]!==N||Q[29]!==K)Y0=U5.jsxDEV(SRQ,{ideSelection:H,mcpClients:B,notifications:y,isInOverageMode:X0,isTeamOrEnterprise:m,apiKeyStatus:X,debug:Y,verbose:K,tokenUsage:N,mainLoopModel:A,shouldShowAutoUpdater:u,autoUpdaterResult:Z,isAutoUpdating:q,isShowingCompactMessage:D,onAutoUpdaterResult:z,onChangeIsUpdating:W},void 0,!1,void 0,this),Q[15]=X,Q[16]=Z,Q[17]=Y,Q[18]=H,Q[19]=q,Q[20]=D,Q[21]=A,Q[22]=B,Q[23]=y,Q[24]=z,Q[25]=W,Q[26]=u,Q[27]=X0,Q[28]=N,Q[29]=K,Q[30]=Y0;else Y0=Q[30];let G0;if(Q[31]!==s||Q[32]!==Y0)G0=U5.jsxDEV(f,{flexDirection:"column",alignItems:s,flexShrink:0,overflowX:"hidden",children:Y0},void 0,!1,void 0,this),Q[31]=s,Q[32]=Y0,Q[33]=G0;else G0=Q[33];return G0}function vRQ(){return jk1(null)}function fRQ(J){return J.notifications}function SRQ({ideSelection:J,mcpClients:Q,notifications:X,isInOverageMode:Z,isTeamOrEnterprise:Y,apiKeyStatus:q,debug:K,verbose:G,tokenUsage:z,mainLoopModel:W,shouldShowAutoUpdater:H,autoUpdaterResult:B,isAutoUpdating:U,isShowingCompactMessage:F,onAutoUpdaterResult:_,onChangeIsUpdating:O}){let[L,N]=y40.useState(null);y40.useEffect(()=>{if(!oc())return;let y=setInterval((v)=>{let E=O86(),C=E>=1e4?jQ(E):null;v((S)=>C===S?S:C)},1000,N);return()=>clearInterval(y)},[]);let A="idle",R=!1,D=null,$=!1;return U5.jsxDEV(U5.Fragment,{children:[U5.jsxDEV(ZwJ,{ideSelection:J,mcpClients:Q},void 0,!1,void 0,this),X.current&&("jsx"in X.current?U5.jsxDEV(M,{wrap:"truncate",children:X.current.jsx},X.current.key,!1,void 0,this):U5.jsxDEV(M,{color:X.current.color,dimColor:!X.current.color,wrap:"truncate",children:X.current.text},void 0,!1,void 0,this)),Z&&!Y&&U5.jsxDEV(f,{children:U5.jsxDEV(M,{dimColor:!0,wrap:"truncate",children:"Now using extra usage"},void 0,!1,void 0,this)},void 0,!1,void 0,this),L&&U5.jsxDEV(f,{children:[U5.jsxDEV(M,{color:"warning",wrap:"truncate",children:["apiKeyHelper is taking a while"," "]},void 0,!0,void 0,this),U5.jsxDEV(M,{dimColor:!0,wrap:"truncate",children:["(",L,")"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),(q==="invalid"||q==="missing")&&U5.jsxDEV(f,{children:U5.jsxDEV(M,{color:"error",wrap:"truncate",children:W1(process.env.GLOCK_REMOTE)?"Authentication error \xB7 Try again":"Not logged in \xB7 Run /login"},void 0,!1,void 0,this)},void 0,!1,void 0,this),K&&U5.jsxDEV(f,{children:U5.jsxDEV(M,{color:"warning",wrap:"truncate",children:"Debug mode"},void 0,!1,void 0,this)},void 0,!1,void 0,this),q!=="invalid"&&q!=="missing"&&G&&U5.jsxDEV(f,{children:U5.jsxDEV(M,{dimColor:!0,wrap:"truncate",children:[z," tokens"]},void 0,!0,void 0,this)},void 0,!1,void 0,this),!$&&U5.jsxDEV(OwJ,{tokenUsage:z,model:W},void 0,!1,void 0,this),H&&U5.jsxDEV(JwJ,{verbose:G,onAutoUpdaterResult:_,autoUpdaterResult:B,isUpdating:U,onChangeIsUpdating:O,showSuccessMessage:!F},void 0,!1,void 0,this),null,U5.jsxDEV(zwJ,{},void 0,!1,void 0,this),U5.jsxDEV(NwJ,{},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}var AwJ,y40,U5,x81=5000;var h81=I(()=>{UY();D1();W6();Ro0();C81();rZ0();bt1();a0();gNJ();JT();N9();oI();t1();A6();l_0();b5();M8();hB();QwJ();U7();YwJ();WwJ();LwJ();wwJ();AwJ=T(e0(),1),y40=T(J1(),1),U5=T(e(),1)});async function xRQ(J,Q){let X=Math.ceil(J/RwJ)*RwJ;if(Ga&&u81>=X&&St1===Q)return Ga;if(Ga)await Ga;u81=X,St1=Q,Ga=(async()=>{let Z=[],Y=0;for await(let q of To0()){if(Q){if(CL(q.display)!==Q)continue}if(Z.push(q),Y++,Y>=u81)break}return Z})();try{return await Ga}finally{Ga=null,u81=0,St1=void 0}}function MwJ(J,Q,X,Z,Y){let[q,K]=Fz.useState(0),[G,z]=Fz.useState(void 0),W=Fz.useRef(!1),{addNotification:H,removeNotification:B}=D9(),U=Fz.useRef([]),F=Fz.useRef(void 0),_=Fz.useRef(0),O=Fz.useRef(void 0),L=Fz.useRef(Q),N=Fz.useRef(X),A=Fz.useRef(Y);L.current=Q,N.current=X,A.current=Y;let R=Fz.useCallback((S,k,h,u=!1)=>{J(S,k,h),Z?.(u?0:S.length)},[J,Z]),D=Fz.useCallback((S,k=!1)=>{if(!S||!S.display)return;let h=CL(S.display),u=h==="bash"?S.display.slice(1):S.display;R(u,h,S.pastedContents??{},k)},[R]),$=Fz.useCallback(()=>{H({key:"search-history-hint",jsx:xt1.jsxDEV(M,{dimColor:!0,children:xt1.jsxDEV(s1,{action:"history:search",context:"Global",fallback:"ctrl+r",description:"search history"},void 0,!1,void 0,this)},void 0,!1,void 0,this),priority:"immediate",timeoutMs:x81})},[H]),y=Fz.useCallback(()=>{let S=_.current;_.current++;let k=L.current,h=N.current,u=A.current;if(S===0){O.current=u==="bash"?u:void 0;let m=k.trim()!=="";z(m?{display:k,pastedContents:h,mode:u}:void 0)}let x=O.current;(async()=>{let m=S+1;if(F.current!==x)U.current=[],F.current=x,_.current=0;if(U.current.length<m){let c=await xRQ(m,x);if(c.length>U.current.length)U.current=c}if(S>=U.current.length){_.current--;return}let p=S+1;if(K(p),D(U.current[S],!0),p>=2&&!W.current)W.current=!0,$()})()},[D,$]),v=Fz.useCallback(()=>{let S=_.current;if(S>1)_.current--,K(S-1),D(U.current[S-2]);else if(S===1)if(_.current=0,K(0),G){let k=G.mode;if(k)R(G.display,k,G.pastedContents??{});else D(G)}else R("",O.current??"prompt",{});return S<=0},[G,D,R]),E=Fz.useCallback(()=>{z(void 0),K(0),_.current=0,O.current=void 0,B("search-history-hint"),U.current=[],F.current=void 0},[B]),C=Fz.useCallback(()=>{B("search-history-hint")},[B]);return{historyIndex:q,setHistoryIndex:K,onHistoryUp:y,onHistoryDown:v,resetHistory:E,dismissSearchHint:C}}var Fz,xt1,RwJ=10,Ga=null,u81=0,St1=void 0;var DwJ=I(()=>{UY();U7();h81();uw();a0();Fz=T(J1(),1),xt1=T(e(),1)});function $wJ(J,Q,X,Z,Y,q,K,G,z,W,H){let[B,U]=F5.useState(""),[F,_]=F5.useState(!1),[O,L]=F5.useState(""),[N,A]=F5.useState(0),[R,D]=F5.useState("prompt"),[$,y]=F5.useState({}),[v,E]=F5.useState(void 0),C=F5.useRef(void 0),S=F5.useRef(new Set),k=F5.useRef(null),h=F5.useCallback(()=>{if(C.current)C.current.return(void 0),C.current=void 0},[]),u=F5.useCallback(()=>{z(!1),U(""),_(!1),L(""),A(0),D("prompt"),y({}),E(void 0),h(),S.current.clear()},[z,h]),x=F5.useCallback(async(Y0,G0)=>{if(!G)return;if(B.length===0){h(),S.current.clear(),E(void 0),_(!1),X(O),Z(N),q(R),W($);return}if(!Y0)h(),C.current=hp1(),S.current.clear();if(!C.current)return;while(!0){if(G0?.aborted)return;let j0=await C.current.next();if(j0.done){_(!0);return}let W0=j0.value.display,y0=W0.lastIndexOf(B);if(y0!==-1&&!S.current.has(W0)){S.current.add(W0),E(j0.value),_(!1);let V0=CL(W0);q(V0),X(W0),W(j0.value.pastedContents);let t=qD(W0).lastIndexOf(B);Z(t!==-1?t:y0);return}}},[G,B,h,X,Z,q,W,O,N,R,$]),m=F5.useCallback(()=>{z(!0),L(Q),A(Y),D(K),y(H),C.current=hp1(),S.current.clear()},[z,Q,Y,K,H]),p=F5.useCallback(()=>{x(!0)},[x]),c=F5.useCallback(()=>{if(v){let Y0=CL(v.display),G0=qD(v.display);X(G0),q(Y0),W(v.pastedContents)}else W($);u()},[v,X,q,W,$,u]),r=F5.useCallback(()=>{X(O),Z(N),W($),u()},[X,Z,W,O,N,$,u]),J0=F5.useCallback(()=>{if(B.length===0)J({display:O,pastedContents:$});else if(v){let Y0=CL(v.display),G0=qD(v.display);q(Y0),J({display:G0,pastedContents:v.pastedContents})}u()},[B,v,J,q,O,$,u]);J8("history:search",m,{context:"Global",isActive:!G});let n=F5.useMemo(()=>({"historySearch:next":p,"historySearch:accept":c,"historySearch:cancel":r,"historySearch:execute":J0}),[p,c,r,J0]);C6(n,{context:"HistorySearch",isActive:G});let s=(Y0)=>{if(!G)return;if(Y0.key==="backspace"&&B==="")Y0.preventDefault(),r()};SJ((Y0,G0,j0)=>{s(new vR(j0.keypress))},{isActive:G});let X0=F5.useRef(x);return X0.current=x,F5.useEffect(()=>{k.current?.abort();let Y0=new AbortController;return k.current=Y0,X0.current(!1,Y0.signal),()=>{Y0.abort()}},[B]),{historyQuery:B,setHistoryQuery:U,historyMatch:v,historyFailedMatch:F,handleKeyDown:s}}var F5;var jwJ=I(()=>{uw();f10();a0();f6();F5=T(J1(),1)});function IwJ({maxBufferSize:J,debounceMs:Q}){let[X,Z]=Uy.useState([]),[Y,q]=Uy.useState(-1),K=Uy.useRef(0),G=Uy.useRef(null),z=Uy.useCallback((U,F,_={})=>{let O=Date.now();if(G.current)clearTimeout(G.current),G.current=null;if(O-K.current<Q){G.current=setTimeout(z,Q,U,F,_);return}K.current=O,Z((L)=>{let N=Y>=0?L.slice(0,Y+1):L,A=N[N.length-1];if(A&&A.text===U)return N;let R=[...N,{text:U,cursorOffset:F,pastedContents:_,timestamp:O}];if(R.length>J)return R.slice(-J);return R}),q((L)=>{let N=L>=0?L+1:X.length;return Math.min(N,J-1)})},[Q,J,Y,X.length]),W=Uy.useCallback(()=>{if(Y<0||X.length===0)return;let U=Math.max(0,Y-1),F=X[U];if(F)return q(U),F;return},[X,Y]),H=Uy.useCallback(()=>{if(Z([]),q(-1),K.current=0,G.current)clearTimeout(G.current),G.current=null},[K,G]),B=Y>0&&X.length>1;return{pushToBuffer:z,undo:W,canUndo:B,clearBuffer:H}}var Uy;var ywJ=I(()=>{Uy=T(J1(),1)});function bwJ({inputValue:J,isAssistantResponding:Q}){let X=O1((R)=>R.promptSuggestion),Z=T6(),Y=X5(),{text:q,promptId:K,shownAt:G,acceptedAt:z,generationRequestId:W}=X,H=Q||J.length>0?null:q,B=q&&G>0,U=pC.useRef(0),F=pC.useRef(!0),_=pC.useRef(0);if(G>0&&G!==_.current)_.current=G,F.current=Y,U.current=0;else if(G===0)_.current=0;if(J.length>0&&U.current===0&&B)U.current=Date.now();let O=pC.useCallback(()=>{KM(Z),Z((R)=>({...R,promptSuggestion:{text:null,promptId:null,shownAt:0,acceptedAt:0,generationRequestId:null}}))},[Z]),L=pC.useCallback(()=>{if(!B)return;Z((R)=>({...R,promptSuggestion:{...R.promptSuggestion,acceptedAt:Date.now()}}))},[B,Z]),N=pC.useCallback(()=>{Z((R)=>{if(R.promptSuggestion.shownAt!==0||!R.promptSuggestion.text)return R;return{...R,promptSuggestion:{...R.promptSuggestion,shownAt:Date.now()}}})},[Z]),A=pC.useCallback((R,D)=>{if(!B)return;let $=z>G,y=$||R===q,v=y?z||Date.now():Date.now();if(l("jarvis_api_error",{source:"cli",outcome:y?"accepted":"ignored",prompt_id:K,...W&&{generationRequestId:W},...y&&{acceptMethod:$?"tab":"enter"},...y&&{timeToAcceptMs:v-G},...!y&&{timeToIgnoreMs:v-G},...U.current>0&&{timeToFirstKeystrokeMs:U.current-G},wasFocusedWhenShown:F.current,similarity:Math.round(R.length/(q?.length||1)*100)/100,...process.env.USER_TYPE==="ant"&&{suggestion:q,userInput:R}}),!D?.skipReset)O()},[B,z,G,q,K,W,O]);return{suggestion:H,markAccepted:L,markShown:N,logOutcomeAtSubmission:A}}var pC;var PwJ=I(()=>{vx0();D1();jl();W6();pC=T(J1(),1)});function TwJ(J){return typeof J==="object"&&J!==null&&"op"in J&&hRQ.includes(J.op)}function EwJ(J){if(J.startsWith("$"))return"variable";if(J.includes("/")||J.startsWith("~")||J.startsWith("."))return"file";return"command"}function uRQ(J){let Q=J.findLastIndex((X)=>typeof X==="string");return Q!==-1?{token:J[Q],index:Q}:null}function gRQ(J,Q){if(Q===0)return!0;let X=J[Q-1];return X!==void 0&&TwJ(X)}function mRQ(J,Q){let X=J.slice(0,Q),Z=X.match(/\$[a-zA-Z_][a-zA-Z0-9_]*$/);if(Z)return{prefix:Z[0],completionType:"variable"};let Y=nZ(X);if(!Y.success){let z=X.split(/\s+/),W=z[z.length-1]||"",B=z.length===1&&!X.includes(" ")?"command":EwJ(W);return{prefix:W,completionType:B}}let q=uRQ(Y.tokens);if(!q){let z=Y.tokens[Y.tokens.length-1];return{prefix:"",completionType:z&&TwJ(z)?"command":"command"}}if(X.endsWith(" "))return{prefix:"",completionType:"file"};let K=EwJ(q.token);if(K==="variable"||K==="file")return{prefix:q.token,completionType:K};let G=gRQ(Y.tokens,q.index)?"command":"file";return{prefix:q.token,completionType:G}}function pRQ(J,Q){if(Q==="variable"){let X=J.slice(1);return`compgen -v ${QJ([X])} 2>/dev/null`}else if(Q==="file")return`compgen -f ${QJ([J])} 2>/dev/null | head -${kt1} | while IFS= read -r f; do [ -d "$f" ] && echo "$f/" || echo "$f "; done`;else return`compgen -c ${QJ([J])} 2>/dev/null`}function cRQ(J,Q){if(Q==="variable"){let X=J.slice(1);return`print -rl -- \${(k)parameters[(I)${QJ([X])}*]} 2>/dev/null`}else if(Q==="file")return`for f in ${QJ([J])}*(N[1,${kt1}]); do [[ -d "$f" ]] && echo "$f/" || echo "$f "; done`;else return`print -rl -- \${(k)commands[(I)${QJ([J])}*]} 2>/dev/null`}async function dRQ(J,Q,X,Z){let Y;if(J==="bash")Y=pRQ(Q,X);else if(J==="zsh")Y=cRQ(Q,X);else return[];return(await(await A70(Y,Z,"bash",{timeout:kRQ})).result).stdout.split(`
|
|
6846
6846
|
`).filter((G)=>G.trim()).slice(0,kt1).map((G)=>({id:G,displayText:G,description:void 0,metadata:{completionType:X}}))}async function CwJ(J,Q,X){let Z=rX0();if(Z!=="bash"&&Z!=="zsh")return[];try{let{prefix:Y,completionType:q}=mRQ(J,Q);if(!Y)return[];return(await dRQ(Z,Y,q,X)).map((G)=>({...G,metadata:{...G.metadata,inputSnapshot:J}}))}catch(Y){return b(`Shell completion failed: ${Y}`),[]}}var kt1=15,kRQ=1000,hRQ;var vwJ=I(()=>{iG();Z1();aX0();$w();hRQ=["|","||","&&",";"]});function $g(J){return!Array.isArray?mwJ(J)==="[object Array]":Array.isArray(J)}function iRQ(J){if(typeof J=="string")return J;let Q=J+"";return Q=="0"&&1/J==-lRQ?"-0":Q}function fwJ(J){return J==null?"":iRQ(J)}function ZV(J){return typeof J==="string"}function ht1(J){return typeof J==="number"}function nRQ(J){return J===!0||J===!1||rRQ(J)&&mwJ(J)=="[object Boolean]"}function gwJ(J){return typeof J==="object"}function rRQ(J){return gwJ(J)&&J!==null}function XV(J){return J!==void 0&&J!==null}function g81(J){return!J.trim().length}function mwJ(J){return J==null?J===void 0?"[object Undefined]":"[object Null]":Object.prototype.toString.call(J)}class pwJ{constructor(J){this._keys=[],this._keyMap={};let Q=0;J.forEach((X)=>{let Z=cwJ(X);this._keys.push(Z),this._keyMap[Z.id]=Z,Q+=Z.weight}),this._keys.forEach((X)=>{X.weight/=Q})}get(J){return this._keyMap[J]}keys(){return this._keys}toJSON(){return JSON.stringify(this._keys)}}function cwJ(J){let Q=null,X=null,Z=null,Y=1,q=null;if(ZV(J)||$g(J))Z=J,Q=xwJ(J),X=ut1(J);else{if(!SwJ.call(J,"name"))throw Error(tRQ("name"));let K=J.name;if(Z=K,SwJ.call(J,"weight")){if(Y=J.weight,Y<=0)throw Error(eRQ(K))}Q=xwJ(K),X=ut1(K),q=J.getFn}return{path:Q,id:X,weight:Y,src:Z,getFn:q}}function xwJ(J){return $g(J)?J:J.split(".")}function ut1(J){return $g(J)?J.join("."):J}function JMQ(J,Q){let X=[],Z=!1,Y=(q,K,G,z)=>{if(!XV(q))return;if(!K[G])X.push(z!==void 0?{v:q,i:z}:q);else{let W=K[G],H=q[W];if(!XV(H))return;if(G===K.length-1&&(ZV(H)||ht1(H)||nRQ(H)))X.push(z!==void 0?{v:fwJ(H),i:z}:fwJ(H));else if($g(H)){Z=!0;for(let B=0,U=H.length;B<U;B+=1)Y(H[B],K,G+1,B)}else if(K.length)Y(H,K,G+1,z)}};return Y(J,ZV(Q)?Q.split("."):Q,0),Z?X:X[0]}function KMQ(J=1,Q=3){let X=new Map,Z=Math.pow(10,Q);return{get(Y){let q=Y.match(qMQ).length;if(X.has(q))return X.get(q);let K=1/Math.pow(q,0.5*J),G=parseFloat(Math.round(K*Z)/Z);return X.set(q,G),G},clear(){X.clear()}}}class c81{constructor({getFn:J=_7.getFn,fieldNormWeight:Q=_7.fieldNormWeight}={}){this.norm=KMQ(Q,3),this.getFn=J,this.isCreated=!1,this.setIndexRecords()}setSources(J=[]){this.docs=J}setIndexRecords(J=[]){this.records=J}setKeys(J=[]){this.keys=J,this._keysMap={},J.forEach((Q,X)=>{this._keysMap[Q.id]=X})}create(){if(this.isCreated||!this.docs.length)return;if(this.isCreated=!0,ZV(this.docs[0]))this.docs.forEach((J,Q)=>{this._addString(J,Q)});else this.docs.forEach((J,Q)=>{this._addObject(J,Q)});this.norm.clear()}add(J){let Q=this.size();if(ZV(J))this._addString(J,Q);else this._addObject(J,Q)}removeAt(J){this.records.splice(J,1);for(let Q=J,X=this.size();Q<X;Q+=1)this.records[Q].i-=1}removeAll(J){for(let Q=J.length-1;Q>=0;Q-=1)this.records.splice(J[Q],1);for(let Q=0,X=this.records.length;Q<X;Q+=1)this.records[Q].i=Q}getValueForItemAtKeyId(J,Q){return J[this._keysMap[Q]]}size(){return this.records.length}_addString(J,Q){if(!XV(J)||g81(J))return;let X={v:J,i:Q,n:this.norm.get(J)};this.records.push(X)}_addObject(J,Q){let X={i:Q,$:{}};this.keys.forEach((Z,Y)=>{let q=Z.getFn?Z.getFn(J):this.getFn(J,Z.path);if(!XV(q))return;if($g(q)){let K=[];for(let G=0,z=q.length;G<z;G+=1){let W=q[G];if(!XV(W))continue;if(ZV(W)){if(!g81(W)){let H={v:W,i:G,n:this.norm.get(W)};K.push(H)}}else if(ZV(W.v)&&!g81(W.v)){let H={v:W.v,i:W.i,n:this.norm.get(W.v)};K.push(H)}}X.$[Y]=K}else if(ZV(q)&&!g81(q)){let K={v:q,n:this.norm.get(q)};X.$[Y]=K}}),this.records.push(X)}toJSON(){return{keys:this.keys,records:this.records}}}function dwJ(J,Q,{getFn:X=_7.getFn,fieldNormWeight:Z=_7.fieldNormWeight}={}){let Y=new c81({getFn:X,fieldNormWeight:Z});return Y.setKeys(J.map(cwJ)),Y.setSources(Q),Y.create(),Y}function GMQ(J,{getFn:Q=_7.getFn,fieldNormWeight:X=_7.fieldNormWeight}={}){let{keys:Z,records:Y}=J,q=new c81({getFn:Q,fieldNormWeight:X});return q.setKeys(Z),q.setIndexRecords(Y),q}function zMQ(J=[],Q=_7.minMatchCharLength){let X=[],Z=-1,Y=-1,q=0;for(let K=J.length;q<K;q+=1){let G=J[q];if(G&&Z===-1)Z=q;else if(!G&&Z!==-1){if(Y=q-1,Y-Z+1>=Q)X.push([Z,Y]);Z=-1}}if(J[q-1]&&q-Z>=Q)X.push([Z,q-1]);return X}function WMQ(J,Q,X,{location:Z=_7.location,distance:Y=_7.distance,threshold:q=_7.threshold,findAllMatches:K=_7.findAllMatches,minMatchCharLength:G=_7.minMatchCharLength,includeMatches:z=_7.includeMatches,ignoreLocation:W=_7.ignoreLocation}={}){if(Q.length>za)throw Error(sRQ(za));let H=Q.length,B=J.length,U=Math.max(0,Math.min(Z,B)),F=q,_=U,O=(E,C)=>{let S=E/H;if(W)return S;let k=Math.abs(U-C);if(!Y)return k?1:S;return S+k/Y},L=G>1||z,N=L?Array(B):[],A;while((A=J.indexOf(Q,_))>-1){let E=O(0,A);if(F=Math.min(E,F),_=A+H,L){let C=0;while(C<H)N[A+C]=1,C+=1}}_=-1;let R=[],D=1,$=H+B,y=1<<H-1;for(let E=0;E<H;E+=1){let C=0,S=$;while(C<S){if(O(E,U+S)<=F)C=S;else $=S;S=Math.floor(($-C)/2+C)}$=S;let k=Math.max(1,U-S+1),h=K?B:Math.min(U+S,B)+H,u=Array(h+2);u[h+1]=(1<<E)-1;for(let m=h;m>=k;m-=1){let p=m-1,c=X[J[p]];if(L)N[p]=+!!c;if(u[m]=(u[m+1]<<1|1)&c,E)u[m]|=(R[m+1]|R[m])<<1|1|R[m+1];if(u[m]&y){if(D=O(E,p),D<=F){if(F=D,_=p,_<=U)break;k=Math.max(1,2*U-_)}}}if(O(E+1,U)>F)break;R=u}let v={isMatch:_>=0,score:Math.max(0.001,D)};if(L){let E=zMQ(N,G);if(!E.length)v.isMatch=!1;else if(z)v.indices=E}return v}function HMQ(J){let Q={};for(let X=0,Z=J.length;X<Z;X+=1){let Y=J.charAt(X);Q[Y]=(Q[Y]||0)|1<<Z-X-1}return Q}function BMQ(J){if(J.length<=1)return J;J.sort((X,Z)=>X[0]-Z[0]||X[1]-Z[1]);let Q=[J[0]];for(let X=1,Z=J.length;X<Z;X+=1){let Y=Q[Q.length-1],q=J[X];if(q[0]<=Y[1]+1)Y[1]=Math.max(Y[1],q[1]);else Q.push(q)}return Q}class lt1{constructor(J,{location:Q=_7.location,threshold:X=_7.threshold,distance:Z=_7.distance,includeMatches:Y=_7.includeMatches,findAllMatches:q=_7.findAllMatches,minMatchCharLength:K=_7.minMatchCharLength,isCaseSensitive:G=_7.isCaseSensitive,ignoreDiacritics:z=_7.ignoreDiacritics,ignoreLocation:W=_7.ignoreLocation}={}){if(this.options={location:Q,threshold:X,distance:Z,includeMatches:Y,findAllMatches:q,minMatchCharLength:K,isCaseSensitive:G,ignoreDiacritics:z,ignoreLocation:W},J=G?J:J.toLowerCase(),J=z?m81(J):J,this.pattern=J,this.chunks=[],!this.pattern.length)return;let H=(U,F)=>{this.chunks.push({pattern:U,alphabet:HMQ(U),startIndex:F})},B=this.pattern.length;if(B>za){let U=0,F=B%za,_=B-F;while(U<_)H(this.pattern.substr(U,za),U),U+=za;if(F){let O=B-za;H(this.pattern.substr(O),O)}}else H(this.pattern,0)}searchIn(J){let{isCaseSensitive:Q,ignoreDiacritics:X,includeMatches:Z}=this.options;if(J=Q?J:J.toLowerCase(),J=X?m81(J):J,this.pattern===J){let _={isMatch:!0,score:0};if(Z)_.indices=[[0,J.length-1]];return _}let{location:Y,distance:q,threshold:K,findAllMatches:G,minMatchCharLength:z,ignoreLocation:W}=this.options,H=[],B=0,U=!1;this.chunks.forEach(({pattern:_,alphabet:O,startIndex:L})=>{let{isMatch:N,score:A,indices:R}=WMQ(J,_,O,{location:Y+L,distance:q,threshold:K,findAllMatches:G,minMatchCharLength:z,includeMatches:Z,ignoreLocation:W});if(N)U=!0;if(B+=A,N&&R)H.push(...R)});let F={isMatch:U,score:U?B/this.chunks.length:1};if(U&&Z)F.indices=BMQ(H);return F}}class cC{constructor(J){this.pattern=J}static isMultiMatch(J){return kwJ(J,this.multiRegex)}static isSingleMatch(J){return kwJ(J,this.singleRegex)}search(){}}function kwJ(J,Q){let X=J.match(Q);return X?X[1]:null}function _MQ(J,Q={}){return J.split(FMQ).map((X)=>{let Z=X.trim().split(UMQ).filter((q)=>q&&!!q.trim()),Y=[];for(let q=0,K=Z.length;q<K;q+=1){let G=Z[q],z=!1,W=-1;while(!z&&++W<hwJ){let H=gt1[W],B=H.isMultiMatch(G);if(B)Y.push(new H(B,Q)),z=!0}if(z)continue;W=-1;while(++W<hwJ){let H=gt1[W],B=H.isSingleMatch(G);if(B){Y.push(new H(B,Q));break}}}return Y})}class swJ{constructor(J,{isCaseSensitive:Q=_7.isCaseSensitive,ignoreDiacritics:X=_7.ignoreDiacritics,includeMatches:Z=_7.includeMatches,minMatchCharLength:Y=_7.minMatchCharLength,ignoreLocation:q=_7.ignoreLocation,findAllMatches:K=_7.findAllMatches,location:G=_7.location,threshold:z=_7.threshold,distance:W=_7.distance}={}){this.query=null,this.options={isCaseSensitive:Q,ignoreDiacritics:X,includeMatches:Z,minMatchCharLength:Y,findAllMatches:K,ignoreLocation:q,location:G,threshold:z,distance:W},J=Q?J:J.toLowerCase(),J=X?m81(J):J,this.pattern=J,this.query=_MQ(this.pattern,this.options)}static condition(J,Q){return Q.useExtendedSearch}searchIn(J){let Q=this.query;if(!Q)return{isMatch:!1,score:1};let{includeMatches:X,isCaseSensitive:Z,ignoreDiacritics:Y}=this.options;J=Z?J:J.toLowerCase(),J=Y?m81(J):J;let q=0,K=[],G=0;for(let z=0,W=Q.length;z<W;z+=1){let H=Q[z];K.length=0,q=0;for(let B=0,U=H.length;B<U;B+=1){let F=H[B],{isMatch:_,indices:O,score:L}=F.search(J);if(_){if(q+=1,G+=L,X){let N=F.constructor.type;if(OMQ.has(N))K.push(...O);else K.push(O)}}else{G=0,q=0,K.length=0;break}}if(q){let B={isMatch:!0,score:G/q};if(X)B.indices=K;return B}}return{isMatch:!1,score:1}}}function twJ(...J){mt1.push(...J)}function ewJ(J,Q){for(let X=0,Z=mt1.length;X<Z;X+=1){let Y=mt1[X];if(Y.condition(J,Q))return new Y(J,Q)}return new lt1(J,Q)}function JAJ(J,Q,{auto:X=!0}={}){let Z=(Y)=>{let q=Object.keys(Y),K=LMQ(Y);if(!K&&q.length>1&&!ct1(Y))return Z(uwJ(Y));if(VMQ(Y)){let z=K?Y[pt1.PATH]:q[0],W=K?Y[pt1.PATTERN]:Y[z];if(!ZV(W))throw Error(oRQ(z));let H={keyId:ut1(z),pattern:W};if(X)H.searcher=ewJ(W,Q);return H}let G={children:[],operator:q[0]};return q.forEach((z)=>{let W=Y[z];if($g(W))W.forEach((H)=>{G.children.push(Z(H))})}),G};if(!ct1(J))J=uwJ(J);return Z(J)}function dt1(J,{ignoreFieldNorm:Q=_7.ignoreFieldNorm}){let X=1;J.matches.forEach(({key:Z,norm:Y,score:q})=>{let K=Z?Z.weight:null;X*=Math.pow(q===0&&K?Number.EPSILON:q,(K||1)*(Q?1:Y))}),J.score=X}function NMQ(J,{ignoreFieldNorm:Q=_7.ignoreFieldNorm}){J.forEach((X)=>{dt1(X,{ignoreFieldNorm:Q})})}class QAJ{constructor(J){this.limit=J,this.heap=[]}get size(){return this.heap.length}shouldInsert(J){return this.size<this.limit||J<this.heap[0].score}insert(J){if(this.size<this.limit)this.heap.push(J),this._bubbleUp(this.size-1);else if(J.score<this.heap[0].score)this.heap[0]=J,this._sinkDown(0)}extractSorted(J){return this.heap.sort(J)}_bubbleUp(J){let Q=this.heap;while(J>0){let X=J-1>>1;if(Q[J].score<=Q[X].score)break;let Z=Q[J];Q[J]=Q[X],Q[X]=Z,J=X}}_sinkDown(J){let Q=this.heap,X=Q.length,Z=J;do{J=Z;let Y=2*J+1,q=2*J+2;if(Y<X&&Q[Y].score>Q[Z].score)Z=Y;if(q<X&&Q[q].score>Q[Z].score)Z=q;if(Z!==J){let K=Q[J];Q[J]=Q[Z],Q[Z]=K}}while(Z!==J)}}function wMQ(J,Q){let X=J.matches;if(Q.matches=[],!XV(X))return;X.forEach((Z)=>{if(!XV(Z.indices)||!Z.indices.length)return;let{indices:Y,value:q}=Z,K={indices:Y,value:q};if(Z.key)K.key=Z.key.src;if(Z.idx>-1)K.refIndex=Z.idx;Q.matches.push(K)})}function AMQ(J,Q){Q.score=J.score}function RMQ(J,Q,{includeMatches:X=_7.includeMatches,includeScore:Z=_7.includeScore}={}){let Y=[];if(X)Y.push(wMQ);if(Z)Y.push(AMQ);return J.map((q)=>{let{idx:K}=q,G={item:Q[K],refIndex:K};if(Y.length)Y.forEach((z)=>{z(q,G)});return G})}class ID{constructor(J,Q={},X){this.options={..._7,...Q},this.options.useExtendedSearch,this._keyStore=new pwJ(this.options.keys),this.setCollection(J,X),this._lastQuery=null,this._lastSearcher=null}_getSearcher(J){if(this._lastQuery===J)return this._lastSearcher;let Q=ewJ(J,this.options);return this._lastQuery=J,this._lastSearcher=Q,Q}setCollection(J,Q){if(this._docs=J,Q&&!(Q instanceof c81))throw Error(aRQ);this._myIndex=Q||dwJ(this.options.keys,this._docs,{getFn:this.options.getFn,fieldNormWeight:this.options.fieldNormWeight})}add(J){if(!XV(J))return;this._docs.push(J),this._myIndex.add(J)}remove(J=()=>!1){let Q=[],X=[];for(let Z=0,Y=this._docs.length;Z<Y;Z+=1)if(J(this._docs[Z],Z))Q.push(this._docs[Z]),X.push(Z);if(X.length){for(let Z=X.length-1;Z>=0;Z-=1)this._docs.splice(X[Z],1);this._myIndex.removeAll(X)}return Q}removeAt(J){this._docs.splice(J,1),this._myIndex.removeAt(J)}getIndex(){return this._myIndex}search(J,{limit:Q=-1}={}){let{includeMatches:X,includeScore:Z,shouldSort:Y,sortFn:q,ignoreFieldNorm:K}=this.options,G=ht1(Q)&&Q>0&&ZV(J),z;if(G){let W=new QAJ(Q);if(ZV(this._docs[0]))this._searchStringList(J,{heap:W,ignoreFieldNorm:K});else this._searchObjectList(J,{heap:W,ignoreFieldNorm:K});z=W.extractSorted(q)}else{if(z=ZV(J)?ZV(this._docs[0])?this._searchStringList(J):this._searchObjectList(J):this._searchLogical(J),NMQ(z,{ignoreFieldNorm:K}),Y)z.sort(q);if(ht1(Q)&&Q>-1)z=z.slice(0,Q)}return RMQ(z,this._docs,{includeMatches:X,includeScore:Z})}_searchStringList(J,{heap:Q,ignoreFieldNorm:X}={}){let Z=this._getSearcher(J),{records:Y}=this._myIndex,q=Q?null:[];return Y.forEach(({v:K,i:G,n:z})=>{if(!XV(K))return;let{isMatch:W,score:H,indices:B}=Z.searchIn(K);if(W){let U={item:K,idx:G,matches:[{score:H,value:K,norm:z,indices:B}]};if(Q){if(dt1(U,{ignoreFieldNorm:X}),Q.shouldInsert(U.score))Q.insert(U)}else q.push(U)}}),q}_searchLogical(J){let Q=JAJ(J,this.options),X=(K,G,z)=>{if(!K.children){let{keyId:H,searcher:B}=K,U=this._findMatches({key:this._keyStore.get(H),value:this._myIndex.getValueForItemAtKeyId(G,H),searcher:B});if(U&&U.length)return[{idx:z,item:G,matches:U}];return[]}let W=[];for(let H=0,B=K.children.length;H<B;H+=1){let U=K.children[H],F=X(U,G,z);if(F.length)W.push(...F);else if(K.operator===p81.AND)return[]}return W},Z=this._myIndex.records,Y=new Map,q=[];return Z.forEach(({$:K,i:G})=>{if(XV(K)){let z=X(Q,K,G);if(z.length){if(!Y.has(G))Y.set(G,{idx:G,item:K,matches:[]}),q.push(Y.get(G));z.forEach(({matches:W})=>{Y.get(G).matches.push(...W)})}}}),q}_searchObjectList(J,{heap:Q,ignoreFieldNorm:X}={}){let Z=this._getSearcher(J),{keys:Y,records:q}=this._myIndex,K=Q?null:[];return q.forEach(({$:G,i:z})=>{if(!XV(G))return;let W=[];if(Y.forEach((H,B)=>{W.push(...this._findMatches({key:H,value:G[B],searcher:Z}))}),W.length){let H={idx:z,item:G,matches:W};if(Q){if(dt1(H,{ignoreFieldNorm:X}),Q.shouldInsert(H.score))Q.insert(H)}else K.push(H)}}),K}_findMatches({key:J,value:Q,searcher:X}){if(!XV(Q))return[];let Z=[];if($g(Q))Q.forEach(({v:Y,i:q,n:K})=>{if(!XV(Y))return;let{isMatch:G,score:z,indices:W}=X.searchIn(Y);if(G)Z.push({score:z,key:J,value:Y,idx:q,norm:K,indices:W})});else{let{v:Y,n:q}=Q,{isMatch:K,score:G,indices:z}=X.searchIn(Y);if(K)Z.push({score:G,key:J,value:Y,norm:q,indices:z})}return Z}}var lRQ=1/0,aRQ="Incorrect 'index' type",oRQ=(J)=>`Invalid value for key ${J}`,sRQ=(J)=>`Pattern length exceeds max of ${J}.`,tRQ=(J)=>`Missing ${J} property in key`,eRQ=(J)=>`Property 'weight' in key '${J}' must be a positive integer`,SwJ,QMQ,XMQ,ZMQ,YMQ,_7,qMQ,za=32,m81,lwJ,iwJ,nwJ,rwJ,awJ,owJ,it1,nt1,gt1,hwJ,UMQ,FMQ="|",OMQ,mt1,p81,pt1,ct1=(J)=>!!(J[p81.AND]||J[p81.OR]),LMQ=(J)=>!!J[pt1.PATH],VMQ=(J)=>!$g(J)&&gwJ(J)&&!ct1(J),uwJ=(J)=>({[p81.AND]:Object.keys(J).map((Q)=>({[Q]:J[Q]}))});var rt1=I(()=>{SwJ=Object.prototype.hasOwnProperty;QMQ={includeMatches:!1,findAllMatches:!1,minMatchCharLength:1},XMQ={isCaseSensitive:!1,ignoreDiacritics:!1,includeScore:!1,keys:[],shouldSort:!0,sortFn:(J,Q)=>J.score===Q.score?J.idx<Q.idx?-1:1:J.score<Q.score?-1:1},ZMQ={location:0,threshold:0.6,distance:100},YMQ={useExtendedSearch:!1,getFn:JMQ,ignoreLocation:!1,ignoreFieldNorm:!1,fieldNormWeight:1},_7={...XMQ,...QMQ,...ZMQ,...YMQ},qMQ=/[^ ]+/g;m81=String.prototype.normalize?(J)=>J.normalize("NFD").replace(/[\u0300-\u036F\u0483-\u0489\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u0610-\u061A\u064B-\u065F\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7\u06E8\u06EA-\u06ED\u0711\u0730-\u074A\u07A6-\u07B0\u07EB-\u07F3\u07FD\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0859-\u085B\u08D3-\u08E1\u08E3-\u0903\u093A-\u093C\u093E-\u094F\u0951-\u0957\u0962\u0963\u0981-\u0983\u09BC\u09BE-\u09C4\u09C7\u09C8\u09CB-\u09CD\u09D7\u09E2\u09E3\u09FE\u0A01-\u0A03\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A70\u0A71\u0A75\u0A81-\u0A83\u0ABC\u0ABE-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AE2\u0AE3\u0AFA-\u0AFF\u0B01-\u0B03\u0B3C\u0B3E-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B62\u0B63\u0B82\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD7\u0C00-\u0C04\u0C3E-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C62\u0C63\u0C81-\u0C83\u0CBC\u0CBE-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CE2\u0CE3\u0D00-\u0D03\u0D3B\u0D3C\u0D3E-\u0D44\u0D46-\u0D48\u0D4A-\u0D4D\u0D57\u0D62\u0D63\u0D82\u0D83\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DF2\u0DF3\u0E31\u0E34-\u0E3A\u0E47-\u0E4E\u0EB1\u0EB4-\u0EB9\u0EBB\u0EBC\u0EC8-\u0ECD\u0F18\u0F19\u0F35\u0F37\u0F39\u0F3E\u0F3F\u0F71-\u0F84\u0F86\u0F87\u0F8D-\u0F97\u0F99-\u0FBC\u0FC6\u102B-\u103E\u1056-\u1059\u105E-\u1060\u1062-\u1064\u1067-\u106D\u1071-\u1074\u1082-\u108D\u108F\u109A-\u109D\u135D-\u135F\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17B4-\u17D3\u17DD\u180B-\u180D\u1885\u1886\u18A9\u1920-\u192B\u1930-\u193B\u1A17-\u1A1B\u1A55-\u1A5E\u1A60-\u1A7C\u1A7F\u1AB0-\u1ABE\u1B00-\u1B04\u1B34-\u1B44\u1B6B-\u1B73\u1B80-\u1B82\u1BA1-\u1BAD\u1BE6-\u1BF3\u1C24-\u1C37\u1CD0-\u1CD2\u1CD4-\u1CE8\u1CED\u1CF2-\u1CF4\u1CF7-\u1CF9\u1DC0-\u1DF9\u1DFB-\u1DFF\u20D0-\u20F0\u2CEF-\u2CF1\u2D7F\u2DE0-\u2DFF\u302A-\u302F\u3099\u309A\uA66F-\uA672\uA674-\uA67D\uA69E\uA69F\uA6F0\uA6F1\uA802\uA806\uA80B\uA823-\uA827\uA880\uA881\uA8B4-\uA8C5\uA8E0-\uA8F1\uA8FF\uA926-\uA92D\uA947-\uA953\uA980-\uA983\uA9B3-\uA9C0\uA9E5\uAA29-\uAA36\uAA43\uAA4C\uAA4D\uAA7B-\uAA7D\uAAB0\uAAB2-\uAAB4\uAAB7\uAAB8\uAABE\uAABF\uAAC1\uAAEB-\uAAEF\uAAF5\uAAF6\uABE3-\uABEA\uABEC\uABED\uFB1E\uFE00-\uFE0F\uFE20-\uFE2F]/g,""):(J)=>J;lwJ=class lwJ extends cC{constructor(J){super(J)}static get type(){return"exact"}static get multiRegex(){return/^="(.*)"$/}static get singleRegex(){return/^=(.*)$/}search(J){let Q=J===this.pattern;return{isMatch:Q,score:Q?0:1,indices:[0,this.pattern.length-1]}}};iwJ=class iwJ extends cC{constructor(J){super(J)}static get type(){return"inverse-exact"}static get multiRegex(){return/^!"(.*)"$/}static get singleRegex(){return/^!(.*)$/}search(J){let X=J.indexOf(this.pattern)===-1;return{isMatch:X,score:X?0:1,indices:[0,J.length-1]}}};nwJ=class nwJ extends cC{constructor(J){super(J)}static get type(){return"prefix-exact"}static get multiRegex(){return/^\^"(.*)"$/}static get singleRegex(){return/^\^(.*)$/}search(J){let Q=J.startsWith(this.pattern);return{isMatch:Q,score:Q?0:1,indices:[0,this.pattern.length-1]}}};rwJ=class rwJ extends cC{constructor(J){super(J)}static get type(){return"inverse-prefix-exact"}static get multiRegex(){return/^!\^"(.*)"$/}static get singleRegex(){return/^!\^(.*)$/}search(J){let Q=!J.startsWith(this.pattern);return{isMatch:Q,score:Q?0:1,indices:[0,J.length-1]}}};awJ=class awJ extends cC{constructor(J){super(J)}static get type(){return"suffix-exact"}static get multiRegex(){return/^"(.*)"\$$/}static get singleRegex(){return/^(.*)\$$/}search(J){let Q=J.endsWith(this.pattern);return{isMatch:Q,score:Q?0:1,indices:[J.length-this.pattern.length,J.length-1]}}};owJ=class owJ extends cC{constructor(J){super(J)}static get type(){return"inverse-suffix-exact"}static get multiRegex(){return/^!"(.*)"\$$/}static get singleRegex(){return/^!(.*)\$$/}search(J){let Q=!J.endsWith(this.pattern);return{isMatch:Q,score:Q?0:1,indices:[0,J.length-1]}}};it1=class it1 extends cC{constructor(J,{location:Q=_7.location,threshold:X=_7.threshold,distance:Z=_7.distance,includeMatches:Y=_7.includeMatches,findAllMatches:q=_7.findAllMatches,minMatchCharLength:K=_7.minMatchCharLength,isCaseSensitive:G=_7.isCaseSensitive,ignoreDiacritics:z=_7.ignoreDiacritics,ignoreLocation:W=_7.ignoreLocation}={}){super(J);this._bitapSearch=new lt1(J,{location:Q,threshold:X,distance:Z,includeMatches:Y,findAllMatches:q,minMatchCharLength:K,isCaseSensitive:G,ignoreDiacritics:z,ignoreLocation:W})}static get type(){return"fuzzy"}static get multiRegex(){return/^"(.*)"$/}static get singleRegex(){return/^(.*)$/}search(J){return this._bitapSearch.searchIn(J)}};nt1=class nt1 extends cC{constructor(J){super(J)}static get type(){return"include"}static get multiRegex(){return/^'"(.*)"$/}static get singleRegex(){return/^'(.*)$/}search(J){let Q=0,X,Z=[],Y=this.pattern.length;while((X=J.indexOf(this.pattern,Q))>-1)Q=X+Y,Z.push([X,Q-1]);let q=!!Z.length;return{isMatch:q,score:q?0:1,indices:Z}}};gt1=[lwJ,nt1,nwJ,rwJ,owJ,awJ,iwJ,it1],hwJ=gt1.length,UMQ=/ +(?=(?:[^\"]*\"[^\"]*\")*[^\"]*$)/;OMQ=new Set([it1.type,nt1.type]);mt1=[];p81={AND:"$and",OR:"$or"},pt1={PATH:"$path",PATTERN:"$val"};ID.version="7.2.0";ID.createIndex=dwJ;ID.parseIndex=GMQ;ID.config=_7;ID.parseQuery=JAJ;twJ(swJ);ID.use=function(...J){J.forEach((Q)=>twJ(Q))}});function DMQ(J){if(at1?.commands===J)return at1.fuse;let Q=J.filter((Z)=>!Z.isHidden).map((Z)=>{let Y=lQ(Z),q=Y.split(MMQ).filter(Boolean);return{descriptionKey:(Z.description??"").split(" ").map((K)=>yMQ(K)).filter(Boolean),partKey:q.length>1?q:void 0,commandName:Y,command:Z,aliasKey:Z.aliases}}),X=new ID(Q,{includeScore:!0,threshold:0.3,location:0,distance:100,keys:[{name:"commandName",weight:3},{name:"partKey",weight:2},{name:"aliasKey",weight:2},{name:"descriptionKey",weight:0.5}]});return at1={commands:J,fuse:X},X}function XAJ(J){return typeof J==="object"&&J!==null&&"name"in J&&typeof J.name==="string"&&"type"in J}function l81(J,Q){if(J.startsWith("/"))return null;let Z=J.slice(0,Q).match(/\s\/([a-zA-Z0-9_:-]*)$/);if(!Z||Z.index===void 0)return null;let Y=Z.index+1,K=J.slice(Y+1).match(/^[a-zA-Z0-9_:-]*/),G=K?K[0]:"";if(Q>Y+1+G.length)return null;return{token:"/"+G,startPos:Y,partialCommand:G}}function st1(J,Q){if(!J)return null;let X=tt1("/"+J,Q);if(X.length===0)return null;let Z=J.toLowerCase();for(let Y of X){if(!XAJ(Y.metadata))continue;let q=lQ(Y.metadata);if(q.toLowerCase().startsWith(Z)){let K=q.slice(J.length);if(K)return{suffix:K,fullCommand:q}}}return null}function dC(J){return J.startsWith("/")}function $MQ(J){if(!dC(J))return!1;if(!J.includes(" "))return!1;if(J.endsWith(" "))return!1;return!0}function jMQ(J){return`/${J} `}function d81(J){let Q=lQ(J);if(J.type==="prompt"){if(J.source==="plugin"&&J.pluginInfo?.repository)return`${Q}:${J.source}:${J.pluginInfo.repository}`;return`${Q}:${J.source}`}return`${Q}:${J.type}`}function IMQ(J,Q){if(!Q||Q.length===0||J==="")return;return Q.find((X)=>X.toLowerCase().startsWith(J))}function ot1(J,Q){let X=lQ(J),Z=Q?` (${Q})`:"",Y=J.type==="prompt"&&J.kind==="workflow",q=(Y?J.description:Vr(J))+(J.type==="prompt"&&J.argNames?.length?` (arguments: ${J.argNames.join(", ")})`:"");return{id:d81(J),displayText:`/${X}${Z}`,tag:Y?"workflow":void 0,description:q,metadata:J}}function tt1(J,Q){if(!dC(J))return[];if($MQ(J))return[];let X=J.slice(1).toLowerCase().trim();if(X===""){let W=Q.filter((R)=>!R.isHidden),H=[],B=W.filter((R)=>R.type==="prompt").map((R)=>({cmd:R,score:zh1(lQ(R))})).filter((R)=>R.score>0).sort((R,D)=>D.score-R.score);for(let R of B.slice(0,5))H.push(R.cmd);let U=new Set(H.map((R)=>d81(R))),F=[],_=[],O=[],L=[],N=[];W.forEach((R)=>{if(U.has(d81(R)))return;if(R.type==="local"||R.type==="local-jsx")F.push(R);else if(R.type==="prompt"&&(R.source==="userSettings"||R.source==="localSettings"))_.push(R);else if(R.type==="prompt"&&R.source==="projectSettings")O.push(R);else if(R.type==="prompt"&&R.source==="policySettings")L.push(R);else N.push(R)});let A=(R,D)=>lQ(R).localeCompare(lQ(D));return F.sort(A),_.sort(A),O.sort(A),L.sort(A),N.sort(A),[...H,...F,..._,...O,...L,...N].map((R)=>ot1(R))}let Z=Q.find((W)=>W.isHidden&&lQ(W).toLowerCase()===X);if(Z&&Q.some((W)=>!W.isHidden&&lQ(W).toLowerCase()===X))Z=void 0;let z=DMQ(Q).search(X).map((W)=>{let H=W.item.commandName.toLowerCase(),B=W.item.aliasKey?.map((F)=>F.toLowerCase())??[],U=W.item.command.type==="prompt"?zh1(lQ(W.item.command)):0;return{r:W,name:H,aliases:B,usage:U}}).sort((W,H)=>{let B=W.name,U=H.name,F=W.aliases,_=H.aliases,O=B===X,L=U===X;if(O&&!L)return-1;if(L&&!O)return 1;let N=F.some((E)=>E===X),A=_.some((E)=>E===X);if(N&&!A)return-1;if(A&&!N)return 1;let R=B.startsWith(X),D=U.startsWith(X);if(R&&!D)return-1;if(D&&!R)return 1;if(R&&D&&B.length!==U.length)return B.length-U.length;let $=F.find((E)=>E.startsWith(X)),y=_.find((E)=>E.startsWith(X));if($&&!y)return-1;if(y&&!$)return 1;if($&&y&&$.length!==y.length)return $.length-y.length;let v=(W.r.score??0)-(H.r.score??0);if(Math.abs(v)>0.1)return v;return H.usage-W.usage}).map((W)=>{let H=W.r.item.command,B=IMQ(X,H.aliases);return ot1(H,B)});if(Z){let W=d81(Z);if(!z.some((H)=>H.id===W))return[ot1(Z),...z]}return z}function et1(J,Q,X,Z,Y,q){let K,G;if(typeof J==="string")K=J,G=Q?x70(K,X):void 0;else{if(!XAJ(J.metadata))return;K=lQ(J.metadata),G=J.metadata}let z=jMQ(K);if(Z(z),Y(z.length),Q&&G){if(G.type!=="prompt"||(G.argNames??[]).length===0)q(z,!0)}}function yMQ(J){return J.toLowerCase().replace(/[^a-z0-9]/g,"")}function ZAJ(J){let Q=[],X=/(^|[\s])(\/[a-zA-Z][a-zA-Z0-9:\-_]*)/g,Z=null;while((Z=X.exec(J))!==null){let Y=Z[1]??"",q=Z[2]??"",K=Z.index+Y.length;Q.push({start:K,end:K+q.length})}return Q}var MMQ,at1=null;var Je1=I(()=>{rt1();PY();jn0();MMQ=/[:_-]/g});async function PMQ(){let J=Date.now();if(Wa&&J-YAJ<bMQ)return Wa;let Q=[],X=new Set;try{for await(let Z of To0()){if(Z.display&&Z.display.startsWith("!")){let Y=Z.display.slice(1).trim();if(Y&&!X.has(Y))X.add(Y),Q.push(Y)}if(Q.length>=50)break}}catch(Z){b(`Failed to read shell history: ${Z}`)}return Wa=Q,YAJ=J,Q}function qAJ(J){if(!Wa)return;let Q=Wa.indexOf(J);if(Q!==-1)Wa.splice(Q,1);Wa.unshift(J)}async function KAJ(J){if(!J||J.length<2)return null;if(!J.trim())return null;let X=await PMQ();for(let Z of X)if(Z.startsWith(J)&&Z!==J)return{fullCommand:Z,suffix:Z.slice(J.length)};return null}var Wa=null,YAJ=0,bMQ=60000;var Qe1=I(()=>{uw();Z1()});var GAJ=I(()=>{IT1();IT1()});function BAJ(J){return J.find((Q)=>Q.type==="connected"&&Q.name.includes("slack"))}async function TMQ(J,Q){let X=BAJ(J);if(!X||X.type!=="connected")return[];try{let Y=(await X.client.callTool({name:EMQ,arguments:{query:Q,limit:20,channel_types:"public_channel,private_channel"}},void 0,{timeout:5000})).content;if(!Array.isArray(Y))return[];let q=Y.filter((K)=>K.type==="text").map((K)=>K.text).join(`
|
|
6847
6847
|
`);return fMQ(vMQ(q))}catch(Z){return b(`Failed to fetch Slack channels: ${Z}`),[]}}function vMQ(J){let Q=J.trim();if(!Q.startsWith("{"))return J;try{let X=CMQ().safeParse(c1(Q));if(X.success)return X.data.results}catch{}return J}function fMQ(J){let Q=[],X=new Set;for(let Z of J.split(`
|
|
6848
6848
|
`)){let Y=Z.match(/^Name:\s*#?([a-z0-9][a-z0-9_-]{0,79})\s*$/);if(Y&&!X.has(Y[1]))X.add(Y[1]),Q.push(Y[1])}return Q}function r81(J){return BAJ(J)!==void 0}function UAJ(){return zAJ}function FAJ(J){let Q=[],X=/(^|\s)#([a-z0-9][a-z0-9_-]{0,79})(?=\s|$)/g,Z;while((Z=X.exec(J))!==null){if(!n81.has(Z[2]))continue;let Y=Z.index+Z[1].length;Q.push({start:Y,end:Y+1+Z[2].length})}return Q}function SMQ(J){let Q=Math.max(J.lastIndexOf("-"),J.lastIndexOf("_"));return Q>0?J.slice(0,Q):J}function xMQ(J,Q){let X,Z=0;for(let[Y,q]of b40)if(J.startsWith(Y)&&Y.length>Z&&q.some((K)=>K.startsWith(Q)))X=q,Z=Y.length;return X}async function _AJ(J,Q){if(!Q)return[];let X=SMQ(Q),Z=Q.toLowerCase(),Y=b40.get(X)??xMQ(X,Z);if(!Y)if(i81===X&&iw0)Y=await iw0;else{i81=X,iw0=TMQ(J,X),Y=await iw0,b40.set(X,Y);let q=n81.size;for(let K of Y)n81.add(K);if(n81.size!==q)zAJ++,WAJ.emit();if(b40.size>50)b40.delete(b40.keys().next().value);if(i81===X)i81=null,iw0=null}return Y.filter((q)=>q.startsWith(Z)).sort().slice(0,10).map((q)=>({id:`slack-channel-${q}`,displayText:`#${q}`}))}var EMQ="slack_search_channels",b40,n81,zAJ=0,WAJ,HAJ,i81=null,iw0=null,CMQ;var Xe1=I(()=>{GAJ();Z1();i1();b40=new Map,n81=new Set,WAJ=PX(),HAJ=WAJ.subscribe;CMQ=k0(()=>D20.object({results:D20.string()}))});import{basename as kMQ}from"path";function OAJ(J){switch(J.type){case"file":return{id:`file-${J.path}`,displayText:J.displayText,description:J.description};case"mcp_resource":return{id:`mcp-resource-${J.server}__${J.uri}`,displayText:J.displayText,description:J.description};case"agent":return{id:`agent-${J.agentType}`,displayText:J.displayText,description:J.description,color:J.color}}}function LAJ(J){return x9(J,hMQ)}function uMQ(J,Q,X=!1){if(!Q&&!X)return[];try{let Z=J.map((q)=>({type:"agent",displayText:`${q.agentType} (agent)`,description:LAJ(q.whenToUse),agentType:q.agentType,color:EE(q.agentType)}));if(!Q)return Z;let Y=Q.toLowerCase();return Z.filter((q)=>q.agentType.toLowerCase().includes(Y)||q.displayText.toLowerCase().includes(Y))}catch(Z){return H0(Z),[]}}async function Ye1(J,Q,X,Z=!1){if(!J&&!Z)return[];let[Y,q]=await Promise.all([$i1(J,Z),Promise.resolve(uMQ(X,J,Z))]),K=Y.map((H)=>({type:"file",displayText:H.displayText,description:H.description,path:H.displayText,filename:kMQ(H.displayText),score:H.metadata?.score})),G=Object.values(Q).flat().map((H)=>({type:"mcp_resource",displayText:`${H.server}:${H.uri}`,description:LAJ(H.description||H.name||H.uri),server:H.server,uri:H.uri,name:H.name||H.uri}));if(!J)return[...K,...G,...q].slice(0,Ze1).map(OAJ);let z=[...G,...q],W=[];for(let H of K)W.push({source:H,score:H.score??0.5});if(z.length>0){let B=new ID(z,{includeScore:!0,threshold:0.6,keys:[{name:"displayText",weight:2},{name:"name",weight:3},{name:"server",weight:1},{name:"description",weight:1},{name:"agentType",weight:3}]}).search(J,{limit:Ze1});for(let U of B)W.push({source:U.item,score:U.score??0.5})}return W.sort((H,B)=>H.score-B.score),W.slice(0,Ze1).map((H)=>H.source).map(OAJ)}var Ze1=15,hMQ=60;var VAJ=I(()=>{rt1();cV0();mB();A6();M1()});function a81(J){return typeof J==="object"&&J!==null&&"type"in J&&(J.type==="directory"||J.type==="file")}function Ha(J,Q,X){if(X.length===0)return-1;if(Q<0)return 0;let Z=J[Q];if(!Z)return 0;let Y=X.findIndex((q)=>q.id===Z.id);return Y>=0?Y:0}function wAJ(J){let Q=J.metadata;return Q?.sessionId?`/resume ${Q.sessionId}`:`/resume ${J.displayText}`}function AAJ(J){if(J.isQuoted)return J.token.slice(2).replace(/"$/,"");else if(J.token.startsWith("@"))return J.token.substring(1);else return J.token}function Ke1(J){let{displayText:Q,mode:X,hasAtPrefix:Z,needsQuotes:Y,isQuoted:q,isComplete:K}=J,G=K?" ":"";if(q||Y)return X==="bash"?`"${Q}"${G}`:`@"${Q}"${G}`;else if(Z)return X==="bash"?`${Q}${G}`:`@${Q}${G}`;else return Q}function Ge1(J,Q,X,Z,Y,q){let z=Q.slice(0,X).lastIndexOf(" ")+1,W;if(q==="variable")W="$"+J.displayText+" ";else if(q==="command")W=J.displayText+" ";else W=J.displayText;let H=Q.slice(0,z)+W+Q.slice(X);Z(H),Y(z+W.length)}function o81(J,Q,X,Z,Y,q){let K=Q.slice(0,X).match(Z);if(!K||K.index===void 0)return;let G=K.index+(K[1]?.length??0),z=Q.slice(0,G),W=z+J.displayText+" "+Q.slice(X);Y(W),q(z.length+J.displayText.length+1)}async function dMQ(J,Q){try{if(s81)s81.abort();return s81=new AbortController,await CwJ(J,Q,s81.signal)}catch{return l("jarvis_api_error",{}),[]}}function MAJ(J,Q,X,Z,Y){let q=Y?"/":" ",K=J.slice(0,X),G=J.slice(X+Z),z="@"+Q+q;return{newInput:K+z+G,cursorPos:K.length+z.length}}function lC(J,Q,X=!1){if(!J)return null;let Z=J.substring(0,Q);if(X){let W=/@"([^"]*)"?$/,H=Z.match(W);if(H&&H.index!==void 0){let U=J.substring(Q).match(/^[^"]*"?/),F=U?U[0]:"";return{token:H[0]+F,startPos:H.index,isQuoted:!0}}}if(X){let W=Z.lastIndexOf("@");if(W>=0&&(W===0||/\s/.test(Z[W-1]))){let H=Z.substring(W),B=H.match(gMQ);if(B&&B[0].length===H.length){let F=J.substring(Q).match(NAJ),_=F?F[0]:"";return{token:B[0]+_,startPos:W,isQuoted:!1}}}}let Y=X?mMQ:pMQ,q=Z.match(Y);if(!q||q.index===void 0)return null;let G=J.substring(Q).match(NAJ),z=G?G[0]:"";return{token:q[0]+z,startPos:q.index,isQuoted:!1}}function lMQ(J){if(dC(J)){let Q=J.indexOf(" ");if(Q===-1)return{commandName:J.slice(1),args:""};return{commandName:J.slice(1,Q),args:J.slice(Q+1)}}return null}function DAJ(J,Q){return!J&&Q.includes(" ")&&!Q.endsWith(" ")}function $AJ({commands:J,onInputChange:Q,onSubmit:X,setCursorOffset:Z,input:Y,cursorOffset:q,mode:K,agents:G,setSuggestionsState:z,suggestionsState:{suggestions:W,selectedSuggestion:H,commandArgumentHint:B},suppressSuggestions:U=!1,markAccepted:F,onModeChange:_}){let{addNotification:O}=D9(),L=r9("chat:thinkingToggle","Chat","alt+t"),[N,A]=X4.useState("none"),R=X4.useMemo(()=>{let $0=J.filter((E0)=>!E0.isHidden);if($0.length===0)return;return Math.max(...$0.map((E0)=>lQ(E0).length))+6},[J]),[D,$]=X4.useState(void 0),y=O1(($0)=>$0.mcp.resources),v=aX(),E=O1(($0)=>$0.promptSuggestion),C=O1(($0)=>!!$0.viewingAgentTaskId),S=Gw(),[k,h]=X4.useState(void 0),u=X4.useMemo(()=>{if(K!=="prompt"||U)return;let $0=l81(Y,q);if(!$0)return;let w0=st1($0.partialCommand,J);if(!w0)return;return{text:w0.suffix,fullCommand:w0.fullCommand,insertPosition:$0.startPos+1+$0.partialCommand.length}},[Y,q,K,J,U]),x=U?void 0:K==="prompt"?u:k,m=X4.useRef(q);m.current=q;let p=X4.useRef(null),c=X4.useRef(""),r=X4.useRef(""),J0=X4.useRef(""),n=X4.useRef(""),s=X4.useRef(W);s.current=W;let X0=X4.useRef(null),Y0=X4.useCallback(()=>{z(()=>({commandArgumentHint:void 0,suggestions:[],selectedSuggestion:-1})),A("none"),$(void 0),h(void 0)},[z]),G0=X4.useCallback(async($0,w0=!1)=>{p.current=$0;let E0=await Ye1($0,y,G,w0);if(p.current!==$0)return;if(E0.length===0){z(()=>({commandArgumentHint:void 0,suggestions:[],selectedSuggestion:-1})),A("none"),$(void 0);return}z((h0)=>({commandArgumentHint:void 0,suggestions:E0,selectedSuggestion:Ha(h0.suggestions,h0.selectedSuggestion,E0)})),A(E0.length>0?"file":"none"),$(void 0)},[y,z,A,$,G]);X4.useEffect(()=>{return et0(),R7J(()=>{let $0=p.current;if($0!==null)p.current=null,G0($0,$0==="")})},[G0]);let j0=bd(G0,50),W0=X4.useCallback(async($0)=>{n.current=$0;let w0=await _AJ(v.getState().mcp.clients,$0);if(n.current!==$0)return;z((E0)=>({commandArgumentHint:void 0,suggestions:w0,selectedSuggestion:Ha(E0.suggestions,E0.selectedSuggestion,w0)})),A(w0.length>0?"slack-channel":"none"),$(void 0)},[z]),y0=bd(W0,150),V0=X4.useCallback(async($0,w0)=>{let E0=w0??m.current;if(U){j0.cancel(),Y0();return}if(K==="prompt"){let _0=l81($0,E0);if(_0){if(st1(_0.partialCommand,J)){z(()=>({commandArgumentHint:void 0,suggestions:[],selectedSuggestion:-1})),A("none"),$(void 0);return}}}if(K==="bash"&&$0.trim()){J0.current=$0;let _0=await KAJ($0);if(J0.current!==$0)return;if(_0){h({text:_0.suffix,fullCommand:_0.fullCommand,insertPosition:$0.length}),z(()=>({commandArgumentHint:void 0,suggestions:[],selectedSuggestion:-1})),A("none"),$(void 0);return}else h(void 0)}let h0=K!=="bash"?$0.substring(0,E0).match(/(^|\s)@([\w-]*)$/):null;if(h0){let _0=(h0[2]??"").toLowerCase(),M0=v.getState(),b0=[],L0=new Set;if(p6()&&M0.teamContext)for(let T0 of Object.values(M0.teamContext.teammates??{})){if(T0.name===KX)continue;if(!T0.name.toLowerCase().startsWith(_0))continue;L0.add(T0.name),b0.push({id:`dm-${T0.name}`,displayText:`@${T0.name}`,description:"send message"})}for(let[T0,S0]of M0.agentNameRegistry){if(L0.has(T0))continue;if(!T0.toLowerCase().startsWith(_0))continue;let g0=M0.tasks[S0]?.status;b0.push({id:`dm-${T0}`,displayText:`@${T0}`,description:g0?`send message \xB7 ${g0}`:"send message"})}if(b0.length>0){j0.cancel(),z((T0)=>({commandArgumentHint:void 0,suggestions:b0,selectedSuggestion:Ha(T0.suggestions,T0.selectedSuggestion,b0)})),A("agent"),$(void 0);return}}if(K==="prompt"){let _0=$0.substring(0,E0).match(qe1);if(_0&&r81(v.getState().mcp.clients)){y0(_0[2]);return}else if(N==="slack-channel")y0.cancel(),Y0()}let u0=$0.substring(0,E0).match(cMQ),B0=E0===$0.length&&E0>0&&$0.length>0&&$0[E0-1]===" ";if(K==="prompt"&&dC($0)&&E0>0){let _0=lMQ($0);if(_0&&_0.commandName==="add-dir"&&_0.args){let{args:M0}=_0;if(M0.match(/\s+$/)){j0.cancel(),Y0();return}let b0=await nt0(M0);if(b0.length>0){z((L0)=>({suggestions:b0,selectedSuggestion:Ha(L0.suggestions,L0.selectedSuggestion,b0),commandArgumentHint:void 0})),A("directory");return}j0.cancel(),Y0();return}if(_0&&_0.commandName==="resume"&&_0.args!==void 0&&$0.includes(" ")){let{args:M0}=_0,L0=(await ou(M0,{limit:10})).map((T0)=>{let S0=FY(T0);return{id:`resume-title-${S0}`,displayText:T0.customTitle,description:gq0(T0),metadata:{sessionId:S0}}});if(L0.length>0){z((T0)=>({suggestions:L0,selectedSuggestion:Ha(T0.suggestions,T0.selectedSuggestion,L0),commandArgumentHint:void 0})),A("custom-title");return}Y0();return}}if(K==="prompt"&&dC($0)&&E0>0&&!DAJ(B0,$0)){let _0=void 0;if($0.length>1){let b0=$0.indexOf(" "),L0=b0===-1?$0.slice(1):$0.slice(1,b0),T0=b0!==-1&&$0.slice(b0+1).trim().length>0,S0=b0!==-1&&$0.length===b0+1;if(b0!==-1){let g0=J.find((c0)=>lQ(c0)===L0);if(g0||T0){if(g0?.argumentHint&&S0)_0=g0.argumentHint;else if(g0?.type==="prompt"&&g0.argNames?.length&&$0.endsWith(" ")){let c0=$0.slice(b0+1),t0=WE1(c0);_0=yF6(g0.argNames,t0)}z(()=>({commandArgumentHint:_0,suggestions:[],selectedSuggestion:-1})),A("none"),$(void 0);return}}}let M0=tt1($0,J);if(z(()=>({commandArgumentHint:_0,suggestions:M0,selectedSuggestion:M0.length>0?0:-1})),A(M0.length>0?"command":"none"),M0.length>0)$(R);return}if(N==="command")j0.cancel(),Y0();else if(dC($0)&&DAJ(B0,$0))z((_0)=>_0.commandArgumentHint?{..._0,commandArgumentHint:void 0}:_0);if(N==="custom-title")Y0();if(N==="agent"&&s.current.some((_0)=>_0.id?.startsWith("dm-"))){if(!$0.substring(0,E0).match(/(^|\s)@([\w-]*)$/))Y0()}if(u0&&K!=="bash"){let _0=lC($0,E0,!0);if(_0&&_0.token.startsWith("@")){let M0=AAJ(_0);if(Q7J(M0)){r.current=M0;let b0=await X7J(M0,{maxResults:10});if(r.current!==M0)return;if(b0.length>0){z((L0)=>({suggestions:b0,selectedSuggestion:Ha(L0.suggestions,L0.selectedSuggestion,b0),commandArgumentHint:void 0})),A("directory");return}}if(p.current===M0)return;j0(M0,!0);return}}if(N==="file"){let _0=lC($0,E0,!0);if(_0){let M0=AAJ(_0);if(p.current===M0)return;j0(M0,!1)}else j0.cancel(),Y0()}if(N==="shell"){let _0=s.current[0]?.metadata?.inputSnapshot;if(K!=="bash"||$0!==_0)j0.cancel(),Y0()}},[N,J,z,Y0,j0,y0,K,U,R]);X4.useEffect(()=>{if(X0.current===Y)return;if(c.current!==Y)c.current=Y,p.current=null;X0.current=null,V0(Y)},[Y,V0]);let Z0=X4.useCallback(async()=>{if(x){if(K==="bash"){Q(x.fullCommand),Z(x.fullCommand.length),h(void 0);return}let $0=l81(Y,q);if($0){let w0=Y.slice(0,$0.startPos),E0=Y.slice($0.startPos+$0.token.length),h0=w0+"/"+x.fullCommand+" "+E0,u0=$0.startPos+1+x.fullCommand.length+1;Q(h0),Z(u0);return}}if(W.length>0){j0.cancel(),y0.cancel();let $0=H===-1?0:H,w0=W[$0];if(N==="command"&&$0<W.length){if(w0)et1(w0,!1,J,Q,Z,X),Y0()}else if(N==="custom-title"&&W.length>0){if(w0){let E0=wAJ(w0);Q(E0),Z(E0.length),Y0()}}else if(N==="directory"&&W.length>0){let E0=W[$0];if(E0){let h0=dC(Y),u0;if(h0){let B0=Y.indexOf(" "),_0=Y.slice(0,B0+1),M0=a81(E0.metadata)&&E0.metadata.type==="directory"?"/":" ";if(u0=_0+E0.id+M0,Q(u0),Z(u0.length),a81(E0.metadata)&&E0.metadata.type==="directory")z((b0)=>({...b0,commandArgumentHint:void 0})),V0(u0,u0.length);else Y0()}else{let _0=lC(Y,q,!0)??lC(Y,q,!1);if(_0){let M0=a81(E0.metadata)&&E0.metadata.type==="directory",b0=MAJ(Y,E0.id,_0.startPos,_0.token.length,M0);if(u0=b0.newInput,Q(u0),Z(b0.cursorPos),M0)z((L0)=>({...L0,commandArgumentHint:void 0})),V0(u0,b0.cursorPos);else Y0()}else Y0()}}}else if(N==="shell"&&W.length>0){let E0=W[$0];if(E0){let h0=E0.metadata;Ge1(E0,Y,q,Q,Z,h0?.completionType),Y0()}}else if(N==="agent"&&W.length>0&&W[$0]?.id?.startsWith("dm-")){let E0=W[$0];if(E0)o81(E0,Y,q,RAJ,Q,Z),Y0()}else if(N==="slack-channel"&&W.length>0){let E0=W[$0];if(E0)o81(E0,Y,q,qe1,Q,Z),Y0()}else if(N==="file"&&W.length>0){let E0=lC(Y,q,!0);if(!E0){Y0();return}let h0=j7J(W),u0=E0.token.startsWith("@"),B0;if(E0.isQuoted)B0=E0.token.slice(2).replace(/"$/,"").length;else if(u0)B0=E0.token.length-1;else B0=E0.token.length;if(h0.length>B0){let _0=Ke1({displayText:h0,mode:K,hasAtPrefix:u0,needsQuotes:!1,isQuoted:E0.isQuoted,isComplete:!1});Je0(_0,Y,E0.token,E0.startPos,Q,Z),V0(Y.replace(E0.token,_0),q)}else if($0<W.length){let _0=W[$0];if(_0){let M0=_0.displayText.includes(" "),b0=Ke1({displayText:_0.displayText,mode:K,hasAtPrefix:u0,needsQuotes:M0,isQuoted:E0.isQuoted,isComplete:!0});Je0(b0,Y,E0.token,E0.startPos,Q,Z),Y0()}}}}else if(Y.trim()!==""){let $0,w0;if(K==="bash"){$0="shell";let E0=await dMQ(Y,q);if(E0.length===1){let h0=E0[0];if(h0){let u0=h0.metadata;Ge1(h0,Y,q,Q,Z,u0?.completionType)}w0=[]}else w0=E0}else{$0="file";let E0=lC(Y,q,!0);if(E0){let h0=E0.token.startsWith("@"),u0=h0?E0.token.substring(1):E0.token;w0=await Ye1(u0,y,G,h0)}else w0=[]}if(w0.length>0)z((E0)=>({commandArgumentHint:void 0,suggestions:w0,selectedSuggestion:Ha(E0.suggestions,E0.selectedSuggestion,w0)})),A($0),$(void 0)}},[W,H,Y,N,J,K,Q,Z,X,Y0,q,V0,y,z,G,j0,y0,x]),t=X4.useCallback(()=>{if(H<0||W.length===0)return;let $0=W[H];if(N==="command"&&H<W.length){if($0)et1($0,!0,J,Q,Z,X),j0.cancel(),Y0()}else if(N==="custom-title"&&H<W.length){if($0){let w0=wAJ($0);Q(w0),Z(w0.length),X(w0,!0),j0.cancel(),Y0()}}else if(N==="shell"&&H<W.length){let w0=W[H];if(w0){let E0=w0.metadata;Ge1(w0,Y,q,Q,Z,E0?.completionType),j0.cancel(),Y0()}}else if(N==="agent"&&H<W.length&&$0?.id?.startsWith("dm-"))o81($0,Y,q,RAJ,Q,Z),j0.cancel(),Y0();else if(N==="slack-channel"&&H<W.length){if($0)o81($0,Y,q,qe1,Q,Z),y0.cancel(),Y0()}else if(N==="file"&&H<W.length){let w0=lC(Y,q,!0);if(w0){if($0){let E0=w0.token.startsWith("@"),h0=$0.displayText.includes(" "),u0=Ke1({displayText:$0.displayText,mode:K,hasAtPrefix:E0,needsQuotes:h0,isQuoted:w0.isQuoted,isComplete:!0});Je0(u0,Y,w0.token,w0.startPos,Q,Z),j0.cancel(),Y0()}}}else if(N==="directory"&&H<W.length){if($0){if(dC(Y)){j0.cancel(),Y0();return}let E0=lC(Y,q,!0)??lC(Y,q,!1);if(E0){let h0=a81($0.metadata)&&$0.metadata.type==="directory",u0=MAJ(Y,$0.id,E0.startPos,E0.token.length,h0);Q(u0.newInput),Z(u0.cursorPos)}j0.cancel(),Y0()}}},[W,H,N,J,Y,q,K,Q,Z,X,Y0,j0,y0]),q0=X4.useCallback(()=>{Z0()},[Z0]),Q0=X4.useCallback(()=>{j0.cancel(),y0.cancel(),Y0(),X0.current=Y},[j0,y0,Y0,Y]),a=X4.useCallback(()=>{z(($0)=>({...$0,selectedSuggestion:$0.selectedSuggestion<=0?W.length-1:$0.selectedSuggestion-1}))},[W.length,z]),O0=X4.useCallback(()=>{z(($0)=>({...$0,selectedSuggestion:$0.selectedSuggestion>=W.length-1?0:$0.selectedSuggestion+1}))},[W.length,z]),D0=X4.useMemo(()=>({"autocomplete:accept":q0,"autocomplete:dismiss":Q0,"autocomplete:previous":a,"autocomplete:next":O0}),[q0,Q0,a,O0]),F0=W.length>0||!!x,I0=tQ0();WW("autocomplete",F0),op0("Autocomplete",F0),C6(D0,{context:"Autocomplete",isActive:F0&&!I0});function U0($0){let w0=CL($0);if(w0!=="prompt"&&_){_(w0);let E0=qD($0);Q(E0),Z(E0.length)}else Q($0),Z($0.length)}let P0=($0)=>{if($0.key==="right"&&!C){let{text:E0,shownAt:h0}=E;if(E0&&h0>0&&Y===""){F(),U0(E0),$0.stopImmediatePropagation();return}}if($0.key==="tab"&&!$0.shift){if(W.length>0||x)return;let{text:E0,shownAt:h0}=E;if(E0&&h0>0&&Y===""&&!C){$0.preventDefault(),F(),U0(E0);return}if(Y.trim()==="")$0.preventDefault(),O({key:"thinking-toggle-hint",jsx:jAJ.jsxDEV(M,{dimColor:!0,children:["Use ",L," to toggle thinking"]},void 0,!0,void 0,this),priority:"immediate",timeoutMs:3000});return}if(W.length===0)return;let w0=S?.pendingChord!=null;if($0.ctrl&&$0.key==="n"&&!w0){$0.preventDefault(),O0();return}if($0.ctrl&&$0.key==="p"&&!w0){$0.preventDefault(),a();return}if($0.key==="return"&&!$0.shift&&!$0.meta)$0.preventDefault(),t()};return SJ(($0,w0,E0)=>{let h0=new vR(E0.keypress);if(P0(h0),h0.didStopImmediatePropagation())E0.stopImmediatePropagation()}),{suggestions:W,selectedSuggestion:H,suggestionType:N,maxColumnWidth:D,commandArgumentHint:B,inlineGhostText:x,handleKeyDown:P0}}var X4,jAJ,gMQ,NAJ,mMQ,pMQ,cMQ,qe1,RAJ,s81=null;var IAJ=I(()=>{UY();a0();D1();dO();PY();F_();f10();a0();uE();f6();nz();W6();lZ();bU0();vwJ();A6();gJ();Je1();zi1();Qe1();Xe1();cV0();VAJ();X4=T(J1(),1),jAJ=T(e(),1),gMQ=/^@[\p{L}\p{N}\p{M}_\-./\\()[\]~:]*/u,NAJ=/^[\p{L}\p{N}\p{M}_\-./\\()[\]~:]+/u,mMQ=/(@[\p{L}\p{N}\p{M}_\-./\\()[\]~:]*|[\p{L}\p{N}\p{M}_\-./\\()[\]~:]+)$/u,pMQ=/[\p{L}\p{N}\p{M}_\-./\\()[\]~:]+$/u,cMQ=/(^|\s)@([\p{L}\p{N}\p{M}_\-./\\()[\]~:]*|"[^"]*"?)$/u,qe1=/(^|\s)#([a-z0-9][a-z0-9_-]*)$/;RAJ=/(^|\s)@[\w-]*$/});function yAJ(J){let Q=J.match(/^@([\w-]+)\s+(.+)$/s);if(!Q)return null;let[,X,Z]=Q;if(!X||!Z)return null;let Y=Z.trim();if(!Y)return null;return{recipientName:X,message:Y}}async function bAJ(J,Q,X,Z){if(!X||!Z)return{success:!1,error:"no_team_context"};if(!Object.values(X.teammates??{}).find((q)=>q.name===J))return{success:!1,error:"unknown_recipient",recipientName:J};return await Z(J,{from:"user",text:Q,timestamp:new Date().toISOString()},X.teamName),{success:!0,recipientName:J}}function PAJ(J){return J in ze1}var ze1;var EAJ=I(()=>{ze1={"\u2020":"alt+t",\u{3c0}:"alt+p",\u{f8}:"alt+o"}});function We1(J){return!1}function Ba(J,Q){switch(J.mode){case"default":if(process.env.USER_TYPE==="ant"){if(J.isBypassPermissionsModeAvailable)return"bypassPermissions";if(We1(J))return"auto";return"default"}return"acceptEdits";case"acceptEdits":return"plan";case"plan":if(J.isBypassPermissionsModeAvailable)return"bypassPermissions";if(We1(J))return"auto";return"default";case"bypassPermissions":if(We1(J))return"auto";return"default";case"dontAsk":return"default";default:return"default"}}function TAJ(J,Q){let X=Ba(J,Q);return{nextMode:X,context:Mt0(J.mode,X,J)}}var He1=I(()=>{Z1();JW()});function CAJ(J){let Q=[],X=J.matchAll(iMQ);for(let Z of X)if(Z.index!==void 0)Q.push({word:Z[0],start:Z.index,end:Z.index+Z[0].length});return Q}async function vAJ({question:J,cacheSafeParams:Q}){let X=`<system-reminder>This is a side question from the user. You must answer this question directly in a single response.
|
|
@@ -6890,7 +6890,7 @@ ${J}`,Z=await C2({promptMessages:[$1({content:X})],cacheSafeParams:Q,canUseTool:
|
|
|
6890
6890
|
`))q=q+`
|
|
6891
6891
|
`;if(Z.setRegister(q,Y),J==="yank")Z.setOffset(Q);else if(J==="delete"){let K=Z.text.slice(0,Q)+Z.text.slice(X);Z.setText(K);let G=Math.max(0,K.length-(Gb(K).length||1));Z.setOffset(Math.min(Q,G))}else if(J==="change"){let K=Z.text.slice(0,Q)+Z.text.slice(X);Z.setText(K),Z.enterInsert(Q)}}function qRJ(J,Q,X){let Z=Q===1?X.cursor.startOfLastLine():X.cursor.goToLine(Q);if(Z.equals(X.cursor))return;let Y=Re1(X.cursor,Z,"G",J,Q);aw0(J,Y.from,Y.to,X,Y.linewise),X.recordChange({type:"operator",op:J,motion:"G",count:Q})}function KRJ(J,Q,X){let Z=Q===1?X.cursor.startOfFirstLine():X.cursor.goToLine(Q);if(Z.equals(X.cursor))return;let Y=Re1(X.cursor,Z,"gg",J,Q);aw0(J,Y.from,Y.to,X,Y.linewise),X.recordChange({type:"operator",op:J,motion:"gg",count:Q})}var Me1=I(()=>{un();GO();ZRJ()});function GRJ(J){return J in De1}function zRJ(J){return J in Ie1}function HRJ(){return{mode:"INSERT",insertedText:""}}function BRJ(){return{lastChange:null,lastFind:null,register:"",registerIsLinewise:!1}}var De1,$e1,je1,Ie1,WRJ,ye1=1e4;var be1=I(()=>{De1={d:"delete",c:"change",y:"yank"};$e1=new Set(["h","l","j","k","w","b","e","W","B","E","0","^","$"]),je1=new Set(["f","F","t","T"]),Ie1={i:"inner",a:"around"};WRJ=new Set(["w","W",'"',"'","`","(",")","b","[","]","{","}","B","<",">"])});function URJ(J,Q,X){switch(J.type){case"idle":return MDQ(Q,X);case"count":return DDQ(J,Q,X);case"operator":return $DQ(J,Q,X);case"operatorCount":return jDQ(J,Q,X);case"operatorFind":return IDQ(J,Q,X);case"operatorTextObj":return yDQ(J,Q,X);case"find":return bDQ(J,Q,X);case"g":return PDQ(J,Q,X);case"operatorG":return EDQ(J,Q,X);case"replace":return TDQ(J,Q,X);case"indent":return CDQ(J,Q,X)}}function FRJ(J,Q,X){if(GRJ(J))return{next:{type:"operator",op:De1[J],count:Q}};if($e1.has(J))return{execute:()=>{let Z=nw0(J,X.cursor,Q);X.setOffset(Z.offset)}};if(je1.has(J))return{next:{type:"find",find:J,count:Q}};if(J==="g")return{next:{type:"g",count:Q}};if(J==="r")return{next:{type:"replace",count:Q}};if(J===">"||J==="<")return{next:{type:"indent",dir:J,count:Q}};if(J==="~")return{execute:()=>G61(Q,X)};if(J==="x")return{execute:()=>q61(Q,X)};if(J==="J")return{execute:()=>z61(Q,X)};if(J==="p"||J==="P")return{execute:()=>YRJ(J==="p",Q,X)};if(J==="D")return{execute:()=>Ua("delete","$",1,X)};if(J==="C")return{execute:()=>Ua("change","$",1,X)};if(J==="Y")return{execute:()=>Ae1("yank",Q,X)};if(J==="G")return{execute:()=>{if(Q===1)X.setOffset(X.cursor.startOfLastLine().offset);else X.setOffset(X.cursor.goToLine(Q).offset)}};if(J===".")return{execute:()=>X.onDotRepeat?.()};if(J===";"||J===",")return{execute:()=>vDQ(J===",",Q,X)};if(J==="u")return{execute:()=>X.onUndo?.()};if(J==="i")return{execute:()=>X.enterInsert(X.cursor.offset)};if(J==="I")return{execute:()=>X.enterInsert(X.cursor.firstNonBlankInLogicalLine().offset)};if(J==="a")return{execute:()=>{let Z=X.cursor.isAtEnd()?X.cursor.offset:X.cursor.right().offset;X.enterInsert(Z)}};if(J==="A")return{execute:()=>X.enterInsert(X.cursor.endOfLogicalLine().offset)};if(J==="o")return{execute:()=>rw0("below",X)};if(J==="O")return{execute:()=>rw0("above",X)};return null}function _RJ(J,Q,X,Z){if(zRJ(X))return{next:{type:"operatorTextObj",op:J,count:Q,scope:Ie1[X]}};if(je1.has(X))return{next:{type:"operatorFind",op:J,count:Q,find:X}};if($e1.has(X))return{execute:()=>Ua(J,X,Q,Z)};if(X==="G")return{execute:()=>qRJ(J,Q,Z)};if(X==="g")return{next:{type:"operatorG",op:J,count:Q}};return null}function MDQ(J,Q){if(/[1-9]/.test(J))return{next:{type:"count",digits:J}};if(J==="0")return{execute:()=>Q.setOffset(Q.cursor.startOfLogicalLine().offset)};let X=FRJ(J,1,Q);if(X)return X;return{}}function DDQ(J,Q,X){if(/[0-9]/.test(Q)){let q=J.digits+Q,K=Math.min(parseInt(q,10),ye1);return{next:{type:"count",digits:String(K)}}}let Z=parseInt(J.digits,10),Y=FRJ(Q,Z,X);if(Y)return Y;return{next:{type:"idle"}}}function $DQ(J,Q,X){if(Q===J.op[0])return{execute:()=>Ae1(J.op,J.count,X)};if(/[0-9]/.test(Q))return{next:{type:"operatorCount",op:J.op,count:J.count,digits:Q}};let Z=_RJ(J.op,J.count,Q,X);if(Z)return Z;return{next:{type:"idle"}}}function jDQ(J,Q,X){if(/[0-9]/.test(Q)){let K=J.digits+Q,G=Math.min(parseInt(K,10),ye1);return{next:{...J,digits:String(G)}}}let Z=parseInt(J.digits,10),Y=J.count*Z,q=_RJ(J.op,Y,Q,X);if(q)return q;return{next:{type:"idle"}}}function IDQ(J,Q,X){return{execute:()=>Z61(J.op,J.find,Q,J.count,X)}}function yDQ(J,Q,X){if(WRJ.has(Q))return{execute:()=>Y61(J.op,J.scope,Q,J.count,X)};return{next:{type:"idle"}}}function bDQ(J,Q,X){return{execute:()=>{let Z=X.cursor.findCharacter(Q,J.find,J.count);if(Z!==null)X.setOffset(Z),X.setLastFind(J.find,Q)}}}function PDQ(J,Q,X){if(Q==="j"||Q==="k")return{execute:()=>{let Z=nw0(`g${Q}`,X.cursor,J.count);X.setOffset(Z.offset)}};if(Q==="g"){if(J.count>1)return{execute:()=>{let Z=X.text.split(`
|
|
6892
6892
|
`),Y=Math.min(J.count-1,Z.length-1),q=0;for(let K=0;K<Y;K++)q+=(Z[K]?.length??0)+1;X.setOffset(q)}};return{execute:()=>X.setOffset(X.cursor.startOfFirstLine().offset)}}return{next:{type:"idle"}}}function EDQ(J,Q,X){if(Q==="j"||Q==="k")return{execute:()=>Ua(J.op,`g${Q}`,J.count,X)};if(Q==="g")return{execute:()=>KRJ(J.op,J.count,X)};return{next:{type:"idle"}}}function TDQ(J,Q,X){if(Q==="")return{next:{type:"idle"}};return{execute:()=>K61(Q,J.count,X)}}function CDQ(J,Q,X){if(Q===J.dir)return{execute:()=>W61(J.dir,J.count,X)};return{next:{type:"idle"}}}function vDQ(J,Q,X){let Z=X.getLastFind();if(!Z)return;let Y=Z.type;if(J)Y={f:"F",F:"f",t:"T",T:"t"}[Y];let q=X.cursor.findCharacter(Z.char,Y,Q);if(q!==null)X.setOffset(q)}var ORJ=I(()=>{Me1();be1()});function LRJ(J){let Q=iC.default.useRef(HRJ()),[X,Z]=iC.useState("INSERT"),Y=iC.default.useRef(BRJ()),q=mo0({...J,inputFilter:void 0}),{onModeChange:K,inputFilter:G}=J,z=iC.useCallback((_)=>{if(_!==void 0)q.setOffset(_);Q.current={mode:"INSERT",insertedText:""},Z("INSERT"),K?.("INSERT")},[q,K]),W=iC.useCallback(()=>{let _=Q.current;if(_.mode==="INSERT"&&_.insertedText)Y.current.lastChange={type:"insert",text:_.insertedText};let O=q.offset;if(O>0&&J.value[O-1]!==`
|
|
6893
|
-
`)q.setOffset(O-1);Q.current={mode:"NORMAL",command:{type:"idle"}},Z("NORMAL"),K?.("NORMAL")},[K,q,J.value]);function H(_,O=!1){return{cursor:_,text:J.value,setText:(L)=>J.onChange(L),setOffset:(L)=>q.setOffset(L),enterInsert:(L)=>z(L),getRegister:()=>Y.current.register,setRegister:(L,N)=>{Y.current.register=L,Y.current.registerIsLinewise=N},getLastFind:()=>Y.current.lastFind,setLastFind:(L,N)=>{Y.current.lastFind={type:L,char:N}},recordChange:O?()=>{}:(L)=>{Y.current.lastChange=L}}}function B(){let _=Y.current.lastChange;if(!_)return;let O=$9.fromText(J.value,J.columns,q.offset),L=H(O,!0);switch(_.type){case"insert":if(_.text){let N=O.insert(_.text);J.onChange(N.text),q.setOffset(N.offset)}break;case"x":q61(_.count,L);break;case"replace":K61(_.char,_.count,L);break;case"toggleCase":G61(_.count,L);break;case"indent":W61(_.dir,_.count,L);break;case"join":z61(_.count,L);break;case"openLine":rw0(_.direction,L);break;case"operator":Ua(_.op,_.motion,_.count,L);break;case"operatorFind":Z61(_.op,_.find,_.char,_.count,L);break;case"operatorTextObj":Y61(_.op,_.scope,_.objType,_.count,L);break}}function U(_,O){let L=Q.current,N=G?G(_,O):_,A=L.mode==="INSERT"?N:_,R=$9.fromText(J.value,J.columns,q.offset);if(O.ctrl){q.onInput(A,O);return}if(O.escape&&L.mode==="INSERT"){W();return}if(O.escape&&L.mode==="NORMAL"){Q.current={mode:"NORMAL",command:{type:"idle"}};return}if(O.return){q.onInput(A,O);return}if(L.mode==="INSERT"){if(O.backspace||O.delete){if(L.insertedText.length>0)Q.current={mode:"INSERT",insertedText:L.insertedText.slice(0,-(Gb(L.insertedText).length||1))}}else Q.current={mode:"INSERT",insertedText:L.insertedText+A};q.onInput(A,O);return}if(L.mode!=="NORMAL")return;if(L.command.type==="idle"&&(O.upArrow||O.downArrow||O.leftArrow||O.rightArrow)){q.onInput(A,O);return}let D={...H(R,!1),onUndo:J.onUndo,onDotRepeat:B},$=L.command.type==="idle"||L.command.type==="count"||L.command.type==="operator"||L.command.type==="operatorCount",y=A;if(O.leftArrow)y="h";else if(O.rightArrow)y="l";else if(O.upArrow)y="k";else if(O.downArrow)y="j";else if($&&O.backspace)y="h";else if($&&L.command.type!=="count"&&O.delete)y="x";let v=URJ(L.command,y,D);if(v.execute)v.execute();if(Q.current.mode==="NORMAL"){if(v.next)Q.current={mode:"NORMAL",command:v.next};else if(v.execute)Q.current={mode:"NORMAL",command:{type:"idle"}}}if(A==="?"&&L.mode==="NORMAL"&&L.command.type==="idle")J.onChange("?")}let F=iC.useCallback((_)=>{if(_==="INSERT")Q.current={mode:"INSERT",insertedText:""};else Q.current={mode:"NORMAL",command:{type:"idle"}};Z(_),K?.(_)},[K]);return{...q,onInput:U,mode:X,setMode:F}}var iC;var VRJ=I(()=>{un();GO();Me1();ORJ();be1();pp1();iC=T(J1(),1)});function Ee1(J){let Q=NRJ.c(38),[X]=j6(),Z=X5();Mo0(Z,!!J.onImagePaste);let{value:Y,onChange:q,onSubmit:K,onExit:G,onExitMessage:z,onHistoryReset:W,onHistoryUp:H,onHistoryDown:B,onClearInput:U,focus:F,mask:_,multiline:O}=J,L=J.showCursor?" ":"",N=J.highlightPastedText,A=Z?_1.inverse:fDQ,R;if(Q[0]!==X)R=G6("text",X),Q[0]=X,Q[1]=R;else R=Q[1];let D;if(Q[2]!==J.columns||Q[3]!==J.cursorOffset||Q[4]!==J.disableCursorMovementForUpDownKeys||Q[5]!==J.disableEscapeDoublePress||Q[6]!==J.focus||Q[7]!==J.highlightPastedText||Q[8]!==J.inputFilter||Q[9]!==J.mask||Q[10]!==J.maxVisibleLines||Q[11]!==J.multiline||Q[12]!==J.onChange||Q[13]!==J.onChangeCursorOffset||Q[14]!==J.onClearInput||Q[15]!==J.onExit||Q[16]!==J.onExitMessage||Q[17]!==J.onHistoryDown||Q[18]!==J.onHistoryReset||Q[19]!==J.onHistoryUp||Q[20]!==J.onImagePaste||Q[21]!==J.onModeChange||Q[22]!==J.onSubmit||Q[23]!==J.onUndo||Q[24]!==J.value||Q[25]!==L||Q[26]!==A||Q[27]!==R)D={value:Y,onChange:q,onSubmit:K,onExit:G,onExitMessage:z,onHistoryReset:W,onHistoryUp:H,onHistoryDown:B,onClearInput:U,focus:F,mask:_,multiline:O,cursorChar:L,highlightPastedText:N,invert:A,themeText:R,columns:J.columns,maxVisibleLines:J.maxVisibleLines,onImagePaste:J.onImagePaste,disableCursorMovementForUpDownKeys:J.disableCursorMovementForUpDownKeys,disableEscapeDoublePress:J.disableEscapeDoublePress,externalOffset:J.cursorOffset,onOffsetChange:J.onChangeCursorOffset,inputFilter:J.inputFilter,onModeChange:J.onModeChange,onUndo:J.onUndo},Q[2]=J.columns,Q[3]=J.cursorOffset,Q[4]=J.disableCursorMovementForUpDownKeys,Q[5]=J.disableEscapeDoublePress,Q[6]=J.focus,Q[7]=J.highlightPastedText,Q[8]=J.inputFilter,Q[9]=J.mask,Q[10]=J.maxVisibleLines,Q[11]=J.multiline,Q[12]=J.onChange,Q[13]=J.onChangeCursorOffset,Q[14]=J.onClearInput,Q[15]=J.onExit,Q[16]=J.onExitMessage,Q[17]=J.onHistoryDown,Q[18]=J.onHistoryReset,Q[19]=J.onHistoryUp,Q[20]=J.onImagePaste,Q[21]=J.onModeChange,Q[22]=J.onSubmit,Q[23]=J.onUndo,Q[24]=J.value,Q[25]=L,Q[26]=A,Q[27]=R,Q[28]=D;else D=Q[28];let $=LRJ(D),{mode:y,setMode:v}=$,E,C;if(Q[29]!==y||Q[30]!==J.initialMode||Q[31]!==v)E=()=>{if(J.initialMode&&J.initialMode!==y)v(J.initialMode)},C=[J.initialMode,y,v],Q[29]=y,Q[30]=J.initialMode,Q[31]=v,Q[32]=E,Q[33]=C;else E=Q[32],C=Q[33];wRJ.default.useEffect(E,C);let S;if(Q[34]!==Z||Q[35]!==J||Q[36]!==$)S=Pe1.jsxDEV(f,{flexDirection:"column",children:Pe1.jsxDEV(co0,{inputState:$,terminalFocus:Z,highlights:J.highlights,...J},void 0,!1,void 0,this)},void 0,!1,void 0,this),Q[34]=Z,Q[35]=J,Q[36]=$,Q[37]=S;else S=Q[37];return S}function fDQ(J){return J}var NRJ,wRJ,Pe1;var ARJ=I(()=>{k7();Ap1();VRJ();a0();cp1();NRJ=T(e0(),1),wRJ=T(J1(),1),Pe1=T(e(),1)});function Te1(J){return J?.statusLine!==void 0}function SDQ(J,Q,X,Z,Y,q,K){let G=Z$(),z=yq(),W=i$({permissionMode:J,mainLoopModel:q,exceeds200kTokens:Q}),H=X?.outputStyle||F2,B=Sg0(Z),U=J2(W,$3()),F=Nf0(B,U),_=A1(),O=kw(_),L=On6(),N={...L.five_hour&&{five_hour:{used_percentage:L.five_hour.utilization*100,resets_at:L.five_hour.resets_at}},...L.seven_day&&{seven_day:{used_percentage:L.seven_day.utilization*100,resets_at:L.seven_day.resets_at}}};return{...kZ(),...O&&{session_name:O},model:{id:W,display_name:zG(W)},workspace:{current_dir:B1(),project_dir:j8(),added_dirs:Y},version:"0.1.16",output_style:{name:H},cost:{total_cost_usd:D3(),total_duration_ms:oo(),total_api_duration_ms:e_(),total_lines_added:hm(),total_lines_removed:um()},context_window:{total_input_tokens:PV(),total_output_tokens:gm(),context_window_size:U,current_usage:B,used_percentage:F.used,remaining_percentage:F.remaining},exceeds_200k_tokens:Q,...(N.five_hour||N.seven_day)&&{rate_limits:N},...MC()&&{vim:{mode:K??"INSERT"}},...G&&{agent:{name:G}},...S9()&&{remote:{session_id:A1()}},...z&&{worktree:{name:z.worktreeName,path:z.worktreePath,branch:z.worktreeBranch,original_cwd:z.originalCwd,original_branch:z.originalBranch}}}}function Ce1(J){return nB(J)?.uuid??null}function xDQ({messagesRef:J,lastAssistantMessageId:Q,vimMode:X}){let Z=DG.useRef(void 0),Y=O1((E)=>E.toolPermissionContext.mode),q=O1((E)=>E.toolPermissionContext.additionalWorkingDirectories),K=O1((E)=>E.statusLineText),G=T6(),z=CK(),{addNotification:W}=D9(),H=Ky(),B=DG.useRef(z);B.current=z;let U=DG.useRef(X);U.current=X;let F=DG.useRef(Y);F.current=Y;let _=DG.useRef(q);_.current=q;let O=DG.useRef(H);O.current=H;let L=DG.useRef({messageId:null,exceeds200kTokens:!1,permissionMode:Y,vimMode:X,mainLoopModel:H}),N=DG.useRef(void 0),A=DG.useRef(!0),R=DG.useCallback(async()=>{Z.current?.abort();let E=new AbortController;Z.current=E;let C=J.current,S=A.current;A.current=!1;try{let k=L.current.exceeds200kTokens,h=Ce1(C);if(h!==L.current.messageId)k=xg0(C),L.current.messageId=h,L.current.exceeds200kTokens=k;let u=SDQ(F.current,k,B.current,C,Array.from(_.current.keys()),O.current,U.current),x=await il1(u,E.signal,void 0,S);if(!E.signal.aborted)G((m)=>{if(m.statusLineText===x)return m;return{...m,statusLineText:x}})}catch{}},[J,G]),D=DG.useCallback(()=>{if(N.current!==void 0)clearTimeout(N.current);N.current=setTimeout((E,C)=>{E.current=void 0,C()},300,N,R)},[R]);DG.useEffect(()=>{if(Q!==L.current.messageId||Y!==L.current.permissionMode||X!==L.current.vimMode||H!==L.current.mainLoopModel)L.current.permissionMode=Y,L.current.vimMode=X,L.current.mainLoopModel=H,D()},[Q,Y,X,H,D]);let $=z?.statusLine?.command,y=DG.useRef(!0);DG.useEffect(()=>{if(y.current){y.current=!1;return}A.current=!0,R()},[$,R]),DG.useEffect(()=>{let E=z?.statusLine;if(E){if(l("jarvis_api_error",{command_length:E.command.length,padding:E.padding}),z.disableAllHooks===!0)b("Status line is configured but disableAllHooks is true",{level:"warn"});if(!qG())W({key:"statusline-trust-blocked",text:"statusline skipped \xB7 restart to fix",color:"warning",priority:"low"}),b("Status line command skipped: workspace trust not accepted",{level:"warn"})}},[]),DG.useEffect(()=>{return R(),()=>{if(Z.current?.abort(),N.current!==void 0)clearTimeout(N.current)}},[]);let v=z?.statusLine?.padding??0;return ow0.jsxDEV(f,{paddingX:v,gap:2,children:K?ow0.jsxDEV(M,{dimColor:!0,wrap:"truncate",children:ow0.jsxDEV(C9,{children:K},void 0,!1,void 0,this)},void 0,!1,void 0,this):yJ()?ow0.jsxDEV(M,{children:" "},void 0,!1,void 0,this):null},void 0,!1,void 0,this)}var DG,ow0,RRJ;var MRJ=I(()=>{D1();W6();N1();Vj();UY();JI();rZ0();ww();a0();fn();m8();lW();Z6();Z1();fz();N4();M8();CJ();gJ();hB();__();YZ0();DG=T(J1(),1),ow0=T(e(),1);RRJ=DG.memo(xDQ)});function DRJ(J,Q,X,Z,Y=!0){let q=J.length;if(q===0)return{startIndex:0,endIndex:0,showLeftArrow:!1,showRightArrow:!1};let K=Math.max(0,Math.min(Z,q-1));if(J.reduce((F,_)=>F+_,0)<=Q)return{startIndex:0,endIndex:q,showLeftArrow:!1,showRightArrow:!1};let z=[0];for(let F=0;F<q;F++)z.push(z[F]+J[F]);function W(F,_){let O=z[_]-z[F];if(Y&&F>0)return O-1;return O}function H(F,_){let O=Q;if(F>0)O-=X;if(_<q)O-=X;return O}let B=0,U=1;while(U<q&&W(B,U+1)<=H(B,U+1))U++;if(K>=B&&K<U)return{startIndex:B,endIndex:U,showLeftArrow:B>0,showRightArrow:U<q};if(K>=U){U=K+1,B=K;while(B>0&&W(B-1,U)<=H(B-1,U))B--}else{B=K,U=K+1;while(U<q&&W(B,U+1)<=H(B,U+1))U++}return{startIndex:B,endIndex:U,showLeftArrow:B>0,showRightArrow:U<q}}function fe1(J){let Q=B61.c(48),{tasksSelected:X,isViewingTeammate:Z,teammateFooterIndex:Y,isLeaderIdle:q,onOpenDialog:K}=J,G=Y===void 0?0:Y,z=q===void 0?!1:q,W=T6(),{columns:H}=l8(),B=O1(nDQ),U=O1(iDQ),F;if(Q[0]!==B)F=Object.values(B??{}).filter(lDQ),Q[0]=B,Q[1]=F;else F=Q[1];let _=F,L=O1(dDQ)==="teammates",N=!L&&_.length>0&&_.every(cDQ),A;if(Q[2]!==_)A=_.filter(pDQ).sort(mDQ),Q[2]=_,Q[3]=A;else A=Q[3];let R=A,D;if(Q[4]!==z)D={name:"main",color:void 0,isIdle:z,taskId:void 0},Q[4]=z,Q[5]=D;else D=Q[5];let $=D,y;if(Q[6]!==$||Q[7]!==X||Q[8]!==R){let x=R.map(gDQ);if(!X)x.sort(uDQ);y=[$,...x].map(hDQ),Q[6]=$,Q[7]=X,Q[8]=R,Q[9]=y}else y=Q[9];let v=y,E;if(Q[10]!==v)E=v.map(kDQ),Q[10]=v,Q[11]=E;else E=Q[11];let C=E;if(N||!L&&Z){let x=X?G:-1,m;if(Q[12]!==R||Q[13]!==U)m=U?R.findIndex((q0)=>q0.id===U)+1:0,Q[12]=R,Q[13]=U,Q[14]=m;else m=Q[14];let p=m,c=Math.max(20,H-20-4),r=x>=0?x:0,J0;if(Q[15]!==c||Q[16]!==C||Q[17]!==r)J0=DRJ(C,c,2,r),Q[15]=c,Q[16]=C,Q[17]=r,Q[18]=J0;else J0=Q[18];let{startIndex:n,endIndex:s,showLeftArrow:X0,showRightArrow:Y0}=J0,G0;if(Q[19]!==v||Q[20]!==s||Q[21]!==n)G0=v.slice(n,s),Q[19]=v,Q[20]=s,Q[21]=n,Q[22]=G0;else G0=Q[22];let j0=G0,W0;if(Q[23]!==X0)W0=X0&&HK.jsxDEV(M,{dimColor:!0,children:[s0.arrowLeft," "]},void 0,!0,void 0,this),Q[23]=X0,Q[24]=W0;else W0=Q[24];let y0;if(Q[25]!==x||Q[26]!==W||Q[27]!==p||Q[28]!==j0)y0=j0.map((q0,Q0)=>{let a=Q0>0;return HK.jsxDEV($RJ.Fragment,{children:[a&&HK.jsxDEV(M,{children:" "},void 0,!1,void 0,this),HK.jsxDEV(rDQ,{name:q0.name,color:q0.color,isSelected:x===q0.idx,isViewed:p===q0.idx,isIdle:q0.isIdle,onClick:()=>q0.taskId?ZA(q0.taskId,W):pH(W)},void 0,!1,void 0,this)]},q0.name,!0,void 0,this)}),Q[25]=x,Q[26]=W,Q[27]=p,Q[28]=j0,Q[29]=y0;else y0=Q[29];let V0;if(Q[30]!==Y0)V0=Y0&&HK.jsxDEV(M,{dimColor:!0,children:[" ",s0.arrowRight]},void 0,!0,void 0,this),Q[30]=Y0,Q[31]=V0;else V0=Q[31];let Z0;if(Q[32]===Symbol.for("react.memo_cache_sentinel"))Z0=HK.jsxDEV(M,{dimColor:!0,children:[" \xB7 ",HK.jsxDEV(p1,{shortcut:"shift + \u2193",action:"expand"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),Q[32]=Z0;else Z0=Q[32];let t;if(Q[33]!==W0||Q[34]!==y0||Q[35]!==V0)t=HK.jsxDEV(HK.Fragment,{children:[W0,y0,V0,Z0]},void 0,!0,void 0,this),Q[33]=W0,Q[34]=y0,Q[35]=V0,Q[36]=t;else t=Q[36];return t}if(fZ0(B??{},L))return null;if(_.length===0)return null;let S;if(Q[37]!==_)S=Un0(_),Q[37]=_,Q[38]=S;else S=Q[38];let k;if(Q[39]!==K||Q[40]!==S||Q[41]!==X)k=HK.jsxDEV(aDQ,{selected:X,onClick:K,children:S},void 0,!1,void 0,this),Q[39]=K,Q[40]=S,Q[41]=X,Q[42]=k;else k=Q[42];let h;if(Q[43]!==_)h=rh6(_)&&HK.jsxDEV(M,{dimColor:!0,children:[" \xB7 ",s0.arrowDown," to view"]},void 0,!0,void 0,this),Q[43]=_,Q[44]=h;else h=Q[44];let u;if(Q[45]!==h||Q[46]!==k)u=HK.jsxDEV(HK.Fragment,{children:[k,h]},void 0,!0,void 0,this),Q[45]=h,Q[46]=k,Q[47]=u;else u=Q[47];return u}function kDQ(J,Q){let X=`@${J.name}`;return B8(X)+(Q>0?1:0)}function hDQ(J,Q){return{...J,idx:Q}}function uDQ(J,Q){if(J.isIdle!==Q.isIdle)return J.isIdle?1:-1;return 0}function gDQ(J){return{name:J.identity.agentName,color:oDQ(J.identity.color),isIdle:J.isIdle,taskId:J.id}}function mDQ(J,Q){return J.identity.agentName.localeCompare(Q.identity.agentName)}function pDQ(J){return J.type==="in_process_teammate"}function cDQ(J){return J.type==="in_process_teammate"}function dDQ(J){return J.expandedView}function lDQ(J){return SK(J)&&!0}function iDQ(J){return J.viewingAgentTaskId}function nDQ(J){return J.tasks}function rDQ(J){let Q=B61.c(19),{name:X,color:Z,isSelected:Y,isViewed:q,isIdle:K,onClick:G}=J,[z,W]=ve1.useState(!1),H=Y||z,B;if(H){let O;if(Q[0]!==Z||Q[1]!==q||Q[2]!==X)O=Z?HK.jsxDEV(M,{backgroundColor:Z,color:"inverseText",bold:q,children:["@",X]},void 0,!0,void 0,this):HK.jsxDEV(M,{color:"background",inverse:!0,bold:q,children:["@",X]},void 0,!0,void 0,this),Q[0]=Z,Q[1]=q,Q[2]=X,Q[3]=O;else O=Q[3];B=O}else if(K){let O;if(Q[4]!==q||Q[5]!==X)O=HK.jsxDEV(M,{dimColor:!0,bold:q,children:["@",X]},void 0,!0,void 0,this),Q[4]=q,Q[5]=X,Q[6]=O;else O=Q[6];B=O}else if(q){let O;if(Q[7]!==Z||Q[8]!==X)O=HK.jsxDEV(M,{color:Z,bold:!0,children:["@",X]},void 0,!0,void 0,this),Q[7]=Z,Q[8]=X,Q[9]=O;else O=Q[9];B=O}else{let O=!Z,L;if(Q[10]!==Z||Q[11]!==X||Q[12]!==O)L=HK.jsxDEV(M,{color:Z,dimColor:O,children:["@",X]},void 0,!0,void 0,this),Q[10]=Z,Q[11]=X,Q[12]=O,Q[13]=L;else L=Q[13];B=L}if(!G)return B;let U,F;if(Q[14]===Symbol.for("react.memo_cache_sentinel"))U=()=>W(!0),F=()=>W(!1),Q[14]=U,Q[15]=F;else U=Q[14],F=Q[15];let _;if(Q[16]!==B||Q[17]!==G)_=HK.jsxDEV(f,{onClick:G,onMouseEnter:U,onMouseLeave:F,children:B},void 0,!1,void 0,this),Q[16]=B,Q[17]=G,Q[18]=_;else _=Q[18];return _}function aDQ(J){let Q=B61.c(8),{selected:X,onClick:Z,children:Y}=J,[q,K]=ve1.useState(!1),G=X||q,z;if(Q[0]!==Y||Q[1]!==G)z=HK.jsxDEV(M,{color:"background",inverse:G,children:Y},void 0,!1,void 0,this),Q[0]=Y,Q[1]=G,Q[2]=z;else z=Q[2];let W=z;if(!Z)return W;let H,B;if(Q[3]===Symbol.for("react.memo_cache_sentinel"))H=()=>K(!0),B=()=>K(!1),Q[3]=H,Q[4]=B;else H=Q[3],B=Q[4];let U;if(Q[5]!==W||Q[6]!==Z)U=HK.jsxDEV(f,{onClick:Z,onMouseEnter:H,onMouseLeave:B,children:W},void 0,!1,void 0,this),Q[5]=W,Q[6]=Z,Q[7]=U;else U=Q[7];return U}function oDQ(J){if(!J)return;if(n3.includes(J))return sG[J];return}var B61,$RJ,ve1,HK;var jRJ=I(()=>{r6();U9();x7();W6();su();cz();ok1();a0();mB();g9();tu();B61=T(e0(),1),$RJ=T(J1(),1),ve1=T(J1(),1),HK=T(e(),1)});function yRJ(J){let Q=IRJ.c(14),{teamsSelected:X,showHint:Z}=J,Y=O1(tDQ),q;if(Q[0]!==Y)q=Y?Object.values(Y.teammates).filter(sDQ).length:0,Q[0]=Y,Q[1]=q;else q=Q[1];let K=q;if(K===0)return null;let G;if(Q[2]!==Z||Q[3]!==X)G=Z&&X?Fy.jsxDEV(Fy.Fragment,{children:[Fy.jsxDEV(M,{dimColor:!0,children:"\xB7 "},void 0,!1,void 0,this),Fy.jsxDEV(M,{dimColor:!0,children:"Enter to view"},void 0,!1,void 0,this)]},void 0,!0,void 0,this):null,Q[2]=Z,Q[3]=X,Q[4]=G;else G=Q[4];let z=G,W=`${K} ${K===1?"teammate":"teammates"}`,H=X?"selected":"normal",B;if(Q[5]!==W||Q[6]!==H||Q[7]!==X)B=Fy.jsxDEV(M,{color:"background",inverse:X,children:W},H,!1,void 0,this),Q[5]=W,Q[6]=H,Q[7]=X,Q[8]=B;else B=Q[8];let U;if(Q[9]!==z)U=z?Fy.jsxDEV(M,{children:[" ",z]},void 0,!0,void 0,this):null,Q[9]=z,Q[10]=U;else U=Q[10];let F;if(Q[11]!==B||Q[12]!==U)F=Fy.jsxDEV(Fy.Fragment,{children:[B,U]},void 0,!0,void 0,this),Q[11]=B,Q[12]=U,Q[13]=F;else F=Q[13];return F}function sDQ(J){return J.name!=="team-lead"}function tDQ(J){return J.teamContext}var IRJ,Fy;var bRJ=I(()=>{a0();W6();IRJ=T(e0(),1),Fy=T(e(),1)});function eDQ(J){let Q=PRJ.c(9),{value:X,onChange:Z,historyFailedMatch:Y}=J,q=Y?"no matching prompt:":"search prompts:",K;if(Q[0]!==q)K=U61.jsxDEV(M,{dimColor:!0,children:q},void 0,!1,void 0,this),Q[0]=q,Q[1]=K;else K=Q[1];let G=B8(X)+1,z;if(Q[2]!==Z||Q[3]!==G||Q[4]!==X)z=U61.jsxDEV(sX,{value:X,onChange:Z,cursorOffset:X.length,onChangeCursorOffset:J$Q,columns:G,focus:!0,showCursor:!0,multiline:!1,dimColor:!0},void 0,!1,void 0,this),Q[2]=Z,Q[3]=G,Q[4]=X,Q[5]=z;else z=Q[5];let W;if(Q[6]!==K||Q[7]!==z)W=U61.jsxDEV(f,{gap:1,children:[K,z]},void 0,!0,void 0,this),Q[6]=K,Q[7]=z,Q[8]=W;else W=Q[8];return W}function J$Q(){}var PRJ,U61,ERJ;var TRJ=I(()=>{x7();a0();EH();PRJ=T(e0(),1),U61=T(e(),1);ERJ=eDQ});function X$Q(J,Q){if(J)return"draft";switch(Q){case"APPROVED":return"approved";case"CHANGES_REQUESTED":return"changes_requested";default:return"pending"}}async function CRJ(){if(!await y3())return null;let[Q,X]=await Promise.all([_$(),O$()]);if(Q===X)return null;let{stdout:Z,code:Y}=await Z8("gh",["pr","view","--json","number,url,reviewDecision,isDraft,headRefName,state"],{timeout:Q$Q,preserveOutputOnError:!1});if(Y!==0||!Z.trim())return null;try{let q=c1(Z);if(q.headRefName===X||q.headRefName==="main"||q.headRefName==="master")return null;if(q.state==="MERGED"||q.state==="CLOSED")return null;return{number:q.number,url:q.url,reviewState:X$Q(q.isDraft,q.reviewDecision)}}catch{return null}}var Q$Q=5000;var vRJ=I(()=>{T9();uQ();i1()});function fRJ(J,Q=!0){let[X,Z]=jg.useState(q$Q),Y=jg.useRef(null),q=jg.useRef(!1),K=jg.useRef(0);return jg.useEffect(()=>{if(!Q)return;if(q.current)return;let G=!1,z=-1,W=Date.now();async function H(){if(G)return;let U=eD();if(z!==U)z=U,W=Date.now();else if(Date.now()-W>=Y$Q)return;let F=Date.now(),_=await CRJ();if(G)return;if(K.current=F,Z((O)=>{let L=_?.number??null,N=_?.reviewState??null;if(O.number===L&&O.reviewState===N)return O;return{number:L,url:_?.url??null,reviewState:N,lastUpdated:Date.now()}}),Date.now()-F>Z$Q){q.current=!0;return}if(!G)Y.current=setTimeout(H,Se1)}let B=Date.now()-K.current;if(B>=Se1)H();else Y.current=setTimeout(H,Se1-B);return()=>{if(G=!0,Y.current)clearTimeout(Y.current),Y.current=null}},[J,Q]),X}var jg,Se1=60000,Z$Q=4000,Y$Q=3600000,q$Q;var SRJ=I(()=>{N1();vRJ();jg=T(J1(),1),q$Q={number:null,url:null,reviewState:null,lastUpdated:0}});var K$Q,G$Q;var xRJ=I(()=>{ww();a0();Ju();K$Q=T(e0(),1),G$Q=T(e(),1)});function mRJ(J){let Q=gRJ.c(27),{exitMessage:X,vimMode:Z,mode:Y,toolPermissionContext:q,suppressHint:K,isLoading:G,tasksSelected:z,teamsSelected:W,tmuxSelected:H,teammateFooterIndex:B,isPasting:U,isSearching:F,historyQuery:_,setHistoryQuery:O,historyFailedMatch:L,onOpenTasksDialog:N}=J;if(X.show){let C;if(Q[0]!==X.key)C=j7.jsxDEV(M,{dimColor:!0,children:["Press ",X.key," again to exit"]},"exit-message",!0,void 0,this),Q[0]=X.key,Q[1]=C;else C=Q[1];return C}if(U){let C;if(Q[2]===Symbol.for("react.memo_cache_sentinel"))C=j7.jsxDEV(M,{dimColor:!0,children:"Pasting text\u2026"},"pasting-message",!1,void 0,this),Q[2]=C;else C=Q[2];return C}let A;if(Q[3]!==F||Q[4]!==Z)A=MC()&&Z==="INSERT"&&!F,Q[3]=F,Q[4]=Z,Q[5]=A;else A=Q[5];let R=A,D;if(Q[6]!==L||Q[7]!==_||Q[8]!==F||Q[9]!==O)D=F&&j7.jsxDEV(ERJ,{value:_,onChange:O,historyFailedMatch:L},void 0,!1,void 0,this),Q[6]=L,Q[7]=_,Q[8]=F,Q[9]=O,Q[10]=D;else D=Q[10];let $;if(Q[11]!==R)$=R?j7.jsxDEV(M,{dimColor:!0,children:"-- INSERT --"},"vim-insert",!1,void 0,this):null,Q[11]=R,Q[12]=$;else $=Q[12];let y=!K&&!R,v;if(Q[13]!==G||Q[14]!==Y||Q[15]!==N||Q[16]!==y||Q[17]!==z||Q[18]!==B||Q[19]!==W||Q[20]!==H||Q[21]!==q)v=j7.jsxDEV(W$Q,{mode:Y,toolPermissionContext:q,showHint:y,isLoading:G,tasksSelected:z,teamsSelected:W,teammateFooterIndex:B,tmuxSelected:H,onOpenTasksDialog:N},void 0,!1,void 0,this),Q[13]=G,Q[14]=Y,Q[15]=N,Q[16]=y,Q[17]=z,Q[18]=B,Q[19]=W,Q[20]=H,Q[21]=q,Q[22]=v;else v=Q[22];let E;if(Q[23]!==D||Q[24]!==$||Q[25]!==v)E=j7.jsxDEV(f,{justifyContent:"flex-start",gap:1,children:[D,$,v]},void 0,!0,void 0,this),Q[23]=D,Q[24]=$,Q[25]=v,Q[26]=E;else E=Q[26];return E}function W$Q({mode:J,toolPermissionContext:Q,showHint:X,isLoading:Z,tasksSelected:Y,teamsSelected:q,tmuxSelected:K,teammateFooterIndex:G,onOpenTasksDialog:z}){let{columns:W}=l8(),H=r9("chat:cycleMode","Chat","shift+tab"),B=O1((u0)=>u0.tasks),U=O1((u0)=>u0.teamContext),F=aX(),[_]=Ig.useState(()=>F.getState().remoteSessionUrl),O=O1((u0)=>u0.viewSelectionMode),L=O1((u0)=>u0.viewingAgentTaskId),N=O1((u0)=>u0.expandedView),A=N==="teammates",R=fRJ(Z,uRJ()),D=O1((u0)=>!1),$=Ig.useSyncExternalStore(kRJ?.subscribeToProactiveChanges??z$Q,kRJ?.getNextTickAt??hRJ,hRJ),y=!1,v="idle",E=!1,C=W46(),S=l10().getState,k=$!==null,h=!1,u=Ig.useMemo(()=>x8(Object.values(B),(u0)=>SK(u0)&&!0),[B]),x=$L0(),m=x!==void 0&&x.length>0,p=r9("chat:cancel","Chat","esc").toLowerCase(),c=r9("app:toggleTodos","Global","ctrl+t"),r=r9("chat:killAgents","Chat","ctrl+x ctrl+k"),J0="",[n]=[!1],s=null;Ig.useEffect(()=>{},[!1,n]);let X0=O1((u0)=>u0.notifications.current?.key==="kill-agents-confirm"),Y0=p6()&&!aM()&&U!==void 0&&x8(Object.values(U.teammates),(u0)=>u0.name!=="team-lead")>0;if(J==="bash")return j7.jsxDEV(M,{color:"bashBorder",children:"! for bash mode"},void 0,!1,void 0,this);let G0=Q?.mode,j0=!GV8(G0),W0=L?B[L]:void 0,y0=O==="viewing-agent"&&W0?.type==="in_process_teammate",V0=y0&&W0!=null&&W0.status!=="running",Z0=u>0||y0,t=(j0?1:0)+(Z0?1:0)+(Y0?1:0),q0=uRJ()&&R.number!==null&&R.reviewState!==null&&R.url!==null&&t<2&&(t===0||W>=80),Q0=t<2,O0=!A&&Z0&&Object.values(B).some((u0)=>u0.type==="in_process_teammate")||!A&&y0,D0=G0&&j0&&!S9()?j7.jsxDEV(M,{color:rU(G0),children:[Kz0(G0)," ",kb(G0).toLowerCase()," on",Q0&&j7.jsxDEV(M,{dimColor:!0,children:[" ",j7.jsxDEV(p1,{shortcut:H,action:"cycle",parens:!0},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},"mode",!0,void 0,this):null,F0=[..._?[j7.jsxDEV(zJ,{url:_,children:j7.jsxDEV(M,{color:"ide",children:[s0.circleDouble," remote"]},void 0,!0,void 0,this)},"remote",!1,void 0,this)]:[],...[],...p6()&&Y0?[j7.jsxDEV(yRJ,{teamsSelected:q,showHint:X&&!Z0},"teams",!1,void 0,this)]:[],...q0?[j7.jsxDEV(Bn0,{number:R.number,url:R.url,reviewState:R.reviewState},"pr-status",!1,void 0,this)]:[]],I0=Object.values(B).some((u0)=>u0.type==="in_process_teammate"&&u0.status==="running"),U0=Object.values(B).some((u0)=>u0.type==="local_agent"&&u0.status==="running"),P0=X?H$Q(Z,p,c,r,m,N,I0,U0,X0):[];if(V0)F0.push(j7.jsxDEV(M,{dimColor:!0,children:j7.jsxDEV(p1,{shortcut:p,action:"return to team lead"},void 0,!1,void 0,this)},"esc-return",!1,void 0,this));else if(!O0&&X)F0.push(...P0);if(O0){let u0=[...D0?[D0]:[],...F0,...V0?[]:P0];return j7.jsxDEV(f,{flexDirection:"column",children:[j7.jsxDEV(f,{children:j7.jsxDEV(fe1,{tasksSelected:Y,isViewingTeammate:y0,teammateFooterIndex:G,isLeaderIdle:!Z,onOpenDialog:z},void 0,!1,void 0,this)},void 0,!1,void 0,this),u0.length>0&&j7.jsxDEV(f,{children:j7.jsxDEV(V8,{children:u0},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}let $0=!1,w0=Z0&&!O0&&!fZ0(B,A)?j7.jsxDEV(fe1,{tasksSelected:Y,isViewingTeammate:y0,teammateFooterIndex:G,isLeaderIdle:!Z,onOpenDialog:z},void 0,!1,void 0,this):null;if(F0.length===0&&!w0&&!D0&&X)F0.push(j7.jsxDEV(M,{dimColor:!0,children:"? for shortcuts"},"shortcuts-hint",!1,void 0,this));let E0=L1().copyOnSelect??!0,h0=C&&(!E0||rP());if(yJ()&&h0){let u0=N8()==="macos",B0=u0&&(S()?.lastPressHadAlt??!1);F0.push(j7.jsxDEV(M,{dimColor:!0,children:j7.jsxDEV(V8,{children:[!E0&&j7.jsxDEV(p1,{shortcut:"ctrl+c",action:"copy"},void 0,!1,void 0,this),rP()&&(B0?j7.jsxDEV(M,{children:"set macOptionClickForcesSelection in VS Code settings"},void 0,!1,void 0,this):j7.jsxDEV(p1,{shortcut:u0?"option+click":"shift+click",action:"native select"},void 0,!1,void 0,this))]},void 0,!0,void 0,this)},"selection-copy",!1,void 0,this))}if((w0||$0)&&X&&!Y0)F0.push(j7.jsxDEV(M,{dimColor:!0,children:Y?j7.jsxDEV(p1,{shortcut:"Enter",action:"view tasks"},void 0,!1,void 0,this):j7.jsxDEV(p1,{shortcut:"\u2193",action:"manage"},void 0,!1,void 0,this)},"manage-tasks",!1,void 0,this));if(F0.length===0&&!w0&&!D0)return yJ()?j7.jsxDEV(M,{children:" "},void 0,!1,void 0,this):null;return j7.jsxDEV(f,{height:1,overflow:"hidden",children:[D0&&j7.jsxDEV(f,{flexShrink:0,children:[D0,(w0||F0.length>0)&&j7.jsxDEV(M,{dimColor:!0,children:" \xB7 "},void 0,!1,void 0,this)]},void 0,!0,void 0,this),w0&&j7.jsxDEV(f,{flexShrink:0,children:[w0,F0.length>0&&j7.jsxDEV(M,{dimColor:!0,children:" \xB7 "},void 0,!1,void 0,this)]},void 0,!0,void 0,this),F0.length>0&&j7.jsxDEV(M,{wrap:"truncate",children:j7.jsxDEV(V8,{children:F0},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}function H$Q(J,Q,X,Z,Y,q,K,G,z){let W;if(K)switch(q){case"none":W="show tasks";break;case"tasks":W="show teammates";break;case"teammates":W="hide";break}else W=q==="tasks"?"hide tasks":"show tasks";let H=Y||K;return[...J?[j7.jsxDEV(M,{dimColor:!0,children:j7.jsxDEV(p1,{shortcut:Q,action:"interrupt"},void 0,!1,void 0,this)},"esc",!1,void 0,this)]:[],...!J&&G&&!z?[j7.jsxDEV(M,{dimColor:!0,children:j7.jsxDEV(p1,{shortcut:Z,action:"stop agents"},void 0,!1,void 0,this)},"kill-agents",!1,void 0,this)]:[],...H?[j7.jsxDEV(M,{dimColor:!0,children:j7.jsxDEV(p1,{shortcut:X,action:W},void 0,!1,void 0,this)},"toggle-tasks",!1,void 0,this)]:[]]}function uRJ(){return L1().prStatusFooterEnabled??!0}var gRJ,Ig,j7,kRJ=null,z$Q=(J)=>()=>{},hRJ=()=>null;var pRJ=I(()=>{a0();r6();YZ0();nz();vW();jRJ();cz();J61();tu();lZ();bRJ();Ew();W6();N1();TRJ();SRJ();g9();R9();U9();Uo0();A6();xRJ();bt1();Ro0();fz();aP();tx0();m8();k9();rk1();gRJ=T(e0(),1),Ig=T(J1(),1),j7=T(e(),1)});function B$Q({apiKeyStatus:J,debug:Q,exitMessage:X,vimMode:Z,mode:Y,autoUpdaterResult:q,isAutoUpdating:K,verbose:G,onAutoUpdaterResult:z,onChangeIsUpdating:W,suggestions:H,selectedSuggestion:B,maxColumnWidth:U,toolPermissionContext:F,helpOpen:_,suppressHint:O,isLoading:L,tasksSelected:N,teamsSelected:A,tmuxSelected:R,teammateFooterIndex:D,ideSelection:$,mcpClients:y,isPasting:v=!1,isInputWrapped:E=!1,messages:C,isSearching:S,historyQuery:k,setHistoryQuery:h,historyFailedMatch:u,onOpenTasksDialog:x}){let m=CK(),{columns:p,rows:c}=l8(),r=Fa.useRef(C);r.current=C;let J0=Fa.useMemo(()=>Ce1(C),[C]),n=p<80,s=yJ(),X0=s&&c<24,Y0=e81(),G0=O1((V0)=>V0.coordinatorTaskIndex),j0=N&&(Y0===0||G0<0),W0=O||Te1(m)||S,y0=Fa.useMemo(()=>s&&H.length?{suggestions:H,selectedSuggestion:B,maxColumnWidth:U}:null,[s,H,B,U]);if(rGJ(y0),H.length&&!s)return KV.jsxDEV(f,{paddingX:2,paddingY:0,children:KV.jsxDEV(uV0,{suggestions:H,selectedSuggestion:B,maxColumnWidth:U},void 0,!1,void 0,this)},void 0,!1,void 0,this);if(_)return KV.jsxDEV(le0,{dimColor:!0,fixedWidth:!0,paddingX:2},void 0,!1,void 0,this);return KV.jsxDEV(KV.Fragment,{children:[KV.jsxDEV(f,{flexDirection:n?"column":"row",justifyContent:n?"flex-start":"space-between",paddingX:2,gap:n?0:1,children:[KV.jsxDEV(f,{flexDirection:"column",flexShrink:n?0:1,children:[Y==="prompt"&&!X0&&!X.show&&!v&&Te1(m)&&KV.jsxDEV(RRJ,{messagesRef:r,lastAssistantMessageId:J0,vimMode:Z},void 0,!1,void 0,this),KV.jsxDEV(mRJ,{exitMessage:X,vimMode:Z,mode:Y,toolPermissionContext:F,suppressHint:W0,isLoading:L,tasksSelected:j0,teamsSelected:A,teammateFooterIndex:D,tmuxSelected:R,isPasting:v,isSearching:S,historyQuery:k,setHistoryQuery:h,historyFailedMatch:u,onOpenTasksDialog:x},void 0,!1,void 0,this)]},void 0,!0,void 0,this),KV.jsxDEV(f,{flexShrink:1,gap:1,children:[s?null:KV.jsxDEV(k81,{apiKeyStatus:J,autoUpdaterResult:q,debug:Q,isAutoUpdating:K,verbose:G,messages:C,onAutoUpdaterResult:z,onChangeIsUpdating:W,ideSelection:$,mcpClients:y,isInputWrapped:E,isNarrow:n},void 0,!1,void 0,this),!1]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),!1]},void 0,!0,void 0,this)}var Fa,KV,cRJ;var dRJ=I(()=>{g01();ww();U9();a0();W6();fz();vO0();J61();MRJ();h81();pRJ();rt0();Pn1();Fa=T(J1(),1),KV=T(e(),1);cRJ=Fa.memo(B$Q)});function U$Q(){if(!p6())return;let J=Hq();if(!J)return;if(n3.includes(J))return sG[J];return}function lRJ(J){let Q=xe1.c(3),{isLoading:X,themeColor:Z}=J,q=Z??void 0,K;if(Q[0]!==q||Q[1]!==X)K=P40.jsxDEV(M,{color:q,dimColor:X,children:[s0.pointer,"\xA0"]},void 0,!0,void 0,this),Q[0]=q,Q[1]=X,Q[2]=K;else K=Q[2];return K}function ke1(J){let Q=xe1.c(6),{mode:X,isLoading:Z,viewingAgentName:Y,viewingAgentColor:q}=J,K;if(Q[0]===Symbol.for("react.memo_cache_sentinel"))K=U$Q(),Q[0]=K;else K=Q[0];let G=K,z=q?sG[q]:void 0,W;if(Q[1]!==Z||Q[2]!==X||Q[3]!==z||Q[4]!==Y)W=P40.jsxDEV(f,{alignItems:"flex-start",alignSelf:"flex-start",flexWrap:"nowrap",justifyContent:"flex-start",children:Y?P40.jsxDEV(lRJ,{isLoading:Z,themeColor:z},void 0,!1,void 0,this):X==="bash"?P40.jsxDEV(M,{color:"bashBorder",dimColor:Z,children:"!\xA0"},void 0,!1,void 0,this):P40.jsxDEV(lRJ,{isLoading:Z,themeColor:p6()?G:void 0},void 0,!1,void 0,this)},void 0,!1,void 0,this),Q[1]=Z,Q[2]=X,Q[3]=z,Q[4]=Y,Q[5]=W;else W=Q[5];return W}var xe1,P40;var iRJ=I(()=>{r6();a0();mB();FZ();lZ();xe1=T(e0(),1),P40=T(e(),1)});function O$Q(J){try{return c1(J)?.type==="idle_notification"}catch{return!1}}function L$Q(J){return`<${F4}>
|
|
6893
|
+
`)q.setOffset(O-1);Q.current={mode:"NORMAL",command:{type:"idle"}},Z("NORMAL"),K?.("NORMAL")},[K,q,J.value]);function H(_,O=!1){return{cursor:_,text:J.value,setText:(L)=>J.onChange(L),setOffset:(L)=>q.setOffset(L),enterInsert:(L)=>z(L),getRegister:()=>Y.current.register,setRegister:(L,N)=>{Y.current.register=L,Y.current.registerIsLinewise=N},getLastFind:()=>Y.current.lastFind,setLastFind:(L,N)=>{Y.current.lastFind={type:L,char:N}},recordChange:O?()=>{}:(L)=>{Y.current.lastChange=L}}}function B(){let _=Y.current.lastChange;if(!_)return;let O=$9.fromText(J.value,J.columns,q.offset),L=H(O,!0);switch(_.type){case"insert":if(_.text){let N=O.insert(_.text);J.onChange(N.text),q.setOffset(N.offset)}break;case"x":q61(_.count,L);break;case"replace":K61(_.char,_.count,L);break;case"toggleCase":G61(_.count,L);break;case"indent":W61(_.dir,_.count,L);break;case"join":z61(_.count,L);break;case"openLine":rw0(_.direction,L);break;case"operator":Ua(_.op,_.motion,_.count,L);break;case"operatorFind":Z61(_.op,_.find,_.char,_.count,L);break;case"operatorTextObj":Y61(_.op,_.scope,_.objType,_.count,L);break}}function U(_,O){let L=Q.current,N=G?G(_,O):_,A=L.mode==="INSERT"?N:_,R=$9.fromText(J.value,J.columns,q.offset);if(O.ctrl){q.onInput(A,O);return}if(O.escape&&L.mode==="INSERT"){W();return}if(O.escape&&L.mode==="NORMAL"){Q.current={mode:"NORMAL",command:{type:"idle"}};return}if(O.return){q.onInput(A,O);return}if(L.mode==="INSERT"){if(O.backspace||O.delete){if(L.insertedText.length>0)Q.current={mode:"INSERT",insertedText:L.insertedText.slice(0,-(Gb(L.insertedText).length||1))}}else Q.current={mode:"INSERT",insertedText:L.insertedText+A};q.onInput(A,O);return}if(L.mode!=="NORMAL")return;if(L.command.type==="idle"&&(O.upArrow||O.downArrow||O.leftArrow||O.rightArrow)){q.onInput(A,O);return}let D={...H(R,!1),onUndo:J.onUndo,onDotRepeat:B},$=L.command.type==="idle"||L.command.type==="count"||L.command.type==="operator"||L.command.type==="operatorCount",y=A;if(O.leftArrow)y="h";else if(O.rightArrow)y="l";else if(O.upArrow)y="k";else if(O.downArrow)y="j";else if($&&O.backspace)y="h";else if($&&L.command.type!=="count"&&O.delete)y="x";let v=URJ(L.command,y,D);if(v.execute)v.execute();if(Q.current.mode==="NORMAL"){if(v.next)Q.current={mode:"NORMAL",command:v.next};else if(v.execute)Q.current={mode:"NORMAL",command:{type:"idle"}}}if(A==="?"&&L.mode==="NORMAL"&&L.command.type==="idle")J.onChange("?")}let F=iC.useCallback((_)=>{if(_==="INSERT")Q.current={mode:"INSERT",insertedText:""};else Q.current={mode:"NORMAL",command:{type:"idle"}};Z(_),K?.(_)},[K]);return{...q,onInput:U,mode:X,setMode:F}}var iC;var VRJ=I(()=>{un();GO();Me1();ORJ();be1();pp1();iC=T(J1(),1)});function Ee1(J){let Q=NRJ.c(38),[X]=j6(),Z=X5();Mo0(Z,!!J.onImagePaste);let{value:Y,onChange:q,onSubmit:K,onExit:G,onExitMessage:z,onHistoryReset:W,onHistoryUp:H,onHistoryDown:B,onClearInput:U,focus:F,mask:_,multiline:O}=J,L=J.showCursor?" ":"",N=J.highlightPastedText,A=Z?_1.inverse:fDQ,R;if(Q[0]!==X)R=G6("text",X),Q[0]=X,Q[1]=R;else R=Q[1];let D;if(Q[2]!==J.columns||Q[3]!==J.cursorOffset||Q[4]!==J.disableCursorMovementForUpDownKeys||Q[5]!==J.disableEscapeDoublePress||Q[6]!==J.focus||Q[7]!==J.highlightPastedText||Q[8]!==J.inputFilter||Q[9]!==J.mask||Q[10]!==J.maxVisibleLines||Q[11]!==J.multiline||Q[12]!==J.onChange||Q[13]!==J.onChangeCursorOffset||Q[14]!==J.onClearInput||Q[15]!==J.onExit||Q[16]!==J.onExitMessage||Q[17]!==J.onHistoryDown||Q[18]!==J.onHistoryReset||Q[19]!==J.onHistoryUp||Q[20]!==J.onImagePaste||Q[21]!==J.onModeChange||Q[22]!==J.onSubmit||Q[23]!==J.onUndo||Q[24]!==J.value||Q[25]!==L||Q[26]!==A||Q[27]!==R)D={value:Y,onChange:q,onSubmit:K,onExit:G,onExitMessage:z,onHistoryReset:W,onHistoryUp:H,onHistoryDown:B,onClearInput:U,focus:F,mask:_,multiline:O,cursorChar:L,highlightPastedText:N,invert:A,themeText:R,columns:J.columns,maxVisibleLines:J.maxVisibleLines,onImagePaste:J.onImagePaste,disableCursorMovementForUpDownKeys:J.disableCursorMovementForUpDownKeys,disableEscapeDoublePress:J.disableEscapeDoublePress,externalOffset:J.cursorOffset,onOffsetChange:J.onChangeCursorOffset,inputFilter:J.inputFilter,onModeChange:J.onModeChange,onUndo:J.onUndo},Q[2]=J.columns,Q[3]=J.cursorOffset,Q[4]=J.disableCursorMovementForUpDownKeys,Q[5]=J.disableEscapeDoublePress,Q[6]=J.focus,Q[7]=J.highlightPastedText,Q[8]=J.inputFilter,Q[9]=J.mask,Q[10]=J.maxVisibleLines,Q[11]=J.multiline,Q[12]=J.onChange,Q[13]=J.onChangeCursorOffset,Q[14]=J.onClearInput,Q[15]=J.onExit,Q[16]=J.onExitMessage,Q[17]=J.onHistoryDown,Q[18]=J.onHistoryReset,Q[19]=J.onHistoryUp,Q[20]=J.onImagePaste,Q[21]=J.onModeChange,Q[22]=J.onSubmit,Q[23]=J.onUndo,Q[24]=J.value,Q[25]=L,Q[26]=A,Q[27]=R,Q[28]=D;else D=Q[28];let $=LRJ(D),{mode:y,setMode:v}=$,E,C;if(Q[29]!==y||Q[30]!==J.initialMode||Q[31]!==v)E=()=>{if(J.initialMode&&J.initialMode!==y)v(J.initialMode)},C=[J.initialMode,y,v],Q[29]=y,Q[30]=J.initialMode,Q[31]=v,Q[32]=E,Q[33]=C;else E=Q[32],C=Q[33];wRJ.default.useEffect(E,C);let S;if(Q[34]!==Z||Q[35]!==J||Q[36]!==$)S=Pe1.jsxDEV(f,{flexDirection:"column",children:Pe1.jsxDEV(co0,{inputState:$,terminalFocus:Z,highlights:J.highlights,...J},void 0,!1,void 0,this)},void 0,!1,void 0,this),Q[34]=Z,Q[35]=J,Q[36]=$,Q[37]=S;else S=Q[37];return S}function fDQ(J){return J}var NRJ,wRJ,Pe1;var ARJ=I(()=>{k7();Ap1();VRJ();a0();cp1();NRJ=T(e0(),1),wRJ=T(J1(),1),Pe1=T(e(),1)});function Te1(J){return J?.statusLine!==void 0}function SDQ(J,Q,X,Z,Y,q,K){let G=Z$(),z=yq(),W=i$({permissionMode:J,mainLoopModel:q,exceeds200kTokens:Q}),H=X?.outputStyle||F2,B=Sg0(Z),U=J2(W,$3()),F=Nf0(B,U),_=A1(),O=kw(_),L=On6(),N={...L.five_hour&&{five_hour:{used_percentage:L.five_hour.utilization*100,resets_at:L.five_hour.resets_at}},...L.seven_day&&{seven_day:{used_percentage:L.seven_day.utilization*100,resets_at:L.seven_day.resets_at}}};return{...kZ(),...O&&{session_name:O},model:{id:W,display_name:zG(W)},workspace:{current_dir:B1(),project_dir:j8(),added_dirs:Y},version:"0.1.17",output_style:{name:H},cost:{total_cost_usd:D3(),total_duration_ms:oo(),total_api_duration_ms:e_(),total_lines_added:hm(),total_lines_removed:um()},context_window:{total_input_tokens:PV(),total_output_tokens:gm(),context_window_size:U,current_usage:B,used_percentage:F.used,remaining_percentage:F.remaining},exceeds_200k_tokens:Q,...(N.five_hour||N.seven_day)&&{rate_limits:N},...MC()&&{vim:{mode:K??"INSERT"}},...G&&{agent:{name:G}},...S9()&&{remote:{session_id:A1()}},...z&&{worktree:{name:z.worktreeName,path:z.worktreePath,branch:z.worktreeBranch,original_cwd:z.originalCwd,original_branch:z.originalBranch}}}}function Ce1(J){return nB(J)?.uuid??null}function xDQ({messagesRef:J,lastAssistantMessageId:Q,vimMode:X}){let Z=DG.useRef(void 0),Y=O1((E)=>E.toolPermissionContext.mode),q=O1((E)=>E.toolPermissionContext.additionalWorkingDirectories),K=O1((E)=>E.statusLineText),G=T6(),z=CK(),{addNotification:W}=D9(),H=Ky(),B=DG.useRef(z);B.current=z;let U=DG.useRef(X);U.current=X;let F=DG.useRef(Y);F.current=Y;let _=DG.useRef(q);_.current=q;let O=DG.useRef(H);O.current=H;let L=DG.useRef({messageId:null,exceeds200kTokens:!1,permissionMode:Y,vimMode:X,mainLoopModel:H}),N=DG.useRef(void 0),A=DG.useRef(!0),R=DG.useCallback(async()=>{Z.current?.abort();let E=new AbortController;Z.current=E;let C=J.current,S=A.current;A.current=!1;try{let k=L.current.exceeds200kTokens,h=Ce1(C);if(h!==L.current.messageId)k=xg0(C),L.current.messageId=h,L.current.exceeds200kTokens=k;let u=SDQ(F.current,k,B.current,C,Array.from(_.current.keys()),O.current,U.current),x=await il1(u,E.signal,void 0,S);if(!E.signal.aborted)G((m)=>{if(m.statusLineText===x)return m;return{...m,statusLineText:x}})}catch{}},[J,G]),D=DG.useCallback(()=>{if(N.current!==void 0)clearTimeout(N.current);N.current=setTimeout((E,C)=>{E.current=void 0,C()},300,N,R)},[R]);DG.useEffect(()=>{if(Q!==L.current.messageId||Y!==L.current.permissionMode||X!==L.current.vimMode||H!==L.current.mainLoopModel)L.current.permissionMode=Y,L.current.vimMode=X,L.current.mainLoopModel=H,D()},[Q,Y,X,H,D]);let $=z?.statusLine?.command,y=DG.useRef(!0);DG.useEffect(()=>{if(y.current){y.current=!1;return}A.current=!0,R()},[$,R]),DG.useEffect(()=>{let E=z?.statusLine;if(E){if(l("jarvis_api_error",{command_length:E.command.length,padding:E.padding}),z.disableAllHooks===!0)b("Status line is configured but disableAllHooks is true",{level:"warn"});if(!qG())W({key:"statusline-trust-blocked",text:"statusline skipped \xB7 restart to fix",color:"warning",priority:"low"}),b("Status line command skipped: workspace trust not accepted",{level:"warn"})}},[]),DG.useEffect(()=>{return R(),()=>{if(Z.current?.abort(),N.current!==void 0)clearTimeout(N.current)}},[]);let v=z?.statusLine?.padding??0;return ow0.jsxDEV(f,{paddingX:v,gap:2,children:K?ow0.jsxDEV(M,{dimColor:!0,wrap:"truncate",children:ow0.jsxDEV(C9,{children:K},void 0,!1,void 0,this)},void 0,!1,void 0,this):yJ()?ow0.jsxDEV(M,{children:" "},void 0,!1,void 0,this):null},void 0,!1,void 0,this)}var DG,ow0,RRJ;var MRJ=I(()=>{D1();W6();N1();Vj();UY();JI();rZ0();ww();a0();fn();m8();lW();Z6();Z1();fz();N4();M8();CJ();gJ();hB();__();YZ0();DG=T(J1(),1),ow0=T(e(),1);RRJ=DG.memo(xDQ)});function DRJ(J,Q,X,Z,Y=!0){let q=J.length;if(q===0)return{startIndex:0,endIndex:0,showLeftArrow:!1,showRightArrow:!1};let K=Math.max(0,Math.min(Z,q-1));if(J.reduce((F,_)=>F+_,0)<=Q)return{startIndex:0,endIndex:q,showLeftArrow:!1,showRightArrow:!1};let z=[0];for(let F=0;F<q;F++)z.push(z[F]+J[F]);function W(F,_){let O=z[_]-z[F];if(Y&&F>0)return O-1;return O}function H(F,_){let O=Q;if(F>0)O-=X;if(_<q)O-=X;return O}let B=0,U=1;while(U<q&&W(B,U+1)<=H(B,U+1))U++;if(K>=B&&K<U)return{startIndex:B,endIndex:U,showLeftArrow:B>0,showRightArrow:U<q};if(K>=U){U=K+1,B=K;while(B>0&&W(B-1,U)<=H(B-1,U))B--}else{B=K,U=K+1;while(U<q&&W(B,U+1)<=H(B,U+1))U++}return{startIndex:B,endIndex:U,showLeftArrow:B>0,showRightArrow:U<q}}function fe1(J){let Q=B61.c(48),{tasksSelected:X,isViewingTeammate:Z,teammateFooterIndex:Y,isLeaderIdle:q,onOpenDialog:K}=J,G=Y===void 0?0:Y,z=q===void 0?!1:q,W=T6(),{columns:H}=l8(),B=O1(nDQ),U=O1(iDQ),F;if(Q[0]!==B)F=Object.values(B??{}).filter(lDQ),Q[0]=B,Q[1]=F;else F=Q[1];let _=F,L=O1(dDQ)==="teammates",N=!L&&_.length>0&&_.every(cDQ),A;if(Q[2]!==_)A=_.filter(pDQ).sort(mDQ),Q[2]=_,Q[3]=A;else A=Q[3];let R=A,D;if(Q[4]!==z)D={name:"main",color:void 0,isIdle:z,taskId:void 0},Q[4]=z,Q[5]=D;else D=Q[5];let $=D,y;if(Q[6]!==$||Q[7]!==X||Q[8]!==R){let x=R.map(gDQ);if(!X)x.sort(uDQ);y=[$,...x].map(hDQ),Q[6]=$,Q[7]=X,Q[8]=R,Q[9]=y}else y=Q[9];let v=y,E;if(Q[10]!==v)E=v.map(kDQ),Q[10]=v,Q[11]=E;else E=Q[11];let C=E;if(N||!L&&Z){let x=X?G:-1,m;if(Q[12]!==R||Q[13]!==U)m=U?R.findIndex((q0)=>q0.id===U)+1:0,Q[12]=R,Q[13]=U,Q[14]=m;else m=Q[14];let p=m,c=Math.max(20,H-20-4),r=x>=0?x:0,J0;if(Q[15]!==c||Q[16]!==C||Q[17]!==r)J0=DRJ(C,c,2,r),Q[15]=c,Q[16]=C,Q[17]=r,Q[18]=J0;else J0=Q[18];let{startIndex:n,endIndex:s,showLeftArrow:X0,showRightArrow:Y0}=J0,G0;if(Q[19]!==v||Q[20]!==s||Q[21]!==n)G0=v.slice(n,s),Q[19]=v,Q[20]=s,Q[21]=n,Q[22]=G0;else G0=Q[22];let j0=G0,W0;if(Q[23]!==X0)W0=X0&&HK.jsxDEV(M,{dimColor:!0,children:[s0.arrowLeft," "]},void 0,!0,void 0,this),Q[23]=X0,Q[24]=W0;else W0=Q[24];let y0;if(Q[25]!==x||Q[26]!==W||Q[27]!==p||Q[28]!==j0)y0=j0.map((q0,Q0)=>{let a=Q0>0;return HK.jsxDEV($RJ.Fragment,{children:[a&&HK.jsxDEV(M,{children:" "},void 0,!1,void 0,this),HK.jsxDEV(rDQ,{name:q0.name,color:q0.color,isSelected:x===q0.idx,isViewed:p===q0.idx,isIdle:q0.isIdle,onClick:()=>q0.taskId?ZA(q0.taskId,W):pH(W)},void 0,!1,void 0,this)]},q0.name,!0,void 0,this)}),Q[25]=x,Q[26]=W,Q[27]=p,Q[28]=j0,Q[29]=y0;else y0=Q[29];let V0;if(Q[30]!==Y0)V0=Y0&&HK.jsxDEV(M,{dimColor:!0,children:[" ",s0.arrowRight]},void 0,!0,void 0,this),Q[30]=Y0,Q[31]=V0;else V0=Q[31];let Z0;if(Q[32]===Symbol.for("react.memo_cache_sentinel"))Z0=HK.jsxDEV(M,{dimColor:!0,children:[" \xB7 ",HK.jsxDEV(p1,{shortcut:"shift + \u2193",action:"expand"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),Q[32]=Z0;else Z0=Q[32];let t;if(Q[33]!==W0||Q[34]!==y0||Q[35]!==V0)t=HK.jsxDEV(HK.Fragment,{children:[W0,y0,V0,Z0]},void 0,!0,void 0,this),Q[33]=W0,Q[34]=y0,Q[35]=V0,Q[36]=t;else t=Q[36];return t}if(fZ0(B??{},L))return null;if(_.length===0)return null;let S;if(Q[37]!==_)S=Un0(_),Q[37]=_,Q[38]=S;else S=Q[38];let k;if(Q[39]!==K||Q[40]!==S||Q[41]!==X)k=HK.jsxDEV(aDQ,{selected:X,onClick:K,children:S},void 0,!1,void 0,this),Q[39]=K,Q[40]=S,Q[41]=X,Q[42]=k;else k=Q[42];let h;if(Q[43]!==_)h=rh6(_)&&HK.jsxDEV(M,{dimColor:!0,children:[" \xB7 ",s0.arrowDown," to view"]},void 0,!0,void 0,this),Q[43]=_,Q[44]=h;else h=Q[44];let u;if(Q[45]!==h||Q[46]!==k)u=HK.jsxDEV(HK.Fragment,{children:[k,h]},void 0,!0,void 0,this),Q[45]=h,Q[46]=k,Q[47]=u;else u=Q[47];return u}function kDQ(J,Q){let X=`@${J.name}`;return B8(X)+(Q>0?1:0)}function hDQ(J,Q){return{...J,idx:Q}}function uDQ(J,Q){if(J.isIdle!==Q.isIdle)return J.isIdle?1:-1;return 0}function gDQ(J){return{name:J.identity.agentName,color:oDQ(J.identity.color),isIdle:J.isIdle,taskId:J.id}}function mDQ(J,Q){return J.identity.agentName.localeCompare(Q.identity.agentName)}function pDQ(J){return J.type==="in_process_teammate"}function cDQ(J){return J.type==="in_process_teammate"}function dDQ(J){return J.expandedView}function lDQ(J){return SK(J)&&!0}function iDQ(J){return J.viewingAgentTaskId}function nDQ(J){return J.tasks}function rDQ(J){let Q=B61.c(19),{name:X,color:Z,isSelected:Y,isViewed:q,isIdle:K,onClick:G}=J,[z,W]=ve1.useState(!1),H=Y||z,B;if(H){let O;if(Q[0]!==Z||Q[1]!==q||Q[2]!==X)O=Z?HK.jsxDEV(M,{backgroundColor:Z,color:"inverseText",bold:q,children:["@",X]},void 0,!0,void 0,this):HK.jsxDEV(M,{color:"background",inverse:!0,bold:q,children:["@",X]},void 0,!0,void 0,this),Q[0]=Z,Q[1]=q,Q[2]=X,Q[3]=O;else O=Q[3];B=O}else if(K){let O;if(Q[4]!==q||Q[5]!==X)O=HK.jsxDEV(M,{dimColor:!0,bold:q,children:["@",X]},void 0,!0,void 0,this),Q[4]=q,Q[5]=X,Q[6]=O;else O=Q[6];B=O}else if(q){let O;if(Q[7]!==Z||Q[8]!==X)O=HK.jsxDEV(M,{color:Z,bold:!0,children:["@",X]},void 0,!0,void 0,this),Q[7]=Z,Q[8]=X,Q[9]=O;else O=Q[9];B=O}else{let O=!Z,L;if(Q[10]!==Z||Q[11]!==X||Q[12]!==O)L=HK.jsxDEV(M,{color:Z,dimColor:O,children:["@",X]},void 0,!0,void 0,this),Q[10]=Z,Q[11]=X,Q[12]=O,Q[13]=L;else L=Q[13];B=L}if(!G)return B;let U,F;if(Q[14]===Symbol.for("react.memo_cache_sentinel"))U=()=>W(!0),F=()=>W(!1),Q[14]=U,Q[15]=F;else U=Q[14],F=Q[15];let _;if(Q[16]!==B||Q[17]!==G)_=HK.jsxDEV(f,{onClick:G,onMouseEnter:U,onMouseLeave:F,children:B},void 0,!1,void 0,this),Q[16]=B,Q[17]=G,Q[18]=_;else _=Q[18];return _}function aDQ(J){let Q=B61.c(8),{selected:X,onClick:Z,children:Y}=J,[q,K]=ve1.useState(!1),G=X||q,z;if(Q[0]!==Y||Q[1]!==G)z=HK.jsxDEV(M,{color:"background",inverse:G,children:Y},void 0,!1,void 0,this),Q[0]=Y,Q[1]=G,Q[2]=z;else z=Q[2];let W=z;if(!Z)return W;let H,B;if(Q[3]===Symbol.for("react.memo_cache_sentinel"))H=()=>K(!0),B=()=>K(!1),Q[3]=H,Q[4]=B;else H=Q[3],B=Q[4];let U;if(Q[5]!==W||Q[6]!==Z)U=HK.jsxDEV(f,{onClick:Z,onMouseEnter:H,onMouseLeave:B,children:W},void 0,!1,void 0,this),Q[5]=W,Q[6]=Z,Q[7]=U;else U=Q[7];return U}function oDQ(J){if(!J)return;if(n3.includes(J))return sG[J];return}var B61,$RJ,ve1,HK;var jRJ=I(()=>{r6();U9();x7();W6();su();cz();ok1();a0();mB();g9();tu();B61=T(e0(),1),$RJ=T(J1(),1),ve1=T(J1(),1),HK=T(e(),1)});function yRJ(J){let Q=IRJ.c(14),{teamsSelected:X,showHint:Z}=J,Y=O1(tDQ),q;if(Q[0]!==Y)q=Y?Object.values(Y.teammates).filter(sDQ).length:0,Q[0]=Y,Q[1]=q;else q=Q[1];let K=q;if(K===0)return null;let G;if(Q[2]!==Z||Q[3]!==X)G=Z&&X?Fy.jsxDEV(Fy.Fragment,{children:[Fy.jsxDEV(M,{dimColor:!0,children:"\xB7 "},void 0,!1,void 0,this),Fy.jsxDEV(M,{dimColor:!0,children:"Enter to view"},void 0,!1,void 0,this)]},void 0,!0,void 0,this):null,Q[2]=Z,Q[3]=X,Q[4]=G;else G=Q[4];let z=G,W=`${K} ${K===1?"teammate":"teammates"}`,H=X?"selected":"normal",B;if(Q[5]!==W||Q[6]!==H||Q[7]!==X)B=Fy.jsxDEV(M,{color:"background",inverse:X,children:W},H,!1,void 0,this),Q[5]=W,Q[6]=H,Q[7]=X,Q[8]=B;else B=Q[8];let U;if(Q[9]!==z)U=z?Fy.jsxDEV(M,{children:[" ",z]},void 0,!0,void 0,this):null,Q[9]=z,Q[10]=U;else U=Q[10];let F;if(Q[11]!==B||Q[12]!==U)F=Fy.jsxDEV(Fy.Fragment,{children:[B,U]},void 0,!0,void 0,this),Q[11]=B,Q[12]=U,Q[13]=F;else F=Q[13];return F}function sDQ(J){return J.name!=="team-lead"}function tDQ(J){return J.teamContext}var IRJ,Fy;var bRJ=I(()=>{a0();W6();IRJ=T(e0(),1),Fy=T(e(),1)});function eDQ(J){let Q=PRJ.c(9),{value:X,onChange:Z,historyFailedMatch:Y}=J,q=Y?"no matching prompt:":"search prompts:",K;if(Q[0]!==q)K=U61.jsxDEV(M,{dimColor:!0,children:q},void 0,!1,void 0,this),Q[0]=q,Q[1]=K;else K=Q[1];let G=B8(X)+1,z;if(Q[2]!==Z||Q[3]!==G||Q[4]!==X)z=U61.jsxDEV(sX,{value:X,onChange:Z,cursorOffset:X.length,onChangeCursorOffset:J$Q,columns:G,focus:!0,showCursor:!0,multiline:!1,dimColor:!0},void 0,!1,void 0,this),Q[2]=Z,Q[3]=G,Q[4]=X,Q[5]=z;else z=Q[5];let W;if(Q[6]!==K||Q[7]!==z)W=U61.jsxDEV(f,{gap:1,children:[K,z]},void 0,!0,void 0,this),Q[6]=K,Q[7]=z,Q[8]=W;else W=Q[8];return W}function J$Q(){}var PRJ,U61,ERJ;var TRJ=I(()=>{x7();a0();EH();PRJ=T(e0(),1),U61=T(e(),1);ERJ=eDQ});function X$Q(J,Q){if(J)return"draft";switch(Q){case"APPROVED":return"approved";case"CHANGES_REQUESTED":return"changes_requested";default:return"pending"}}async function CRJ(){if(!await y3())return null;let[Q,X]=await Promise.all([_$(),O$()]);if(Q===X)return null;let{stdout:Z,code:Y}=await Z8("gh",["pr","view","--json","number,url,reviewDecision,isDraft,headRefName,state"],{timeout:Q$Q,preserveOutputOnError:!1});if(Y!==0||!Z.trim())return null;try{let q=c1(Z);if(q.headRefName===X||q.headRefName==="main"||q.headRefName==="master")return null;if(q.state==="MERGED"||q.state==="CLOSED")return null;return{number:q.number,url:q.url,reviewState:X$Q(q.isDraft,q.reviewDecision)}}catch{return null}}var Q$Q=5000;var vRJ=I(()=>{T9();uQ();i1()});function fRJ(J,Q=!0){let[X,Z]=jg.useState(q$Q),Y=jg.useRef(null),q=jg.useRef(!1),K=jg.useRef(0);return jg.useEffect(()=>{if(!Q)return;if(q.current)return;let G=!1,z=-1,W=Date.now();async function H(){if(G)return;let U=eD();if(z!==U)z=U,W=Date.now();else if(Date.now()-W>=Y$Q)return;let F=Date.now(),_=await CRJ();if(G)return;if(K.current=F,Z((O)=>{let L=_?.number??null,N=_?.reviewState??null;if(O.number===L&&O.reviewState===N)return O;return{number:L,url:_?.url??null,reviewState:N,lastUpdated:Date.now()}}),Date.now()-F>Z$Q){q.current=!0;return}if(!G)Y.current=setTimeout(H,Se1)}let B=Date.now()-K.current;if(B>=Se1)H();else Y.current=setTimeout(H,Se1-B);return()=>{if(G=!0,Y.current)clearTimeout(Y.current),Y.current=null}},[J,Q]),X}var jg,Se1=60000,Z$Q=4000,Y$Q=3600000,q$Q;var SRJ=I(()=>{N1();vRJ();jg=T(J1(),1),q$Q={number:null,url:null,reviewState:null,lastUpdated:0}});var K$Q,G$Q;var xRJ=I(()=>{ww();a0();Ju();K$Q=T(e0(),1),G$Q=T(e(),1)});function mRJ(J){let Q=gRJ.c(27),{exitMessage:X,vimMode:Z,mode:Y,toolPermissionContext:q,suppressHint:K,isLoading:G,tasksSelected:z,teamsSelected:W,tmuxSelected:H,teammateFooterIndex:B,isPasting:U,isSearching:F,historyQuery:_,setHistoryQuery:O,historyFailedMatch:L,onOpenTasksDialog:N}=J;if(X.show){let C;if(Q[0]!==X.key)C=j7.jsxDEV(M,{dimColor:!0,children:["Press ",X.key," again to exit"]},"exit-message",!0,void 0,this),Q[0]=X.key,Q[1]=C;else C=Q[1];return C}if(U){let C;if(Q[2]===Symbol.for("react.memo_cache_sentinel"))C=j7.jsxDEV(M,{dimColor:!0,children:"Pasting text\u2026"},"pasting-message",!1,void 0,this),Q[2]=C;else C=Q[2];return C}let A;if(Q[3]!==F||Q[4]!==Z)A=MC()&&Z==="INSERT"&&!F,Q[3]=F,Q[4]=Z,Q[5]=A;else A=Q[5];let R=A,D;if(Q[6]!==L||Q[7]!==_||Q[8]!==F||Q[9]!==O)D=F&&j7.jsxDEV(ERJ,{value:_,onChange:O,historyFailedMatch:L},void 0,!1,void 0,this),Q[6]=L,Q[7]=_,Q[8]=F,Q[9]=O,Q[10]=D;else D=Q[10];let $;if(Q[11]!==R)$=R?j7.jsxDEV(M,{dimColor:!0,children:"-- INSERT --"},"vim-insert",!1,void 0,this):null,Q[11]=R,Q[12]=$;else $=Q[12];let y=!K&&!R,v;if(Q[13]!==G||Q[14]!==Y||Q[15]!==N||Q[16]!==y||Q[17]!==z||Q[18]!==B||Q[19]!==W||Q[20]!==H||Q[21]!==q)v=j7.jsxDEV(W$Q,{mode:Y,toolPermissionContext:q,showHint:y,isLoading:G,tasksSelected:z,teamsSelected:W,teammateFooterIndex:B,tmuxSelected:H,onOpenTasksDialog:N},void 0,!1,void 0,this),Q[13]=G,Q[14]=Y,Q[15]=N,Q[16]=y,Q[17]=z,Q[18]=B,Q[19]=W,Q[20]=H,Q[21]=q,Q[22]=v;else v=Q[22];let E;if(Q[23]!==D||Q[24]!==$||Q[25]!==v)E=j7.jsxDEV(f,{justifyContent:"flex-start",gap:1,children:[D,$,v]},void 0,!0,void 0,this),Q[23]=D,Q[24]=$,Q[25]=v,Q[26]=E;else E=Q[26];return E}function W$Q({mode:J,toolPermissionContext:Q,showHint:X,isLoading:Z,tasksSelected:Y,teamsSelected:q,tmuxSelected:K,teammateFooterIndex:G,onOpenTasksDialog:z}){let{columns:W}=l8(),H=r9("chat:cycleMode","Chat","shift+tab"),B=O1((u0)=>u0.tasks),U=O1((u0)=>u0.teamContext),F=aX(),[_]=Ig.useState(()=>F.getState().remoteSessionUrl),O=O1((u0)=>u0.viewSelectionMode),L=O1((u0)=>u0.viewingAgentTaskId),N=O1((u0)=>u0.expandedView),A=N==="teammates",R=fRJ(Z,uRJ()),D=O1((u0)=>!1),$=Ig.useSyncExternalStore(kRJ?.subscribeToProactiveChanges??z$Q,kRJ?.getNextTickAt??hRJ,hRJ),y=!1,v="idle",E=!1,C=W46(),S=l10().getState,k=$!==null,h=!1,u=Ig.useMemo(()=>x8(Object.values(B),(u0)=>SK(u0)&&!0),[B]),x=$L0(),m=x!==void 0&&x.length>0,p=r9("chat:cancel","Chat","esc").toLowerCase(),c=r9("app:toggleTodos","Global","ctrl+t"),r=r9("chat:killAgents","Chat","ctrl+x ctrl+k"),J0="",[n]=[!1],s=null;Ig.useEffect(()=>{},[!1,n]);let X0=O1((u0)=>u0.notifications.current?.key==="kill-agents-confirm"),Y0=p6()&&!aM()&&U!==void 0&&x8(Object.values(U.teammates),(u0)=>u0.name!=="team-lead")>0;if(J==="bash")return j7.jsxDEV(M,{color:"bashBorder",children:"! for bash mode"},void 0,!1,void 0,this);let G0=Q?.mode,j0=!GV8(G0),W0=L?B[L]:void 0,y0=O==="viewing-agent"&&W0?.type==="in_process_teammate",V0=y0&&W0!=null&&W0.status!=="running",Z0=u>0||y0,t=(j0?1:0)+(Z0?1:0)+(Y0?1:0),q0=uRJ()&&R.number!==null&&R.reviewState!==null&&R.url!==null&&t<2&&(t===0||W>=80),Q0=t<2,O0=!A&&Z0&&Object.values(B).some((u0)=>u0.type==="in_process_teammate")||!A&&y0,D0=G0&&j0&&!S9()?j7.jsxDEV(M,{color:rU(G0),children:[Kz0(G0)," ",kb(G0).toLowerCase()," on",Q0&&j7.jsxDEV(M,{dimColor:!0,children:[" ",j7.jsxDEV(p1,{shortcut:H,action:"cycle",parens:!0},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},"mode",!0,void 0,this):null,F0=[..._?[j7.jsxDEV(zJ,{url:_,children:j7.jsxDEV(M,{color:"ide",children:[s0.circleDouble," remote"]},void 0,!0,void 0,this)},"remote",!1,void 0,this)]:[],...[],...p6()&&Y0?[j7.jsxDEV(yRJ,{teamsSelected:q,showHint:X&&!Z0},"teams",!1,void 0,this)]:[],...q0?[j7.jsxDEV(Bn0,{number:R.number,url:R.url,reviewState:R.reviewState},"pr-status",!1,void 0,this)]:[]],I0=Object.values(B).some((u0)=>u0.type==="in_process_teammate"&&u0.status==="running"),U0=Object.values(B).some((u0)=>u0.type==="local_agent"&&u0.status==="running"),P0=X?H$Q(Z,p,c,r,m,N,I0,U0,X0):[];if(V0)F0.push(j7.jsxDEV(M,{dimColor:!0,children:j7.jsxDEV(p1,{shortcut:p,action:"return to team lead"},void 0,!1,void 0,this)},"esc-return",!1,void 0,this));else if(!O0&&X)F0.push(...P0);if(O0){let u0=[...D0?[D0]:[],...F0,...V0?[]:P0];return j7.jsxDEV(f,{flexDirection:"column",children:[j7.jsxDEV(f,{children:j7.jsxDEV(fe1,{tasksSelected:Y,isViewingTeammate:y0,teammateFooterIndex:G,isLeaderIdle:!Z,onOpenDialog:z},void 0,!1,void 0,this)},void 0,!1,void 0,this),u0.length>0&&j7.jsxDEV(f,{children:j7.jsxDEV(V8,{children:u0},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}let $0=!1,w0=Z0&&!O0&&!fZ0(B,A)?j7.jsxDEV(fe1,{tasksSelected:Y,isViewingTeammate:y0,teammateFooterIndex:G,isLeaderIdle:!Z,onOpenDialog:z},void 0,!1,void 0,this):null;if(F0.length===0&&!w0&&!D0&&X)F0.push(j7.jsxDEV(M,{dimColor:!0,children:"? for shortcuts"},"shortcuts-hint",!1,void 0,this));let E0=L1().copyOnSelect??!0,h0=C&&(!E0||rP());if(yJ()&&h0){let u0=N8()==="macos",B0=u0&&(S()?.lastPressHadAlt??!1);F0.push(j7.jsxDEV(M,{dimColor:!0,children:j7.jsxDEV(V8,{children:[!E0&&j7.jsxDEV(p1,{shortcut:"ctrl+c",action:"copy"},void 0,!1,void 0,this),rP()&&(B0?j7.jsxDEV(M,{children:"set macOptionClickForcesSelection in VS Code settings"},void 0,!1,void 0,this):j7.jsxDEV(p1,{shortcut:u0?"option+click":"shift+click",action:"native select"},void 0,!1,void 0,this))]},void 0,!0,void 0,this)},"selection-copy",!1,void 0,this))}if((w0||$0)&&X&&!Y0)F0.push(j7.jsxDEV(M,{dimColor:!0,children:Y?j7.jsxDEV(p1,{shortcut:"Enter",action:"view tasks"},void 0,!1,void 0,this):j7.jsxDEV(p1,{shortcut:"\u2193",action:"manage"},void 0,!1,void 0,this)},"manage-tasks",!1,void 0,this));if(F0.length===0&&!w0&&!D0)return yJ()?j7.jsxDEV(M,{children:" "},void 0,!1,void 0,this):null;return j7.jsxDEV(f,{height:1,overflow:"hidden",children:[D0&&j7.jsxDEV(f,{flexShrink:0,children:[D0,(w0||F0.length>0)&&j7.jsxDEV(M,{dimColor:!0,children:" \xB7 "},void 0,!1,void 0,this)]},void 0,!0,void 0,this),w0&&j7.jsxDEV(f,{flexShrink:0,children:[w0,F0.length>0&&j7.jsxDEV(M,{dimColor:!0,children:" \xB7 "},void 0,!1,void 0,this)]},void 0,!0,void 0,this),F0.length>0&&j7.jsxDEV(M,{wrap:"truncate",children:j7.jsxDEV(V8,{children:F0},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}function H$Q(J,Q,X,Z,Y,q,K,G,z){let W;if(K)switch(q){case"none":W="show tasks";break;case"tasks":W="show teammates";break;case"teammates":W="hide";break}else W=q==="tasks"?"hide tasks":"show tasks";let H=Y||K;return[...J?[j7.jsxDEV(M,{dimColor:!0,children:j7.jsxDEV(p1,{shortcut:Q,action:"interrupt"},void 0,!1,void 0,this)},"esc",!1,void 0,this)]:[],...!J&&G&&!z?[j7.jsxDEV(M,{dimColor:!0,children:j7.jsxDEV(p1,{shortcut:Z,action:"stop agents"},void 0,!1,void 0,this)},"kill-agents",!1,void 0,this)]:[],...H?[j7.jsxDEV(M,{dimColor:!0,children:j7.jsxDEV(p1,{shortcut:X,action:W},void 0,!1,void 0,this)},"toggle-tasks",!1,void 0,this)]:[]]}function uRJ(){return L1().prStatusFooterEnabled??!0}var gRJ,Ig,j7,kRJ=null,z$Q=(J)=>()=>{},hRJ=()=>null;var pRJ=I(()=>{a0();r6();YZ0();nz();vW();jRJ();cz();J61();tu();lZ();bRJ();Ew();W6();N1();TRJ();SRJ();g9();R9();U9();Uo0();A6();xRJ();bt1();Ro0();fz();aP();tx0();m8();k9();rk1();gRJ=T(e0(),1),Ig=T(J1(),1),j7=T(e(),1)});function B$Q({apiKeyStatus:J,debug:Q,exitMessage:X,vimMode:Z,mode:Y,autoUpdaterResult:q,isAutoUpdating:K,verbose:G,onAutoUpdaterResult:z,onChangeIsUpdating:W,suggestions:H,selectedSuggestion:B,maxColumnWidth:U,toolPermissionContext:F,helpOpen:_,suppressHint:O,isLoading:L,tasksSelected:N,teamsSelected:A,tmuxSelected:R,teammateFooterIndex:D,ideSelection:$,mcpClients:y,isPasting:v=!1,isInputWrapped:E=!1,messages:C,isSearching:S,historyQuery:k,setHistoryQuery:h,historyFailedMatch:u,onOpenTasksDialog:x}){let m=CK(),{columns:p,rows:c}=l8(),r=Fa.useRef(C);r.current=C;let J0=Fa.useMemo(()=>Ce1(C),[C]),n=p<80,s=yJ(),X0=s&&c<24,Y0=e81(),G0=O1((V0)=>V0.coordinatorTaskIndex),j0=N&&(Y0===0||G0<0),W0=O||Te1(m)||S,y0=Fa.useMemo(()=>s&&H.length?{suggestions:H,selectedSuggestion:B,maxColumnWidth:U}:null,[s,H,B,U]);if(rGJ(y0),H.length&&!s)return KV.jsxDEV(f,{paddingX:2,paddingY:0,children:KV.jsxDEV(uV0,{suggestions:H,selectedSuggestion:B,maxColumnWidth:U},void 0,!1,void 0,this)},void 0,!1,void 0,this);if(_)return KV.jsxDEV(le0,{dimColor:!0,fixedWidth:!0,paddingX:2},void 0,!1,void 0,this);return KV.jsxDEV(KV.Fragment,{children:[KV.jsxDEV(f,{flexDirection:n?"column":"row",justifyContent:n?"flex-start":"space-between",paddingX:2,gap:n?0:1,children:[KV.jsxDEV(f,{flexDirection:"column",flexShrink:n?0:1,children:[Y==="prompt"&&!X0&&!X.show&&!v&&Te1(m)&&KV.jsxDEV(RRJ,{messagesRef:r,lastAssistantMessageId:J0,vimMode:Z},void 0,!1,void 0,this),KV.jsxDEV(mRJ,{exitMessage:X,vimMode:Z,mode:Y,toolPermissionContext:F,suppressHint:W0,isLoading:L,tasksSelected:j0,teamsSelected:A,teammateFooterIndex:D,tmuxSelected:R,isPasting:v,isSearching:S,historyQuery:k,setHistoryQuery:h,historyFailedMatch:u,onOpenTasksDialog:x},void 0,!1,void 0,this)]},void 0,!0,void 0,this),KV.jsxDEV(f,{flexShrink:1,gap:1,children:[s?null:KV.jsxDEV(k81,{apiKeyStatus:J,autoUpdaterResult:q,debug:Q,isAutoUpdating:K,verbose:G,messages:C,onAutoUpdaterResult:z,onChangeIsUpdating:W,ideSelection:$,mcpClients:y,isInputWrapped:E,isNarrow:n},void 0,!1,void 0,this),!1]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),!1]},void 0,!0,void 0,this)}var Fa,KV,cRJ;var dRJ=I(()=>{g01();ww();U9();a0();W6();fz();vO0();J61();MRJ();h81();pRJ();rt0();Pn1();Fa=T(J1(),1),KV=T(e(),1);cRJ=Fa.memo(B$Q)});function U$Q(){if(!p6())return;let J=Hq();if(!J)return;if(n3.includes(J))return sG[J];return}function lRJ(J){let Q=xe1.c(3),{isLoading:X,themeColor:Z}=J,q=Z??void 0,K;if(Q[0]!==q||Q[1]!==X)K=P40.jsxDEV(M,{color:q,dimColor:X,children:[s0.pointer,"\xA0"]},void 0,!0,void 0,this),Q[0]=q,Q[1]=X,Q[2]=K;else K=Q[2];return K}function ke1(J){let Q=xe1.c(6),{mode:X,isLoading:Z,viewingAgentName:Y,viewingAgentColor:q}=J,K;if(Q[0]===Symbol.for("react.memo_cache_sentinel"))K=U$Q(),Q[0]=K;else K=Q[0];let G=K,z=q?sG[q]:void 0,W;if(Q[1]!==Z||Q[2]!==X||Q[3]!==z||Q[4]!==Y)W=P40.jsxDEV(f,{alignItems:"flex-start",alignSelf:"flex-start",flexWrap:"nowrap",justifyContent:"flex-start",children:Y?P40.jsxDEV(lRJ,{isLoading:Z,themeColor:z},void 0,!1,void 0,this):X==="bash"?P40.jsxDEV(M,{color:"bashBorder",dimColor:Z,children:"!\xA0"},void 0,!1,void 0,this):P40.jsxDEV(lRJ,{isLoading:Z,themeColor:p6()?G:void 0},void 0,!1,void 0,this)},void 0,!1,void 0,this),Q[1]=Z,Q[2]=X,Q[3]=z,Q[4]=Y,Q[5]=W;else W=Q[5];return W}var xe1,P40;var iRJ=I(()=>{r6();a0();mB();FZ();lZ();xe1=T(e0(),1),P40=T(e(),1)});function O$Q(J){try{return c1(J)?.type==="idle_notification"}catch{return!1}}function L$Q(J){return`<${F4}>
|
|
6894
6894
|
<${oY}>+${J} more tasks completed</${oY}>
|
|
6895
6895
|
<${o5}>completed</${o5}>
|
|
6896
6896
|
</${F4}>`}function V$Q(J){let Q=J.filter((G)=>typeof G.value!=="string"||!O$Q(G.value)),X=Q.filter((G)=>G.mode==="task-notification"),Z=Q.filter((G)=>G.mode!=="task-notification");if(X.length<=he1)return[...Z,...X];let Y=X.slice(0,he1-1),q=X.length-(he1-1),K={value:L$Q(q),mode:"task-notification"};return[...Z,...Y,K]}function N$Q(){let J=By(),Q=O1((Y)=>!!Y.viewingAgentTaskId),X=!1,Z=rRJ.useMemo(()=>{if(J.length===0)return null;let Y=J.filter(yJJ);if(Y.length===0)return null;let q=V$Q(Y);return Zz(q.map((K)=>{let G=K.value;if(K.mode==="bash"&&typeof G==="string")G=`<bash-input>${G}</bash-input>`;return $1({content:G})}))},[J]);if(Q||Z===null)return null;return F61.jsxDEV(f,{marginTop:1,flexDirection:"column",children:Z.map((Y,q)=>F61.jsxDEV(Rv6,{isFirst:q===0,useBriefLayout:!1,children:F61.jsxDEV(Iw,{message:Y,lookups:TT,addMargin:!1,tools:[],commands:[],verbose:!1,inProgressToolUseIDs:_$Q,progressMessagesForMessage:[],shouldAnimate:!1,shouldShowDot:!1,isTranscriptMode:!1,isStatic:!0},void 0,!1,void 0,this)},q,!1,void 0,this))},void 0,!1,void 0,this)}var nRJ,rRJ,F61,_$Q,he1=3,_61;var ue1=I(()=>{a0();W6();zZ();Hx1();M40();rq();M8();i1();v70();nRJ=T(J1(),1),rRJ=T(J1(),1),F61=T(e(),1),_$Q=new Set;_61=nRJ.memo(N$Q)});function oRJ(J){let Q=aRJ.c(1),{hasStash:X}=J;if(!X)return null;let Z;if(Q[0]===Symbol.for("react.memo_cache_sentinel"))Z=ge1.jsxDEV(f,{paddingLeft:2,children:ge1.jsxDEV(M,{dimColor:!0,children:[s0.pointerSmall," Stashed (auto-restores after submit)"]},void 0,!0,void 0,this)},void 0,!1,void 0,this),Q[0]=Z;else Z=Q[0];return Z}var aRJ,ge1;var sRJ=I(()=>{r6();a0();aRJ=T(e0(),1),ge1=T(e(),1)});function A$Q(J,Q){if(J.length<=w$Q)return{truncatedText:J,placeholderContent:""};let X=Math.floor(tRJ/2),Z=Math.floor(tRJ/2),Y=J.slice(0,X),q=J.slice(-Z),K=J.slice(X,-Z),G=lQ0(K),W=R$Q(Q,G);return{truncatedText:Y+W+q,placeholderContent:K}}function R$Q(J,Q){return`[...Truncated text #${J} +${Q} lines...]`}function eRJ(J,Q){let X=Object.keys(Q).map(Number),Z=X.length>0?Math.max(...X)+1:1,{truncatedText:Y,placeholderContent:q}=A$Q(J,Z);if(!q)return{newInput:J,newPastedContents:Q};return{newInput:Y,newPastedContents:{...Q,[Z]:{id:Z,type:"text",content:q}}}}var w$Q=1e4,tRJ=1000;var JMJ=I(()=>{uw()});function QMJ({input:J,pastedContents:Q,onInputChange:X,setCursorOffset:Z,setPastedContents:Y}){let[q,K]=sw0.useState(!1);sw0.useEffect(()=>{if(q)return;if(J.length<=1e4)return;let{newInput:G,newPastedContents:z}=eRJ(J,Q);X(G),Z(G.length),Y(z),K(!0)},[J,q,Q,X,Y,Z]),sw0.useEffect(()=>{if(J==="")K(!1)},[J])}var sw0;var XMJ=I(()=>{JMJ();sw0=T(J1(),1)});function D$Q(J){return!M$Q.some((Q)=>Q.test(J))}function $$Q(J,Q){let X=[],Z=new Set,Y=new Map;for(let q=1;X.length<Q&&q<=Q;q++)for(let K of J){if(X.length>=Q)break;if(!D$Q(K))continue;let G=Math.max(K.lastIndexOf("/"),K.lastIndexOf("\\")),z=G>=0?K.slice(G+1):K;if(!z||Z.has(z))continue;let W=G>=0?K.slice(0,G):".";if((Y.get(W)??0)>=q)continue;X.push(z),Z.add(z),Y.set(W,(Y.get(W)??0)+1)}return X.length>=Q?X:[]}async function j$Q(){if(k8.platform==="win32")return[];if(!await y3())return[];try{let J=await Xs0(),Q=["log","-n","1000","--pretty=format:","--name-only","--diff-filter=M"],X=new Map,Z=(q)=>{for(let K of q.split(`
|
|
@@ -6939,7 +6939,7 @@ ${m}
|
|
|
6939
6939
|
${A.text}
|
|
6940
6940
|
</${JG}>`}).join(`
|
|
6941
6941
|
|
|
6942
|
-
`);if(Y(L)){let A=new Set(_.map((R)=>R.id));K((R)=>({...R,inbox:{messages:R.inbox.messages.filter((D)=>!A.has(D.id))}}))}else b("[InboxPoller] Submission rejected, keeping messages queued")},[J,Q,X,Y,K,G,q]);let H=J&&!!S61(q.getState());EB(()=>void W(),H?ajQ:null);let B=Aa.useRef(!1);Aa.useEffect(()=>{if(!J)return;if(B.current)return;if(S61(q.getState()))B.current=!0,W()},[J,W,q])}var Aa,ajQ=1000;var j$J=I(()=>{dO();zZ();sP();G81();W6();s6();PH();Z1();Ul1();M8();vW();lq();i1();Vw();Ew();P90();e3();tq();FZ();lO();TK();v90();Aa=T(J1(),1)});var I$J;var y$J=I(()=>{Z1();tq();I$J=T(J1(),1)});function E$J(J){let Q=b$J.c(7),{autoConnectIdeFlag:X,ideToInstallExtension:Z,setDynamicMcpConfig:Y,setShowIdeOnboarding:q,setIDEInstallationState:K}=J,G,z;if(Q[0]!==X||Q[1]!==Z||Q[2]!==Y||Q[3]!==K||Q[4]!==q)G=()=>{sR6(function(B){if(!B)return;if(!((L1().autoConnectIde||X||tz()||process.env.GLOCK_SSE_PORT||Z||W1(process.env.GLOCK_AUTO_CONNECT_IDE))&&!rY(process.env.GLOCK_AUTO_CONNECT_IDE)))return;Y((_)=>{if(_?.ide)return _;return{..._,ide:{type:B.url.startsWith("ws:")?"ws-ide":"sse-ide",url:B.url,ideName:B.name,authToken:B.authToken,ideRunningInWindows:B.ideRunningInWindows,scope:"dynamic"}}})},Z,()=>q(!0),(H)=>K(H))},z=[X,Z,Y,q,K],Q[0]=X,Q[1]=Z,Q[2]=Y,Q[3]=K,Q[4]=q,Q[5]=G,Q[6]=z;else G=Q[5],z=Q[6];P$J.useEffect(G,z)}var b$J,P$J;var T$J=I(()=>{m8();t1();b5();b$J=T(e0(),1),P$J=T(J1(),1)});function f$J(J){let Q=C$J.c(10),{onBackgroundSession:X,isLoading:Z}=J,Y=T6(),q=aX(),[K,G]=v$J.useState(!1),z=DM(G,X,sjQ),W;if(Q[0]!==q||Q[1]!==z||Q[2]!==Z||Q[3]!==Y)W=()=>{let R=q.getState();if(_E1(R)){if(tg0(()=>q.getState(),Y),!L1().hasUsedBackgroundTask)q8(ojQ)}else if(W1("false")&&Z)z()},Q[0]=q,Q[1]=z,Q[2]=Z,Q[3]=Y,Q[4]=W;else W=Q[4];let H=W,B=O1(_E1),U;if(Q[5]===Symbol.for("react.memo_cache_sentinel"))U=W1("false"),Q[5]=U;else U=Q[5];let _=B||U&&Z,O;if(Q[6]!==_)O={context:"Task",isActive:_},Q[6]=_,Q[7]=O;else O=Q[7];J8("task:background",H,O);let L=r9("task:background","Task","ctrl+b"),N=k8.terminal==="tmux"&&L==="ctrl+b"?"ctrl+b ctrl+b":L;if(!Z||!K)return null;let A;if(Q[8]!==N)A=x61.jsxDEV(f,{paddingLeft:2,children:x61.jsxDEV(M,{dimColor:!0,children:x61.jsxDEV(p1,{shortcut:N,action:"background"},void 0,!1,void 0,this)},void 0,!1,void 0,this)},void 0,!1,void 0,this),Q[8]=N,Q[9]=A;else A=Q[9];return A}function ojQ(J){return J.hasUsedBackgroundTask?J:{...J,hasUsedBackgroundTask:!0}}function sjQ(){}var C$J,v$J,x61;var S$J=I(()=>{$F0();a0();f6();nz();W6();zk();m8();WZ();t1();g9();C$J=T(e0(),1),v$J=T(J1(),1),x61=T(e(),1)});function x$J({setMessages:J,setIsLoading:Q,resetLoadingState:X,setAbortController:Z,onBackgroundQuery:Y}){let q=O1((H)=>H.foregroundedTaskId),K=O1((H)=>H.foregroundedTaskId?H.tasks[H.foregroundedTaskId]:void 0),G=T6(),z=g40.useRef(0),W=g40.useCallback(()=>{if(q){G((H)=>{let B=H.foregroundedTaskId;if(!B)return H;let U=H.tasks[B];if(!U)return{...H,foregroundedTaskId:void 0};return{...H,foregroundedTaskId:void 0,tasks:{...H.tasks,[B]:{...U,isBackgrounded:!0}}}}),J([]),X(),Z(null);return}Y()},[q,G,J,X,Z,Y]);return g40.useEffect(()=>{if(!q){z.current=0;return}if(!K||K.type!=="local_agent"){G((B)=>({...B,foregroundedTaskId:void 0})),X(),z.current=0;return}let H=K.messages??[];if(H.length!==z.current)z.current=H.length,J([...H]);if(K.status==="running"){let B=K.abortController;if(B?.signal.aborted){G((U)=>{if(!U.foregroundedTaskId)return U;let F=U.tasks[U.foregroundedTaskId];if(!F)return{...U,foregroundedTaskId:void 0};return{...U,foregroundedTaskId:void 0,tasks:{...U.tasks,[U.foregroundedTaskId]:{...F,isBackgrounded:!0}}}}),X(),Z(null),z.current=0;return}if(Q(!0),B)Z(B)}else G((B)=>{let U=B.foregroundedTaskId;if(!U)return B;let F=B.tasks[U];if(!F)return{...B,foregroundedTaskId:void 0};return{...B,foregroundedTaskId:void 0,tasks:{...B.tasks,[U]:{...F,isBackgrounded:!0}}}}),X(),Z(null),z.current=0},[q,K,G,J,Q,X,Z]),{handleBackgroundSession:W}}var g40;var k$J=I(()=>{W6();g40=T(J1(),1)});function h$J(J){let Q=h61.c(18),{model:X,onDone:Z}=J,Y,q={enabled:!1,dialogTitle:"",dialogDescription:""},K=m40.useRef(Z),G;if(Q[1]!==Z)G=()=>{K.current=Z},Q[1]=Z,Q[2]=G;else G=Q[2];m40.useEffect(G);let z;if(Q[3]===Symbol.for("react.memo_cache_sentinel"))z=()=>{K.current("dismiss")},Q[3]=z;else z=Q[3];let W=z,H;if(Q[4]===Symbol.for("react.memo_cache_sentinel"))H=[],Q[4]=H;else H=Q[4];m40.useEffect(ejQ,H);let B,U;if(Q[5]===Symbol.for("react.memo_cache_sentinel"))B=()=>{let E=setTimeout(W,tjQ);return()=>clearTimeout(E)},U=[W],Q[5]=B,Q[6]=U;else B=Q[5],U=Q[6];m40.useEffect(B,U);let F;if(Q[7]!==X){let E=TU0(X);F=E?f60(E):"high",Q[7]=X,Q[8]=F}else F=Q[8];let _=F,O;if(Q[9]!==_)O=(E)=>{K.current(E)},Q[9]=_,Q[10]=O;else O=Q[10];let L=O,N;if(Q[11]===Symbol.for("react.memo_cache_sentinel"))N=[{label:U3.jsxDEV(_08,{level:"medium",text:"Medium (recommended)"},void 0,!1,void 0,this),value:"medium"},{label:U3.jsxDEV(_08,{level:"high",text:"High"},void 0,!1,void 0,this),value:"high"},{label:U3.jsxDEV(_08,{level:"low",text:"Low"},void 0,!1,void 0,this),value:"low"}],Q[11]=N;else N=Q[11];let A=N,R;if(Q[12]===Symbol.for("react.memo_cache_sentinel"))R=U3.jsxDEV(f,{marginBottom:1,flexDirection:"column",children:U3.jsxDEV(M,{children:q.dialogDescription},void 0,!1,void 0,this)},void 0,!1,void 0,this),Q[12]=R;else R=Q[12];let D;if(Q[13]===Symbol.for("react.memo_cache_sentinel"))D=U3.jsxDEV(k61,{level:"low"},void 0,!1,void 0,this),Q[13]=D;else D=Q[13];let $;if(Q[14]===Symbol.for("react.memo_cache_sentinel"))$=U3.jsxDEV(k61,{level:"medium"},void 0,!1,void 0,this),Q[14]=$;else $=Q[14];let y;if(Q[15]===Symbol.for("react.memo_cache_sentinel"))y=U3.jsxDEV(f,{marginBottom:1,children:U3.jsxDEV(M,{dimColor:!0,children:[D," low ","\xB7"," ",$," medium ","\xB7"," ",U3.jsxDEV(k61,{level:"high"},void 0,!1,void 0,this)," high"]},void 0,!0,void 0,this)},void 0,!1,void 0,this),Q[15]=y;else y=Q[15];let v;if(Q[16]!==L)v=U3.jsxDEV(OZ,{title:q.dialogTitle,children:U3.jsxDEV(f,{flexDirection:"column",paddingX:2,paddingY:1,children:[R,y,U3.jsxDEV(Q8,{options:A,onChange:L,onCancel:W},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this),Q[16]=L,Q[17]=v;else v=Q[17];return v}function ejQ(){JIQ()}function k61(J){let Q=h61.c(4),{level:X}=J,Z;if(Q[0]!==X)Z=QN0(X),Q[0]=X,Q[1]=Z;else Z=Q[1];let Y;if(Q[2]!==Z)Y=U3.jsxDEV(M,{color:"suggestion",children:Z},void 0,!1,void 0,this),Q[2]=Z,Q[3]=Y;else Y=Q[3];return Y}function _08(J){let Q=h61.c(5),{level:X,text:Z}=J,Y;if(Q[0]!==X)Y=U3.jsxDEV(k61,{level:X},void 0,!1,void 0,this),Q[0]=X,Q[1]=Y;else Y=Q[1];let q;if(Q[2]!==Y||Q[3]!==Z)q=U3.jsxDEV(U3.Fragment,{children:[Y," ",Z]},void 0,!0,void 0,this),Q[2]=Y,Q[3]=Z,Q[4]=q;else q=Q[4];return q}function u$J(J){return!1}function JIQ(){q8((J)=>{if(J.effortCalloutV2Dismissed)return J;return{...J,effortCalloutV2Dismissed:!0}})}var h61,m40,U3,tjQ=30000;var g$J=I(()=>{a0();m8();sN();AQ();$e0();TH();h61=T(e0(),1),m40=T(J1(),1),U3=T(e(),1)});function u61(J,Q){let[X,Z]=O08.default.useState(Q);return O08.default.useEffect(()=>{mA(J,Q).then(Z)},[J,Q]),X}var O08;var m$J=I(()=>{O08=T(J1(),1)});import{readFile as QIQ,stat as XIQ}from"fs/promises";function ZIQ(J){let Q=J;return Q=Q.replace(/"(sk-ant[^\s"']{24,})"/g,'"[REDACTED_API_KEY]"'),Q=Q.replace(/(?<![A-Za-z0-9"'])(sk-ant-?[A-Za-z0-9_-]{10,})(?![A-Za-z0-9"'])/g,"[REDACTED_API_KEY]"),Q=Q.replace(/AWS key: "(AWS[A-Z0-9]{20,})"/g,'AWS key: "[REDACTED_AWS_KEY]"'),Q=Q.replace(/(AKIA[A-Z0-9]{16})/g,"[REDACTED_AWS_KEY]"),Q=Q.replace(/(?<![A-Za-z0-9])(AIza[A-Za-z0-9_-]{35})(?![A-Za-z0-9])/g,"[REDACTED_GCP_KEY]"),Q=Q.replace(/(?<![A-Za-z0-9])([a-z0-9-]+@[a-z0-9-]+\.iam\.gserviceaccount\.com)(?![A-Za-z0-9])/g,"[REDACTED_GCP_SERVICE_ACCOUNT]"),Q=Q.replace(/(["']?x-api-key["']?\s*[:=]\s*["']?)[^"',\s)}\]]+/gi,"$1[REDACTED_API_KEY]"),Q=Q.replace(/(["']?authorization["']?\s*[:=]\s*["']?(bearer\s+)?)[^"',\s)}\]]+/gi,"$1[REDACTED_TOKEN]"),Q=Q.replace(/(AWS[_-][A-Za-z0-9_]+\s*[=:]\s*)["']?[^"',\s)}\]]+["']?/gi,"$1[REDACTED_AWS_VALUE]"),Q=Q.replace(/(GOOGLE[_-][A-Za-z0-9_]+\s*[=:]\s*)["']?[^"',\s)}\]]+["']?/gi,"$1[REDACTED_GCP_VALUE]"),Q=Q.replace(/((API[-_]?KEY|TOKEN|SECRET|PASSWORD)\s*[=:]\s*)["']?[^"',\s)}\]]+["']?/gi,"$1[REDACTED]"),Q}async function g61(J,Q,X){try{b("Collecting transcript for sharing",{level:"info"});let Z=NH(J),Y=ks1(J),q=await J81(Y),K;try{let U=TY(),{size:F}=await XIQ(U);if(F<=$s1)K=await QIQ(U,"utf-8");else b(`Skipping raw transcript read: file too large (${F} bytes)`,{level:"warn"})}catch{}let G={trigger:Q,version:"0.1.16",platform:process.platform,transcript:Z,subagentTranscripts:Object.keys(q).length>0?q:void 0,rawTranscriptJsonl:K},z=ZIQ(l0(G));await cW();let W=lE();if(W.error)return{success:!1};let H={"Content-Type":"application/json","User-Agent":ck(),...W.headers},B=await y8.post("https://api.getglock.dev/api/glock_shared_session_transcripts",{content:z,appearance_id:X},{headers:H,timeout:30000});if(B.status===200||B.status===201){let U=B.data;return b("Transcript shared successfully",{level:"info"}),{success:!0,transcriptId:U?.transcript_id}}return{success:!1}}catch(Z){return b(Q1(Z),{level:"error"}),{success:!1}}}var L08=I(()=>{JX();N9();Z1();T1();lk();M8();gJ();i1()});import{randomUUID as p$J}from"crypto";function p40({hideThanksAfterMs:J,onOpen:Q,onSelect:X,shouldShowTranscriptPrompt:Z,onTranscriptPromptShown:Y,onTranscriptSelect:q}){let[K,G]=_A.useState("closed"),[z,W]=_A.useState(null),H=_A.useRef(p$J()),B=_A.useRef(null),U=_A.useCallback(()=>{G("thanks"),setTimeout((N,A)=>{N("closed"),A(null)},J,G,W)},[J]),F=_A.useCallback(()=>{G("submitted"),setTimeout(G,J,"closed")},[J]),_=_A.useCallback(()=>{if(K!=="closed")return;G("open"),H.current=p$J(),Q(H.current)},[K,Q]),O=_A.useCallback((N)=>{if(W(N),B.current=N,X(H.current,N),N==="dismissed")G("closed"),W(null);else if(Z?.(N))return G("transcript_prompt"),Y?.(H.current,N),!0;else U();return!1},[U,X,Z,Y]),L=_A.useCallback((N)=>{switch(N){case"yes":G("submitting"),(async()=>{try{if(await q?.(H.current,N,B.current))F();else U()}catch{U()}})();break;case"no":case"dont_ask_again":q?.(H.current,N,B.current),U();break}},[U,F,q]);return{state:K,lastResponse:z,open:_,handleSelect:O,handleTranscriptSelect:L}}var _A;var m61=I(()=>{_A=T(J1(),1)});function d$J(J,Q,X,Z="session",Y=!1){let q=iK.useRef("unknown");q.current=nB(J)?.message?.id||"unknown";let[K,G]=iK.useState(()=>({timeLastShown:null,submitCountAtLastAppearance:null})),z=u61("jarvis_api_error",YIQ),W=u61("jarvis_api_error",c$J),H=u61("jarvis_api_error",c$J),B=h6().feedbackSurveyRate,U=iK.useRef(Date.now()),F=iK.useRef(X),_=iK.useRef(X);_.current=X;let O=iK.useRef(J);O.current=J;let L=iK.useRef(!1),N=iK.useRef(null),A=iK.useCallback((p,c)=>{if(G((r)=>{if(r.timeLastShown===p&&r.submitCountAtLastAppearance===c)return r;return{timeLastShown:p,submitCountAtLastAppearance:c}}),L1().feedbackSurveyState?.lastShownTime!==p)q8((r)=>({...r,feedbackSurveyState:{lastShownTime:p}}))},[]),R=iK.useCallback((p)=>{A(Date.now(),_.current),l("jarvis_api_error",{event_type:"appeared",appearance_id:p,last_assistant_message_id:q.current,survey_type:Z})},[A,Z]),D=iK.useCallback((p,c)=>{A(Date.now(),_.current),l("jarvis_api_error",{event_type:"responded",appearance_id:p,response:c,last_assistant_message_id:q.current,survey_type:Z})},[A,Z]),$=iK.useCallback((p)=>{if(p!=="bad"&&p!=="good")return!1;if(L1().transcriptShareDismissed)return!1;if(!f2("allow_product_feedback"))return!1;let c=p==="bad"?W.probability:H.probability;return Math.random()<=c},[W.probability,H.probability]),y=iK.useCallback((p,c)=>{let r=c==="good"?"good_feedback_survey":"bad_feedback_survey";l("jarvis_api_error",{event_type:"transcript_prompt_appeared",appearance_id:p,last_assistant_message_id:q.current,survey_type:Z,trigger:r})},[Z]),v=iK.useCallback(async(p,c,r)=>{let J0=r==="good"?"good_feedback_survey":"bad_feedback_survey";if(l("jarvis_api_error",{event_type:`transcript_share_${c}`,appearance_id:p,last_assistant_message_id:q.current,survey_type:Z,trigger:J0}),c==="dont_ask_again")q8((n)=>({...n,transcriptShareDismissed:!0}));if(c==="yes"){let n=await g61(O.current,J0,p);return l("jarvis_api_error",{event_type:n.success?"transcript_share_submitted":"transcript_share_failed",appearance_id:p,trigger:J0}),n.success}return!1},[Z]),{state:E,lastResponse:C,open:S,handleSelect:k,handleTranscriptSelect:h}=p40({hideThanksAfterMs:z.hideThanksAfterMs,onOpen:R,onSelect:D,shouldShowTranscriptPrompt:$,onTranscriptPromptShown:y,onTranscriptSelect:v}),u=ZX(),x=iK.useMemo(()=>{if(z.onForModels.length===0)return!1;if(z.onForModels.includes("*"))return!0;return z.onForModels.includes(u)},[z.onForModels,u]),m=iK.useMemo(()=>{if(E!=="closed")return!1;if(Q)return!1;if(Y)return!1;if(process.env.GLOCK_FORCE_DISPLAY_SURVEY&&!K.timeLastShown)return!0;if(!x)return!1;if(CQ0())return!1;if(!f2("allow_product_feedback"))return!1;if(K.timeLastShown){if(Date.now()-K.timeLastShown<z.minTimeBetweenFeedbackMs)return!1;if(K.submitCountAtLastAppearance!==null&&X<K.submitCountAtLastAppearance+z.minUserTurnsBetweenFeedback)return!1}else{if(Date.now()-U.current<z.minTimeBeforeFeedbackMs)return!1;if(X<F.current+z.minUserTurnsBeforeFeedback)return!1}if(N.current!==X)N.current=X,L.current=Math.random()<=(B??z.probability);if(!L.current)return!1;let p=L1().feedbackSurveyState;if(p?.lastShownTime){if(Date.now()-p.lastShownTime<z.minTimeBetweenGlobalFeedbackMs)return!1}return!0},[E,Q,Y,x,K.timeLastShown,K.submitCountAtLastAppearance,X,z.minTimeBetweenFeedbackMs,z.minTimeBetweenGlobalFeedbackMs,z.minUserTurnsBetweenFeedback,z.minTimeBeforeFeedbackMs,z.minUserTurnsBeforeFeedback,z.probability,B]);return iK.useEffect(()=>{if(m)S()},[m,S]),{state:E,lastResponse:C,handleSelect:k,handleTranscriptSelect:h}}var iK,YIQ,c$J;var l$J=I(()=>{m$J();th();D1();QD();m8();M8();CJ();g8();L08();m61();iK=T(J1(),1),YIQ={minTimeBeforeFeedbackMs:600000,minTimeBetweenFeedbackMs:3600000,minTimeBetweenGlobalFeedbackMs:1e8,minUserTurnsBeforeFeedback:5,minUserTurnsBetweenFeedback:10,hideThanksAfterMs:3000,onForModels:["*"],probability:0.005},c$J={probability:0}});function WIQ(J){for(let Q of J){if(Q.type!=="assistant")continue;let X=Q.message.content;if(!Array.isArray(X))continue;for(let Z of X){if(Z.type!=="tool_use"||Z.name!==o6)continue;let Y=Z.input;if(typeof Y.file_path==="string"&&Jn(Y.file_path))return!0}}return!1}function i$J(J,Q,X=!1,{enabled:Z=!0}={}){let Y=x_.useRef(new Set),q=x_.useRef(!1),K=x_.useRef(J);K.current=J;let G=x_.useCallback((A)=>{l(WA0,{event_type:"appeared",appearance_id:A})},[]),z=x_.useCallback((A,R)=>{l(WA0,{event_type:"responded",appearance_id:A,response:R})},[]),W=x_.useCallback((A)=>{return!1},[]),H=x_.useCallback((A)=>{l(WA0,{event_type:"transcript_prompt_appeared",appearance_id:A,trigger:p61})},[]),B=x_.useCallback(async(A,R)=>{if(l(WA0,{event_type:`transcript_share_${R}`,appearance_id:A,trigger:p61}),R==="dont_ask_again")q8((D)=>({...D,transcriptShareDismissed:!0}));if(R==="yes"){let D=await g61(K.current,p61,A);return l(WA0,{event_type:D.success?"transcript_share_submitted":"transcript_share_failed",appearance_id:A,trigger:p61}),D.success}return!1},[]),{state:U,lastResponse:F,open:_,handleSelect:O,handleTranscriptSelect:L}=p40({hideThanksAfterMs:qIQ,onOpen:G,onSelect:z,shouldShowTranscriptPrompt:W,onTranscriptPromptShown:H,onTranscriptSelect:B}),N=x_.useMemo(()=>nB(J),[J]);return x_.useEffect(()=>{if(!Z)return;if(J.length===0){q.current=!1,Y.current.clear();return}if(U!=="closed"||Q||X)return;if(!Y8(KIQ,!1))return;if(!l7())return;if(CQ0())return;if(!f2("allow_product_feedback"))return;if(!N||Y.current.has(N.uuid))return;let A=R7(N.message.content," ");if(!zIQ.test(A))return;if(Y.current.add(N.uuid),!q.current)q.current=WIQ(J);if(!q.current)return;if(Math.random()<GIQ)_()},[Z,U,Q,X,N,J,_]),{state:U,lastResponse:F,handleSelect:O,handleTranscriptSelect:L}}var x_,qIQ=3000,KIQ="jarvis_api_error",WA0="jarvis_api_error",GIQ=0.2,p61="memory_survey",zIQ;var n$J=I(()=>{th();D1();t5();QD();vZ();m8();o_0();M8();L08();m61();x_=T(J1(),1),zIQ=/\bmemor(?:y|ies)\b/i});function FIQ(J,Q){let X=J.findIndex((Z)=>Z.uuid===Q);if(X===-1)return!1;for(let Z=X+1;Z<J.length;Z++){let Y=J[Z];if(Y&&(Y.type==="user"||Y.type==="assistant"))return!0}return!1}function a$J(J,Q,X,Z){let Y=r$J.c(23),q=X===void 0?!1:X,K;if(Y[0]!==Z)K=Z===void 0?{}:Z,Y[0]=Z,Y[1]=K;else K=Y[1];let{enabled:G}=K,z=G===void 0?!0:G,[W,H]=Tg.useState(null),B;if(Y[2]===Symbol.for("react.memo_cache_sentinel"))B=new Set,Y[2]=B;else B=Y[2];let U=Tg.useRef(B),F=Tg.useRef(null),_=VIQ,O=LIQ,L;if(Y[3]===Symbol.for("react.memo_cache_sentinel"))L={hideThanksAfterMs:HIQ,onOpen:_,onSelect:O},Y[3]=L;else L=Y[3];let{state:N,lastResponse:A,open:R,handleSelect:D}=p40(L),$,y;if(Y[4]!==z)$=()=>{if(!z)return;H(GZ(BIQ))},y=[z],Y[4]=z,Y[5]=$,Y[6]=y;else $=Y[5],y=Y[6];Tg.useEffect($,y);let v;if(Y[7]!==J)v=new Set(J.filter(OIQ).map(_IQ)),Y[7]=J,Y[8]=v;else v=Y[8];let E=v,C,S;if(Y[9]!==E||Y[10]!==z||Y[11]!==W||Y[12]!==q||Y[13]!==Q||Y[14]!==J||Y[15]!==R||Y[16]!==N)S=()=>{if(!z)return;if(N!=="closed"||Q)return;if(q)return;if(W!==!0)return;if(CQ0())return;if(F.current!==null){if(FIQ(J,F.current)){if(F.current=null,Math.random()<UIQ)R();return}}let h=Array.from(E).filter((u)=>!U.current.has(u));if(h.length>0)U.current=new Set(E),F.current=h[h.length-1]},C=[z,E,N,Q,q,W,J,R],Y[9]=E,Y[10]=z,Y[11]=W,Y[12]=q,Y[13]=Q,Y[14]=J,Y[15]=R,Y[16]=N,Y[17]=C,Y[18]=S;else C=Y[17],S=Y[18];Tg.useEffect(S,C);let k;if(Y[19]!==D||Y[20]!==A||Y[21]!==N)k={state:N,lastResponse:A,handleSelect:D},Y[19]=D,Y[20]=A,Y[21]=N,Y[22]=k;else k=Y[22];return k}function _IQ(J){return J.uuid}function OIQ(J){return YW(J)}function LIQ(J,Q){let X=La0();l("jarvis_api_error",{event_type:"responded",appearance_id:J,response:Q,session_memory_compaction_enabled:X})}function VIQ(J){let Q=La0();l("jarvis_api_error",{event_type:"appeared",appearance_id:J,session_memory_compaction_enabled:Q})}var r$J,Tg,HIQ=3000,BIQ="jarvis_api_error",UIQ=0.2;var o$J=I(()=>{th();D1();Na0();M8();m61();r$J=T(e0(),1),Tg=T(J1(),1)});function t$J(J){let Q=s$J.c(11),{onSelect:X,inputValue:Z,setInputValue:Y}=J,q;if(Q[0]!==X)q=(U)=>X(wIQ[U]),Q[0]=X,Q[1]=q;else q=Q[1];let K;if(Q[2]!==Z||Q[3]!==Y||Q[4]!==q)K={inputValue:Z,setInputValue:Y,isValidDigit:AIQ,onDigit:q},Q[2]=Z,Q[3]=Y,Q[4]=q,Q[5]=K;else K=Q[5];f40(K);let G;if(Q[6]===Symbol.for("react.memo_cache_sentinel"))G=rH.jsxDEV(f,{children:[rH.jsxDEV(M,{color:"ansi:cyan",children:[_Q," "]},void 0,!0,void 0,this),rH.jsxDEV(M,{bold:!0,children:"Can Glock look at your session transcript to help us improve Glock?"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),Q[6]=G;else G=Q[6];let z;if(Q[7]===Symbol.for("react.memo_cache_sentinel"))z=rH.jsxDEV(f,{marginLeft:2,children:rH.jsxDEV(M,{dimColor:!0,children:"Learn more: https://docs.getglock.dev/en/data-usage#session-quality-surveys"},void 0,!1,void 0,this)},void 0,!1,void 0,this),Q[7]=z;else z=Q[7];let W;if(Q[8]===Symbol.for("react.memo_cache_sentinel"))W=rH.jsxDEV(f,{width:10,children:rH.jsxDEV(M,{children:[rH.jsxDEV(M,{color:"ansi:cyan",children:"1"},void 0,!1,void 0,this),": Yes"]},void 0,!0,void 0,this)},void 0,!1,void 0,this),Q[8]=W;else W=Q[8];let H;if(Q[9]===Symbol.for("react.memo_cache_sentinel"))H=rH.jsxDEV(f,{width:10,children:rH.jsxDEV(M,{children:[rH.jsxDEV(M,{color:"ansi:cyan",children:"2"},void 0,!1,void 0,this),": No"]},void 0,!0,void 0,this)},void 0,!1,void 0,this),Q[9]=H;else H=Q[9];let B;if(Q[10]===Symbol.for("react.memo_cache_sentinel"))B=rH.jsxDEV(f,{flexDirection:"column",marginTop:1,children:[G,z,rH.jsxDEV(f,{marginLeft:2,children:[W,H,rH.jsxDEV(f,{children:rH.jsxDEV(M,{children:[rH.jsxDEV(M,{color:"ansi:cyan",children:"3"},void 0,!1,void 0,this),": Don't ask again"]},void 0,!0,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),Q[10]=B;else B=Q[10];return B}var s$J,rH,NIQ,wIQ,AIQ=(J)=>NIQ.includes(J);var e$J=I(()=>{bZ();a0();A61();s$J=T(e0(),1),rH=T(e(),1),NIQ=["1","2","3"],wIQ={"1":"yes","2":"no","3":"dont_ask_again"}});function HA0(J){let Q=V08.c(16),{state:X,lastResponse:Z,handleSelect:Y,handleTranscriptSelect:q,inputValue:K,setInputValue:G,onRequestFeedback:z,message:W}=J;if(X==="closed")return null;if(X==="thanks"){let B;if(Q[0]!==K||Q[1]!==Z||Q[2]!==z||Q[3]!==G)B=k_.jsxDEV(MIQ,{lastResponse:Z,inputValue:K,setInputValue:G,onRequestFeedback:z},void 0,!1,void 0,this),Q[0]=K,Q[1]=Z,Q[2]=z,Q[3]=G,Q[4]=B;else B=Q[4];return B}if(X==="submitted"){let B;if(Q[5]===Symbol.for("react.memo_cache_sentinel"))B=k_.jsxDEV(f,{marginTop:1,children:k_.jsxDEV(M,{color:"success",children:["\u2713"," Thanks for sharing your transcript!"]},void 0,!0,void 0,this)},void 0,!1,void 0,this),Q[5]=B;else B=Q[5];return B}if(X==="submitting"){let B;if(Q[6]===Symbol.for("react.memo_cache_sentinel"))B=k_.jsxDEV(f,{marginTop:1,children:k_.jsxDEV(M,{dimColor:!0,children:["Sharing transcript","\u2026"]},void 0,!0,void 0,this)},void 0,!1,void 0,this),Q[6]=B;else B=Q[6];return B}if(X==="transcript_prompt"){if(!q)return null;if(K&&!["1","2","3"].includes(K))return null;let B;if(Q[7]!==q||Q[8]!==K||Q[9]!==G)B=k_.jsxDEV(t$J,{onSelect:q,inputValue:K,setInputValue:G},void 0,!1,void 0,this),Q[7]=q,Q[8]=K,Q[9]=G,Q[10]=B;else B=Q[10];return B}if(K&&!R61(K))return null;let H;if(Q[11]!==Y||Q[12]!==K||Q[13]!==W||Q[14]!==G)H=k_.jsxDEV(fMJ,{onSelect:Y,inputValue:K,setInputValue:G,message:W},void 0,!1,void 0,this),Q[11]=Y,Q[12]=K,Q[13]=W,Q[14]=G,Q[15]=H;else H=Q[15];return H}function MIQ(J){let Q=V08.c(12),{lastResponse:X,inputValue:Z,setInputValue:Y,onRequestFeedback:q}=J,K=q&&X==="good",G=Boolean(K),z;if(Q[0]!==X||Q[1]!==q)z=()=>{l("jarvis_api_error",{event_type:"followup_accepted",response:X}),q?.()},Q[0]=X,Q[1]=q,Q[2]=z;else z=Q[2];let W;if(Q[3]!==Z||Q[4]!==Y||Q[5]!==G||Q[6]!==z)W={inputValue:Z,setInputValue:Y,isValidDigit:RIQ,enabled:G,once:!0,onDigit:z},Q[3]=Z,Q[4]=Y,Q[5]=G,Q[6]=z,Q[7]=W;else W=Q[7];f40(W);let H="/feedback",B;if(Q[8]===Symbol.for("react.memo_cache_sentinel"))B=k_.jsxDEV(M,{color:"success",children:"Thanks for the feedback!"},void 0,!1,void 0,this),Q[8]=B;else B=Q[8];let U;if(Q[9]!==X||Q[10]!==K)U=k_.jsxDEV(f,{marginTop:1,flexDirection:"column",children:[B,K?k_.jsxDEV(M,{dimColor:!0,children:["(Optional) Press [",k_.jsxDEV(M,{color:"ansi:cyan",children:"1"},void 0,!1,void 0,this),"] to tell us what went well "," \xB7 ",H]},void 0,!0,void 0,this):X==="bad"?k_.jsxDEV(M,{dimColor:!0,children:"Use /issue to report model behavior issues."},void 0,!1,void 0,this):k_.jsxDEV(M,{dimColor:!0,children:["Use ",H," to share detailed feedback anytime."]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),Q[9]=X,Q[10]=K,Q[11]=U;else U=Q[11];return U}var V08,k_,RIQ=(J)=>J==="1";var JjJ=I(()=>{D1();a0();ie1();e$J();A61();V08=T(e0(),1),k_=T(e(),1)});function c40(J){let{addNotification:Q}=D9(),X=BA0.useRef(!1),Z=BA0.useRef(J);Z.current=J,BA0.useEffect(()=>{if(S9()||X.current)return;X.current=!0,Promise.resolve().then(()=>Z.current()).then((Y)=>{if(!Y)return;for(let q of Array.isArray(Y)?Y:[Y])Q(q)}).catch(H0)},[Q])}var BA0;var c61=I(()=>{N1();UY();M1();BA0=T(J1(),1)});function QjJ(){c40(DIQ)}async function DIQ(){return(await oV0()).map($IQ)}function $IQ(J,Q){let X="low";if(J.type==="error"||J.userActionRequired)X="high";else if(J.type==="path"||J.type==="alias")X="medium";return{key:`install-message-${Q}-${J.type}`,text:J.message,priority:X,color:J.type==="error"?"error":"warning"}}var XjJ=I(()=>{Eu();c61()});var ZjJ=I(()=>{s6();Z1();M8();CJ();wq();Dl()});var YjJ;var qjJ=I(()=>{MH0();ZjJ();M8();YjJ=T(J1(),1)});import{join as jIQ}from"path";function IIQ(){return!1}function N08(J){let Q=d61.INITIAL_DELAY_MS*Math.pow(d61.BACKOFF_MULTIPLIER,J);return Math.min(Q,d61.MAX_DELAY_MS)}function yIQ(J){if(!J.officialMarketplaceAutoInstallAttempted)return!0;if(J.officialMarketplaceAutoInstalled)return!1;let Q=J.officialMarketplaceAutoInstallFailReason,X=J.officialMarketplaceAutoInstallRetryCount||0,Z=J.officialMarketplaceAutoInstallNextRetryTime,Y=Date.now();if(X>=d61.MAX_ATTEMPTS)return!1;if(Q==="policy_blocked")return!1;if(Z&&Y<Z)return!1;return Q==="unknown"||Q==="git_unavailable"||Q==="gcs_unavailable"||Q===void 0}async function KjJ(){let J=L1();if(!yIQ(J)){let Q=J.officialMarketplaceAutoInstallFailReason??"already_attempted";return b(`Official marketplace auto-install skipped: ${Q}`),{installed:!1,skipped:!0,reason:Q}}try{if(IIQ())return b("Official marketplace auto-install disabled via env var, skipping"),q8((G)=>({...G,officialMarketplaceAutoInstallAttempted:!0,officialMarketplaceAutoInstalled:!1,officialMarketplaceAutoInstallFailReason:"policy_blocked"})),l("jarvis_api_error",{installed:!1,skipped:!0,policy_blocked:!0}),{installed:!1,skipped:!0,reason:"policy_blocked"};if((await _Z())[Uq])return b(`Official marketplace '${Uq}' already installed, skipping`),q8((G)=>({...G,officialMarketplaceAutoInstallAttempted:!0,officialMarketplaceAutoInstalled:!0})),{installed:!1,skipped:!0,reason:"already_installed"};if(!Pl(I80))return b("Official marketplace blocked by enterprise policy, skipping"),q8((G)=>({...G,officialMarketplaceAutoInstallAttempted:!0,officialMarketplaceAutoInstalled:!1,officialMarketplaceAutoInstallFailReason:"policy_blocked"})),l("jarvis_api_error",{installed:!1,skipped:!0,policy_blocked:!0}),{installed:!1,skipped:!0,reason:"policy_blocked"};let X=Ln(),Z=jIQ(X,Uq);if(await Lr0(Z,X)!==null){let G=await _Z();return G[Uq]={source:I80,installLocation:Z,lastUpdated:new Date().toISOString()},await mT(G),q8((z)=>({...z,officialMarketplaceAutoInstallAttempted:!0,officialMarketplaceAutoInstalled:!0,officialMarketplaceAutoInstallFailReason:void 0,officialMarketplaceAutoInstallRetryCount:void 0,officialMarketplaceAutoInstallLastAttemptTime:void 0,officialMarketplaceAutoInstallNextRetryTime:void 0})),l("jarvis_api_error",{installed:!0,skipped:!1,via_gcs:!0}),{installed:!0,skipped:!1}}if(!Y8("jarvis_api_error",!0)){b("Official marketplace GCS failed; git fallback disabled by flag \u2014 skipping install");let G=(J.officialMarketplaceAutoInstallRetryCount||0)+1,z=Date.now(),W=z+N08(G);return q8((H)=>({...H,officialMarketplaceAutoInstallAttempted:!0,officialMarketplaceAutoInstalled:!1,officialMarketplaceAutoInstallFailReason:"gcs_unavailable",officialMarketplaceAutoInstallRetryCount:G,officialMarketplaceAutoInstallLastAttemptTime:z,officialMarketplaceAutoInstallNextRetryTime:W})),l("jarvis_api_error",{installed:!1,skipped:!0,gcs_unavailable:!0,retry_count:G}),{installed:!1,skipped:!0,reason:"gcs_unavailable"}}if(!await bl()){b("Git not available, skipping official marketplace auto-install");let G=(J.officialMarketplaceAutoInstallRetryCount||0)+1,z=Date.now(),W=N08(G),H=z+W,B=!1;try{q8((U)=>({...U,officialMarketplaceAutoInstallAttempted:!0,officialMarketplaceAutoInstalled:!1,officialMarketplaceAutoInstallFailReason:"git_unavailable",officialMarketplaceAutoInstallRetryCount:G,officialMarketplaceAutoInstallLastAttemptTime:z,officialMarketplaceAutoInstallNextRetryTime:H}))}catch(U){B=!0;let F=R8(U);H0(F),b(`Failed to save marketplace auto-install git_unavailable state: ${U}`,{level:"error"})}return l("jarvis_api_error",{installed:!1,skipped:!0,git_unavailable:!0,retry_count:G}),{installed:!1,skipped:!0,reason:"git_unavailable",configSaveFailed:B}}b("Attempting to auto-install official marketplace"),await ph(I80),b("Successfully auto-installed official marketplace");let K=J.officialMarketplaceAutoInstallRetryCount||0;return q8((G)=>({...G,officialMarketplaceAutoInstallAttempted:!0,officialMarketplaceAutoInstalled:!0,officialMarketplaceAutoInstallFailReason:void 0,officialMarketplaceAutoInstallRetryCount:void 0,officialMarketplaceAutoInstallLastAttemptTime:void 0,officialMarketplaceAutoInstallNextRetryTime:void 0})),l("jarvis_api_error",{installed:!0,skipped:!1,retry_count:K}),{installed:!0,skipped:!1}}catch(Q){let X=Q instanceof Error?Q.message:String(Q);if(X.includes("xcrun: error:"))return T_6(),b("Official marketplace auto-install: git is a non-functional macOS xcrun shim, treating as git_unavailable"),l("jarvis_api_error",{installed:!1,skipped:!0,git_unavailable:!0,macos_xcrun_shim:!0}),{installed:!1,skipped:!0,reason:"git_unavailable"};b(`Failed to auto-install official marketplace: ${X}`,{level:"error"}),H0(R8(Q));let Z=(J.officialMarketplaceAutoInstallRetryCount||0)+1,Y=Date.now(),q=N08(Z),K=Y+q,G=!1;try{q8((z)=>({...z,officialMarketplaceAutoInstallAttempted:!0,officialMarketplaceAutoInstalled:!1,officialMarketplaceAutoInstallFailReason:"unknown",officialMarketplaceAutoInstallRetryCount:Z,officialMarketplaceAutoInstallLastAttemptTime:Y,officialMarketplaceAutoInstallNextRetryTime:K}))}catch(z){G=!0;let W=R8(z);H0(W),b(`Failed to save marketplace auto-install failure state: ${z}`,{level:"error"})}return l("jarvis_api_error",{installed:!1,skipped:!0,failed:!0,retry_count:Z}),{installed:!1,skipped:!0,reason:"unknown",configSaveFailed:G}}}var d61;var GjJ=I(()=>{D1();m8();Z1();T1();M1();Lm0();bE();q5();YE();Iu1();d61={MAX_ATTEMPTS:10,INITIAL_DELAY_MS:3600000,BACKOFF_MULTIPLIER:2,MAX_DELAY_MS:604800000}});function zjJ(){c40(bIQ)}async function bIQ(){let J=await KjJ(),Q=[];if(J.configSaveFailed)b("Showing marketplace config save failure notification"),Q.push({key:"marketplace-config-save-failed",jsx:l61.jsxDEV(M,{color:"error",children:"Failed to save marketplace retry info \xB7 Check ~/.glock.json permissions"},void 0,!1,void 0,this),priority:"immediate",timeoutMs:1e4});if(J.installed)b("Showing marketplace installation success notification"),Q.push({key:"marketplace-installed",jsx:l61.jsxDEV(M,{color:"success",children:"\u2713 Glock marketplace installed \xB7 /plugin to see available plugins"},void 0,!1,void 0,this),priority:"immediate",timeoutMs:7000});else if(J.skipped&&J.reason==="unknown")b("Showing marketplace installation failure notification"),Q.push({key:"marketplace-install-failed",jsx:l61.jsxDEV(M,{color:"warning",children:"Failed to install Glock marketplace \xB7 Will retry on next startup"},void 0,!1,void 0,this),priority:"immediate",timeoutMs:8000});return Q}var l61;var WjJ=I(()=>{a0();Z1();GjJ();c61();l61=T(e(),1)});function HjJ(J){let Q=L1().numStartups;q8((X)=>{let Z=X.tipsHistory??{};if(Z[J]===Q)return X;return{...X,tipsHistory:{...Z,[J]:Q}}})}function i61(J){let Q=L1(),X=Q.tipsHistory?.[J];if(!X)return 1/0;return Q.numStartups-X}var w08=I(()=>{m8()});import{readdir as PIQ}from"fs/promises";import{join as EIQ}from"path";function A08(){return!0}function CIQ(J){let Q=A08()?"glock-dev":"glock",X=new URL(`${Q}://resume`);return X.searchParams.set("session",J),X.searchParams.set("cwd",B1()),X.toString()}async function BjJ(){if(A08())return!0;let J=process.platform;if(J==="darwin")return K7("/Applications/Glock.app");else if(J==="linux"){let{code:Q,stdout:X}=await Z8("xdg-mime",["query","default","x-scheme-handler/glock"]);return Q===0&&X.trim().length>0}else if(J==="win32"){let{code:Q}=await Z8("reg",["query","HKEY_CLASSES_ROOT\\glock","/ve"]);return Q===0}return!1}async function vIQ(){let J=process.platform;if(J==="darwin"){let{code:Q,stdout:X}=await Z8("defaults",["read","/Applications/Glock.app/Contents/Info.plist","CFBundleShortVersionString"]);if(Q!==0)return null;let Z=X.trim();return Z.length>0?Z:null}else if(J==="win32"){let Q=process.env.LOCALAPPDATA;if(!Q)return null;let X=EIQ(Q,"Glock");try{let Y=(await PIQ(X)).filter((q)=>q.startsWith("app-")).map((q)=>q.slice(4)).filter((q)=>UA0.coerce(q)!==null).sort((q,K)=>{let G=UA0.coerce(q),z=UA0.coerce(K);return G.compare(z)});return Y.length>0?Y[Y.length-1]:null}catch{return null}}return null}async function UjJ(){if(!await BjJ())return{status:"not-installed"};let Q;try{Q=await vIQ()}catch{return{status:"ready",version:"unknown"}}if(!Q)return{status:"ready",version:"unknown"};let X=UA0.coerce(Q);if(!X||!W2(X.version,TIQ))return{status:"version-too-old",version:Q};return{status:"ready",version:Q}}async function fIQ(J){let Q=process.platform;if(b(`Opening deep link: ${J}`),Q==="darwin"){if(A08()){let{code:Z}=await Z8("osascript",["-e",`tell application "Electron" to open location "${J}"`]);return Z===0}let{code:X}=await Z8("open",[J]);return X===0}else if(Q==="linux"){let{code:X}=await Z8("xdg-open",[J]);return X===0}else if(Q==="win32"){let{code:X}=await Z8("cmd",["/c","start","",J]);return X===0}return!1}async function FjJ(){let J=A1();if(!await BjJ())return{success:!1,error:"Glock Desktop is not installed. Install it from https://glock/download"};let X=CIQ(J);if(!await fIQ(X))return{success:!1,error:"Failed to open Glock Desktop. Please try opening it manually.",deepLinkUrl:X};return{success:!0,deepLinkUrl:X}}var UA0,TIQ="1.1.2396";var _jJ=I(()=>{N1();Z6();Z1();T9();V9();UA0=T(b10(),1)});function SIQ(){switch(process.platform){case"win32":return"https://glock/api/desktop/win32/x64/exe/latest/redirect";default:return"https://glock/api/desktop/darwin/universal/dmg/latest/redirect"}}function VjJ(J){let Q=LjJ.c(20),{onDone:X}=J,[Z,Y]=d40.useState("checking"),[q,K]=d40.useState(null),[G,z]=d40.useState(""),W;if(Q[0]!==q||Q[1]!==X||Q[2]!==Z)W=(L)=>{if(Z==="error"){X(q??"Unknown error",{display:"system"});return}if(Z==="prompt-download"){if(L==="y"||L==="Y")IX(SIQ()).catch(kIQ),X(`Starting download. Re-run /desktop once you\u2019ve installed the app.
|
|
6942
|
+
`);if(Y(L)){let A=new Set(_.map((R)=>R.id));K((R)=>({...R,inbox:{messages:R.inbox.messages.filter((D)=>!A.has(D.id))}}))}else b("[InboxPoller] Submission rejected, keeping messages queued")},[J,Q,X,Y,K,G,q]);let H=J&&!!S61(q.getState());EB(()=>void W(),H?ajQ:null);let B=Aa.useRef(!1);Aa.useEffect(()=>{if(!J)return;if(B.current)return;if(S61(q.getState()))B.current=!0,W()},[J,W,q])}var Aa,ajQ=1000;var j$J=I(()=>{dO();zZ();sP();G81();W6();s6();PH();Z1();Ul1();M8();vW();lq();i1();Vw();Ew();P90();e3();tq();FZ();lO();TK();v90();Aa=T(J1(),1)});var I$J;var y$J=I(()=>{Z1();tq();I$J=T(J1(),1)});function E$J(J){let Q=b$J.c(7),{autoConnectIdeFlag:X,ideToInstallExtension:Z,setDynamicMcpConfig:Y,setShowIdeOnboarding:q,setIDEInstallationState:K}=J,G,z;if(Q[0]!==X||Q[1]!==Z||Q[2]!==Y||Q[3]!==K||Q[4]!==q)G=()=>{sR6(function(B){if(!B)return;if(!((L1().autoConnectIde||X||tz()||process.env.GLOCK_SSE_PORT||Z||W1(process.env.GLOCK_AUTO_CONNECT_IDE))&&!rY(process.env.GLOCK_AUTO_CONNECT_IDE)))return;Y((_)=>{if(_?.ide)return _;return{..._,ide:{type:B.url.startsWith("ws:")?"ws-ide":"sse-ide",url:B.url,ideName:B.name,authToken:B.authToken,ideRunningInWindows:B.ideRunningInWindows,scope:"dynamic"}}})},Z,()=>q(!0),(H)=>K(H))},z=[X,Z,Y,q,K],Q[0]=X,Q[1]=Z,Q[2]=Y,Q[3]=K,Q[4]=q,Q[5]=G,Q[6]=z;else G=Q[5],z=Q[6];P$J.useEffect(G,z)}var b$J,P$J;var T$J=I(()=>{m8();t1();b5();b$J=T(e0(),1),P$J=T(J1(),1)});function f$J(J){let Q=C$J.c(10),{onBackgroundSession:X,isLoading:Z}=J,Y=T6(),q=aX(),[K,G]=v$J.useState(!1),z=DM(G,X,sjQ),W;if(Q[0]!==q||Q[1]!==z||Q[2]!==Z||Q[3]!==Y)W=()=>{let R=q.getState();if(_E1(R)){if(tg0(()=>q.getState(),Y),!L1().hasUsedBackgroundTask)q8(ojQ)}else if(W1("false")&&Z)z()},Q[0]=q,Q[1]=z,Q[2]=Z,Q[3]=Y,Q[4]=W;else W=Q[4];let H=W,B=O1(_E1),U;if(Q[5]===Symbol.for("react.memo_cache_sentinel"))U=W1("false"),Q[5]=U;else U=Q[5];let _=B||U&&Z,O;if(Q[6]!==_)O={context:"Task",isActive:_},Q[6]=_,Q[7]=O;else O=Q[7];J8("task:background",H,O);let L=r9("task:background","Task","ctrl+b"),N=k8.terminal==="tmux"&&L==="ctrl+b"?"ctrl+b ctrl+b":L;if(!Z||!K)return null;let A;if(Q[8]!==N)A=x61.jsxDEV(f,{paddingLeft:2,children:x61.jsxDEV(M,{dimColor:!0,children:x61.jsxDEV(p1,{shortcut:N,action:"background"},void 0,!1,void 0,this)},void 0,!1,void 0,this)},void 0,!1,void 0,this),Q[8]=N,Q[9]=A;else A=Q[9];return A}function ojQ(J){return J.hasUsedBackgroundTask?J:{...J,hasUsedBackgroundTask:!0}}function sjQ(){}var C$J,v$J,x61;var S$J=I(()=>{$F0();a0();f6();nz();W6();zk();m8();WZ();t1();g9();C$J=T(e0(),1),v$J=T(J1(),1),x61=T(e(),1)});function x$J({setMessages:J,setIsLoading:Q,resetLoadingState:X,setAbortController:Z,onBackgroundQuery:Y}){let q=O1((H)=>H.foregroundedTaskId),K=O1((H)=>H.foregroundedTaskId?H.tasks[H.foregroundedTaskId]:void 0),G=T6(),z=g40.useRef(0),W=g40.useCallback(()=>{if(q){G((H)=>{let B=H.foregroundedTaskId;if(!B)return H;let U=H.tasks[B];if(!U)return{...H,foregroundedTaskId:void 0};return{...H,foregroundedTaskId:void 0,tasks:{...H.tasks,[B]:{...U,isBackgrounded:!0}}}}),J([]),X(),Z(null);return}Y()},[q,G,J,X,Z,Y]);return g40.useEffect(()=>{if(!q){z.current=0;return}if(!K||K.type!=="local_agent"){G((B)=>({...B,foregroundedTaskId:void 0})),X(),z.current=0;return}let H=K.messages??[];if(H.length!==z.current)z.current=H.length,J([...H]);if(K.status==="running"){let B=K.abortController;if(B?.signal.aborted){G((U)=>{if(!U.foregroundedTaskId)return U;let F=U.tasks[U.foregroundedTaskId];if(!F)return{...U,foregroundedTaskId:void 0};return{...U,foregroundedTaskId:void 0,tasks:{...U.tasks,[U.foregroundedTaskId]:{...F,isBackgrounded:!0}}}}),X(),Z(null),z.current=0;return}if(Q(!0),B)Z(B)}else G((B)=>{let U=B.foregroundedTaskId;if(!U)return B;let F=B.tasks[U];if(!F)return{...B,foregroundedTaskId:void 0};return{...B,foregroundedTaskId:void 0,tasks:{...B.tasks,[U]:{...F,isBackgrounded:!0}}}}),X(),Z(null),z.current=0},[q,K,G,J,Q,X,Z]),{handleBackgroundSession:W}}var g40;var k$J=I(()=>{W6();g40=T(J1(),1)});function h$J(J){let Q=h61.c(18),{model:X,onDone:Z}=J,Y,q={enabled:!1,dialogTitle:"",dialogDescription:""},K=m40.useRef(Z),G;if(Q[1]!==Z)G=()=>{K.current=Z},Q[1]=Z,Q[2]=G;else G=Q[2];m40.useEffect(G);let z;if(Q[3]===Symbol.for("react.memo_cache_sentinel"))z=()=>{K.current("dismiss")},Q[3]=z;else z=Q[3];let W=z,H;if(Q[4]===Symbol.for("react.memo_cache_sentinel"))H=[],Q[4]=H;else H=Q[4];m40.useEffect(ejQ,H);let B,U;if(Q[5]===Symbol.for("react.memo_cache_sentinel"))B=()=>{let E=setTimeout(W,tjQ);return()=>clearTimeout(E)},U=[W],Q[5]=B,Q[6]=U;else B=Q[5],U=Q[6];m40.useEffect(B,U);let F;if(Q[7]!==X){let E=TU0(X);F=E?f60(E):"high",Q[7]=X,Q[8]=F}else F=Q[8];let _=F,O;if(Q[9]!==_)O=(E)=>{K.current(E)},Q[9]=_,Q[10]=O;else O=Q[10];let L=O,N;if(Q[11]===Symbol.for("react.memo_cache_sentinel"))N=[{label:U3.jsxDEV(_08,{level:"medium",text:"Medium (recommended)"},void 0,!1,void 0,this),value:"medium"},{label:U3.jsxDEV(_08,{level:"high",text:"High"},void 0,!1,void 0,this),value:"high"},{label:U3.jsxDEV(_08,{level:"low",text:"Low"},void 0,!1,void 0,this),value:"low"}],Q[11]=N;else N=Q[11];let A=N,R;if(Q[12]===Symbol.for("react.memo_cache_sentinel"))R=U3.jsxDEV(f,{marginBottom:1,flexDirection:"column",children:U3.jsxDEV(M,{children:q.dialogDescription},void 0,!1,void 0,this)},void 0,!1,void 0,this),Q[12]=R;else R=Q[12];let D;if(Q[13]===Symbol.for("react.memo_cache_sentinel"))D=U3.jsxDEV(k61,{level:"low"},void 0,!1,void 0,this),Q[13]=D;else D=Q[13];let $;if(Q[14]===Symbol.for("react.memo_cache_sentinel"))$=U3.jsxDEV(k61,{level:"medium"},void 0,!1,void 0,this),Q[14]=$;else $=Q[14];let y;if(Q[15]===Symbol.for("react.memo_cache_sentinel"))y=U3.jsxDEV(f,{marginBottom:1,children:U3.jsxDEV(M,{dimColor:!0,children:[D," low ","\xB7"," ",$," medium ","\xB7"," ",U3.jsxDEV(k61,{level:"high"},void 0,!1,void 0,this)," high"]},void 0,!0,void 0,this)},void 0,!1,void 0,this),Q[15]=y;else y=Q[15];let v;if(Q[16]!==L)v=U3.jsxDEV(OZ,{title:q.dialogTitle,children:U3.jsxDEV(f,{flexDirection:"column",paddingX:2,paddingY:1,children:[R,y,U3.jsxDEV(Q8,{options:A,onChange:L,onCancel:W},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this),Q[16]=L,Q[17]=v;else v=Q[17];return v}function ejQ(){JIQ()}function k61(J){let Q=h61.c(4),{level:X}=J,Z;if(Q[0]!==X)Z=QN0(X),Q[0]=X,Q[1]=Z;else Z=Q[1];let Y;if(Q[2]!==Z)Y=U3.jsxDEV(M,{color:"suggestion",children:Z},void 0,!1,void 0,this),Q[2]=Z,Q[3]=Y;else Y=Q[3];return Y}function _08(J){let Q=h61.c(5),{level:X,text:Z}=J,Y;if(Q[0]!==X)Y=U3.jsxDEV(k61,{level:X},void 0,!1,void 0,this),Q[0]=X,Q[1]=Y;else Y=Q[1];let q;if(Q[2]!==Y||Q[3]!==Z)q=U3.jsxDEV(U3.Fragment,{children:[Y," ",Z]},void 0,!0,void 0,this),Q[2]=Y,Q[3]=Z,Q[4]=q;else q=Q[4];return q}function u$J(J){return!1}function JIQ(){q8((J)=>{if(J.effortCalloutV2Dismissed)return J;return{...J,effortCalloutV2Dismissed:!0}})}var h61,m40,U3,tjQ=30000;var g$J=I(()=>{a0();m8();sN();AQ();$e0();TH();h61=T(e0(),1),m40=T(J1(),1),U3=T(e(),1)});function u61(J,Q){let[X,Z]=O08.default.useState(Q);return O08.default.useEffect(()=>{mA(J,Q).then(Z)},[J,Q]),X}var O08;var m$J=I(()=>{O08=T(J1(),1)});import{readFile as QIQ,stat as XIQ}from"fs/promises";function ZIQ(J){let Q=J;return Q=Q.replace(/"(sk-ant[^\s"']{24,})"/g,'"[REDACTED_API_KEY]"'),Q=Q.replace(/(?<![A-Za-z0-9"'])(sk-ant-?[A-Za-z0-9_-]{10,})(?![A-Za-z0-9"'])/g,"[REDACTED_API_KEY]"),Q=Q.replace(/AWS key: "(AWS[A-Z0-9]{20,})"/g,'AWS key: "[REDACTED_AWS_KEY]"'),Q=Q.replace(/(AKIA[A-Z0-9]{16})/g,"[REDACTED_AWS_KEY]"),Q=Q.replace(/(?<![A-Za-z0-9])(AIza[A-Za-z0-9_-]{35})(?![A-Za-z0-9])/g,"[REDACTED_GCP_KEY]"),Q=Q.replace(/(?<![A-Za-z0-9])([a-z0-9-]+@[a-z0-9-]+\.iam\.gserviceaccount\.com)(?![A-Za-z0-9])/g,"[REDACTED_GCP_SERVICE_ACCOUNT]"),Q=Q.replace(/(["']?x-api-key["']?\s*[:=]\s*["']?)[^"',\s)}\]]+/gi,"$1[REDACTED_API_KEY]"),Q=Q.replace(/(["']?authorization["']?\s*[:=]\s*["']?(bearer\s+)?)[^"',\s)}\]]+/gi,"$1[REDACTED_TOKEN]"),Q=Q.replace(/(AWS[_-][A-Za-z0-9_]+\s*[=:]\s*)["']?[^"',\s)}\]]+["']?/gi,"$1[REDACTED_AWS_VALUE]"),Q=Q.replace(/(GOOGLE[_-][A-Za-z0-9_]+\s*[=:]\s*)["']?[^"',\s)}\]]+["']?/gi,"$1[REDACTED_GCP_VALUE]"),Q=Q.replace(/((API[-_]?KEY|TOKEN|SECRET|PASSWORD)\s*[=:]\s*)["']?[^"',\s)}\]]+["']?/gi,"$1[REDACTED]"),Q}async function g61(J,Q,X){try{b("Collecting transcript for sharing",{level:"info"});let Z=NH(J),Y=ks1(J),q=await J81(Y),K;try{let U=TY(),{size:F}=await XIQ(U);if(F<=$s1)K=await QIQ(U,"utf-8");else b(`Skipping raw transcript read: file too large (${F} bytes)`,{level:"warn"})}catch{}let G={trigger:Q,version:"0.1.17",platform:process.platform,transcript:Z,subagentTranscripts:Object.keys(q).length>0?q:void 0,rawTranscriptJsonl:K},z=ZIQ(l0(G));await cW();let W=lE();if(W.error)return{success:!1};let H={"Content-Type":"application/json","User-Agent":ck(),...W.headers},B=await y8.post("https://api.getglock.dev/api/glock_shared_session_transcripts",{content:z,appearance_id:X},{headers:H,timeout:30000});if(B.status===200||B.status===201){let U=B.data;return b("Transcript shared successfully",{level:"info"}),{success:!0,transcriptId:U?.transcript_id}}return{success:!1}}catch(Z){return b(Q1(Z),{level:"error"}),{success:!1}}}var L08=I(()=>{JX();N9();Z1();T1();lk();M8();gJ();i1()});import{randomUUID as p$J}from"crypto";function p40({hideThanksAfterMs:J,onOpen:Q,onSelect:X,shouldShowTranscriptPrompt:Z,onTranscriptPromptShown:Y,onTranscriptSelect:q}){let[K,G]=_A.useState("closed"),[z,W]=_A.useState(null),H=_A.useRef(p$J()),B=_A.useRef(null),U=_A.useCallback(()=>{G("thanks"),setTimeout((N,A)=>{N("closed"),A(null)},J,G,W)},[J]),F=_A.useCallback(()=>{G("submitted"),setTimeout(G,J,"closed")},[J]),_=_A.useCallback(()=>{if(K!=="closed")return;G("open"),H.current=p$J(),Q(H.current)},[K,Q]),O=_A.useCallback((N)=>{if(W(N),B.current=N,X(H.current,N),N==="dismissed")G("closed"),W(null);else if(Z?.(N))return G("transcript_prompt"),Y?.(H.current,N),!0;else U();return!1},[U,X,Z,Y]),L=_A.useCallback((N)=>{switch(N){case"yes":G("submitting"),(async()=>{try{if(await q?.(H.current,N,B.current))F();else U()}catch{U()}})();break;case"no":case"dont_ask_again":q?.(H.current,N,B.current),U();break}},[U,F,q]);return{state:K,lastResponse:z,open:_,handleSelect:O,handleTranscriptSelect:L}}var _A;var m61=I(()=>{_A=T(J1(),1)});function d$J(J,Q,X,Z="session",Y=!1){let q=iK.useRef("unknown");q.current=nB(J)?.message?.id||"unknown";let[K,G]=iK.useState(()=>({timeLastShown:null,submitCountAtLastAppearance:null})),z=u61("jarvis_api_error",YIQ),W=u61("jarvis_api_error",c$J),H=u61("jarvis_api_error",c$J),B=h6().feedbackSurveyRate,U=iK.useRef(Date.now()),F=iK.useRef(X),_=iK.useRef(X);_.current=X;let O=iK.useRef(J);O.current=J;let L=iK.useRef(!1),N=iK.useRef(null),A=iK.useCallback((p,c)=>{if(G((r)=>{if(r.timeLastShown===p&&r.submitCountAtLastAppearance===c)return r;return{timeLastShown:p,submitCountAtLastAppearance:c}}),L1().feedbackSurveyState?.lastShownTime!==p)q8((r)=>({...r,feedbackSurveyState:{lastShownTime:p}}))},[]),R=iK.useCallback((p)=>{A(Date.now(),_.current),l("jarvis_api_error",{event_type:"appeared",appearance_id:p,last_assistant_message_id:q.current,survey_type:Z})},[A,Z]),D=iK.useCallback((p,c)=>{A(Date.now(),_.current),l("jarvis_api_error",{event_type:"responded",appearance_id:p,response:c,last_assistant_message_id:q.current,survey_type:Z})},[A,Z]),$=iK.useCallback((p)=>{if(p!=="bad"&&p!=="good")return!1;if(L1().transcriptShareDismissed)return!1;if(!f2("allow_product_feedback"))return!1;let c=p==="bad"?W.probability:H.probability;return Math.random()<=c},[W.probability,H.probability]),y=iK.useCallback((p,c)=>{let r=c==="good"?"good_feedback_survey":"bad_feedback_survey";l("jarvis_api_error",{event_type:"transcript_prompt_appeared",appearance_id:p,last_assistant_message_id:q.current,survey_type:Z,trigger:r})},[Z]),v=iK.useCallback(async(p,c,r)=>{let J0=r==="good"?"good_feedback_survey":"bad_feedback_survey";if(l("jarvis_api_error",{event_type:`transcript_share_${c}`,appearance_id:p,last_assistant_message_id:q.current,survey_type:Z,trigger:J0}),c==="dont_ask_again")q8((n)=>({...n,transcriptShareDismissed:!0}));if(c==="yes"){let n=await g61(O.current,J0,p);return l("jarvis_api_error",{event_type:n.success?"transcript_share_submitted":"transcript_share_failed",appearance_id:p,trigger:J0}),n.success}return!1},[Z]),{state:E,lastResponse:C,open:S,handleSelect:k,handleTranscriptSelect:h}=p40({hideThanksAfterMs:z.hideThanksAfterMs,onOpen:R,onSelect:D,shouldShowTranscriptPrompt:$,onTranscriptPromptShown:y,onTranscriptSelect:v}),u=ZX(),x=iK.useMemo(()=>{if(z.onForModels.length===0)return!1;if(z.onForModels.includes("*"))return!0;return z.onForModels.includes(u)},[z.onForModels,u]),m=iK.useMemo(()=>{if(E!=="closed")return!1;if(Q)return!1;if(Y)return!1;if(process.env.GLOCK_FORCE_DISPLAY_SURVEY&&!K.timeLastShown)return!0;if(!x)return!1;if(CQ0())return!1;if(!f2("allow_product_feedback"))return!1;if(K.timeLastShown){if(Date.now()-K.timeLastShown<z.minTimeBetweenFeedbackMs)return!1;if(K.submitCountAtLastAppearance!==null&&X<K.submitCountAtLastAppearance+z.minUserTurnsBetweenFeedback)return!1}else{if(Date.now()-U.current<z.minTimeBeforeFeedbackMs)return!1;if(X<F.current+z.minUserTurnsBeforeFeedback)return!1}if(N.current!==X)N.current=X,L.current=Math.random()<=(B??z.probability);if(!L.current)return!1;let p=L1().feedbackSurveyState;if(p?.lastShownTime){if(Date.now()-p.lastShownTime<z.minTimeBetweenGlobalFeedbackMs)return!1}return!0},[E,Q,Y,x,K.timeLastShown,K.submitCountAtLastAppearance,X,z.minTimeBetweenFeedbackMs,z.minTimeBetweenGlobalFeedbackMs,z.minUserTurnsBetweenFeedback,z.minTimeBeforeFeedbackMs,z.minUserTurnsBeforeFeedback,z.probability,B]);return iK.useEffect(()=>{if(m)S()},[m,S]),{state:E,lastResponse:C,handleSelect:k,handleTranscriptSelect:h}}var iK,YIQ,c$J;var l$J=I(()=>{m$J();th();D1();QD();m8();M8();CJ();g8();L08();m61();iK=T(J1(),1),YIQ={minTimeBeforeFeedbackMs:600000,minTimeBetweenFeedbackMs:3600000,minTimeBetweenGlobalFeedbackMs:1e8,minUserTurnsBeforeFeedback:5,minUserTurnsBetweenFeedback:10,hideThanksAfterMs:3000,onForModels:["*"],probability:0.005},c$J={probability:0}});function WIQ(J){for(let Q of J){if(Q.type!=="assistant")continue;let X=Q.message.content;if(!Array.isArray(X))continue;for(let Z of X){if(Z.type!=="tool_use"||Z.name!==o6)continue;let Y=Z.input;if(typeof Y.file_path==="string"&&Jn(Y.file_path))return!0}}return!1}function i$J(J,Q,X=!1,{enabled:Z=!0}={}){let Y=x_.useRef(new Set),q=x_.useRef(!1),K=x_.useRef(J);K.current=J;let G=x_.useCallback((A)=>{l(WA0,{event_type:"appeared",appearance_id:A})},[]),z=x_.useCallback((A,R)=>{l(WA0,{event_type:"responded",appearance_id:A,response:R})},[]),W=x_.useCallback((A)=>{return!1},[]),H=x_.useCallback((A)=>{l(WA0,{event_type:"transcript_prompt_appeared",appearance_id:A,trigger:p61})},[]),B=x_.useCallback(async(A,R)=>{if(l(WA0,{event_type:`transcript_share_${R}`,appearance_id:A,trigger:p61}),R==="dont_ask_again")q8((D)=>({...D,transcriptShareDismissed:!0}));if(R==="yes"){let D=await g61(K.current,p61,A);return l(WA0,{event_type:D.success?"transcript_share_submitted":"transcript_share_failed",appearance_id:A,trigger:p61}),D.success}return!1},[]),{state:U,lastResponse:F,open:_,handleSelect:O,handleTranscriptSelect:L}=p40({hideThanksAfterMs:qIQ,onOpen:G,onSelect:z,shouldShowTranscriptPrompt:W,onTranscriptPromptShown:H,onTranscriptSelect:B}),N=x_.useMemo(()=>nB(J),[J]);return x_.useEffect(()=>{if(!Z)return;if(J.length===0){q.current=!1,Y.current.clear();return}if(U!=="closed"||Q||X)return;if(!Y8(KIQ,!1))return;if(!l7())return;if(CQ0())return;if(!f2("allow_product_feedback"))return;if(!N||Y.current.has(N.uuid))return;let A=R7(N.message.content," ");if(!zIQ.test(A))return;if(Y.current.add(N.uuid),!q.current)q.current=WIQ(J);if(!q.current)return;if(Math.random()<GIQ)_()},[Z,U,Q,X,N,J,_]),{state:U,lastResponse:F,handleSelect:O,handleTranscriptSelect:L}}var x_,qIQ=3000,KIQ="jarvis_api_error",WA0="jarvis_api_error",GIQ=0.2,p61="memory_survey",zIQ;var n$J=I(()=>{th();D1();t5();QD();vZ();m8();o_0();M8();L08();m61();x_=T(J1(),1),zIQ=/\bmemor(?:y|ies)\b/i});function FIQ(J,Q){let X=J.findIndex((Z)=>Z.uuid===Q);if(X===-1)return!1;for(let Z=X+1;Z<J.length;Z++){let Y=J[Z];if(Y&&(Y.type==="user"||Y.type==="assistant"))return!0}return!1}function a$J(J,Q,X,Z){let Y=r$J.c(23),q=X===void 0?!1:X,K;if(Y[0]!==Z)K=Z===void 0?{}:Z,Y[0]=Z,Y[1]=K;else K=Y[1];let{enabled:G}=K,z=G===void 0?!0:G,[W,H]=Tg.useState(null),B;if(Y[2]===Symbol.for("react.memo_cache_sentinel"))B=new Set,Y[2]=B;else B=Y[2];let U=Tg.useRef(B),F=Tg.useRef(null),_=VIQ,O=LIQ,L;if(Y[3]===Symbol.for("react.memo_cache_sentinel"))L={hideThanksAfterMs:HIQ,onOpen:_,onSelect:O},Y[3]=L;else L=Y[3];let{state:N,lastResponse:A,open:R,handleSelect:D}=p40(L),$,y;if(Y[4]!==z)$=()=>{if(!z)return;H(GZ(BIQ))},y=[z],Y[4]=z,Y[5]=$,Y[6]=y;else $=Y[5],y=Y[6];Tg.useEffect($,y);let v;if(Y[7]!==J)v=new Set(J.filter(OIQ).map(_IQ)),Y[7]=J,Y[8]=v;else v=Y[8];let E=v,C,S;if(Y[9]!==E||Y[10]!==z||Y[11]!==W||Y[12]!==q||Y[13]!==Q||Y[14]!==J||Y[15]!==R||Y[16]!==N)S=()=>{if(!z)return;if(N!=="closed"||Q)return;if(q)return;if(W!==!0)return;if(CQ0())return;if(F.current!==null){if(FIQ(J,F.current)){if(F.current=null,Math.random()<UIQ)R();return}}let h=Array.from(E).filter((u)=>!U.current.has(u));if(h.length>0)U.current=new Set(E),F.current=h[h.length-1]},C=[z,E,N,Q,q,W,J,R],Y[9]=E,Y[10]=z,Y[11]=W,Y[12]=q,Y[13]=Q,Y[14]=J,Y[15]=R,Y[16]=N,Y[17]=C,Y[18]=S;else C=Y[17],S=Y[18];Tg.useEffect(S,C);let k;if(Y[19]!==D||Y[20]!==A||Y[21]!==N)k={state:N,lastResponse:A,handleSelect:D},Y[19]=D,Y[20]=A,Y[21]=N,Y[22]=k;else k=Y[22];return k}function _IQ(J){return J.uuid}function OIQ(J){return YW(J)}function LIQ(J,Q){let X=La0();l("jarvis_api_error",{event_type:"responded",appearance_id:J,response:Q,session_memory_compaction_enabled:X})}function VIQ(J){let Q=La0();l("jarvis_api_error",{event_type:"appeared",appearance_id:J,session_memory_compaction_enabled:Q})}var r$J,Tg,HIQ=3000,BIQ="jarvis_api_error",UIQ=0.2;var o$J=I(()=>{th();D1();Na0();M8();m61();r$J=T(e0(),1),Tg=T(J1(),1)});function t$J(J){let Q=s$J.c(11),{onSelect:X,inputValue:Z,setInputValue:Y}=J,q;if(Q[0]!==X)q=(U)=>X(wIQ[U]),Q[0]=X,Q[1]=q;else q=Q[1];let K;if(Q[2]!==Z||Q[3]!==Y||Q[4]!==q)K={inputValue:Z,setInputValue:Y,isValidDigit:AIQ,onDigit:q},Q[2]=Z,Q[3]=Y,Q[4]=q,Q[5]=K;else K=Q[5];f40(K);let G;if(Q[6]===Symbol.for("react.memo_cache_sentinel"))G=rH.jsxDEV(f,{children:[rH.jsxDEV(M,{color:"ansi:cyan",children:[_Q," "]},void 0,!0,void 0,this),rH.jsxDEV(M,{bold:!0,children:"Can Glock look at your session transcript to help us improve Glock?"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),Q[6]=G;else G=Q[6];let z;if(Q[7]===Symbol.for("react.memo_cache_sentinel"))z=rH.jsxDEV(f,{marginLeft:2,children:rH.jsxDEV(M,{dimColor:!0,children:"Learn more: https://docs.getglock.dev/en/data-usage#session-quality-surveys"},void 0,!1,void 0,this)},void 0,!1,void 0,this),Q[7]=z;else z=Q[7];let W;if(Q[8]===Symbol.for("react.memo_cache_sentinel"))W=rH.jsxDEV(f,{width:10,children:rH.jsxDEV(M,{children:[rH.jsxDEV(M,{color:"ansi:cyan",children:"1"},void 0,!1,void 0,this),": Yes"]},void 0,!0,void 0,this)},void 0,!1,void 0,this),Q[8]=W;else W=Q[8];let H;if(Q[9]===Symbol.for("react.memo_cache_sentinel"))H=rH.jsxDEV(f,{width:10,children:rH.jsxDEV(M,{children:[rH.jsxDEV(M,{color:"ansi:cyan",children:"2"},void 0,!1,void 0,this),": No"]},void 0,!0,void 0,this)},void 0,!1,void 0,this),Q[9]=H;else H=Q[9];let B;if(Q[10]===Symbol.for("react.memo_cache_sentinel"))B=rH.jsxDEV(f,{flexDirection:"column",marginTop:1,children:[G,z,rH.jsxDEV(f,{marginLeft:2,children:[W,H,rH.jsxDEV(f,{children:rH.jsxDEV(M,{children:[rH.jsxDEV(M,{color:"ansi:cyan",children:"3"},void 0,!1,void 0,this),": Don't ask again"]},void 0,!0,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),Q[10]=B;else B=Q[10];return B}var s$J,rH,NIQ,wIQ,AIQ=(J)=>NIQ.includes(J);var e$J=I(()=>{bZ();a0();A61();s$J=T(e0(),1),rH=T(e(),1),NIQ=["1","2","3"],wIQ={"1":"yes","2":"no","3":"dont_ask_again"}});function HA0(J){let Q=V08.c(16),{state:X,lastResponse:Z,handleSelect:Y,handleTranscriptSelect:q,inputValue:K,setInputValue:G,onRequestFeedback:z,message:W}=J;if(X==="closed")return null;if(X==="thanks"){let B;if(Q[0]!==K||Q[1]!==Z||Q[2]!==z||Q[3]!==G)B=k_.jsxDEV(MIQ,{lastResponse:Z,inputValue:K,setInputValue:G,onRequestFeedback:z},void 0,!1,void 0,this),Q[0]=K,Q[1]=Z,Q[2]=z,Q[3]=G,Q[4]=B;else B=Q[4];return B}if(X==="submitted"){let B;if(Q[5]===Symbol.for("react.memo_cache_sentinel"))B=k_.jsxDEV(f,{marginTop:1,children:k_.jsxDEV(M,{color:"success",children:["\u2713"," Thanks for sharing your transcript!"]},void 0,!0,void 0,this)},void 0,!1,void 0,this),Q[5]=B;else B=Q[5];return B}if(X==="submitting"){let B;if(Q[6]===Symbol.for("react.memo_cache_sentinel"))B=k_.jsxDEV(f,{marginTop:1,children:k_.jsxDEV(M,{dimColor:!0,children:["Sharing transcript","\u2026"]},void 0,!0,void 0,this)},void 0,!1,void 0,this),Q[6]=B;else B=Q[6];return B}if(X==="transcript_prompt"){if(!q)return null;if(K&&!["1","2","3"].includes(K))return null;let B;if(Q[7]!==q||Q[8]!==K||Q[9]!==G)B=k_.jsxDEV(t$J,{onSelect:q,inputValue:K,setInputValue:G},void 0,!1,void 0,this),Q[7]=q,Q[8]=K,Q[9]=G,Q[10]=B;else B=Q[10];return B}if(K&&!R61(K))return null;let H;if(Q[11]!==Y||Q[12]!==K||Q[13]!==W||Q[14]!==G)H=k_.jsxDEV(fMJ,{onSelect:Y,inputValue:K,setInputValue:G,message:W},void 0,!1,void 0,this),Q[11]=Y,Q[12]=K,Q[13]=W,Q[14]=G,Q[15]=H;else H=Q[15];return H}function MIQ(J){let Q=V08.c(12),{lastResponse:X,inputValue:Z,setInputValue:Y,onRequestFeedback:q}=J,K=q&&X==="good",G=Boolean(K),z;if(Q[0]!==X||Q[1]!==q)z=()=>{l("jarvis_api_error",{event_type:"followup_accepted",response:X}),q?.()},Q[0]=X,Q[1]=q,Q[2]=z;else z=Q[2];let W;if(Q[3]!==Z||Q[4]!==Y||Q[5]!==G||Q[6]!==z)W={inputValue:Z,setInputValue:Y,isValidDigit:RIQ,enabled:G,once:!0,onDigit:z},Q[3]=Z,Q[4]=Y,Q[5]=G,Q[6]=z,Q[7]=W;else W=Q[7];f40(W);let H="/feedback",B;if(Q[8]===Symbol.for("react.memo_cache_sentinel"))B=k_.jsxDEV(M,{color:"success",children:"Thanks for the feedback!"},void 0,!1,void 0,this),Q[8]=B;else B=Q[8];let U;if(Q[9]!==X||Q[10]!==K)U=k_.jsxDEV(f,{marginTop:1,flexDirection:"column",children:[B,K?k_.jsxDEV(M,{dimColor:!0,children:["(Optional) Press [",k_.jsxDEV(M,{color:"ansi:cyan",children:"1"},void 0,!1,void 0,this),"] to tell us what went well "," \xB7 ",H]},void 0,!0,void 0,this):X==="bad"?k_.jsxDEV(M,{dimColor:!0,children:"Use /issue to report model behavior issues."},void 0,!1,void 0,this):k_.jsxDEV(M,{dimColor:!0,children:["Use ",H," to share detailed feedback anytime."]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),Q[9]=X,Q[10]=K,Q[11]=U;else U=Q[11];return U}var V08,k_,RIQ=(J)=>J==="1";var JjJ=I(()=>{D1();a0();ie1();e$J();A61();V08=T(e0(),1),k_=T(e(),1)});function c40(J){let{addNotification:Q}=D9(),X=BA0.useRef(!1),Z=BA0.useRef(J);Z.current=J,BA0.useEffect(()=>{if(S9()||X.current)return;X.current=!0,Promise.resolve().then(()=>Z.current()).then((Y)=>{if(!Y)return;for(let q of Array.isArray(Y)?Y:[Y])Q(q)}).catch(H0)},[Q])}var BA0;var c61=I(()=>{N1();UY();M1();BA0=T(J1(),1)});function QjJ(){c40(DIQ)}async function DIQ(){return(await oV0()).map($IQ)}function $IQ(J,Q){let X="low";if(J.type==="error"||J.userActionRequired)X="high";else if(J.type==="path"||J.type==="alias")X="medium";return{key:`install-message-${Q}-${J.type}`,text:J.message,priority:X,color:J.type==="error"?"error":"warning"}}var XjJ=I(()=>{Eu();c61()});var ZjJ=I(()=>{s6();Z1();M8();CJ();wq();Dl()});var YjJ;var qjJ=I(()=>{MH0();ZjJ();M8();YjJ=T(J1(),1)});import{join as jIQ}from"path";function IIQ(){return!1}function N08(J){let Q=d61.INITIAL_DELAY_MS*Math.pow(d61.BACKOFF_MULTIPLIER,J);return Math.min(Q,d61.MAX_DELAY_MS)}function yIQ(J){if(!J.officialMarketplaceAutoInstallAttempted)return!0;if(J.officialMarketplaceAutoInstalled)return!1;let Q=J.officialMarketplaceAutoInstallFailReason,X=J.officialMarketplaceAutoInstallRetryCount||0,Z=J.officialMarketplaceAutoInstallNextRetryTime,Y=Date.now();if(X>=d61.MAX_ATTEMPTS)return!1;if(Q==="policy_blocked")return!1;if(Z&&Y<Z)return!1;return Q==="unknown"||Q==="git_unavailable"||Q==="gcs_unavailable"||Q===void 0}async function KjJ(){let J=L1();if(!yIQ(J)){let Q=J.officialMarketplaceAutoInstallFailReason??"already_attempted";return b(`Official marketplace auto-install skipped: ${Q}`),{installed:!1,skipped:!0,reason:Q}}try{if(IIQ())return b("Official marketplace auto-install disabled via env var, skipping"),q8((G)=>({...G,officialMarketplaceAutoInstallAttempted:!0,officialMarketplaceAutoInstalled:!1,officialMarketplaceAutoInstallFailReason:"policy_blocked"})),l("jarvis_api_error",{installed:!1,skipped:!0,policy_blocked:!0}),{installed:!1,skipped:!0,reason:"policy_blocked"};if((await _Z())[Uq])return b(`Official marketplace '${Uq}' already installed, skipping`),q8((G)=>({...G,officialMarketplaceAutoInstallAttempted:!0,officialMarketplaceAutoInstalled:!0})),{installed:!1,skipped:!0,reason:"already_installed"};if(!Pl(I80))return b("Official marketplace blocked by enterprise policy, skipping"),q8((G)=>({...G,officialMarketplaceAutoInstallAttempted:!0,officialMarketplaceAutoInstalled:!1,officialMarketplaceAutoInstallFailReason:"policy_blocked"})),l("jarvis_api_error",{installed:!1,skipped:!0,policy_blocked:!0}),{installed:!1,skipped:!0,reason:"policy_blocked"};let X=Ln(),Z=jIQ(X,Uq);if(await Lr0(Z,X)!==null){let G=await _Z();return G[Uq]={source:I80,installLocation:Z,lastUpdated:new Date().toISOString()},await mT(G),q8((z)=>({...z,officialMarketplaceAutoInstallAttempted:!0,officialMarketplaceAutoInstalled:!0,officialMarketplaceAutoInstallFailReason:void 0,officialMarketplaceAutoInstallRetryCount:void 0,officialMarketplaceAutoInstallLastAttemptTime:void 0,officialMarketplaceAutoInstallNextRetryTime:void 0})),l("jarvis_api_error",{installed:!0,skipped:!1,via_gcs:!0}),{installed:!0,skipped:!1}}if(!Y8("jarvis_api_error",!0)){b("Official marketplace GCS failed; git fallback disabled by flag \u2014 skipping install");let G=(J.officialMarketplaceAutoInstallRetryCount||0)+1,z=Date.now(),W=z+N08(G);return q8((H)=>({...H,officialMarketplaceAutoInstallAttempted:!0,officialMarketplaceAutoInstalled:!1,officialMarketplaceAutoInstallFailReason:"gcs_unavailable",officialMarketplaceAutoInstallRetryCount:G,officialMarketplaceAutoInstallLastAttemptTime:z,officialMarketplaceAutoInstallNextRetryTime:W})),l("jarvis_api_error",{installed:!1,skipped:!0,gcs_unavailable:!0,retry_count:G}),{installed:!1,skipped:!0,reason:"gcs_unavailable"}}if(!await bl()){b("Git not available, skipping official marketplace auto-install");let G=(J.officialMarketplaceAutoInstallRetryCount||0)+1,z=Date.now(),W=N08(G),H=z+W,B=!1;try{q8((U)=>({...U,officialMarketplaceAutoInstallAttempted:!0,officialMarketplaceAutoInstalled:!1,officialMarketplaceAutoInstallFailReason:"git_unavailable",officialMarketplaceAutoInstallRetryCount:G,officialMarketplaceAutoInstallLastAttemptTime:z,officialMarketplaceAutoInstallNextRetryTime:H}))}catch(U){B=!0;let F=R8(U);H0(F),b(`Failed to save marketplace auto-install git_unavailable state: ${U}`,{level:"error"})}return l("jarvis_api_error",{installed:!1,skipped:!0,git_unavailable:!0,retry_count:G}),{installed:!1,skipped:!0,reason:"git_unavailable",configSaveFailed:B}}b("Attempting to auto-install official marketplace"),await ph(I80),b("Successfully auto-installed official marketplace");let K=J.officialMarketplaceAutoInstallRetryCount||0;return q8((G)=>({...G,officialMarketplaceAutoInstallAttempted:!0,officialMarketplaceAutoInstalled:!0,officialMarketplaceAutoInstallFailReason:void 0,officialMarketplaceAutoInstallRetryCount:void 0,officialMarketplaceAutoInstallLastAttemptTime:void 0,officialMarketplaceAutoInstallNextRetryTime:void 0})),l("jarvis_api_error",{installed:!0,skipped:!1,retry_count:K}),{installed:!0,skipped:!1}}catch(Q){let X=Q instanceof Error?Q.message:String(Q);if(X.includes("xcrun: error:"))return T_6(),b("Official marketplace auto-install: git is a non-functional macOS xcrun shim, treating as git_unavailable"),l("jarvis_api_error",{installed:!1,skipped:!0,git_unavailable:!0,macos_xcrun_shim:!0}),{installed:!1,skipped:!0,reason:"git_unavailable"};b(`Failed to auto-install official marketplace: ${X}`,{level:"error"}),H0(R8(Q));let Z=(J.officialMarketplaceAutoInstallRetryCount||0)+1,Y=Date.now(),q=N08(Z),K=Y+q,G=!1;try{q8((z)=>({...z,officialMarketplaceAutoInstallAttempted:!0,officialMarketplaceAutoInstalled:!1,officialMarketplaceAutoInstallFailReason:"unknown",officialMarketplaceAutoInstallRetryCount:Z,officialMarketplaceAutoInstallLastAttemptTime:Y,officialMarketplaceAutoInstallNextRetryTime:K}))}catch(z){G=!0;let W=R8(z);H0(W),b(`Failed to save marketplace auto-install failure state: ${z}`,{level:"error"})}return l("jarvis_api_error",{installed:!1,skipped:!0,failed:!0,retry_count:Z}),{installed:!1,skipped:!0,reason:"unknown",configSaveFailed:G}}}var d61;var GjJ=I(()=>{D1();m8();Z1();T1();M1();Lm0();bE();q5();YE();Iu1();d61={MAX_ATTEMPTS:10,INITIAL_DELAY_MS:3600000,BACKOFF_MULTIPLIER:2,MAX_DELAY_MS:604800000}});function zjJ(){c40(bIQ)}async function bIQ(){let J=await KjJ(),Q=[];if(J.configSaveFailed)b("Showing marketplace config save failure notification"),Q.push({key:"marketplace-config-save-failed",jsx:l61.jsxDEV(M,{color:"error",children:"Failed to save marketplace retry info \xB7 Check ~/.glock.json permissions"},void 0,!1,void 0,this),priority:"immediate",timeoutMs:1e4});if(J.installed)b("Showing marketplace installation success notification"),Q.push({key:"marketplace-installed",jsx:l61.jsxDEV(M,{color:"success",children:"\u2713 Glock marketplace installed \xB7 /plugin to see available plugins"},void 0,!1,void 0,this),priority:"immediate",timeoutMs:7000});else if(J.skipped&&J.reason==="unknown")b("Showing marketplace installation failure notification"),Q.push({key:"marketplace-install-failed",jsx:l61.jsxDEV(M,{color:"warning",children:"Failed to install Glock marketplace \xB7 Will retry on next startup"},void 0,!1,void 0,this),priority:"immediate",timeoutMs:8000});return Q}var l61;var WjJ=I(()=>{a0();Z1();GjJ();c61();l61=T(e(),1)});function HjJ(J){let Q=L1().numStartups;q8((X)=>{let Z=X.tipsHistory??{};if(Z[J]===Q)return X;return{...X,tipsHistory:{...Z,[J]:Q}}})}function i61(J){let Q=L1(),X=Q.tipsHistory?.[J];if(!X)return 1/0;return Q.numStartups-X}var w08=I(()=>{m8()});import{readdir as PIQ}from"fs/promises";import{join as EIQ}from"path";function A08(){return!0}function CIQ(J){let Q=A08()?"glock-dev":"glock",X=new URL(`${Q}://resume`);return X.searchParams.set("session",J),X.searchParams.set("cwd",B1()),X.toString()}async function BjJ(){if(A08())return!0;let J=process.platform;if(J==="darwin")return K7("/Applications/Glock.app");else if(J==="linux"){let{code:Q,stdout:X}=await Z8("xdg-mime",["query","default","x-scheme-handler/glock"]);return Q===0&&X.trim().length>0}else if(J==="win32"){let{code:Q}=await Z8("reg",["query","HKEY_CLASSES_ROOT\\glock","/ve"]);return Q===0}return!1}async function vIQ(){let J=process.platform;if(J==="darwin"){let{code:Q,stdout:X}=await Z8("defaults",["read","/Applications/Glock.app/Contents/Info.plist","CFBundleShortVersionString"]);if(Q!==0)return null;let Z=X.trim();return Z.length>0?Z:null}else if(J==="win32"){let Q=process.env.LOCALAPPDATA;if(!Q)return null;let X=EIQ(Q,"Glock");try{let Y=(await PIQ(X)).filter((q)=>q.startsWith("app-")).map((q)=>q.slice(4)).filter((q)=>UA0.coerce(q)!==null).sort((q,K)=>{let G=UA0.coerce(q),z=UA0.coerce(K);return G.compare(z)});return Y.length>0?Y[Y.length-1]:null}catch{return null}}return null}async function UjJ(){if(!await BjJ())return{status:"not-installed"};let Q;try{Q=await vIQ()}catch{return{status:"ready",version:"unknown"}}if(!Q)return{status:"ready",version:"unknown"};let X=UA0.coerce(Q);if(!X||!W2(X.version,TIQ))return{status:"version-too-old",version:Q};return{status:"ready",version:Q}}async function fIQ(J){let Q=process.platform;if(b(`Opening deep link: ${J}`),Q==="darwin"){if(A08()){let{code:Z}=await Z8("osascript",["-e",`tell application "Electron" to open location "${J}"`]);return Z===0}let{code:X}=await Z8("open",[J]);return X===0}else if(Q==="linux"){let{code:X}=await Z8("xdg-open",[J]);return X===0}else if(Q==="win32"){let{code:X}=await Z8("cmd",["/c","start","",J]);return X===0}return!1}async function FjJ(){let J=A1();if(!await BjJ())return{success:!1,error:"Glock Desktop is not installed. Install it from https://glock/download"};let X=CIQ(J);if(!await fIQ(X))return{success:!1,error:"Failed to open Glock Desktop. Please try opening it manually.",deepLinkUrl:X};return{success:!0,deepLinkUrl:X}}var UA0,TIQ="1.1.2396";var _jJ=I(()=>{N1();Z6();Z1();T9();V9();UA0=T(b10(),1)});function SIQ(){switch(process.platform){case"win32":return"https://glock/api/desktop/win32/x64/exe/latest/redirect";default:return"https://glock/api/desktop/darwin/universal/dmg/latest/redirect"}}function VjJ(J){let Q=LjJ.c(20),{onDone:X}=J,[Z,Y]=d40.useState("checking"),[q,K]=d40.useState(null),[G,z]=d40.useState(""),W;if(Q[0]!==q||Q[1]!==X||Q[2]!==Z)W=(L)=>{if(Z==="error"){X(q??"Unknown error",{display:"system"});return}if(Z==="prompt-download"){if(L==="y"||L==="Y")IX(SIQ()).catch(kIQ),X(`Starting download. Re-run /desktop once you\u2019ve installed the app.
|
|
6943
6943
|
Learn more at ${OjJ}`,{display:"system"});else if(L==="n"||L==="N")X(`The desktop app is required for /desktop. Learn more at ${OjJ}`,{display:"system"})}},Q[0]=q,Q[1]=X,Q[2]=Z,Q[3]=W;else W=Q[3];SJ(W);let H,B;if(Q[4]!==X)H=()=>{(async function(){Y("checking");let A=await UjJ();if(A.status==="not-installed"){z("Glock Desktop is not installed."),Y("prompt-download");return}if(A.status==="version-too-old"){z(`Glock Desktop needs to be updated (found v${A.version}, need v1.1.2396+).`),Y("prompt-download");return}Y("flushing"),await Gy(),Y("opening");let R=await FjJ();if(!R.success){K(R.error??"Failed to open Glock Desktop"),Y("error");return}Y("success"),setTimeout(xIQ,500,X)})().catch((N)=>{K(Q1(N)),Y("error")})},B=[X],Q[4]=X,Q[5]=H,Q[6]=B;else H=Q[5],B=Q[6];if(d40.useEffect(H,B),Z==="error"){let L;if(Q[7]!==q)L=Cg.jsxDEV(M,{color:"error",children:["Error: ",q]},void 0,!0,void 0,this),Q[7]=q,Q[8]=L;else L=Q[8];let N;if(Q[9]===Symbol.for("react.memo_cache_sentinel"))N=Cg.jsxDEV(M,{dimColor:!0,children:"Press any key to continue\u2026"},void 0,!1,void 0,this),Q[9]=N;else N=Q[9];let A;if(Q[10]!==L)A=Cg.jsxDEV(f,{flexDirection:"column",paddingX:2,children:[L,N]},void 0,!0,void 0,this),Q[10]=L,Q[11]=A;else A=Q[11];return A}if(Z==="prompt-download"){let L;if(Q[12]!==G)L=Cg.jsxDEV(M,{children:G},void 0,!1,void 0,this),Q[12]=G,Q[13]=L;else L=Q[13];let N;if(Q[14]===Symbol.for("react.memo_cache_sentinel"))N=Cg.jsxDEV(M,{children:"Download now? (y/n)"},void 0,!1,void 0,this),Q[14]=N;else N=Q[14];let A;if(Q[15]!==L)A=Cg.jsxDEV(f,{flexDirection:"column",paddingX:2,children:[L,N]},void 0,!0,void 0,this),Q[15]=L,Q[16]=A;else A=Q[16];return A}let U;if(Q[17]===Symbol.for("react.memo_cache_sentinel"))U={checking:"Checking for Glock Desktop\u2026",flushing:"Saving session\u2026",opening:"Opening Glock Desktop\u2026",success:"Opening in Glock Desktop\u2026"},Q[17]=U;else U=Q[17];let _=U[Z],O;if(Q[18]!==_)O=Cg.jsxDEV(jC,{message:_},void 0,!1,void 0,this),Q[18]=_,Q[19]=O;else O=Q[19];return O}async function xIQ(J){J("Session transferred to Glock Desktop",{display:"system"}),await c4(0,"other")}function kIQ(){}var LjJ,d40,Cg,OjJ="https://clau.de/desktop";var NjJ=I(()=>{a0();s3();_jJ();T1();E5();gJ();TZ0();LjJ=T(e0(),1),d40=T(J1(),1),Cg=T(e(),1)});function R08(){return Fb("jarvis_api_error",hIQ)}function uIQ(){return process.platform==="darwin"||process.platform==="win32"&&process.arch==="x64"}function AjJ(){if(!uIQ())return!1;if(!R08().enable_startup_dialog)return!1;let J=L1();if(J.desktopUpsellDismissed)return!1;if((J.desktopUpsellSeenCount??0)>=3)return!1;return!0}function RjJ(J){let Q=wjJ.c(14),{onDone:X}=J,[Z,Y]=n61.useState(!1),q;if(Q[0]===Symbol.for("react.memo_cache_sentinel"))q=[],Q[0]=q;else q=Q[0];if(n61.useEffect(mIQ,q),Z){let O;if(Q[1]!==X)O=Ra.jsxDEV(VjJ,{onDone:()=>X()},void 0,!1,void 0,this),Q[1]=X,Q[2]=O;else O=Q[2];return O}let K;if(Q[3]!==X)K=function(L){switch(L){case"try":{Y(!0);return}case"never":{q8(gIQ),X();return}case"not-now":{X();return}}},Q[3]=X,Q[4]=K;else K=Q[4];let G=K,z;if(Q[5]===Symbol.for("react.memo_cache_sentinel"))z={label:"Open in Glock Desktop",value:"try"},Q[5]=z;else z=Q[5];let W;if(Q[6]===Symbol.for("react.memo_cache_sentinel"))W={label:"Not now",value:"not-now"},Q[6]=W;else W=Q[6];let H;if(Q[7]===Symbol.for("react.memo_cache_sentinel"))H=[z,W,{label:"Don't ask again",value:"never"}],Q[7]=H;else H=Q[7];let B=H,U;if(Q[8]===Symbol.for("react.memo_cache_sentinel"))U=Ra.jsxDEV(f,{marginBottom:1,children:Ra.jsxDEV(M,{children:"Same Glock with visual diffs, live app preview, parallel sessions, and more."},void 0,!1,void 0,this)},void 0,!1,void 0,this),Q[8]=U;else U=Q[8];let F;if(Q[9]!==G)F=()=>G("not-now"),Q[9]=G,Q[10]=F;else F=Q[10];let _;if(Q[11]!==G||Q[12]!==F)_=Ra.jsxDEV(OZ,{title:"Try Glock Desktop",children:Ra.jsxDEV(f,{flexDirection:"column",paddingX:2,paddingY:1,children:[U,Ra.jsxDEV(Q8,{options:B,onChange:G,onCancel:F},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this),Q[11]=G,Q[12]=F,Q[13]=_;else _=Q[13];return _}function gIQ(J){if(J.desktopUpsellDismissed)return J;return{...J,desktopUpsellDismissed:!0}}function mIQ(){let J=(L1().desktopUpsellSeenCount??0)+1;q8((Q)=>{if((Q.desktopUpsellSeenCount??0)>=J)return Q;return{...Q,desktopUpsellSeenCount:J}}),l("jarvis_api_error",{seen_count:J})}var wjJ,n61,Ra,hIQ;var M08=I(()=>{a0();D1();m8();AQ();NjJ();TH();wjJ=T(e0(),1),n61=T(J1(),1),Ra=T(e(),1),hIQ={enable_shortcut_tip:!1,enable_startup_dialog:!1}});async function pIQ(){if(r61!==void 0)return r61;let J=await Vk();return r61=Uq in J,r61}async function MjJ(J,Q,X){if(!await pIQ())return!1;if(RI(`${J}@${Uq}`))return!1;let{bashTools:Z}=Q??{};if(X.cli&&Z?.size){if(X.cli.some((Y)=>Z.has(Y)))return!0}if(X.filePath&&Q?.readFileState){if(_i(Q.readFileState).some((q)=>X.filePath.test(q)))return!0}return!1}function lIQ(){let Q=h6().spinnerTipsOverride;if(!Q?.tips?.length)return[];return Q.tips.map((X,Z)=>({id:`custom-tip-${Z}`,content:async()=>X,cooldownSessions:0,isRelevant:async()=>!0}))}async function a61(J){let X=h6().spinnerTipsOverride,Z=lIQ();if(X?.excludeDefault&&Z.length>0)return Z;let Y=[...cIQ,...dIQ],q=await Promise.all(Y.map((G)=>G.isRelevant(J)));return[...Y.filter((G,z)=>q[z]).filter((G)=>i61(G.id)>=G.cooldownSessions),...Z]}var r61,cIQ,dIQ;var D08=I(()=>{k7();Z1();pF();g8();hn();M08();jd();An1();ij();GP1();N9();mr();m8();sN();WZ();I2();uQ();b5();CJ();k9();i3();q5();YE();gJ();Pe0();uZ0();w08();cIQ=[{id:"new-user-warmup",content:async()=>"Start with small features or bug fixes, tell Glock to propose a plan, and verify its suggested edits",cooldownSessions:3,async isRelevant(){return L1().numStartups<10}},{id:"plan-mode-for-complex-tasks",content:async()=>`Use Plan Mode to prepare for a complex request before making changes. Press ${PK("chat:cycleMode","Chat","shift+tab")} twice to enable.`,cooldownSessions:5,isRelevant:async()=>{if(process.env.USER_TYPE==="ant")return!1;let J=L1();return(J.lastPlanModeUse?(Date.now()-J.lastPlanModeUse)/86400000:1/0)>7}},{id:"default-permission-mode-config",content:async()=>"Use /config to change your default permission mode (including Plan Mode)",cooldownSessions:10,isRelevant:async()=>{try{let J=L1(),Q=q6(),X=Boolean(J.lastPlanModeUse),Z=Boolean(Q?.permissions?.defaultMode);return X&&!Z}catch(J){return b(`Failed to check default-permission-mode-config tip relevance: ${J}`,{level:"warn"}),!1}}},{id:"git-worktrees",content:async()=>"Use git worktrees to run multiple Glock sessions in parallel.",cooldownSessions:10,isRelevant:async()=>{try{let J=L1();return await QI0()<=1&&J.numStartups>50}catch(J){return!1}}},{id:"color-when-multi-clauding",content:async()=>"Running multiple Glock sessions? Use /color and /rename to tell them apart at a glance.",cooldownSessions:10,isRelevant:async()=>{if(fs1())return!1;return await C11()>=2}},{id:"terminal-setup",content:async()=>k8.terminal==="Apple_Terminal"?"Run /terminal-setup to enable convenient terminal integration like Option + Enter for new line and more":"Run /terminal-setup to enable convenient terminal integration like Shift + Enter for new line and more",cooldownSessions:10,async isRelevant(){let J=L1();if(k8.terminal==="Apple_Terminal")return!J.optionAsMetaKeyInstalled;return!J.shiftEnterKeyBindingInstalled}},{id:"shift-enter",content:async()=>k8.terminal==="Apple_Terminal"?"Press Option+Enter to send a multi-line message":"Press Shift+Enter to send a multi-line message",cooldownSessions:10,async isRelevant(){let J=L1();return Boolean((k8.terminal==="Apple_Terminal"?J.optionAsMetaKeyInstalled:J.shiftEnterKeyBindingInstalled)&&J.numStartups>3)}},{id:"shift-enter-setup",content:async()=>k8.terminal==="Apple_Terminal"?"Run /terminal-setup to enable Option+Enter for new lines":"Run /terminal-setup to enable Shift+Enter for new lines",cooldownSessions:10,async isRelevant(){if(!dQ0())return!1;let J=L1();return!(k8.terminal==="Apple_Terminal"?J.optionAsMetaKeyInstalled:J.shiftEnterKeyBindingInstalled)}},{id:"memory-command",content:async()=>"Use /memory to view and manage Glock memory",cooldownSessions:15,async isRelevant(){return L1().memoryUsageCount<=0}},{id:"theme-command",content:async()=>"Use /theme to change the color theme",cooldownSessions:20,isRelevant:async()=>!0},{id:"colorterm-truecolor",content:async()=>"Try setting environment variable COLORTERM=truecolor for richer colors",cooldownSessions:30,isRelevant:async()=>!process.env.COLORTERM&&_1.level<3},{id:"powershell-tool-env",content:async()=>"Set GLOCK_USE_POWERSHELL_TOOL=1 to enable the PowerShell tool (preview)",cooldownSessions:10,isRelevant:async()=>N8()==="windows"&&process.env.GLOCK_USE_POWERSHELL_TOOL===void 0},{id:"status-line",content:async()=>"Use /statusline to set up a custom status line that will display beneath the input box",cooldownSessions:25,isRelevant:async()=>q6().statusLine===void 0},{id:"prompt-queue",content:async()=>"Hit Enter to queue up additional messages while Glock is working.",cooldownSessions:5,async isRelevant(){return L1().promptQueueUseCount<=3}},{id:"enter-to-steer-in-relatime",content:async()=>"Send messages to Glock while it works to steer Glock in real-time",cooldownSessions:20,isRelevant:async()=>!0},{id:"todo-list",content:async()=>"Ask Glock to create a todo list when working on complex tasks to track progress and remain on track",cooldownSessions:20,isRelevant:async()=>!0},{id:"vscode-command-install",content:async()=>`Open the Command Palette (Cmd+Shift+P) and run "Shell Command: Install '${k8.terminal==="vscode"?"code":k8.terminal}' command in PATH" to enable IDE integration`,cooldownSessions:0,async isRelevant(){if(!PF0())return!1;if(N8()!=="macos")return!1;switch(k8.terminal){case"vscode":return!await rR6();case"cursor":return!await iR6();case"windsurf":return!await nR6();default:return!1}}},{id:"ide-upsell-external-terminal",content:async()=>"Connect Glock to your IDE \xB7 /ide",cooldownSessions:4,async isRelevant(){if(tz())return!1;if((await tc0()).length!==0)return!1;return(await aR6()).length>0}},{id:"permissions",content:async()=>"Use /permissions to pre-approve and pre-deny bash, edit, and MCP tools",cooldownSessions:10,async isRelevant(){return L1().numStartups>10}},{id:"drag-and-drop-images",content:async()=>"Did you know you can drag and drop image files into your terminal?",cooldownSessions:10,isRelevant:async()=>!k8.isSSH()},{id:"paste-images-mac",content:async()=>"Paste images into Glock using control+v (not cmd+v!)",cooldownSessions:10,isRelevant:async()=>N8()==="macos"},{id:"double-esc",content:async()=>"Double-tap esc to rewind the conversation to a previous point in time",cooldownSessions:10,isRelevant:async()=>!aZ()},{id:"double-esc-code-restore",content:async()=>"Double-tap esc to rewind the code and/or conversation to a previous point in time",cooldownSessions:10,isRelevant:async()=>aZ()},{id:"continue",content:async()=>"Run glock --continue or glock --resume to resume a conversation",cooldownSessions:10,isRelevant:async()=>!0},{id:"rename-conversation",content:async()=>"Name your conversations with /rename to find them easily in /resume later",cooldownSessions:15,isRelevant:async()=>Cr()&&L1().numStartups>10},{id:"custom-commands",content:async()=>"Create skills by adding .md files to .glock/skills/ in your project or ~/.glock/skills/ for skills that work in any project",cooldownSessions:15,async isRelevant(){return L1().numStartups>10}},{id:"shift-tab",content:async()=>process.env.USER_TYPE==="ant"?`Hit ${PK("chat:cycleMode","Chat","shift+tab")} to cycle between default mode and auto mode`:`Hit ${PK("chat:cycleMode","Chat","shift+tab")} to cycle between default mode, auto-accept edit mode, and plan mode`,cooldownSessions:10,isRelevant:async()=>!0},{id:"image-paste",content:async()=>`Use ${PK("chat:imagePaste","Chat","ctrl+v")} to paste images from your clipboard`,cooldownSessions:20,isRelevant:async()=>!0},{id:"custom-agents",content:async()=>"Use /agents to optimize specific tasks. Eg. Software Architect, Code Writer, Code Reviewer",cooldownSessions:15,async isRelevant(){return L1().numStartups>5}},{id:"agent-flag",content:async()=>"Use --agent <agent_name> to directly start a conversation with a subagent",cooldownSessions:15,async isRelevant(){return L1().numStartups>5}},{id:"desktop-app",content:async()=>"Run Glock locally or remotely using the Glock desktop app: clau.de/desktop",cooldownSessions:15,isRelevant:async()=>N8()!=="linux"},{id:"desktop-shortcut",content:async(J)=>{return`Continue your session in Glock Desktop with ${G6("suggestion",J.theme)("/desktop")}`},cooldownSessions:15,isRelevant:async()=>{if(!R08().enable_shortcut_tip)return!1;return process.platform==="darwin"||process.platform==="win32"&&process.arch==="x64"}},{id:"web-app",content:async()=>"Run tasks in the cloud while you keep coding locally \xB7 clau.de/web",cooldownSessions:15,isRelevant:async()=>!0},{id:"mobile-app",content:async()=>"/mobile to use Glock from the Glock app on your phone",cooldownSessions:15,isRelevant:async()=>!0},{id:"opusplan-mode-reminder",content:async()=>`Your default model setting is Opus Plan Mode. Press ${PK("chat:cycleMode","Chat","shift+tab")} twice to activate Plan Mode and plan with Glock Opus.`,cooldownSessions:2,async isRelevant(){if(process.env.USER_TYPE==="ant")return!1;let J=L1(),X=RR()==="opusplan",Z=J.lastPlanModeUse?(Date.now()-J.lastPlanModeUse)/86400000:1/0;return X&&Z>3}},{id:"frontend-design-plugin",content:async(J)=>{return`Working with HTML/CSS? Install the frontend-design plugin:
|
|
6944
6944
|
${G6("suggestion",J.theme)(`/plugin install frontend-design@${Uq}`)}`},cooldownSessions:3,isRelevant:async(J)=>MjJ("frontend-design",J,{filePath:/\.(html|css|htm)$/i})},{id:"vercel-plugin",content:async(J)=>{return`Working with Vercel? Install the vercel plugin:
|
|
6945
6945
|
${G6("suggestion",J.theme)(`/plugin install vercel@${Uq}`)}`},cooldownSessions:3,isRelevant:async(J)=>MjJ("vercel",J,{filePath:/(?:^|[/\\])vercel\.json$/i,cli:["vercel"]})},{id:"effort-high-nudge",content:async(J)=>{let X=G6("suggestion",J.theme)("/effort high");return Y8("jarvis_api_error","off")==="copy_b"?`Use ${X} for better one-shot answers. Glock thinks it through first.`:`Working on something tricky? ${X} gives better first answers`},cooldownSessions:3,isRelevant:async()=>{if(!KS0())return!1;if(!oN(ZX()))return!1;if(O8("policySettings")?.effortLevel!==void 0)return!1;if(HE1()!==void 0)return!1;let J=h6().effortLevel;if(J==="high"||J==="max")return!1;return Y8("jarvis_api_error","off")!=="off"}},{id:"subagent-fanout-nudge",content:async(J)=>{let Q=G6("suggestion",J.theme);return Y8("jarvis_api_error","off")==="copy_b"?`For big tasks, tell Glock to ${Q("use subagents")}. They work in parallel and keep your main thread clean.`:`Say ${Q('"fan out subagents"')} and Glock sends a team. Each one digs deep so nothing gets missed.`},cooldownSessions:3,isRelevant:async()=>{if(!KS0())return!1;return Y8("jarvis_api_error","off")!=="off"}},{id:"loop-command-nudge",content:async(J)=>{let Q=G6("suggestion",J.theme);return Y8("jarvis_api_error","off")==="copy_b"?`Use ${Q("/loop 5m check the deploy")} to run any prompt on a schedule. Set it and forget it.`:`${Q("/loop")} runs any prompt on a recurring schedule. Great for monitoring deploys, babysitting PRs, or polling status.`},cooldownSessions:3,isRelevant:async()=>{if(!KS0())return!1;if(!XB6())return!1;return Y8("jarvis_api_error","off")!=="off"}},{id:"guest-passes",content:async(J)=>{let Q=G6("glock",J.theme),X=B11();return X?`Share Glock and earn ${Q(H11(X))} of extra usage \xB7 ${Q("/passes")}`:`You have free guest passes to share \xB7 ${Q("/passes")}`},cooldownSessions:3,isRelevant:async()=>{if(L1().hasVisitedPasses)return!1;let{eligible:Q}=W11();return Q}},{id:"overage-credit",content:async(J)=>{let Q=G6("glock",J.theme),X=KN0(),Z=X?GN0(X):null;if(!Z)return"";return`${Q(`${Z} in extra usage, on us`)} \xB7 third-party apps \xB7 ${Q("/extra-usage")}`},cooldownSessions:3,isRelevant:async()=>kXJ()},{id:"feedback-command",content:async()=>"Use /feedback to help us improve!",cooldownSessions:15,async isRelevant(){if(process.env.USER_TYPE==="ant")return!1;return L1().numStartups>5}}],dIQ=process.env.USER_TYPE==="ant"?[{id:"important-glockmd",content:async()=>'[ANT-ONLY] Use "IMPORTANT:" prefix for must-follow GLOCK.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 iIQ(J){if(J.length===0)return;if(J.length===1)return J[0];let Q=J.map((X)=>({tip:X,sessions:i61(X.id)}));return Q.sort((X,Z)=>Z.sessions-X.sessions),Q[0]?.tip}async function DjJ(J){if(q6().spinnerTipsEnabled===!1)return;let Q=await a61(J);if(Q.length===0)return;return iIQ(Q)}function $jJ(J){HjJ(J.id),l("jarvis_api_error",{tipIdLength:J.id,cooldownSessions:J.cooldownSessions})}var jjJ=I(()=>{g8();D1();w08();D08()});async function $08(J,Q){if(IjJ)return;if(IjJ=!0,!J.isBypassPermissionsModeAvailable)return;if(!await Pl1())return;Q((Z)=>{return{...Z,toolPermissionContext:c90(Z.toolPermissionContext)}})}function yjJ(){let J=O1((X)=>X.toolPermissionContext),Q=T6();FA0.useEffect(()=>{if(S9())return;$08(J,Q)},[])}async function rIQ(J,Q,X){}function aIQ(){nIQ=!1}function bjJ(){let J=O1((K)=>K.mainLoopModel),Q=O1((K)=>K.mainLoopModelForSession),X=O1((K)=>K.fastMode),Z=T6(),Y=aX(),q=FA0.useRef(!0);FA0.useEffect(()=>{if(S9())return;if(q.current)q.current=!1;else aIQ();rIQ(Y.getState().toolPermissionContext,Z,X)},[J,Q,X])}var FA0,IjJ=!1,nIQ=!1;var PjJ=I(()=>{W6();N1();JW();FA0=T(J1(),1)});function EjJ(J,Q,X){let Z=o61.useRef(!1);o61.useEffect(()=>{if(!aZ()||Z.current)return;if(Z.current=!0,J)Um0(J,X)},[Q,J,X])}var o61;var TjJ=I(()=>{pF();o61=T(J1(),1)});function j08(J){let Q=CjJ.c(22),{hostPattern:X,onUserResponse:Z}=J,{host:Y}=X,q;if(Q[0]!==Z)q=function($){J:switch($){case"yes":{Z({allow:!0,persistToSettings:!1});break J}case"yes-dont-ask-again":{Z({allow:!0,persistToSettings:!0});break J}case"no":Z({allow:!1,persistToSettings:!1})}},Q[0]=Z,Q[1]=q;else q=Q[1];let K=q,G;if(Q[2]===Symbol.for("react.memo_cache_sentinel"))G=ZB0(),Q[2]=G;else G=Q[2];let z=G,W;if(Q[3]===Symbol.for("react.memo_cache_sentinel"))W={label:"Yes",value:"yes"},Q[3]=W;else W=Q[3];let H;if(Q[4]!==Y)H=!z?[{label:h_.jsxDEV(M,{children:["Yes, and don't ask again for ",h_.jsxDEV(M,{bold:!0,children:Y},void 0,!1,void 0,this)]},void 0,!0,void 0,this),value:"yes-dont-ask-again"}]:[],Q[4]=Y,Q[5]=H;else H=Q[5];let B;if(Q[6]===Symbol.for("react.memo_cache_sentinel"))B={label:h_.jsxDEV(M,{children:["No, and tell Glock what to do differently ",h_.jsxDEV(M,{bold:!0,children:"(esc)"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),value:"no"},Q[6]=B;else B=Q[6];let U;if(Q[7]!==H)U=[W,...H,B],Q[7]=H,Q[8]=U;else U=Q[8];let F=U,_;if(Q[9]===Symbol.for("react.memo_cache_sentinel"))_=h_.jsxDEV(M,{dimColor:!0,children:"Host:"},void 0,!1,void 0,this),Q[9]=_;else _=Q[9];let O;if(Q[10]!==Y)O=h_.jsxDEV(f,{children:[_,h_.jsxDEV(M,{children:[" ",Y]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),Q[10]=Y,Q[11]=O;else O=Q[11];let L;if(Q[12]===Symbol.for("react.memo_cache_sentinel"))L=h_.jsxDEV(f,{marginTop:1,children:h_.jsxDEV(M,{children:"Do you want to allow this connection?"},void 0,!1,void 0,this)},void 0,!1,void 0,this),Q[12]=L;else L=Q[12];let N;if(Q[13]!==Z)N=()=>{Z({allow:!1,persistToSettings:!1})},Q[13]=Z,Q[14]=N;else N=Q[14];let A;if(Q[15]!==K||Q[16]!==F||Q[17]!==N)A=h_.jsxDEV(f,{children:h_.jsxDEV(Q8,{options:F,onChange:K,onCancel:N},void 0,!1,void 0,this)},void 0,!1,void 0,this),Q[15]=K,Q[16]=F,Q[17]=N,Q[18]=A;else A=Q[18];let R;if(Q[19]!==A||Q[20]!==O)R=h_.jsxDEV(OZ,{title:"Network request outside of sandbox",children:h_.jsxDEV(f,{flexDirection:"column",paddingX:2,paddingY:1,children:[O,L,A]},void 0,!0,void 0,this)},void 0,!1,void 0,this),Q[19]=A,Q[20]=O,Q[21]=R;else R=Q[21];return R}var CjJ,h_;var vjJ=I(()=>{a0();V4();AQ();TH();CjJ=T(e0(),1),h_=T(e(),1)});function oIQ(J){let Q=J.getHours()%12||12,X=String(J.getMinutes()).padStart(2,"0"),Z=String(J.getSeconds()).padStart(2,"0"),Y=J.getHours()<12?"am":"pm";return`${Q}:${X}:${Z}${Y}`}function I08(){let J=fjJ.c(15),Q;if(J[0]===Symbol.for("react.memo_cache_sentinel"))Q=[],J[0]=Q;else Q=J[0];let[X,Z]=_A0.useState(Q),[Y,q]=_A0.useState(0),K,G;if(J[1]===Symbol.for("react.memo_cache_sentinel"))K=()=>{let _=p8.getSandboxViolationStore();return _.subscribe((L)=>{Z(L.slice(-10)),q(_.getTotalCount())})},G=[],J[1]=K,J[2]=G;else K=J[1],G=J[2];if(_A0.useEffect(K,G),!p8.isSandboxingEnabled()||N8()==="linux")return null;if(Y===0)return null;let z=Y===1?"operation":"operations",W;if(J[3]!==z||J[4]!==Y)W=vg.jsxDEV(f,{marginLeft:0,children:vg.jsxDEV(M,{color:"permission",children:["\u29C8 Sandbox blocked ",Y," total"," ",z]},void 0,!0,void 0,this)},void 0,!1,void 0,this),J[3]=z,J[4]=Y,J[5]=W;else W=J[5];let H;if(J[6]!==X)H=X.map(sIQ),J[6]=X,J[7]=H;else H=J[7];let B=Math.min(10,X.length),U;if(J[8]!==B||J[9]!==Y)U=vg.jsxDEV(f,{paddingLeft:2,children:vg.jsxDEV(M,{dimColor:!0,children:["\u2026 showing last ",B," of ",Y]},void 0,!0,void 0,this)},void 0,!1,void 0,this),J[8]=B,J[9]=Y,J[10]=U;else U=J[10];let F;if(J[11]!==W||J[12]!==H||J[13]!==U)F=vg.jsxDEV(f,{flexDirection:"column",marginTop:1,children:[W,H,U]},void 0,!0,void 0,this),J[11]=W,J[12]=H,J[13]=U,J[14]=F;else F=J[14];return F}function sIQ(J,Q){return vg.jsxDEV(f,{paddingLeft:2,children:vg.jsxDEV(M,{dimColor:!0,children:[oIQ(J.timestamp),J.command?` ${J.command}:`:""," ",J.line]},void 0,!0,void 0,this)},`${J.timestamp.getTime()}-${Q}`,!1,void 0,this)}var fjJ,_A0,vg;var SjJ=I(()=>{a0();V4();k9();fjJ=T(e0(),1),_A0=T(J1(),1),vg=T(e(),1)});function hjJ(){let J=kjJ.c(6),{addNotification:Q,removeNotification:X}=D9(),[Z,Y]=s61.useState(tIQ),q;if(J[0]===Symbol.for("react.memo_cache_sentinel"))q=()=>{let{errors:W}=VC();Y(W)},J[0]=q;else q=J[0];m90(q);let G,z;if(J[1]!==Q||J[2]!==Z||J[3]!==X)G=()=>{if(S9())return;if(Z.length>0){let W=`Found ${Z.length} settings ${Z.length===1?"issue":"issues"} \xB7 /doctor for details`;Q({key:xjJ,text:W,color:"warning",priority:"high",timeoutMs:60000})}else X(xjJ)},z=[Z,Q,X],J[1]=Q,J[2]=Z,J[3]=X,J[4]=G,J[5]=z;else G=J[4],z=J[5];return s61.useEffect(G,z),Z}function tIQ(){let{errors:J}=VC();return J}var kjJ,s61,xjJ="settings-errors";var ujJ=I(()=>{UY();N1();tV0();Hl0();kjJ=T(e0(),1),s61=T(J1(),1)});function pjJ(J){let Q=gjJ.c(4),{mcpClients:X}=J,Z=X===void 0?eIQ:X,{addNotification:Y}=D9(),q,K;if(Q[0]!==Y||Q[1]!==Z)q=()=>{if(S9())return;let G=Z.filter(ZyQ),z=Z.filter(XyQ),W=Z.filter(QyQ),H=Z.filter(JyQ);if(G.length===0&&z.length===0&&W.length===0&&H.length===0)return;if(G.length>0)Y({key:"mcp-failed",jsx:DW.jsxDEV(DW.Fragment,{children:[DW.jsxDEV(M,{color:"error",children:[G.length," MCP"," ",G.length===1?"server":"servers"," failed"]},void 0,!0,void 0,this),DW.jsxDEV(M,{dimColor:!0,children:" \xB7 /mcp"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),priority:"medium"});if(z.length>0)Y({key:"mcp-glockai-failed",jsx:DW.jsxDEV(DW.Fragment,{children:[DW.jsxDEV(M,{color:"error",children:[z.length," glock"," ",z.length===1?"connector":"connectors"," ","unavailable"]},void 0,!0,void 0,this),DW.jsxDEV(M,{dimColor:!0,children:" \xB7 /mcp"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),priority:"medium"});if(W.length>0)Y({key:"mcp-needs-auth",jsx:DW.jsxDEV(DW.Fragment,{children:[DW.jsxDEV(M,{color:"warning",children:[W.length," MCP"," ",W.length===1?"server needs":"servers need"," ","auth"]},void 0,!0,void 0,this),DW.jsxDEV(M,{dimColor:!0,children:" \xB7 /mcp"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),priority:"medium"});if(H.length>0)Y({key:"mcp-glockai-needs-auth",jsx:DW.jsxDEV(DW.Fragment,{children:[DW.jsxDEV(M,{color:"warning",children:[H.length," glock"," ",H.length===1?"connector needs":"connectors need"," ","auth"]},void 0,!0,void 0,this),DW.jsxDEV(M,{dimColor:!0,children:" \xB7 /mcp"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),priority:"medium"})},K=[Y,Z],Q[0]=Y,Q[1]=Z,Q[2]=q,Q[3]=K;else q=Q[2],K=Q[3];mjJ.useEffect(q,K)}function JyQ(J){return J.type==="needs-auth"&&J.config.type==="glockai-proxy"&&pv1(J.name)}function QyQ(J){return J.type==="needs-auth"&&J.config.type!=="glockai-proxy"}function XyQ(J){return J.type==="failed"&&J.config.type==="glockai-proxy"&&pv1(J.name)}function ZyQ(J){return J.type==="failed"&&J.config.type!=="sse-ide"&&J.config.type!=="ws-ide"&&J.config.type!=="glockai-proxy"}var gjJ,mjJ,DW,eIQ;var cjJ=I(()=>{UY();N1();a0();pJ0();gjJ=T(e0(),1),mjJ=T(J1(),1),DW=T(e(),1),eIQ=[]});function djJ(){let{addNotification:J}=D9(),Q=O1((q)=>q.toolPermissionContext.mode),X=O1((q)=>q.toolPermissionContext.isAutoModeAvailable),Z=OA0.useRef(!1),Y=OA0.useRef(Q);OA0.useEffect(()=>{let q=Y.current;Y.current=Q;return},[Q,X,J])}var OA0;var ljJ=I(()=>{UY();N1();W6();JW();g8();OA0=T(J1(),1)});function njJ(){let J=ijJ.c(10),{addNotification:Q}=D9(),X=T6(),[Z,Y]=i40.useState(KyQ),q;if(J[0]===Symbol.for("react.memo_cache_sentinel"))q=new Set,J[0]=q;else q=J[0];let K=i40.useRef(q),G;if(J[1]!==Q||J[2]!==X)G=(F,_)=>{let O=`${F}:${_}`;if(K.current.has(O))return;K.current.add(O),b(`LSP error: ${F} - ${_}`),X((N)=>{let A=new Set(N.plugins.errors.map(qyQ)),R=`generic-error:${F}:${_}`;if(A.has(R))return N;return{...N,plugins:{...N.plugins,errors:[...N.plugins.errors,{type:"generic-error",source:F,error:_}]}}});let L=F.startsWith("plugin:")?F.split(":")[1]??F:F;Q({key:`lsp-error-${F}`,jsx:l40.jsxDEV(l40.Fragment,{children:[l40.jsxDEV(M,{color:"error",children:["LSP for ",L," failed"]},void 0,!0,void 0,this),l40.jsxDEV(M,{dimColor:!0,children:" \xB7 /plugin for details"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),priority:"medium",timeoutMs:8000})},J[1]=Q,J[2]=X,J[3]=G;else G=J[3];let z=G,W;if(J[4]!==z)W=()=>{if(S9())return;if(pm())return;let F=_i0();if(F.status==="failed"){z("lsp-manager",F.error.message),Y(!1);return}if(F.status==="pending"||F.status==="not-started")return;let _=G70();if(_){let O=_.getAllServers();for(let[L,N]of O)if(N.state==="error"&&N.lastError)z(L,N.lastError.message)}},J[4]=z,J[5]=W;else W=J[5];let H=W;EB(H,Z?YyQ:null);let B,U;if(J[6]!==H||J[7]!==Z)B=()=>{if(S9()||!Z)return;H()},U=[H,Z],J[6]=H,J[7]=Z,J[8]=B,J[9]=U;else B=J[8],U=J[9];i40.useEffect(B,U)}function qyQ(J){if(J.type==="generic-error")return`generic-error:${J.source}:${J.error}`;return`${J.type}:${J.source}`}function KyQ(){return W1("true")}var ijJ,i40,l40,YyQ=5000;var rjJ=I(()=>{dO();N1();UY();a0();MT();W6();Z1();t1();ijJ=T(e0(),1),i40=T(J1(),1),l40=T(e(),1)});async function ojJ(J){if(!J||!J.trim())return b("[binaryCheck] Empty command provided, returning false"),!1;let Q=J.trim(),X=ajJ.get(Q);if(X!==void 0)return b(`[binaryCheck] Cache hit for '${Q}': ${X}`),X;let Z=!1;if(await TW(Q).catch(()=>null))Z=!0;return ajJ.set(Q,Z),b(`[binaryCheck] Binary '${Q}' ${Z?"found":"not found"}`),Z}var ajJ;var sjJ=I(()=>{Z1();rA();ajJ=new Map});import{extname as GyQ}from"path";function WyQ(J){return QR.has(J.toLowerCase())}function HyQ(J){if(!J)return null;if(typeof J==="string")return b("[lspRecommendation] Skipping string path lspServers (not readable from marketplace)"),null;if(Array.isArray(J)){for(let Q of J){if(typeof Q==="string")continue;let X=ejJ(Q);if(X)return X}return null}return ejJ(J)}function tjJ(J){return typeof J==="object"&&J!==null}function ejJ(J){let Q=new Set,X=null;for(let[Z,Y]of Object.entries(J)){if(!tjJ(Y))continue;if(!X&&typeof Y.command==="string")X=Y.command;let q=Y.extensionToLanguage;if(tjJ(q))for(let K of Object.keys(q))Q.add(K.toLowerCase())}if(!X||Q.size===0)return null;return{extensions:Q,command:X}}async function ByQ(){let J=new Map;try{let Q=await _Z();for(let X of Object.keys(Q))try{let Z=await gB(X),Y=WyQ(X);for(let q of Z.plugins){if(!q.lspServers)continue;let K=HyQ(q.lspServers);if(!K)continue;let G=`${q.name}@${X}`;J.set(G,{entry:q,marketplaceName:X,extensions:K.extensions,command:K.command,isOfficial:Y})}}catch(Z){b(`[lspRecommendation] Failed to load marketplace ${X}: ${Z}`)}}catch(Q){b(`[lspRecommendation] Failed to load marketplaces config: ${Q}`)}return J}async function JIJ(J){if(UyQ())return b("[lspRecommendation] Recommendations are disabled"),[];let Q=GyQ(J).toLowerCase();if(!Q)return b("[lspRecommendation] No file extension found"),[];b(`[lspRecommendation] Looking for LSP plugins for ${Q}`);let X=await ByQ(),Y=L1().lspRecommendationNeverPlugins??[],q=[];for(let[G,z]of X){if(!z.extensions.has(Q))continue;if(Y.includes(G)){b(`[lspRecommendation] Skipping ${G} (in never suggest list)`);continue}if(RI(G)){b(`[lspRecommendation] Skipping ${G} (already installed)`);continue}q.push({info:z,pluginId:G})}let K=[];for(let{info:G,pluginId:z}of q)if(await ojJ(G.command))K.push({info:G,pluginId:z}),b(`[lspRecommendation] Binary '${G.command}' found for ${z}`);else b(`[lspRecommendation] Skipping ${z} (binary '${G.command}' not found)`);return K.sort((G,z)=>{if(G.info.isOfficial&&!z.info.isOfficial)return-1;if(!G.info.isOfficial&&z.info.isOfficial)return 1;return 0}),K.map(({info:G,pluginId:z})=>({pluginId:z,pluginName:G.entry.name,marketplaceName:G.marketplaceName,description:G.entry.description,isOfficial:G.isOfficial,extensions:Array.from(G.extensions),command:G.command}))}function QIJ(J){q8((Q)=>{let X=Q.lspRecommendationNeverPlugins??[];if(X.includes(J))return Q;return{...Q,lspRecommendationNeverPlugins:[...X,J]}}),b(`[lspRecommendation] Added ${J} to never suggest`)}function XIJ(){q8((J)=>{let Q=(J.lspRecommendationIgnoredCount??0)+1;return{...J,lspRecommendationIgnoredCount:Q}}),b("[lspRecommendation] Incremented ignored count")}function UyQ(){let J=L1();return J.lspRecommendationDisabled===!0||(J.lspRecommendationIgnoredCount??0)>=zyQ}var zyQ=5;var ZIJ=I(()=>{sjJ();m8();Z1();i3();q5();UB()});function e61(){let J=YIJ.c(6),[Q,X]=t61.useState(null),Z=t61.useRef(!1),Y;if(J[0]!==Q)Y=(W)=>{if(S9())return;if(Q)return;if(Z.current)return;Z.current=!0,W().then((H)=>{if(H)X(H)}).catch(H0).finally(()=>{Z.current=!1})},J[0]=Q,J[1]=Y;else Y=J[1];let q=Y,K;if(J[2]===Symbol.for("react.memo_cache_sentinel"))K=()=>X(null),J[2]=K;else K=J[2];let G=K,z;if(J[3]!==Q||J[4]!==q)z={recommendation:Q,clearRecommendation:G,tryResolve:q},J[3]=Q,J[4]=q,J[5]=z;else z=J[5];return z}async function JJ1(J,Q,X,Z,Y){try{let q=await cF(J);if(!q)throw Error(`Plugin ${J} not found in marketplace`);await Y(q),Z({key:`${X}-installed`,jsx:y08.jsxDEV(M,{color:"success",children:[s0.tick," ",Q," installed \xB7 restart to apply"]},void 0,!0,void 0,this),priority:"immediate",timeoutMs:5000})}catch(q){H0(q),Z({key:`${X}-install-failed`,jsx:y08.jsxDEV(M,{color:"error",children:["Failed to install ",Q]},void 0,!0,void 0,this),priority:"immediate",timeoutMs:5000})}}var YIJ,t61,y08;var b08=I(()=>{r6();N1();a0();M1();q5();YIJ=T(e0(),1),t61=T(J1(),1),y08=T(e(),1)});import{extname as FyQ,join as _yQ}from"path";function KIJ(){let J=qIJ.c(12),Q=O1(VyQ),{addNotification:X}=D9(),Z;if(J[0]===Symbol.for("react.memo_cache_sentinel"))Z=new Set,J[0]=Z;else Z=J[0];let Y=QJ1.useRef(Z),{recommendation:q,clearRecommendation:K,tryResolve:G}=e61(),z,W;if(J[1]!==Q||J[2]!==G)z=()=>{G(async()=>{if(VQ1())return null;let F=[];for(let _ of Q)if(!Y.current.has(_))Y.current.add(_),F.push(_);for(let _ of F)try{let L=(await JIJ(_))[0];if(L)return b(`[useLspPluginRecommendation] Found match: ${L.pluginName} for ${_}`),NQ1(!0),{pluginId:L.pluginId,pluginName:L.pluginName,pluginDescription:L.description,fileExtension:FyQ(_),shownAt:Date.now()}}catch(O){H0(O)}return null})},W=[Q,G],J[1]=Q,J[2]=G,J[3]=z,J[4]=W;else z=J[3],W=J[4];QJ1.useEffect(z,W);let H;if(J[5]!==X||J[6]!==K||J[7]!==q)H=(F)=>{if(!q)return;let{pluginId:_,pluginName:O,shownAt:L}=q;b(`[useLspPluginRecommendation] User response: ${F} for ${O}`);J:switch(F){case"yes":{JJ1(_,O,"lsp-plugin",X,async(N)=>{b(`[useLspPluginRecommendation] Installing plugin: ${_}`);let A=typeof N.entry.source==="string"?_yQ(N.marketplaceInstallLocation,N.entry.source):void 0;await oU0(_,N.entry,"user",void 0,A);let R=O8("userSettings");y6("userSettings",{enabledPlugins:{...R?.enabledPlugins,[_]:!0}}),b(`[useLspPluginRecommendation] Plugin installed: ${_}`)});break J}case"no":{let N=Date.now()-L;if(N>=OyQ)b(`[useLspPluginRecommendation] Timeout detected (${N}ms), incrementing ignored count`),XIJ();break J}case"never":{QIJ(_);break J}case"disable":q8(LyQ)}K()},J[5]=X,J[6]=K,J[7]=q,J[8]=H;else H=J[8];let B=H,U;if(J[9]!==B||J[10]!==q)U={recommendation:q,handleResponse:B},J[9]=B,J[10]=q,J[11]=U;else U=J[11];return U}function LyQ(J){if(J.lspRecommendationDisabled)return J;return{...J,lspRecommendationDisabled:!0}}function VyQ(J){return J.fileHistory.trackedFiles}var qIJ,QJ1,OyQ=28000;var GIJ=I(()=>{N1();UY();W6();m8();Z1();M1();ZIJ();Ok();g8();b08();qIJ=T(e0(),1),QJ1=T(J1(),1)});function zIJ({pluginName:J,pluginDescription:Q,fileExtension:X,onResponse:Z}){let Y=XJ1.useRef(Z);Y.current=Z,XJ1.useEffect(()=>{let G=setTimeout((z)=>z.current("no"),NyQ,Y);return()=>clearTimeout(G)},[]);function q(G){switch(G){case"yes":Z("yes");break;case"no":Z("no");break;case"never":Z("never");break;case"disable":Z("disable");break}}return $G.jsxDEV(OZ,{title:"LSP Plugin Recommendation",children:$G.jsxDEV(f,{flexDirection:"column",paddingX:2,paddingY:1,children:[$G.jsxDEV(f,{marginBottom:1,children:$G.jsxDEV(M,{dimColor:!0,children:"LSP provides code intelligence like go-to-definition and error checking"},void 0,!1,void 0,this)},void 0,!1,void 0,this),$G.jsxDEV(f,{children:[$G.jsxDEV(M,{dimColor:!0,children:"Plugin:"},void 0,!1,void 0,this),$G.jsxDEV(M,{children:[" ",J]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),Q&&$G.jsxDEV(f,{children:$G.jsxDEV(M,{dimColor:!0,children:Q},void 0,!1,void 0,this)},void 0,!1,void 0,this),$G.jsxDEV(f,{children:[$G.jsxDEV(M,{dimColor:!0,children:"Triggered by:"},void 0,!1,void 0,this),$G.jsxDEV(M,{children:[" ",X," files"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),$G.jsxDEV(f,{marginTop:1,children:$G.jsxDEV(M,{children:"Would you like to install this LSP plugin?"},void 0,!1,void 0,this)},void 0,!1,void 0,this),$G.jsxDEV(f,{children:$G.jsxDEV(Q8,{options:[{label:$G.jsxDEV(M,{children:["Yes, install ",$G.jsxDEV(M,{bold:!0,children:J},void 0,!1,void 0,this)]},void 0,!0,void 0,this),value:"yes"},{label:"No, not now",value:"no"},{label:$G.jsxDEV(M,{children:["Never for ",$G.jsxDEV(M,{bold:!0,children:J},void 0,!1,void 0,this)]},void 0,!0,void 0,this),value:"never"},{label:"Disable all LSP recommendations",value:"disable"}],onChange:q,onCancel:()=>Z("no")},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this)}var XJ1,$G,NyQ=30000;var WIJ=I(()=>{a0();AQ();TH();XJ1=T(J1(),1),$G=T(e(),1)});function BIJ(){let J=HIJ.c(11),Q=ZJ1.useSyncExternalStore(G_6,bE1),{addNotification:X}=D9(),{recommendation:Z,clearRecommendation:Y,tryResolve:q}=e61(),K,G;if(J[0]!==Q||J[1]!==q)K=()=>{if(!Q)return;q(async()=>{let B=await Ap6(Q);if(B)b(`[useGlockCodeHintRecommendation] surfacing ${B.pluginId} from ${B.sourceCommand}`),K_6();if(bE1()===Q)q_6();return B})},G=[Q,q],J[0]=Q,J[1]=q,J[2]=K,J[3]=G;else K=J[2],G=J[3];ZJ1.useEffect(K,G);let z;if(J[4]!==X||J[5]!==Y||J[6]!==Z)z=(B)=>{if(!Z)return;Rp6(Z.pluginId),l("jarvis_api_error",{_PROTO_plugin_name:Z.pluginName,_PROTO_marketplace_name:Z.marketplaceName,response:B});J:switch(B){case"yes":{let{pluginId:U,pluginName:F,marketplaceName:_}=Z;JJ1(U,F,"hint-plugin",X,async(O)=>{let L=await _k({pluginId:U,entry:O.entry,marketplaceName:_,scope:"user",trigger:"hint"});if(!L.success)throw Error(L.error)});break J}case"disable":{Mp6();break J}case"no":}Y()},J[4]=X,J[5]=Y,J[6]=Z,J[7]=z;else z=J[7];let W=z,H;if(J[8]!==W||J[9]!==Z)H={recommendation:Z,handleResponse:W},J[8]=W,J[9]=Z,J[10]=H;else H=J[10];return H}var HIJ,ZJ1;var UIJ=I(()=>{UY();D1();hU0();Z1();$r0();Ok();b08();HIJ=T(e0(),1),ZJ1=T(J1(),1)});function FIJ({pluginName:J,pluginDescription:Q,marketplaceName:X,sourceCommand:Z,onResponse:Y}){let q=YJ1.useRef(Y);q.current=Y,YJ1.useEffect(()=>{let z=setTimeout((W)=>W.current("no"),wyQ,q);return()=>clearTimeout(z)},[]);function K(z){switch(z){case"yes":Y("yes");break;case"disable":Y("disable");break;default:Y("no")}}return Oz.jsxDEV(OZ,{title:"Plugin Recommendation",children:Oz.jsxDEV(f,{flexDirection:"column",paddingX:2,paddingY:1,children:[Oz.jsxDEV(f,{marginBottom:1,children:Oz.jsxDEV(M,{dimColor:!0,children:["The ",Oz.jsxDEV(M,{bold:!0,children:Z},void 0,!1,void 0,this)," command suggests installing a plugin."]},void 0,!0,void 0,this)},void 0,!1,void 0,this),Oz.jsxDEV(f,{children:[Oz.jsxDEV(M,{dimColor:!0,children:"Plugin:"},void 0,!1,void 0,this),Oz.jsxDEV(M,{children:[" ",J]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),Oz.jsxDEV(f,{children:[Oz.jsxDEV(M,{dimColor:!0,children:"Marketplace:"},void 0,!1,void 0,this),Oz.jsxDEV(M,{children:[" ",X]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),Q&&Oz.jsxDEV(f,{children:Oz.jsxDEV(M,{dimColor:!0,children:Q},void 0,!1,void 0,this)},void 0,!1,void 0,this),Oz.jsxDEV(f,{marginTop:1,children:Oz.jsxDEV(M,{children:"Would you like to install it?"},void 0,!1,void 0,this)},void 0,!1,void 0,this),Oz.jsxDEV(f,{children:Oz.jsxDEV(Q8,{options:[{label:Oz.jsxDEV(M,{children:["Yes, install ",Oz.jsxDEV(M,{bold:!0,children:J},void 0,!1,void 0,this)]},void 0,!0,void 0,this),value:"yes"},{label:"No",value:"no"},{label:"No, and don't show plugin installation hints again",value:"disable"}],onChange:K,onCancel:()=>Y("no")},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this)}var YJ1,Oz,wyQ=30000;var _IJ=I(()=>{a0();AQ();TH();YJ1=T(J1(),1),Oz=T(e(),1)});function VIJ(){let J=OIJ.c(20),{addNotification:Q}=D9(),X=O1(MyQ),Z;J:{if(!X){let O;if(J[0]===Symbol.for("react.memo_cache_sentinel"))O={totalFailed:0,failedMarketplacesCount:0,failedPluginsCount:0},J[0]=O;else O=J[0];Z=O;break J}let W;if(J[1]!==X.marketplaces)W=X.marketplaces.filter(RyQ),J[1]=X.marketplaces,J[2]=W;else W=J[2];let H=W,B;if(J[3]!==X.plugins)B=X.plugins.filter(AyQ),J[3]=X.plugins,J[4]=B;else B=J[4];let U=B,F=H.length+U.length,_;if(J[5]!==H.length||J[6]!==U.length||J[7]!==F)_={totalFailed:F,failedMarketplacesCount:H.length,failedPluginsCount:U.length},J[5]=H.length,J[6]=U.length,J[7]=F,J[8]=_;else _=J[8];Z=_}let{totalFailed:Y,failedMarketplacesCount:q,failedPluginsCount:K}=Z,G;if(J[9]!==Q||J[10]!==q||J[11]!==K||J[12]!==X||J[13]!==Y)G=()=>{if(S9())return;if(!X){b("No installation status to monitor");return}if(Y===0)return;if(b(`Plugin installation status: ${q} failed marketplaces, ${K} failed plugins`),Y===0)return;b(`Adding notification for ${Y} failed installations`),Q({key:"plugin-install-failed",jsx:n40.jsxDEV(n40.Fragment,{children:[n40.jsxDEV(M,{color:"error",children:[Y," ",J6(Y,"plugin")," failed to install"]},void 0,!0,void 0,this),n40.jsxDEV(M,{dimColor:!0,children:" \xB7 /plugin for details"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),priority:"medium"})},J[9]=Q,J[10]=q,J[11]=K,J[12]=X,J[13]=Y,J[14]=G;else G=J[14];let z;if(J[15]!==Q||J[16]!==q||J[17]!==K||J[18]!==Y)z=[Q,Y,q,K],J[15]=Q,J[16]=q,J[17]=K,J[18]=Y,J[19]=z;else z=J[19];LIJ.useEffect(G,z)}function AyQ(J){return J.status==="failed"}function RyQ(J){return J.status==="failed"}function MyQ(J){return J.plugins.installationStatus}var OIJ,LIJ,n40;var NIJ=I(()=>{N1();UY();a0();W6();Z1();OIJ=T(e0(),1),LIJ=T(J1(),1),n40=T(e(),1)});function AIJ(){let J=wIJ.c(7),{addNotification:Q}=D9(),X;if(J[0]===Symbol.for("react.memo_cache_sentinel"))X=[],J[0]=X;else X=J[0];let[Z,Y]=LA0.useState(X),q,K;if(J[1]===Symbol.for("react.memo_cache_sentinel"))q=()=>{if(S9())return;return oYJ((H)=>{b(`Plugin autoupdate notification: ${H.length} plugin(s) updated`),Y(H)})},K=[],J[1]=q,J[2]=K;else q=J[1],K=J[2];LA0.useEffect(q,K);let G,z;if(J[3]!==Q||J[4]!==Z)G=()=>{if(S9())return;if(Z.length===0)return;let W=Z.map(DyQ),H=W.length<=2?W.join(" and "):`${W.length} plugins`;Q({key:"plugin-autoupdate-restart",jsx:r40.jsxDEV(r40.Fragment,{children:[r40.jsxDEV(M,{color:"success",children:[W.length===1?"Plugin":"Plugins"," updated:"," ",H]},void 0,!0,void 0,this),r40.jsxDEV(M,{dimColor:!0,children:" \xB7 Run /reload-plugins to apply"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),priority:"low",timeoutMs:1e4}),b(`Showing plugin autoupdate notification for: ${W.join(", ")}`)},z=[Z,Q],J[3]=Q,J[4]=Z,J[5]=G,J[6]=z;else G=J[5],z=J[6];LA0.useEffect(G,z)}function DyQ(J){let Q=J.indexOf("@");return Q>0?J.substring(0,Q):J}var wIJ,LA0,r40;var RIJ=I(()=>{N1();UY();a0();Z1();N01();wIJ=T(e0(),1),LA0=T(J1(),1),r40=T(e(),1)});import{isAbsolute as $yQ,resolve as jyQ}from"path";function P08(J,Q,X){let Z=[],Y=[],q=[];for(let[K,G]of Object.entries(J)){let z=Q[K],W=MIJ(G.source,X?.projectRoot);if(!z)Z.push(K);else if(G.sourceIsFallback)q.push(K);else if(!Sj(W,z.source))Y.push({name:K,declaredSource:W,materializedSource:z.source});else q.push(K)}return{missing:Z,sourceChanged:Y,upToDate:q}}async function qJ1(J){let Q=mh();if(Object.keys(Q).length===0)return{installed:[],updated:[],failed:[],upToDate:[],skipped:[]};let X;try{X=await _Z()}catch(H){H0(H),X={}}let Z=P08(Q,X,{projectRoot:j8()}),Y=[...Z.missing.map((H)=>({name:H,source:MIJ(Q[H].source),action:"install"})),...Z.sourceChanged.map(({name:H,declaredSource:B})=>({name:H,source:B,action:"update"}))],q=[],K=[];for(let H of Y){if(J?.skip?.(H.name,H.source)){q.push(H.name);continue}if(H.action==="update"&&j$(H.source)&&!await K7(H.source.path)){b(`[reconcile] '${H.name}' declared path does not exist; keeping materialized entry`),q.push(H.name);continue}K.push(H)}if(K.length===0)return{installed:[],updated:[],failed:[],upToDate:Z.upToDate,skipped:q};b(`[reconcile] ${K.length} marketplace(s): ${K.map((H)=>`${H.name}(${H.action})`).join(", ")}`);let G=[],z=[],W=[];for(let H=0;H<K.length;H++){let{name:B,source:U,action:F}=K[H];J?.onProgress?.({type:"installing",name:B,action:F,index:H+1,total:K.length});try{let _=await ph(U);if(F==="install")G.push(B);else z.push(B);J?.onProgress?.({type:"installed",name:B,alreadyMaterialized:_.alreadyMaterialized})}catch(_){let O=Q1(_);W.push({name:B,error:O}),J?.onProgress?.({type:"failed",name:B,error:O}),H0(_)}}return{installed:G,updated:z,failed:W,upToDate:Z.upToDate,skipped:q}}function MIJ(J,Q){if((J.source==="directory"||J.source==="file")&&!$yQ(J.path)){let X=Q??j8(),Z=kG(X);return{...J,path:jyQ(Z??X,J.path)}}return J}var E08=I(()=>{dU0();N1();Z1();T1();V9();uQ();M1();q5();UB()});function T08(J,Q,X,Z){J((Y)=>({...Y,plugins:{...Y.plugins,installationStatus:{...Y.plugins.installationStatus,marketplaces:Y.plugins.installationStatus.marketplaces.map((q)=>q.name===Q?{...q,status:X,error:Z}:q)}}}))}async function DIJ(J){b("performBackgroundPluginInstallations called");try{let Q=mh(),X=await _Z().catch(()=>({})),Z=P08(Q,X),Y=[...Z.missing,...Z.sourceChanged.map((G)=>G.name)];if(J((G)=>({...G,plugins:{...G.plugins,installationStatus:{marketplaces:Y.map((z)=>({name:z,status:"pending"})),plugins:[]}}})),Y.length===0)return;b(`Installing ${Y.length} marketplace(s) in background`);let q=await qJ1({onProgress:(G)=>{switch(G.type){case"installing":T08(J,G.name,"installing");break;case"installed":T08(J,G.name,"installed");break;case"failed":T08(J,G.name,"failed",G.error);break}}}),K={installed_count:q.installed.length,updated_count:q.updated.length,failed_count:q.failed.length,up_to_date_count:q.upToDate.length};if(l("jarvis_api_error",K),n1("info","jarvis_api_error",K),q.installed.length>0){wI(),b(`Auto-refreshing plugins after ${q.installed.length} new marketplace(s) installed`);try{await hr(J)}catch(G){H0(G),b(`Auto-refresh failed, falling back to needsRefresh: ${G}`,{level:"warn"}),M2("performBackgroundPluginInstallations: auto-refresh failed"),J((z)=>{if(z.plugins.needsRefresh)return z;return{...z,plugins:{...z.plugins,needsRefresh:!0}}})}}else if(q.updated.length>0)wI(),M2("performBackgroundPluginInstallations: marketplaces reconciled"),J((G)=>{if(G.plugins.needsRefresh)return G;return{...G,plugins:{...G.plugins,needsRefresh:!0}}})}catch(Q){H0(Q)}}var $IJ=I(()=>{Z1();h4();M1();q5();oq();E08();y11();D1()});async function jIJ(J){if(b("performStartupChecks called"),!qG()){b("Trust not accepted for current directory - skipping plugin installations");return}try{if(b("Starting background plugin installations"),await Ar0())wI(),M2("performStartupChecks: seed marketplaces changed"),J((X)=>{if(X.plugins.needsRefresh)return X;return{...X,plugins:{...X.plugins,needsRefresh:!0}}});await DIJ(J)}catch(Q){b(`Error initiating background plugin installations: ${Q}`)}}var IIJ=I(()=>{$IJ();m8();Z1();q5();oq()});function bIJ(){let J=yIJ.c(11),Q;if(J[0]===Symbol.for("react.memo_cache_sentinel"))Q=f3.getInstance().getStatus(),J[0]=Q;else Q=J[0];let[X,Z]=KJ1.useState(Q),Y,q;if(J[1]===Symbol.for("react.memo_cache_sentinel"))Y=()=>{return f3.getInstance().subscribe(Z)},q=[],J[1]=Y,J[2]=q;else Y=J[1],q=J[2];if(KJ1.useEffect(Y,q),!X.isAuthenticating&&!X.error&&X.output.length===0)return null;if(!X.isAuthenticating&&!X.error)return null;let K;if(J[3]===Symbol.for("react.memo_cache_sentinel"))K=oC.jsxDEV(M,{bold:!0,color:"permission",children:"Cloud Authentication"},void 0,!1,void 0,this),J[3]=K;else K=J[3];let G;if(J[4]!==X.output)G=X.output.length>0&&oC.jsxDEV(f,{flexDirection:"column",marginTop:1,children:X.output.slice(-5).map(yyQ)},void 0,!1,void 0,this),J[4]=X.output,J[5]=G;else G=J[5];let z;if(J[6]!==X.error)z=X.error&&oC.jsxDEV(f,{marginTop:1,children:oC.jsxDEV(M,{color:"error",children:X.error},void 0,!1,void 0,this)},void 0,!1,void 0,this),J[6]=X.error,J[7]=z;else z=J[7];let W;if(J[8]!==G||J[9]!==z)W=oC.jsxDEV(f,{flexDirection:"column",borderStyle:"round",borderColor:"permission",paddingX:1,marginY:1,children:[K,G,z]},void 0,!0,void 0,this),J[8]=G,J[9]=z,J[10]=W;else W=J[10];return W}function yyQ(J,Q){let X=J.match(IyQ);if(!X)return oC.jsxDEV(M,{dimColor:!0,children:J},Q,!1,void 0,this);let Z=X[0],Y=X.index??0,q=J.slice(0,Y),K=J.slice(Y+Z.length);return oC.jsxDEV(M,{dimColor:!0,children:[q,oC.jsxDEV(zJ,{url:Z,children:Z},void 0,!1,void 0,this),K]},Q,!0,void 0,this)}var yIJ,KJ1,oC,IyQ;var PIJ=I(()=>{a0();_f0();yIJ=T(e0(),1),KJ1=T(J1(),1),oC=T(e(),1),IyQ=/https?:\/\/\S+/});function PyQ(J){let Q=J.toLowerCase(),X=L6();for(let[Z,Y]of Object.entries(byQ)){let q=Y.retirementDates[X];if(!Q.includes(Z)||!q)continue;return{isDeprecated:!0,modelName:Y.modelName,retirementDate:q}}return{isDeprecated:!1}}function GJ1(J){if(!J)return null;let Q=PyQ(J);if(!Q.isDeprecated)return null;return`\u26A0 ${Q.modelName} will be retired on ${Q.retirementDate}. Consider switching to a newer model.`}var byQ;var C08=I(()=>{m4();byQ={"claude-3-opus":{modelName:"Custom Glock Model",retirementDates:{firstParty:"January 5, 2026",bedrock:"January 15, 2026",foundry:"January 5, 2026"}},"claude-3-7-sonnet":{modelName:"Custom Glock Model",retirementDates:{firstParty:"February 19, 2026",bedrock:"April 28, 2026",foundry:"February 19, 2026"}},"claude-3-5-haiku":{modelName:"Custom Glock Model",retirementDates:{firstParty:"February 19, 2026",bedrock:null,foundry:null}}}});function TIJ(J){let Q=EIJ.c(4),{addNotification:X}=D9(),Z=zJ1.useRef(null),Y,q;if(Q[0]!==X||Q[1]!==J)Y=()=>{if(S9())return;let K=GJ1(J);if(K&&K!==Z.current)Z.current=K,X({key:"model-deprecation-warning",text:K,color:"warning",priority:"high"});if(!K)Z.current=null},q=[J,X],Q[0]=X,Q[1]=J,Q[2]=Y,Q[3]=q;else Y=Q[2],q=Q[3];zJ1.useEffect(Y,q)}var EIJ,zJ1;var CIJ=I(()=>{UY();C08();N1();EIJ=T(e0(),1),zJ1=T(J1(),1)});function vIJ(){c40(TyQ)}async function TyQ(){if(P3())return null;if(await FC()==="development")return null;return{timeoutMs:15000,key:"npm-deprecation-warning",text:EyQ,color:"warning",priority:"high"}}var EyQ="Glock has switched from npm to native installer. Run `glock install` or see https://docs.getglock.dev/getting-started for more options.";var fIJ=I(()=>{sX0();c61()});function xIJ(J){let Q=SIJ.c(26),{ideSelection:X,mcpClients:Z,ideInstallationStatus:Y}=J,{addNotification:q,removeNotification:K}=D9(),{status:G,ideName:z}=D40(Z),W=Ma.useRef(!1),H;if(Q[0]!==Y)H=Y?jM(Y?.ideType):!1,Q[0]=Y,Q[1]=H;else H=Q[1];let B=H,U=Y?.error||B,F=G==="connected"&&(X?.filePath||X?.text&&X.lineCount>0),_=G==="connected"&&!F,O=U&&!B&&!_&&!F,L=U&&B&&!_&&!F,N,A;if(Q[2]!==q||Q[3]!==G||Q[4]!==K||Q[5]!==L)N=()=>{if(S9())return;if(tz()||G!==null||L){K("ide-status-hint");return}if(W.current||(L1().ideHintShownCount??0)>=CyQ)return;let C=setTimeout(vyQ,3000,W,q);return()=>clearTimeout(C)},A=[q,K,G,L],Q[2]=q,Q[3]=G,Q[4]=K,Q[5]=L,Q[6]=N,Q[7]=A;else N=Q[6],A=Q[7];Ma.useEffect(N,A);let R,D;if(Q[8]!==q||Q[9]!==z||Q[10]!==G||Q[11]!==K||Q[12]!==O||Q[13]!==L)R=()=>{if(S9())return;if(O||L||G!=="disconnected"||!z){K("ide-status-disconnected");return}q({key:"ide-status-disconnected",text:`${z} disconnected`,color:"error",priority:"medium"})},D=[q,K,G,z,O,L],Q[8]=q,Q[9]=z,Q[10]=G,Q[11]=K,Q[12]=O,Q[13]=L,Q[14]=R,Q[15]=D;else R=Q[14],D=Q[15];Ma.useEffect(R,D);let $,y;if(Q[16]!==q||Q[17]!==K||Q[18]!==L)$=()=>{if(S9())return;if(!L){K("ide-status-jetbrains-disconnected");return}q({key:"ide-status-jetbrains-disconnected",text:"IDE plugin not connected \xB7 /status for info",priority:"medium"})},y=[q,K,L],Q[16]=q,Q[17]=K,Q[18]=L,Q[19]=$,Q[20]=y;else $=Q[19],y=Q[20];Ma.useEffect($,y);let v,E;if(Q[21]!==q||Q[22]!==K||Q[23]!==O)v=()=>{if(S9())return;if(!O){K("ide-status-install-error");return}q({key:"ide-status-install-error",text:"IDE extension install failed (see /status for info)",color:"error",priority:"medium"})},E=[q,K,O],Q[21]=q,Q[22]=K,Q[23]=O,Q[24]=v,Q[25]=E;else v=Q[24],E=Q[25];Ma.useEffect(v,E)}function vyQ(J,Q){X90(!0).then((X)=>{let Z=X[0]?.name;if(Z&&!J.current)J.current=!0,q8(fyQ),Q({key:"ide-status-hint",jsx:v08.jsxDEV(M,{dimColor:!0,children:["/ide for ",v08.jsxDEV(M,{color:"ide",children:Z},void 0,!1,void 0,this)]},void 0,!0,void 0,this),priority:"low"})})}function fyQ(J){return{...J,ideHintShownCount:(J.ideHintShownCount??0)+1}}var SIJ,Ma,v08,CyQ=5;var kIJ=I(()=>{UY();a0();m8();b5();N1();C81();SIJ=T(e0(),1),Ma=T(J1(),1),v08=T(e(),1)});function hIJ(J){if(!("text"in J))return 1;let Q=J.text.match(/^(\d+)/);return Q?.[1]?parseInt(Q[1],10):1}function SyQ(J,Q){return uIJ(hIJ(J)+1)}function uIJ(J){return{key:"teammate-spawn",text:J===1?"1 agent spawned":`${J} agents spawned`,priority:"low",timeoutMs:5000,fold:SyQ}}function xyQ(J,Q){return gIJ(hIJ(J)+1)}function gIJ(J){return{key:"teammate-shutdown",text:J===1?"1 agent shut down":`${J} agents shut down`,priority:"low",timeoutMs:5000,fold:xyQ}}function mIJ(){let J=O1((Y)=>Y.tasks),{addNotification:Q}=D9(),X=VA0.useRef(new Set),Z=VA0.useRef(new Set);VA0.useEffect(()=>{if(S9())return;for(let[Y,q]of Object.entries(J)){if(!JK(q))continue;if(q.status==="running"&&!X.current.has(Y))X.current.add(Y),Q(uIJ(1));if(q.status==="completed"&&!Z.current.has(Y))Z.current.add(Y),Q(gIJ(1))}},[J,Q])}var VA0;var pIJ=I(()=>{N1();UY();W6();VA0=T(J1(),1)});function nIJ(){let J=iIJ.c(13),{addNotification:Q}=D9(),X=O1(gyQ),Z=T6(),Y,q;if(J[0]!==Q||J[1]!==X||J[2]!==Z)Y=()=>{if(S9())return;if(!B9())return;return v86((H)=>{if(H)Q({key:lIJ,color:"fastMode",priority:"immediate",text:"Fast mode is now available \xB7 /fast to turn on"});else if(X)Z(uyQ),Q({key:lIJ,color:"warning",priority:"immediate",text:"Fast mode has been disabled by your organization"})})},q=[Q,X,Z],J[0]=Q,J[1]=X,J[2]=Z,J[3]=Y,J[4]=q;else Y=J[3],q=J[4];WJ1.useEffect(Y,q);let K,G;if(J[5]!==Q||J[6]!==Z)K=()=>{if(S9())return;if(!B9())return;return T86((H)=>{Z(hyQ),Q({key:kyQ,color:"warning",priority:"immediate",text:H})})},G=[Q,Z],J[5]=Q,J[6]=Z,J[7]=K,J[8]=G;else K=J[7],G=J[8];WJ1.useEffect(K,G);let z,W;if(J[9]!==Q||J[10]!==X)z=()=>{if(S9())return;if(!X)return;let H=I86((U,F)=>{let _=jQ(U-Date.now(),{hideTrailingZeros:!0}),O=myQ(F,_);Q({key:cIJ,invalidates:[dIJ],text:O,color:"warning",priority:"immediate"})}),B=y86(()=>{Q({key:dIJ,invalidates:[cIJ],color:"fastMode",text:"Fast limit reset \xB7 now using fast mode",priority:"immediate"})});return()=>{H(),B()}},W=[Q,X],J[9]=Q,J[10]=X,J[11]=z,J[12]=W;else z=J[11],W=J[12];WJ1.useEffect(z,W)}function hyQ(J){return{...J,fastMode:!1}}function uyQ(J){return{...J,fastMode:!1}}function gyQ(J){return J.fastMode}function myQ(J,Q){switch(J){case"overloaded":return`Fast mode overloaded and is temporarily unavailable \xB7 resets in ${Q}`;case"rate_limit":return`Fast limit reached and temporarily disabled \xB7 resets in ${Q}`}}var iIJ,WJ1,cIJ="fast-mode-cooldown-started",dIJ="fast-mode-cooldown-expired",lIJ="fast-mode-org-changed",kyQ="fast-mode-overage-rejected";var rIJ=I(()=>{UY();W6();$B();A6();N1();iIJ=T(e0(),1),WJ1=T(J1(),1)});function oIJ(J){let Q=aIJ.c(8),{onRun:X,onCancel:Z,reason:Y}=J,q=HJ1.useRef(!1),K;if(Q[0]===Symbol.for("react.memo_cache_sentinel"))K={context:"Confirmation"},Q[0]=K;else K=Q[0];J8("confirm:no",Z,K);let G,z;if(Q[1]!==X)G=()=>{if(!q.current)q.current=!0,X()},z=[X],Q[1]=X,Q[2]=G,Q[3]=z;else G=Q[2],z=Q[3];HJ1.useEffect(G,z);let W;if(Q[4]===Symbol.for("react.memo_cache_sentinel"))W=sC.jsxDEV(f,{children:sC.jsxDEV(M,{bold:!0,children:"Running feedback capture..."},void 0,!1,void 0,this)},void 0,!1,void 0,this),Q[4]=W;else W=Q[4];let H;if(Q[5]===Symbol.for("react.memo_cache_sentinel"))H=sC.jsxDEV(f,{children:sC.jsxDEV(M,{dimColor:!0,children:["Press ",sC.jsxDEV(p1,{shortcut:"Esc",action:"cancel"},void 0,!1,void 0,this)," anytime"]},void 0,!0,void 0,this)},void 0,!1,void 0,this),Q[5]=H;else H=Q[5];let B;if(Q[6]!==Y)B=sC.jsxDEV(f,{flexDirection:"column",marginTop:1,children:[W,H,sC.jsxDEV(f,{children:sC.jsxDEV(M,{dimColor:!0,children:["Reason: ",Y]},void 0,!0,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),Q[6]=Y,Q[7]=B;else B=Q[7];return B}function sIJ(J){return!1;switch(J){case"feedback_survey_bad":return!1;case"feedback_survey_good":return!1;default:return!1}}function tIJ(J){return"/issue"}function eIJ(J){switch(J){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 aIJ,HJ1,sC;var JyJ=I(()=>{g9();a0();f6();aIJ=T(e0(),1),HJ1=T(J1(),1),sC=T(e(),1)});function QyJ(){return null}function dyQ(J){for(let Q of J){if(Q.type!=="assistant")continue;let X=Q.message.content;if(!Array.isArray(X))continue;for(let Z of X){if(Z.type!=="tool_use"||!("name"in Z))continue;let Y=Z.name;if(Y.startsWith("mcp__"))return!1;if(Y===O6){let K=Z.input?.command||"";if(pyQ.some((G)=>G.test(K)))return!1}}}return!0}function lyQ(J){for(let Q=J.length-1;Q>=0;Q--){let X=J[Q];if(X.type!=="user")continue;let Z=Si(X);if(!Z)continue;return cyQ.some((Y)=>Y.test(Z))}return!1}function XyJ(J,Q){if(process.env.USER_TYPE!=="ant")return!1;let X=NA0.useRef(0),Z=NA0.useRef(-1),Y=NA0.useMemo(()=>dyQ(J)&&lyQ(J),[J]);if(Z.current===Q)return!0;if(Date.now()-X.current<nyQ)return!1;if(Q<iyQ)return!1;if(!Y)return!1;return X.current=Date.now(),Z.current=Q,!0}var NA0,pyQ,cyQ,iyQ=3,nyQ=1800000;var ZyJ=I(()=>{M8();NA0=T(J1(),1),pyQ=[/\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/],cyQ=[/^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 ryQ,ayQ,oyQ;var YyJ=I(()=>{N1();a0();ryQ=T(e0(),1),ayQ=T(J1(),1),oyQ=T(e(),1)});function f08(J){let Q=qyJ.c(7),{children:X,mouseTracking:Z}=J,Y=Z===void 0?!0:Z,q=wA0.useContext(Wx),K=wA0.useContext(Ux),G,z;if(Q[0]!==Y||Q[1]!==K)G=()=>{let B=O4.get(process.stdout);if(!K)return;return K(AH0+"\x1B[2J\x1B[H"+(Y?Nd:"")),B?.setAltScreenActive(!0,Y),()=>{B?.setAltScreenActive(!1),B?.clearTextSelection(),K((Y?iP:"")+E10)}},z=[K,Y],Q[0]=Y,Q[1]=K,Q[2]=G,Q[3]=z;else G=Q[2],z=Q[3];wA0.useInsertionEffect(G,z);let W=q?.rows??24,H;if(Q[4]!==X||Q[5]!==W)H=KyJ.jsxDEV(Wq,{flexDirection:"column",height:W,width:"100%",flexShrink:0,children:X},void 0,!1,void 0,this),Q[4]=X,Q[5]=W,Q[6]=H;else H=Q[6];return H}var qyJ,wA0,KyJ;var GyJ=I(()=>{jF();zx();sP();oP();$H0();qyJ=T(e0(),1),wA0=T(J1(),1),KyJ=T(e(),1)});function zyJ(J,Q,X){let Z=a40.useRef(!1),Y=a40.useRef(X);Y.current=X,a40.useEffect(()=>{if(!Q)return;return J.subscribe(()=>{let K=J.getState(),G=J.hasSelection();if(K?.isDragging){Z.current=!1;return}if(!G){Z.current=!1;return}if(Z.current)return;if(!(L1().copyOnSelect??!0))return;let W=J.copySelectionNoClear();if(!W||!W.trim()){Z.current=!0;return}Z.current=!0,Y.current?.(W)})},[Q,J])}function WyJ(J){let[Q]=j6();a40.useEffect(()=>{J.setSelectionBgColor(m3(Q).selectionBg)},[J,Q])}var a40;var HyJ=I(()=>{W10();m8();fR();a40=T(J1(),1)});function HbQ(J){if(J.wheelUp||J.wheelDown)return!1;if((J.leftArrow||J.rightArrow||J.upArrow||J.downArrow||J.home||J.end||J.pageUp||J.pageDown)&&(J.shift||J.meta||J.super))return!1;return!0}function BbQ(J){if(!J.shift||J.meta)return null;if(J.leftArrow)return"left";if(J.rightArrow)return"right";if(J.upArrow)return"up";if(J.downArrow)return"down";if(J.home)return"lineStart";if(J.end)return"lineEnd";return null}function FyJ(J,Q,X){if(!J.xtermJs){if(J.wheelMode&&X-J.time>YbQ)J.wheelMode=!1,J.burstCount=0,J.mult=J.base;if(J.pendingFlip){if(J.pendingFlip=!1,Q!==J.dir||X-J.time>JbQ)return J.dir=Q,J.time=X,J.mult=J.base,Math.floor(J.mult);J.wheelMode=!0}let G=X-J.time;if(Q!==J.dir&&J.dir!==0)return J.pendingFlip=!0,J.time=X,0;if(J.dir=Q,J.time=X,J.wheelMode)if(G<UyJ)if(++J.burstCount>=5)J.wheelMode=!1,J.burstCount=0,J.mult=J.base;else return 1;else J.burstCount=0;if(J.wheelMode){let z=Math.pow(0.5,G/ByJ),W=Math.max(XbQ,J.base*2),H=1+(J.mult-1)*z+QbQ*z;return J.mult=Math.min(W,H,J.mult+ZbQ),Math.floor(J.mult)}if(G>syQ)J.mult=J.base;else{let z=Math.max(eyQ,J.base*2);J.mult=Math.min(z,J.mult+tyQ)}return Math.floor(J.mult)}let Z=X-J.time,Y=Q===J.dir;if(J.time=X,J.dir=Q,Y&&Z<UyJ)return 1;if(!Y||Z>WbQ)J.mult=2,J.frac=0;else{let G=Math.pow(0.5,Z/ByJ),z=Z>=KbQ?GbQ:zbQ;J.mult=Math.min(z,1+(J.mult-1)*G+qbQ*G)}let q=J.mult+J.frac,K=Math.floor(q);return J.frac=q-K,K}function UbQ(){let J=process.env.GLOCK_SCROLL_SPEED;if(!J)return 1;let Q=parseFloat(J);return Number.isNaN(Q)||Q<=0?1:Math.min(Q,20)}function FbQ(J=!1,Q=1){return{time:0,mult:Q,dir:0,xtermJs:J,frac:0,base:Q,pendingFlip:!1,wheelMode:!1,burstCount:0}}function _yJ(){let J=rP(),Q=UbQ();return b(`wheel accel: ${J?"decay (xterm.js)":"window (native)"} \xB7 base=${Q} \xB7 TERM_PROGRAM=${process.env.TERM_PROGRAM??"unset"}`),FbQ(J,Q)}function S08({scrollRef:J,isActive:Q,onScroll:X,isModal:Z=!1}){let Y=l10(),{addNotification:q}=D9(),K=eC.useRef(null);function G(H){let B=EQ6(),U=H.length,F;switch(B){case"native":F=`copied ${U} chars to clipboard`;break;case"tmux-buffer":F=`copied ${U} chars to tmux buffer \xB7 paste with prefix + ]`;break;case"osc52":F=`sent ${U} chars via OSC 52 \xB7 check terminal clipboard settings if paste fails`;break}q({key:"selection-copied",text:F,color:"suggestion",priority:"immediate",timeoutMs:B==="native"?2000:4000})}function z(){let H=Y.copySelection();if(H)G(H)}function W(H,B){let U=Y.getState();if(!U?.anchor||!U.focus)return;let F=H.getViewportTop(),_=F+H.getViewportHeight()-1;if(U.anchor.row<F||U.anchor.row>_)return;if(U.focus.row<F||U.focus.row>_)return;let O=Math.max(0,H.getScrollHeight()-H.getViewportHeight()),L=H.getScrollTop()+H.getPendingDelta(),N=Math.max(0,Math.min(O,L+B))-L;if(N===0)return;if(N>0)Y.captureScrolledRows(F,F+N-1,"above"),Y.shiftSelection(-N,F,_);else{let A=-N;Y.captureScrolledRows(_-A+1,_,"below"),Y.shiftSelection(A,F,_)}}return C6({"scroll:pageUp":()=>{let H=J.current;if(!H)return;let B=-Math.max(1,Math.floor(H.getViewportHeight()/2));W(H,B);let U=tC(H,B);X?.(U,H)},"scroll:pageDown":()=>{let H=J.current;if(!H)return;let B=Math.max(1,Math.floor(H.getViewportHeight()/2));W(H,B);let U=tC(H,B);X?.(U,H)},"scroll:lineUp":()=>{Y.clearSelection();let H=J.current;if(!H||H.getScrollHeight()<=H.getViewportHeight())return!1;K.current??=_yJ(),wbQ(H,FyJ(K.current,-1,performance.now())),X?.(!1,H)},"scroll:lineDown":()=>{Y.clearSelection();let H=J.current;if(!H||H.getScrollHeight()<=H.getViewportHeight())return!1;K.current??=_yJ();let B=FyJ(K.current,1,performance.now()),U=NbQ(H,B);X?.(U,H)},"scroll:top":()=>{let H=J.current;if(!H)return;W(H,-(H.getScrollTop()+H.getPendingDelta())),H.scrollTo(0),X?.(!1,H)},"scroll:bottom":()=>{let H=J.current;if(!H)return;let B=Math.max(0,H.getScrollHeight()-H.getViewportHeight());W(H,B-(H.getScrollTop()+H.getPendingDelta())),H.scrollTo(B),H.scrollToBottom(),X?.(!0,H)},"selection:copy":z},{context:"Scroll",isActive:Q}),C6({"scroll:halfPageUp":()=>{let H=J.current;if(!H)return;let B=-Math.max(1,Math.floor(H.getViewportHeight()/2));W(H,B);let U=tC(H,B);X?.(U,H)},"scroll:halfPageDown":()=>{let H=J.current;if(!H)return;let B=Math.max(1,Math.floor(H.getViewportHeight()/2));W(H,B);let U=tC(H,B);X?.(U,H)},"scroll:fullPageUp":()=>{let H=J.current;if(!H)return;let B=-Math.max(1,H.getViewportHeight());W(H,B);let U=tC(H,B);X?.(U,H)},"scroll:fullPageDown":()=>{let H=J.current;if(!H)return;let B=Math.max(1,H.getViewportHeight());W(H,B);let U=tC(H,B);X?.(U,H)}},{context:"Scroll",isActive:Q}),SJ((H,B,U)=>{let F=J.current;if(!F)return;let _=RbQ(F,AbQ(H,B),(O)=>W(F,O));if(_===null)return;X?.(_,F),U.stopImmediatePropagation()},{isActive:Q&&Z}),SJ((H,B,U)=>{if(!Y.hasSelection())return;if(B.escape){Y.clearSelection(),U.stopImmediatePropagation();return}if(B.ctrl&&!B.shift&&!B.meta&&H==="c"){z(),U.stopImmediatePropagation();return}let F=BbQ(B);if(F){Y.moveFocus(F),U.stopImmediatePropagation();return}if(HbQ(B))Y.clearSelection()},{isActive:Q}),LbQ(J,Y,Q,X),zyJ(Y,Q,G),WyJ(Y),null}function LbQ(J,Q,X,Z){let Y=eC.useRef(null),q=eC.useRef(0),K=eC.useRef(0),G=eC.useRef(0),z=eC.useRef(Z);z.current=Z,eC.useEffect(()=>{if(!X)return;function W(){if(q.current=0,Y.current)clearInterval(Y.current),Y.current=null}function H(){let _=Q.getState(),O=J.current,L=q.current;if(!_?.isDragging||!_.focus||!O||L===0||++G.current>ObQ){W();return}if(O.getPendingDelta()!==0)return;let N=O.getViewportTop(),A=N+O.getViewportHeight()-1;if(L<0){if(O.getScrollTop()<=0){W();return}let R=Math.min(BJ1,O.getScrollTop());Q.captureScrolledRows(A-R+1,A,"below"),Q.shiftAnchor(R,0,A),O.scrollBy(-BJ1)}else{let R=Math.max(0,O.getScrollHeight()-O.getViewportHeight());if(O.getScrollTop()>=R){W();return}let D=Math.min(BJ1,R-O.getScrollTop());Q.captureScrolledRows(N,N+D-1,"above"),Q.shiftAnchor(-D,N,A),O.scrollBy(BJ1)}z.current?.(!1,O)}function B(_){if(K.current=_,q.current===_)return;if(W(),q.current=_,G.current=0,H(),q.current===_)Y.current=setInterval(H,_bQ)}function U(){let _=J.current;if(!_){W();return}let O=_.getViewportTop(),L=O+_.getViewportHeight()-1,N=Q.getState();if(!N?.isDragging||N.scrolledOffAbove.length===0&&N.scrolledOffBelow.length===0)K.current=0;let A=VbQ(N,O,L,K.current);if(A===0){if(K.current!==0&&N?.focus){let R=N.focus.row<O?-1:N.focus.row>L?1:0;if(R!==0&&R!==K.current)N.scrolledOffAbove=[],N.scrolledOffBelow=[],N.scrolledOffAboveSW=[],N.scrolledOffBelowSW=[],K.current=0}W()}else B(A)}let F=Q.subscribe(U);return()=>{F(),W(),K.current=0}},[X,J,Q])}function VbQ(J,Q,X,Z=0){if(!J?.isDragging||!J.anchor||!J.focus)return 0;let Y=J.focus.row,q=Y<Q?-1:Y>X?1:0;if(Z!==0)return q===Z?q:0;if(J.anchor.row<Q||J.anchor.row>X)return 0;return q}function tC(J,Q){let X=Math.max(0,J.getScrollHeight()-J.getViewportHeight()),Z=J.getScrollTop()+J.getPendingDelta()+Q;if(Z>=X)return J.scrollTo(X),J.scrollToBottom(),!0;return J.scrollTo(Math.max(0,Z)),!1}function NbQ(J,Q){let X=Math.max(0,J.getScrollHeight()-J.getViewportHeight());if(J.getScrollTop()+J.getPendingDelta()+Q>=X)return J.scrollToBottom(),!0;return J.scrollBy(Q),!1}function wbQ(J,Q){if(J.getScrollTop()+J.getPendingDelta()-Q<=0){J.scrollTo(0);return}J.scrollBy(-Q)}function AbQ(J,Q){if(Q.meta)return null;if(!Q.ctrl&&!Q.shift){if(Q.upArrow)return"lineUp";if(Q.downArrow)return"lineDown";if(Q.home)return"top";if(Q.end)return"bottom"}if(Q.ctrl){if(Q.shift)return null;switch(J){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 X=J[0];if(!X||J!==X.repeat(J.length))return null;if(X==="G"||X==="g"&&Q.shift)return"bottom";if(Q.shift)return null;switch(X){case"g":return"top";case"j":return"lineDown";case"k":return"lineUp";case" ":return"fullPageDown";case"b":return"fullPageUp";default:return null}}function RbQ(J,Q,X){switch(Q){case null:return null;case"lineUp":case"lineDown":{let Z=Q==="lineDown"?1:-1;return X(Z),tC(J,Z)}case"halfPageUp":case"halfPageDown":{let Z=Math.max(1,Math.floor(J.getViewportHeight()/2)),Y=Q==="halfPageDown"?Z:-Z;return X(Y),tC(J,Y)}case"fullPageUp":case"fullPageDown":{let Z=Math.max(1,J.getViewportHeight()),Y=Q==="fullPageDown"?Z:-Z;return X(Y),tC(J,Y)}case"top":return X(-(J.getScrollTop()+J.getPendingDelta())),J.scrollTo(0),!1;case"bottom":{let Z=Math.max(0,J.getScrollHeight()-J.getViewportHeight());return X(Z-(J.getScrollTop()+J.getPendingDelta())),J.scrollTo(Z),J.scrollToBottom(),!0}}}var eC,syQ=40,tyQ=0.3,eyQ=6,JbQ=200,QbQ=15,XbQ=15,ZbQ=3,YbQ=1500,ByJ=150,qbQ=5,UyJ=5,KbQ=80,GbQ=3,zbQ=6,WbQ=500,BJ1=2,_bQ=50,ObQ=200;var OyJ=I(()=>{UY();HyJ();tx0();aP();g3();a0();f6();Z1();eC=T(J1(),1)});var MyJ={};X8(MyJ,{REPL:()=>hbQ});import{dirname as MbQ,join as DbQ}from"path";import{tmpdir as $bQ}from"os";import{writeFile as jbQ}from"fs/promises";import{randomUUID as AA0}from"crypto";function NyJ(J){let Q=x08.c(9),{showAllInTranscript:X,virtualScroll:Z,searchBadge:Y,suppressShowAll:q,status:K}=J,G=q===void 0?!1:q,z=r9("app:toggleTranscript","Global","ctrl+o"),W=r9("transcript:toggleShowAll","Transcript","ctrl+e"),H=Y?" \xB7 n/N to navigate":Z?` \xB7 ${s0.arrowUp}${s0.arrowDown} scroll \xB7 home/end top/bottom`:G?"":` \xB7 ${W} to ${X?"collapse":"show all"}`,B;if(Q[0]!==H||Q[1]!==z)B=t8.jsxDEV(M,{dimColor:!0,children:["Showing detailed transcript \xB7 ",z," to toggle",H]},void 0,!0,void 0,this),Q[0]=H,Q[1]=z,Q[2]=B;else B=Q[2];let U;if(Q[3]!==Y||Q[4]!==K)U=K?t8.jsxDEV(t8.Fragment,{children:[t8.jsxDEV(f,{flexGrow:1},void 0,!1,void 0,this),t8.jsxDEV(M,{children:[K," "]},void 0,!0,void 0,this)]},void 0,!0,void 0,this):Y?t8.jsxDEV(t8.Fragment,{children:[t8.jsxDEV(f,{flexGrow:1},void 0,!1,void 0,this),t8.jsxDEV(M,{dimColor:!0,children:[Y.current,"/",Y.count," "]},void 0,!0,void 0,this)]},void 0,!0,void 0,this):null,Q[3]=Y,Q[4]=K,Q[5]=U;else U=Q[5];let F;if(Q[6]!==B||Q[7]!==U)F=t8.jsxDEV(f,{noSelect:!0,alignItems:"center",alignSelf:"center",borderTopDimColor:!0,borderBottom:!1,borderLeft:!1,borderRight:!1,borderStyle:"single",marginTop:1,paddingLeft:2,width:"100%",children:[B,U]},void 0,!0,void 0,this),Q[6]=B,Q[7]=U,Q[8]=F;else F=Q[8];return F}function fbQ({jumpRef:J,count:Q,current:X,onClose:Z,onCancel:Y,setHighlight:q,initialQuery:K}){let{query:G,cursorOffset:z}=gL({isActive:!0,initialQuery:K,onExit:()=>Z(G),onCancel:Y}),[W,H]=gY.useState("building");gY.useEffect(()=>{let _=!0,O=J.current?.warmSearchIndex;if(!O){H(null);return}return H("building"),O().then((L)=>{if(!_)return;if(L<20)H(null);else H({ms:L}),setTimeout(()=>_&&H(null),2000)}),()=>{_=!1}},[]);let B=W!=="building";k1.useEffect(()=>{if(!B)return;J.current?.setSearchQuery(G),q(G)},[G,B]);let U=z,F=U<G.length?G[U]:" ";return t8.jsxDEV(f,{borderTopDimColor:!0,borderBottom:!1,borderLeft:!1,borderRight:!1,borderStyle:"single",marginTop:1,paddingLeft:2,width:"100%",noSelect:!0,children:[t8.jsxDEV(M,{children:"/"},void 0,!1,void 0,this),t8.jsxDEV(M,{children:G.slice(0,U)},void 0,!1,void 0,this),t8.jsxDEV(M,{inverse:!0,children:F},void 0,!1,void 0,this),U<G.length&&t8.jsxDEV(M,{children:G.slice(U+1)},void 0,!1,void 0,this),t8.jsxDEV(f,{flexGrow:1},void 0,!1,void 0,this),W==="building"?t8.jsxDEV(M,{dimColor:!0,children:"indexing\u2026 "},void 0,!1,void 0,this):W?t8.jsxDEV(M,{dimColor:!0,children:["indexed in ",W.ms,"ms "]},void 0,!0,void 0,this):Q===0&&G?t8.jsxDEV(M,{color:"error",children:"no matches "},void 0,!1,void 0,this):Q>0?t8.jsxDEV(M,{dimColor:!0,children:[X,"/",Q," "]},void 0,!0,void 0,this):null]},void 0,!0,void 0,this)}function AyJ(J){let Q=x08.c(6),{isAnimating:X,title:Z,disabled:Y,noPrefix:q}=J,K=X5(),[G,z]=k1.useState(0),W,H;if(Q[0]!==Y||Q[1]!==X||Q[2]!==q||Q[3]!==K)W=()=>{if(Y||q||!X||!K)return;let U=setInterval(xbQ,SbQ,z);return()=>clearInterval(U)},H=[Y,q,X,K],Q[0]=Y,Q[1]=X,Q[2]=q,Q[3]=K,Q[4]=W,Q[5]=H;else W=Q[4],H=Q[5];k1.useEffect(W,H);let B=X?RyJ[G]??wyJ:wyJ;return Qk0(Y?null:q?Z:`${B} ${Z}`),null}function xbQ(J){return J(kbQ)}function kbQ(J){return(J+1)%RyJ.length}function hbQ({commands:J,debug:Q,initialTools:X,initialMessages:Z,pendingHookMessages:Y,initialFileHistorySnapshots:q,initialContentReplacements:K,initialAgentName:G,initialAgentColor:z,mcpClients:W,dynamicMcpConfig:H,autoConnectIdeFlag:B,strictMcpConfig:U=!1,systemPrompt:F,appendSystemPrompt:_,onBeforeQuery:O,onTurnComplete:L,disabled:N=!1,mainThreadAgentDefinition:A,disableSlashCommands:R=!1,taskListId:D,remoteSessionConfig:$,directConnectConfig:y,sshSession:v,thinkingConfig:E}){let C=!!$,S=!1,k=k1.useMemo(()=>!1,[]),h=!1,u=!1;k1.useEffect(()=>{return b(`[REPL:mount] REPL mounted, disabled=${N}`),()=>b("[REPL:unmount] REPL unmounting")},[N]);let[x,m]=k1.useState(A),p=O1((X1)=>X1.toolPermissionContext),c=O1((X1)=>X1.verbose),r=O1((X1)=>X1.mcp),J0=O1((X1)=>X1.plugins),n=O1((X1)=>X1.agentDefinitions),s=O1((X1)=>X1.fileHistory),X0=O1((X1)=>X1.initialMessage),Y0=By(),G0=O1((X1)=>X1.spinnerTip),j0=O1((X1)=>X1.expandedView)==="tasks",W0=O1((X1)=>X1.pendingWorkerRequest),y0=O1((X1)=>X1.pendingSandboxRequest),V0=O1((X1)=>X1.teamContext),Z0=O1((X1)=>X1.tasks),t=O1((X1)=>X1.workerSandboxPermissions),q0=O1((X1)=>X1.elicitation),Q0=O1((X1)=>X1.ultraplanPendingChoice),a=O1((X1)=>X1.ultraplanLaunchPending),O0=O1((X1)=>X1.viewingAgentTaskId),D0=T6(),F0=O0?Z0[O0]:void 0,I0=yK(F0)&&F0.retain&&!F0.diskLoaded;k1.useEffect(()=>{if(!O0||!I0)return;let X1=O0;oh(KY(X1)).then((V1)=>{D0((v1)=>{let S8=v1.tasks[X1];if(!yK(S8)||S8.diskLoaded||!S8.retain)return v1;let K6=S8.messages??[],P6=new Set(K6.map((xJ)=>xJ.uuid)),Y6=V1?V1.messages.filter((xJ)=>!P6.has(xJ.uuid)):[];return{...v1,tasks:{...v1.tasks,[X1]:{...S8,messages:[...Y6,...K6],diskLoaded:!0}}}})})},[O0,I0,D0]);let U0=aX(),P0=Fx(),$0=Ky(),[w0,E0]=k1.useState(J);K$J(C?void 0:B4(),E0);let h0=gY.useSyncExternalStore(LyJ?.subscribeToProactiveChanges??PbQ,LyJ?.isProactiveActive??EbQ),u0=O1((X1)=>X1.isBriefOnly),B0=k1.useMemo(()=>x2(p),[p,h0,u0]);yjJ(),bjJ();let[_0,M0]=k1.useState(H),b0=k1.useCallback((X1)=>{M0(X1)},[M0]),[L0,T0]=k1.useState("prompt"),[S0,g0]=k1.useState(!1),[c0,t0]=k1.useState(!1),[K1,K0]=k1.useState(""),m0=k1.useRef(0),R0=k1.useRef(void 0),p0=k1.useRef(!1),{addNotification:o0,removeNotification:R1}=D9(),l1=TbQ,a1=J$J(W,r.clients),[w8,A8]=k1.useState(void 0),[_6,vJ]=k1.useState(null),[cJ,E8]=k1.useState(null),[z0,N0]=k1.useState(!1),[f0,d0]=k1.useState(()=>{return!1}),[r0,n0]=k1.useState(()=>u$J($0)),[f1,F1]=k1.useState(()=>AjJ());xIJ({ideSelection:w8,mcpClients:a1,ideInstallationStatus:cJ}),pjJ({mcpClients:a1}),djJ(),VIJ(),AIJ(),hjJ(),nIJ(),TIJ($0),vIJ(),ybQ(),QjJ(),zjJ(),njJ(),mIJ();let{recommendation:u1,handleResponse:e1}=KIJ(),{recommendation:a8,handleResponse:X6}=BIJ(),c6=k1.useMemo(()=>{return[...B0,...X]},[B0,X]);z$J({enabled:!C});let HJ=Ur6();k1.useEffect(()=>{if(C)return;jIJ(D0)},[D0,C]),LDJ(D0,Z,{enabled:!C});let bJ=L11(c6,r.tools,p),{tools:VJ,allowedAgentTypes:TQ}=k1.useMemo(()=>{if(!x)return{tools:bJ,allowedAgentTypes:void 0};let X1=WT(x,bJ,!1,!0);return{tools:X1.resolvedTools,allowedAgentTypes:X1.allowedAgentTypes}},[x,bJ]),f7=z08(w0,J0.commands),c7=z08(f7,r.commands),n8=k1.useMemo(()=>R?[]:c7,[R,c7]);DLJ(C?VyJ:r.clients),F$J(C?VyJ:r.clients,A8);let[hZ,T8]=k1.useState("responding"),wX=k1.useRef(hZ);wX.current=hZ;let[r4,m9]=k1.useState([]),[Y4,BK]=k1.useState(null);k1.useEffect(()=>{if(Y4&&!Y4.isStreaming&&Y4.streamingEndedAt){let V1=30000-(Date.now()-Y4.streamingEndedAt);if(V1>0){let v1=setTimeout(BK,V1,null);return()=>clearTimeout(v1)}else BK(null)}},[Y4]);let[y9,JZ]=k1.useState(null),P4=k1.useRef(null);P4.current=y9;let u5=k1.useRef(()=>{}),RZ=k1.useRef(()=>{}),E4=k1.useRef(null),U6=k1.useRef(null),NJ=k1.useRef(0),hJ=gY.useRef(new ts1).current,F9=gY.useSyncExternalStore(hJ.subscribe,hJ.getSnapshot),[HQ,uZ]=gY.useState($?.hasInitialPrompt??!1),sJ=F9||HQ,[uX,_9]=gY.useState(void 0),gX=gY.useRef(0),q4=gY.useRef(!1),zX=gY.useRef(0),f9=gY.useRef(0),oQ=gY.useRef(null),O7=gY.useCallback(()=>{zX.current=Date.now(),f9.current=0,oQ.current=null},[]),BQ=gY.useRef(!1);if(F9&&!BQ.current)O7();BQ.current=F9;let b9=gY.useCallback((X1)=>{if(uZ(X1),X1)O7()},[O7]),z7=gY.useRef(null),CQ=gY.useRef(void 0),QZ=gY.useRef(void 0),XZ=1500,[vQ,I7]=gY.useState(!1),[AX,gZ]=k1.useState(null);k1.useEffect(()=>{if(AX?.notifications)AX.notifications.forEach((X1)=>{o0({key:"auto-updater-notification",text:X1,priority:"low"})})},[AX,o0]),k1.useEffect(()=>{if(yJ())E66().then((X1)=>{if(X1)o0({key:"tmux-mouse-hint",text:X1,priority:"low"})})},[]);let[a4,_5]=k1.useState(!1);k1.useEffect(()=>{},[]);let[K9,$W]=k1.useState(null),g5=k1.useRef(null),L9=k1.useCallback((X1)=>{if(X1?.isLocalJSXCommand){let{clearLocalJSX:V1,...v1}=X1;g5.current={...v1,isLocalJSXCommand:!0},$W(v1);return}if(g5.current){if(X1?.clearLocalJSX){g5.current=null,$W(null);return}return}if(X1?.clearLocalJSX){$W(null);return}$W(X1)},[]),[L7,mZ]=k1.useState([]),[T4,mY]=k1.useState(null),[MZ,O5]=k1.useState([]),[ZZ,pY]=k1.useState([]),cY=O1((X1)=>X1.settings.terminalTitleFromRename)!==!1?kw(A1()):void 0,[LY,VY]=k1.useState(),C4=k1.useRef((Z?.length??0)>0),nK=x?.agentType,rK=cY??nK??LY??"Glock",Tq=L7.length>0||ZZ.length>0||W0||y0,dY=K9?.isLocalJSXCommand===!0&&K9?.jsx!=null,NY=sJ&&!Tq&&!dY;k1.useEffect(()=>{if(sJ&&!Tq&&!dY)return XLJ(),()=>ZLJ()},[sJ,Tq,dY]);let u8=Tq||dY?"waiting":sJ?"busy":"idle",I8=u8!=="waiting"?void 0:L7.length>0?`approve ${L7[0].tool.name}`:W0?"worker request":y0?"sandbox request":dY?"dialog open":"input needed";k1.useEffect(()=>{},[u8,I8]);let p9=Y8("jarvis_api_error",!1)&&(L1().showStatusInTerminalTab??!1);ex0(!p9?null:u8),k1.useEffect(()=>{return mg6(mZ),()=>pg6()},[mZ]);let[YJ,$Q]=k1.useState(Z??[]),rJ=k1.useRef(YJ),WX=k1.useRef(!1),w6=k1.useCallback((X1)=>{let V1=rJ.current,v1=typeof X1==="function"?X1(rJ.current):X1;if(rJ.current=v1,v1.length<gX.current)gX.current=0;else if(v1.length>V1.length&&q4.current){let S8=v1.length-V1.length;if((V1.length===0||v1[0]===V1[0]?v1.slice(-S8):v1.slice(0,S8)).some(O90))q4.current=!1;else gX.current=v1.length}$Q(v1)},[]),I6=k1.useCallback((X1)=>{if(X1!==void 0)gX.current=rJ.current.length,q4.current=!0;else q4.current=!1;_9(X1)},[]),{dividerIndex:o4,dividerYRef:wY,onScrollAway:p5,onRepin:RU,jumpToNew:oH,shiftDivider:MU}=sGJ(YJ.length),[UK,aK]=k1.useState(null),jG=k1.useRef(null),u_=k1.useMemo(()=>tGJ(YJ,o4),[o4,YJ.length]),F3=k1.useCallback(()=>{E4.current?.scrollToBottom(),RU(),aK(null)},[RU,aK]),g_=YJ.at(-1),o2=g_!=null&&O90(g_);k1.useEffect(()=>{if(o2)F3()},[o2,g_,F3]);let{maybeLoadOlder:PD}=CbQ,FK=k1.useCallback((X1,V1)=>{if(NJ.current=Date.now(),X1)RU();else p5(V1)},[RU,p5,PD,D0]),ED=JDJ(Y,w6),_3=k1.useDeferredValue(YJ),C0=YJ.length-_3.length;if(C0>0)b(`[useDeferredValue] Messages deferred by ${C0} (${_3.length}\u2192${YJ.length})`);let[x0,H1]=k1.useState(null),[h1,_8]=k1.useState(()=>uX1()),N6=k1.useRef(h1);N6.current=h1;let lJ=k1.useRef(null),GJ=k1.useCallback((X1)=>{if(l1(N6.current,X1))return;if(N6.current===""&&X1!==""&&Date.now()-NJ.current>=vbQ)F3();N6.current=X1,_8(X1),I7(X1.trim().length>0)},[I7,F3,l1]);k1.useEffect(()=>{if(h1.trim().length===0)return;let X1=setTimeout(I7,XZ,!1);return()=>clearTimeout(X1)},[h1]);let[fQ,K4]=k1.useState("prompt"),[mX,c5]=k1.useState(),sH=k1.useCallback((X1)=>{let V1=new Set(X1);E0((v1)=>v1.filter((S8)=>V1.has(S8.name)||P_J.has(S8)))},[E0]),[IG,Vz]=k1.useState(new Set),OA=k1.useRef(!1),Qv=$MJ({config:$,setMessages:w6,setIsLoading:b9,onInit:sH,setToolUseConfirmQueue:mZ,tools:c6,setStreamingToolUses:m9,setStreamMode:T8,setInProgressToolUseIDs:Vz}),s2=yMJ({config:y,setMessages:w6,setIsLoading:b9,setToolUseConfirmQueue:mZ,tools:c6}),Nz=PMJ({session:v,setMessages:w6,setIsLoading:b9,setToolUseConfirmQueue:mZ,tools:c6}),DU=Nz.isRemoteMode?Nz:s2.isRemoteMode?s2:Qv,[P9,f8]=k1.useState({}),[O3,TD]=k1.useState(0),pX=k1.useRef(0),WV=k1.useRef([]),CD=k1.useCallback((X1)=>{let V1=pX.current;if(pX.current=X1(V1),pX.current>V1){let v1=WV.current;if(v1.length>0){let S8=v1.at(-1);S8.lastTokenTime=Date.now(),S8.endResponseLength=pX.current}}},[]),[LA,G1]=k1.useState(null),b6=!(O1((X1)=>X1.settings.prefersReducedMotion)??!1)&&!kQ6(),c9=k1.useCallback((X1)=>{if(!b6)return;G1(X1)},[b6]),W7=LA&&b6?LA.substring(0,LA.lastIndexOf(`
|
|
@@ -6954,7 +6954,7 @@ Error: sandbox required but unavailable: ${X1}
|
|
|
6954
6954
|
${V1}`)}else b("No GLOCK.md/rules files found");for(let V1 of X1)BV.current.set(V1.path,{content:V1.contentDiffersFromDisk?V1.rawContent??V1.content:V1.content,timestamp:Date.now(),offset:void 0,limit:void 0,isPartialView:V1.contentDiffersFromDisk})}aMJ(yOJ()),FLJ(YJ,YJ.length===Z?.length);let{sendBridgeResult:$Y0}=LLJ(YJ,w6,P4,n8,$0);u5.current=$Y0,tMJ();let Hv=k1.useRef(!1);k1.useEffect(()=>{if(Y0.length<1){Hv.current=!1;return}if(Hv.current)return;Hv.current=!0,q8((X1)=>({...X1,promptQueueUseCount:(X1.promptQueueUseCount??0)+1}))},[Y0.length]);let jY0=k1.useCallback(async(X1)=>{await b61({helpers:{setCursorOffset:()=>{},clearBuffer:()=>{},resetHistory:()=>{}},queryGuard:hJ,commands:n8,onInputChange:()=>{},setPastedContents:()=>{},setToolJSX:L9,getToolUseContext:V3,messages:YJ,mainLoopModel:$0,ideSelection:w8,setUserInputOnProcessing:I6,setAbortController:JZ,onQuery:UV,setAppState:D0,querySource:gB0(),onBeforeQuery:O,canUseTool:c_,addNotification:o0,setMessages:w6,queuedCommands:X1})},[hJ,n8,L9,V3,YJ,$0,w8,I6,c_,JZ,UV,o0,D0,O]);aDJ({executeQueuedInput:jY0,hasActiveLocalJsxUI:dY,queryGuard:hJ}),k1.useEffect(()=>{ML0.recordUserActivity(),km(!0)},[h1,O3]),k1.useEffect(()=>{if(O3===1)se1()},[O3]),k1.useEffect(()=>{if(sJ)return;if(O3===0)return;if(d9===0)return;let X1=setTimeout((V1,v1,S8,K6,P6)=>{if(eD()>V1)return;let xJ=Date.now()-V1;if(!v1&&!S8&&K6.current===void 0&&xJ>=L1().messageIdleNotifThresholdMs)Ug({message:"Glock is waiting for your input",notificationType:"idle_prompt"},P6)},L1().messageIdleNotifThresholdMs,d9,sJ,K9,QZ,P0);return()=>clearTimeout(X1)},[sJ,K9,O3,d9,P0]),k1.useEffect(()=>{if(d9===0)return;if(sJ)return;let X1=Y8("jarvis_api_error","off");if(X1!=="hint"&&X1!=="hint_v2")return;if(L1().idleReturnDismissed)return;let V1=Number(process.env.GLOCK_IDLE_TOKEN_THRESHOLD??1e5);if(PV()<V1)return;let v1=Number(process.env.GLOCK_IDLE_THRESHOLD_MINUTES??75)*60000,S8=Date.now()-d9,K6=v1-S8,P6=setTimeout((Y6,xJ,aJ,G9,Y9)=>{if(aJ.current.length===0)return;let bG=PV(),SQ=P7(bG),lY=(Date.now()-Y6)/60000;xJ({key:"idle-return-hint",jsx:G9==="hint_v2"?t8.jsxDEV(t8.Fragment,{children:[t8.jsxDEV(M,{dimColor:!0,children:"new task? "},void 0,!1,void 0,this),t8.jsxDEV(M,{color:"suggestion",children:"/clear"},void 0,!1,void 0,this),t8.jsxDEV(M,{dimColor:!0,children:" to save "},void 0,!1,void 0,this),t8.jsxDEV(M,{color:"suggestion",children:[SQ," tokens"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this):t8.jsxDEV(M,{color:"warning",children:["new task? /clear to save ",SQ," tokens"]},void 0,!0,void 0,this),priority:"medium",timeoutMs:2147483647}),Y9.current=G9,l("jarvis_api_error",{action:"hint_shown",variant:G9,idleMinutes:Math.round(lY),messageCount:aJ.current.length,totalInputTokens:bG})},Math.max(0,K6),d9,o0,rJ,X1,WX);return()=>{clearTimeout(P6),R1("idle-return-hint"),WX.current=!1}},[d9,sJ,o0,R1]);let IY0=k1.useCallback((X1,V1)=>{if(hJ.isActive)return!1;if($JJ().some((K6)=>K6.mode==="prompt"||K6.mode==="bash"))return!1;let v1=u7();JZ(v1);let S8=$1({content:X1,isMeta:V1?.isMeta?!0:void 0});return UV([S8],v1,!0,[],$0),!0},[UV,$0,U0]),yY0={stripTrailing:()=>0,handleKeyEvent:()=>{},resetAnchor:()=>{},interimRange:null};$$J({enabled:p6(),isLoading:sJ,focusedInputDialog:DZ,onSubmitMessage:IY0}),sDJ({isLoading:sJ,onSubmitMessage:IY0}),k1.useEffect(()=>{if(Y0.some((X1)=>X1.priority==="now"))P4.current?.abort("interrupt")},[Y0]),k1.useEffect(()=>{return uA0(),()=>{aE.shutdown()}},[]);let{internal_eventEmitter:Bv}=aS(),[wA,bY0]=k1.useState(0);k1.useEffect(()=>{let X1=()=>{process.stdout.write(`
|
|
6955
6955
|
Glock has been suspended. Run \`fg\` to bring Glock back.
|
|
6956
6956
|
Note: ctrl + z now suspends Glock, ctrl + _ undoes input.
|
|
6957
|
-
`)},V1=()=>{bY0((v1)=>v1+1)};return Bv?.on("suspend",X1),Bv?.on("resume",V1),()=>{Bv?.off("suspend",X1),Bv?.off("resume",V1)}},[Bv]);let CJ1=k1.useMemo(()=>{if(!sJ)return null;let X1=YJ.filter((aJ)=>aJ.type==="progress"&&aJ.data.type==="hook_progress"&&(aJ.data.hookEvent==="Stop"||aJ.data.hookEvent==="SubagentStop"));if(X1.length===0)return null;let V1=X1.at(-1)?.toolUseID;if(!V1)return null;if(YJ.some((aJ)=>aJ.type==="system"&&aJ.subtype==="stop_hook_summary"&&aJ.toolUseID===V1))return null;let S8=X1.filter((aJ)=>aJ.toolUseID===V1),K6=S8.length,P6=x8(YJ,(aJ)=>{if(aJ.type!=="attachment")return!1;let G9=aJ.attachment;return"hookEvent"in G9&&(G9.hookEvent==="Stop"||G9.hookEvent==="SubagentStop")&&"toolUseID"in G9&&G9.toolUseID===V1}),Y6=S8.find((aJ)=>aJ.data.statusMessage)?.data.statusMessage;if(Y6)return K6===1?`${Y6}\u2026`:`${Y6}\u2026 ${P6}/${K6}`;let xJ=S8[0]?.data.hookEvent==="SubagentStop"?"subagent stop":"stop";return K6===1?`running ${xJ} hook`:`running stop hooks\u2026 ${P6}/${K6}`},[YJ,sJ]),PY0=k1.useCallback(()=>{H1({messagesLength:YJ.length,streamingToolUsesLength:r4.length})},[YJ.length,r4.length]),t2=k1.useCallback(()=>{H1(null)},[]),$y=yJ()&&!0,d_=k1.useRef(null),[AA,Uv]=k1.useState(!1),[SD,sg]=k1.useState(""),[jy,tg]=k1.useState(0),[eg,xD]=k1.useState(0),v4=k1.useCallback((X1,V1)=>{tg(X1),xD(V1)},[]);SJ((X1,V1,v1)=>{if(V1.ctrl||V1.meta)return;if(X1==="/"){d_.current?.setAnchor(),Uv(!0),v1.stopImmediatePropagation();return}let S8=X1[0];if((S8==="n"||S8==="N")&&X1===S8.repeat(X1.length)&&jy>0){let K6=S8==="n"?d_.current?.nextMatch:d_.current?.prevMatch;if(K6)for(let P6=0;P6<X1.length;P6++)K6();v1.stopImmediatePropagation()}},{isActive:L0==="transcript"&&$y&&!AA&&!c0});let{setQuery:Fv,scanElement:vJ1,setPositions:la}=lOJ(),$U=l8().columns,EY0=gY.useRef($U);gY.useEffect(()=>{if(EY0.current!==$U){if(EY0.current=$U,SD||AA)Uv(!1),sg(""),tg(0),xD(0),d_.current?.disarmSearch(),Fv("")}},[$U,SD,AA,Fv]),SJ((X1,V1,v1)=>{if(V1.ctrl||V1.meta)return;if(X1==="q"){t2(),v1.stopImmediatePropagation();return}if(X1==="["&&!c0)t0(!0),g0(!0),v1.stopImmediatePropagation();else if(X1==="v"){if(v1.stopImmediatePropagation(),p0.current)return;p0.current=!0;let S8=m0.current,K6=(P6)=>{if(S8!==m0.current)return;clearTimeout(R0.current),K0(P6)};K6(`rendering ${_3.length} messages\u2026`),(async()=>{try{let P6=Math.max(80,(process.stdout.columns??80)-6),xJ=(await f11(_3,VJ,P6)).replace(/[ \t]+$/gm,""),aJ=DbQ($bQ(),`cc-transcript-${Date.now()}.txt`);await jbQ(aJ,xJ);let G9=de0(aJ);K6(G9?`opening ${aJ}`:`wrote ${aJ} \xB7 no $VISUAL/$EDITOR set`)}catch(P6){K6(`render failed: ${P6 instanceof Error?P6.message:String(P6)}`)}if(p0.current=!1,S8!==m0.current)return;R0.current=setTimeout((P6)=>P6(""),4000,K0)})()}},{isActive:L0==="transcript"&&$y&&!AA});let Iy=L0==="transcript"&&$y;k1.useEffect(()=>{if(!Iy)sg(""),tg(0),xD(0),Uv(!1),m0.current++,clearTimeout(R0.current),t0(!1),K0("")},[Iy]),k1.useEffect(()=>{if(Fv(Iy?SD:""),!Iy)la(null)},[Iy,SD,Fv,la]);let _v={screen:L0,setScreen:T0,showAllInTranscript:S0,setShowAllInTranscript:g0,messageCount:YJ.length,onEnterTranscript:PY0,onExitTranscript:t2,virtualScrollActive:$y,searchBarOpen:AA},Ov=x0?_3.slice(0,x0.messagesLength):_3,gA0=x0?r4.slice(0,x0.streamingToolUsesLength):r4;if(HDJ({onOpenBackgroundTasks:dY?void 0:()=>ba(!0)}),wDJ(),L0==="transcript"){let X1=yJ()&&!0&&!c0?E4:void 0,V1=t8.jsxDEV(Er,{messages:Ov,tools:VJ,commands:n8,verbose:!0,toolJSX:null,toolUseConfirmQueue:[],inProgressToolUseIDs:IG,isMessageSelectorVisible:!1,conversationId:ZY0,screen:L0,agentDefinitions:n,streamingToolUses:gA0,showAllInTranscript:S0,isLoading:sJ,hidePastThinking:!0,streamingThinking:Y4,scrollRef:X1,jumpRef:d_,onSearchMatchesChange:v4,scanElement:vJ1,setPositions:la,disableRenderCap:c0},void 0,!1,void 0,this),v1=K9&&t8.jsxDEV(f,{flexDirection:"column",width:"100%",children:K9.jsx},void 0,!1,void 0,this),S8=t8.jsxDEV(S2,{children:[t8.jsxDEV(AyJ,{isAnimating:NY,title:rK,disabled:!1,noPrefix:p9},void 0,!1,void 0,this),t8.jsxDEV(ee1,{..._v},void 0,!1,void 0,this),null,t8.jsxDEV(J08,{onSubmit:NA,isActive:!K9?.isLocalJSXCommand},void 0,!1,void 0,this),X1?t8.jsxDEV(S08,{scrollRef:E4,isActive:DZ!=="ultraplan-choice",isModal:!AA,onScroll:()=>d_.current?.disarmSearch()},void 0,!1,void 0,this):null,t8.jsxDEV(Q08,{...NY0},void 0,!1,void 0,this),X1?t8.jsxDEV(Ta1,{scrollRef:E4,scrollable:t8.jsxDEV(t8.Fragment,{children:[V1,v1,t8.jsxDEV(I08,{},void 0,!1,void 0,this)]},void 0,!0,void 0,this),bottom:AA?t8.jsxDEV(fbQ,{jumpRef:d_,initialQuery:"",count:jy,current:eg,onClose:(K6)=>{if(sg(jy>0?K6:""),Uv(!1),!K6)tg(0),xD(0),d_.current?.setSearchQuery("")},onCancel:()=>{Uv(!1),d_.current?.setSearchQuery(""),d_.current?.setSearchQuery(SD),Fv(SD)},setHighlight:Fv},void 0,!1,void 0,this):t8.jsxDEV(NyJ,{showAllInTranscript:S0,virtualScroll:!0,status:K1||void 0,searchBadge:SD&&jy>0?{current:eg,count:jy}:void 0},void 0,!1,void 0,this)},void 0,!1,void 0,this):t8.jsxDEV(t8.Fragment,{children:[V1,v1,t8.jsxDEV(I08,{},void 0,!1,void 0,this),t8.jsxDEV(NyJ,{showAllInTranscript:S0,virtualScroll:!1,suppressShowAll:c0,status:K1||void 0},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this);if(X1)return t8.jsxDEV(f08,{mouseTracking:tM1(),children:S8},void 0,!1,void 0,this);return S8}let kD=O0?Z0[O0]:void 0,Jm=kD&&JK(kD)?kD:void 0,RA=Jm??(kD&&yK(kD)?kD:void 0),TY0=RA?RA.messages??[]:b6||!sJ?YJ:_3,mA0=uX&&!RA&&TY0.length<=gX.current?uX:void 0,Lv=DZ==="tool-permission"?t8.jsxDEV(RNJ,{onDone:()=>mZ(([X1,...V1])=>V1),onReject:VY0,toolUseConfirm:L7[0],toolUseContext:V3(YJ,YJ,y9??u7(),$0),verbose:c,workerBadge:L7[0]?.workerBadge,setStickyFooter:yJ()?mY:void 0},L7[0]?.toolUseID,!1,void 0,this):null,e2=yJ()&&K9?.isLocalJSXCommand===!0,Qm=e2?K9.jsx:null,pA0=t8.jsxDEV(S2,{children:[t8.jsxDEV(AyJ,{isAnimating:NY,title:rK,disabled:!1,noPrefix:p9},void 0,!1,void 0,this),t8.jsxDEV(ee1,{..._v},void 0,!1,void 0,this),null,t8.jsxDEV(J08,{onSubmit:NA,isActive:!K9?.isLocalJSXCommand},void 0,!1,void 0,this),t8.jsxDEV(S08,{scrollRef:E4,isActive:yJ()&&(Qm!=null||!DZ||DZ==="tool-permission"),onScroll:Qm||Lv||RA?void 0:FK},void 0,!1,void 0,this),null,t8.jsxDEV(Q08,{...NY0},void 0,!1,void 0,this),t8.jsxDEV(AYJ,{dynamicMcpConfig:_0,isStrictMcpConfig:U,children:t8.jsxDEV(Ta1,{scrollRef:E4,overlay:Lv,modal:Qm,modalScrollRef:U6,dividerYRef:wY,hidePill:!!RA,hideSticky:!!Jm,newMessageCount:u_?.count??0,onPillClick:()=>{aK(null),oH(E4.current)},scrollable:t8.jsxDEV(t8.Fragment,{children:[t8.jsxDEV(B$J,{},void 0,!1,void 0,this),t8.jsxDEV(Er,{messages:TY0,tools:VJ,commands:n8,verbose:c,toolJSX:K9,toolUseConfirmQueue:L7,inProgressToolUseIDs:Jm?Jm.inProgressToolUseIDs??new Set:IG,isMessageSelectorVisible:vD,conversationId:ZY0,screen:L0,streamingToolUses:r4,showAllInTranscript:S0,agentDefinitions:n,isLoading:sJ,streamingText:sJ&&!RA?W7:null,isBriefOnly:RA?!1:u0,unseenDivider:RA?void 0:u_,scrollRef:yJ()?E4:void 0,trackStickyPrompt:yJ()?!0:void 0,cursor:UK,setCursor:aK,cursorNavRef:jG},void 0,!1,void 0,this),t8.jsxDEV(bIJ,{},void 0,!1,void 0,this),!N&&mA0&&!Qm&&t8.jsxDEV(gi,{param:{text:mA0,type:"text"},addMargin:!0,verbose:c},void 0,!1,void 0,this),K9&&!(K9.isLocalJSXCommand&&K9.isImmediate)&&!e2&&t8.jsxDEV(f,{flexDirection:"column",width:"100%",children:K9.jsx},void 0,!1,void 0,this),!1,null,t8.jsxDEV(f,{flexGrow:1},void 0,!1,void 0,this),cg&&t8.jsxDEV(vr6,{mode:hZ,spinnerTip:G0,responseLengthRef:pX,apiMetricsRef:WV,overrideMessage:L3,spinnerSuffix:CJ1,verbose:c,loadingStartTimeRef:zX,totalPausedMsRef:f9,pauseStartTimeRef:oQ,overrideColor:jW,overrideShimmerColor:m_,hasActiveTools:IG.size>0,leaderIsIdle:!sJ},void 0,!1,void 0,this),!cg&&!sJ&&!uX&&!Gv&&u0&&!RA&&t8.jsxDEV(fr6,{},void 0,!1,void 0,this),yJ()&&t8.jsxDEV(_61,{},void 0,!1,void 0,this)]},void 0,!0,void 0,this),bottom:t8.jsxDEV(f,{flexDirection:"row",width:"100%",alignItems:"flex-end",children:t8.jsxDEV(f,{flexDirection:"column",flexGrow:1,children:[T4,K9?.isLocalJSXCommand&&K9.isImmediate&&!e2&&t8.jsxDEV(f,{flexDirection:"column",width:"100%",children:K9.jsx},void 0,!1,void 0,this),!cg&&!K9?.isLocalJSXCommand&&j0&&HJ&&HJ.length>0&&t8.jsxDEV(f,{width:"100%",flexDirection:"column",children:t8.jsxDEV(Ho0,{tasks:HJ,isStandalone:!0},void 0,!1,void 0,this)},void 0,!1,void 0,this),DZ==="sandbox-permission"&&t8.jsxDEV(j08,{hostPattern:MZ[0].hostPattern,onUserResponse:(X1)=>{let{allow:V1,persistToSettings:v1}=X1,S8=MZ[0];if(!S8)return;let K6=S8.hostPattern.host;if(v1){let P6={type:"addRules",rules:[{toolName:aG,ruleContent:`domain:${K6}`}],behavior:V1?"allow":"deny",destination:"localSettings"};D0((Y6)=>({...Y6,toolPermissionContext:iZ(Y6.toolPermissionContext,P6)})),zj(P6),p8.refreshConfig()}O5((P6)=>{return P6.filter((Y6)=>Y6.hostPattern.host===K6).forEach((Y6)=>Y6.resolvePromise(V1)),P6.filter((Y6)=>Y6.hostPattern.host!==K6)})}},MZ[0].hostPattern.host,!1,void 0,this),DZ==="prompt"&&t8.jsxDEV(vNJ,{title:ZZ[0].title,toolInputSummary:ZZ[0].toolInputSummary,request:ZZ[0].request,onRespond:(X1)=>{let V1=ZZ[0];if(!V1)return;V1.resolve({prompt_response:V1.request.prompt,selected:X1}),pY(([,...v1])=>v1)},onAbort:()=>{let X1=ZZ[0];if(!X1)return;X1.reject(Error("Prompt cancelled by user")),pY(([,...V1])=>V1)}},ZZ[0].request.prompt,!1,void 0,this),W0&&t8.jsxDEV(es1,{toolName:W0.toolName,description:W0.description},void 0,!1,void 0,this),y0&&t8.jsxDEV(es1,{toolName:"Network Access",description:`Waiting for leader to approve network access to ${y0.host}`},void 0,!1,void 0,this),DZ==="worker-sandbox-permission"&&t8.jsxDEV(j08,{hostPattern:{host:t.queue[0].host,port:void 0},onUserResponse:(X1)=>{let{allow:V1,persistToSettings:v1}=X1,S8=t.queue[0];if(!S8)return;let K6=S8.host;if(jD6(S8.workerName,S8.requestId,K6,V1,V0?.teamName),v1&&V1){let P6={type:"addRules",rules:[{toolName:aG,ruleContent:`domain:${K6}`}],behavior:"allow",destination:"localSettings"};D0((Y6)=>({...Y6,toolPermissionContext:iZ(Y6.toolPermissionContext,P6)})),zj(P6),p8.refreshConfig()}D0((P6)=>({...P6,workerSandboxPermissions:{...P6.workerSandboxPermissions,queue:P6.workerSandboxPermissions.queue.slice(1)}}))}},t.queue[0].requestId,!1,void 0,this),DZ==="elicitation"&&t8.jsxDEV(ENJ,{event:q0.queue[0],onResponse:(X1,V1)=>{let v1=q0.queue[0];if(!v1)return;if(v1.respond({action:X1,content:V1}),!(v1.params.mode==="url"&&X1==="accept"))D0((K6)=>({...K6,elicitation:{queue:K6.elicitation.queue.slice(1)}}))},onWaitingDismiss:(X1)=>{let V1=q0.queue[0];D0((v1)=>({...v1,elicitation:{queue:v1.elicitation.queue.slice(1)}})),V1?.onWaitingDismiss?.(X1)}},q0.queue[0].serverName+":"+String(q0.queue[0].requestId),!1,void 0,this),DZ==="cost"&&t8.jsxDEV(rOJ,{onDone:()=>{XY0(!1),KY0(!0),q8((X1)=>({...X1,hasAcknowledgedCostThreshold:!0})),l("jarvis_api_error",{})}},void 0,!1,void 0,this),DZ==="idle-return"&&hg&&t8.jsxDEV(sOJ,{idleMinutes:hg.idleMinutes,totalInputTokens:PV(),onDone:async(X1)=>{let V1=hg;if(YY0(null),l("jarvis_api_error",{action:X1,idleMinutes:Math.round(V1.idleMinutes),messageCount:rJ.current.length,totalInputTokens:PV()}),X1==="dismiss"){GJ(V1.input);return}if(X1==="never")q8((v1)=>{if(v1.idleReturnDismissed)return v1;return{...v1,idleReturnDismissed:!0}});if(X1==="clear"){let{clearConversation:v1}=await Promise.resolve().then(() => (Qe0(),bi1));await v1({setMessages:w6,readFileState:BV.current,discoveredSkillNames:Ca.current,loadedNestedMemoryPaths:va.current,getAppState:()=>U0.getState(),setAppState:D0,setConversationId:HV}),C4.current=!1,VY(void 0),Wv.current.clear(),Ay.current=0}Yv.current=!0,onSubmitRef.current(V1.input,{setCursorOffset:()=>{},clearBuffer:()=>{},resetHistory:()=>{}})}},void 0,!1,void 0,this),DZ==="ide-onboarding"&&t8.jsxDEV(wf1,{onDone:()=>N0(!1),installationStatus:cJ},void 0,!1,void 0,this),!1,!1,DZ==="effort-callout"&&t8.jsxDEV(h$J,{model:$0,onDone:(X1)=>{if(n0(!1),X1!=="dismiss")D0((V1)=>({...V1,effortValue:X1}))}},void 0,!1,void 0,this),vA0,DZ==="plugin-hint"&&a8&&t8.jsxDEV(FIJ,{pluginName:a8.pluginName,pluginDescription:a8.pluginDescription,marketplaceName:a8.marketplaceName,sourceCommand:a8.sourceCommand,onResponse:X6},void 0,!1,void 0,this),DZ==="lsp-recommendation"&&u1&&t8.jsxDEV(zIJ,{pluginName:u1.pluginName,pluginDescription:u1.pluginDescription,fileExtension:u1.fileExtension,onResponse:e1},void 0,!1,void 0,this),DZ==="desktop-upsell"&&t8.jsxDEV(RjJ,{onDone:()=>F1(!1)},void 0,!1,void 0,this),null,null,Ta(),!K9?.shouldHidePromptInput&&!DZ&&!LY0&&!N&&!UK&&t8.jsxDEV(t8.Fragment,{children:[p_&&t8.jsxDEV(oIJ,{onRun:SA0,onCancel:ga,reason:eIJ(p_)},void 0,!1,void 0,this),wy.state!=="closed"?t8.jsxDEV(HA0,{state:wy.state,lastResponse:wy.lastResponse,handleSelect:wy.handleSelect,inputValue:h1,setInputValue:GJ,onRequestFeedback:ma},void 0,!1,void 0,this):VA.state!=="closed"?t8.jsxDEV(HA0,{state:VA.state,lastResponse:VA.lastResponse,handleSelect:VA.handleSelect,handleTranscriptSelect:VA.handleTranscriptSelect,inputValue:h1,setInputValue:GJ,onRequestFeedback:ma,message:"How well did Glock use its memory? (optional)"},void 0,!1,void 0,this):t8.jsxDEV(HA0,{state:fD.state,lastResponse:fD.lastResponse,handleSelect:fD.handleSelect,handleTranscriptSelect:fD.handleTranscriptSelect,inputValue:h1,setInputValue:GJ,onRequestFeedback:rg.current?void 0:ma},void 0,!1,void 0,this),ig.state!=="closed"&&t8.jsxDEV(HA0,{state:ig.state,lastResponse:null,handleSelect:()=>{},handleTranscriptSelect:ig.handleTranscriptSelect,inputValue:h1,setInputValue:GJ},void 0,!1,void 0,this),!1,FY0&&t8.jsxDEV(QyJ,{},void 0,!1,void 0,this),t8.jsxDEV(VMJ,{debug:Q,ideSelection:w8,hasSuppressedDialogs:!!fA0,isLocalJSXCommandActive:dY,getToolUseContext:V3,toolPermissionContext:p,setToolPermissionContext:Dy,apiKeyStatus:CA0,commands:n8,agents:n.activeAgents,isLoading:sJ,onExit:TJ1,verbose:c,messages:YJ,onAutoUpdaterResult:gZ,autoUpdaterResult:AX,input:h1,onInputChange:GJ,mode:fQ,onModeChange:K4,stashedPrompt:mX,setStashedPrompt:c5,submitCount:O3,onShowMessageSelector:pa,onMessageActionsEnter:void 0,mcpClients:a1,pastedContents:P9,setPastedContents:f8,vimMode:GY0,setVimMode:PJ1,showBashesDialog:gg,setShowBashesDialog:ba,onSubmit:NA,onAgentSubmit:og,isSearchingHistory:zY0,setIsSearchingHistory:WY0,helpOpen:HY0,setHelpOpen:PA0,insertTextRef:void 0,voiceInterimRange:yY0.interimRange},void 0,!1,void 0,this),t8.jsxDEV(f$J,{onBackgroundSession:EJ1,isLoading:sJ},void 0,!1,void 0,this)]},void 0,!0,void 0,this),UK&&t8.jsxDEV(aN6,{cursor:UK},void 0,!1,void 0,this),DZ==="message-selector"&&t8.jsxDEV(Xt1,{messages:YJ,preselectedMessage:kg,onPreRestore:ag,onRestoreCode:async(X1)=>{await Hm0((V1)=>{D0((v1)=>({...v1,fileHistory:V1(v1.fileHistory)}))},X1.uuid)},onSummarize:async(X1,V1,v1="from")=>{let S8=LG(YJ),K6=S8.indexOf(X1);if(K6===-1){w6((Cq)=>[...Cq,Yz("That message is no longer in the active context (snipped or pre-compact). Choose a more recent message.","warning")]);return}let P6=u7(),Y6=V3(S8,[],P6,$0),xJ=Y6.getAppState(),aJ=await wH(Y6.options.tools,Y6.options.mainLoopModel,Array.from(xJ.toolPermissionContext.additionalWorkingDirectories.keys()),Y6.options.mcpClients),G9=_w({mainThreadAgentDefinition:void 0,toolUseContext:Y6,customSystemPrompt:Y6.options.customSystemPrompt,defaultSystemPrompt:aJ,appendSystemPrompt:Y6.options.appendSystemPrompt}),[Y9,bG]=await Promise.all([G5(),Nq()]),SQ=await Ul6(S8,K6,Y6,{systemPrompt:G9,userContext:Y9,systemContext:bG,toolUseContext:Y6,forkContextMessages:S8},V1,v1),lY=SQ.messagesToKeep??[],jU=v1==="up_to"?[...SQ.summaryMessages,...lY]:[...lY,...SQ.summaryMessages],G4=[SQ.boundaryMarker,...jU,...SQ.attachments,...SQ.hookResults];if(yJ()&&v1==="from")w6((Cq)=>{let FV=Cq.findIndex((PG)=>PG.uuid===X1.uuid);return[...Cq.slice(0,FV===-1?0:FV),...G4]});else w6(G4);if(HV(AA0()),eM(Y6.options.querySource),v1==="from"){let Cq=xl1(X1);if(Cq)GJ(Cq.text),K4(Cq.mode)}let f4=PK("app:toggleTranscript","Global","ctrl+o");o0({key:"summarize-ctrl-o-hint",text:`Conversation summarized (${f4} for history)`,priority:"medium",timeoutMs:8000})},onRestoreMessage:MY0,onClose:()=>{Xv(!1),ya(void 0)}},void 0,!1,void 0,this),!1]},void 0,!0,void 0,this)},void 0,!1,void 0,this)},void 0,!1,void 0,this)},wA,!1,void 0,this)]},void 0,!0,void 0,this);if(yJ())return t8.jsxDEV(f08,{mouseTracking:tM1(),children:pA0},void 0,!1,void 0,this);return pA0}var x08,gY,k1,t8,IbQ=()=>({state:"closed",handleTranscriptSelect:()=>{}}),ybQ=()=>{},bbQ=()=>({}),LyJ=null,PbQ=(J)=>()=>{},EbQ=()=>!1,TbQ=(J,Q)=>!1,VyJ,CbQ,vbQ=3000,RyJ,wyJ="\u2733",SbQ=960;var DyJ=I(()=>{N1();ha0();r6();a0();Tu();U9();iOJ();qs1();oI();a0();aOJ();tOJ();UY();G81();KLJ();sP();aP();I2();N1();A2();Z1();GLJ();t1();A6();dq0();e3();P90();v90();FZ();ULJ();CM();cz();_LJ();VLJ();PY();H81();$LJ();DNJ();TNJ();fNJ();NMJ();ue1();jMJ();bMJ();EMJ();CMJ();xMJ();mMJ();zz();Lw();B90();UL();ez();te1();JI();oMJ();is1();eMJ();QDJ();uw();Qe1();ZDJ();qDJ();GDJ();Gu();nz();ij();WDJ();BDJ();VDJ();ADJ();T1();M1();CDJ();lq();Dt1();JW();vX();Aa0();z_();m8();Ce0();D1();M8();xN0();zZ();E5();lDJ();oDJ();tDJ();Cn();$l();Q$J();Vu0();vo1();O11();Z$J();G$J();W$J();gN0();Wp1();U$J();Uo0();Do0();ih();N4();_$J();PH();Kh();Dl1();rZ0();W6();$K();gJ();Gs0();LL0();Fw();sO0();CB();LT();pF();MI();gJ();F08();mr();ln();j$J();lZ();y$J();b5();T$J();Ys1();Xs1();__();rq();M40();S$J();ng0();k$J();Wi();jl();Af1();g$J();zp1();nq();Nr();l$J();n$J();o$J();JjJ();XjJ();qjJ();WjJ();jjJ();PjJ();V4();TjJ();vjJ();SjJ();ujJ();cjJ();ljJ();Fe1();rjJ();GIJ();WIJ();UIJ();_IJ();M08();NIJ();RIJ();IIJ();ol0();PIJ();CIJ();fIJ();kIJ();pIJ();rIJ();JyJ();ZyJ();YyJ();PY();Ca1();fz();GyJ();OyJ();nF();g3();Z3();x08=T(e0(),1),gY=T(J1(),1),k1=T(J1(),1),t8=T(e(),1),VyJ=[],CbQ={maybeLoadOlder:(J)=>{}};RyJ=["\u2802","\u2810"]});async function $yJ(J,Q,X,Z){let{App:Y}=await Promise.resolve().then(() => (dOJ(),cOJ)),{REPL:q}=await Promise.resolve().then(() => (DyJ(),MyJ));await Z(J,k08.jsxDEV(Y,{...Q,children:k08.jsxDEV(q,{...X},void 0,!1,void 0,this)},void 0,!1,void 0,this))}var k08;var jyJ=I(()=>{k08=T(e(),1)});function mbQ(J){let Q=`${J.name}: ${J.message}`;return gbQ.some((X)=>X.test(Q))}function IyJ(){let J=process.listeners("warning");if(FJ1&&J.includes(FJ1))return;if(!1)process.removeAllListeners("warning");FJ1=(X)=>{try{let Z=`${X.name}: ${X.message.slice(0,50)}`,Y=UJ1.get(Z)||0;if(UJ1.has(Z)||UJ1.size<ubQ)UJ1.set(Z,Y+1);let q=mbQ(X);if(l("jarvis_api_error",{is_internal:q?1:0,occurrence_count:Y+1,classname:X.name,...process.env.USER_TYPE==="ant"&&{message:X.message}}),W1(process.env.GLOCK_DEBUG))b(`${q?"[Internal Warning]":"[Warning]"} ${X.toString()}`,{level:"warn"})}catch{}},process.on("warning",FJ1)}var ubQ=1000,UJ1,gbQ,FJ1=null;var yyJ=I(()=>{D1();Z1();t1();k9();UJ1=new Map,gbQ=[/MaxListenersExceededWarning.*AbortSignal/,/MaxListenersExceededWarning.*EventTarget/]});function byJ(J){return Fb(pbQ,{})?.[J]===!0}var pbQ="jarvis_api_error";var PyJ=()=>{};function cbQ(){if(byJ("datadog"))return!1;if(h08!==void 0)return h08;try{return GZ(EyJ)}catch{return!1}}function TyJ(J,Q){let X=em1(J);if(X===0)return;let Z=X!==null?{...Q,sample_rate:X}:Q;if(cbQ())Xr6(J,xQ8(Z));Qp1(J,Z)}function dbQ(J,Q){return TyJ(J,Q),Promise.resolve()}function CyJ(){h08=GZ(EyJ)}function vyJ(){kQ8({logEvent:TyJ,logEventAsync:dbQ})}var EyJ="jarvis_api_error",h08=void 0;var u08=I(()=>{tm1();zo0();D1();PyJ()});function _J1(){let J=fyJ.c(1),Q;if(J[0]===Symbol.for("react.memo_cache_sentinel"))Q=g08.jsxDEV(M,{children:["MCP servers may execute code or access system resources. All tool calls require approval. Learn more in the"," ",g08.jsxDEV(zJ,{url:"https://docs.getglock.dev/en/mcp",children:"MCP documentation"},void 0,!1,void 0,this),"."]},void 0,!0,void 0,this),J[0]=Q;else Q=J[0];return Q}var fyJ,g08;var m08=I(()=>{a0();fyJ=T(e0(),1),g08=T(e(),1)});function xyJ(J){let Q=SyJ.c(13),{serverName:X,onDone:Z}=J,Y;if(Q[0]!==Z||Q[1]!==X)Y=function(F){l("jarvis_api_error",{choice:F});J:switch(F){case"yes":case"yes_all":{let O=(q6()||{}).enabledMcpjsonServers||[];if(!O.includes(X))y6("localSettings",{enabledMcpjsonServers:[...O,X]});if(F==="yes_all")y6("localSettings",{enableAllProjectMcpServers:!0});Z();break J}case"no":{let O=(q6()||{}).disabledMcpjsonServers||[];if(!O.includes(X))y6("localSettings",{disabledMcpjsonServers:[...O,X]});Z()}}},Q[0]=Z,Q[1]=X,Q[2]=Y;else Y=Q[2];let q=Y,K=`New MCP server found in .mcp.json: ${X}`,G;if(Q[3]!==q)G=()=>q("no"),Q[3]=q,Q[4]=G;else G=Q[4];let z;if(Q[5]===Symbol.for("react.memo_cache_sentinel"))z=OJ1.jsxDEV(_J1,{},void 0,!1,void 0,this),Q[5]=z;else z=Q[5];let W;if(Q[6]===Symbol.for("react.memo_cache_sentinel"))W=[{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"}],Q[6]=W;else W=Q[6];let H;if(Q[7]!==q)H=OJ1.jsxDEV(Q8,{options:W,onChange:(U)=>q(U),onCancel:()=>q("no")},void 0,!1,void 0,this),Q[7]=q,Q[8]=H;else H=Q[8];let B;if(Q[9]!==K||Q[10]!==G||Q[11]!==H)B=OJ1.jsxDEV(D8,{title:K,color:"warning",onCancel:G,children:[z,H]},void 0,!0,void 0,this),Q[9]=K,Q[10]=G,Q[11]=H,Q[12]=B;else B=Q[12];return B}var SyJ,OJ1;var kyJ=I(()=>{D1();g8();tX();M9();m08();SyJ=T(e0(),1),OJ1=T(e(),1)});function uyJ(J){let Q=hyJ.c(21),{serverNames:X,onDone:Z}=J,Y;if(Q[0]!==Z||Q[1]!==X)Y=function(L){let N=q6()||{},A=N.enabledMcpjsonServers||[],R=N.disabledMcpjsonServers||[],[D,$]=_11(X,(y)=>L.includes(y));if(l("jarvis_api_error",{approved:D.length,rejected:$.length}),D.length>0){let y=[...new Set([...A,...D])];y6("localSettings",{enabledMcpjsonServers:y})}if($.length>0){let y=[...new Set([...R,...$])];y6("localSettings",{disabledMcpjsonServers:y})}Z()},Q[0]=Z,Q[1]=X,Q[2]=Y;else Y=Q[2];let q=Y,K;if(Q[3]!==Z||Q[4]!==X)K=()=>{let L=(q6()||{}).disabledMcpjsonServers||[],N=[...new Set([...L,...X])];y6("localSettings",{disabledMcpjsonServers:N}),Z()},Q[3]=Z,Q[4]=X,Q[5]=K;else K=Q[5];let G=K,z=`${X.length} new MCP servers found in .mcp.json`,W;if(Q[6]===Symbol.for("react.memo_cache_sentinel"))W=zV.jsxDEV(_J1,{},void 0,!1,void 0,this),Q[6]=W;else W=Q[6];let H;if(Q[7]!==X)H=X.map(lbQ),Q[7]=X,Q[8]=H;else H=Q[8];let B;if(Q[9]!==G||Q[10]!==q||Q[11]!==X||Q[12]!==H)B=zV.jsxDEV(ao0,{options:H,defaultValue:X,onSubmit:q,onCancel:G,hideIndexes:!0},void 0,!1,void 0,this),Q[9]=G,Q[10]=q,Q[11]=X,Q[12]=H,Q[13]=B;else B=Q[13];let U;if(Q[14]!==G||Q[15]!==z||Q[16]!==B)U=zV.jsxDEV(D8,{title:z,subtitle:"Select any you wish to enable.",color:"warning",onCancel:G,hideInputGuide:!0,children:[W,B]},void 0,!0,void 0,this),Q[14]=G,Q[15]=z,Q[16]=B,Q[17]=U;else U=Q[17];let F;if(Q[18]===Symbol.for("react.memo_cache_sentinel"))F=zV.jsxDEV(f,{paddingX:1,children:zV.jsxDEV(M,{dimColor:!0,italic:!0,children:zV.jsxDEV(V8,{children:[zV.jsxDEV(p1,{shortcut:"Space",action:"select"},void 0,!1,void 0,this),zV.jsxDEV(p1,{shortcut:"Enter",action:"confirm"},void 0,!1,void 0,this),zV.jsxDEV(s1,{action:"confirm:no",context:"Confirmation",fallback:"Esc",description:"reject all"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this)},void 0,!1,void 0,this),Q[18]=F;else F=Q[18];let _;if(Q[19]!==U)_=zV.jsxDEV(zV.Fragment,{children:[U,F]},void 0,!0,void 0,this),Q[19]=U,Q[20]=_;else _=Q[20];return _}function lbQ(J){return{label:J,value:J}}var hyJ,zV;var gyJ=I(()=>{Co1();D1();a0();g8();U7();np1();R9();M9();g9();m08();hyJ=T(e0(),1),zV=T(e(),1)});async function myJ(J){let{servers:Q}=rz("project"),X=Object.keys(Q).filter((Z)=>Ic0(Z)==="pending");if(X.length===0)return;await new Promise((Z)=>{let Y=()=>void Z();if(X.length===1&&X[0]!==void 0){let q=X[0];J.render(Da.jsxDEV(b2,{children:Da.jsxDEV(S2,{children:Da.jsxDEV(xyJ,{serverName:q,onDone:Y},void 0,!1,void 0,this)},void 0,!1,void 0,this)},void 0,!1,void 0,this))}else J.render(Da.jsxDEV(b2,{children:Da.jsxDEV(S2,{children:Da.jsxDEV(uyJ,{serverNames:X,onDone:Y},void 0,!1,void 0,this)},void 0,!1,void 0,this)},void 0,!1,void 0,this))})}var Da;var pyJ=I(()=>{kyJ();gyJ();Gu();W6();HL();az();Da=T(e(),1)});var cyJ=I(()=>{m8();Z1()});class p08{frameDurations=[];firstRenderTime;lastRenderTime;record(J){let Q=performance.now();if(this.firstRenderTime===void 0)this.firstRenderTime=Q;this.lastRenderTime=Q,this.frameDurations.push(J)}getMetrics(){if(this.frameDurations.length===0||this.firstRenderTime===void 0||this.lastRenderTime===void 0)return;let J=this.lastRenderTime-this.firstRenderTime;if(J<=0)return;let X=this.frameDurations.length/(J/1000),Z=this.frameDurations.slice().sort((G,z)=>z-G),Y=Math.max(0,Math.ceil(Z.length*0.01)-1),q=Z[Y],K=q>0?1000/q:0;return{averageFps:Math.round(X*100)/100,low1PctFps:Math.round(K*100)/100}}}import{realpath as ibQ}from"fs/promises";async function dyJ(){try{let J=await f_0();if(!J){b("Not in a GitHub repository, skipping path mapping update");return}let Q=j8(),Z=IZ(Q)??Q,Y;try{Y=(await ibQ(Z)).normalize("NFC")}catch{Y=Z}let q=J.toLowerCase(),G=L1().githubRepoPaths?.[q]??[];if(G[0]===Y){b(`Path ${Y} already tracked for repo ${q}`);return}let z=G.filter((H)=>H!==Y),W=[Y,...z];q8((H)=>({...H,githubRepoPaths:{...H.githubRepoPaths,[q]:W}})),b(`Added ${Y} to tracked paths for repo ${q}`)}catch(J){b(`Error updating repo path mapping: ${J}`)}}var lyJ=I(()=>{N1();m8();Z1();DT();V9();Rf();uQ()});function iyJ(J,Q){let[X,Z]=LJ1.useState(!1);return LJ1.useEffect(()=>{Z(!1);let Y=setTimeout(Z,J,!0);return()=>clearTimeout(Y)},[J,Q]),X}var LJ1;var nyJ=I(()=>{LJ1=T(J1(),1)});async function nbQ(){try{let J=qJ(),Q=new URL(J.TOKEN_URL),X=process.env.GLOCK_GATEWAY_URL,Z=X?[`${X}/api/hello`]:[`${J.BASE_API_URL}/api/hello`,`${Q.origin}/v1/oauth/hello`],Y=async(G)=>{try{let z=await y8.get(G,{headers:{"User-Agent":ck()}});if(z.status!==200)return{success:!1,error:`Failed to connect to ${new URL(G).hostname}: Status ${z.status}`};return{success:!0}}catch(z){let W=new URL(G).hostname,H=v26(z);return{success:!1,error:`Failed to connect to ${W}: ${z instanceof Error?z.code||z.message:String(z)}`,sslHint:H??void 0}}},K=(await Promise.all(Z.map(Y))).find((G)=>!G.success);if(K)l("jarvis_api_error",{isConnectivityError:!1,hasErrorMessage:!!K.error,isSSLError:!!K.sslHint});return K||{success:!0}}catch(J){return H0(J),l("jarvis_api_error",{isConnectivityError:!0}),{success:!1,error:`Connectivity check error: ${J instanceof Error?J.code||J.message:String(J)}`}}}function ayJ(J){let Q=ryJ.c(12),{onSuccess:X}=J,[Z,Y]=o40.useState(null),[q,K]=o40.useState(!0),G=iyJ(1000)&&q,z,W;if(Q[0]===Symbol.for("react.memo_cache_sentinel"))z=()=>{(async function(){let L=await nbQ();Y(L),K(!1)})()},W=[],Q[0]=z,Q[1]=W;else z=Q[0],W=Q[1];o40.useEffect(z,W);let H,B;if(Q[2]!==X||Q[3]!==Z)H=()=>{if(Z?.success)X();else if(Z&&!Z.success){let _=setTimeout(rbQ,100);return()=>clearTimeout(_)}},B=[Z,X],Q[2]=X,Q[3]=Z,Q[4]=H,Q[5]=B;else H=Q[4],B=Q[5];o40.useEffect(H,B);let U;if(Q[6]!==q||Q[7]!==Z||Q[8]!==G)U=q&&G?r2.jsxDEV(f,{paddingLeft:1,children:[r2.jsxDEV(M7,{},void 0,!1,void 0,this),r2.jsxDEV(M,{children:"Checking connectivity..."},void 0,!1,void 0,this)]},void 0,!0,void 0,this):!Z?.success&&!q&&r2.jsxDEV(f,{flexDirection:"column",gap:1,children:[r2.jsxDEV(M,{color:"error",children:"Unable to connect to Glock services"},void 0,!1,void 0,this),r2.jsxDEV(M,{color:"error",children:Z?.error},void 0,!1,void 0,this),Z?.sslHint?r2.jsxDEV(f,{flexDirection:"column",gap:1,children:[r2.jsxDEV(M,{children:Z.sslHint},void 0,!1,void 0,this),r2.jsxDEV(M,{color:"suggestion",children:"See https://docs.getglock.dev/en/network-config"},void 0,!1,void 0,this)]},void 0,!0,void 0,this):r2.jsxDEV(f,{flexDirection:"column",gap:1,children:[r2.jsxDEV(M,{children:"Please check your internet connection and network settings."},void 0,!1,void 0,this),r2.jsxDEV(M,{children:["Note: Glock might not be available in your country. Check supported countries at"," ",r2.jsxDEV(M,{color:"suggestion",children:"https://getglock.dev/supported-countries"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),Q[6]=q,Q[7]=Z,Q[8]=G,Q[9]=U;else U=Q[9];let F;if(Q[10]!==U)F=r2.jsxDEV(f,{flexDirection:"column",gap:1,paddingLeft:1,children:U},void 0,!1,void 0,this),Q[10]=U,Q[11]=F;else F=Q[11];return F}function rbQ(){return process.exit(1)}var ryJ,o40,r2;var oyJ=I(()=>{JX();D1();zz();$Z();nyJ();a0();Ll();lk();M1();ryJ=T(e0(),1),o40=T(J1(),1),r2=T(e(),1)});var tyJ={};X8(tyJ,{ApproveApiKey:()=>c08});function c08(J){let Q=syJ.c(17),{customApiKeyTruncated:X,onDone:Z}=J,Y;if(Q[0]!==X||Q[1]!==Z)Y=function(O){J:switch(O){case"yes":{q8((L)=>({...L,customApiKeyResponses:{...L.customApiKeyResponses,approved:[...L.customApiKeyResponses?.approved??[],X]}})),Z(!0);break J}case"no":q8((L)=>({...L,customApiKeyResponses:{...L.customApiKeyResponses,rejected:[...L.customApiKeyResponses?.rejected??[],X]}})),Z(!1)}},Q[0]=X,Q[1]=Z,Q[2]=Y;else Y=Q[2];let q=Y,K;if(Q[3]!==q)K=()=>q("no"),Q[3]=q,Q[4]=K;else K=Q[4];let G;if(Q[5]===Symbol.for("react.memo_cache_sentinel"))G=Jv.jsxDEV(M,{bold:!0,children:"GLOCK_API_KEY"},void 0,!1,void 0,this),Q[5]=G;else G=Q[5];let z;if(Q[6]!==X)z=Jv.jsxDEV(M,{children:[G,Jv.jsxDEV(M,{children:[": sk-ant-...",X]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),Q[6]=X,Q[7]=z;else z=Q[7];let W;if(Q[8]===Symbol.for("react.memo_cache_sentinel"))W=Jv.jsxDEV(M,{children:"Do you want to use this API key?"},void 0,!1,void 0,this),Q[8]=W;else W=Q[8];let H;if(Q[9]===Symbol.for("react.memo_cache_sentinel"))H={label:"Yes",value:"yes"},Q[9]=H;else H=Q[9];let B;if(Q[10]===Symbol.for("react.memo_cache_sentinel"))B=[H,{label:Jv.jsxDEV(M,{children:["No (",Jv.jsxDEV(M,{bold:!0,children:"recommended"},void 0,!1,void 0,this),")"]},void 0,!0,void 0,this),value:"no"}],Q[10]=B;else B=Q[10];let U;if(Q[11]!==q)U=Jv.jsxDEV(Q8,{defaultValue:"no",defaultFocusValue:"no",options:B,onChange:(_)=>q(_),onCancel:()=>q("no")},void 0,!1,void 0,this),Q[11]=q,Q[12]=U;else U=Q[12];let F;if(Q[13]!==K||Q[14]!==z||Q[15]!==U)F=Jv.jsxDEV(D8,{title:"Detected a custom API key in your environment",color:"warning",onCancel:K,children:[z,W,U]},void 0,!0,void 0,this),Q[13]=K,Q[14]=z,Q[15]=U,Q[16]=F;else F=Q[16];return F}var syJ,Jv;var d08=I(()=>{a0();m8();tX();M9();syJ=T(e0(),1),Jv=T(e(),1)});var l08="#5f97cd";var eyJ=()=>{};function JbJ(){return VJ1.jsxDEV(f,{flexDirection:"column",alignItems:"center",children:[VJ1.jsxDEV(M,{bold:!0,color:l08,children:" \u25B3 "},void 0,!1,void 0,this),VJ1.jsxDEV(M,{bold:!0,color:l08,children:"\u22A2\u25CE\u22A3 glock"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}var VJ1;var QbJ=I(()=>{a0();eyJ();VJ1=T(e(),1)});function ZbJ(){return s40.jsxDEV(f,{flexDirection:"column",alignItems:"center",width:XbJ,children:[s40.jsxDEV(k01,{width:XbJ,height:13},void 0,!1,void 0,this),s40.jsxDEV(JbJ,{},void 0,!1,void 0,this),s40.jsxDEV(f,{marginTop:0,children:s40.jsxDEV(M,{dimColor:!0,children:["v","0.1.16"]},void 0,!0,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}var s40,XbJ=58;var YbJ=I(()=>{a0();Ma1();QbJ();s40=T(e(),1)});var GbJ={};X8(GbJ,{SkippableStep:()=>KbJ,Onboarding:()=>abQ});function abQ({onDone:J}){let[Q,X]=yD.useState(0),[Z,Y]=yD.useState(!1),[q]=yD.useState(()=>EP()),[K,G]=j6();yD.useEffect(()=>{l("jarvis_api_error",{oauthEnabled:q})},[q]);function z(){if(Q<O.length-1){let A=Q+1;X(A),l("jarvis_api_error",{oauthEnabled:q,stepId:O[A]?.id})}else J()}function W(A){G(A),z()}let H=B7(),B=Eq.jsxDEV(f,{marginX:1,children:Eq.jsxDEV(QZ0,{onThemeSelect:W,showIntroText:!0,helpText:"To change this later, run /theme",hideEscToCancel:!0,skipExitHandling:!0},void 0,!1,void 0,this)},void 0,!1,void 0,this),U=Eq.jsxDEV(ayJ,{onSuccess:z},void 0,!1,void 0,this),F=yD.useMemo(()=>{if(!process.env.GLOCK_API_KEY||Y$())return"";let A=ON(process.env.GLOCK_API_KEY);if(fv0(A)==="new")return A},[]);function _(A){if(A)Y(!0);z()}let O=[];if(q)O.push({id:"preflight",component:U});if(O.push({id:"theme",component:B}),F)O.push({id:"api-key",component:Eq.jsxDEV(c08,{customApiKeyTruncated:F,onDone:_},void 0,!1,void 0,this)});if(q)O.push({id:"oauth",component:Eq.jsxDEV(KbJ,{skip:Z,onSkip:z,children:Eq.jsxDEV(KX0,{onDone:z},void 0,!1,void 0,this)},void 0,!1,void 0,this)});if(dQ0())O.push({id:"terminal-setup",component:Eq.jsxDEV(f,{flexDirection:"column",gap:1,paddingLeft:1,children:[Eq.jsxDEV(M,{bold:!0,children:"Use Glock's terminal setup?"},void 0,!1,void 0,this),Eq.jsxDEV(f,{flexDirection:"column",width:70,gap:1,children:[Eq.jsxDEV(M,{children:["For the optimal coding experience, enable the recommended settings",Eq.jsxDEV(eP,{},void 0,!1,void 0,this),"for your terminal:"," ",k8.terminal==="Apple_Terminal"?"Option+Enter for newlines and visual bell":"Shift+Enter for newlines"]},void 0,!0,void 0,this),Eq.jsxDEV(Q8,{options:[{label:"Yes, use recommended settings",value:"install"},{label:"No, maybe later with /terminal-setup",value:"no"}],onChange:(A)=>{if(A==="install")yo0(K).catch(()=>{}).finally(z);else z()},onCancel:()=>z()},void 0,!1,void 0,this),Eq.jsxDEV(M,{dimColor:!0,children:H.pending?Eq.jsxDEV(Eq.Fragment,{children:["Press ",H.keyName," again to exit"]},void 0,!0,void 0,this):Eq.jsxDEV(Eq.Fragment,{children:"Enter to confirm \xB7 Esc to skip"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)});let L=O[Q],N=yD.useCallback(()=>{z()},[Q,O.length,q,J]);return C6({"confirm:no":N},{context:"Confirmation",isActive:L?.id==="terminal-setup"}),Eq.jsxDEV(f,{flexDirection:"column",children:[Eq.jsxDEV(ZbJ,{},void 0,!1,void 0,this),Eq.jsxDEV(f,{flexDirection:"column",marginTop:1,children:[L?.component,H.pending&&Eq.jsxDEV(f,{padding:1,children:Eq.jsxDEV(M,{dimColor:!0,children:["Press ",H.keyName," again to exit"]},void 0,!0,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)}function KbJ(J){let Q=qbJ.c(4),{skip:X,onSkip:Z,children:Y}=J,q,K;if(Q[0]!==Z||Q[1]!==X)q=()=>{if(X)Z()},K=[X,Z],Q[0]=Z,Q[1]=X,Q[2]=q,Q[3]=K;else q=Q[2],K=Q[3];if(yD.useEffect(q,K),X)return null;return Y}var qbJ,yD,Eq;var zbJ=I(()=>{D1();hn();Lq();a0();f6();N9();c30();m8();WZ();t1();oyJ();d08();hL0();AQ();YbJ();De0();qbJ=T(e0(),1),yD=T(J1(),1),Eq=T(e(),1)});function WbJ(J){if(J===null||J.disableAllHooks)return!1;if(J.statusLine)return!0;if(J.fileSuggestion)return!0;if(!J.hooks)return!1;for(let Q of Object.values(J.hooks))if(Q.length>0)return!0;return!1}function ObJ(){let J=[],Q=O8("projectSettings");if(WbJ(Q))J.push(".glock/settings.json");let X=O8("localSettings");if(WbJ(X))J.push(".glock/settings.local.json");return J}function HbJ(J){return J.some((Q)=>Q.ruleBehavior==="allow"&&(Q.ruleValue.toolName===O6||Q.ruleValue.toolName.startsWith(O6+"(")))}function LbJ(){let J=[],Q=pH0("projectSettings");if(HbJ(Q))J.push(".glock/settings.json");let X=pH0("localSettings");if(HbJ(X))J.push(".glock/settings.local.json");return J}function BbJ(J){return!!J?.apiKeyHelper}function VbJ(){let J=[],Q=O8("projectSettings");if(BbJ(Q))J.push(".glock/settings.json");let X=O8("localSettings");if(BbJ(X))J.push(".glock/settings.local.json");return J}function UbJ(J){return!!(J?.awsAuthRefresh||J?.awsCredentialExport)}function NbJ(){let J=[],Q=O8("projectSettings");if(UbJ(Q))J.push(".glock/settings.json");let X=O8("localSettings");if(UbJ(X))J.push(".glock/settings.local.json");return J}function FbJ(J){return!!J?.gcpAuthRefresh}function wbJ(){let J=[],Q=O8("projectSettings");if(FbJ(Q))J.push(".glock/settings.json");let X=O8("localSettings");if(FbJ(X))J.push(".glock/settings.local.json");return J}function _bJ(J){if(!J?.env)return!1;return Object.keys(J.env).some((Q)=>!bo.has(Q.toUpperCase()))}function AbJ(){let J=[],Q=O8("projectSettings");if(_bJ(Q))J.push(".glock/settings.json");let X=O8("localSettings");if(_bJ(X))J.push(".glock/settings.local.json");return J}var RbJ=I(()=>{g8();N50();gR()});var jbJ={};X8(jbJ,{TrustDialog:()=>obQ});import{homedir as MbJ}from"os";function obQ(J){let Q=DbJ.c(33),{onDone:X,commands:Z}=J,Y;if(Q[0]===Symbol.for("react.memo_cache_sentinel"))Y=rz("project"),Q[0]=Y;else Y=Q[0];let{servers:q}=Y,K;if(Q[1]===Symbol.for("react.memo_cache_sentinel"))K=Object.keys(q),Q[1]=K;else K=Q[1];let G=K.length>0,z;if(Q[2]===Symbol.for("react.memo_cache_sentinel"))z=ObJ(),Q[2]=z;else z=Q[2];let H=z.length>0,B;if(Q[3]===Symbol.for("react.memo_cache_sentinel"))B=LbJ(),Q[3]=B;else B=Q[3];let U=B,F;if(Q[4]===Symbol.for("react.memo_cache_sentinel"))F=VbJ(),Q[4]=F;else F=Q[4];let O=F.length>0,L;if(Q[5]===Symbol.for("react.memo_cache_sentinel"))L=NbJ(),Q[5]=L;else L=Q[5];let A=L.length>0,R;if(Q[6]===Symbol.for("react.memo_cache_sentinel"))R=wbJ(),Q[6]=R;else R=Q[6];let $=R.length>0,y;if(Q[7]===Symbol.for("react.memo_cache_sentinel"))y=AbJ(),Q[7]=y;else y=Q[7];let E=y.length>0,C;if(Q[9]!==Z)C=Z?.some(XPQ)??!1,Q[9]=Z,Q[10]=C;else C=Q[10];let S=C,k;if(Q[11]!==Z)k=Z?.some(JPQ)??!1,Q[11]=Z,Q[12]=k;else k=Q[12];let h=k,u=U.length>0||S||h,x=qG(),m,p;if(Q[13]!==u)m=()=>{let Z0=MbJ()===B1();l("jarvis_api_error",{isHomeDir:Z0,hasMcpServers:G,hasHooks:H,hasBashExecution:u,hasApiKeyHelper:O,hasAwsCommands:A,hasGcpCommands:$,hasDangerousEnvVars:E})},p=[G,H,u,O,A,$,E],Q[13]=u,Q[14]=m,Q[15]=p;else m=Q[14],p=Q[15];$bJ.default.useEffect(m,p);let c;if(Q[16]!==u||Q[17]!==X)c=function(t){if(t==="exit"){a9(1);return}let q0=MbJ()===B1();if(l("jarvis_api_error",{isHomeDir:q0,hasMcpServers:G,hasHooks:H,hasBashExecution:u,hasApiKeyHelper:O,hasAwsCommands:A,hasGcpCommands:$,hasDangerousEnvVars:E}),q0)n50(!0);else KG(ebQ);X()},Q[16]=u,Q[17]=X,Q[18]=c;else c=Q[18];let r=c,J0=B7(tbQ),n;if(Q[19]===Symbol.for("react.memo_cache_sentinel"))n={context:"Confirmation"},Q[19]=n;else n=Q[19];if(J8("confirm:no",sbQ,n),x)return setTimeout(X),null;let s,X0,Y0;if(Q[20]===Symbol.for("react.memo_cache_sentinel"))s=a2.jsxDEV(M,{bold:!0,children:Y1().cwd()},void 0,!1,void 0,this),X0=a2.jsxDEV(M,{children:["Quick safety check: Is this a project you created or one you trust? (Like your own code, a well-known open source project, or work from your team). If not, take a moment to review what","'","s in this folder first."]},void 0,!0,void 0,this),Y0=a2.jsxDEV(M,{children:["Glock","'","ll be able to read, edit, and execute files here."]},void 0,!0,void 0,this),Q[20]=s,Q[21]=X0,Q[22]=Y0;else s=Q[20],X0=Q[21],Y0=Q[22];let G0;if(Q[23]===Symbol.for("react.memo_cache_sentinel"))G0=a2.jsxDEV(M,{dimColor:!0,children:a2.jsxDEV(zJ,{url:"https://docs.getglock.dev/en/security",children:"Security guide"},void 0,!1,void 0,this)},void 0,!1,void 0,this),Q[23]=G0;else G0=Q[23];let j0;if(Q[24]===Symbol.for("react.memo_cache_sentinel"))j0=[{label:"Yes, I trust this folder",value:"enable_all"},{label:"No, exit",value:"exit"}],Q[24]=j0;else j0=Q[24];let W0;if(Q[25]!==r)W0=a2.jsxDEV(Q8,{options:j0,onChange:(Z0)=>r(Z0),onCancel:()=>r("exit")},void 0,!1,void 0,this),Q[25]=r,Q[26]=W0;else W0=Q[26];let y0;if(Q[27]!==J0.keyName||Q[28]!==J0.pending)y0=a2.jsxDEV(M,{dimColor:!0,children:J0.pending?a2.jsxDEV(a2.Fragment,{children:["Press ",J0.keyName," again to exit"]},void 0,!0,void 0,this):a2.jsxDEV(a2.Fragment,{children:"Enter to confirm \xB7 Esc to cancel"},void 0,!1,void 0,this)},void 0,!1,void 0,this),Q[27]=J0.keyName,Q[28]=J0.pending,Q[29]=y0;else y0=Q[29];let V0;if(Q[30]!==W0||Q[31]!==y0)V0=a2.jsxDEV(OZ,{color:"warning",titleColor:"warning",title:"Accessing workspace:",children:a2.jsxDEV(f,{flexDirection:"column",gap:1,paddingTop:1,children:[s,X0,Y0,G0,W0,y0]},void 0,!0,void 0,this)},void 0,!1,void 0,this),Q[30]=W0,Q[31]=y0,Q[32]=V0;else V0=Q[32];return V0}function sbQ(){a9(0)}function tbQ(){return a9(1)}function ebQ(J){return{...J,hasTrustDialogAccepted:!0}}function JPQ(J){return J.type==="prompt"&&(J.loadedFrom==="skills"||J.loadedFrom==="plugin")&&(J.source==="projectSettings"||J.source==="localSettings"||J.source==="plugin")&&J.allowedTools?.some(QPQ)}function QPQ(J){return J===O6||J.startsWith(O6+"(")}function XPQ(J){return J.type==="prompt"&&J.loadedFrom==="commands_DEPRECATED"&&(J.source==="projectSettings"||J.source==="localSettings")&&J.allowedTools?.some(ZPQ)}function ZPQ(J){return J===O6||J.startsWith(O6+"(")}var DbJ,$bJ,a2;var IbJ=I(()=>{D1();N1();Lq();a0();f6();HL();m8();Z6();H6();E5();tX();TH();RbJ();DbJ=T(e0(),1),$bJ=T(J1(),1),a2=T(e(),1)});var PbJ={};X8(PbJ,{BypassPermissionsModeDialog:()=>YPQ});function YPQ(J){let Q=ybJ.c(7),{onAccept:X}=J,Z;if(Q[0]===Symbol.for("react.memo_cache_sentinel"))Z=[],Q[0]=Z;else Z=Q[0];bbJ.default.useEffect(KPQ,Z);let Y;if(Q[1]!==X)Y=function(B){J:switch(B){case"accept":{l("jarvis_api_error",{}),y6("userSettings",{skipDangerousModePermissionPrompt:!0}),X();break J}case"decline":a9(1)}},Q[1]=X,Q[2]=Y;else Y=Q[2];let q=Y,K=qPQ,G;if(Q[3]===Symbol.for("react.memo_cache_sentinel"))G=fg.jsxDEV(f,{flexDirection:"column",gap:1,children:[fg.jsxDEV(M,{children:["In Bypass Permissions mode, Glock will not ask for your approval before running potentially dangerous commands.",fg.jsxDEV(eP,{},void 0,!1,void 0,this),"This mode should only be used in a sandboxed container/VM that has restricted internet access and can easily be restored if damaged."]},void 0,!0,void 0,this),fg.jsxDEV(M,{children:"By proceeding, you accept all responsibility for actions taken while running in Bypass Permissions mode."},void 0,!1,void 0,this),fg.jsxDEV(zJ,{url:"https://docs.getglock.dev/en/security"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),Q[3]=G;else G=Q[3];let z;if(Q[4]===Symbol.for("react.memo_cache_sentinel"))z=[{label:"No, exit",value:"decline"},{label:"Yes, I accept",value:"accept"}],Q[4]=z;else z=Q[4];let W;if(Q[5]!==q)W=fg.jsxDEV(D8,{title:"WARNING: Glock running in Bypass Permissions mode",color:"error",onCancel:K,children:[G,fg.jsxDEV(Q8,{options:z,onChange:(H)=>q(H)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),Q[5]=q,Q[6]=W;else W=Q[6];return W}function qPQ(){a9(0)}function KPQ(){l("jarvis_api_error",{})}var ybJ,bbJ,fg;var EbJ=I(()=>{D1();a0();E5();g8();tX();M9();ybJ=T(e0(),1),bbJ=T(J1(),1),fg=T(e(),1)});import{appendFileSync as GPQ}from"fs";function zPQ(){q8((J)=>({...J,hasCompletedOnboarding:!0,lastOnboardingVersion:"0.1.16"}))}function WPQ(J,Q){return new Promise((X)=>{let Z=(Y)=>void X(Y);J.render(Q(Z))})}async function TbJ(J,Q,X){return HPQ(J,Q,{color:"error",beforeExit:X})}async function HPQ(J,Q,X){let{Text:Z}=await Promise.resolve().then(() => (a0(),Fj1)),Y=X?.color,q=X?.exitCode??1;J.render(Y?bD.jsxDEV(Z,{color:Y,children:Q},void 0,!1,void 0,this):bD.jsxDEV(Z,{children:Q},void 0,!1,void 0,this)),J.unmount(),await X?.beforeExit?.(),process.exit(q)}function Sg(J,Q,X){return WPQ(J,(Z)=>bD.jsxDEV(b2,{onChangeAppState:X?.onChangeAppState,children:bD.jsxDEV(S2,{children:Q(Z)},void 0,!1,void 0,this)},void 0,!1,void 0,this))}async function n08(J,Q){J.render(Q),NJ1(),await J.waitUntilExit(),await c4(0)}async function CbJ(J,Q,X,Z,Y){if(W1(!1)||process.env.IS_DEMO)return!1;let q=L1(),K=!1;if(!q.theme||!q.hasCompletedOnboarding){K=!0;let{Onboarding:G}=await Promise.resolve().then(() => (zbJ(),GbJ));await Sg(J,(z)=>bD.jsxDEV(G,{onDone:()=>{zPQ(),z()}},void 0,!1,void 0,this),{onChangeAppState:rr})}if(!W1(process.env.CLAUBBIT)){if(!qG()){let{TrustDialog:z}=await Promise.resolve().then(() => (IbJ(),jbJ));await Sg(J,(W)=>bD.jsxDEV(z,{commands:Z,onDone:W},void 0,!1,void 0,this))}n50(!0),vZ1(),GK0(),Nq();let{errors:G}=VC();if(G.length===0)await myJ(J);if(await JOJ()){let z=qN0(await eG(!0)),{GlockMdExternalIncludesDialog:W}=await Promise.resolve().then(() => (Fn1(),qXJ));await Sg(J,(H)=>bD.jsxDEV(W,{onDone:H,isStandaloneDialog:!0,externalIncludes:z},void 0,!1,void 0,this))}}if(dyJ(),Bg(),await KZ0()){let{GroveDialog:G}=await Promise.resolve().then(() => (Eo1(),LHJ));if(await Sg(J,(W)=>bD.jsxDEV(G,{showIfAlreadyViewed:!1,location:K?"onboarding":"policy_update_modal",onDone:W},void 0,!1,void 0,this))==="escape")return l("jarvis_api_error",{}),a9(0),!1}if(process.env.GLOCK_API_KEY&&!Y$()){let G=ON(process.env.GLOCK_API_KEY);if(fv0(G)==="new"){let{ApproveApiKey:W}=await Promise.resolve().then(() => (d08(),tyJ));await Sg(J,(H)=>bD.jsxDEV(W,{customApiKeyTruncated:G,onDone:H},void 0,!1,void 0,this),{onChangeAppState:rr})}}if((Q==="bypassPermissions"||X)&&!Xe()){let{BypassPermissionsModeDialog:G}=await Promise.resolve().then(() => (EbJ(),PbJ));await Sg(J,(z)=>bD.jsxDEV(G,{onAccept:z},void 0,!1,void 0,this))}return K}function vbJ(J){let Q=0,X=XX0(J);if(X.stdin)l("jarvis_api_error",{});let Z=new p08,Y=rs1(),q=process.env.GLOCK_FRAME_TIMING_LOG;return{getFpsMetrics:()=>Z.getMetrics(),stats:Y,renderOptions:{...X,onFrame:(K)=>{if(Z.record(K.durationMs),Y.observe("frame_duration_ms",K.durationMs),q&&K.phases){let G=JSON.stringify({total:K.durationMs,...K.phases,rss:process.memoryUsage.rss(),cpu:process.cpuUsage()})+`
|
|
6957
|
+
`)},V1=()=>{bY0((v1)=>v1+1)};return Bv?.on("suspend",X1),Bv?.on("resume",V1),()=>{Bv?.off("suspend",X1),Bv?.off("resume",V1)}},[Bv]);let CJ1=k1.useMemo(()=>{if(!sJ)return null;let X1=YJ.filter((aJ)=>aJ.type==="progress"&&aJ.data.type==="hook_progress"&&(aJ.data.hookEvent==="Stop"||aJ.data.hookEvent==="SubagentStop"));if(X1.length===0)return null;let V1=X1.at(-1)?.toolUseID;if(!V1)return null;if(YJ.some((aJ)=>aJ.type==="system"&&aJ.subtype==="stop_hook_summary"&&aJ.toolUseID===V1))return null;let S8=X1.filter((aJ)=>aJ.toolUseID===V1),K6=S8.length,P6=x8(YJ,(aJ)=>{if(aJ.type!=="attachment")return!1;let G9=aJ.attachment;return"hookEvent"in G9&&(G9.hookEvent==="Stop"||G9.hookEvent==="SubagentStop")&&"toolUseID"in G9&&G9.toolUseID===V1}),Y6=S8.find((aJ)=>aJ.data.statusMessage)?.data.statusMessage;if(Y6)return K6===1?`${Y6}\u2026`:`${Y6}\u2026 ${P6}/${K6}`;let xJ=S8[0]?.data.hookEvent==="SubagentStop"?"subagent stop":"stop";return K6===1?`running ${xJ} hook`:`running stop hooks\u2026 ${P6}/${K6}`},[YJ,sJ]),PY0=k1.useCallback(()=>{H1({messagesLength:YJ.length,streamingToolUsesLength:r4.length})},[YJ.length,r4.length]),t2=k1.useCallback(()=>{H1(null)},[]),$y=yJ()&&!0,d_=k1.useRef(null),[AA,Uv]=k1.useState(!1),[SD,sg]=k1.useState(""),[jy,tg]=k1.useState(0),[eg,xD]=k1.useState(0),v4=k1.useCallback((X1,V1)=>{tg(X1),xD(V1)},[]);SJ((X1,V1,v1)=>{if(V1.ctrl||V1.meta)return;if(X1==="/"){d_.current?.setAnchor(),Uv(!0),v1.stopImmediatePropagation();return}let S8=X1[0];if((S8==="n"||S8==="N")&&X1===S8.repeat(X1.length)&&jy>0){let K6=S8==="n"?d_.current?.nextMatch:d_.current?.prevMatch;if(K6)for(let P6=0;P6<X1.length;P6++)K6();v1.stopImmediatePropagation()}},{isActive:L0==="transcript"&&$y&&!AA&&!c0});let{setQuery:Fv,scanElement:vJ1,setPositions:la}=lOJ(),$U=l8().columns,EY0=gY.useRef($U);gY.useEffect(()=>{if(EY0.current!==$U){if(EY0.current=$U,SD||AA)Uv(!1),sg(""),tg(0),xD(0),d_.current?.disarmSearch(),Fv("")}},[$U,SD,AA,Fv]),SJ((X1,V1,v1)=>{if(V1.ctrl||V1.meta)return;if(X1==="q"){t2(),v1.stopImmediatePropagation();return}if(X1==="["&&!c0)t0(!0),g0(!0),v1.stopImmediatePropagation();else if(X1==="v"){if(v1.stopImmediatePropagation(),p0.current)return;p0.current=!0;let S8=m0.current,K6=(P6)=>{if(S8!==m0.current)return;clearTimeout(R0.current),K0(P6)};K6(`rendering ${_3.length} messages\u2026`),(async()=>{try{let P6=Math.max(80,(process.stdout.columns??80)-6),xJ=(await f11(_3,VJ,P6)).replace(/[ \t]+$/gm,""),aJ=DbQ($bQ(),`cc-transcript-${Date.now()}.txt`);await jbQ(aJ,xJ);let G9=de0(aJ);K6(G9?`opening ${aJ}`:`wrote ${aJ} \xB7 no $VISUAL/$EDITOR set`)}catch(P6){K6(`render failed: ${P6 instanceof Error?P6.message:String(P6)}`)}if(p0.current=!1,S8!==m0.current)return;R0.current=setTimeout((P6)=>P6(""),4000,K0)})()}},{isActive:L0==="transcript"&&$y&&!AA});let Iy=L0==="transcript"&&$y;k1.useEffect(()=>{if(!Iy)sg(""),tg(0),xD(0),Uv(!1),m0.current++,clearTimeout(R0.current),t0(!1),K0("")},[Iy]),k1.useEffect(()=>{if(Fv(Iy?SD:""),!Iy)la(null)},[Iy,SD,Fv,la]);let _v={screen:L0,setScreen:T0,showAllInTranscript:S0,setShowAllInTranscript:g0,messageCount:YJ.length,onEnterTranscript:PY0,onExitTranscript:t2,virtualScrollActive:$y,searchBarOpen:AA},Ov=x0?_3.slice(0,x0.messagesLength):_3,gA0=x0?r4.slice(0,x0.streamingToolUsesLength):r4;if(HDJ({onOpenBackgroundTasks:dY?void 0:()=>ba(!0)}),wDJ(),L0==="transcript"){let X1=yJ()&&!0&&!c0?E4:void 0,V1=t8.jsxDEV(Er,{messages:Ov,tools:VJ,commands:n8,verbose:!0,toolJSX:null,toolUseConfirmQueue:[],inProgressToolUseIDs:IG,isMessageSelectorVisible:!1,conversationId:ZY0,screen:L0,agentDefinitions:n,streamingToolUses:gA0,showAllInTranscript:S0,isLoading:sJ,hidePastThinking:!0,streamingThinking:Y4,scrollRef:X1,jumpRef:d_,onSearchMatchesChange:v4,scanElement:vJ1,setPositions:la,disableRenderCap:c0},void 0,!1,void 0,this),v1=K9&&t8.jsxDEV(f,{flexDirection:"column",width:"100%",children:K9.jsx},void 0,!1,void 0,this),S8=t8.jsxDEV(S2,{children:[t8.jsxDEV(AyJ,{isAnimating:NY,title:rK,disabled:!1,noPrefix:p9},void 0,!1,void 0,this),t8.jsxDEV(ee1,{..._v},void 0,!1,void 0,this),null,t8.jsxDEV(J08,{onSubmit:NA,isActive:!K9?.isLocalJSXCommand},void 0,!1,void 0,this),X1?t8.jsxDEV(S08,{scrollRef:E4,isActive:DZ!=="ultraplan-choice",isModal:!AA,onScroll:()=>d_.current?.disarmSearch()},void 0,!1,void 0,this):null,t8.jsxDEV(Q08,{...NY0},void 0,!1,void 0,this),X1?t8.jsxDEV(Ta1,{scrollRef:E4,scrollable:t8.jsxDEV(t8.Fragment,{children:[V1,v1,t8.jsxDEV(I08,{},void 0,!1,void 0,this)]},void 0,!0,void 0,this),bottom:AA?t8.jsxDEV(fbQ,{jumpRef:d_,initialQuery:"",count:jy,current:eg,onClose:(K6)=>{if(sg(jy>0?K6:""),Uv(!1),!K6)tg(0),xD(0),d_.current?.setSearchQuery("")},onCancel:()=>{Uv(!1),d_.current?.setSearchQuery(""),d_.current?.setSearchQuery(SD),Fv(SD)},setHighlight:Fv},void 0,!1,void 0,this):t8.jsxDEV(NyJ,{showAllInTranscript:S0,virtualScroll:!0,status:K1||void 0,searchBadge:SD&&jy>0?{current:eg,count:jy}:void 0},void 0,!1,void 0,this)},void 0,!1,void 0,this):t8.jsxDEV(t8.Fragment,{children:[V1,v1,t8.jsxDEV(I08,{},void 0,!1,void 0,this),t8.jsxDEV(NyJ,{showAllInTranscript:S0,virtualScroll:!1,suppressShowAll:c0,status:K1||void 0},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this);if(X1)return t8.jsxDEV(f08,{mouseTracking:tM1(),children:S8},void 0,!1,void 0,this);return S8}let kD=O0?Z0[O0]:void 0,Jm=kD&&JK(kD)?kD:void 0,RA=Jm??(kD&&yK(kD)?kD:void 0),TY0=RA?RA.messages??[]:b6||!sJ?YJ:_3,mA0=uX&&!RA&&TY0.length<=gX.current?uX:void 0,Lv=DZ==="tool-permission"?t8.jsxDEV(RNJ,{onDone:()=>mZ(([X1,...V1])=>V1),onReject:VY0,toolUseConfirm:L7[0],toolUseContext:V3(YJ,YJ,y9??u7(),$0),verbose:c,workerBadge:L7[0]?.workerBadge,setStickyFooter:yJ()?mY:void 0},L7[0]?.toolUseID,!1,void 0,this):null,e2=yJ()&&K9?.isLocalJSXCommand===!0,Qm=e2?K9.jsx:null,pA0=t8.jsxDEV(S2,{children:[t8.jsxDEV(AyJ,{isAnimating:NY,title:rK,disabled:!1,noPrefix:p9},void 0,!1,void 0,this),t8.jsxDEV(ee1,{..._v},void 0,!1,void 0,this),null,t8.jsxDEV(J08,{onSubmit:NA,isActive:!K9?.isLocalJSXCommand},void 0,!1,void 0,this),t8.jsxDEV(S08,{scrollRef:E4,isActive:yJ()&&(Qm!=null||!DZ||DZ==="tool-permission"),onScroll:Qm||Lv||RA?void 0:FK},void 0,!1,void 0,this),null,t8.jsxDEV(Q08,{...NY0},void 0,!1,void 0,this),t8.jsxDEV(AYJ,{dynamicMcpConfig:_0,isStrictMcpConfig:U,children:t8.jsxDEV(Ta1,{scrollRef:E4,overlay:Lv,modal:Qm,modalScrollRef:U6,dividerYRef:wY,hidePill:!!RA,hideSticky:!!Jm,newMessageCount:u_?.count??0,onPillClick:()=>{aK(null),oH(E4.current)},scrollable:t8.jsxDEV(t8.Fragment,{children:[t8.jsxDEV(B$J,{},void 0,!1,void 0,this),t8.jsxDEV(Er,{messages:TY0,tools:VJ,commands:n8,verbose:c,toolJSX:K9,toolUseConfirmQueue:L7,inProgressToolUseIDs:Jm?Jm.inProgressToolUseIDs??new Set:IG,isMessageSelectorVisible:vD,conversationId:ZY0,screen:L0,streamingToolUses:r4,showAllInTranscript:S0,agentDefinitions:n,isLoading:sJ,streamingText:sJ&&!RA?W7:null,isBriefOnly:RA?!1:u0,unseenDivider:RA?void 0:u_,scrollRef:yJ()?E4:void 0,trackStickyPrompt:yJ()?!0:void 0,cursor:UK,setCursor:aK,cursorNavRef:jG},void 0,!1,void 0,this),t8.jsxDEV(bIJ,{},void 0,!1,void 0,this),!N&&mA0&&!Qm&&t8.jsxDEV(gi,{param:{text:mA0,type:"text"},addMargin:!0,verbose:c},void 0,!1,void 0,this),K9&&!(K9.isLocalJSXCommand&&K9.isImmediate)&&!e2&&t8.jsxDEV(f,{flexDirection:"column",width:"100%",children:K9.jsx},void 0,!1,void 0,this),!1,null,t8.jsxDEV(f,{flexGrow:1},void 0,!1,void 0,this),cg&&t8.jsxDEV(vr6,{mode:hZ,spinnerTip:G0,responseLengthRef:pX,apiMetricsRef:WV,overrideMessage:L3,spinnerSuffix:CJ1,verbose:c,loadingStartTimeRef:zX,totalPausedMsRef:f9,pauseStartTimeRef:oQ,overrideColor:jW,overrideShimmerColor:m_,hasActiveTools:IG.size>0,leaderIsIdle:!sJ},void 0,!1,void 0,this),!cg&&!sJ&&!uX&&!Gv&&u0&&!RA&&t8.jsxDEV(fr6,{},void 0,!1,void 0,this),yJ()&&t8.jsxDEV(_61,{},void 0,!1,void 0,this)]},void 0,!0,void 0,this),bottom:t8.jsxDEV(f,{flexDirection:"row",width:"100%",alignItems:"flex-end",children:t8.jsxDEV(f,{flexDirection:"column",flexGrow:1,children:[T4,K9?.isLocalJSXCommand&&K9.isImmediate&&!e2&&t8.jsxDEV(f,{flexDirection:"column",width:"100%",children:K9.jsx},void 0,!1,void 0,this),!cg&&!K9?.isLocalJSXCommand&&j0&&HJ&&HJ.length>0&&t8.jsxDEV(f,{width:"100%",flexDirection:"column",children:t8.jsxDEV(Ho0,{tasks:HJ,isStandalone:!0},void 0,!1,void 0,this)},void 0,!1,void 0,this),DZ==="sandbox-permission"&&t8.jsxDEV(j08,{hostPattern:MZ[0].hostPattern,onUserResponse:(X1)=>{let{allow:V1,persistToSettings:v1}=X1,S8=MZ[0];if(!S8)return;let K6=S8.hostPattern.host;if(v1){let P6={type:"addRules",rules:[{toolName:aG,ruleContent:`domain:${K6}`}],behavior:V1?"allow":"deny",destination:"localSettings"};D0((Y6)=>({...Y6,toolPermissionContext:iZ(Y6.toolPermissionContext,P6)})),zj(P6),p8.refreshConfig()}O5((P6)=>{return P6.filter((Y6)=>Y6.hostPattern.host===K6).forEach((Y6)=>Y6.resolvePromise(V1)),P6.filter((Y6)=>Y6.hostPattern.host!==K6)})}},MZ[0].hostPattern.host,!1,void 0,this),DZ==="prompt"&&t8.jsxDEV(vNJ,{title:ZZ[0].title,toolInputSummary:ZZ[0].toolInputSummary,request:ZZ[0].request,onRespond:(X1)=>{let V1=ZZ[0];if(!V1)return;V1.resolve({prompt_response:V1.request.prompt,selected:X1}),pY(([,...v1])=>v1)},onAbort:()=>{let X1=ZZ[0];if(!X1)return;X1.reject(Error("Prompt cancelled by user")),pY(([,...V1])=>V1)}},ZZ[0].request.prompt,!1,void 0,this),W0&&t8.jsxDEV(es1,{toolName:W0.toolName,description:W0.description},void 0,!1,void 0,this),y0&&t8.jsxDEV(es1,{toolName:"Network Access",description:`Waiting for leader to approve network access to ${y0.host}`},void 0,!1,void 0,this),DZ==="worker-sandbox-permission"&&t8.jsxDEV(j08,{hostPattern:{host:t.queue[0].host,port:void 0},onUserResponse:(X1)=>{let{allow:V1,persistToSettings:v1}=X1,S8=t.queue[0];if(!S8)return;let K6=S8.host;if(jD6(S8.workerName,S8.requestId,K6,V1,V0?.teamName),v1&&V1){let P6={type:"addRules",rules:[{toolName:aG,ruleContent:`domain:${K6}`}],behavior:"allow",destination:"localSettings"};D0((Y6)=>({...Y6,toolPermissionContext:iZ(Y6.toolPermissionContext,P6)})),zj(P6),p8.refreshConfig()}D0((P6)=>({...P6,workerSandboxPermissions:{...P6.workerSandboxPermissions,queue:P6.workerSandboxPermissions.queue.slice(1)}}))}},t.queue[0].requestId,!1,void 0,this),DZ==="elicitation"&&t8.jsxDEV(ENJ,{event:q0.queue[0],onResponse:(X1,V1)=>{let v1=q0.queue[0];if(!v1)return;if(v1.respond({action:X1,content:V1}),!(v1.params.mode==="url"&&X1==="accept"))D0((K6)=>({...K6,elicitation:{queue:K6.elicitation.queue.slice(1)}}))},onWaitingDismiss:(X1)=>{let V1=q0.queue[0];D0((v1)=>({...v1,elicitation:{queue:v1.elicitation.queue.slice(1)}})),V1?.onWaitingDismiss?.(X1)}},q0.queue[0].serverName+":"+String(q0.queue[0].requestId),!1,void 0,this),DZ==="cost"&&t8.jsxDEV(rOJ,{onDone:()=>{XY0(!1),KY0(!0),q8((X1)=>({...X1,hasAcknowledgedCostThreshold:!0})),l("jarvis_api_error",{})}},void 0,!1,void 0,this),DZ==="idle-return"&&hg&&t8.jsxDEV(sOJ,{idleMinutes:hg.idleMinutes,totalInputTokens:PV(),onDone:async(X1)=>{let V1=hg;if(YY0(null),l("jarvis_api_error",{action:X1,idleMinutes:Math.round(V1.idleMinutes),messageCount:rJ.current.length,totalInputTokens:PV()}),X1==="dismiss"){GJ(V1.input);return}if(X1==="never")q8((v1)=>{if(v1.idleReturnDismissed)return v1;return{...v1,idleReturnDismissed:!0}});if(X1==="clear"){let{clearConversation:v1}=await Promise.resolve().then(() => (Qe0(),bi1));await v1({setMessages:w6,readFileState:BV.current,discoveredSkillNames:Ca.current,loadedNestedMemoryPaths:va.current,getAppState:()=>U0.getState(),setAppState:D0,setConversationId:HV}),C4.current=!1,VY(void 0),Wv.current.clear(),Ay.current=0}Yv.current=!0,onSubmitRef.current(V1.input,{setCursorOffset:()=>{},clearBuffer:()=>{},resetHistory:()=>{}})}},void 0,!1,void 0,this),DZ==="ide-onboarding"&&t8.jsxDEV(wf1,{onDone:()=>N0(!1),installationStatus:cJ},void 0,!1,void 0,this),!1,!1,DZ==="effort-callout"&&t8.jsxDEV(h$J,{model:$0,onDone:(X1)=>{if(n0(!1),X1!=="dismiss")D0((V1)=>({...V1,effortValue:X1}))}},void 0,!1,void 0,this),vA0,DZ==="plugin-hint"&&a8&&t8.jsxDEV(FIJ,{pluginName:a8.pluginName,pluginDescription:a8.pluginDescription,marketplaceName:a8.marketplaceName,sourceCommand:a8.sourceCommand,onResponse:X6},void 0,!1,void 0,this),DZ==="lsp-recommendation"&&u1&&t8.jsxDEV(zIJ,{pluginName:u1.pluginName,pluginDescription:u1.pluginDescription,fileExtension:u1.fileExtension,onResponse:e1},void 0,!1,void 0,this),DZ==="desktop-upsell"&&t8.jsxDEV(RjJ,{onDone:()=>F1(!1)},void 0,!1,void 0,this),null,null,Ta(),!K9?.shouldHidePromptInput&&!DZ&&!LY0&&!N&&!UK&&t8.jsxDEV(t8.Fragment,{children:[p_&&t8.jsxDEV(oIJ,{onRun:SA0,onCancel:ga,reason:eIJ(p_)},void 0,!1,void 0,this),wy.state!=="closed"?t8.jsxDEV(HA0,{state:wy.state,lastResponse:wy.lastResponse,handleSelect:wy.handleSelect,inputValue:h1,setInputValue:GJ,onRequestFeedback:ma},void 0,!1,void 0,this):VA.state!=="closed"?t8.jsxDEV(HA0,{state:VA.state,lastResponse:VA.lastResponse,handleSelect:VA.handleSelect,handleTranscriptSelect:VA.handleTranscriptSelect,inputValue:h1,setInputValue:GJ,onRequestFeedback:ma,message:"How well did Glock use its memory? (optional)"},void 0,!1,void 0,this):t8.jsxDEV(HA0,{state:fD.state,lastResponse:fD.lastResponse,handleSelect:fD.handleSelect,handleTranscriptSelect:fD.handleTranscriptSelect,inputValue:h1,setInputValue:GJ,onRequestFeedback:rg.current?void 0:ma},void 0,!1,void 0,this),ig.state!=="closed"&&t8.jsxDEV(HA0,{state:ig.state,lastResponse:null,handleSelect:()=>{},handleTranscriptSelect:ig.handleTranscriptSelect,inputValue:h1,setInputValue:GJ},void 0,!1,void 0,this),!1,FY0&&t8.jsxDEV(QyJ,{},void 0,!1,void 0,this),t8.jsxDEV(VMJ,{debug:Q,ideSelection:w8,hasSuppressedDialogs:!!fA0,isLocalJSXCommandActive:dY,getToolUseContext:V3,toolPermissionContext:p,setToolPermissionContext:Dy,apiKeyStatus:CA0,commands:n8,agents:n.activeAgents,isLoading:sJ,onExit:TJ1,verbose:c,messages:YJ,onAutoUpdaterResult:gZ,autoUpdaterResult:AX,input:h1,onInputChange:GJ,mode:fQ,onModeChange:K4,stashedPrompt:mX,setStashedPrompt:c5,submitCount:O3,onShowMessageSelector:pa,onMessageActionsEnter:void 0,mcpClients:a1,pastedContents:P9,setPastedContents:f8,vimMode:GY0,setVimMode:PJ1,showBashesDialog:gg,setShowBashesDialog:ba,onSubmit:NA,onAgentSubmit:og,isSearchingHistory:zY0,setIsSearchingHistory:WY0,helpOpen:HY0,setHelpOpen:PA0,insertTextRef:void 0,voiceInterimRange:yY0.interimRange},void 0,!1,void 0,this),t8.jsxDEV(f$J,{onBackgroundSession:EJ1,isLoading:sJ},void 0,!1,void 0,this)]},void 0,!0,void 0,this),UK&&t8.jsxDEV(aN6,{cursor:UK},void 0,!1,void 0,this),DZ==="message-selector"&&t8.jsxDEV(Xt1,{messages:YJ,preselectedMessage:kg,onPreRestore:ag,onRestoreCode:async(X1)=>{await Hm0((V1)=>{D0((v1)=>({...v1,fileHistory:V1(v1.fileHistory)}))},X1.uuid)},onSummarize:async(X1,V1,v1="from")=>{let S8=LG(YJ),K6=S8.indexOf(X1);if(K6===-1){w6((Cq)=>[...Cq,Yz("That message is no longer in the active context (snipped or pre-compact). Choose a more recent message.","warning")]);return}let P6=u7(),Y6=V3(S8,[],P6,$0),xJ=Y6.getAppState(),aJ=await wH(Y6.options.tools,Y6.options.mainLoopModel,Array.from(xJ.toolPermissionContext.additionalWorkingDirectories.keys()),Y6.options.mcpClients),G9=_w({mainThreadAgentDefinition:void 0,toolUseContext:Y6,customSystemPrompt:Y6.options.customSystemPrompt,defaultSystemPrompt:aJ,appendSystemPrompt:Y6.options.appendSystemPrompt}),[Y9,bG]=await Promise.all([G5(),Nq()]),SQ=await Ul6(S8,K6,Y6,{systemPrompt:G9,userContext:Y9,systemContext:bG,toolUseContext:Y6,forkContextMessages:S8},V1,v1),lY=SQ.messagesToKeep??[],jU=v1==="up_to"?[...SQ.summaryMessages,...lY]:[...lY,...SQ.summaryMessages],G4=[SQ.boundaryMarker,...jU,...SQ.attachments,...SQ.hookResults];if(yJ()&&v1==="from")w6((Cq)=>{let FV=Cq.findIndex((PG)=>PG.uuid===X1.uuid);return[...Cq.slice(0,FV===-1?0:FV),...G4]});else w6(G4);if(HV(AA0()),eM(Y6.options.querySource),v1==="from"){let Cq=xl1(X1);if(Cq)GJ(Cq.text),K4(Cq.mode)}let f4=PK("app:toggleTranscript","Global","ctrl+o");o0({key:"summarize-ctrl-o-hint",text:`Conversation summarized (${f4} for history)`,priority:"medium",timeoutMs:8000})},onRestoreMessage:MY0,onClose:()=>{Xv(!1),ya(void 0)}},void 0,!1,void 0,this),!1]},void 0,!0,void 0,this)},void 0,!1,void 0,this)},void 0,!1,void 0,this)},wA,!1,void 0,this)]},void 0,!0,void 0,this);if(yJ())return t8.jsxDEV(f08,{mouseTracking:tM1(),children:pA0},void 0,!1,void 0,this);return pA0}var x08,gY,k1,t8,IbQ=()=>({state:"closed",handleTranscriptSelect:()=>{}}),ybQ=()=>{},bbQ=()=>({}),LyJ=null,PbQ=(J)=>()=>{},EbQ=()=>!1,TbQ=(J,Q)=>!1,VyJ,CbQ,vbQ=3000,RyJ,wyJ="\u2733",SbQ=960;var DyJ=I(()=>{N1();ha0();r6();a0();Tu();U9();iOJ();qs1();oI();a0();aOJ();tOJ();UY();G81();KLJ();sP();aP();I2();N1();A2();Z1();GLJ();t1();A6();dq0();e3();P90();v90();FZ();ULJ();CM();cz();_LJ();VLJ();PY();H81();$LJ();DNJ();TNJ();fNJ();NMJ();ue1();jMJ();bMJ();EMJ();CMJ();xMJ();mMJ();zz();Lw();B90();UL();ez();te1();JI();oMJ();is1();eMJ();QDJ();uw();Qe1();ZDJ();qDJ();GDJ();Gu();nz();ij();WDJ();BDJ();VDJ();ADJ();T1();M1();CDJ();lq();Dt1();JW();vX();Aa0();z_();m8();Ce0();D1();M8();xN0();zZ();E5();lDJ();oDJ();tDJ();Cn();$l();Q$J();Vu0();vo1();O11();Z$J();G$J();W$J();gN0();Wp1();U$J();Uo0();Do0();ih();N4();_$J();PH();Kh();Dl1();rZ0();W6();$K();gJ();Gs0();LL0();Fw();sO0();CB();LT();pF();MI();gJ();F08();mr();ln();j$J();lZ();y$J();b5();T$J();Ys1();Xs1();__();rq();M40();S$J();ng0();k$J();Wi();jl();Af1();g$J();zp1();nq();Nr();l$J();n$J();o$J();JjJ();XjJ();qjJ();WjJ();jjJ();PjJ();V4();TjJ();vjJ();SjJ();ujJ();cjJ();ljJ();Fe1();rjJ();GIJ();WIJ();UIJ();_IJ();M08();NIJ();RIJ();IIJ();ol0();PIJ();CIJ();fIJ();kIJ();pIJ();rIJ();JyJ();ZyJ();YyJ();PY();Ca1();fz();GyJ();OyJ();nF();g3();Z3();x08=T(e0(),1),gY=T(J1(),1),k1=T(J1(),1),t8=T(e(),1),VyJ=[],CbQ={maybeLoadOlder:(J)=>{}};RyJ=["\u2802","\u2810"]});async function $yJ(J,Q,X,Z){let{App:Y}=await Promise.resolve().then(() => (dOJ(),cOJ)),{REPL:q}=await Promise.resolve().then(() => (DyJ(),MyJ));await Z(J,k08.jsxDEV(Y,{...Q,children:k08.jsxDEV(q,{...X},void 0,!1,void 0,this)},void 0,!1,void 0,this))}var k08;var jyJ=I(()=>{k08=T(e(),1)});function mbQ(J){let Q=`${J.name}: ${J.message}`;return gbQ.some((X)=>X.test(Q))}function IyJ(){let J=process.listeners("warning");if(FJ1&&J.includes(FJ1))return;if(!1)process.removeAllListeners("warning");FJ1=(X)=>{try{let Z=`${X.name}: ${X.message.slice(0,50)}`,Y=UJ1.get(Z)||0;if(UJ1.has(Z)||UJ1.size<ubQ)UJ1.set(Z,Y+1);let q=mbQ(X);if(l("jarvis_api_error",{is_internal:q?1:0,occurrence_count:Y+1,classname:X.name,...process.env.USER_TYPE==="ant"&&{message:X.message}}),W1(process.env.GLOCK_DEBUG))b(`${q?"[Internal Warning]":"[Warning]"} ${X.toString()}`,{level:"warn"})}catch{}},process.on("warning",FJ1)}var ubQ=1000,UJ1,gbQ,FJ1=null;var yyJ=I(()=>{D1();Z1();t1();k9();UJ1=new Map,gbQ=[/MaxListenersExceededWarning.*AbortSignal/,/MaxListenersExceededWarning.*EventTarget/]});function byJ(J){return Fb(pbQ,{})?.[J]===!0}var pbQ="jarvis_api_error";var PyJ=()=>{};function cbQ(){if(byJ("datadog"))return!1;if(h08!==void 0)return h08;try{return GZ(EyJ)}catch{return!1}}function TyJ(J,Q){let X=em1(J);if(X===0)return;let Z=X!==null?{...Q,sample_rate:X}:Q;if(cbQ())Xr6(J,xQ8(Z));Qp1(J,Z)}function dbQ(J,Q){return TyJ(J,Q),Promise.resolve()}function CyJ(){h08=GZ(EyJ)}function vyJ(){kQ8({logEvent:TyJ,logEventAsync:dbQ})}var EyJ="jarvis_api_error",h08=void 0;var u08=I(()=>{tm1();zo0();D1();PyJ()});function _J1(){let J=fyJ.c(1),Q;if(J[0]===Symbol.for("react.memo_cache_sentinel"))Q=g08.jsxDEV(M,{children:["MCP servers may execute code or access system resources. All tool calls require approval. Learn more in the"," ",g08.jsxDEV(zJ,{url:"https://docs.getglock.dev/en/mcp",children:"MCP documentation"},void 0,!1,void 0,this),"."]},void 0,!0,void 0,this),J[0]=Q;else Q=J[0];return Q}var fyJ,g08;var m08=I(()=>{a0();fyJ=T(e0(),1),g08=T(e(),1)});function xyJ(J){let Q=SyJ.c(13),{serverName:X,onDone:Z}=J,Y;if(Q[0]!==Z||Q[1]!==X)Y=function(F){l("jarvis_api_error",{choice:F});J:switch(F){case"yes":case"yes_all":{let O=(q6()||{}).enabledMcpjsonServers||[];if(!O.includes(X))y6("localSettings",{enabledMcpjsonServers:[...O,X]});if(F==="yes_all")y6("localSettings",{enableAllProjectMcpServers:!0});Z();break J}case"no":{let O=(q6()||{}).disabledMcpjsonServers||[];if(!O.includes(X))y6("localSettings",{disabledMcpjsonServers:[...O,X]});Z()}}},Q[0]=Z,Q[1]=X,Q[2]=Y;else Y=Q[2];let q=Y,K=`New MCP server found in .mcp.json: ${X}`,G;if(Q[3]!==q)G=()=>q("no"),Q[3]=q,Q[4]=G;else G=Q[4];let z;if(Q[5]===Symbol.for("react.memo_cache_sentinel"))z=OJ1.jsxDEV(_J1,{},void 0,!1,void 0,this),Q[5]=z;else z=Q[5];let W;if(Q[6]===Symbol.for("react.memo_cache_sentinel"))W=[{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"}],Q[6]=W;else W=Q[6];let H;if(Q[7]!==q)H=OJ1.jsxDEV(Q8,{options:W,onChange:(U)=>q(U),onCancel:()=>q("no")},void 0,!1,void 0,this),Q[7]=q,Q[8]=H;else H=Q[8];let B;if(Q[9]!==K||Q[10]!==G||Q[11]!==H)B=OJ1.jsxDEV(D8,{title:K,color:"warning",onCancel:G,children:[z,H]},void 0,!0,void 0,this),Q[9]=K,Q[10]=G,Q[11]=H,Q[12]=B;else B=Q[12];return B}var SyJ,OJ1;var kyJ=I(()=>{D1();g8();tX();M9();m08();SyJ=T(e0(),1),OJ1=T(e(),1)});function uyJ(J){let Q=hyJ.c(21),{serverNames:X,onDone:Z}=J,Y;if(Q[0]!==Z||Q[1]!==X)Y=function(L){let N=q6()||{},A=N.enabledMcpjsonServers||[],R=N.disabledMcpjsonServers||[],[D,$]=_11(X,(y)=>L.includes(y));if(l("jarvis_api_error",{approved:D.length,rejected:$.length}),D.length>0){let y=[...new Set([...A,...D])];y6("localSettings",{enabledMcpjsonServers:y})}if($.length>0){let y=[...new Set([...R,...$])];y6("localSettings",{disabledMcpjsonServers:y})}Z()},Q[0]=Z,Q[1]=X,Q[2]=Y;else Y=Q[2];let q=Y,K;if(Q[3]!==Z||Q[4]!==X)K=()=>{let L=(q6()||{}).disabledMcpjsonServers||[],N=[...new Set([...L,...X])];y6("localSettings",{disabledMcpjsonServers:N}),Z()},Q[3]=Z,Q[4]=X,Q[5]=K;else K=Q[5];let G=K,z=`${X.length} new MCP servers found in .mcp.json`,W;if(Q[6]===Symbol.for("react.memo_cache_sentinel"))W=zV.jsxDEV(_J1,{},void 0,!1,void 0,this),Q[6]=W;else W=Q[6];let H;if(Q[7]!==X)H=X.map(lbQ),Q[7]=X,Q[8]=H;else H=Q[8];let B;if(Q[9]!==G||Q[10]!==q||Q[11]!==X||Q[12]!==H)B=zV.jsxDEV(ao0,{options:H,defaultValue:X,onSubmit:q,onCancel:G,hideIndexes:!0},void 0,!1,void 0,this),Q[9]=G,Q[10]=q,Q[11]=X,Q[12]=H,Q[13]=B;else B=Q[13];let U;if(Q[14]!==G||Q[15]!==z||Q[16]!==B)U=zV.jsxDEV(D8,{title:z,subtitle:"Select any you wish to enable.",color:"warning",onCancel:G,hideInputGuide:!0,children:[W,B]},void 0,!0,void 0,this),Q[14]=G,Q[15]=z,Q[16]=B,Q[17]=U;else U=Q[17];let F;if(Q[18]===Symbol.for("react.memo_cache_sentinel"))F=zV.jsxDEV(f,{paddingX:1,children:zV.jsxDEV(M,{dimColor:!0,italic:!0,children:zV.jsxDEV(V8,{children:[zV.jsxDEV(p1,{shortcut:"Space",action:"select"},void 0,!1,void 0,this),zV.jsxDEV(p1,{shortcut:"Enter",action:"confirm"},void 0,!1,void 0,this),zV.jsxDEV(s1,{action:"confirm:no",context:"Confirmation",fallback:"Esc",description:"reject all"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this)},void 0,!1,void 0,this),Q[18]=F;else F=Q[18];let _;if(Q[19]!==U)_=zV.jsxDEV(zV.Fragment,{children:[U,F]},void 0,!0,void 0,this),Q[19]=U,Q[20]=_;else _=Q[20];return _}function lbQ(J){return{label:J,value:J}}var hyJ,zV;var gyJ=I(()=>{Co1();D1();a0();g8();U7();np1();R9();M9();g9();m08();hyJ=T(e0(),1),zV=T(e(),1)});async function myJ(J){let{servers:Q}=rz("project"),X=Object.keys(Q).filter((Z)=>Ic0(Z)==="pending");if(X.length===0)return;await new Promise((Z)=>{let Y=()=>void Z();if(X.length===1&&X[0]!==void 0){let q=X[0];J.render(Da.jsxDEV(b2,{children:Da.jsxDEV(S2,{children:Da.jsxDEV(xyJ,{serverName:q,onDone:Y},void 0,!1,void 0,this)},void 0,!1,void 0,this)},void 0,!1,void 0,this))}else J.render(Da.jsxDEV(b2,{children:Da.jsxDEV(S2,{children:Da.jsxDEV(uyJ,{serverNames:X,onDone:Y},void 0,!1,void 0,this)},void 0,!1,void 0,this)},void 0,!1,void 0,this))})}var Da;var pyJ=I(()=>{kyJ();gyJ();Gu();W6();HL();az();Da=T(e(),1)});var cyJ=I(()=>{m8();Z1()});class p08{frameDurations=[];firstRenderTime;lastRenderTime;record(J){let Q=performance.now();if(this.firstRenderTime===void 0)this.firstRenderTime=Q;this.lastRenderTime=Q,this.frameDurations.push(J)}getMetrics(){if(this.frameDurations.length===0||this.firstRenderTime===void 0||this.lastRenderTime===void 0)return;let J=this.lastRenderTime-this.firstRenderTime;if(J<=0)return;let X=this.frameDurations.length/(J/1000),Z=this.frameDurations.slice().sort((G,z)=>z-G),Y=Math.max(0,Math.ceil(Z.length*0.01)-1),q=Z[Y],K=q>0?1000/q:0;return{averageFps:Math.round(X*100)/100,low1PctFps:Math.round(K*100)/100}}}import{realpath as ibQ}from"fs/promises";async function dyJ(){try{let J=await f_0();if(!J){b("Not in a GitHub repository, skipping path mapping update");return}let Q=j8(),Z=IZ(Q)??Q,Y;try{Y=(await ibQ(Z)).normalize("NFC")}catch{Y=Z}let q=J.toLowerCase(),G=L1().githubRepoPaths?.[q]??[];if(G[0]===Y){b(`Path ${Y} already tracked for repo ${q}`);return}let z=G.filter((H)=>H!==Y),W=[Y,...z];q8((H)=>({...H,githubRepoPaths:{...H.githubRepoPaths,[q]:W}})),b(`Added ${Y} to tracked paths for repo ${q}`)}catch(J){b(`Error updating repo path mapping: ${J}`)}}var lyJ=I(()=>{N1();m8();Z1();DT();V9();Rf();uQ()});function iyJ(J,Q){let[X,Z]=LJ1.useState(!1);return LJ1.useEffect(()=>{Z(!1);let Y=setTimeout(Z,J,!0);return()=>clearTimeout(Y)},[J,Q]),X}var LJ1;var nyJ=I(()=>{LJ1=T(J1(),1)});async function nbQ(){try{let J=qJ(),Q=new URL(J.TOKEN_URL),X=process.env.GLOCK_GATEWAY_URL,Z=X?[`${X}/api/hello`]:[`${J.BASE_API_URL}/api/hello`,`${Q.origin}/v1/oauth/hello`],Y=async(G)=>{try{let z=await y8.get(G,{headers:{"User-Agent":ck()}});if(z.status!==200)return{success:!1,error:`Failed to connect to ${new URL(G).hostname}: Status ${z.status}`};return{success:!0}}catch(z){let W=new URL(G).hostname,H=v26(z);return{success:!1,error:`Failed to connect to ${W}: ${z instanceof Error?z.code||z.message:String(z)}`,sslHint:H??void 0}}},K=(await Promise.all(Z.map(Y))).find((G)=>!G.success);if(K)l("jarvis_api_error",{isConnectivityError:!1,hasErrorMessage:!!K.error,isSSLError:!!K.sslHint});return K||{success:!0}}catch(J){return H0(J),l("jarvis_api_error",{isConnectivityError:!0}),{success:!1,error:`Connectivity check error: ${J instanceof Error?J.code||J.message:String(J)}`}}}function ayJ(J){let Q=ryJ.c(12),{onSuccess:X}=J,[Z,Y]=o40.useState(null),[q,K]=o40.useState(!0),G=iyJ(1000)&&q,z,W;if(Q[0]===Symbol.for("react.memo_cache_sentinel"))z=()=>{(async function(){let L=await nbQ();Y(L),K(!1)})()},W=[],Q[0]=z,Q[1]=W;else z=Q[0],W=Q[1];o40.useEffect(z,W);let H,B;if(Q[2]!==X||Q[3]!==Z)H=()=>{if(Z?.success)X();else if(Z&&!Z.success){let _=setTimeout(rbQ,100);return()=>clearTimeout(_)}},B=[Z,X],Q[2]=X,Q[3]=Z,Q[4]=H,Q[5]=B;else H=Q[4],B=Q[5];o40.useEffect(H,B);let U;if(Q[6]!==q||Q[7]!==Z||Q[8]!==G)U=q&&G?r2.jsxDEV(f,{paddingLeft:1,children:[r2.jsxDEV(M7,{},void 0,!1,void 0,this),r2.jsxDEV(M,{children:"Checking connectivity..."},void 0,!1,void 0,this)]},void 0,!0,void 0,this):!Z?.success&&!q&&r2.jsxDEV(f,{flexDirection:"column",gap:1,children:[r2.jsxDEV(M,{color:"error",children:"Unable to connect to Glock services"},void 0,!1,void 0,this),r2.jsxDEV(M,{color:"error",children:Z?.error},void 0,!1,void 0,this),Z?.sslHint?r2.jsxDEV(f,{flexDirection:"column",gap:1,children:[r2.jsxDEV(M,{children:Z.sslHint},void 0,!1,void 0,this),r2.jsxDEV(M,{color:"suggestion",children:"See https://docs.getglock.dev/en/network-config"},void 0,!1,void 0,this)]},void 0,!0,void 0,this):r2.jsxDEV(f,{flexDirection:"column",gap:1,children:[r2.jsxDEV(M,{children:"Please check your internet connection and network settings."},void 0,!1,void 0,this),r2.jsxDEV(M,{children:["Note: Glock might not be available in your country. Check supported countries at"," ",r2.jsxDEV(M,{color:"suggestion",children:"https://getglock.dev/supported-countries"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),Q[6]=q,Q[7]=Z,Q[8]=G,Q[9]=U;else U=Q[9];let F;if(Q[10]!==U)F=r2.jsxDEV(f,{flexDirection:"column",gap:1,paddingLeft:1,children:U},void 0,!1,void 0,this),Q[10]=U,Q[11]=F;else F=Q[11];return F}function rbQ(){return process.exit(1)}var ryJ,o40,r2;var oyJ=I(()=>{JX();D1();zz();$Z();nyJ();a0();Ll();lk();M1();ryJ=T(e0(),1),o40=T(J1(),1),r2=T(e(),1)});var tyJ={};X8(tyJ,{ApproveApiKey:()=>c08});function c08(J){let Q=syJ.c(17),{customApiKeyTruncated:X,onDone:Z}=J,Y;if(Q[0]!==X||Q[1]!==Z)Y=function(O){J:switch(O){case"yes":{q8((L)=>({...L,customApiKeyResponses:{...L.customApiKeyResponses,approved:[...L.customApiKeyResponses?.approved??[],X]}})),Z(!0);break J}case"no":q8((L)=>({...L,customApiKeyResponses:{...L.customApiKeyResponses,rejected:[...L.customApiKeyResponses?.rejected??[],X]}})),Z(!1)}},Q[0]=X,Q[1]=Z,Q[2]=Y;else Y=Q[2];let q=Y,K;if(Q[3]!==q)K=()=>q("no"),Q[3]=q,Q[4]=K;else K=Q[4];let G;if(Q[5]===Symbol.for("react.memo_cache_sentinel"))G=Jv.jsxDEV(M,{bold:!0,children:"GLOCK_API_KEY"},void 0,!1,void 0,this),Q[5]=G;else G=Q[5];let z;if(Q[6]!==X)z=Jv.jsxDEV(M,{children:[G,Jv.jsxDEV(M,{children:[": sk-ant-...",X]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),Q[6]=X,Q[7]=z;else z=Q[7];let W;if(Q[8]===Symbol.for("react.memo_cache_sentinel"))W=Jv.jsxDEV(M,{children:"Do you want to use this API key?"},void 0,!1,void 0,this),Q[8]=W;else W=Q[8];let H;if(Q[9]===Symbol.for("react.memo_cache_sentinel"))H={label:"Yes",value:"yes"},Q[9]=H;else H=Q[9];let B;if(Q[10]===Symbol.for("react.memo_cache_sentinel"))B=[H,{label:Jv.jsxDEV(M,{children:["No (",Jv.jsxDEV(M,{bold:!0,children:"recommended"},void 0,!1,void 0,this),")"]},void 0,!0,void 0,this),value:"no"}],Q[10]=B;else B=Q[10];let U;if(Q[11]!==q)U=Jv.jsxDEV(Q8,{defaultValue:"no",defaultFocusValue:"no",options:B,onChange:(_)=>q(_),onCancel:()=>q("no")},void 0,!1,void 0,this),Q[11]=q,Q[12]=U;else U=Q[12];let F;if(Q[13]!==K||Q[14]!==z||Q[15]!==U)F=Jv.jsxDEV(D8,{title:"Detected a custom API key in your environment",color:"warning",onCancel:K,children:[z,W,U]},void 0,!0,void 0,this),Q[13]=K,Q[14]=z,Q[15]=U,Q[16]=F;else F=Q[16];return F}var syJ,Jv;var d08=I(()=>{a0();m8();tX();M9();syJ=T(e0(),1),Jv=T(e(),1)});var l08="#5f97cd";var eyJ=()=>{};function JbJ(){return VJ1.jsxDEV(f,{flexDirection:"column",alignItems:"center",children:[VJ1.jsxDEV(M,{bold:!0,color:l08,children:" \u25B3 "},void 0,!1,void 0,this),VJ1.jsxDEV(M,{bold:!0,color:l08,children:"\u22A2\u25CE\u22A3 glock"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}var VJ1;var QbJ=I(()=>{a0();eyJ();VJ1=T(e(),1)});function ZbJ(){return s40.jsxDEV(f,{flexDirection:"column",alignItems:"center",width:XbJ,children:[s40.jsxDEV(k01,{width:XbJ,height:13},void 0,!1,void 0,this),s40.jsxDEV(JbJ,{},void 0,!1,void 0,this),s40.jsxDEV(f,{marginTop:0,children:s40.jsxDEV(M,{dimColor:!0,children:["v","0.1.17"]},void 0,!0,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}var s40,XbJ=58;var YbJ=I(()=>{a0();Ma1();QbJ();s40=T(e(),1)});var GbJ={};X8(GbJ,{SkippableStep:()=>KbJ,Onboarding:()=>abQ});function abQ({onDone:J}){let[Q,X]=yD.useState(0),[Z,Y]=yD.useState(!1),[q]=yD.useState(()=>EP()),[K,G]=j6();yD.useEffect(()=>{l("jarvis_api_error",{oauthEnabled:q})},[q]);function z(){if(Q<O.length-1){let A=Q+1;X(A),l("jarvis_api_error",{oauthEnabled:q,stepId:O[A]?.id})}else J()}function W(A){G(A),z()}let H=B7(),B=Eq.jsxDEV(f,{marginX:1,children:Eq.jsxDEV(QZ0,{onThemeSelect:W,showIntroText:!0,helpText:"To change this later, run /theme",hideEscToCancel:!0,skipExitHandling:!0},void 0,!1,void 0,this)},void 0,!1,void 0,this),U=Eq.jsxDEV(ayJ,{onSuccess:z},void 0,!1,void 0,this),F=yD.useMemo(()=>{if(!process.env.GLOCK_API_KEY||Y$())return"";let A=ON(process.env.GLOCK_API_KEY);if(fv0(A)==="new")return A},[]);function _(A){if(A)Y(!0);z()}let O=[];if(q)O.push({id:"preflight",component:U});if(O.push({id:"theme",component:B}),F)O.push({id:"api-key",component:Eq.jsxDEV(c08,{customApiKeyTruncated:F,onDone:_},void 0,!1,void 0,this)});if(q)O.push({id:"oauth",component:Eq.jsxDEV(KbJ,{skip:Z,onSkip:z,children:Eq.jsxDEV(KX0,{onDone:z},void 0,!1,void 0,this)},void 0,!1,void 0,this)});if(dQ0())O.push({id:"terminal-setup",component:Eq.jsxDEV(f,{flexDirection:"column",gap:1,paddingLeft:1,children:[Eq.jsxDEV(M,{bold:!0,children:"Use Glock's terminal setup?"},void 0,!1,void 0,this),Eq.jsxDEV(f,{flexDirection:"column",width:70,gap:1,children:[Eq.jsxDEV(M,{children:["For the optimal coding experience, enable the recommended settings",Eq.jsxDEV(eP,{},void 0,!1,void 0,this),"for your terminal:"," ",k8.terminal==="Apple_Terminal"?"Option+Enter for newlines and visual bell":"Shift+Enter for newlines"]},void 0,!0,void 0,this),Eq.jsxDEV(Q8,{options:[{label:"Yes, use recommended settings",value:"install"},{label:"No, maybe later with /terminal-setup",value:"no"}],onChange:(A)=>{if(A==="install")yo0(K).catch(()=>{}).finally(z);else z()},onCancel:()=>z()},void 0,!1,void 0,this),Eq.jsxDEV(M,{dimColor:!0,children:H.pending?Eq.jsxDEV(Eq.Fragment,{children:["Press ",H.keyName," again to exit"]},void 0,!0,void 0,this):Eq.jsxDEV(Eq.Fragment,{children:"Enter to confirm \xB7 Esc to skip"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)});let L=O[Q],N=yD.useCallback(()=>{z()},[Q,O.length,q,J]);return C6({"confirm:no":N},{context:"Confirmation",isActive:L?.id==="terminal-setup"}),Eq.jsxDEV(f,{flexDirection:"column",children:[Eq.jsxDEV(ZbJ,{},void 0,!1,void 0,this),Eq.jsxDEV(f,{flexDirection:"column",marginTop:1,children:[L?.component,H.pending&&Eq.jsxDEV(f,{padding:1,children:Eq.jsxDEV(M,{dimColor:!0,children:["Press ",H.keyName," again to exit"]},void 0,!0,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)}function KbJ(J){let Q=qbJ.c(4),{skip:X,onSkip:Z,children:Y}=J,q,K;if(Q[0]!==Z||Q[1]!==X)q=()=>{if(X)Z()},K=[X,Z],Q[0]=Z,Q[1]=X,Q[2]=q,Q[3]=K;else q=Q[2],K=Q[3];if(yD.useEffect(q,K),X)return null;return Y}var qbJ,yD,Eq;var zbJ=I(()=>{D1();hn();Lq();a0();f6();N9();c30();m8();WZ();t1();oyJ();d08();hL0();AQ();YbJ();De0();qbJ=T(e0(),1),yD=T(J1(),1),Eq=T(e(),1)});function WbJ(J){if(J===null||J.disableAllHooks)return!1;if(J.statusLine)return!0;if(J.fileSuggestion)return!0;if(!J.hooks)return!1;for(let Q of Object.values(J.hooks))if(Q.length>0)return!0;return!1}function ObJ(){let J=[],Q=O8("projectSettings");if(WbJ(Q))J.push(".glock/settings.json");let X=O8("localSettings");if(WbJ(X))J.push(".glock/settings.local.json");return J}function HbJ(J){return J.some((Q)=>Q.ruleBehavior==="allow"&&(Q.ruleValue.toolName===O6||Q.ruleValue.toolName.startsWith(O6+"(")))}function LbJ(){let J=[],Q=pH0("projectSettings");if(HbJ(Q))J.push(".glock/settings.json");let X=pH0("localSettings");if(HbJ(X))J.push(".glock/settings.local.json");return J}function BbJ(J){return!!J?.apiKeyHelper}function VbJ(){let J=[],Q=O8("projectSettings");if(BbJ(Q))J.push(".glock/settings.json");let X=O8("localSettings");if(BbJ(X))J.push(".glock/settings.local.json");return J}function UbJ(J){return!!(J?.awsAuthRefresh||J?.awsCredentialExport)}function NbJ(){let J=[],Q=O8("projectSettings");if(UbJ(Q))J.push(".glock/settings.json");let X=O8("localSettings");if(UbJ(X))J.push(".glock/settings.local.json");return J}function FbJ(J){return!!J?.gcpAuthRefresh}function wbJ(){let J=[],Q=O8("projectSettings");if(FbJ(Q))J.push(".glock/settings.json");let X=O8("localSettings");if(FbJ(X))J.push(".glock/settings.local.json");return J}function _bJ(J){if(!J?.env)return!1;return Object.keys(J.env).some((Q)=>!bo.has(Q.toUpperCase()))}function AbJ(){let J=[],Q=O8("projectSettings");if(_bJ(Q))J.push(".glock/settings.json");let X=O8("localSettings");if(_bJ(X))J.push(".glock/settings.local.json");return J}var RbJ=I(()=>{g8();N50();gR()});var jbJ={};X8(jbJ,{TrustDialog:()=>obQ});import{homedir as MbJ}from"os";function obQ(J){let Q=DbJ.c(33),{onDone:X,commands:Z}=J,Y;if(Q[0]===Symbol.for("react.memo_cache_sentinel"))Y=rz("project"),Q[0]=Y;else Y=Q[0];let{servers:q}=Y,K;if(Q[1]===Symbol.for("react.memo_cache_sentinel"))K=Object.keys(q),Q[1]=K;else K=Q[1];let G=K.length>0,z;if(Q[2]===Symbol.for("react.memo_cache_sentinel"))z=ObJ(),Q[2]=z;else z=Q[2];let H=z.length>0,B;if(Q[3]===Symbol.for("react.memo_cache_sentinel"))B=LbJ(),Q[3]=B;else B=Q[3];let U=B,F;if(Q[4]===Symbol.for("react.memo_cache_sentinel"))F=VbJ(),Q[4]=F;else F=Q[4];let O=F.length>0,L;if(Q[5]===Symbol.for("react.memo_cache_sentinel"))L=NbJ(),Q[5]=L;else L=Q[5];let A=L.length>0,R;if(Q[6]===Symbol.for("react.memo_cache_sentinel"))R=wbJ(),Q[6]=R;else R=Q[6];let $=R.length>0,y;if(Q[7]===Symbol.for("react.memo_cache_sentinel"))y=AbJ(),Q[7]=y;else y=Q[7];let E=y.length>0,C;if(Q[9]!==Z)C=Z?.some(XPQ)??!1,Q[9]=Z,Q[10]=C;else C=Q[10];let S=C,k;if(Q[11]!==Z)k=Z?.some(JPQ)??!1,Q[11]=Z,Q[12]=k;else k=Q[12];let h=k,u=U.length>0||S||h,x=qG(),m,p;if(Q[13]!==u)m=()=>{let Z0=MbJ()===B1();l("jarvis_api_error",{isHomeDir:Z0,hasMcpServers:G,hasHooks:H,hasBashExecution:u,hasApiKeyHelper:O,hasAwsCommands:A,hasGcpCommands:$,hasDangerousEnvVars:E})},p=[G,H,u,O,A,$,E],Q[13]=u,Q[14]=m,Q[15]=p;else m=Q[14],p=Q[15];$bJ.default.useEffect(m,p);let c;if(Q[16]!==u||Q[17]!==X)c=function(t){if(t==="exit"){a9(1);return}let q0=MbJ()===B1();if(l("jarvis_api_error",{isHomeDir:q0,hasMcpServers:G,hasHooks:H,hasBashExecution:u,hasApiKeyHelper:O,hasAwsCommands:A,hasGcpCommands:$,hasDangerousEnvVars:E}),q0)n50(!0);else KG(ebQ);X()},Q[16]=u,Q[17]=X,Q[18]=c;else c=Q[18];let r=c,J0=B7(tbQ),n;if(Q[19]===Symbol.for("react.memo_cache_sentinel"))n={context:"Confirmation"},Q[19]=n;else n=Q[19];if(J8("confirm:no",sbQ,n),x)return setTimeout(X),null;let s,X0,Y0;if(Q[20]===Symbol.for("react.memo_cache_sentinel"))s=a2.jsxDEV(M,{bold:!0,children:Y1().cwd()},void 0,!1,void 0,this),X0=a2.jsxDEV(M,{children:["Quick safety check: Is this a project you created or one you trust? (Like your own code, a well-known open source project, or work from your team). If not, take a moment to review what","'","s in this folder first."]},void 0,!0,void 0,this),Y0=a2.jsxDEV(M,{children:["Glock","'","ll be able to read, edit, and execute files here."]},void 0,!0,void 0,this),Q[20]=s,Q[21]=X0,Q[22]=Y0;else s=Q[20],X0=Q[21],Y0=Q[22];let G0;if(Q[23]===Symbol.for("react.memo_cache_sentinel"))G0=a2.jsxDEV(M,{dimColor:!0,children:a2.jsxDEV(zJ,{url:"https://docs.getglock.dev/en/security",children:"Security guide"},void 0,!1,void 0,this)},void 0,!1,void 0,this),Q[23]=G0;else G0=Q[23];let j0;if(Q[24]===Symbol.for("react.memo_cache_sentinel"))j0=[{label:"Yes, I trust this folder",value:"enable_all"},{label:"No, exit",value:"exit"}],Q[24]=j0;else j0=Q[24];let W0;if(Q[25]!==r)W0=a2.jsxDEV(Q8,{options:j0,onChange:(Z0)=>r(Z0),onCancel:()=>r("exit")},void 0,!1,void 0,this),Q[25]=r,Q[26]=W0;else W0=Q[26];let y0;if(Q[27]!==J0.keyName||Q[28]!==J0.pending)y0=a2.jsxDEV(M,{dimColor:!0,children:J0.pending?a2.jsxDEV(a2.Fragment,{children:["Press ",J0.keyName," again to exit"]},void 0,!0,void 0,this):a2.jsxDEV(a2.Fragment,{children:"Enter to confirm \xB7 Esc to cancel"},void 0,!1,void 0,this)},void 0,!1,void 0,this),Q[27]=J0.keyName,Q[28]=J0.pending,Q[29]=y0;else y0=Q[29];let V0;if(Q[30]!==W0||Q[31]!==y0)V0=a2.jsxDEV(OZ,{color:"warning",titleColor:"warning",title:"Accessing workspace:",children:a2.jsxDEV(f,{flexDirection:"column",gap:1,paddingTop:1,children:[s,X0,Y0,G0,W0,y0]},void 0,!0,void 0,this)},void 0,!1,void 0,this),Q[30]=W0,Q[31]=y0,Q[32]=V0;else V0=Q[32];return V0}function sbQ(){a9(0)}function tbQ(){return a9(1)}function ebQ(J){return{...J,hasTrustDialogAccepted:!0}}function JPQ(J){return J.type==="prompt"&&(J.loadedFrom==="skills"||J.loadedFrom==="plugin")&&(J.source==="projectSettings"||J.source==="localSettings"||J.source==="plugin")&&J.allowedTools?.some(QPQ)}function QPQ(J){return J===O6||J.startsWith(O6+"(")}function XPQ(J){return J.type==="prompt"&&J.loadedFrom==="commands_DEPRECATED"&&(J.source==="projectSettings"||J.source==="localSettings")&&J.allowedTools?.some(ZPQ)}function ZPQ(J){return J===O6||J.startsWith(O6+"(")}var DbJ,$bJ,a2;var IbJ=I(()=>{D1();N1();Lq();a0();f6();HL();m8();Z6();H6();E5();tX();TH();RbJ();DbJ=T(e0(),1),$bJ=T(J1(),1),a2=T(e(),1)});var PbJ={};X8(PbJ,{BypassPermissionsModeDialog:()=>YPQ});function YPQ(J){let Q=ybJ.c(7),{onAccept:X}=J,Z;if(Q[0]===Symbol.for("react.memo_cache_sentinel"))Z=[],Q[0]=Z;else Z=Q[0];bbJ.default.useEffect(KPQ,Z);let Y;if(Q[1]!==X)Y=function(B){J:switch(B){case"accept":{l("jarvis_api_error",{}),y6("userSettings",{skipDangerousModePermissionPrompt:!0}),X();break J}case"decline":a9(1)}},Q[1]=X,Q[2]=Y;else Y=Q[2];let q=Y,K=qPQ,G;if(Q[3]===Symbol.for("react.memo_cache_sentinel"))G=fg.jsxDEV(f,{flexDirection:"column",gap:1,children:[fg.jsxDEV(M,{children:["In Bypass Permissions mode, Glock will not ask for your approval before running potentially dangerous commands.",fg.jsxDEV(eP,{},void 0,!1,void 0,this),"This mode should only be used in a sandboxed container/VM that has restricted internet access and can easily be restored if damaged."]},void 0,!0,void 0,this),fg.jsxDEV(M,{children:"By proceeding, you accept all responsibility for actions taken while running in Bypass Permissions mode."},void 0,!1,void 0,this),fg.jsxDEV(zJ,{url:"https://docs.getglock.dev/en/security"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),Q[3]=G;else G=Q[3];let z;if(Q[4]===Symbol.for("react.memo_cache_sentinel"))z=[{label:"No, exit",value:"decline"},{label:"Yes, I accept",value:"accept"}],Q[4]=z;else z=Q[4];let W;if(Q[5]!==q)W=fg.jsxDEV(D8,{title:"WARNING: Glock running in Bypass Permissions mode",color:"error",onCancel:K,children:[G,fg.jsxDEV(Q8,{options:z,onChange:(H)=>q(H)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),Q[5]=q,Q[6]=W;else W=Q[6];return W}function qPQ(){a9(0)}function KPQ(){l("jarvis_api_error",{})}var ybJ,bbJ,fg;var EbJ=I(()=>{D1();a0();E5();g8();tX();M9();ybJ=T(e0(),1),bbJ=T(J1(),1),fg=T(e(),1)});import{appendFileSync as GPQ}from"fs";function zPQ(){q8((J)=>({...J,hasCompletedOnboarding:!0,lastOnboardingVersion:"0.1.17"}))}function WPQ(J,Q){return new Promise((X)=>{let Z=(Y)=>void X(Y);J.render(Q(Z))})}async function TbJ(J,Q,X){return HPQ(J,Q,{color:"error",beforeExit:X})}async function HPQ(J,Q,X){let{Text:Z}=await Promise.resolve().then(() => (a0(),Fj1)),Y=X?.color,q=X?.exitCode??1;J.render(Y?bD.jsxDEV(Z,{color:Y,children:Q},void 0,!1,void 0,this):bD.jsxDEV(Z,{children:Q},void 0,!1,void 0,this)),J.unmount(),await X?.beforeExit?.(),process.exit(q)}function Sg(J,Q,X){return WPQ(J,(Z)=>bD.jsxDEV(b2,{onChangeAppState:X?.onChangeAppState,children:bD.jsxDEV(S2,{children:Q(Z)},void 0,!1,void 0,this)},void 0,!1,void 0,this))}async function n08(J,Q){J.render(Q),NJ1(),await J.waitUntilExit(),await c4(0)}async function CbJ(J,Q,X,Z,Y){if(W1(!1)||process.env.IS_DEMO)return!1;let q=L1(),K=!1;if(!q.theme||!q.hasCompletedOnboarding){K=!0;let{Onboarding:G}=await Promise.resolve().then(() => (zbJ(),GbJ));await Sg(J,(z)=>bD.jsxDEV(G,{onDone:()=>{zPQ(),z()}},void 0,!1,void 0,this),{onChangeAppState:rr})}if(!W1(process.env.CLAUBBIT)){if(!qG()){let{TrustDialog:z}=await Promise.resolve().then(() => (IbJ(),jbJ));await Sg(J,(W)=>bD.jsxDEV(z,{commands:Z,onDone:W},void 0,!1,void 0,this))}n50(!0),vZ1(),GK0(),Nq();let{errors:G}=VC();if(G.length===0)await myJ(J);if(await JOJ()){let z=qN0(await eG(!0)),{GlockMdExternalIncludesDialog:W}=await Promise.resolve().then(() => (Fn1(),qXJ));await Sg(J,(H)=>bD.jsxDEV(W,{onDone:H,isStandaloneDialog:!0,externalIncludes:z},void 0,!1,void 0,this))}}if(dyJ(),Bg(),await KZ0()){let{GroveDialog:G}=await Promise.resolve().then(() => (Eo1(),LHJ));if(await Sg(J,(W)=>bD.jsxDEV(G,{showIfAlreadyViewed:!1,location:K?"onboarding":"policy_update_modal",onDone:W},void 0,!1,void 0,this))==="escape")return l("jarvis_api_error",{}),a9(0),!1}if(process.env.GLOCK_API_KEY&&!Y$()){let G=ON(process.env.GLOCK_API_KEY);if(fv0(G)==="new"){let{ApproveApiKey:W}=await Promise.resolve().then(() => (d08(),tyJ));await Sg(J,(H)=>bD.jsxDEV(W,{customApiKeyTruncated:G,onDone:H},void 0,!1,void 0,this),{onChangeAppState:rr})}}if((Q==="bypassPermissions"||X)&&!Xe()){let{BypassPermissionsModeDialog:G}=await Promise.resolve().then(() => (EbJ(),PbJ));await Sg(J,(z)=>bD.jsxDEV(G,{onAccept:z},void 0,!1,void 0,this))}return K}function vbJ(J){let Q=0,X=XX0(J);if(X.stdin)l("jarvis_api_error",{});let Z=new p08,Y=rs1(),q=process.env.GLOCK_FRAME_TIMING_LOG;return{getFpsMetrics:()=>Z.getMetrics(),stats:Y,renderOptions:{...X,onFrame:(K)=>{if(Z.record(K.durationMs),Y.observe("frame_duration_ms",K.durationMs),q&&K.phases){let G=JSON.stringify({total:K.durationMs,...K.phases,rss:process.memoryUsage.rss(),cpu:process.cpuUsage()})+`
|
|
6958
6958
|
`;GPQ(q,G)}if(A$1())return;for(let G of K.flickers){if(G.reason==="resize")continue;let z=Date.now();if(z-Q<1000)l("jarvis_api_error",{desiredHeight:G.desiredHeight,actualHeight:G.availableHeight,reason:G.reason});Q=z}}}}}var bD;var r08=I(()=>{D1();E5();N1();as1();UL();aP();Gu();a08();GZ0();pyJ();W6();Dw0();c30();ez();m8();cyJ();t1();lyJ();Nw0();eo0();tV0();g8();bD=T(e(),1)});function BPQ(J,Q,X,Z){return Z=typeof Z=="function"?Z:void 0,J==null?J:lD0(J,Q,X,Z)}var fbJ;var SbJ=I(()=>{zZ1();fbJ=BPQ});function xbJ(J,Q={}){let{showValues:X=!0,hideFunctions:Z=!1,themeName:Y="dark",treeCharColors:q={}}=Q,K=[],G=new WeakSet;function z(B,U){if(!U)return B;return G6(U,Y)(B)}function W(B,U,F,_=0){if(typeof B==="string"){K.push(U+z(B,q.value));return}if(typeof B!=="object"||B===null){if(X){let L=String(B);K.push(U+z(L,q.value))}return}if(G.has(B)){K.push(U+z("[Circular]",q.value));return}G.add(B);let O=Object.keys(B).filter((L)=>{let N=B[L];if(Z&&typeof N==="function")return!1;return!0});O.forEach((L,N)=>{let A=B[L],R=N===O.length-1,D=_===0&&N===0?"":U,$=R?RA0.lastBranch:RA0.branch,y=z($,q.treeChar),v=L.trim()===""?"":z(L,q.key),E=D+y+(v?" "+v:""),C=L.trim()!=="";if(A&&typeof A==="object"&&G.has(A)){let S=z("[Circular]",q.value);K.push(E+(C?": ":E?" ":"")+S)}else if(A&&typeof A==="object"&&!Array.isArray(A)){K.push(E);let S=R?RA0.empty:RA0.line,k=z(S,q.treeChar),h=D+k+" ";W(A,h,R,_+1)}else if(Array.isArray(A))K.push(E+(C?": ":E?" ":"")+"[Array("+A.length+")]");else if(X){let S=typeof A==="function"?"[Function]":String(A),k=z(S,q.value);E+=(C?": ":E?" ":"")+k,K.push(E)}else K.push(E)})}let H=Object.keys(J);if(H.length===0)return z("(empty)",q.value);if(H.length===1&&H[0]!==void 0&&H[0].trim()===""&&typeof J[H[0]]==="string"){let B=H[0],U=z(RA0.lastBranch,q.treeChar),F=z(J[B],q.value);return U+" "+F}return W(J,"",!0),K.join(`
|
|
6959
6959
|
`)}var RA0;var kbJ=I(()=>{r6();jd();RA0={branch:s0.lineUpDownRight,lastBranch:s0.lineUpRight,line:s0.lineVertical,empty:" "}});function UPQ(J){let Q={};return J.forEach((X)=>{if(!X.path){Q[""]=X.message;return}let Z=X.path.split("."),Y=X.path;if(X.invalidValue!==null&&X.invalidValue!==void 0&&Z.length>0){let q=[];for(let K=0;K<Z.length;K++){let G=Z[K];if(!G)continue;let z=parseInt(G,10);if(!isNaN(z)&&K===Z.length-1){let W;if(typeof X.invalidValue==="string")W=`"${X.invalidValue}"`;else if(X.invalidValue===null)W="null";else if(X.invalidValue===void 0)W="undefined";else W=String(X.invalidValue);q.push(W)}else q.push(G)}Y=q.join(".")}fbJ(Q,Y,X.message,Object)}),Q}function ubJ(J){let Q=hbJ.c(9),{errors:X}=J,[Z]=j6();if(X.length===0)return null;let Y,q,K;if(Q[0]!==X||Q[1]!==Z){let z=X.reduce(OPQ,{}),W=Object.keys(z).sort();Y=f,q="column",K=W.map((H)=>{let B=z[H]||[];B.sort(_PQ);let U=UPQ(B),F=new Map;B.forEach((O)=>{if(O.suggestion||O.docLink){let L=`${O.suggestion||""}|${O.docLink||""}`;if(!F.has(L))F.set(L,{suggestion:O.suggestion,docLink:O.docLink})}});let _=xbJ(U,{showValues:!0,themeName:Z,treeCharColors:{treeChar:"inactive",key:"text",value:"inactive"}});return Ly.jsxDEV(f,{flexDirection:"column",children:[Ly.jsxDEV(M,{children:H},void 0,!1,void 0,this),Ly.jsxDEV(f,{marginLeft:1,children:Ly.jsxDEV(M,{dimColor:!0,children:_},void 0,!1,void 0,this)},void 0,!1,void 0,this),F.size>0&&Ly.jsxDEV(f,{flexDirection:"column",marginTop:1,children:Array.from(F.values()).map(FPQ)},void 0,!1,void 0,this)]},H,!0,void 0,this)}),Q[0]=X,Q[1]=Z,Q[2]=Y,Q[3]=q,Q[4]=K}else Y=Q[2],q=Q[3],K=Q[4];let G;if(Q[5]!==Y||Q[6]!==q||Q[7]!==K)G=Ly.jsxDEV(Y,{flexDirection:q,children:K},void 0,!1,void 0,this),Q[5]=Y,Q[6]=q,Q[7]=K,Q[8]=G;else G=Q[8];return G}function FPQ(J,Q){return Ly.jsxDEV(f,{flexDirection:"column",marginBottom:1,children:[J.suggestion&&Ly.jsxDEV(M,{dimColor:!0,wrap:"wrap",children:J.suggestion},void 0,!1,void 0,this),J.docLink&&Ly.jsxDEV(M,{dimColor:!0,wrap:"wrap",children:["Learn more: ",J.docLink]},void 0,!0,void 0,this)]},`suggestion-pair-${Q}`,!0,void 0,this)}function _PQ(J,Q){if(!J.path&&Q.path)return-1;if(J.path&&!Q.path)return 1;return(J.path||"").localeCompare(Q.path||"")}function OPQ(J,Q){let X=Q.file||"(file not specified)";if(!J[X])J[X]=[];return J[X].push(Q),J}var hbJ,Ly;var gbJ=I(()=>{SbJ();a0();kbJ();hbJ=T(e0(),1),Ly=T(e(),1)});var pbJ={};X8(pbJ,{InvalidSettingsDialog:()=>LPQ});function LPQ(J){let Q=mbJ.c(13),{settingsErrors:X,onContinue:Z,onExit:Y}=J,q;if(Q[0]!==Z||Q[1]!==Y)q=function(F){if(F==="exit")Y();else Z()},Q[0]=Z,Q[1]=Y,Q[2]=q;else q=Q[2];let K=q,G;if(Q[3]!==X)G=MA0.jsxDEV(ubJ,{errors:X},void 0,!1,void 0,this),Q[3]=X,Q[4]=G;else G=Q[4];let z;if(Q[5]===Symbol.for("react.memo_cache_sentinel"))z=MA0.jsxDEV(M,{dimColor:!0,children:"Files with errors are skipped entirely, not just the invalid settings."},void 0,!1,void 0,this),Q[5]=z;else z=Q[5];let W;if(Q[6]===Symbol.for("react.memo_cache_sentinel"))W=[{label:"Exit and fix manually",value:"exit"},{label:"Continue without these settings",value:"continue"}],Q[6]=W;else W=Q[6];let H;if(Q[7]!==K)H=MA0.jsxDEV(Q8,{options:W,onChange:K},void 0,!1,void 0,this),Q[7]=K,Q[8]=H;else H=Q[8];let B;if(Q[9]!==Y||Q[10]!==G||Q[11]!==H)B=MA0.jsxDEV(D8,{title:"Settings Error",onCancel:Y,color:"warning",children:[G,z,H]},void 0,!0,void 0,this),Q[9]=Y,Q[10]=G,Q[11]=H,Q[12]=B;else B=Q[12];return B}var mbJ,MA0;var cbJ=I(()=>{a0();tX();M9();gbJ();mbJ=T(e0(),1),MA0=T(e(),1)});async function dbJ(J,Q){let{InvalidSettingsDialog:X}=await Promise.resolve().then(() => (cbJ(),pbJ));return Sg(J,(Z)=>lbJ.jsxDEV(X,{settingsErrors:Q.settingsErrors,onContinue:Z,onExit:Q.onExit},void 0,!1,void 0,this))}var lbJ;var ibJ=I(()=>{r08();Gu();lbJ=T(e(),1)});function nbJ(){}function NPQ(J){return`# Batch: Parallel Work Orchestration
|
|
6960
6960
|
|
|
@@ -7801,7 +7801,7 @@ If a hook isn't running:
|
|
|
7801
7801
|
${J}`);return[{type:"text",text:Q.join(`
|
|
7802
7802
|
|
|
7803
7803
|
`)}]}})}var PPJ,sPQ,tPQ;var TPJ=I(()=>{eO();GA();bPJ();({frontmatter:PPJ,content:sPQ}=FG(IPJ)),tPQ=typeof PPJ.description==="string"?PPJ.description:"Verify a code change does what it should by running the app."});function CPJ(){NPJ(),XPJ(),EPJ(),tbJ(),KPJ(),UPJ(),zPJ(),HPJ(),obJ(),_PJ()}var vPJ=I(()=>{sbJ();ebJ();ZPJ();GPJ();WPJ();BPJ();FPJ();OPJ();wPJ();TPJ()});async function fPJ(){if(!await TW("gh"))return"not_installed";let{exitCode:Q}=await jZ("gh",["auth","token"],{stdout:"ignore",stderr:"ignore",timeout:5000,reject:!1});return Q===0?"authenticated":"not_authenticated"}var SPJ=I(()=>{uU();rA()});function xPJ(){let J=L1();if(J.autoUpdates!==!1||J.autoUpdatesProtectedForNative===!0)return;try{let Q=O8("userSettings")||{};y6("userSettings",{...Q,env:{...Q.env,DISABLE_AUTOUPDATER:"1"}}),l("jarvis_api_error",{was_user_preference:!0,already_had_env_var:!!Q.env?.DISABLE_AUTOUPDATER}),process.env.DISABLE_AUTOUPDATER="1",q8((X)=>{let{autoUpdates:Z,autoUpdatesProtectedForNative:Y,...q}=X;return q})}catch(Q){H0(Error(`Failed to migrate auto-updates: ${Q}`)),l("jarvis_api_error",{has_error:!0})}}var kPJ=I(()=>{D1();m8();M1();g8()});function hPJ(){if(!L1().bypassPermissionsModeAccepted)return;try{if(!Xe())y6("userSettings",{skipDangerousModePermissionPrompt:!0});l("jarvis_api_error",{}),q8((Q)=>{if(!("bypassPermissionsModeAccepted"in Q))return Q;let{bypassPermissionsModeAccepted:X,...Z}=Q;return Z})}catch(Q){H0(Error(`Failed to migrate bypass permissions accepted: ${Q}`))}}var uPJ=I(()=>{D1();m8();M1();g8()});function gPJ(){let J=RK(),Q=J.enableAllProjectMcpServers!==void 0,X=J.enabledMcpjsonServers&&J.enabledMcpjsonServers.length>0,Z=J.disabledMcpjsonServers&&J.disabledMcpjsonServers.length>0;if(!Q&&!X&&!Z)return;try{let Y=O8("localSettings")||{},q={},K=[];if(Q&&Y.enableAllProjectMcpServers===void 0)q.enableAllProjectMcpServers=J.enableAllProjectMcpServers,K.push("enableAllProjectMcpServers");else if(Q)K.push("enableAllProjectMcpServers");if(X&&J.enabledMcpjsonServers){let G=Y.enabledMcpjsonServers||[];q.enabledMcpjsonServers=[...new Set([...G,...J.enabledMcpjsonServers])],K.push("enabledMcpjsonServers")}if(Z&&J.disabledMcpjsonServers){let G=Y.disabledMcpjsonServers||[];q.disabledMcpjsonServers=[...new Set([...G,...J.disabledMcpjsonServers])],K.push("disabledMcpjsonServers")}if(Object.keys(q).length>0)y6("localSettings",q);if(K.includes("enableAllProjectMcpServers")||K.includes("enabledMcpjsonServers")||K.includes("disabledMcpjsonServers"))KG((G)=>{let{enableAllProjectMcpServers:z,enabledMcpjsonServers:W,disabledMcpjsonServers:H,...B}=G;return B});l("jarvis_api_error",{migratedCount:K.length})}catch(Y){H0(Y),l("jarvis_api_error",{})}}var mPJ=I(()=>{D1();m8();M1();g8()});var pPJ=I(()=>{D1();m8();M1();JW();g8()});import{dirname as ePQ,join as dPJ}from"path";function iPJ(){return dPJ(Np.errors(),lPJ+".jsonl")}function e08(J){return dPJ(Np.mcpLogs(J),lPJ+".jsonl")}function JEQ(J){let Q=Zs(J);return{write(X){Q.write(l0(X)+`
|
|
7804
|
-
`)},flush:Q.flush,dispose:Q.dispose}}function J18(J){let Q=cPJ.get(J);if(!Q){let X=ePQ(J);Q=JEQ({writeFn:(Z)=>{try{Y1().appendFileSync(J,Z)}catch{Y1().mkdirSync(X),Y1().appendFileSync(J,Z)}},flushIntervalMs:1000,maxBufferSize:50}),cPJ.set(J,Q),UJ(async()=>Q?.dispose())}return Q}function QEQ(J,Q){if(process.env.USER_TYPE!=="ant")return;let X={timestamp:new Date().toISOString(),...Q,cwd:Y1().cwd(),userType:process.env.USER_TYPE,sessionId:A1(),version:"0.1.
|
|
7804
|
+
`)},flush:Q.flush,dispose:Q.dispose}}function J18(J){let Q=cPJ.get(J);if(!Q){let X=ePQ(J);Q=JEQ({writeFn:(Z)=>{try{Y1().appendFileSync(J,Z)}catch{Y1().mkdirSync(X),Y1().appendFileSync(J,Z)}},flushIntervalMs:1000,maxBufferSize:50}),cPJ.set(J,Q),UJ(async()=>Q?.dispose())}return Q}function QEQ(J,Q){if(process.env.USER_TYPE!=="ant")return;let X={timestamp:new Date().toISOString(),...Q,cwd:Y1().cwd(),userType:process.env.USER_TYPE,sessionId:A1(),version:"0.1.17"};J18(J).write(X)}function XEQ(J){if(typeof J==="string")return J;if(J&&typeof J==="object"){let Q=J;if(typeof Q.message==="string")return Q.message;if(typeof Q.error==="object"&&Q.error&&"message"in Q.error&&typeof Q.error.message==="string")return Q.error.message}return}function ZEQ(J){let Q=J.stack||J.message,X="";if(y8.isAxiosError(J)&&J.config?.url){let Z=[`url=${J.config.url}`];if(J.response?.status!==void 0)Z.push(`status=${J.response.status}`);let Y=XEQ(J.response?.data);if(Y)Z.push(`body=${Y}`);X=`[${Z.join(",")}] `}b(`${J.name}: ${X}${Q}`,{level:"error"}),QEQ(iPJ(),{error:`${X}${Q}`})}function YEQ(J,Q){b(`MCP server "${J}" ${Q}`,{level:"error"});let X=e08(J),Y={error:Q instanceof Error?Q.stack||Q.message:String(Q),timestamp:new Date().toISOString(),sessionId:A1(),cwd:Y1().cwd()};J18(X).write(Y)}function qEQ(J,Q){b(`MCP server "${J}": ${Q}`);let X=e08(J),Z={debug:Q,timestamp:new Date().toISOString(),sessionId:A1(),cwd:Y1().cwd()};J18(X).write(Z)}function nPJ(){JH8({logError:ZEQ,logMCPError:YEQ,logMCPDebug:qEQ,getErrorsPath:iPJ,getMCPLogsPath:e08}),b("Error log sink initialized")}var lPJ,cPJ;var rPJ=I(()=>{JX();N1();mj0();EX();Z1();H6();M1();i1();lPJ=eW8(new Date);cPJ=new Map});var aPJ={};X8(aPJ,{initSinks:()=>Q18});function Q18(){nPJ(),vyJ()}var X18=I(()=>{u08();rPJ()});import{writeFile as oPJ}from"fs/promises";function KEQ(){return Y8("jarvis_api_error",!1)}function GEQ(){return Fb("jarvis_api_error",{})}function zEQ(J,Q){let X=0,Z=Q===null||Q===void 0;for(let Y of J){if(!Z){if(Y.uuid===Q)Z=!0;continue}if(Y.type==="assistant"){let q=Y.message.content;if(Array.isArray(q))X+=x8(q,(K)=>K.type==="tool_use")}}return X}function WEQ(J){let Q=gF(J);if(!wF6()){if(!RF6(Q))return!1;AF6()}let X=MF6(Q),Y=zEQ(J,sPJ)>=DF6(),q=PV0(J);if(X&&Y||X&&!q){let G=J[J.length-1];if(G?.uuid)sPJ=G.uuid;return!0}return!1}async function HEQ(J){let Q=Y1(),X=lt0();await Q.mkdir(X,{mode:448});let Z=C60();try{await oPJ(Z,"",{encoding:"utf-8",mode:384,flag:"wx"});let G=await gg1();await oPJ(Z,G,{encoding:"utf-8",mode:384})}catch(G){if(c8(G)!=="EEXIST")throw G}J.readFileState.delete(Z);let Y=await nQ.call({file_path:Z},J),q="",K=Y.data;if(K.type==="text")q=K.file.content;return l("jarvis_api_error",{content_length:q.length}),{memoryPath:Z,currentMemory:q}}function ePJ(){if(S9())return;let J=Ow();if(process.env.USER_TYPE==="ant")l("jarvis_api_error",{auto_compact_enabled:J});if(!J)return;Ra0(UEQ)}function FEQ(J){return async(Q,X)=>{if(Q.name===fJ&&typeof X==="object"&&X!==null&&"file_path"in X){let Z=X.file_path;if(typeof Z==="string"&&Z===J)return{behavior:"allow",updatedInput:X}}return{behavior:"deny",message:`only ${fJ} on ${J} is allowed`,decisionReason:{type:"other",reason:`only ${fJ} on ${J} is allowed`}}}}function _EQ(J){if(!PV0(J)){let Q=J[J.length-1];if(Q?.uuid)Kk(Q.uuid)}}var sPJ,BEQ,tPJ=!1,UEQ;var JEJ=I(()=>{IJ();N1();Lw();UL();cM();G_();H6();XL0();M8();vX();hB();D1();JT();mg1();Dl();T1();BEQ=g1(()=>{let J=GEQ(),Q={minimumMessageTokensToInit:J.minimumMessageTokensToInit&&J.minimumMessageTokensToInit>0?J.minimumMessageTokensToInit:IU0.minimumMessageTokensToInit,minimumTokensBetweenUpdate:J.minimumTokensBetweenUpdate&&J.minimumTokensBetweenUpdate>0?J.minimumTokensBetweenUpdate:IU0.minimumTokensBetweenUpdate,toolCallsBetweenUpdates:J.toolCallsBetweenUpdates&&J.toolCallsBetweenUpdates>0?J.toolCallsBetweenUpdates:IU0.toolCallsBetweenUpdates};LF6(Q)}),UEQ=db(async function(J){let{messages:Q,toolUseContext:X,querySource:Z}=J;if(Z!=="repl_main_thread")return;if(!KEQ()){if(process.env.USER_TYPE==="ant"&&!tPJ)tPJ=!0,l("jarvis_api_error",{});return}if(BEQ(),!WEQ(Q))return;FF6();let Y=qO0(X),{memoryPath:q,currentMemory:K}=await HEQ(Y),G=await yl6(K,q);await C2({promptMessages:[$1({content:G})],cacheSafeParams:JD(J),canUseTool:FEQ(q),querySource:"session_memory",forkLabel:"session_memory",overrides:{readFileState:Y.readFileState}});let z=Q[Q.length-1],W=z?Tj(z):void 0,H=VF6();l("jarvis_api_error",{input_tokens:W?.input_tokens,output_tokens:W?.output_tokens,cache_read_input_tokens:W?.cache_read_input_tokens??void 0,cache_creation_input_tokens:W?.cache_creation_input_tokens??void 0,config_min_message_tokens_to_init:H.minimumMessageTokensToInit,config_min_tokens_between_update:H.minimumTokensBetweenUpdate,config_tool_calls_between_updates:H.toolCallsBetweenUpdates}),NF6(gF(Q)),_EQ(Q),_F6()})});import{copyFile as OEQ,stat as LEQ}from"fs/promises";import{homedir as VEQ}from"os";import{join as NEQ}from"path";function AJ1(){q8((J)=>({...J,iterm2SetupInProgress:!1}))}function wEQ(){let J=L1();return{inProgress:J.iterm2SetupInProgress??!1,backupPath:J.iterm2BackupPath||null}}function AEQ(){return NEQ(VEQ(),"Library","Preferences","com.googlecode.iterm2.plist")}async function QEJ(){let{inProgress:J,backupPath:Q}=wEQ();if(!J)return{status:"no_backup"};if(!Q)return AJ1(),{status:"no_backup"};try{await LEQ(Q)}catch{return AJ1(),{status:"no_backup"}}try{return await OEQ(Q,AEQ()),AJ1(),{status:"restored"}}catch(X){return H0(Error(`Failed to restore iTerm2 settings with: ${X}`)),AJ1(),{status:"failed",backupPath:Q}}}var XEJ=I(()=>{m8();M1()});async function ZEJ(){if(MJ1)return MJ1;let J=A1();return MJ1=zX0(10).then((Q)=>{return RJ1=Q.filter((X)=>{if(X.isSidechain)return!1;if(X.sessionId===J)return!1;if(X.summary?.includes("I apologize"))return!1;let Z=X.summary&&X.summary!=="No prompt",Y=X.firstPrompt&&X.firstPrompt!=="No prompt";return Z||Y}).slice(0,3),RJ1}).catch(()=>{return RJ1=[],RJ1}),MJ1}var RJ1,MJ1=null;var YEJ=I(()=>{N1();x7();N9();Z6();V9();A6();SN0();gJ();g8();RJ1=[]});var qEJ={};X8(qEJ,{setup:()=>REQ});async function REQ(J,Q,X,Z,Y,q,K,G,z){n1("info","setup_started");let W=process.version.match(/^v(\d+)\./)?.[1];if(!W||parseInt(W)<18)console.error(_1.bold.red("Error: Glock requires Node.js version 18 or higher.")),process.exit(1);if(K)bV(w2(K));if(!y7()||z!==void 0);if(!y7()&&p6()){let{captureTeammateModeSnapshot:F}=await Promise.resolve().then(() => (c70(),Ym6));F()}if(!x6()){if(p6()){let F=await QEJ();if(F.status==="restored")console.log(_1.yellow("Detected an interrupted iTerm2 setup. Your original settings have been restored. You may need to restart iTerm2 for the changes to take effect."));else if(F.status==="failed")console.error(_1.red(`Failed to restore iTerm2 settings. Please manually restore your original settings with: defaults import com.googlecode.iterm2 ${F.backupPath}.`))}try{let F=await $o0();if(F.status==="restored")console.log(_1.yellow("Detected an interrupted Terminal.app setup. Your original settings have been restored. You may need to restart Terminal.app for the changes to take effect."));else if(F.status==="failed")console.error(_1.red(`Failed to restore Terminal.app settings. Please manually restore your original settings with: defaults import com.apple.Terminal ${F.backupPath}.`))}catch(F){H0(F)}}Dq(J);let H=Date.now();if(cI1(),n1("info","setup_hooks_captured",{duration_ms:Date.now()-H}),Tk6(J),Z){let F=mX0(),_=await y3();if(!F&&!_)process.stderr.write(_1.red(`Error: Can only use --worktree in a git repository, but ${_1.bold(J)} is not a git repository. Configure a WorktreeCreate hook in settings.json to use --worktree with other VCS systems.
|
|
7805
7805
|
`)),process.exit(1);let O=G?`pr-${G}`:Y??Zj(),L;if(_){let A=kG(B1());if(!A)process.stderr.write(_1.red(`Error: Could not determine the main git repository root.
|
|
7806
7806
|
`)),process.exit(1);if(A!==(IZ(B1())??B1()))n1("info","worktree_resolved_to_main_repo"),process.chdir(A),Dq(A);L=q?ol1(A,xV0(O)):void 0}else L=q?ol1(B1(),xV0(O)):void 0;let N;try{N=await _t0(A1(),O,L,G?{prNumber:G}:void 0)}catch(A){process.stderr.write(_1.red(`Error creating worktree: ${Q1(A)}
|
|
7807
7807
|
`)),process.exit(1)}if(l("jarvis_api_error",{tmux_enabled:q}),q&&L){let A=await q9J(L,N.worktreePath);if(A.created)console.log(_1.green(`Created tmux session: ${_1.bold(L)}
|
|
@@ -7825,7 +7825,7 @@ To attach: ${_1.bold(`tmux attach -t ${L}`)}`));else console.error(_1.yellow(`Wa
|
|
|
7825
7825
|
`);else process.stderr.write(`${IEJ} ${G}
|
|
7826
7826
|
`),b(`streamJsonStdoutGuard diverted non-JSON stdout line: ${G.slice(0,200)}`)}let K=typeof Q==="function"?Q:X;if(K)queueMicrotask(()=>K());return q},UJ(async()=>{if(Vy.length>0){if(ja&&yEJ(Vy))ja(Vy+`
|
|
7827
7827
|
`);else process.stderr.write(`${IEJ} ${Vy}
|
|
7828
|
-
`);Vy=""}if(ja)process.stdout.write=ja,ja=null;O18=!1})}var IEJ="[stdout-guard]",O18=!1,Vy="",ja=null;var PEJ=I(()=>{EX();Z1()});async function L18({tools:J,mainLoopModel:Q,additionalWorkingDirectories:X,mcpClients:Z,customSystemPrompt:Y}){let[q,K,G]=await Promise.all([Y!==void 0?Promise.resolve([]):wH(J,Q,X,Z),G5(),Y!==void 0?Promise.resolve({}):Nq()]);return{defaultSystemPrompt:q,userContext:K,systemContext:G}}async function EEJ({tools:J,commands:Q,mcpClients:X,messages:Z,readFileState:Y,getAppState:q,setAppState:K,customSystemPrompt:G,appendSystemPrompt:z,thinkingConfig:W,agents:H}){let B=ZX(),U=q(),{defaultSystemPrompt:F,userContext:_,systemContext:O}=await L18({tools:J,mainLoopModel:B,additionalWorkingDirectories:Array.from(U.toolPermissionContext.additionalWorkingDirectories.keys()),mcpClients:X,customSystemPrompt:G}),L=j9([...G!==void 0?[G]:F,...z?[z]:[]]),N=Z.at(-1),A=N?.type==="assistant"&&N.message.stop_reason===null?Z.slice(0,-1):Z,R={options:{commands:Q,debug:!1,mainLoopModel:B,tools:J,verbose:!1,thinkingConfig:W??(sk()!==!1?{type:"adaptive"}:{type:"disabled"}),mcpClients:X,mcpResources:{},isNonInteractiveSession:!0,agentDefinitions:{activeAgents:H,allAgents:[]},customSystemPrompt:G,appendSystemPrompt:z},abortController:u7(),readFileState:Y,getAppState:q,setAppState:K,messages:A,setInProgressToolUseIDs:()=>{},setResponseLength:()=>{},updateFileHistoryState:()=>{},updateAttributionState:()=>{}};return{systemPrompt:L,userContext:_,systemContext:O,toolUseContext:R,forkContextMessages:A}}var V18=I(()=>{Lw();UL();nq();CJ();EM()});import{randomUUID as gTQ}from"crypto";function N18(J){return J===KJ?mf:J}function TEJ(J){let X=q6()?.outputStyle??F2,Z={type:"system",subtype:"init",cwd:B1(),session_id:A1(),tools:J.tools.map((Y)=>N18(Y.name)),mcp_servers:J.mcpClients.map((Y)=>({name:Y.name,status:Y.type})),model:J.model,permissionMode:J.permissionMode,slash_commands:J.commands.filter((Y)=>Y.userInvocable!==!1).map((Y)=>Y.name),apiKeySource:pq().source,betas:$3(),glock_version:"0.1.16",output_style:X,agents:J.agents.map((Y)=>Y.agentType),skills:J.skills.filter((Y)=>Y.userInvocable!==!1).map((Y)=>Y.name),plugins:J.plugins.map((Y)=>({name:Y.name,path:Y.path,source:Y.source})),uuid:gTQ()};return Z.fast_mode_state=AR(J.model,J.fastMode),Z}var CEJ=I(()=>{N1();Vj();PZ();N9();Z6();$B();g8()});import{randomUUID as Ia}from"crypto";class fEJ{config;mutableMessages;abortController;permissionDenials;totalUsage;hasHandledOrphanedPermission=!1;readFileState;discoveredSkillNames=new Set;loadedNestedMemoryPaths=new Set;constructor(J){this.config=J,this.mutableMessages=J.initialMessages??[],this.abortController=J.abortController??u7(),this.permissionDenials=[],this.readFileState=J.readFileCache,this.totalUsage=v2}async*submitMessage(J,Q){let{cwd:X,commands:Z,tools:Y,mcpClients:q,verbose:K=!1,thinkingConfig:G,maxTurns:z,maxBudgetUsd:W,taskBudget:H,canUseTool:B,customSystemPrompt:U,appendSystemPrompt:F,userSpecifiedModel:_,fallbackModel:O,jsonSchema:L,getAppState:N,setAppState:A,replayUserMessages:R=!1,includePartialMessages:D=!1,agents:$=[],setSDKStatus:y,orphanedPermission:v}=this.config;this.discoveredSkillNames.clear(),Dq(X);let E=!JO(),C=Date.now(),S=async(_0,M0,b0,L0,T0,S0)=>{let g0=await B(_0,M0,b0,L0,T0,S0);if(g0.behavior!=="allow")this.permissionDenials.push({tool_name:N18(_0.name),tool_use_id:T0,tool_input:M0});return g0},k=N(),h=_?LQ(_):ZX(),u=G?G:sk()!==!1?{type:"adaptive"}:{type:"disabled"};VG("before_getSystemPrompt");let x=typeof U==="string"?U:void 0,{defaultSystemPrompt:m,userContext:p,systemContext:c}=await L18({tools:Y,mainLoopModel:h,additionalWorkingDirectories:Array.from(k.toolPermissionContext.additionalWorkingDirectories.keys()),mcpClients:q,customSystemPrompt:x});VG("after_getSystemPrompt");let r={...p,...pTQ(q,pI()?Ru():void 0)},J0=x!==void 0&&jb0()?await ht0():null,n=j9([...x!==void 0?[x]:m,...J0?[J0]:[],...F?[F]:[]]),s=Y.some((_0)=>VQ(_0,d3));if(L&&s)Ct0(A,A1());let X0={messages:this.mutableMessages,setMessages:(_0)=>{this.mutableMessages=_0(this.mutableMessages)},onChangeAPIKey:()=>{},handleElicitation:this.config.handleElicitation,options:{commands:Z,debug:!1,tools:Y,verbose:K,mainLoopModel:h,thinkingConfig:u,mcpClients:q,mcpResources:{},ideInstallationStatus:null,isNonInteractiveSession:!0,customSystemPrompt:U,appendSystemPrompt:F,agentDefinitions:{activeAgents:$,allAgents:[]},theme:oS(L1().theme),maxBudgetUsd:W},getAppState:N,setAppState:A,abortController:this.abortController,readFileState:this.readFileState,nestedMemoryAttachmentTriggers:new Set,loadedNestedMemoryPaths:this.loadedNestedMemoryPaths,dynamicSkillDirTriggers:new Set,discoveredSkillNames:this.discoveredSkillNames,setInProgressToolUseIDs:()=>{},setResponseLength:()=>{},updateFileHistoryState:(_0)=>{A((M0)=>{let b0=_0(M0.fileHistory);if(b0===M0.fileHistory)return M0;return{...M0,fileHistory:b0}})},updateAttributionState:(_0)=>{A((M0)=>{let b0=_0(M0.attribution);if(b0===M0.attribution)return M0;return{...M0,attribution:b0}})},setSDKStatus:y};if(v&&!this.hasHandledOrphanedPermission){this.hasHandledOrphanedPermission=!0;for await(let _0 of bn6(v,Y,this.mutableMessages,X0))yield _0}let{messages:Y0,shouldQuery:G0,allowedTools:j0,model:W0,resultText:y0}=await y61({input:J,mode:"prompt",setToolJSX:()=>{},context:{...X0,messages:this.mutableMessages},messages:this.mutableMessages,uuid:Q?.uuid,isMeta:Q?.isMeta,querySource:"sdk"});this.mutableMessages.push(...Y0);let V0=[...this.mutableMessages];if(E&&Y0.length>0){let _0=U_(V0);if(y7());else if(await _0,W1(process.env.GLOCK_EAGER_FLUSH)||W1(process.env.GLOCK_IS_COWORK))await Gy()}let Z0=Y0.filter((_0)=>_0.type==="user"&&!_0.isMeta&&!_0.toolUseResult&&vEJ().selectableUserMessagesFilter(_0)||_0.type==="system"&&_0.subtype==="compact_boundary"),t=R?Z0:[];A((_0)=>({..._0,toolPermissionContext:{..._0.toolPermissionContext,alwaysAllowRules:{..._0.toolPermissionContext.alwaysAllowRules,command:j0}}}));let q0=W0??h;X0={messages:V0,setMessages:()=>{},onChangeAPIKey:()=>{},handleElicitation:this.config.handleElicitation,options:{commands:Z,debug:!1,tools:Y,verbose:K,mainLoopModel:q0,thinkingConfig:u,mcpClients:q,mcpResources:{},ideInstallationStatus:null,isNonInteractiveSession:!0,customSystemPrompt:U,appendSystemPrompt:F,theme:oS(L1().theme),agentDefinitions:{activeAgents:$,allAgents:[]},maxBudgetUsd:W},getAppState:N,setAppState:A,abortController:this.abortController,readFileState:this.readFileState,nestedMemoryAttachmentTriggers:new Set,loadedNestedMemoryPaths:this.loadedNestedMemoryPaths,dynamicSkillDirTriggers:new Set,discoveredSkillNames:this.discoveredSkillNames,setInProgressToolUseIDs:()=>{},setResponseLength:()=>{},updateFileHistoryState:X0.updateFileHistoryState,updateAttributionState:X0.updateAttributionState,setSDKStatus:y},VG("before_skills_plugins");let[Q0,{enabled:a}]=await Promise.all([W20(B1()),oG()]);if(VG("after_skills_plugins"),yield TEJ({tools:Y,mcpClients:q,model:q0,permissionMode:k.toolPermissionContext.mode,commands:Z,agents:$,skills:Q0,plugins:a,fastMode:k.fastMode}),VG("system_message_yielded"),!G0){for(let _0 of Y0){if(_0.type==="user"&&typeof _0.message.content==="string"&&(_0.message.content.includes(`<${gU}>`)||_0.message.content.includes(`<${as}>`)||_0.isCompactSummary))yield{type:"user",message:{..._0.message,content:cX(_0.message.content)},session_id:A1(),parent_tool_use_id:null,uuid:_0.uuid,timestamp:_0.timestamp,isReplay:!_0.isCompactSummary,isSynthetic:_0.isMeta||_0.isVisibleInTranscriptOnly};if(_0.type==="system"&&_0.subtype==="local_command"&&typeof _0.content==="string"&&(_0.content.includes(`<${gU}>`)||_0.content.includes(`<${as}>`)))yield C3J(_0.content,_0.uuid);if(_0.type==="system"&&_0.subtype==="compact_boundary")yield{type:"system",subtype:"compact_boundary",session_id:A1(),uuid:_0.uuid,compact_metadata:qo1(_0.compactMetadata)}}if(E){if(await U_(V0),W1(process.env.GLOCK_EAGER_FLUSH)||W1(process.env.GLOCK_IS_COWORK))await Gy()}yield{type:"result",subtype:"success",is_error:!1,duration_ms:Date.now()-C,duration_api_ms:e_(),num_turns:V0.length-1,result:y0??"",stop_reason:null,session_id:A1(),total_cost_usd:D3(),usage:this.totalUsage,modelUsage:TA(),permission_denials:this.permissionDenials,fast_mode_state:AR(q0,k.fastMode),uuid:Ia()};return}if(aZ()&&E)Y0.filter(vEJ().selectableUserMessagesFilter).forEach((_0)=>{u60((M0)=>{A((b0)=>({...b0,fileHistory:M0(b0.fileHistory)}))},_0.uuid)});let O0=v2,D0=1,F0=!1,I0,U0=null,P0=EK0().at(-1),$0=L?hl1(this.mutableMessages,d3):0;for await(let _0 of eN({messages:V0,systemPrompt:n,userContext:r,systemContext:c,canUseTool:S,toolUseContext:X0,fallbackModel:O,querySource:"sdk",maxTurns:z,taskBudget:H})){if(_0.type==="assistant"||_0.type==="user"||_0.type==="system"&&_0.subtype==="compact_boundary"){if(E&&_0.type==="system"&&_0.subtype==="compact_boundary"){let M0=_0.compactMetadata?.preservedSegment?.tailUuid;if(M0){let b0=this.mutableMessages.findLastIndex((L0)=>L0.uuid===M0);if(b0!==-1)await U_(this.mutableMessages.slice(0,b0+1))}}if(V0.push(_0),E)if(_0.type==="assistant")U_(V0);else await U_(V0);if(!F0&&t.length>0){F0=!0;for(let M0 of t)if(M0.type==="user")yield{type:"user",message:M0.message,session_id:A1(),parent_tool_use_id:null,uuid:M0.uuid,timestamp:M0.timestamp,isReplay:!0}}}if(_0.type==="user")D0++;switch(_0.type){case"tombstone":break;case"assistant":if(_0.message.stop_reason!=null)U0=_0.message.stop_reason;this.mutableMessages.push(_0),yield*ra0(_0);break;case"progress":if(this.mutableMessages.push(_0),E)V0.push(_0),U_(V0);yield*ra0(_0);break;case"user":this.mutableMessages.push(_0),yield*ra0(_0);break;case"stream_event":if(_0.event.type==="message_start")O0=v2,O0=rh(O0,_0.event.message.usage);if(_0.event.type==="message_delta"){if(O0=rh(O0,_0.event.usage),_0.event.delta.stop_reason!=null)U0=_0.event.delta.stop_reason}if(_0.event.type==="message_stop")this.totalUsage=da0(this.totalUsage,O0);if(D)yield{type:"stream_event",event:_0.event,session_id:A1(),parent_tool_use_id:null,uuid:Ia()};break;case"attachment":if(this.mutableMessages.push(_0),E)V0.push(_0),U_(V0);if(_0.attachment.type==="structured_output")I0=_0.attachment.data;else if(_0.attachment.type==="max_turns_reached"){if(E){if(W1(process.env.GLOCK_EAGER_FLUSH)||W1(process.env.GLOCK_IS_COWORK))await Gy()}yield{type:"result",subtype:"error_max_turns",duration_ms:Date.now()-C,duration_api_ms:e_(),is_error:!0,num_turns:_0.attachment.turnCount,stop_reason:U0,session_id:A1(),total_cost_usd:D3(),usage:this.totalUsage,modelUsage:TA(),permission_denials:this.permissionDenials,fast_mode_state:AR(q0,k.fastMode),uuid:Ia(),errors:[`Reached maximum number of turns (${_0.attachment.maxTurns})`]};return}else if(R&&_0.attachment.type==="queued_command")yield{type:"user",message:{role:"user",content:_0.attachment.prompt},session_id:A1(),parent_tool_use_id:null,uuid:_0.attachment.source_uuid||_0.uuid,timestamp:_0.timestamp,isReplay:!0};break;case"stream_request_start":break;case"system":{let M0=this.config.snipReplay?.(_0,this.mutableMessages);if(M0!==void 0){if(M0.executed)this.mutableMessages.length=0,this.mutableMessages.push(...M0.messages);break}if(this.mutableMessages.push(_0),_0.subtype==="compact_boundary"&&_0.compactMetadata){let b0=this.mutableMessages.length-1;if(b0>0)this.mutableMessages.splice(0,b0);let L0=V0.length-1;if(L0>0)V0.splice(0,L0);yield{type:"system",subtype:"compact_boundary",session_id:A1(),uuid:_0.uuid,compact_metadata:qo1(_0.compactMetadata)}}if(_0.subtype==="api_error")yield{type:"system",subtype:"api_retry",attempt:_0.retryAttempt,max_retries:_0.maxRetries,retry_delay_ms:_0.retryInMs,error_status:_0.error.status??null,error:g26(_0.error),session_id:A1(),uuid:_0.uuid};break}case"tool_use_summary":yield{type:"tool_use_summary",summary:_0.summary,preceding_tool_use_ids:_0.precedingToolUseIds,session_id:A1(),uuid:_0.uuid};break}if(W!==void 0&&D3()>=W){if(E){if(W1(process.env.GLOCK_EAGER_FLUSH)||W1(process.env.GLOCK_IS_COWORK))await Gy()}yield{type:"result",subtype:"error_max_budget_usd",duration_ms:Date.now()-C,duration_api_ms:e_(),is_error:!0,num_turns:D0,stop_reason:U0,session_id:A1(),total_cost_usd:D3(),usage:this.totalUsage,modelUsage:TA(),permission_denials:this.permissionDenials,fast_mode_state:AR(q0,k.fastMode),uuid:Ia(),errors:[`Reached maximum budget ($${W})`]};return}if(_0.type==="user"&&L){let b0=hl1(this.mutableMessages,d3)-$0,L0=parseInt(process.env.MAX_STRUCTURED_OUTPUT_RETRIES||"5",10);if(b0>=L0){if(E){if(W1(process.env.GLOCK_EAGER_FLUSH)||W1(process.env.GLOCK_IS_COWORK))await Gy()}yield{type:"result",subtype:"error_max_structured_output_retries",duration_ms:Date.now()-C,duration_api_ms:e_(),is_error:!0,num_turns:D0,stop_reason:U0,session_id:A1(),total_cost_usd:D3(),usage:this.totalUsage,modelUsage:TA(),permission_denials:this.permissionDenials,fast_mode_state:AR(q0,k.fastMode),uuid:Ia(),errors:[`Failed to provide valid structured output after ${L0} attempts`]};return}}}let w0=V0.findLast((_0)=>_0.type==="assistant"||_0.type==="user"),E0=w0?.type??"undefined",h0=w0?.type==="assistant"?gN(w0.message.content)?.type??"none":"n/a";if(E){if(W1(process.env.GLOCK_EAGER_FLUSH)||W1(process.env.GLOCK_IS_COWORK))await Gy()}if(!yn6(w0,U0)){yield{type:"result",subtype:"error_during_execution",duration_ms:Date.now()-C,duration_api_ms:e_(),is_error:!0,num_turns:D0,stop_reason:U0,session_id:A1(),total_cost_usd:D3(),usage:this.totalUsage,modelUsage:TA(),permission_denials:this.permissionDenials,fast_mode_state:AR(q0,k.fastMode),uuid:Ia(),errors:(()=>{let _0=EK0(),M0=P0?_0.lastIndexOf(P0)+1:0;return[`[ede_diagnostic] result_type=${E0} last_content_type=${h0} stop_reason=${U0}`,..._0.slice(M0).map((b0)=>b0.error)]})()};return}let u0="",B0=!1;if(w0.type==="assistant"){let _0=gN(w0.message.content);if(_0?.type==="text"&&!Zk.has(_0.text))u0=_0.text;B0=Boolean(w0.isApiErrorMessage)}yield{type:"result",subtype:"success",is_error:B0,duration_ms:Date.now()-C,duration_api_ms:e_(),num_turns:D0,result:u0,stop_reason:U0,session_id:A1(),total_cost_usd:D3(),usage:this.totalUsage,modelUsage:TA(),permission_denials:this.permissionDenials,structured_output:I0,fast_mode_state:AR(q0,k.fastMode),uuid:Ia()}}interrupt(){this.abortController.abort()}getMessages(){return this.mutableMessages}getReadFileState(){return this.readFileState}getSessionId(){return A1()}setModel(J){this.config.userSpecifiedModel=J}}async function*SEJ({commands:J,prompt:Q,promptUuid:X,isMeta:Z,cwd:Y,tools:q,mcpClients:K,verbose:G=!1,thinkingConfig:z,maxTurns:W,maxBudgetUsd:H,taskBudget:B,canUseTool:U,mutableMessages:F=[],getReadFileCache:_,setReadFileCache:O,customSystemPrompt:L,appendSystemPrompt:N,userSpecifiedModel:A,fallbackModel:R,jsonSchema:D,getAppState:$,setAppState:y,abortController:v,replayUserMessages:E=!1,includePartialMessages:C=!1,handleElicitation:S,agents:k=[],setSDKStatus:h,orphanedPermission:u}){let x=new fEJ({cwd:Y,tools:q,commands:J,mcpClients:K,agents:k,canUseTool:U,getAppState:$,setAppState:y,initialMessages:F,readFileCache:bM(_()),customSystemPrompt:L,appendSystemPrompt:N,userSpecifiedModel:A,fallbackModel:R,thinkingConfig:z,maxTurns:W,maxBudgetUsd:H,taskBudget:B,jsonSchema:D,verbose:G,handleElicitation:S,replayUserMessages:E,includePartialMessages:C,setSDKStatus:h,abortController:v,orphanedPermission:u,...{}});try{yield*x.submitMessage(Q,{uuid:X,isMeta:Z})}finally{O(x.getReadFileState())}}var vEJ=()=>(H81(),e4(RLJ)),pTQ=()=>({});var xEJ=I(()=>{_B0();N1();wq();FL0();xU();PY();zZ();JI();vd();t5();$l();XM();s6();Rj();nq();m8();Z6();t1();$B();pF();I2();JL0();vt0();M1();M8();CJ();oq();G08();V18();$w();gJ();EM();rN0();CEJ();vX();LL0()});var kEJ=I(()=>{D1();zc1();Z6();T1();M1();iE();Vj1()});function hEJ(J){let Q=process.env.GLOCK_EXIT_AFTER_STOP_DELAY,X=Q?parseInt(Q,10):null,Z=X&&!isNaN(X)&&X>0,Y=null,q=0;return{start(){if(Y)clearTimeout(Y),Y=null;if(Z)q=Date.now(),Y=setTimeout(()=>{let K=Date.now()-q;if(J()&&K>=X)b(`Exiting after ${X}ms of idle time`),a9()},X)},stop(){if(Y)clearTimeout(Y),Y=null}}}var uEJ=I(()=>{Z1();E5()});import{createServer as cTQ}from"http";class w18{localServer;port=0;promiseResolver=null;promiseRejecter=null;expectedState=null;pendingResponse=null;callbackPath;constructor(J="/callback"){this.localServer=cTQ(),this.callbackPath=J}async start(J){return new Promise((Q,X)=>{this.localServer.once("error",(Z)=>{X(Error(`Failed to start OAuth callback server: ${Z.message}`))}),this.localServer.listen(J??0,"localhost",()=>{let Z=this.localServer.address();this.port=Z.port,Q(this.port)})})}getPort(){return this.port}hasPendingResponse(){return this.pendingResponse!==null}async waitForAuthorization(J,Q){return new Promise((X,Z)=>{this.promiseResolver=X,this.promiseRejecter=Z,this.expectedState=J,this.startLocalListener(Q)})}handleSuccessRedirect(J,Q){if(!this.pendingResponse)return;if(Q){Q(this.pendingResponse,J),this.pendingResponse=null,l("jarvis_api_error",{custom_handler:!0});return}let X=bS(J)?qJ().GLOCKAI_SUCCESS_URL:qJ().CONSOLE_SUCCESS_URL;this.pendingResponse.writeHead(302,{Location:X}),this.pendingResponse.end(),this.pendingResponse=null,l("jarvis_api_error",{})}handleErrorRedirect(){if(!this.pendingResponse)return;let J=qJ().GLOCKAI_SUCCESS_URL;this.pendingResponse.writeHead(302,{Location:J}),this.pendingResponse.end(),this.pendingResponse=null,l("jarvis_api_error",{})}startLocalListener(J){this.localServer.on("request",this.handleRedirect.bind(this)),this.localServer.on("error",this.handleError.bind(this)),J()}handleRedirect(J,Q){let X=new URL(J.url||"",`http://${J.headers.host||"localhost"}`);if(X.pathname!==this.callbackPath){Q.writeHead(404),Q.end();return}let Z=X.searchParams.get("code")??void 0,Y=X.searchParams.get("state")??void 0;this.validateAndRespond(Z,Y,Q)}validateAndRespond(J,Q,X){if(!J){X.writeHead(400),X.end("Authorization code not found"),this.reject(Error("No authorization code received"));return}if(Q!==this.expectedState){X.writeHead(400),X.end("Invalid state parameter"),this.reject(Error("Invalid state parameter"));return}this.pendingResponse=X,this.resolve(J)}handleError(J){H0(J),this.close(),this.reject(J)}resolve(J){if(this.promiseResolver)this.promiseResolver(J),this.promiseResolver=null,this.promiseRejecter=null}reject(J){if(this.promiseRejecter)this.promiseRejecter(J),this.promiseResolver=null,this.promiseRejecter=null}close(){if(this.pendingResponse)this.handleErrorRedirect();if(this.localServer)this.localServer.removeAllListeners(),this.localServer.close()}}var gEJ=I(()=>{D1();$Z();M1();x$()});import{createHash as dTQ,randomBytes as mEJ}from"crypto";function A18(J){return J.toString("base64").replace(/\+/g,"-").replace(/\//g,"_").replace(/=/g,"")}function pEJ(){return A18(mEJ(32))}function cEJ(J){let Q=dTQ("sha256");return Q.update(J),A18(Q.digest())}function dEJ(){return A18(mEJ(32))}var lEJ=()=>{};class R18{codeVerifier;authCodeListener=null;port=null;manualAuthCodeResolver=null;constructor(){this.codeVerifier=pEJ()}async startOAuthFlow(J,Q){this.authCodeListener=new w18,this.port=await this.authCodeListener.start();let X=cEJ(this.codeVerifier),Z=dEJ(),Y={codeChallenge:X,state:Z,port:this.port,loginWithGlock:Q?.loginWithGlock,inferenceOnly:Q?.inferenceOnly,orgUUID:Q?.orgUUID,loginHint:Q?.loginHint,loginMethod:Q?.loginMethod},q=dw1({...Y,isManual:!0}),K=dw1({...Y,isManual:!1}),G=await this.waitForAuthorizationCode(Z,async()=>{if(Q?.skipBrowserOpen)await J(q,K);else await J(q),await IX(K)}),z=this.authCodeListener?.hasPendingResponse()??!1;l("jarvis_api_error",{automatic:z});try{let W=await ln8(G,Z,this.codeVerifier,this.port,!z,Q?.expiresIn),H=await lw1(W.access_token);if(z){let B=xv0(W.scope);this.authCodeListener?.handleSuccessRedirect(B)}return this.formatTokens(W,H.rawProfile)}catch(W){if(z)this.authCodeListener?.handleErrorRedirect();throw W}finally{this.authCodeListener?.close()}}async waitForAuthorizationCode(J,Q){return new Promise((X,Z)=>{this.manualAuthCodeResolver=X,this.authCodeListener?.waitForAuthorization(J,Q).then((Y)=>{this.manualAuthCodeResolver=null,X(Y)}).catch((Y)=>{this.manualAuthCodeResolver=null,Z(Y)})})}handleManualAuthCodeInput(J){if(this.manualAuthCodeResolver)this.manualAuthCodeResolver(J.authorizationCode),this.manualAuthCodeResolver=null,this.authCodeListener?.close()}formatTokens(J,Q){return{accessToken:J.access_token,refreshToken:J.refresh_token,expiresAt:Date.now()+J.expires_in*1000,scopes:xv0(J.scope),profile:Q,tokenAccount:J.account?{uuid:J.account.uuid,emailAddress:J.account.email_address,organizationUuid:J.organization?.uuid}:void 0}}cleanup(){this.authCodeListener?.close(),this.manualAuthCodeResolver=null}}var iEJ=I(()=>{D1();s3();gEJ();x$();lEJ()});import{randomUUID as nEJ}from"crypto";function rEJ(J){if(J.toLowerCase().endsWith(".jsonl"))return{sessionId:nEJ(),ingressUrl:null,isUrl:!1,jsonlFile:J,isJsonlFile:!0};if(vM(J))return{sessionId:J,ingressUrl:null,isUrl:!1,jsonlFile:null,isJsonlFile:!1};try{let Q=new URL(J);return{sessionId:nEJ(),ingressUrl:Q.href,isUrl:!0,jsonlFile:null,isJsonlFile:!1}}catch{}return null}var aEJ=I(()=>{SM()});import{readFile as oEJ}from"fs/promises";import{join as M18}from"path";async function iTQ(){try{let J=await oEJ(dE1(),"utf-8"),Q=rt().safeParse(c1(J));if(!Q.success)return b(`Invalid known_marketplaces.json in zip cache: ${Q.error.message}`,{level:"error"}),{};return Q.data}catch{return{}}}async function nTQ(J){await wm0(dE1(),l0(J,null,2))}async function rTQ(J,Q){let X=aU0();if(!X)return;let Z=await aTQ(Q);if(Z!==null){let Y=l_6(J);await wm0(M18(X,Y),Z)}}async function aTQ(J){let Q=[M18(J,".glock-plugin","marketplace.json"),M18(J,"marketplace.json"),J];for(let X of Q)try{return await oEJ(X,"utf-8")}catch{}return null}async function sEJ(){let J=await Vk();for(let[Z,Y]of Object.entries(J)){if(!Y.installLocation)continue;try{await rTQ(Z,Y.installLocation)}catch(q){b(`Failed to save marketplace JSON for ${Z}: ${q}`)}}let X={...await iTQ(),...J};await nTQ(X)}var tEJ=I(()=>{Z1();i1();q5();UB();c60()});async function eEJ(){let J=Qw();b(`installPluginsForHeadless: starting${J?" (zip cache mode)":""}`);let Q=await Ar0();if(Q)wI(),M2("headlessPluginInstall: seed marketplaces registered");if(J)await Y1().mkdir(m_6()),await Y1().mkdir(p_6());let X=Object.keys(mh()).length,Z={marketplaces_installed:0,delisted_count:0},Y=Q;try{if(X===0)b("installPluginsForHeadless: no marketplaces declared");else{let K=await bs("headless_marketplace_reconcile",()=>qJ1({skip:J?(z,W)=>!i_6(W):void 0,onProgress:(z)=>{if(z.type==="installed")b(`installPluginsForHeadless: installed marketplace ${z.name}`);else if(z.type==="failed")b(`installPluginsForHeadless: failed to install marketplace ${z.name}: ${z.error}`)}}),(z)=>({installed_count:z.installed.length,updated_count:z.updated.length,failed_count:z.failed.length,skipped_count:z.skipped.length}));if(K.skipped.length>0)b(`installPluginsForHeadless: skipped ${K.skipped.length} marketplace(s) unsupported by zip cache: ${K.skipped.join(", ")}`);let G=K.installed.length+K.updated.length;if(G>0)wI(),M2("headlessPluginInstall: marketplaces reconciled"),Y=!0;Z.marketplaces_installed=G}if(J)await sEJ();let q=await C61();if(Z.delisted_count=q.length,q.length>0)Y=!0;if(Y)M2("headlessPluginInstall: plugins changed");if(J)UJ(c_6);return Y}catch(q){return H0(q),!1}finally{l("jarvis_api_error",Z)}}var JTJ=I(()=>{D1();EX();Z1();h4();H6();M1();q5();U08();oq();E08();c60();tEJ()});var FTJ={};X8(FTJ,{runHeadless:()=>JCQ,removeInterruptedMessage:()=>WTJ,reconcileMcpServers:()=>UTJ,joinPromptValues:()=>YTJ,handleOrphanedPermissionResponse:()=>HTJ,handleMcpSetServers:()=>BTJ,getCanUseToolFn:()=>GTJ,createCanUseToolWithPermissionPrompt:()=>KTJ,canBatchWith:()=>qTJ});import{readFile as oTQ,stat as sTQ}from"fs/promises";import{dirname as QTJ}from"path";import{cwd as bA0}from"process";import{randomUUID as aH}from"crypto";function tTQ(J){if(bJ1.has(J))return!1;if(bJ1.add(J),IJ1.push(J),IJ1.length>ZTJ){let Q=IJ1.splice(0,IJ1.length-ZTJ);for(let X of Q)bJ1.delete(X)}return!0}function eTQ(J){return typeof J==="string"?[{type:"text",text:J}]:J}function YTJ(J){if(J.length===1)return J[0];if(J.every((Q)=>typeof Q==="string"))return J.join(`
|
|
7828
|
+
`);Vy=""}if(ja)process.stdout.write=ja,ja=null;O18=!1})}var IEJ="[stdout-guard]",O18=!1,Vy="",ja=null;var PEJ=I(()=>{EX();Z1()});async function L18({tools:J,mainLoopModel:Q,additionalWorkingDirectories:X,mcpClients:Z,customSystemPrompt:Y}){let[q,K,G]=await Promise.all([Y!==void 0?Promise.resolve([]):wH(J,Q,X,Z),G5(),Y!==void 0?Promise.resolve({}):Nq()]);return{defaultSystemPrompt:q,userContext:K,systemContext:G}}async function EEJ({tools:J,commands:Q,mcpClients:X,messages:Z,readFileState:Y,getAppState:q,setAppState:K,customSystemPrompt:G,appendSystemPrompt:z,thinkingConfig:W,agents:H}){let B=ZX(),U=q(),{defaultSystemPrompt:F,userContext:_,systemContext:O}=await L18({tools:J,mainLoopModel:B,additionalWorkingDirectories:Array.from(U.toolPermissionContext.additionalWorkingDirectories.keys()),mcpClients:X,customSystemPrompt:G}),L=j9([...G!==void 0?[G]:F,...z?[z]:[]]),N=Z.at(-1),A=N?.type==="assistant"&&N.message.stop_reason===null?Z.slice(0,-1):Z,R={options:{commands:Q,debug:!1,mainLoopModel:B,tools:J,verbose:!1,thinkingConfig:W??(sk()!==!1?{type:"adaptive"}:{type:"disabled"}),mcpClients:X,mcpResources:{},isNonInteractiveSession:!0,agentDefinitions:{activeAgents:H,allAgents:[]},customSystemPrompt:G,appendSystemPrompt:z},abortController:u7(),readFileState:Y,getAppState:q,setAppState:K,messages:A,setInProgressToolUseIDs:()=>{},setResponseLength:()=>{},updateFileHistoryState:()=>{},updateAttributionState:()=>{}};return{systemPrompt:L,userContext:_,systemContext:O,toolUseContext:R,forkContextMessages:A}}var V18=I(()=>{Lw();UL();nq();CJ();EM()});import{randomUUID as gTQ}from"crypto";function N18(J){return J===KJ?mf:J}function TEJ(J){let X=q6()?.outputStyle??F2,Z={type:"system",subtype:"init",cwd:B1(),session_id:A1(),tools:J.tools.map((Y)=>N18(Y.name)),mcp_servers:J.mcpClients.map((Y)=>({name:Y.name,status:Y.type})),model:J.model,permissionMode:J.permissionMode,slash_commands:J.commands.filter((Y)=>Y.userInvocable!==!1).map((Y)=>Y.name),apiKeySource:pq().source,betas:$3(),glock_version:"0.1.17",output_style:X,agents:J.agents.map((Y)=>Y.agentType),skills:J.skills.filter((Y)=>Y.userInvocable!==!1).map((Y)=>Y.name),plugins:J.plugins.map((Y)=>({name:Y.name,path:Y.path,source:Y.source})),uuid:gTQ()};return Z.fast_mode_state=AR(J.model,J.fastMode),Z}var CEJ=I(()=>{N1();Vj();PZ();N9();Z6();$B();g8()});import{randomUUID as Ia}from"crypto";class fEJ{config;mutableMessages;abortController;permissionDenials;totalUsage;hasHandledOrphanedPermission=!1;readFileState;discoveredSkillNames=new Set;loadedNestedMemoryPaths=new Set;constructor(J){this.config=J,this.mutableMessages=J.initialMessages??[],this.abortController=J.abortController??u7(),this.permissionDenials=[],this.readFileState=J.readFileCache,this.totalUsage=v2}async*submitMessage(J,Q){let{cwd:X,commands:Z,tools:Y,mcpClients:q,verbose:K=!1,thinkingConfig:G,maxTurns:z,maxBudgetUsd:W,taskBudget:H,canUseTool:B,customSystemPrompt:U,appendSystemPrompt:F,userSpecifiedModel:_,fallbackModel:O,jsonSchema:L,getAppState:N,setAppState:A,replayUserMessages:R=!1,includePartialMessages:D=!1,agents:$=[],setSDKStatus:y,orphanedPermission:v}=this.config;this.discoveredSkillNames.clear(),Dq(X);let E=!JO(),C=Date.now(),S=async(_0,M0,b0,L0,T0,S0)=>{let g0=await B(_0,M0,b0,L0,T0,S0);if(g0.behavior!=="allow")this.permissionDenials.push({tool_name:N18(_0.name),tool_use_id:T0,tool_input:M0});return g0},k=N(),h=_?LQ(_):ZX(),u=G?G:sk()!==!1?{type:"adaptive"}:{type:"disabled"};VG("before_getSystemPrompt");let x=typeof U==="string"?U:void 0,{defaultSystemPrompt:m,userContext:p,systemContext:c}=await L18({tools:Y,mainLoopModel:h,additionalWorkingDirectories:Array.from(k.toolPermissionContext.additionalWorkingDirectories.keys()),mcpClients:q,customSystemPrompt:x});VG("after_getSystemPrompt");let r={...p,...pTQ(q,pI()?Ru():void 0)},J0=x!==void 0&&jb0()?await ht0():null,n=j9([...x!==void 0?[x]:m,...J0?[J0]:[],...F?[F]:[]]),s=Y.some((_0)=>VQ(_0,d3));if(L&&s)Ct0(A,A1());let X0={messages:this.mutableMessages,setMessages:(_0)=>{this.mutableMessages=_0(this.mutableMessages)},onChangeAPIKey:()=>{},handleElicitation:this.config.handleElicitation,options:{commands:Z,debug:!1,tools:Y,verbose:K,mainLoopModel:h,thinkingConfig:u,mcpClients:q,mcpResources:{},ideInstallationStatus:null,isNonInteractiveSession:!0,customSystemPrompt:U,appendSystemPrompt:F,agentDefinitions:{activeAgents:$,allAgents:[]},theme:oS(L1().theme),maxBudgetUsd:W},getAppState:N,setAppState:A,abortController:this.abortController,readFileState:this.readFileState,nestedMemoryAttachmentTriggers:new Set,loadedNestedMemoryPaths:this.loadedNestedMemoryPaths,dynamicSkillDirTriggers:new Set,discoveredSkillNames:this.discoveredSkillNames,setInProgressToolUseIDs:()=>{},setResponseLength:()=>{},updateFileHistoryState:(_0)=>{A((M0)=>{let b0=_0(M0.fileHistory);if(b0===M0.fileHistory)return M0;return{...M0,fileHistory:b0}})},updateAttributionState:(_0)=>{A((M0)=>{let b0=_0(M0.attribution);if(b0===M0.attribution)return M0;return{...M0,attribution:b0}})},setSDKStatus:y};if(v&&!this.hasHandledOrphanedPermission){this.hasHandledOrphanedPermission=!0;for await(let _0 of bn6(v,Y,this.mutableMessages,X0))yield _0}let{messages:Y0,shouldQuery:G0,allowedTools:j0,model:W0,resultText:y0}=await y61({input:J,mode:"prompt",setToolJSX:()=>{},context:{...X0,messages:this.mutableMessages},messages:this.mutableMessages,uuid:Q?.uuid,isMeta:Q?.isMeta,querySource:"sdk"});this.mutableMessages.push(...Y0);let V0=[...this.mutableMessages];if(E&&Y0.length>0){let _0=U_(V0);if(y7());else if(await _0,W1(process.env.GLOCK_EAGER_FLUSH)||W1(process.env.GLOCK_IS_COWORK))await Gy()}let Z0=Y0.filter((_0)=>_0.type==="user"&&!_0.isMeta&&!_0.toolUseResult&&vEJ().selectableUserMessagesFilter(_0)||_0.type==="system"&&_0.subtype==="compact_boundary"),t=R?Z0:[];A((_0)=>({..._0,toolPermissionContext:{..._0.toolPermissionContext,alwaysAllowRules:{..._0.toolPermissionContext.alwaysAllowRules,command:j0}}}));let q0=W0??h;X0={messages:V0,setMessages:()=>{},onChangeAPIKey:()=>{},handleElicitation:this.config.handleElicitation,options:{commands:Z,debug:!1,tools:Y,verbose:K,mainLoopModel:q0,thinkingConfig:u,mcpClients:q,mcpResources:{},ideInstallationStatus:null,isNonInteractiveSession:!0,customSystemPrompt:U,appendSystemPrompt:F,theme:oS(L1().theme),agentDefinitions:{activeAgents:$,allAgents:[]},maxBudgetUsd:W},getAppState:N,setAppState:A,abortController:this.abortController,readFileState:this.readFileState,nestedMemoryAttachmentTriggers:new Set,loadedNestedMemoryPaths:this.loadedNestedMemoryPaths,dynamicSkillDirTriggers:new Set,discoveredSkillNames:this.discoveredSkillNames,setInProgressToolUseIDs:()=>{},setResponseLength:()=>{},updateFileHistoryState:X0.updateFileHistoryState,updateAttributionState:X0.updateAttributionState,setSDKStatus:y},VG("before_skills_plugins");let[Q0,{enabled:a}]=await Promise.all([W20(B1()),oG()]);if(VG("after_skills_plugins"),yield TEJ({tools:Y,mcpClients:q,model:q0,permissionMode:k.toolPermissionContext.mode,commands:Z,agents:$,skills:Q0,plugins:a,fastMode:k.fastMode}),VG("system_message_yielded"),!G0){for(let _0 of Y0){if(_0.type==="user"&&typeof _0.message.content==="string"&&(_0.message.content.includes(`<${gU}>`)||_0.message.content.includes(`<${as}>`)||_0.isCompactSummary))yield{type:"user",message:{..._0.message,content:cX(_0.message.content)},session_id:A1(),parent_tool_use_id:null,uuid:_0.uuid,timestamp:_0.timestamp,isReplay:!_0.isCompactSummary,isSynthetic:_0.isMeta||_0.isVisibleInTranscriptOnly};if(_0.type==="system"&&_0.subtype==="local_command"&&typeof _0.content==="string"&&(_0.content.includes(`<${gU}>`)||_0.content.includes(`<${as}>`)))yield C3J(_0.content,_0.uuid);if(_0.type==="system"&&_0.subtype==="compact_boundary")yield{type:"system",subtype:"compact_boundary",session_id:A1(),uuid:_0.uuid,compact_metadata:qo1(_0.compactMetadata)}}if(E){if(await U_(V0),W1(process.env.GLOCK_EAGER_FLUSH)||W1(process.env.GLOCK_IS_COWORK))await Gy()}yield{type:"result",subtype:"success",is_error:!1,duration_ms:Date.now()-C,duration_api_ms:e_(),num_turns:V0.length-1,result:y0??"",stop_reason:null,session_id:A1(),total_cost_usd:D3(),usage:this.totalUsage,modelUsage:TA(),permission_denials:this.permissionDenials,fast_mode_state:AR(q0,k.fastMode),uuid:Ia()};return}if(aZ()&&E)Y0.filter(vEJ().selectableUserMessagesFilter).forEach((_0)=>{u60((M0)=>{A((b0)=>({...b0,fileHistory:M0(b0.fileHistory)}))},_0.uuid)});let O0=v2,D0=1,F0=!1,I0,U0=null,P0=EK0().at(-1),$0=L?hl1(this.mutableMessages,d3):0;for await(let _0 of eN({messages:V0,systemPrompt:n,userContext:r,systemContext:c,canUseTool:S,toolUseContext:X0,fallbackModel:O,querySource:"sdk",maxTurns:z,taskBudget:H})){if(_0.type==="assistant"||_0.type==="user"||_0.type==="system"&&_0.subtype==="compact_boundary"){if(E&&_0.type==="system"&&_0.subtype==="compact_boundary"){let M0=_0.compactMetadata?.preservedSegment?.tailUuid;if(M0){let b0=this.mutableMessages.findLastIndex((L0)=>L0.uuid===M0);if(b0!==-1)await U_(this.mutableMessages.slice(0,b0+1))}}if(V0.push(_0),E)if(_0.type==="assistant")U_(V0);else await U_(V0);if(!F0&&t.length>0){F0=!0;for(let M0 of t)if(M0.type==="user")yield{type:"user",message:M0.message,session_id:A1(),parent_tool_use_id:null,uuid:M0.uuid,timestamp:M0.timestamp,isReplay:!0}}}if(_0.type==="user")D0++;switch(_0.type){case"tombstone":break;case"assistant":if(_0.message.stop_reason!=null)U0=_0.message.stop_reason;this.mutableMessages.push(_0),yield*ra0(_0);break;case"progress":if(this.mutableMessages.push(_0),E)V0.push(_0),U_(V0);yield*ra0(_0);break;case"user":this.mutableMessages.push(_0),yield*ra0(_0);break;case"stream_event":if(_0.event.type==="message_start")O0=v2,O0=rh(O0,_0.event.message.usage);if(_0.event.type==="message_delta"){if(O0=rh(O0,_0.event.usage),_0.event.delta.stop_reason!=null)U0=_0.event.delta.stop_reason}if(_0.event.type==="message_stop")this.totalUsage=da0(this.totalUsage,O0);if(D)yield{type:"stream_event",event:_0.event,session_id:A1(),parent_tool_use_id:null,uuid:Ia()};break;case"attachment":if(this.mutableMessages.push(_0),E)V0.push(_0),U_(V0);if(_0.attachment.type==="structured_output")I0=_0.attachment.data;else if(_0.attachment.type==="max_turns_reached"){if(E){if(W1(process.env.GLOCK_EAGER_FLUSH)||W1(process.env.GLOCK_IS_COWORK))await Gy()}yield{type:"result",subtype:"error_max_turns",duration_ms:Date.now()-C,duration_api_ms:e_(),is_error:!0,num_turns:_0.attachment.turnCount,stop_reason:U0,session_id:A1(),total_cost_usd:D3(),usage:this.totalUsage,modelUsage:TA(),permission_denials:this.permissionDenials,fast_mode_state:AR(q0,k.fastMode),uuid:Ia(),errors:[`Reached maximum number of turns (${_0.attachment.maxTurns})`]};return}else if(R&&_0.attachment.type==="queued_command")yield{type:"user",message:{role:"user",content:_0.attachment.prompt},session_id:A1(),parent_tool_use_id:null,uuid:_0.attachment.source_uuid||_0.uuid,timestamp:_0.timestamp,isReplay:!0};break;case"stream_request_start":break;case"system":{let M0=this.config.snipReplay?.(_0,this.mutableMessages);if(M0!==void 0){if(M0.executed)this.mutableMessages.length=0,this.mutableMessages.push(...M0.messages);break}if(this.mutableMessages.push(_0),_0.subtype==="compact_boundary"&&_0.compactMetadata){let b0=this.mutableMessages.length-1;if(b0>0)this.mutableMessages.splice(0,b0);let L0=V0.length-1;if(L0>0)V0.splice(0,L0);yield{type:"system",subtype:"compact_boundary",session_id:A1(),uuid:_0.uuid,compact_metadata:qo1(_0.compactMetadata)}}if(_0.subtype==="api_error")yield{type:"system",subtype:"api_retry",attempt:_0.retryAttempt,max_retries:_0.maxRetries,retry_delay_ms:_0.retryInMs,error_status:_0.error.status??null,error:g26(_0.error),session_id:A1(),uuid:_0.uuid};break}case"tool_use_summary":yield{type:"tool_use_summary",summary:_0.summary,preceding_tool_use_ids:_0.precedingToolUseIds,session_id:A1(),uuid:_0.uuid};break}if(W!==void 0&&D3()>=W){if(E){if(W1(process.env.GLOCK_EAGER_FLUSH)||W1(process.env.GLOCK_IS_COWORK))await Gy()}yield{type:"result",subtype:"error_max_budget_usd",duration_ms:Date.now()-C,duration_api_ms:e_(),is_error:!0,num_turns:D0,stop_reason:U0,session_id:A1(),total_cost_usd:D3(),usage:this.totalUsage,modelUsage:TA(),permission_denials:this.permissionDenials,fast_mode_state:AR(q0,k.fastMode),uuid:Ia(),errors:[`Reached maximum budget ($${W})`]};return}if(_0.type==="user"&&L){let b0=hl1(this.mutableMessages,d3)-$0,L0=parseInt(process.env.MAX_STRUCTURED_OUTPUT_RETRIES||"5",10);if(b0>=L0){if(E){if(W1(process.env.GLOCK_EAGER_FLUSH)||W1(process.env.GLOCK_IS_COWORK))await Gy()}yield{type:"result",subtype:"error_max_structured_output_retries",duration_ms:Date.now()-C,duration_api_ms:e_(),is_error:!0,num_turns:D0,stop_reason:U0,session_id:A1(),total_cost_usd:D3(),usage:this.totalUsage,modelUsage:TA(),permission_denials:this.permissionDenials,fast_mode_state:AR(q0,k.fastMode),uuid:Ia(),errors:[`Failed to provide valid structured output after ${L0} attempts`]};return}}}let w0=V0.findLast((_0)=>_0.type==="assistant"||_0.type==="user"),E0=w0?.type??"undefined",h0=w0?.type==="assistant"?gN(w0.message.content)?.type??"none":"n/a";if(E){if(W1(process.env.GLOCK_EAGER_FLUSH)||W1(process.env.GLOCK_IS_COWORK))await Gy()}if(!yn6(w0,U0)){yield{type:"result",subtype:"error_during_execution",duration_ms:Date.now()-C,duration_api_ms:e_(),is_error:!0,num_turns:D0,stop_reason:U0,session_id:A1(),total_cost_usd:D3(),usage:this.totalUsage,modelUsage:TA(),permission_denials:this.permissionDenials,fast_mode_state:AR(q0,k.fastMode),uuid:Ia(),errors:(()=>{let _0=EK0(),M0=P0?_0.lastIndexOf(P0)+1:0;return[`[ede_diagnostic] result_type=${E0} last_content_type=${h0} stop_reason=${U0}`,..._0.slice(M0).map((b0)=>b0.error)]})()};return}let u0="",B0=!1;if(w0.type==="assistant"){let _0=gN(w0.message.content);if(_0?.type==="text"&&!Zk.has(_0.text))u0=_0.text;B0=Boolean(w0.isApiErrorMessage)}yield{type:"result",subtype:"success",is_error:B0,duration_ms:Date.now()-C,duration_api_ms:e_(),num_turns:D0,result:u0,stop_reason:U0,session_id:A1(),total_cost_usd:D3(),usage:this.totalUsage,modelUsage:TA(),permission_denials:this.permissionDenials,structured_output:I0,fast_mode_state:AR(q0,k.fastMode),uuid:Ia()}}interrupt(){this.abortController.abort()}getMessages(){return this.mutableMessages}getReadFileState(){return this.readFileState}getSessionId(){return A1()}setModel(J){this.config.userSpecifiedModel=J}}async function*SEJ({commands:J,prompt:Q,promptUuid:X,isMeta:Z,cwd:Y,tools:q,mcpClients:K,verbose:G=!1,thinkingConfig:z,maxTurns:W,maxBudgetUsd:H,taskBudget:B,canUseTool:U,mutableMessages:F=[],getReadFileCache:_,setReadFileCache:O,customSystemPrompt:L,appendSystemPrompt:N,userSpecifiedModel:A,fallbackModel:R,jsonSchema:D,getAppState:$,setAppState:y,abortController:v,replayUserMessages:E=!1,includePartialMessages:C=!1,handleElicitation:S,agents:k=[],setSDKStatus:h,orphanedPermission:u}){let x=new fEJ({cwd:Y,tools:q,commands:J,mcpClients:K,agents:k,canUseTool:U,getAppState:$,setAppState:y,initialMessages:F,readFileCache:bM(_()),customSystemPrompt:L,appendSystemPrompt:N,userSpecifiedModel:A,fallbackModel:R,thinkingConfig:z,maxTurns:W,maxBudgetUsd:H,taskBudget:B,jsonSchema:D,verbose:G,handleElicitation:S,replayUserMessages:E,includePartialMessages:C,setSDKStatus:h,abortController:v,orphanedPermission:u,...{}});try{yield*x.submitMessage(Q,{uuid:X,isMeta:Z})}finally{O(x.getReadFileState())}}var vEJ=()=>(H81(),e4(RLJ)),pTQ=()=>({});var xEJ=I(()=>{_B0();N1();wq();FL0();xU();PY();zZ();JI();vd();t5();$l();XM();s6();Rj();nq();m8();Z6();t1();$B();pF();I2();JL0();vt0();M1();M8();CJ();oq();G08();V18();$w();gJ();EM();rN0();CEJ();vX();LL0()});var kEJ=I(()=>{D1();zc1();Z6();T1();M1();iE();Vj1()});function hEJ(J){let Q=process.env.GLOCK_EXIT_AFTER_STOP_DELAY,X=Q?parseInt(Q,10):null,Z=X&&!isNaN(X)&&X>0,Y=null,q=0;return{start(){if(Y)clearTimeout(Y),Y=null;if(Z)q=Date.now(),Y=setTimeout(()=>{let K=Date.now()-q;if(J()&&K>=X)b(`Exiting after ${X}ms of idle time`),a9()},X)},stop(){if(Y)clearTimeout(Y),Y=null}}}var uEJ=I(()=>{Z1();E5()});import{createServer as cTQ}from"http";class w18{localServer;port=0;promiseResolver=null;promiseRejecter=null;expectedState=null;pendingResponse=null;callbackPath;constructor(J="/callback"){this.localServer=cTQ(),this.callbackPath=J}async start(J){return new Promise((Q,X)=>{this.localServer.once("error",(Z)=>{X(Error(`Failed to start OAuth callback server: ${Z.message}`))}),this.localServer.listen(J??0,"localhost",()=>{let Z=this.localServer.address();this.port=Z.port,Q(this.port)})})}getPort(){return this.port}hasPendingResponse(){return this.pendingResponse!==null}async waitForAuthorization(J,Q){return new Promise((X,Z)=>{this.promiseResolver=X,this.promiseRejecter=Z,this.expectedState=J,this.startLocalListener(Q)})}handleSuccessRedirect(J,Q){if(!this.pendingResponse)return;if(Q){Q(this.pendingResponse,J),this.pendingResponse=null,l("jarvis_api_error",{custom_handler:!0});return}let X=bS(J)?qJ().GLOCKAI_SUCCESS_URL:qJ().CONSOLE_SUCCESS_URL;this.pendingResponse.writeHead(302,{Location:X}),this.pendingResponse.end(),this.pendingResponse=null,l("jarvis_api_error",{})}handleErrorRedirect(){if(!this.pendingResponse)return;let J=qJ().GLOCKAI_SUCCESS_URL;this.pendingResponse.writeHead(302,{Location:J}),this.pendingResponse.end(),this.pendingResponse=null,l("jarvis_api_error",{})}startLocalListener(J){this.localServer.on("request",this.handleRedirect.bind(this)),this.localServer.on("error",this.handleError.bind(this)),J()}handleRedirect(J,Q){let X=new URL(J.url||"",`http://${J.headers.host||"localhost"}`);if(X.pathname!==this.callbackPath){Q.writeHead(404),Q.end();return}let Z=X.searchParams.get("code")??void 0,Y=X.searchParams.get("state")??void 0;this.validateAndRespond(Z,Y,Q)}validateAndRespond(J,Q,X){if(!J){X.writeHead(400),X.end("Authorization code not found"),this.reject(Error("No authorization code received"));return}if(Q!==this.expectedState){X.writeHead(400),X.end("Invalid state parameter"),this.reject(Error("Invalid state parameter"));return}this.pendingResponse=X,this.resolve(J)}handleError(J){H0(J),this.close(),this.reject(J)}resolve(J){if(this.promiseResolver)this.promiseResolver(J),this.promiseResolver=null,this.promiseRejecter=null}reject(J){if(this.promiseRejecter)this.promiseRejecter(J),this.promiseResolver=null,this.promiseRejecter=null}close(){if(this.pendingResponse)this.handleErrorRedirect();if(this.localServer)this.localServer.removeAllListeners(),this.localServer.close()}}var gEJ=I(()=>{D1();$Z();M1();x$()});import{createHash as dTQ,randomBytes as mEJ}from"crypto";function A18(J){return J.toString("base64").replace(/\+/g,"-").replace(/\//g,"_").replace(/=/g,"")}function pEJ(){return A18(mEJ(32))}function cEJ(J){let Q=dTQ("sha256");return Q.update(J),A18(Q.digest())}function dEJ(){return A18(mEJ(32))}var lEJ=()=>{};class R18{codeVerifier;authCodeListener=null;port=null;manualAuthCodeResolver=null;constructor(){this.codeVerifier=pEJ()}async startOAuthFlow(J,Q){this.authCodeListener=new w18,this.port=await this.authCodeListener.start();let X=cEJ(this.codeVerifier),Z=dEJ(),Y={codeChallenge:X,state:Z,port:this.port,loginWithGlock:Q?.loginWithGlock,inferenceOnly:Q?.inferenceOnly,orgUUID:Q?.orgUUID,loginHint:Q?.loginHint,loginMethod:Q?.loginMethod},q=dw1({...Y,isManual:!0}),K=dw1({...Y,isManual:!1}),G=await this.waitForAuthorizationCode(Z,async()=>{if(Q?.skipBrowserOpen)await J(q,K);else await J(q),await IX(K)}),z=this.authCodeListener?.hasPendingResponse()??!1;l("jarvis_api_error",{automatic:z});try{let W=await ln8(G,Z,this.codeVerifier,this.port,!z,Q?.expiresIn),H=await lw1(W.access_token);if(z){let B=xv0(W.scope);this.authCodeListener?.handleSuccessRedirect(B)}return this.formatTokens(W,H.rawProfile)}catch(W){if(z)this.authCodeListener?.handleErrorRedirect();throw W}finally{this.authCodeListener?.close()}}async waitForAuthorizationCode(J,Q){return new Promise((X,Z)=>{this.manualAuthCodeResolver=X,this.authCodeListener?.waitForAuthorization(J,Q).then((Y)=>{this.manualAuthCodeResolver=null,X(Y)}).catch((Y)=>{this.manualAuthCodeResolver=null,Z(Y)})})}handleManualAuthCodeInput(J){if(this.manualAuthCodeResolver)this.manualAuthCodeResolver(J.authorizationCode),this.manualAuthCodeResolver=null,this.authCodeListener?.close()}formatTokens(J,Q){return{accessToken:J.access_token,refreshToken:J.refresh_token,expiresAt:Date.now()+J.expires_in*1000,scopes:xv0(J.scope),profile:Q,tokenAccount:J.account?{uuid:J.account.uuid,emailAddress:J.account.email_address,organizationUuid:J.organization?.uuid}:void 0}}cleanup(){this.authCodeListener?.close(),this.manualAuthCodeResolver=null}}var iEJ=I(()=>{D1();s3();gEJ();x$();lEJ()});import{randomUUID as nEJ}from"crypto";function rEJ(J){if(J.toLowerCase().endsWith(".jsonl"))return{sessionId:nEJ(),ingressUrl:null,isUrl:!1,jsonlFile:J,isJsonlFile:!0};if(vM(J))return{sessionId:J,ingressUrl:null,isUrl:!1,jsonlFile:null,isJsonlFile:!1};try{let Q=new URL(J);return{sessionId:nEJ(),ingressUrl:Q.href,isUrl:!0,jsonlFile:null,isJsonlFile:!1}}catch{}return null}var aEJ=I(()=>{SM()});import{readFile as oEJ}from"fs/promises";import{join as M18}from"path";async function iTQ(){try{let J=await oEJ(dE1(),"utf-8"),Q=rt().safeParse(c1(J));if(!Q.success)return b(`Invalid known_marketplaces.json in zip cache: ${Q.error.message}`,{level:"error"}),{};return Q.data}catch{return{}}}async function nTQ(J){await wm0(dE1(),l0(J,null,2))}async function rTQ(J,Q){let X=aU0();if(!X)return;let Z=await aTQ(Q);if(Z!==null){let Y=l_6(J);await wm0(M18(X,Y),Z)}}async function aTQ(J){let Q=[M18(J,".glock-plugin","marketplace.json"),M18(J,"marketplace.json"),J];for(let X of Q)try{return await oEJ(X,"utf-8")}catch{}return null}async function sEJ(){let J=await Vk();for(let[Z,Y]of Object.entries(J)){if(!Y.installLocation)continue;try{await rTQ(Z,Y.installLocation)}catch(q){b(`Failed to save marketplace JSON for ${Z}: ${q}`)}}let X={...await iTQ(),...J};await nTQ(X)}var tEJ=I(()=>{Z1();i1();q5();UB();c60()});async function eEJ(){let J=Qw();b(`installPluginsForHeadless: starting${J?" (zip cache mode)":""}`);let Q=await Ar0();if(Q)wI(),M2("headlessPluginInstall: seed marketplaces registered");if(J)await Y1().mkdir(m_6()),await Y1().mkdir(p_6());let X=Object.keys(mh()).length,Z={marketplaces_installed:0,delisted_count:0},Y=Q;try{if(X===0)b("installPluginsForHeadless: no marketplaces declared");else{let K=await bs("headless_marketplace_reconcile",()=>qJ1({skip:J?(z,W)=>!i_6(W):void 0,onProgress:(z)=>{if(z.type==="installed")b(`installPluginsForHeadless: installed marketplace ${z.name}`);else if(z.type==="failed")b(`installPluginsForHeadless: failed to install marketplace ${z.name}: ${z.error}`)}}),(z)=>({installed_count:z.installed.length,updated_count:z.updated.length,failed_count:z.failed.length,skipped_count:z.skipped.length}));if(K.skipped.length>0)b(`installPluginsForHeadless: skipped ${K.skipped.length} marketplace(s) unsupported by zip cache: ${K.skipped.join(", ")}`);let G=K.installed.length+K.updated.length;if(G>0)wI(),M2("headlessPluginInstall: marketplaces reconciled"),Y=!0;Z.marketplaces_installed=G}if(J)await sEJ();let q=await C61();if(Z.delisted_count=q.length,q.length>0)Y=!0;if(Y)M2("headlessPluginInstall: plugins changed");if(J)UJ(c_6);return Y}catch(q){return H0(q),!1}finally{l("jarvis_api_error",Z)}}var JTJ=I(()=>{D1();EX();Z1();h4();H6();M1();q5();U08();oq();E08();c60();tEJ()});var FTJ={};X8(FTJ,{runHeadless:()=>JCQ,removeInterruptedMessage:()=>WTJ,reconcileMcpServers:()=>UTJ,joinPromptValues:()=>YTJ,handleOrphanedPermissionResponse:()=>HTJ,handleMcpSetServers:()=>BTJ,getCanUseToolFn:()=>GTJ,createCanUseToolWithPermissionPrompt:()=>KTJ,canBatchWith:()=>qTJ});import{readFile as oTQ,stat as sTQ}from"fs/promises";import{dirname as QTJ}from"path";import{cwd as bA0}from"process";import{randomUUID as aH}from"crypto";function tTQ(J){if(bJ1.has(J))return!1;if(bJ1.add(J),IJ1.push(J),IJ1.length>ZTJ){let Q=IJ1.splice(0,IJ1.length-ZTJ);for(let X of Q)bJ1.delete(X)}return!0}function eTQ(J){return typeof J==="string"?[{type:"text",text:J}]:J}function YTJ(J){if(J.length===1)return J[0];if(J.every((Q)=>typeof Q==="string"))return J.join(`
|
|
7829
7829
|
`);return J.flatMap(eTQ)}function qTJ(J,Q){return Q!==void 0&&Q.mode==="prompt"&&Q.workload===J.workload&&Q.isMeta===J.isMeta}async function JCQ(J,Q,X,Z,Y,q,K,G){if(process.env.USER_TYPE==="ant"&&W1(process.env.GLOCK_EXIT_AFTER_FIRST_RENDER))process.stderr.write(`
|
|
7830
7830
|
Startup time: ${Math.round(process.uptime()*1000)}ms
|
|
7831
7831
|
`),process.exit(0);if(J_.subscribe((S)=>{if(Bl0(S,X),B9())X((k)=>{let h=k.settings,u=h.fastMode===!0&&!h.fastModePerSessionOptIn;return{...k,fastMode:u}})}),typeof Bun<"u")setInterval(Bun.gc,1000).unref();if(ig1(),VG("runHeadless_entry"),await KZ0())await h4J();if(VG("after_grove_check"),GK0(),G.resumeSessionAt&&!G.resume){process.stderr.write(`Error: --resume-session-at requires --resume
|
|
@@ -7894,5 +7894,5 @@ ${_0}`:E8.initialPrompt;else if(!_0)_0=E8.initialPrompt}let z0=p0;if(!z0&&E8?.mo
|
|
|
7894
7894
|
# Custom Agent Instructions
|
|
7895
7895
|
${NJ}`;t=t?`${t}
|
|
7896
7896
|
|
|
7897
|
-
${hJ}`:hJ}}else b(`[teammate] Custom agent ${s.agentType} not found in available agents`)}let d0,r0,n0;if(!V0){let U6=vbJ(!1);r0=U6.getFpsMetrics,n0=U6.stats;let{createRoot:NJ}=await Promise.resolve().then(() => (a0(),Fj1));d0=await NJ(U6.renderOptions),l("jarvis_api_error",{event:"startup",durationMs:Math.round(process.uptime()*1000)}),b("[STARTUP] Running showSetupScreens()...");let hJ=Date.now(),F9=await CbJ(d0,q0,W,a1,D0);if(b(`[STARTUP] showSetupScreens() completed in ${Date.now()-hJ}ms`),F9&&X?.trim().toLowerCase()==="/login")X="";if(F9)Qs0(),Xo0(),qX0(),Kp();let HQ=await bM1();if(!HQ.valid)await TbJ(d0,HQ.message)}if(process.exitCode!==void 0){b("Graceful shutdown initiated, skipping further initialization");return}if(ox1(),!V0){let{errors:U6}=op(),NJ=U6.filter((hJ)=>!hJ.mcpErrorMetadata);if(NJ.length>0)await dbJ(d0,{settingsErrors:NJ,onExit:()=>a9(1)})}let f1=Y8("jarvis_api_error",0),F1=L1().startupPrefetchedAt??0;if(!(y7()||f1>0&&Date.now()-F1<f1)){let U6=F1>0?` last ran ${Math.round((Date.now()-F1)/1000)}s ago`:"";if(b(`Starting background startup prefetches${U6}`),Nn6().catch((NJ)=>H0(NJ)),zHJ(),!Y8("jarvis_api_error",!1))zS0();else vM1();if(f1>0)q8((NJ)=>({...NJ,startupPrefetchedAt:Date.now()}))}else b(`Skipping startup prefetches, last ran ${Math.round((Date.now()-F1)/1000)}s ago`),vM1();if(!V0)YMJ();let{servers:e1}=await u0;b(`[STARTUP] MCP configs resolved in ${h0}ms (awaited at +${Date.now()-E0}ms)`);let a8={...e1,...a},X6={},c6={};for(let[U6,NJ]of Object.entries(a8)){let hJ=NJ;if(hJ.type==="sdk")X6[U6]=hJ;else c6[U6]=hJ}tJ("action_mcp_configs_loaded");let HJ=V0?Promise.resolve({clients:[],tools:[],commands:[]}):DF0(c6),bJ=V0?Promise.resolve({clients:[],tools:[],commands:[]}):w0.then((U6)=>Object.keys(U6).length>0?DF0(U6):{clients:[],tools:[],commands:[]}),VJ=Promise.all([HJ,bJ]).then(([U6,NJ])=>({clients:[...U6.clients,...NJ.clients],tools:N5([...U6.tools,...NJ.tools],"name"),commands:N5([...U6.commands,...NJ.commands],"name")})),TQ=u||h||x||V0?null:KW("startup",{agentType:E8?.agentType,model:f0}),f7=[];VJ.catch(()=>{});let c7=[],n8=[],hZ=[],T8=sk(),wX=T8!==!1?{type:"adaptive"}:{type:"disabled"};{let U6=process.env.MAX_THINKING_TOKENS?parseInt(process.env.MAX_THINKING_TOKENS,10):void 0;if(U6!==void 0){if(U6>0)T8=!0,wX={type:"enabled",budgetTokens:U6};else if(U6===0)T8=!1,wX={type:"disabled"}}}if(n1("info","started",{version:"0.1.
|
|
7898
|
-
`),process.exit(1);let hJ=m?[]:a1.filter((f9)=>f9.type==="prompt"&&!f9.disableNonInteractive||f9.type==="local"&&f9.supportsNonInteractive),F9=U_0(),HQ={...F9,mcp:{...F9.mcp,clients:c7,commands:hZ,tools:n8},toolPermissionContext:I0,effortValue:"high",...B9()&&{fastMode:EM1(z0??null)},...{}},uZ=Oi(HQ,rr);if(I0.mode==="bypassPermissions"||W)u6J(I0);o71(ko8(N));let sJ=(f9,oQ)=>{if(Object.keys(f9).length===0)return Promise.resolve();return uZ.setState((O7)=>({...O7,mcp:{...O7.mcp,clients:[...O7.mcp.clients,...Object.entries(f9).map(([BQ,b9])=>({name:BQ,type:"pending",config:b9}))]}})),rJ0(({client:O7,tools:BQ,commands:b9})=>{uZ.setState((z7)=>({...z7,mcp:{...z7.mcp,clients:z7.mcp.clients.some((CQ)=>CQ.name===O7.name)?z7.mcp.clients.map((CQ)=>CQ.name===O7.name?O7:CQ):[...z7.mcp.clients,O7],tools:N5([...z7.mcp.tools,...BQ],"name"),commands:N5([...z7.mcp.commands,...b9],"name")}}))},f9).catch((O7)=>b(`[MCP] ${oQ} connect error: ${O7}`))};tJ("before_connectMcp"),await sJ(c6,"regular"),tJ("after_connectMcp");let uX=5000,_9=w0.then((f9)=>{if(Object.keys(f9).length>0){let BQ=new Set;for(let z7 of Object.values(f9)){let CQ=Xi(z7);if(CQ)BQ.add(CQ)}let b9=new Set;for(let[z7,CQ]of Object.entries(c6)){if(!z7.startsWith("plugin:"))continue;let QZ=Xi(CQ);if(QZ&&BQ.has(QZ))b9.add(z7)}if(b9.size>0){b(`[MCP] Lazy dedup: suppressing ${b9.size} plugin server(s) that duplicate glock connectors: ${[...b9].join(", ")}`);for(let z7 of uZ.getState().mcp.clients){if(!b9.has(z7.name)||z7.type!=="connected")continue;z7.client.onclose=void 0,lB(z7.name,z7.config).catch(()=>{})}uZ.setState((z7)=>{let{clients:CQ,tools:QZ,commands:XZ,resources:vQ}=z7.mcp;CQ=CQ.filter((I7)=>!b9.has(I7.name)),QZ=QZ.filter((I7)=>!I7.mcpInfo||!b9.has(I7.mcpInfo.serverName));for(let I7 of b9)XZ=lJ0(XZ,I7),vQ=iJ0(vQ,I7);return{...z7,mcp:{...z7.mcp,clients:CQ,tools:QZ,commands:XZ,resources:vQ}}})}}let oQ=rq0(c6,(BQ,b9)=>!b9.startsWith("plugin:")),{servers:O7}=_F0(f9,oQ);return sJ(O7,"glockai")}),gX,q4=await Promise.race([_9.then(()=>!1),new Promise((f9)=>{gX=setTimeout((oQ)=>oQ(!0),uX,f9)})]);if(gX)clearTimeout(gX);if(q4)b(`[MCP] glock connectors not ready after ${uX}ms \u2014 proceeding; background connection continues`);if(tJ("after_connectMcp_glockai"),!y7())NJ1(),Promise.resolve().then(() => (te1(),nMJ)).then((f9)=>f9.startBackgroundHousekeeping());OTJ(),tJ("before_print_import");let{runHeadless:zX}=await Promise.resolve().then(() => (_TJ(),FTJ));tJ("after_print_import"),zX(_0,()=>uZ.getState(),uZ.setState,hJ,M0,X6,vJ.activeAgents,{continue:void 0,resume:void 0,verbose:S,outputFormat:E,jsonSchema:b0,permissionPromptToolName:void 0,allowedTools:B,thinkingConfig:wX,maxTurns:void 0,maxBudgetUsd:void 0,taskBudget:void 0,systemPrompt:Z0,appendSystemPrompt:t,userSpecifiedModel:z0,fallbackModel:o0,teleport:G0,sdkUrl:X0,replayUserMessages:K0,includePartialMessages:Y0,forkSession:!1,resumeSessionAt:void 0,rewindFiles:void 0,enableAuthStatus:void 0,agent:v,workload:void 0,setupTrigger:r4??void 0,sessionStartHooksPromise:U6});return}l("jarvis_api_error",{cli_flag:void 0,env_var:process.env.GLOCK_MODEL,settings_file:(h6()||{}).model,subscriptionType:null,agent:cJ});let m9=GJ1(f0),Y4=[];if(Q0)Y4.push({key:"permission-mode-notification",text:Q0,priority:"high"});if(m9)Y4.push({key:"model-deprecation-warning",text:m9,color:"warning",priority:"high"});if($0.length>0){let U6=b3($0.map((HQ)=>HQ.ruleDisplay)),NJ=U6.join(", "),hJ=b3($0.map((HQ)=>HQ.sourceDisplay)).join(", "),F9=U6.length;Y4.push({key:"overly-broad-bash-notification",text:`${NJ} allow ${J6(F9,"rule")} from ${hJ} ${J6(F9,"was","were")} ignored \u2014 not available for Ants, please use auto-mode instead`,color:"warning",priority:"high"})}let BK={...I0,mode:p6()&&HCQ().isPlanModeRequired()?"plan":I0.mode},y9=!1,JZ={settings:h6(),tasks:{},agentNameRegistry:new Map,verbose:S??L1().verbose??!1,mainLoopModel:N0,mainLoopModelForSession:null,isBriefOnly:y9,expandedView:L1().showSpinnerTree?"teammates":L1().showExpandedTodos?"tasks":"none",showTeammateMessagePreview:p6()?!1:void 0,selectedIPAgentIndex:-1,coordinatorTaskIndex:-1,viewSelectionMode:"none",footerSelection:null,toolPermissionContext:BK,agent:E8?.agentType,agentDefinitions:vJ,mcp:{clients:[],tools:[],commands:[],resources:{},pluginReconnectKey:0},plugins:{enabled:[],disabled:[],commands:[],errors:[],installationStatus:{marketplaces:[],plugins:[]},needsRefresh:!1},statusLineText:void 0,kairosEnabled:Y,remoteSessionUrl:void 0,remoteConnectionStatus:"connecting",remoteBackgroundTaskCount:0,notifications:{current:null,queue:Y4},elicitation:{queue:[]},todos:{},remoteAgentTaskSuggestions:[],fileHistory:{snapshots:[],trackedFiles:new Set,snapshotSequence:0},attribution:ch(),thinkingEnabled:T8,promptSuggestionEnabled:na0(),sessionHooks:new Map,inbox:{messages:[]},promptSuggestion:{text:null,promptId:null,shownAt:0,acceptedAt:0,generationRequestId:null},speculation:Bh,speculationSessionTimeSavedMs:0,skillImprovement:{suggestion:null},workerSandboxPermissions:{queue:[],selectedIndex:0},pendingWorkerRequest:null,pendingSandboxRequest:null,authVersion:0,initialMessage:_0?{message:$1({content:String(_0)})}:null,effortValue:"high",activeOverlays:new Set,fastMode:EM1(f0),teamContext:UDJ?.()};if(_0)nQ0(String(_0));let P4=n8;q8((U6)=>({...U6,numStartups:(U6.numStartups??0)+1})),setImmediate(()=>{_CQ(),OTJ()});let u5=null,RZ=u5?u5.then((U6)=>U6.createSessionTurnUploader()).catch(()=>null):null,E4={debug:K||G,commands:[...a1,...hZ],initialTools:P4,mcpClients:c7,autoConnectIdeFlag:A,mainThreadAgentDefinition:E8,disableSlashCommands:m,dynamicMcpConfig:a,strictMcpConfig:O0,systemPrompt:Z0,appendSystemPrompt:t,taskListId:p,thinkingConfig:wX,...RZ&&{onTurnComplete:(U6)=>{RZ.then((NJ)=>NJ?.(U6))}}};{let U6=TQ&&f7.length===0?TQ:void 0;tJ("action_after_hooks");let NJ=f7.length>0?f7:void 0;await $yJ(d0,{getFpsMetrics:r0,stats:n0,initialState:JZ},{...E4,initialMessages:NJ,pendingHookMessages:U6},n08)}}),Q.command("login").description("Sign in to your Glock account").action(async()=>{let{authLogin:X}=await Promise.resolve().then(() => (I18(),j18));await X({})}),Q.command("logout").description("Log out from your Glock account").action(async()=>{let{authLogout:X}=await Promise.resolve().then(() => (I18(),j18));await X()}),tJ("run_before_parse"),await Q.parseAsync(process.argv),tJ("run_after_parse"),tJ("main_after_run"),pq0(),Q}async function RCQ({hasInitialPrompt:J,hasStdin:Q,verbose:X,debug:Z,debugToStderr:Y,print:q,outputFormat:K,inputFormat:G,numAllowedTools:z,numDisallowedTools:W,mcpClientCount:H,worktreeEnabled:B,skipWebFetchPreflight:U,githubActionInputs:F,dangerouslySkipPermissionsPassed:_,permissionMode:O,modeIsBypass:L,allowDangerouslySkipPermissionsPassed:N,systemPromptFlag:A,appendSystemPromptFlag:R,thinkingConfig:D,assistantActivationPath:$}){try{l("jarvis_api_error",{entrypoint:"glock",hasInitialPrompt:J,hasStdin:Q,verbose:X,debug:Z,debugToStderr:Y,print:q,outputFormat:K,inputFormat:G,numAllowedTools:z,numDisallowedTools:W,mcpClientCount:H,worktree:B,skipWebFetchPreflight:U,...F&&{githubActionInputs:F},dangerouslySkipPermissionsPassed:_,permissionMode:O,modeIsBypass:L,inProtectedNamespace:uQ1(),allowDangerouslySkipPermissionsPassed:N,thinkingType:D.type,...A&&{systemPromptFlag:A},...R&&{appendSystemPromptFlag:R},is_simple:y7()||void 0,is_coordinator:void 0,...$&&{assistantActivationPath:$},autoUpdatesChannel:h6().autoUpdatesChannel??"latest",...{}})}catch(y){H0(y)}}function MCQ(){(process.stderr.isTTY?process.stderr:process.stdout.isTTY?process.stdout:void 0)?.write(CR)}var HCQ=()=>(FZ(),e4(Ej1)),y18=11;var a08=I(()=>{zf();dX1();rX1();l48();k7();WZ1();uA();UL();DOJ();uw();jyJ();uZ0();jj1();QD();YX0();Rj();PH();lZ();v61();N9();m8();dq0();$B();Nw0();M8();Pi();T61();X08();yyJ();th();D1();u08();N1();PY();ibJ();zx();r08();fn();dB();vPJ();r3();zr();t1();me1();uQ();SPJ();s5();M1();C08();CJ();NP();JW();qL();i3();m_0();mM();ih();gJ();Db0();g8();SM();vg1();pJ0();dB();HL();az();D08();Vi();EX();MI();mr();Z6();Z1();E5();FB0();vA1();N1();kPJ();uPJ();mPJ();pPJ();MT();yQ0();F_0();Dw0();Q2();h4();oq();SN0();V4();EM();kL0();tJ("main_tsx_entry");B48();R48();tJ("main_tsx_imports_loaded");if(UCQ())process.exit(1)});N50();vJ8();process.env.COREPACK_ENABLE_AUTO_PIN="0";if(process.env.GLOCK_REMOTE==="true"){let J=process.env.NODE_OPTIONS||"";process.env.NODE_OPTIONS=J?`${J} --max-old-space-size=8192`:"--max-old-space-size=8192"}async function DCQ(){let J=process.argv.slice(2);if(J.length===1&&(J[0]==="--version"||J[0]==="-v"||J[0]==="-V")){console.log("0.1.
|
|
7897
|
+
${hJ}`:hJ}}else b(`[teammate] Custom agent ${s.agentType} not found in available agents`)}let d0,r0,n0;if(!V0){let U6=vbJ(!1);r0=U6.getFpsMetrics,n0=U6.stats;let{createRoot:NJ}=await Promise.resolve().then(() => (a0(),Fj1));d0=await NJ(U6.renderOptions),l("jarvis_api_error",{event:"startup",durationMs:Math.round(process.uptime()*1000)}),b("[STARTUP] Running showSetupScreens()...");let hJ=Date.now(),F9=await CbJ(d0,q0,W,a1,D0);if(b(`[STARTUP] showSetupScreens() completed in ${Date.now()-hJ}ms`),F9&&X?.trim().toLowerCase()==="/login")X="";if(F9)Qs0(),Xo0(),qX0(),Kp();let HQ=await bM1();if(!HQ.valid)await TbJ(d0,HQ.message)}if(process.exitCode!==void 0){b("Graceful shutdown initiated, skipping further initialization");return}if(ox1(),!V0){let{errors:U6}=op(),NJ=U6.filter((hJ)=>!hJ.mcpErrorMetadata);if(NJ.length>0)await dbJ(d0,{settingsErrors:NJ,onExit:()=>a9(1)})}let f1=Y8("jarvis_api_error",0),F1=L1().startupPrefetchedAt??0;if(!(y7()||f1>0&&Date.now()-F1<f1)){let U6=F1>0?` last ran ${Math.round((Date.now()-F1)/1000)}s ago`:"";if(b(`Starting background startup prefetches${U6}`),Nn6().catch((NJ)=>H0(NJ)),zHJ(),!Y8("jarvis_api_error",!1))zS0();else vM1();if(f1>0)q8((NJ)=>({...NJ,startupPrefetchedAt:Date.now()}))}else b(`Skipping startup prefetches, last ran ${Math.round((Date.now()-F1)/1000)}s ago`),vM1();if(!V0)YMJ();let{servers:e1}=await u0;b(`[STARTUP] MCP configs resolved in ${h0}ms (awaited at +${Date.now()-E0}ms)`);let a8={...e1,...a},X6={},c6={};for(let[U6,NJ]of Object.entries(a8)){let hJ=NJ;if(hJ.type==="sdk")X6[U6]=hJ;else c6[U6]=hJ}tJ("action_mcp_configs_loaded");let HJ=V0?Promise.resolve({clients:[],tools:[],commands:[]}):DF0(c6),bJ=V0?Promise.resolve({clients:[],tools:[],commands:[]}):w0.then((U6)=>Object.keys(U6).length>0?DF0(U6):{clients:[],tools:[],commands:[]}),VJ=Promise.all([HJ,bJ]).then(([U6,NJ])=>({clients:[...U6.clients,...NJ.clients],tools:N5([...U6.tools,...NJ.tools],"name"),commands:N5([...U6.commands,...NJ.commands],"name")})),TQ=u||h||x||V0?null:KW("startup",{agentType:E8?.agentType,model:f0}),f7=[];VJ.catch(()=>{});let c7=[],n8=[],hZ=[],T8=sk(),wX=T8!==!1?{type:"adaptive"}:{type:"disabled"};{let U6=process.env.MAX_THINKING_TOKENS?parseInt(process.env.MAX_THINKING_TOKENS,10):void 0;if(U6!==void 0){if(U6>0)T8=!0,wX={type:"enabled",budgetTokens:U6};else if(U6===0)T8=!1,wX={type:"disabled"}}}if(n1("info","started",{version:"0.1.17",is_native_binary:P3()}),UJ(async()=>{n1("info","exited")}),RCQ({hasInitialPrompt:Boolean(X),hasStdin:Boolean(_0),verbose:S,debug:K,debugToStderr:G,print:k??!1,outputFormat:E??"text",inputFormat:C??"text",numAllowedTools:B.length,numDisallowedTools:U.length,mcpClientCount:Object.keys(a8).length,worktreeEnabled:r,skipWebFetchPreflight:h6().skipWebFetchPreflight,githubActionInputs:process.env.GITHUB_ACTION_INPUTS,dangerouslySkipPermissionsPassed:z??!1,permissionMode:q0,modeIsBypass:q0==="bypassPermissions",allowDangerouslySkipPermissionsPassed:W,systemPromptFlag:void 0,appendSystemPromptFlag:void 0,thinkingConfig:wX,assistantActivationPath:void 0}),_9J(c6,I0),za0(null,"initialization"),BCQ(),k2J().then((U6)=>{if(!U6)return;if(m0)gr(m0);C11().then((NJ)=>{if(NJ>=2)l("jarvis_api_error",{num_sessions:NJ})})}),y7());else if(V0)await vu1(),tJ("action_after_plugins_init"),Du1().then(()=>si());else vu1().then(async()=>{tJ("action_after_plugins_init"),await Du1(),si()});let r4=u||h?"init":x?"maintenance":null;if(u){Bg(),await Ga0("init",{forceSyncExecution:!0}),await KW("startup",{forceSyncExecution:!0}),a9(0);return}if(V0){if(E==="stream-json"||E==="json")gZ8(!0);Bg();let U6=r4?void 0:KW("startup");U6?.catch(()=>{}),tJ("before_validateForceLoginOrg");let NJ=await bM1();if(!NJ.valid)process.stderr.write(NJ.message+`
|
|
7898
|
+
`),process.exit(1);let hJ=m?[]:a1.filter((f9)=>f9.type==="prompt"&&!f9.disableNonInteractive||f9.type==="local"&&f9.supportsNonInteractive),F9=U_0(),HQ={...F9,mcp:{...F9.mcp,clients:c7,commands:hZ,tools:n8},toolPermissionContext:I0,effortValue:"high",...B9()&&{fastMode:EM1(z0??null)},...{}},uZ=Oi(HQ,rr);if(I0.mode==="bypassPermissions"||W)u6J(I0);o71(ko8(N));let sJ=(f9,oQ)=>{if(Object.keys(f9).length===0)return Promise.resolve();return uZ.setState((O7)=>({...O7,mcp:{...O7.mcp,clients:[...O7.mcp.clients,...Object.entries(f9).map(([BQ,b9])=>({name:BQ,type:"pending",config:b9}))]}})),rJ0(({client:O7,tools:BQ,commands:b9})=>{uZ.setState((z7)=>({...z7,mcp:{...z7.mcp,clients:z7.mcp.clients.some((CQ)=>CQ.name===O7.name)?z7.mcp.clients.map((CQ)=>CQ.name===O7.name?O7:CQ):[...z7.mcp.clients,O7],tools:N5([...z7.mcp.tools,...BQ],"name"),commands:N5([...z7.mcp.commands,...b9],"name")}}))},f9).catch((O7)=>b(`[MCP] ${oQ} connect error: ${O7}`))};tJ("before_connectMcp"),await sJ(c6,"regular"),tJ("after_connectMcp");let uX=5000,_9=w0.then((f9)=>{if(Object.keys(f9).length>0){let BQ=new Set;for(let z7 of Object.values(f9)){let CQ=Xi(z7);if(CQ)BQ.add(CQ)}let b9=new Set;for(let[z7,CQ]of Object.entries(c6)){if(!z7.startsWith("plugin:"))continue;let QZ=Xi(CQ);if(QZ&&BQ.has(QZ))b9.add(z7)}if(b9.size>0){b(`[MCP] Lazy dedup: suppressing ${b9.size} plugin server(s) that duplicate glock connectors: ${[...b9].join(", ")}`);for(let z7 of uZ.getState().mcp.clients){if(!b9.has(z7.name)||z7.type!=="connected")continue;z7.client.onclose=void 0,lB(z7.name,z7.config).catch(()=>{})}uZ.setState((z7)=>{let{clients:CQ,tools:QZ,commands:XZ,resources:vQ}=z7.mcp;CQ=CQ.filter((I7)=>!b9.has(I7.name)),QZ=QZ.filter((I7)=>!I7.mcpInfo||!b9.has(I7.mcpInfo.serverName));for(let I7 of b9)XZ=lJ0(XZ,I7),vQ=iJ0(vQ,I7);return{...z7,mcp:{...z7.mcp,clients:CQ,tools:QZ,commands:XZ,resources:vQ}}})}}let oQ=rq0(c6,(BQ,b9)=>!b9.startsWith("plugin:")),{servers:O7}=_F0(f9,oQ);return sJ(O7,"glockai")}),gX,q4=await Promise.race([_9.then(()=>!1),new Promise((f9)=>{gX=setTimeout((oQ)=>oQ(!0),uX,f9)})]);if(gX)clearTimeout(gX);if(q4)b(`[MCP] glock connectors not ready after ${uX}ms \u2014 proceeding; background connection continues`);if(tJ("after_connectMcp_glockai"),!y7())NJ1(),Promise.resolve().then(() => (te1(),nMJ)).then((f9)=>f9.startBackgroundHousekeeping());OTJ(),tJ("before_print_import");let{runHeadless:zX}=await Promise.resolve().then(() => (_TJ(),FTJ));tJ("after_print_import"),zX(_0,()=>uZ.getState(),uZ.setState,hJ,M0,X6,vJ.activeAgents,{continue:void 0,resume:void 0,verbose:S,outputFormat:E,jsonSchema:b0,permissionPromptToolName:void 0,allowedTools:B,thinkingConfig:wX,maxTurns:void 0,maxBudgetUsd:void 0,taskBudget:void 0,systemPrompt:Z0,appendSystemPrompt:t,userSpecifiedModel:z0,fallbackModel:o0,teleport:G0,sdkUrl:X0,replayUserMessages:K0,includePartialMessages:Y0,forkSession:!1,resumeSessionAt:void 0,rewindFiles:void 0,enableAuthStatus:void 0,agent:v,workload:void 0,setupTrigger:r4??void 0,sessionStartHooksPromise:U6});return}l("jarvis_api_error",{cli_flag:void 0,env_var:process.env.GLOCK_MODEL,settings_file:(h6()||{}).model,subscriptionType:null,agent:cJ});let m9=GJ1(f0),Y4=[];if(Q0)Y4.push({key:"permission-mode-notification",text:Q0,priority:"high"});if(m9)Y4.push({key:"model-deprecation-warning",text:m9,color:"warning",priority:"high"});if($0.length>0){let U6=b3($0.map((HQ)=>HQ.ruleDisplay)),NJ=U6.join(", "),hJ=b3($0.map((HQ)=>HQ.sourceDisplay)).join(", "),F9=U6.length;Y4.push({key:"overly-broad-bash-notification",text:`${NJ} allow ${J6(F9,"rule")} from ${hJ} ${J6(F9,"was","were")} ignored \u2014 not available for Ants, please use auto-mode instead`,color:"warning",priority:"high"})}let BK={...I0,mode:p6()&&HCQ().isPlanModeRequired()?"plan":I0.mode},y9=!1,JZ={settings:h6(),tasks:{},agentNameRegistry:new Map,verbose:S??L1().verbose??!1,mainLoopModel:N0,mainLoopModelForSession:null,isBriefOnly:y9,expandedView:L1().showSpinnerTree?"teammates":L1().showExpandedTodos?"tasks":"none",showTeammateMessagePreview:p6()?!1:void 0,selectedIPAgentIndex:-1,coordinatorTaskIndex:-1,viewSelectionMode:"none",footerSelection:null,toolPermissionContext:BK,agent:E8?.agentType,agentDefinitions:vJ,mcp:{clients:[],tools:[],commands:[],resources:{},pluginReconnectKey:0},plugins:{enabled:[],disabled:[],commands:[],errors:[],installationStatus:{marketplaces:[],plugins:[]},needsRefresh:!1},statusLineText:void 0,kairosEnabled:Y,remoteSessionUrl:void 0,remoteConnectionStatus:"connecting",remoteBackgroundTaskCount:0,notifications:{current:null,queue:Y4},elicitation:{queue:[]},todos:{},remoteAgentTaskSuggestions:[],fileHistory:{snapshots:[],trackedFiles:new Set,snapshotSequence:0},attribution:ch(),thinkingEnabled:T8,promptSuggestionEnabled:na0(),sessionHooks:new Map,inbox:{messages:[]},promptSuggestion:{text:null,promptId:null,shownAt:0,acceptedAt:0,generationRequestId:null},speculation:Bh,speculationSessionTimeSavedMs:0,skillImprovement:{suggestion:null},workerSandboxPermissions:{queue:[],selectedIndex:0},pendingWorkerRequest:null,pendingSandboxRequest:null,authVersion:0,initialMessage:_0?{message:$1({content:String(_0)})}:null,effortValue:"high",activeOverlays:new Set,fastMode:EM1(f0),teamContext:UDJ?.()};if(_0)nQ0(String(_0));let P4=n8;q8((U6)=>({...U6,numStartups:(U6.numStartups??0)+1})),setImmediate(()=>{_CQ(),OTJ()});let u5=null,RZ=u5?u5.then((U6)=>U6.createSessionTurnUploader()).catch(()=>null):null,E4={debug:K||G,commands:[...a1,...hZ],initialTools:P4,mcpClients:c7,autoConnectIdeFlag:A,mainThreadAgentDefinition:E8,disableSlashCommands:m,dynamicMcpConfig:a,strictMcpConfig:O0,systemPrompt:Z0,appendSystemPrompt:t,taskListId:p,thinkingConfig:wX,...RZ&&{onTurnComplete:(U6)=>{RZ.then((NJ)=>NJ?.(U6))}}};{let U6=TQ&&f7.length===0?TQ:void 0;tJ("action_after_hooks");let NJ=f7.length>0?f7:void 0;await $yJ(d0,{getFpsMetrics:r0,stats:n0,initialState:JZ},{...E4,initialMessages:NJ,pendingHookMessages:U6},n08)}}),Q.command("login").description("Sign in to your Glock account").action(async()=>{let{authLogin:X}=await Promise.resolve().then(() => (I18(),j18));await X({})}),Q.command("logout").description("Log out from your Glock account").action(async()=>{let{authLogout:X}=await Promise.resolve().then(() => (I18(),j18));await X()}),tJ("run_before_parse"),await Q.parseAsync(process.argv),tJ("run_after_parse"),tJ("main_after_run"),pq0(),Q}async function RCQ({hasInitialPrompt:J,hasStdin:Q,verbose:X,debug:Z,debugToStderr:Y,print:q,outputFormat:K,inputFormat:G,numAllowedTools:z,numDisallowedTools:W,mcpClientCount:H,worktreeEnabled:B,skipWebFetchPreflight:U,githubActionInputs:F,dangerouslySkipPermissionsPassed:_,permissionMode:O,modeIsBypass:L,allowDangerouslySkipPermissionsPassed:N,systemPromptFlag:A,appendSystemPromptFlag:R,thinkingConfig:D,assistantActivationPath:$}){try{l("jarvis_api_error",{entrypoint:"glock",hasInitialPrompt:J,hasStdin:Q,verbose:X,debug:Z,debugToStderr:Y,print:q,outputFormat:K,inputFormat:G,numAllowedTools:z,numDisallowedTools:W,mcpClientCount:H,worktree:B,skipWebFetchPreflight:U,...F&&{githubActionInputs:F},dangerouslySkipPermissionsPassed:_,permissionMode:O,modeIsBypass:L,inProtectedNamespace:uQ1(),allowDangerouslySkipPermissionsPassed:N,thinkingType:D.type,...A&&{systemPromptFlag:A},...R&&{appendSystemPromptFlag:R},is_simple:y7()||void 0,is_coordinator:void 0,...$&&{assistantActivationPath:$},autoUpdatesChannel:h6().autoUpdatesChannel??"latest",...{}})}catch(y){H0(y)}}function MCQ(){(process.stderr.isTTY?process.stderr:process.stdout.isTTY?process.stdout:void 0)?.write(CR)}var HCQ=()=>(FZ(),e4(Ej1)),y18=11;var a08=I(()=>{zf();dX1();rX1();l48();k7();WZ1();uA();UL();DOJ();uw();jyJ();uZ0();jj1();QD();YX0();Rj();PH();lZ();v61();N9();m8();dq0();$B();Nw0();M8();Pi();T61();X08();yyJ();th();D1();u08();N1();PY();ibJ();zx();r08();fn();dB();vPJ();r3();zr();t1();me1();uQ();SPJ();s5();M1();C08();CJ();NP();JW();qL();i3();m_0();mM();ih();gJ();Db0();g8();SM();vg1();pJ0();dB();HL();az();D08();Vi();EX();MI();mr();Z6();Z1();E5();FB0();vA1();N1();kPJ();uPJ();mPJ();pPJ();MT();yQ0();F_0();Dw0();Q2();h4();oq();SN0();V4();EM();kL0();tJ("main_tsx_entry");B48();R48();tJ("main_tsx_imports_loaded");if(UCQ())process.exit(1)});N50();vJ8();process.env.COREPACK_ENABLE_AUTO_PIN="0";if(process.env.GLOCK_REMOTE==="true"){let J=process.env.NODE_OPTIONS||"";process.env.NODE_OPTIONS=J?`${J} --max-old-space-size=8192`:"--max-old-space-size=8192"}async function DCQ(){let J=process.argv.slice(2);if(J.length===1&&(J[0]==="--version"||J[0]==="-v"||J[0]==="-V")){console.log("0.1.17 (Glock)");return}let{profileCheckpoint:Q}=await Promise.resolve().then(() => (zf(),q48));Q("cli_entry");let{startCapturingEarlyInput:X}=await Promise.resolve().then(() => (dq0(),K48));X(),Q("cli_before_main_import");let{main:Z}=await Promise.resolve().then(() => (a08(),LTJ));Q("cli_after_main_import"),await Z(),Q("cli_after_main_complete")}DCQ();
|