@glock-org/cli 0.1.0 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/cli.js +6 -6
  2. package/package.json +1 -1
package/cli.js CHANGED
@@ -190,7 +190,7 @@ You can manually restore it by running: cp "${U}" "${J}"
190
190
  - Use ${wJ} tool for open-ended searches requiring multiple rounds
191
191
  - Pattern syntax: Uses ripgrep (not grep) - literal braces need escaping (use \`interface\\{\\}\` to find \`interface{}\` in Go code)
192
192
  - Multiline matching: By default patterns match within single lines only. For cross-line patterns like \`struct \\{[\\s\\S]*?field\`, use \`multiline: true\`
193
- `}var FQ="Grep";var Jz=j(()=>{lZ()});var iJ="Edit",Ov0="/.glock/**",_v0="~/.glock/**",Lv0="File has been unexpectedly modified. Read it again before attempting to write it.";var gP8={};d1(gP8,{validateToken:()=>ZM9,saveAuthToken:()=>Kl,revokeToken:()=>o_1,requestDeviceCode:()=>hP8,pollDeviceAuth:()=>uP8,loadAuthToken:()=>VM,deviceFlowLogin:()=>EH0,clearAuthToken:()=>s_1});import{join as a_1}from"path";async function xP8(J,Q){let X=await fetch(`${SP8}/api/trpc/${J}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({json:Q})});if(!X.ok){let Y=await X.text().catch(()=>X.statusText);throw Error(`${J} failed: ${Y}`)}let Z=await X.json();return Z.result?.data?.json??Z.result?.data}async function kP8(J,Q){let X=encodeURIComponent(JSON.stringify({json:Q})),Z=await fetch(`${SP8}/api/trpc/${J}?input=${X}`);if(!Z.ok){let q=await Z.text().catch(()=>Z.statusText);throw Error(`${J} failed: ${q}`)}let Y=await Z.json();return Y.result?.data?.json??Y.result?.data}async function hP8(){let J=await xP8("auth.requestDeviceCode",{clientId:"glock-cli"});return{deviceCode:J.deviceCode,userCode:J.userCode,verificationUri:J.verificationUri,verificationUriComplete:J.verificationUriComplete,expiresIn:Math.min(Math.max(J.expiresIn??900,60),3600),interval:Math.min(Math.max(J.interval??5,1),30)}}async function uP8(J){try{let Q=await kP8("auth.pollDeviceAuth",{deviceCode:J});switch(Q.status){case"pending":return{status:"pending"};case"authorized":return{status:"authorized",result:{accessToken:Q.accessToken,userId:Q.user?.id??"",email:Q.user?.email??""}};case"expired":return{status:"expired"};case"invalid":return{status:"error",message:Q.error??"Invalid device code"};default:return{status:"error",message:Q.error??"Unknown status"}}}catch(Q){return{status:"error",message:Q instanceof Error?Q.message:"Unknown error"}}}async function EH0(J,Q){let X=await hP8();J(X.userCode,X.verificationUri),Q(X.verificationUriComplete);let Z=Date.now()+X.expiresIn*1000;while(Date.now()<Z){await YM9(X.interval*1000);let Y=await uP8(X.deviceCode);switch(Y.status){case"authorized":return Y.result;case"expired":throw Error("Device code expired. Please try again.");case"error":throw Error(`Authentication error: ${Y.message}`);case"pending":continue}}throw Error("Authentication timed out. Please try again.")}async function o_1(J){try{await xP8("auth.revoke",{token:J})}catch{}}async function ZM9(J){return kP8("auth.validate",{token:J})}function Kl(J,Q){let X=E1("fs"),Z=a_1(J,"auth_token");X.mkdirSync(J,{recursive:!0}),X.writeFileSync(Z,Q,{mode:384})}function VM(J){let Q=E1("fs"),X=a_1(J,"auth_token");try{return Q.readFileSync(X,"utf-8").trim()}catch{return null}}function s_1(J){let Q=E1("fs"),X=a_1(J,"auth_token");try{Q.unlinkSync(X)}catch{}}function YM9(J){return new Promise((Q)=>setTimeout(Q,J))}var SP8;var hx=j(()=>{SP8=process.env.GLOCK_API_URL??"https://getglock.dev"});function dj(J){let Q=[],X=!1;async function Z(){if(X)return;if(Q.length===0)return;X=!0;while(Q.length>0){let{args:Y,resolve:q,reject:K,context:G}=Q.shift();try{let z=await J.apply(G,Y);q(z)}catch(z){K(z)}}if(X=!1,Q.length>0)Z()}return function(...Y){return new Promise((q,K)=>{Q.push({args:Y,resolve:q,reject:K,context:this}),Z()})}}var cP8=Z0((HO)=>{var qM9=HO&&HO.__createBinding||(Object.create?function(J,Q,X,Z){if(Z===void 0)Z=X;var Y=Object.getOwnPropertyDescriptor(Q,X);if(!Y||("get"in Y?!Q.__esModule:Y.writable||Y.configurable))Y={enumerable:!0,get:function(){return Q[X]}};Object.defineProperty(J,Z,Y)}:function(J,Q,X,Z){if(Z===void 0)Z=X;J[Z]=Q[X]}),KM9=HO&&HO.__setModuleDefault||(Object.create?function(J,Q){Object.defineProperty(J,"default",{enumerable:!0,value:Q})}:function(J,Q){J.default=Q}),mP8=HO&&HO.__importStar||function(J){if(J&&J.__esModule)return J;var Q={};if(J!=null){for(var X in J)if(X!=="default"&&Object.prototype.hasOwnProperty.call(J,X))qM9(Q,J,X)}return KM9(Q,J),Q};Object.defineProperty(HO,"__esModule",{value:!0});HO.req=HO.json=HO.toBuffer=void 0;var GM9=mP8(E1("http")),zM9=mP8(E1("https"));async function pP8(J){let Q=0,X=[];for await(let Z of J)Q+=Z.length,X.push(Z);return Buffer.concat(X,Q)}HO.toBuffer=pP8;async function WM9(J){let X=(await pP8(J)).toString("utf8");try{return JSON.parse(X)}catch(Z){let Y=Z;throw Y.message+=` (input: ${X})`,Y}}HO.json=WM9;function HM9(J,Q={}){let Z=((typeof J==="string"?J:J.href).startsWith("https:")?zM9:GM9).request(J,Q),Y=new Promise((q,K)=>{Z.once("response",q).once("error",K).end()});return Z.then=Y.then.bind(Y),Z}HO.req=HM9});var rP8=Z0((ML)=>{var lP8=ML&&ML.__createBinding||(Object.create?function(J,Q,X,Z){if(Z===void 0)Z=X;var Y=Object.getOwnPropertyDescriptor(Q,X);if(!Y||("get"in Y?!Q.__esModule:Y.writable||Y.configurable))Y={enumerable:!0,get:function(){return Q[X]}};Object.defineProperty(J,Z,Y)}:function(J,Q,X,Z){if(Z===void 0)Z=X;J[Z]=Q[X]}),BM9=ML&&ML.__setModuleDefault||(Object.create?function(J,Q){Object.defineProperty(J,"default",{enumerable:!0,value:Q})}:function(J,Q){J.default=Q}),iP8=ML&&ML.__importStar||function(J){if(J&&J.__esModule)return J;var Q={};if(J!=null){for(var X in J)if(X!=="default"&&Object.prototype.hasOwnProperty.call(J,X))lP8(Q,J,X)}return BM9(Q,J),Q},UM9=ML&&ML.__exportStar||function(J,Q){for(var X in J)if(X!=="default"&&!Object.prototype.hasOwnProperty.call(Q,X))lP8(Q,J,X)};Object.defineProperty(ML,"__esModule",{value:!0});ML.Agent=void 0;var FM9=iP8(E1("net")),dP8=iP8(E1("http")),OM9=E1("https");UM9(cP8(),ML);var lj=Symbol("AgentBaseInternalState");class nP8 extends dP8.Agent{constructor(J){super(J);this[lj]={}}isSecureEndpoint(J){if(J){if(typeof J.secureEndpoint==="boolean")return J.secureEndpoint;if(typeof J.protocol==="string")return J.protocol==="https:"}let{stack:Q}=Error();if(typeof Q!=="string")return!1;return Q.split(`
193
+ `}var FQ="Grep";var Jz=j(()=>{lZ()});var iJ="Edit",Ov0="/.glock/**",_v0="~/.glock/**",Lv0="File has been unexpectedly modified. Read it again before attempting to write it.";var gP8={};d1(gP8,{validateToken:()=>ZM9,saveAuthToken:()=>Kl,revokeToken:()=>o_1,requestDeviceCode:()=>hP8,pollDeviceAuth:()=>uP8,loadAuthToken:()=>VM,deviceFlowLogin:()=>EH0,clearAuthToken:()=>s_1});import{join as a_1}from"path";async function xP8(J,Q){let X=await fetch(`${SP8}/api/trpc/${J}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({json:Q})});if(!X.ok){let Y=await X.text().catch(()=>X.statusText);throw Error(`${J} failed: ${Y}`)}let Z=await X.json();return Z.result?.data?.json??Z.result?.data}async function kP8(J,Q){let X=encodeURIComponent(JSON.stringify(Q)),Z=await fetch(`${SP8}/api/trpc/${J}?input=${X}`);if(!Z.ok){let q=await Z.text().catch(()=>Z.statusText);throw Error(`${J} failed: ${q}`)}let Y=await Z.json();return Y.result?.data?.json??Y.result?.data}async function hP8(){let J=await xP8("auth.requestDeviceCode",{clientId:"glock-cli"});return{deviceCode:J.deviceCode,userCode:J.userCode,verificationUri:J.verificationUri,verificationUriComplete:J.verificationUriComplete,expiresIn:Math.min(Math.max(J.expiresIn??900,60),3600),interval:Math.min(Math.max(J.interval??5,1),30)}}async function uP8(J){try{let Q=await kP8("auth.pollDeviceAuth",{deviceCode:J});switch(Q.status){case"pending":return{status:"pending"};case"authorized":return{status:"authorized",result:{accessToken:Q.accessToken,userId:Q.user?.id??"",email:Q.user?.email??""}};case"expired":return{status:"expired"};case"invalid":return{status:"error",message:Q.error??"Invalid device code"};default:return{status:"error",message:Q.error??"Unknown status"}}}catch(Q){return{status:"error",message:Q instanceof Error?Q.message:"Unknown error"}}}async function EH0(J,Q){let X=await hP8();J(X.userCode,X.verificationUri),Q(X.verificationUriComplete);let Z=Date.now()+X.expiresIn*1000;while(Date.now()<Z){await YM9(X.interval*1000);let Y=await uP8(X.deviceCode);switch(Y.status){case"authorized":return Y.result;case"expired":throw Error("Device code expired. Please try again.");case"error":throw Error(`Authentication error: ${Y.message}`);case"pending":continue}}throw Error("Authentication timed out. Please try again.")}async function o_1(J){try{await xP8("auth.revoke",{token:J})}catch{}}async function ZM9(J){return kP8("auth.validate",{token:J})}function Kl(J,Q){let X=E1("fs"),Z=a_1(J,"auth_token");X.mkdirSync(J,{recursive:!0}),X.writeFileSync(Z,Q,{mode:384})}function VM(J){let Q=E1("fs"),X=a_1(J,"auth_token");try{return Q.readFileSync(X,"utf-8").trim()}catch{return null}}function s_1(J){let Q=E1("fs"),X=a_1(J,"auth_token");try{Q.unlinkSync(X)}catch{}}function YM9(J){return new Promise((Q)=>setTimeout(Q,J))}var SP8;var hx=j(()=>{SP8=process.env.GLOCK_API_URL??"https://getglock.dev"});function dj(J){let Q=[],X=!1;async function Z(){if(X)return;if(Q.length===0)return;X=!0;while(Q.length>0){let{args:Y,resolve:q,reject:K,context:G}=Q.shift();try{let z=await J.apply(G,Y);q(z)}catch(z){K(z)}}if(X=!1,Q.length>0)Z()}return function(...Y){return new Promise((q,K)=>{Q.push({args:Y,resolve:q,reject:K,context:this}),Z()})}}var cP8=Z0((HO)=>{var qM9=HO&&HO.__createBinding||(Object.create?function(J,Q,X,Z){if(Z===void 0)Z=X;var Y=Object.getOwnPropertyDescriptor(Q,X);if(!Y||("get"in Y?!Q.__esModule:Y.writable||Y.configurable))Y={enumerable:!0,get:function(){return Q[X]}};Object.defineProperty(J,Z,Y)}:function(J,Q,X,Z){if(Z===void 0)Z=X;J[Z]=Q[X]}),KM9=HO&&HO.__setModuleDefault||(Object.create?function(J,Q){Object.defineProperty(J,"default",{enumerable:!0,value:Q})}:function(J,Q){J.default=Q}),mP8=HO&&HO.__importStar||function(J){if(J&&J.__esModule)return J;var Q={};if(J!=null){for(var X in J)if(X!=="default"&&Object.prototype.hasOwnProperty.call(J,X))qM9(Q,J,X)}return KM9(Q,J),Q};Object.defineProperty(HO,"__esModule",{value:!0});HO.req=HO.json=HO.toBuffer=void 0;var GM9=mP8(E1("http")),zM9=mP8(E1("https"));async function pP8(J){let Q=0,X=[];for await(let Z of J)Q+=Z.length,X.push(Z);return Buffer.concat(X,Q)}HO.toBuffer=pP8;async function WM9(J){let X=(await pP8(J)).toString("utf8");try{return JSON.parse(X)}catch(Z){let Y=Z;throw Y.message+=` (input: ${X})`,Y}}HO.json=WM9;function HM9(J,Q={}){let Z=((typeof J==="string"?J:J.href).startsWith("https:")?zM9:GM9).request(J,Q),Y=new Promise((q,K)=>{Z.once("response",q).once("error",K).end()});return Z.then=Y.then.bind(Y),Z}HO.req=HM9});var rP8=Z0((ML)=>{var lP8=ML&&ML.__createBinding||(Object.create?function(J,Q,X,Z){if(Z===void 0)Z=X;var Y=Object.getOwnPropertyDescriptor(Q,X);if(!Y||("get"in Y?!Q.__esModule:Y.writable||Y.configurable))Y={enumerable:!0,get:function(){return Q[X]}};Object.defineProperty(J,Z,Y)}:function(J,Q,X,Z){if(Z===void 0)Z=X;J[Z]=Q[X]}),BM9=ML&&ML.__setModuleDefault||(Object.create?function(J,Q){Object.defineProperty(J,"default",{enumerable:!0,value:Q})}:function(J,Q){J.default=Q}),iP8=ML&&ML.__importStar||function(J){if(J&&J.__esModule)return J;var Q={};if(J!=null){for(var X in J)if(X!=="default"&&Object.prototype.hasOwnProperty.call(J,X))lP8(Q,J,X)}return BM9(Q,J),Q},UM9=ML&&ML.__exportStar||function(J,Q){for(var X in J)if(X!=="default"&&!Object.prototype.hasOwnProperty.call(Q,X))lP8(Q,J,X)};Object.defineProperty(ML,"__esModule",{value:!0});ML.Agent=void 0;var FM9=iP8(E1("net")),dP8=iP8(E1("http")),OM9=E1("https");UM9(cP8(),ML);var lj=Symbol("AgentBaseInternalState");class nP8 extends dP8.Agent{constructor(J){super(J);this[lj]={}}isSecureEndpoint(J){if(J){if(typeof J.secureEndpoint==="boolean")return J.secureEndpoint;if(typeof J.protocol==="string")return J.protocol==="https:"}let{stack:Q}=Error();if(typeof Q!=="string")return!1;return Q.split(`
194
194
  `).some((X)=>X.indexOf("(https.js:")!==-1||X.indexOf("node:https:")!==-1)}incrementSockets(J){if(this.maxSockets===1/0&&this.maxTotalSockets===1/0)return null;if(!this.sockets[J])this.sockets[J]=[];let Q=new FM9.Socket({writable:!1});return this.sockets[J].push(Q),this.totalSocketCount++,Q}decrementSockets(J,Q){if(!this.sockets[J]||Q===null)return;let X=this.sockets[J],Z=X.indexOf(Q);if(Z!==-1){if(X.splice(Z,1),this.totalSocketCount--,X.length===0)delete this.sockets[J]}}getName(J){if(this.isSecureEndpoint(J))return OM9.Agent.prototype.getName.call(this,J);return super.getName(J)}createSocket(J,Q,X){let Z={...Q,secureEndpoint:this.isSecureEndpoint(Q)},Y=this.getName(Z),q=this.incrementSockets(Y);Promise.resolve().then(()=>this.connect(J,Z)).then((K)=>{if(this.decrementSockets(Y,q),K instanceof dP8.Agent)try{return K.addRequest(J,Z)}catch(G){return X(G)}this[lj].currentSocket=K,super.createSocket(J,Q,X)},(K)=>{this.decrementSockets(Y,q),X(K)})}createConnection(){let J=this[lj].currentSocket;if(this[lj].currentSocket=void 0,!J)throw Error("No socket was returned in the `connect()` function");return J}get defaultPort(){return this[lj].defaultPort??(this.protocol==="https:"?443:80)}set defaultPort(J){if(this[lj])this[lj].defaultPort=J}get protocol(){return this[lj].protocol??(this.isSecureEndpoint()?"https:":"http:")}set protocol(J){if(this[lj])this[lj].protocol=J}}ML.Agent=nP8});var aP8=Z0((o10)=>{var _M9=o10&&o10.__importDefault||function(J){return J&&J.__esModule?J:{default:J}};Object.defineProperty(o10,"__esModule",{value:!0});o10.parseProxyResponse=void 0;var LM9=_M9(KT0()),Nv0=(0,LM9.default)("https-proxy-agent:parse-proxy-response");function NM9(J){return new Promise((Q,X)=>{let Z=0,Y=[];function q(){let H=J.read();if(H)W(H);else J.once("readable",q)}function K(){J.removeListener("end",G),J.removeListener("error",z),J.removeListener("readable",q)}function G(){K(),Nv0("onend"),X(Error("Proxy connection ended before receiving CONNECT response"))}function z(H){K(),Nv0("onerror %o",H),X(H)}function W(H){Y.push(H),Z+=H.length;let B=Buffer.concat(Y,Z),U=B.indexOf(`\r
195
195
  \r
196
196
  `);if(U===-1){Nv0("have not received end of HTTP headers yet..."),q();return}let F=B.slice(0,U).toString("ascii").split(`\r
@@ -298,7 +298,7 @@ Token organization: ${q}
298
298
  Remove the environment variable or obtain a token for the correct organization.`};return{valid:!1,message:`Your authentication token belongs to organization ${q},
299
299
  but this machine requires organization ${J}.
300
300
 
301
- Please log in with the correct organization: glock auth login`}}var C97=300000,uL=null,UC=null,r60=0,f97=3600000,x97=180000,F60,h97=5000,u97=3600000,m97=180000,wE1,a60,nJ,XW6=0,GE1,q20=null,BW6;var MJ=j(()=>{hx();n7();C2();CJ();gQ();M1();QC();KY();w1();r2();Ly1();$y1();MU0();XP1();Vu0();FU();P8();Y1();S1();D1();P9();j1();qE();hk();$P1();ul();v8();i1();Tu0();F60=dW1(async()=>{let J=await S97(),Q=await k97();if(J||Q)await G46();return Q},f97);wE1=dW1(async()=>{return await g97()},u97);a60=l1(()=>{if(p7())return null;if(process.platform==="darwin"){let Q=x46();if(Q){if(Q.stdout)return{key:Q.stdout,source:"/login managed key"}}else{let X=TL();try{let Z=GM(`security find-generic-password -a $USER -w -s "${X}"`);if(Z)return{key:Z,source:"/login managed key"}}catch(Z){H0(Z)}}}let J=B1();if(!J.primaryApiKey)return null;return{key:J.primaryApiKey,source:"/login managed key"}});nJ=l1(()=>{if(p7())return null;if(process.env.GLOCK_OAUTH_TOKEN)return{accessToken:process.env.GLOCK_OAUTH_TOKEN,refreshToken:null,expiresAt:null,scopes:["user:inference"]};let J=ch0();if(J)return{accessToken:J,refreshToken:null,expiresAt:null,scopes:["user:inference"]};try{let Z=$Q().read()?.glockAiOauth;if(!Z?.accessToken)return null;return Z}catch(Q){return H0(Q),null}});GE1=new Map;BW6=class BW6 extends Error{}});function j9(){return!r0(process.env.GLOCK_DISABLE_FAST_MODE)}function DG(){if(!j9())return!1;return t60()===null}function i97(J,Q){switch(J){case"free":return Q==="oauth"?"Fast mode requires a paid subscription":"Fast mode unavailable during evaluation. Please purchase credits.";case"preference":return"Fast mode has been disabled by your organization";case"extra_usage_disabled":return"Fast mode requires extra usage billing \xB7 /extra-usage to enable";case"network_error":return"Fast mode unavailable due to network connectivity issues";case"unknown":return"Fast mode is currently unavailable"}}function t60(){if(!j9())return"Fast mode is not available";let J=W8("jarvis_api_error",null);if(J!==null)return y(`Fast mode unavailable: ${J}`),J;if(!K3()&&W8("jarvis_api_error",!1))return"Fast mode requires the native binary \xB7 Install from: https://getglock.dev/product/glock";if(h6()&&oG0()&&!rG0()){if(!A8("flagSettings")?.fastMode)return y("Fast mode unavailable: Fast mode is not available in the Agent SDK"),"Fast mode is not available in the Agent SDK"}if(N6()!=="firstParty")return y("Fast mode unavailable: Fast mode is not available on Bedrock, Vertex, or Foundry"),"Fast mode is not available on Bedrock, Vertex, or Foundry";if(NO.status==="disabled"){if(NO.reason==="network_error"||NO.reason==="unknown"){if(r0(process.env.GLOCK_SKIP_FAST_MODE_NETWORK_ERRORS))return null}let Q=nJ()!==null?"oauth":"api-key",X=i97(NO.reason,Q);return y(`Fast mode unavailable: ${X}`),X}return null}function F20(){return"opus"+(_3()?"[1m]":"")}function jE1(J){if(!j9())return!1;if(!DG())return!1;if(!mK(J))return!1;let Q=j6();if(Q.fastModePerSessionOptIn)return!1;return Q.fastMode===!0}function mK(J){if(!j9())return!1;let Q=J??O3();return Y7(Q).toLowerCase().includes("opus-4-6")}function IE1(){if(s60.status==="cooldown"&&Date.now()>=s60.resetAt){if(j9()&&!$E1)y("Fast mode cooldown expired, re-enabling fast mode"),$E1=!0,OW6.emit();s60={status:"active"}}return s60}function NW6(J,Q){if(!j9())return;s60={status:"cooldown",resetAt:J,reason:Q},$E1=!1;let X=J-Date.now();y(`Fast mode cooldown triggered (${Q}), duration ${Math.round(X/1000)}s`),d("jarvis_api_error",{cooldown_duration_ms:X,cooldown_reason:Q}),FW6.emit(J,Q)}function nl(){s60={status:"active"}}function VW6(){if(NO.status==="disabled")return;NO={status:"disabled",reason:"preference"},R6("userSettings",{fastMode:void 0}),o1((J)=>({...J,penguinModeOrgEnabled:!1})),yE1.emit(!1)}function n97(J){switch(J){case"out_of_credits":return"Fast mode disabled \xB7 extra usage credits exhausted";case"org_level_disabled":case"org_service_level_disabled":return"Fast mode disabled \xB7 extra usage disabled by your organization";case"org_level_disabled_until":return"Fast mode disabled \xB7 extra usage spending cap reached";case"member_level_disabled":return"Fast mode disabled \xB7 extra usage disabled for your account";case"seat_tier_level_disabled":case"seat_tier_zero_credit_limit":case"member_zero_credit_limit":return"Fast mode disabled \xB7 extra usage not available for your plan";case"overage_not_provisioned":case"no_limits_configured":return"Fast mode requires extra usage billing \xB7 /extra-usage to enable";default:return"Fast mode disabled \xB7 extra usage not available"}}function r97(J){return J==="org_level_disabled_until"||J==="out_of_credits"}function RW6(J){let Q=n97(J);if(y(`Fast mode overage rejection: ${J??"unknown"} \u2014 ${Q}`),d("jarvis_api_error",{overage_disabled_reason:J??"unknown"}),!r97(J))R6("userSettings",{fastMode:void 0}),o1((X)=>({...X,penguinModeOrgEnabled:!1}));wW6.emit(Q)}function BI(){return IE1().status==="cooldown"}function fM(J,Q){let X=j9()&&DG()&&!!Q&&mK(J);if(X&&BI())return"cooldown";if(X)return"on";return"off"}async function a97(J){let Q=`${x6().BASE_API_URL}/api/glock_penguin_mode`,X="accessToken"in J?{Authorization:`Bearer ${J.accessToken}`,"glock-beta":h2}:{"x-api-key":J.apiKey};return(await B8.get(Q,{headers:X})).data}function PE1(){if(!j9())return;if(NO.status!=="pending")return;let J=process.env.USER_TYPE==="ant",Q=B1().penguinModeOrgEnabled===!0;NO=J||Q?{status:"enabled"}:{status:"disabled",reason:"unknown"}}async function Bg0(){if(wG())return;if(!j9())return;if(U20)return y("Fast mode prefetch in progress, returning in-flight promise"),U20;let J=Ik();if(!(nJ()?.accessToken&&YI())&&!J){let q=process.env.USER_TYPE==="ant",K=B1().penguinModeOrgEnabled===!0;NO=q||K?{status:"enabled"}:{status:"disabled",reason:"preference"};return}let X=Date.now();if(X-UW6<o97){y("Skipping fast mode prefetch, fetched recently");return}UW6=X;let Z=async()=>{let q=nJ(),K=q?.accessToken&&YI()?{accessToken:q.accessToken}:J?{apiKey:J}:null;if(!K)throw Error("No auth available");return a97(K)};async function Y(){try{let q;try{q=await Z()}catch(G){if(B8.isAxiosError(G)&&(G.response?.status===401||G.response?.status===403&&typeof G.response?.data==="string"&&G.response.data.includes("OAuth token has been revoked"))){let W=nJ()?.accessToken;if(W)await bw(W),q=await Z();else throw G}else throw G}let K=NO.status!=="pending"?NO.status==="enabled":B1().penguinModeOrgEnabled;if(NO=q.enabled?{status:"enabled"}:{status:"disabled",reason:q.disabled_reason??"preference"},K!==q.enabled){if(!q.enabled)R6("userSettings",{fastMode:void 0});o1((G)=>({...G,penguinModeOrgEnabled:q.enabled})),yE1.emit(q.enabled)}y(`Org fast mode: ${q.enabled?"enabled":`disabled (${q.disabled_reason??"preference"})`}`)}catch(q){let K=process.env.USER_TYPE==="ant",G=B1().penguinModeOrgEnabled===!0;NO=K||G?{status:"enabled"}:{status:"disabled",reason:"network_error"},y(`Failed to fetch org fast mode status, defaulting to ${NO.status==="enabled"?"enabled (cached)":"disabled (network_error)"}: ${q}`,{level:"error"}),d("jarvis_api_error",{})}finally{U20=null}}return U20=Y(),U20}var vM="Opus 4.6",s60,$E1=!1,FW6,OW6,_W6,LW6,wW6,AW6,NO,yE1,MW6,o97=30000,UW6=0,U20=null;var _U=j(()=>{Z7();gQ();w1();M1();MJ();P8();Y1();S1();OJ();KY();v8();s60={status:"active"},FW6=QZ(),OW6=QZ(),_W6=FW6.subscribe,LW6=OW6.subscribe;wW6=QZ(),AW6=wW6.subscribe;NO={status:"pending"},yE1=QZ(),MW6=yE1.subscribe});function e60(J){if(j9()&&J)return s97;return Ug0}function e97(J,Q){return Q.input_tokens/1e6*J.inputTokens+Q.output_tokens/1e6*J.outputTokens+(Q.cache_read_input_tokens??0)/1e6*J.promptCacheReadTokens+(Q.cache_creation_input_tokens??0)/1e6*J.promptCacheWriteTokens+(Q.server_tool_use?.web_search_requests??0)*J.webSearchRequests}function J77(J,Q){let X=GY(J);if(X===t2(O60.firstParty)){let Y=Q.speed==="fast";return e60(Y)}let Z=Fg0[X];if(!Z)return Q77(J,X),Fg0[GY(O3())]??t97;return Z}function Q77(J,Q){d("jarvis_api_error",{model:J,shortName:Q}),aI0()}function rl(J,Q){let X=J77(J,Q);return e97(X,Q)}function $W6(J){if(Number.isInteger(J))return`$${J}`;return`$${J.toFixed(2)}`}function fw(J){return`${$W6(J.inputTokens)}/${$W6(J.outputTokens)} per Mtok`}var UI,DW6,Ug0,s97,bE1,EE1,t97,Fg0;var FC=j(()=>{M1();w1();_U();wU0();OJ();UI={inputTokens:3,outputTokens:15,promptCacheWriteTokens:3.75,promptCacheReadTokens:0.3,webSearchRequests:0.01},DW6={inputTokens:15,outputTokens:75,promptCacheWriteTokens:18.75,promptCacheReadTokens:1.5,webSearchRequests:0.01},Ug0={inputTokens:5,outputTokens:25,promptCacheWriteTokens:6.25,promptCacheReadTokens:0.5,webSearchRequests:0.01},s97={inputTokens:30,outputTokens:150,promptCacheWriteTokens:37.5,promptCacheReadTokens:3,webSearchRequests:0.01},bE1={inputTokens:0.8,outputTokens:4,promptCacheWriteTokens:1,promptCacheReadTokens:0.08,webSearchRequests:0.01},EE1={inputTokens:1,outputTokens:5,promptCacheWriteTokens:1.25,promptCacheReadTokens:0.1,webSearchRequests:0.01},t97=Ug0;Fg0={[t2(zy1.firstParty)]:bE1,[t2(Wy1.firstParty)]:EE1,[t2(Gy1.firstParty)]:UI,[t2(Ky1.firstParty)]:UI,[t2(Hy1.firstParty)]:UI,[t2(By1.firstParty)]:UI,[t2(_y1.firstParty)]:UI,[t2(Uy1.firstParty)]:DW6,[t2(Fy1.firstParty)]:DW6,[t2(Oy1.firstParty)]:Ug0,[t2(O60.firstParty)]:Ug0}});function OC(J){return al.includes(J)}function JJ0(J){return X77.includes(J)}var al,X77;var QJ0=j(()=>{al=["sonnet","opus","haiku","best","sonnet[1m]","opus[1m]","opusplan"];X77=["sonnet","opus","haiku"]});function Z77(J,Q){if(J.includes(Q))return!0;if(OC(J))return Y7(J).toLowerCase().includes(Q);return!1}function jW6(J,Q){if(!J.startsWith(Q))return!1;return J.length===Q.length||J[Q.length]==="-"}function Y77(J,Q){let X=OC(J)?Y7(J).toLowerCase():J;if(jW6(X,Q))return!0;if(!Q.startsWith("claude-")&&jW6(X,`claude-${Q}`))return!0;return!1}function IW6(J,Q){for(let X of Q){if(JJ0(X))continue;let Z=X.indexOf(J);if(Z===-1)continue;let Y=Z+J.length;if(Y===X.length||X[Y]==="-")return!0}return!1}function rk(J){let Q=B6()||{},{availableModels:X}=Q;if(!X)return!0;if(X.length===0)return!1;let Y=kh0(J).trim().toLowerCase(),q=X.map((K)=>K.trim().toLowerCase());if(q.includes(Y)){if(!JJ0(Y)||!IW6(Y,q))return!0}for(let K of q)if(JJ0(K)&&!IW6(K,q)&&Z77(Y,K))return!0;if(OC(Y)){let K=Y7(Y).toLowerCase();if(q.includes(K))return!0}for(let K of q)if(!JJ0(K)&&OC(K)){if(Y7(K).toLowerCase()===Y)return!0}for(let K of q)if(!JJ0(K)&&!OC(K)){if(Y77(Y,K))return!0}return!1}var O20=j(()=>{v8();QJ0();OJ();QC()});var PW6={};d1(PW6,{resolveSkillModelOverride:()=>N20,renderModelSetting:()=>_20,renderModelName:()=>FK,renderDefaultModelSetting:()=>sl,parseUserSpecifiedModel:()=>Y7,normalizeModelStringForAPI:()=>EH,modelDisplayString:()=>VO,isOpus1mMergeEnabled:()=>_3,isNonCustomOpusModel:()=>ol,getUserSpecifiedModelSetting:()=>Sw,getSmallFastModel:()=>$G,getRuntimeMainLoopModel:()=>SM,getPublicModelName:()=>CE1,getPublicModelDisplayName:()=>L20,getOpus46PricingSuffix:()=>_C,getMarketingNameForModel:()=>YJ0,getMainLoopModel:()=>QQ,getGlockAiUserDefaultModelDescription:()=>ZJ0,getDefaultSonnetModel:()=>e2,getDefaultOpusModel:()=>gL,getDefaultMainLoopModelSetting:()=>O3,getDefaultMainLoopModel:()=>LU,getDefaultHaikuModel:()=>XJ0,getCanonicalName:()=>GY,getBestModel:()=>yW6,firstPartyNameToCanonical:()=>t2});function $G(){return process.env.ANTHROPIC_SMALL_FAST_MODEL||XJ0()}function ol(J){return J===DQ().opus40||J===DQ().opus41||J===DQ().opus45||J===DQ().opus46}function Sw(){let J,Q=fb();if(Q!==void 0)J=Q;else{let X=B6()||{};J=process.env.ANTHROPIC_MODEL||X.model||void 0}if(J&&!rk(J))return;return J}function QQ(){let J=Sw();if(J!==void 0&&J!==null)return Y7(J);return LU()}function yW6(){return gL()}function gL(){if(process.env.ANTHROPIC_DEFAULT_OPUS_MODEL)return process.env.ANTHROPIC_DEFAULT_OPUS_MODEL;if(N6()!=="firstParty")return DQ().opus46;return DQ().opus46}function e2(){if(process.env.ANTHROPIC_DEFAULT_SONNET_MODEL)return process.env.ANTHROPIC_DEFAULT_SONNET_MODEL;if(N6()!=="firstParty")return DQ().sonnet45;return DQ().sonnet46}function XJ0(){if(process.env.ANTHROPIC_DEFAULT_HAIKU_MODEL)return process.env.ANTHROPIC_DEFAULT_HAIKU_MODEL;return DQ().haiku45}function SM(J){let{permissionMode:Q,mainLoopModel:X,exceeds200kTokens:Z=!1}=J;if(Sw()==="opusplan"&&Q==="plan"&&!Z)return gL();if(Sw()==="haiku"&&Q==="plan")return e2();return X}function O3(){if(process.env.USER_TYPE==="ant")return getAntModelOverrideConfig()?.defaultModel??gL()+"[1m]";if(s6())return gL()+(_3()?"[1m]":"");return e2()}function LU(){return Y7(O3())}function t2(J){if(J=J.toLowerCase(),J.includes("claude-opus-4-6"))return"claude-opus-4-6";if(J.includes("claude-opus-4-5"))return"claude-opus-4-5";if(J.includes("claude-opus-4-1"))return"claude-opus-4-1";if(J.includes("claude-opus-4"))return"claude-opus-4";if(J.includes("claude-sonnet-4-6"))return"claude-sonnet-4-6";if(J.includes("claude-sonnet-4-5"))return"claude-sonnet-4-5";if(J.includes("claude-sonnet-4"))return"claude-sonnet-4";if(J.includes("claude-haiku-4-5"))return"claude-haiku-4-5";if(J.includes("claude-3-7-sonnet"))return"claude-3-7-sonnet";if(J.includes("claude-3-5-sonnet"))return"claude-3-5-sonnet";if(J.includes("claude-3-5-haiku"))return"claude-3-5-haiku";if(J.includes("claude-3-opus"))return"claude-3-opus";if(J.includes("claude-3-sonnet"))return"claude-3-sonnet";if(J.includes("claude-3-haiku"))return"claude-3-haiku";let Q=J.match(/(claude-(\d+-\d+-)?\w+)/);if(Q&&Q[1])return Q[1];return J}function GY(J){return t2(kh0(J))}function ZJ0(J=!1){if(_3())return`Opus 4.6 with 1M context \xB7 Most capable for complex work${J?_C(!0):""}`;return`Opus 4.6 \xB7 Most capable for complex work${J?_C(!0):""}`}function sl(J){if(J==="opusplan")return"Opus 4.6 in plan mode, else Sonnet 4.6";return FK(Y7(J))}function _C(J){if(N6()!=="firstParty")return"";let Q=fw(e60(J));return` \xB7${J?` (${yx})`:""} ${Q}`}function _3(){if(xk()||N6()!=="firstParty")return!1;return!0}function _20(J){if(J==="opusplan")return"Opus Plan";if(OC(J))return m2(J);return FK(J)}function L20(J){switch(J){case DQ().opus46:return"Opus 4.6";case DQ().opus46+"[1m]":return"Opus 4.6 (1M context)";case DQ().opus45:return"Opus 4.5";case DQ().opus41:return"Opus 4.1";case DQ().opus40:return"Opus 4";case DQ().sonnet46+"[1m]":return"Sonnet 4.6 (1M context)";case DQ().sonnet46:return"Sonnet 4.6";case DQ().sonnet45+"[1m]":return"Sonnet 4.5 (1M context)";case DQ().sonnet45:return"Sonnet 4.5";case DQ().sonnet40:return"Sonnet 4";case DQ().sonnet40+"[1m]":return"Sonnet 4 (1M context)";case DQ().sonnet37:return"Sonnet 3.7";case DQ().sonnet35:return"Sonnet 3.5";case DQ().haiku45:return"Haiku 4.5";case DQ().haiku35:return"Haiku 3.5";default:return null}}function q77(J){let[Q="",...X]=J.split("-");return[Q.slice(0,3)+"*".repeat(Math.max(0,Q.length-3)),...X].join("-")}function FK(J){let Q=L20(J);if(Q)return Q;if(process.env.USER_TYPE==="ant"){let X=Y7(J),Z=resolveAntModel(J);if(Z){let Y=Z.model.replace(/\[1m\]$/i,""),q=q77(Y),K=LO(X)?"[1m]":"";return q+K}if(X!==J)return`${J} (${X})`;return X}return J}function CE1(J){let Q=L20(J);if(Q)return`Glock ${Q}`;return`Glock (${J})`}function Y7(J){let Q=J.trim(),X=Q.toLowerCase(),Z=LO(X),Y=Z?X.replace(/\[1m]$/i,"").trim():X;if(OC(Y))switch(Y){case"opusplan":return e2()+(Z?"[1m]":"");case"sonnet":return e2()+(Z?"[1m]":"");case"haiku":return XJ0()+(Z?"[1m]":"");case"opus":return gL()+(Z?"[1m]":"");case"best":return yW6();default:}if(process.env.USER_TYPE==="ant"){let q=LO(X),K=X.replace(/\[1m]$/i,"").trim(),G=resolveAntModel(K);if(G){let z=q?"[1m]":"";return G.model+z}}if(Z)return Q.replace(/\[1m\]$/i,"").trim()+"[1m]";return Q}function N20(J,Q){if(LO(J)||!LO(Q))return J;if(NP1(Y7(J)))return J+"[1m]";return J}function VO(J){if(J===null){if(process.env.USER_TYPE==="ant")return`Default for Ants (${sl(O3())})`;else if(s6())return`Default (${ZJ0()})`;return`Default (${LU()})`}let Q=Y7(J);return J===Q?Q:`${J} (${Q})`}function YJ0(J){if(N6()==="foundry")return;let Q=J.toLowerCase().includes("[1m]"),X=GY(J);if(X.includes("claude-opus-4-6"))return Q?"Opus 4.6 (with 1M context)":"Opus 4.6";if(X.includes("claude-opus-4-5"))return"Opus 4.5";if(X.includes("claude-opus-4-1"))return"Opus 4.1";if(X.includes("claude-opus-4"))return"Opus 4";if(X.includes("claude-sonnet-4-6"))return Q?"Sonnet 4.6 (with 1M context)":"Sonnet 4.6";if(X.includes("claude-sonnet-4-5"))return Q?"Sonnet 4.5 (with 1M context)":"Sonnet 4.5";if(X.includes("claude-sonnet-4"))return Q?"Sonnet 4 (with 1M context)":"Sonnet 4";if(X.includes("claude-3-7-sonnet"))return"Claude 3.7 Sonnet";if(X.includes("claude-3-5-sonnet"))return"Claude 3.5 Sonnet";if(X.includes("claude-haiku-4-5"))return"Haiku 4.5";if(X.includes("claude-3-5-haiku"))return"Claude 3.5 Haiku";return}function EH(J){return J.replace(/\[(1|2)m\]/gi,"")}var OJ=j(()=>{w1();MJ();yH();QC();FC();v8();KY();dX();O20();QJ0()});function TE1(J){let Q=J.trim();if(!Q)return null;if(Q.endsWith("-")){let q=parseInt(Q.slice(0,-1),10);if(isNaN(q)||q<1)return null;return{firstPage:q,lastPage:1/0}}let X=Q.indexOf("-");if(X===-1){let q=parseInt(Q,10);if(isNaN(q)||q<1)return null;return{firstPage:q,lastPage:q}}let Z=parseInt(Q.slice(0,X),10),Y=parseInt(Q.slice(X+1),10);if(isNaN(Z)||isNaN(Y)||Z<1||Y<1||Y<Z)return null;return{firstPage:Z,lastPage:Y}}function V20(){return!QQ().toLowerCase().includes("claude-3-haiku")}function qJ0(J){let Q=J.startsWith(".")?J.slice(1):J;return K77.has(Q.toLowerCase())}var K77;var Og0=j(()=>{OJ();K77=new Set(["pdf"])});function vW6(J,Q,X){return`Reads a file from the local filesystem. You can access any file directly by using this tool.
301
+ Please log in with the correct organization: glock auth login`}}var C97=300000,uL=null,UC=null,r60=0,f97=3600000,x97=180000,F60,h97=5000,u97=3600000,m97=180000,wE1,a60,nJ,XW6=0,GE1,q20=null,BW6;var MJ=j(()=>{hx();n7();C2();CJ();gQ();M1();QC();KY();w1();r2();Ly1();$y1();MU0();XP1();Vu0();FU();P8();Y1();S1();D1();P9();j1();qE();hk();$P1();ul();v8();i1();Tu0();F60=dW1(async()=>{let J=await S97(),Q=await k97();if(J||Q)await G46();return Q},f97);wE1=dW1(async()=>{return await g97()},u97);a60=l1(()=>{if(p7())return null;if(process.platform==="darwin"){let Q=x46();if(Q){if(Q.stdout)return{key:Q.stdout,source:"/login managed key"}}else{let X=TL();try{let Z=GM(`security find-generic-password -a $USER -w -s "${X}"`);if(Z)return{key:Z,source:"/login managed key"}}catch(Z){H0(Z)}}}let J=B1();if(!J.primaryApiKey)return null;return{key:J.primaryApiKey,source:"/login managed key"}});nJ=l1(()=>{if(p7())return null;if(process.env.GLOCK_OAUTH_TOKEN)return{accessToken:process.env.GLOCK_OAUTH_TOKEN,refreshToken:null,expiresAt:null,scopes:["user:inference"]};let J=ch0();if(J)return{accessToken:J,refreshToken:null,expiresAt:null,scopes:["user:inference"]};try{let Z=$Q().read()?.glockAiOauth;if(!Z?.accessToken)return null;return Z}catch(Q){return H0(Q),null}});GE1=new Map;BW6=class BW6 extends Error{}});function j9(){return!r0(process.env.GLOCK_DISABLE_FAST_MODE)}function DG(){if(!j9())return!1;return t60()===null}function i97(J,Q){switch(J){case"free":return Q==="oauth"?"Fast mode requires a paid subscription":"Fast mode unavailable during evaluation. Please purchase credits.";case"preference":return"Fast mode has been disabled by your organization";case"extra_usage_disabled":return"Fast mode requires extra usage billing \xB7 /extra-usage to enable";case"network_error":return"Fast mode unavailable due to network connectivity issues";case"unknown":return"Fast mode is currently unavailable"}}function t60(){if(!j9())return"Fast mode is not available";let J=W8("jarvis_api_error",null);if(J!==null)return y(`Fast mode unavailable: ${J}`),J;if(!K3()&&W8("jarvis_api_error",!1))return"Fast mode requires the native binary \xB7 Install from: https://getglock.dev/product/glock";if(h6()&&oG0()&&!rG0()){if(!A8("flagSettings")?.fastMode)return y("Fast mode unavailable: Fast mode is not available in the Agent SDK"),"Fast mode is not available in the Agent SDK"}if(N6()!=="firstParty")return y("Fast mode unavailable: Fast mode is not available on Bedrock, Vertex, or Foundry"),"Fast mode is not available on Bedrock, Vertex, or Foundry";if(NO.status==="disabled"){if(NO.reason==="network_error"||NO.reason==="unknown"){if(r0(process.env.GLOCK_SKIP_FAST_MODE_NETWORK_ERRORS))return null}let Q=nJ()!==null?"oauth":"api-key",X=i97(NO.reason,Q);return y(`Fast mode unavailable: ${X}`),X}return null}function F20(){return"opus"+(_3()?"[1m]":"")}function jE1(J){if(!j9())return!1;if(!DG())return!1;if(!mK(J))return!1;let Q=j6();if(Q.fastModePerSessionOptIn)return!1;return Q.fastMode===!0}function mK(J){if(!j9())return!1;let Q=J??O3();return Y7(Q).toLowerCase().includes("opus-4-6")}function IE1(){if(s60.status==="cooldown"&&Date.now()>=s60.resetAt){if(j9()&&!$E1)y("Fast mode cooldown expired, re-enabling fast mode"),$E1=!0,OW6.emit();s60={status:"active"}}return s60}function NW6(J,Q){if(!j9())return;s60={status:"cooldown",resetAt:J,reason:Q},$E1=!1;let X=J-Date.now();y(`Fast mode cooldown triggered (${Q}), duration ${Math.round(X/1000)}s`),d("jarvis_api_error",{cooldown_duration_ms:X,cooldown_reason:Q}),FW6.emit(J,Q)}function nl(){s60={status:"active"}}function VW6(){if(NO.status==="disabled")return;NO={status:"disabled",reason:"preference"},R6("userSettings",{fastMode:void 0}),o1((J)=>({...J,penguinModeOrgEnabled:!1})),yE1.emit(!1)}function n97(J){switch(J){case"out_of_credits":return"Fast mode disabled \xB7 extra usage credits exhausted";case"org_level_disabled":case"org_service_level_disabled":return"Fast mode disabled \xB7 extra usage disabled by your organization";case"org_level_disabled_until":return"Fast mode disabled \xB7 extra usage spending cap reached";case"member_level_disabled":return"Fast mode disabled \xB7 extra usage disabled for your account";case"seat_tier_level_disabled":case"seat_tier_zero_credit_limit":case"member_zero_credit_limit":return"Fast mode disabled \xB7 extra usage not available for your plan";case"overage_not_provisioned":case"no_limits_configured":return"Fast mode requires extra usage billing \xB7 /extra-usage to enable";default:return"Fast mode disabled \xB7 extra usage not available"}}function r97(J){return J==="org_level_disabled_until"||J==="out_of_credits"}function RW6(J){let Q=n97(J);if(y(`Fast mode overage rejection: ${J??"unknown"} \u2014 ${Q}`),d("jarvis_api_error",{overage_disabled_reason:J??"unknown"}),!r97(J))R6("userSettings",{fastMode:void 0}),o1((X)=>({...X,penguinModeOrgEnabled:!1}));wW6.emit(Q)}function BI(){return IE1().status==="cooldown"}function fM(J,Q){let X=j9()&&DG()&&!!Q&&mK(J);if(X&&BI())return"cooldown";if(X)return"on";return"off"}async function a97(J){let Q=`${x6().BASE_API_URL}/api/glock_penguin_mode`,X="accessToken"in J?{Authorization:`Bearer ${J.accessToken}`,"glock-beta":h2}:{"x-api-key":J.apiKey};return(await B8.get(Q,{headers:X})).data}function PE1(){if(!j9())return;if(NO.status!=="pending")return;let J=process.env.USER_TYPE==="ant",Q=B1().penguinModeOrgEnabled===!0;NO=J||Q?{status:"enabled"}:{status:"disabled",reason:"unknown"}}async function Bg0(){if(wG())return;if(!j9())return;if(U20)return y("Fast mode prefetch in progress, returning in-flight promise"),U20;let J=Ik();if(!(nJ()?.accessToken&&YI())&&!J){let q=process.env.USER_TYPE==="ant",K=B1().penguinModeOrgEnabled===!0;NO=q||K?{status:"enabled"}:{status:"disabled",reason:"preference"};return}let X=Date.now();if(X-UW6<o97){y("Skipping fast mode prefetch, fetched recently");return}UW6=X;let Z=async()=>{let q=nJ(),K=q?.accessToken&&YI()?{accessToken:q.accessToken}:J?{apiKey:J}:null;if(!K)throw Error("No auth available");return a97(K)};async function Y(){try{let q;try{q=await Z()}catch(G){if(B8.isAxiosError(G)&&(G.response?.status===401||G.response?.status===403&&typeof G.response?.data==="string"&&G.response.data.includes("OAuth token has been revoked"))){let W=nJ()?.accessToken;if(W)await bw(W),q=await Z();else throw G}else throw G}let K=NO.status!=="pending"?NO.status==="enabled":B1().penguinModeOrgEnabled;if(NO=q.enabled?{status:"enabled"}:{status:"disabled",reason:q.disabled_reason??"preference"},K!==q.enabled){if(!q.enabled)R6("userSettings",{fastMode:void 0});o1((G)=>({...G,penguinModeOrgEnabled:q.enabled})),yE1.emit(q.enabled)}y(`Org fast mode: ${q.enabled?"enabled":`disabled (${q.disabled_reason??"preference"})`}`)}catch(q){let K=process.env.USER_TYPE==="ant",G=B1().penguinModeOrgEnabled===!0;NO=K||G?{status:"enabled"}:{status:"disabled",reason:"network_error"},y(`Failed to fetch org fast mode status, defaulting to ${NO.status==="enabled"?"enabled (cached)":"disabled (network_error)"}: ${q}`,{level:"error"}),d("jarvis_api_error",{})}finally{U20=null}}return U20=Y(),U20}var vM="Opus 4.6",s60,$E1=!1,FW6,OW6,_W6,LW6,wW6,AW6,NO,yE1,MW6,o97=30000,UW6=0,U20=null;var _U=j(()=>{Z7();gQ();w1();M1();MJ();P8();Y1();S1();OJ();KY();v8();s60={status:"active"},FW6=QZ(),OW6=QZ(),_W6=FW6.subscribe,LW6=OW6.subscribe;wW6=QZ(),AW6=wW6.subscribe;NO={status:"pending"},yE1=QZ(),MW6=yE1.subscribe});function e60(J){if(j9()&&J)return s97;return Ug0}function e97(J,Q){return Q.input_tokens/1e6*J.inputTokens+Q.output_tokens/1e6*J.outputTokens+(Q.cache_read_input_tokens??0)/1e6*J.promptCacheReadTokens+(Q.cache_creation_input_tokens??0)/1e6*J.promptCacheWriteTokens+(Q.server_tool_use?.web_search_requests??0)*J.webSearchRequests}function J77(J,Q){let X=GY(J);if(X===t2(O60.firstParty)){let Y=Q.speed==="fast";return e60(Y)}let Z=Fg0[X];if(!Z)return Q77(J,X),Fg0[GY(O3())]??t97;return Z}function Q77(J,Q){d("jarvis_api_error",{model:J,shortName:Q}),aI0()}function rl(J,Q){let X=J77(J,Q);return e97(X,Q)}function $W6(J){if(Number.isInteger(J))return`$${J}`;return`$${J.toFixed(2)}`}function fw(J){return`${$W6(J.inputTokens)}/${$W6(J.outputTokens)} per Mtok`}var UI,DW6,Ug0,s97,bE1,EE1,t97,Fg0;var FC=j(()=>{M1();w1();_U();wU0();OJ();UI={inputTokens:3,outputTokens:15,promptCacheWriteTokens:3.75,promptCacheReadTokens:0.3,webSearchRequests:0.01},DW6={inputTokens:15,outputTokens:75,promptCacheWriteTokens:18.75,promptCacheReadTokens:1.5,webSearchRequests:0.01},Ug0={inputTokens:5,outputTokens:25,promptCacheWriteTokens:6.25,promptCacheReadTokens:0.5,webSearchRequests:0.01},s97={inputTokens:30,outputTokens:150,promptCacheWriteTokens:37.5,promptCacheReadTokens:3,webSearchRequests:0.01},bE1={inputTokens:0.8,outputTokens:4,promptCacheWriteTokens:1,promptCacheReadTokens:0.08,webSearchRequests:0.01},EE1={inputTokens:1,outputTokens:5,promptCacheWriteTokens:1.25,promptCacheReadTokens:0.1,webSearchRequests:0.01},t97=Ug0;Fg0={[t2(zy1.firstParty)]:bE1,[t2(Wy1.firstParty)]:EE1,[t2(Gy1.firstParty)]:UI,[t2(Ky1.firstParty)]:UI,[t2(Hy1.firstParty)]:UI,[t2(By1.firstParty)]:UI,[t2(_y1.firstParty)]:UI,[t2(Uy1.firstParty)]:DW6,[t2(Fy1.firstParty)]:DW6,[t2(Oy1.firstParty)]:Ug0,[t2(O60.firstParty)]:Ug0}});function OC(J){return al.includes(J)}function JJ0(J){return X77.includes(J)}var al,X77;var QJ0=j(()=>{al=["sonnet","opus","haiku","best","sonnet[1m]","opus[1m]","opusplan"];X77=["sonnet","opus","haiku"]});function Z77(J,Q){if(J.includes(Q))return!0;if(OC(J))return Y7(J).toLowerCase().includes(Q);return!1}function jW6(J,Q){if(!J.startsWith(Q))return!1;return J.length===Q.length||J[Q.length]==="-"}function Y77(J,Q){let X=OC(J)?Y7(J).toLowerCase():J;if(jW6(X,Q))return!0;if(!Q.startsWith("claude-")&&jW6(X,`claude-${Q}`))return!0;return!1}function IW6(J,Q){for(let X of Q){if(JJ0(X))continue;let Z=X.indexOf(J);if(Z===-1)continue;let Y=Z+J.length;if(Y===X.length||X[Y]==="-")return!0}return!1}function rk(J){let Q=B6()||{},{availableModels:X}=Q;if(!X)return!0;if(X.length===0)return!1;let Y=kh0(J).trim().toLowerCase(),q=X.map((K)=>K.trim().toLowerCase());if(q.includes(Y)){if(!JJ0(Y)||!IW6(Y,q))return!0}for(let K of q)if(JJ0(K)&&!IW6(K,q)&&Z77(Y,K))return!0;if(OC(Y)){let K=Y7(Y).toLowerCase();if(q.includes(K))return!0}for(let K of q)if(!JJ0(K)&&OC(K)){if(Y7(K).toLowerCase()===Y)return!0}for(let K of q)if(!JJ0(K)&&!OC(K)){if(Y77(Y,K))return!0}return!1}var O20=j(()=>{v8();QJ0();OJ();QC()});var PW6={};d1(PW6,{resolveSkillModelOverride:()=>N20,renderModelSetting:()=>_20,renderModelName:()=>FK,renderDefaultModelSetting:()=>sl,parseUserSpecifiedModel:()=>Y7,normalizeModelStringForAPI:()=>EH,modelDisplayString:()=>VO,isOpus1mMergeEnabled:()=>_3,isNonCustomOpusModel:()=>ol,getUserSpecifiedModelSetting:()=>Sw,getSmallFastModel:()=>$G,getRuntimeMainLoopModel:()=>SM,getPublicModelName:()=>CE1,getPublicModelDisplayName:()=>L20,getOpus46PricingSuffix:()=>_C,getMarketingNameForModel:()=>YJ0,getMainLoopModel:()=>QQ,getGlockAiUserDefaultModelDescription:()=>ZJ0,getDefaultSonnetModel:()=>e2,getDefaultOpusModel:()=>gL,getDefaultMainLoopModelSetting:()=>O3,getDefaultMainLoopModel:()=>LU,getDefaultHaikuModel:()=>XJ0,getCanonicalName:()=>GY,getBestModel:()=>yW6,firstPartyNameToCanonical:()=>t2});function $G(){return process.env.ANTHROPIC_SMALL_FAST_MODEL||XJ0()}function ol(J){return J===DQ().opus40||J===DQ().opus41||J===DQ().opus45||J===DQ().opus46}function Sw(){let J,Q=fb();if(Q!==void 0)J=Q;else{let X=B6()||{};J=process.env.ANTHROPIC_MODEL||X.model||void 0}if(J&&!rk(J))return;return J}function QQ(){let J=Sw();if(J!==void 0&&J!==null)return Y7(J);return LU()}function yW6(){return gL()}function gL(){if(process.env.ANTHROPIC_DEFAULT_OPUS_MODEL)return process.env.ANTHROPIC_DEFAULT_OPUS_MODEL;if(N6()!=="firstParty")return DQ().opus46;return DQ().opus46}function e2(){if(process.env.ANTHROPIC_DEFAULT_SONNET_MODEL)return process.env.ANTHROPIC_DEFAULT_SONNET_MODEL;if(N6()!=="firstParty")return DQ().sonnet45;return DQ().sonnet46}function XJ0(){if(process.env.ANTHROPIC_DEFAULT_HAIKU_MODEL)return process.env.ANTHROPIC_DEFAULT_HAIKU_MODEL;return DQ().haiku45}function SM(J){let{permissionMode:Q,mainLoopModel:X,exceeds200kTokens:Z=!1}=J;if(Sw()==="opusplan"&&Q==="plan"&&!Z)return gL();if(Sw()==="haiku"&&Q==="plan")return e2();return X}function O3(){if(process.env.USER_TYPE==="ant")return getAntModelOverrideConfig()?.defaultModel??gL()+"[1m]";if(s6())return gL()+(_3()?"[1m]":"");return e2()}function LU(){return Y7(O3())}function t2(J){if(J=J.toLowerCase(),J.includes("claude-opus-4-6"))return"claude-opus-4-6";if(J.includes("claude-opus-4-5"))return"claude-opus-4-5";if(J.includes("claude-opus-4-1"))return"claude-opus-4-1";if(J.includes("claude-opus-4"))return"claude-opus-4";if(J.includes("claude-sonnet-4-6"))return"claude-sonnet-4-6";if(J.includes("claude-sonnet-4-5"))return"claude-sonnet-4-5";if(J.includes("claude-sonnet-4"))return"claude-sonnet-4";if(J.includes("claude-haiku-4-5"))return"claude-haiku-4-5";if(J.includes("claude-3-7-sonnet"))return"claude-3-7-sonnet";if(J.includes("claude-3-5-sonnet"))return"claude-3-5-sonnet";if(J.includes("claude-3-5-haiku"))return"claude-3-5-haiku";if(J.includes("claude-3-opus"))return"claude-3-opus";if(J.includes("claude-3-sonnet"))return"claude-3-sonnet";if(J.includes("claude-3-haiku"))return"claude-3-haiku";let Q=J.match(/(claude-(\d+-\d+-)?\w+)/);if(Q&&Q[1])return Q[1];return J}function GY(J){return t2(kh0(J))}function ZJ0(J=!1){if(_3())return`Opus 4.6 with 1M context \xB7 Most capable for complex work${J?_C(!0):""}`;return`Opus 4.6 \xB7 Most capable for complex work${J?_C(!0):""}`}function sl(J){if(J==="opusplan")return"Opus 4.6 in plan mode, else Sonnet 4.6";return FK(Y7(J))}function _C(J){if(N6()!=="firstParty")return"";let Q=fw(e60(J));return` \xB7${J?` (${yx})`:""} ${Q}`}function _3(){if(xk()||N6()!=="firstParty")return!1;return!0}function _20(J){if(J==="opusplan")return"Opus Plan";if(OC(J))return m2(J);return FK(J)}function L20(J){switch(J){case DQ().opus46:return"Opus 4.6";case DQ().opus46+"[1m]":return"Opus 4.6 (1M context)";case DQ().opus45:return"Opus 4.5";case DQ().opus41:return"Opus 4.1";case DQ().opus40:return"Opus 4";case DQ().sonnet46+"[1m]":return"Sonnet 4.6 (1M context)";case DQ().sonnet46:return"Sonnet 4.6";case DQ().sonnet45+"[1m]":return"Sonnet 4.5 (1M context)";case DQ().sonnet45:return"Sonnet 4.5";case DQ().sonnet40:return"Sonnet 4";case DQ().sonnet40+"[1m]":return"Sonnet 4 (1M context)";case DQ().sonnet37:return"Sonnet 3.7";case DQ().sonnet35:return"Sonnet 3.5";case DQ().haiku45:return"Haiku 4.5";case DQ().haiku35:return"Haiku 3.5";default:return null}}function q77(J){let[Q="",...X]=J.split("-");return[Q.slice(0,3)+"*".repeat(Math.max(0,Q.length-3)),...X].join("-")}function FK(J){let Q=L20(J);if(Q)return Q;if(process.env.USER_TYPE==="ant"){let X=Y7(J),Z=resolveAntModel(J);if(Z){let Y=Z.model.replace(/\[1m\]$/i,""),q=q77(Y),K=LO(X)?"[1m]":"";return q+K}if(X!==J)return`${J} (${X})`;return X}return J}function CE1(J){let Q=L20(J);if(Q)return`Glock ${Q}`;return`Glock (${J})`}function Y7(J){let Q=J.trim(),X=Q.toLowerCase(),Z=LO(X),Y=Z?X.replace(/\[1m]$/i,"").trim():X;if(OC(Y))switch(Y){case"opusplan":return e2()+(Z?"[1m]":"");case"sonnet":return e2()+(Z?"[1m]":"");case"haiku":return XJ0()+(Z?"[1m]":"");case"opus":return gL()+(Z?"[1m]":"");case"best":return yW6();default:}if(process.env.USER_TYPE==="ant"){let q=LO(X),K=X.replace(/\[1m]$/i,"").trim(),G=resolveAntModel(K);if(G){let z=q?"[1m]":"";return G.model+z}}if(Z)return Q.replace(/\[1m\]$/i,"").trim()+"[1m]";return Q}function N20(J,Q){if(LO(J)||!LO(Q))return J;if(NP1(Y7(J)))return J+"[1m]";return J}function VO(J){if(J===null){if(process.env.USER_TYPE==="ant")return`Default for Ants (${sl(O3())})`;else if(s6())return`Default (${ZJ0()})`;return`Default (${LU()})`}let Q=Y7(J);return J===Q?Q:`${J} (${Q})`}function YJ0(J){if(N6()==="foundry")return;let Q=J.toLowerCase().includes("[1m]"),X=GY(J);if(X.includes("claude-opus-4-6"))return"Custom Glock Model";if(X.includes("claude-opus-4-5"))return"Custom Glock Model";if(X.includes("claude-opus-4-1"))return"Custom Glock Model";if(X.includes("claude-opus-4"))return"Custom Glock Model";if(X.includes("claude-sonnet-4-6"))return"Custom Glock Model";if(X.includes("claude-sonnet-4-5"))return"Custom Glock Model";if(X.includes("claude-sonnet-4"))return"Custom Glock Model";if(X.includes("claude-3-7-sonnet"))return"Custom Glock Model";if(X.includes("claude-3-5-sonnet"))return"Custom Glock Model";if(X.includes("claude-haiku-4-5"))return"Custom Glock Model";if(X.includes("claude-3-5-haiku"))return"Custom Glock Model";return}function EH(J){return J.replace(/\[(1|2)m\]/gi,"")}var OJ=j(()=>{w1();MJ();yH();QC();FC();v8();KY();dX();O20();QJ0()});function TE1(J){let Q=J.trim();if(!Q)return null;if(Q.endsWith("-")){let q=parseInt(Q.slice(0,-1),10);if(isNaN(q)||q<1)return null;return{firstPage:q,lastPage:1/0}}let X=Q.indexOf("-");if(X===-1){let q=parseInt(Q,10);if(isNaN(q)||q<1)return null;return{firstPage:q,lastPage:q}}let Z=parseInt(Q.slice(0,X),10),Y=parseInt(Q.slice(X+1),10);if(isNaN(Z)||isNaN(Y)||Z<1||Y<1||Y<Z)return null;return{firstPage:Z,lastPage:Y}}function V20(){return!QQ().toLowerCase().includes("claude-3-haiku")}function qJ0(J){let Q=J.startsWith(".")?J.slice(1):J;return K77.has(Q.toLowerCase())}var K77;var Og0=j(()=>{OJ();K77=new Set(["pdf"])});function vW6(J,Q,X){return`Reads a file from the local filesystem. You can access any file directly by using this tool.
302
302
  Assume this tool is able to read all files on the machine. If the User provides a path to a file assume that path is valid. It is okay to read a file that does not exist; an error will be returned.
303
303
 
304
304
  Usage:
@@ -4172,10 +4172,10 @@ GOOD:
4172
4172
 
4173
4173
  BAD (never write these):
4174
4174
  - "Fix bug found while testing with Glock"
4175
- - "1-shotted by claude-opus-4-6"
4175
+ - "1-shotted by Custom Glock Model"
4176
4176
  - "Generated with Glock"
4177
- - "Co-Authored-By: Claude Opus 4.6 <\u2026>"
4178
- `;return""}var ta=j(()=>{YP();P8();S1()});import{stat as QUQ}from"fs/promises";function q40(){if(process.env.USER_TYPE==="ant"&&U$())return{commit:"",pr:""};if(Ve()==="remote"){let K=process.env.GLOCK_REMOTE_SESSION_ID;if(K){let G=process.env.SESSION_INGRESS_URL;if(!ga0(K,G)){let z=MF(K,G);return{commit:z,pr:z}}}return{commit:"",pr:""}}let J=QQ(),Q=L20(J)!==null,X=pt1()||Q?CE1(J):"Claude Opus 4.6",Z=`\uD83E\uDD16 Generated with [Glock](${Rr})`,Y=`Co-Authored-By: ${X} <noreply@getglock.dev>`,q=j6();if(q.attribution)return{commit:q.attribution.commit??Y,pr:q.attribution.pr??Z};if(q.includeCoAuthoredBy===!1)return{commit:"",pr:""};return{commit:Y,pr:Z}}function ezJ(J){for(let Q of JN8)if(J.includes(`<${Q}>`))return!0;return!1}function XUQ(J){let Q=0;for(let X of J){if(X.type!=="user")continue;let Z=X.message?.content;if(!Z)continue;let Y=!1;if(typeof Z==="string"){if(ezJ(Z))continue;Y=Z.trim().length>0}else if(Array.isArray(Z))Y=Z.some((q)=>{if(!q||typeof q!=="object"||!("type"in q))return!1;return q.type==="text"&&typeof q.text==="string"&&!ezJ(q.text)||q.type==="image"||q.type==="document"});if(Y)Q++}return Q}function ZUQ(J){let Q=J.filter((X)=>X.type==="user"&&!(("isSidechain"in X)&&X.isSidechain));return XUQ(Q)}async function YUQ(J){let Q=J.attribution;if(!Q)return null;let X=Q.fileStates,Y=X instanceof Map?Array.from(X.keys()):Object.keys(X);if(Y.length===0)return null;try{return await dt1([Q],Y)}catch(q){return H0(q),null}}function KUQ(J){let Q=0;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"||!qUQ.has(Y.name))continue;if(Je1(Y.name,Y.input))Q++}}return Q}async function GUQ(){try{let J=FY(),Q=(await QUQ(J)).size,Z=(await FE0(J,Q)).postBoundaryBuf,Y=xj(Z),q=Y.findLastIndex((G)=>G.type==="system"&&("subtype"in G)&&G.subtype==="compact_boundary"),K=q>=0?Y.slice(q+1):Y;return{promptCount:ZUQ(K),memoryAccessCount:KUQ(K)}}catch{return{promptCount:0,memoryAccessCount:0}}}async function JWJ(J){if(process.env.USER_TYPE==="ant"&&U$())return"";if(Ve()==="remote"){let F=process.env.GLOCK_REMOTE_SESSION_ID;if(F){let O=process.env.SESSION_INGRESS_URL;if(!ga0(F,O))return MF(F,O)}return""}let Q=j6();if(Q.attribution?.pr)return Q.attribution.pr;if(Q.includeCoAuthoredBy===!1)return"";let X=`\uD83E\uDD16 Generated with [Glock](${Rr})`,Z=J();if(y(`PR Attribution: appState.attribution exists: ${!!Z.attribution}`),Z.attribution){let F=Z.attribution.fileStates,_=F instanceof Map?F.size:Object.keys(F).length;y(`PR Attribution: fileStates count: ${_}`)}let[Y,{promptCount:q,memoryAccessCount:K},G]=await Promise.all([YUQ(Z),GUQ(),ct1()]),z=Y?.summary.glockPercent??0;y(`PR Attribution: glockPercent: ${z}, promptCount: ${q}, memoryAccessCount: ${K}`);let W=GY(QQ()),H=G?W:V81(W);if(z===0&&q===0&&K===0)return y("PR Attribution: returning default (no data)"),X;let B=K>0?`, ${K} ${K===1?"memory":"memories"} recalled`:"",U=`\uD83E\uDD16 Generated with [Glock](${Rr}) (${z}% ${q}-shotted by ${H}${B})`;return y(`PR Attribution: returning summary: ${U}`),U}var qUQ;var j81=j(()=>{w1();PZ();aZ();$q();Jz();YP();Y1();Oq();j1();OJ();Qe1();rJ();S00();v8();ta();qUQ=new Set([ZJ,FQ,WX,iJ,q7])});function I81(){return s70()}function y81(){return fi0()}function WUQ(){if(r0(process.env.GLOCK_DISABLE_BACKGROUND_TASKS))return null;return"You can use the `run_in_background` parameter to run the command in the background. Only use this if you don't need the result immediately and are OK being notified when the command completes later. You do not need to check the output right away - you'll be notified when it finishes. You do not need to use '&' at the end of the command when using this parameter."}function QWJ(){let J=process.env.USER_TYPE==="ant"&&U$()?Y40()+`
4177
+ - "Co-Authored-By: Custom Glock Model <\u2026>"
4178
+ `;return""}var ta=j(()=>{YP();P8();S1()});import{stat as QUQ}from"fs/promises";function q40(){if(process.env.USER_TYPE==="ant"&&U$())return{commit:"",pr:""};if(Ve()==="remote"){let K=process.env.GLOCK_REMOTE_SESSION_ID;if(K){let G=process.env.SESSION_INGRESS_URL;if(!ga0(K,G)){let z=MF(K,G);return{commit:z,pr:z}}}return{commit:"",pr:""}}let J=QQ(),Q=L20(J)!==null,X=pt1()||Q?CE1(J):"Custom Glock Model",Z=`\uD83E\uDD16 Generated with [Glock](${Rr})`,Y=`Co-Authored-By: ${X} <noreply@getglock.dev>`,q=j6();if(q.attribution)return{commit:q.attribution.commit??Y,pr:q.attribution.pr??Z};if(q.includeCoAuthoredBy===!1)return{commit:"",pr:""};return{commit:Y,pr:Z}}function ezJ(J){for(let Q of JN8)if(J.includes(`<${Q}>`))return!0;return!1}function XUQ(J){let Q=0;for(let X of J){if(X.type!=="user")continue;let Z=X.message?.content;if(!Z)continue;let Y=!1;if(typeof Z==="string"){if(ezJ(Z))continue;Y=Z.trim().length>0}else if(Array.isArray(Z))Y=Z.some((q)=>{if(!q||typeof q!=="object"||!("type"in q))return!1;return q.type==="text"&&typeof q.text==="string"&&!ezJ(q.text)||q.type==="image"||q.type==="document"});if(Y)Q++}return Q}function ZUQ(J){let Q=J.filter((X)=>X.type==="user"&&!(("isSidechain"in X)&&X.isSidechain));return XUQ(Q)}async function YUQ(J){let Q=J.attribution;if(!Q)return null;let X=Q.fileStates,Y=X instanceof Map?Array.from(X.keys()):Object.keys(X);if(Y.length===0)return null;try{return await dt1([Q],Y)}catch(q){return H0(q),null}}function KUQ(J){let Q=0;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"||!qUQ.has(Y.name))continue;if(Je1(Y.name,Y.input))Q++}}return Q}async function GUQ(){try{let J=FY(),Q=(await QUQ(J)).size,Z=(await FE0(J,Q)).postBoundaryBuf,Y=xj(Z),q=Y.findLastIndex((G)=>G.type==="system"&&("subtype"in G)&&G.subtype==="compact_boundary"),K=q>=0?Y.slice(q+1):Y;return{promptCount:ZUQ(K),memoryAccessCount:KUQ(K)}}catch{return{promptCount:0,memoryAccessCount:0}}}async function JWJ(J){if(process.env.USER_TYPE==="ant"&&U$())return"";if(Ve()==="remote"){let F=process.env.GLOCK_REMOTE_SESSION_ID;if(F){let O=process.env.SESSION_INGRESS_URL;if(!ga0(F,O))return MF(F,O)}return""}let Q=j6();if(Q.attribution?.pr)return Q.attribution.pr;if(Q.includeCoAuthoredBy===!1)return"";let X=`\uD83E\uDD16 Generated with [Glock](${Rr})`,Z=J();if(y(`PR Attribution: appState.attribution exists: ${!!Z.attribution}`),Z.attribution){let F=Z.attribution.fileStates,_=F instanceof Map?F.size:Object.keys(F).length;y(`PR Attribution: fileStates count: ${_}`)}let[Y,{promptCount:q,memoryAccessCount:K},G]=await Promise.all([YUQ(Z),GUQ(),ct1()]),z=Y?.summary.glockPercent??0;y(`PR Attribution: glockPercent: ${z}, promptCount: ${q}, memoryAccessCount: ${K}`);let W=GY(QQ()),H=G?W:V81(W);if(z===0&&q===0&&K===0)return y("PR Attribution: returning default (no data)"),X;let B=K>0?`, ${K} ${K===1?"memory":"memories"} recalled`:"",U=`\uD83E\uDD16 Generated with [Glock](${Rr}) (${z}% ${q}-shotted by ${H}${B})`;return y(`PR Attribution: returning summary: ${U}`),U}var qUQ;var j81=j(()=>{w1();PZ();aZ();$q();Jz();YP();Y1();Oq();j1();OJ();Qe1();rJ();S00();v8();ta();qUQ=new Set([ZJ,FQ,WX,iJ,q7])});function I81(){return s70()}function y81(){return fi0()}function WUQ(){if(r0(process.env.GLOCK_DISABLE_BACKGROUND_TASKS))return null;return"You can use the `run_in_background` parameter to run the command in the background. Only use this if you don't need the result immediately and are OK being notified when the command completes later. You do not need to check the output right away - you'll be notified when it finishes. You do not need to use '&' at the end of the command when using this parameter."}function QWJ(){let J=process.env.USER_TYPE==="ant"&&U$()?Y40()+`
4179
4179
  `:"";if(!Fl0())return J;if(process.env.USER_TYPE==="ant"){let Z=!r0(process.env.GLOCK_SIMPLE)?"For git commits and pull requests, use the `/commit` and `/commit-push-pr` skills:\n- `/commit` - Create a git commit with staged changes\n- `/commit-push-pr` - Commit, push, and create a pull request\n\nThese skills handle git safety protocols, proper commit message formatting, and PR creation.\n\nBefore creating a pull request, run `/simplify` to review your changes, then test end-to-end (e.g. via `/tmux` for interactive features).\n\n":"";return`${J}# Git operations
4180
4180
 
4181
4181
  ${Z}IMPORTANT: NEVER skip hooks (--no-verify, --no-gpg-sign, etc) unless the user explicitly requests it.
@@ -7377,7 +7377,7 @@ ${z6("suggestion",J.theme)(`/plugin install frontend-design@${Eq}`)}`},cooldownS
7377
7377
  ${z6("suggestion",J.theme)(`/plugin install vercel@${Eq}`)}`},cooldownSessions:3,isRelevant:async(J)=>jdJ("vercel",J,{filePath:/(?:^|[/\\])vercel\.json$/i,cli:["vercel"]})},{id:"effort-high-nudge",content:async(J)=>{let X=z6("suggestion",J.theme)("/effort high");return W8("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(!H20())return!1;if(!eL(QQ()))return!1;if(A8("policySettings")?.effortLevel!==void 0)return!1;if(li()!==void 0)return!1;let J=j6().effortLevel;if(J==="high"||J==="max")return!1;return W8("jarvis_api_error","off")!=="off"}},{id:"subagent-fanout-nudge",content:async(J)=>{let Q=z6("suggestion",J.theme);return W8("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(!H20())return!1;return W8("jarvis_api_error","off")!=="off"}},{id:"loop-command-nudge",content:async(J)=>{let Q=z6("suggestion",J.theme);return W8("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(!H20())return!1;if(!id6())return!1;return W8("jarvis_api_error","off")!=="off"}},{id:"guest-passes",content:async(J)=>{let Q=z6("glock",J.theme),X=cm();return X?`Share Glock and earn ${Q(pm(X))} of extra usage \xB7 ${Q("/passes")}`:`You have free guest passes to share \xB7 ${Q("/passes")}`},cooldownSessions:3,isRelevant:async()=>{if(B1().hasVisitedPasses)return!1;let{eligible:Q}=E50();return Q}},{id:"overage-credit",content:async(J)=>{let Q=z6("glock",J.theme),X=jo(),Z=X?t40(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()=>L88()},{id:"feedback-command",content:async()=>"Use /feedback to help us improve!",cooldownSessions:15,async isRelevant(){if(process.env.USER_TYPE==="ant")return!1;return B1().numStartups>5}}],isQ=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 rsQ(J){if(J.length===0)return;if(J.length===1)return J[0];let Q=J.map((X)=>({tip:X,sessions:oZ1(X.id)}));return Q.sort((X,Z)=>Z.sessions-X.sessions),Q[0]?.tip}async function IdJ(J){if(B6().spinnerTipsEnabled===!1)return;let Q=await eZ1(J);if(Q.length===0)return;return rsQ(Q)}function ydJ(J){RdJ(J.id),d("jarvis_api_error",{tipIdLength:J.id,cooldownSessions:J.cooldownSessions})}var PdJ=j(()=>{v8();M1();IY8();bY8()});async function EY8(J,Q){if(bdJ)return;if(bdJ=!0,!J.isBypassPermissionsModeAvailable)return;if(!await R08())return;Q((Z)=>{return{...Z,toolPermissionContext:y40(Z.toolPermissionContext)}})}function EdJ(){let J=H1((X)=>X.toolPermissionContext),Q=M6();j$0.useEffect(()=>{if(a9())return;EY8(J,Q)},[])}async function osQ(J,Q,X){}function ssQ(){asQ=!1}function CdJ(){let J=H1((K)=>K.mainLoopModel),Q=H1((K)=>K.mainLoopModelForSession),X=H1((K)=>K.fastMode),Z=M6(),Y=rX(),q=j$0.useRef(!0);j$0.useEffect(()=>{if(a9())return;if(q.current)q.current=!1;else ssQ();osQ(Y.getState().toolPermissionContext,Z,X)},[J,Q,X])}var j$0,bdJ=!1,asQ=!1;var TdJ=j(()=>{K6();w1();_W();j$0=E(X1(),1)});var tsQ,esQ,JtQ,ws5,QtQ,XtQ,ZtQ,YtQ,qtQ,KtQ,As5,GtQ,ztQ,WtQ,Rs5,HtQ,Ms5,BtQ,Ds5,UtQ,FtQ,OtQ,_tQ,$s5,LtQ,js5,NtQ,VtQ,wtQ,AtQ,RtQ,Is5,MtQ,vdJ,DtQ,CY8,$tQ,jtQ,fdJ,ItQ,SdJ,ytQ,ys5,Ps5;var xdJ=j(()=>{A6();WH0();tsQ=u0(()=>I.unknown()),esQ=u0(()=>I.object({matcher:I.string().optional(),hookCallbackIds:I.array(I.string()),timeout:I.number().optional()}).describe("Configuration for matching and routing hook callbacks.")),JtQ=u0(()=>I.object({subtype:I.literal("initialize"),hooks:I.record(KI8(),I.array(esQ())).optional(),sdkMcpServers:I.array(I.string()).optional(),jsonSchema:I.record(I.string(),I.unknown()).optional(),systemPrompt:I.string().optional(),appendSystemPrompt:I.string().optional(),agents:I.record(I.string(),BI8()).optional(),promptSuggestions:I.boolean().optional(),agentProgressSummaries:I.boolean().optional()}).describe("Initializes the SDK session with hooks, MCP servers, and agent configuration.")),ws5=u0(()=>I.object({commands:I.array(vO1()),agents:I.array(fO1()),output_style:I.string(),available_output_styles:I.array(I.string()),models:I.array(WI8()),account:HI8(),pid:I.number().optional().describe("@internal CLI process PID for tmux socket isolation"),fast_mode_state:zH0().optional()}).describe("Response from session initialization with available commands, models, and account info.")),QtQ=u0(()=>I.object({subtype:I.literal("interrupt")}).describe("Interrupts the currently running conversation turn.")),XtQ=u0(()=>I.object({subtype:I.literal("can_use_tool"),tool_name:I.string(),input:I.record(I.string(),I.unknown()),permission_suggestions:I.array(GH0()).optional(),blocked_path:I.string().optional(),decision_reason:I.string().optional(),title:I.string().optional(),display_name:I.string().optional(),tool_use_id:I.string(),agent_id:I.string().optional(),description:I.string().optional()}).describe("Requests permission to use a tool with the given input.")),ZtQ=u0(()=>I.object({subtype:I.literal("set_permission_mode"),mode:AE(),ultraplan:I.boolean().optional().describe("@internal CCR ultraplan session marker.")}).describe("Sets the permission mode for tool execution handling.")),YtQ=u0(()=>I.object({subtype:I.literal("set_model"),model:I.string().optional()}).describe("Sets the model to use for subsequent conversation turns.")),qtQ=u0(()=>I.object({subtype:I.literal("set_max_thinking_tokens"),max_thinking_tokens:I.number().nullable()}).describe("Sets the maximum number of thinking tokens for extended thinking.")),KtQ=u0(()=>I.object({subtype:I.literal("mcp_status")}).describe("Requests the current status of all MCP server connections.")),As5=u0(()=>I.object({mcpServers:I.array(TO1())}).describe("Response containing the current status of all MCP server connections.")),GtQ=u0(()=>I.object({subtype:I.literal("get_context_usage")}).describe("Requests a breakdown of current context window usage by category.")),ztQ=u0(()=>I.object({name:I.string(),tokens:I.number(),color:I.string(),isDeferred:I.boolean().optional()})),WtQ=u0(()=>I.object({color:I.string(),isFilled:I.boolean(),categoryName:I.string(),tokens:I.number(),percentage:I.number(),squareFullness:I.number()})),Rs5=u0(()=>I.object({categories:I.array(ztQ()),totalTokens:I.number(),maxTokens:I.number(),rawMaxTokens:I.number(),percentage:I.number(),gridRows:I.array(I.array(WtQ())),model:I.string(),memoryFiles:I.array(I.object({path:I.string(),type:I.string(),tokens:I.number()})),mcpTools:I.array(I.object({name:I.string(),serverName:I.string(),tokens:I.number(),isLoaded:I.boolean().optional()})),deferredBuiltinTools:I.array(I.object({name:I.string(),tokens:I.number(),isLoaded:I.boolean()})).optional(),systemTools:I.array(I.object({name:I.string(),tokens:I.number()})).optional(),systemPromptSections:I.array(I.object({name:I.string(),tokens:I.number()})).optional(),agents:I.array(I.object({agentType:I.string(),source:I.string(),tokens:I.number()})),slashCommands:I.object({totalCommands:I.number(),includedCommands:I.number(),tokens:I.number()}).optional(),skills:I.object({totalSkills:I.number(),includedSkills:I.number(),tokens:I.number(),skillFrontmatter:I.array(I.object({name:I.string(),source:I.string(),tokens:I.number()}))}).optional(),autoCompactThreshold:I.number().optional(),isAutoCompactEnabled:I.boolean(),messageBreakdown:I.object({toolCallTokens:I.number(),toolResultTokens:I.number(),attachmentTokens:I.number(),assistantMessageTokens:I.number(),userMessageTokens:I.number(),toolCallsByType:I.array(I.object({name:I.string(),callTokens:I.number(),resultTokens:I.number()})),attachmentsByType:I.array(I.object({name:I.string(),tokens:I.number()}))}).optional(),apiUsage:I.object({input_tokens:I.number(),output_tokens:I.number(),cache_creation_input_tokens:I.number(),cache_read_input_tokens:I.number()}).nullable()}).describe("Breakdown of current context window usage by category (system prompt, tools, messages, etc.).")),HtQ=u0(()=>I.object({subtype:I.literal("rewind_files"),user_message_id:I.string(),dry_run:I.boolean().optional()}).describe("Rewinds file changes made since a specific user message.")),Ms5=u0(()=>I.object({canRewind:I.boolean(),error:I.string().optional(),filesChanged:I.array(I.string()).optional(),insertions:I.number().optional(),deletions:I.number().optional()}).describe("Result of a rewindFiles operation.")),BtQ=u0(()=>I.object({subtype:I.literal("cancel_async_message"),message_uuid:I.string()}).describe("Drops a pending async user message from the command queue by uuid. No-op if already dequeued for execution.")),Ds5=u0(()=>I.object({cancelled:I.boolean()}).describe("Result of a cancel_async_message operation. cancelled=false means the message was not in the queue (already dequeued or never enqueued).")),UtQ=u0(()=>I.object({subtype:I.literal("seed_read_state"),path:I.string(),mtime:I.number()}).describe("Seeds the readFileState cache with a path+mtime entry. Use when a prior Read was removed from context (e.g. by snip) so Edit validation would fail despite the client having observed the Read. The mtime lets the CLI detect if the file changed since the seeded Read \u2014 same staleness check as the normal path.")),FtQ=u0(()=>I.object({subtype:I.literal("hook_callback"),callback_id:I.string(),input:zI8(),tool_use_id:I.string().optional()}).describe("Delivers a hook callback with its input data.")),OtQ=u0(()=>I.object({subtype:I.literal("mcp_message"),server_name:I.string(),message:tsQ()}).describe("Sends a JSON-RPC message to a specific MCP server.")),_tQ=u0(()=>I.object({subtype:I.literal("mcp_set_servers"),servers:I.record(I.string(),VT0())}).describe("Replaces the set of dynamically managed MCP servers.")),$s5=u0(()=>I.object({added:I.array(I.string()),removed:I.array(I.string()),errors:I.record(I.string(),I.string())}).describe("Result of replacing the set of dynamically managed MCP servers.")),LtQ=u0(()=>I.object({subtype:I.literal("reload_plugins")}).describe("Reloads plugins from disk and returns the refreshed session components.")),js5=u0(()=>I.object({commands:I.array(vO1()),agents:I.array(fO1()),plugins:I.array(I.object({name:I.string(),path:I.string(),source:I.string().optional()})),mcpServers:I.array(TO1()),error_count:I.number()}).describe("Refreshed commands, agents, plugins, and MCP server status after reload.")),NtQ=u0(()=>I.object({subtype:I.literal("mcp_reconnect"),serverName:I.string()}).describe("Reconnects a disconnected or failed MCP server.")),VtQ=u0(()=>I.object({subtype:I.literal("mcp_toggle"),serverName:I.string(),enabled:I.boolean()}).describe("Enables or disables an MCP server.")),wtQ=u0(()=>I.object({subtype:I.literal("stop_task"),task_id:I.string()}).describe("Stops a running task.")),AtQ=u0(()=>I.object({subtype:I.literal("apply_flag_settings"),settings:I.record(I.string(),I.unknown())}).describe("Merges the provided settings into the flag settings layer, updating the active configuration.")),RtQ=u0(()=>I.object({subtype:I.literal("get_settings")}).describe("Returns the effective merged settings and the raw per-source settings.")),Is5=u0(()=>I.object({effective:I.record(I.string(),I.unknown()),sources:I.array(I.object({source:I.enum(["userSettings","projectSettings","localSettings","flagSettings","policySettings"]),settings:I.record(I.string(),I.unknown())})).describe("Ordered low-to-high priority \u2014 later entries override earlier ones."),applied:I.object({model:I.string(),effort:I.enum(["low","medium","high","max"]).nullable()}).optional().describe("Runtime-resolved values after env overrides, session state, and model-specific defaults are applied. Unlike `effective` (disk merge), these reflect what will actually be sent to the API.")}).describe("Effective merged settings plus raw per-source settings in merge order.")),MtQ=u0(()=>I.object({subtype:I.literal("elicitation"),mcp_server_name:I.string(),message:I.string(),mode:I.enum(["form","url"]).optional(),url:I.string().optional(),elicitation_id:I.string().optional(),requested_schema:I.record(I.string(),I.unknown()).optional()}).describe("Requests the SDK consumer to handle an MCP elicitation (user input request).")),vdJ=u0(()=>I.object({action:I.enum(["accept","decline","cancel"]),content:I.record(I.string(),I.unknown()).optional()}).describe("Response from the SDK consumer for an elicitation request.")),DtQ=u0(()=>I.union([QtQ(),XtQ(),JtQ(),ZtQ(),YtQ(),qtQ(),KtQ(),GtQ(),FtQ(),OtQ(),HtQ(),BtQ(),UtQ(),_tQ(),LtQ(),NtQ(),VtQ(),wtQ(),AtQ(),RtQ(),MtQ()])),CY8=u0(()=>I.object({type:I.literal("control_request"),request_id:I.string(),request:DtQ()})),$tQ=u0(()=>I.object({subtype:I.literal("success"),request_id:I.string(),response:I.record(I.string(),I.unknown()).optional()})),jtQ=u0(()=>I.object({subtype:I.literal("error"),request_id:I.string(),error:I.string(),pending_permission_requests:I.array(I.lazy(()=>CY8())).optional()})),fdJ=u0(()=>I.object({type:I.literal("control_response"),response:I.union([$tQ(),jtQ()])})),ItQ=u0(()=>I.object({type:I.literal("control_cancel_request"),request_id:I.string()}).describe("Cancels a currently open control request.")),SdJ=u0(()=>I.object({type:I.literal("keep_alive")}).describe("Keep-alive message to maintain WebSocket connection.")),ytQ=u0(()=>I.object({type:I.literal("update_environment_variables"),variables:I.record(I.string(),I.string())}).describe("Updates environment variables at runtime.")),ys5=u0(()=>I.union([VI8(),OI8(),_I8(),NI8(),fdJ(),CY8(),ItQ(),SdJ()])),Ps5=u0(()=>I.union([xO1(),CY8(),fdJ(),SdJ(),ytQ()]))});function eq0(J,Q,X,Z){let Y={type:"permissionPromptTool",permissionPromptToolName:Q.name,toolResult:J};if(J.behavior==="allow"){let q=J.updatedPermissions;if(q)Z.setAppState((G)=>({...G,toolPermissionContext:gO(G.toolPermissionContext,q)})),MD(q);let K=Object.keys(J.updatedInput).length>0?J.updatedInput:X;return{...J,updatedInput:K,decisionReason:Y}}else if(J.behavior==="deny"&&J.interrupt)y(`SDK permission prompt deny+interrupt: tool=${Q.name} message=${J.message}`),Z.abortController.abort();return{...J,decisionReason:Y}}var Ss5,kdJ,PtQ,btQ,I$0;var TY8=j(()=>{A6();Y1();wK();ve0();Ss5=u0(()=>a6.object({tool_name:a6.string().describe("The name of the tool requesting permission"),input:a6.record(a6.string(),a6.unknown()).describe("The input for the tool"),tool_use_id:a6.string().optional().describe("The unique tool use request ID")})),kdJ=u0(()=>a6.enum(["user_temporary","user_permanent","user_reject"]).optional().catch(void 0)),PtQ=u0(()=>a6.object({behavior:a6.literal("allow"),updatedInput:a6.record(a6.string(),a6.unknown()),updatedPermissions:a6.array(gZ0()).optional().catch((J)=>{y(`Malformed updatedPermissions from SDK host ignored: ${J.error.issues[0]?.message??"unknown"}`,{level:"warn"});return}),toolUseID:a6.string().optional(),decisionClassification:kdJ()})),btQ=u0(()=>a6.object({behavior:a6.literal("deny"),message:a6.string(),interrupt:a6.boolean().optional(),toolUseID:a6.string().optional(),decisionClassification:kdJ()})),I$0=u0(()=>a6.union([PtQ(),btQ()]))});function CtQ(J){return J.replace(EtQ,(Q)=>Q==="\u2028"?"\\u2028":"\\u2029")}function JY1(J){return CtQ(d0(J))}var EtQ;var vY8=j(()=>{i1();EtQ=/\u2028|\u2029/g});import{randomUUID as fY8}from"crypto";function ftQ(J){if(!J)return;switch(J.type){case"rule":case"mode":case"subcommandResults":case"permissionPromptTool":return;case"hook":case"asyncAgent":case"sandboxOverride":case"workingDir":case"safetyCheck":case"other":return J.reason}}function StQ(J,Q,X,Z){let Y;try{Y=J.getActivityDescription?.(Q)??J.getToolUseSummary?.(Q)??J.userFacingName(Q)}catch{Y=J.name}return{tool_name:J.name,action_description:Y,tool_use_id:X,request_id:Z,input:Q}}class y$0{input;replayUserMessages;structuredInput;pendingRequests=new Map;restoredWorkerState=Promise.resolve(null);inputClosed=!1;unexpectedResponseCallback;resolvedToolUseIds=new Set;prependedLines=[];onControlRequestSent;onControlRequestResolved;outbound=new gA0;constructor(J,Q){this.input=J;this.replayUserMessages=Q;this.input=J,this.structuredInput=this.read()}trackResolvedToolUseId(J){if(J.request.subtype==="can_use_tool"){if(this.resolvedToolUseIds.add(J.request.tool_use_id),this.resolvedToolUseIds.size>xtQ){let Q=this.resolvedToolUseIds.values().next().value;if(Q!==void 0)this.resolvedToolUseIds.delete(Q)}}}flushInternalEvents(){return Promise.resolve()}get internalEventsPending(){return 0}prependUserMessage(J){this.prependedLines.push(d0({type:"user",session_id:"",message:{role:"user",content:J},parent_tool_use_id:null})+`
7378
7378
  `)}async*read(){let J="",Q=async function*(){for(;;){if(this.prependedLines.length>0)J=this.prependedLines.join("")+J,this.prependedLines=[];let X=J.indexOf(`
7379
7379
  `);if(X===-1)break;let Z=J.slice(0,X);J=J.slice(X+1);let Y=await this.processLine(Z);if(Y)u1("info","cli_stdin_message_parsed",{type:Y.type}),yield Y}}.bind(this);yield*Q();for await(let X of this.input)J+=X,yield*Q();if(J){let X=await this.processLine(J);if(X)yield X}this.inputClosed=!0;for(let X of this.pendingRequests.values())X.reject(Error("Tool permission stream closed before response received"))}getPendingPermissionRequests(){return Array.from(this.pendingRequests.values()).map((J)=>J.request).filter((J)=>J.request.subtype==="can_use_tool")}setUnexpectedResponseCallback(J){this.unexpectedResponseCallback=J}injectControlResponse(J){let Q=J.response?.request_id;if(!Q)return;let X=this.pendingRequests.get(Q);if(!X)return;if(this.trackResolvedToolUseId(X.request),this.pendingRequests.delete(Q),this.write({type:"control_cancel_request",request_id:Q}),J.response.subtype==="error")X.reject(Error(J.response.error));else{let Z=J.response.response;if(X.schema)try{X.resolve(X.schema.parse(Z))}catch(Y){X.reject(Y)}else X.resolve({})}}setOnControlRequestSent(J){this.onControlRequestSent=J}setOnControlRequestResolved(J){this.onControlRequestResolved=J}async processLine(J){if(!J)return;try{let Q=AZ1(g1(J));if(Q.type==="keep_alive")return;if(Q.type==="update_environment_variables"){let X=Object.keys(Q.variables);for(let[Z,Y]of Object.entries(Q.variables))process.env[Z]=Y;y(`[structuredIO] applied update_environment_variables: ${X.join(", ")}`);return}if(Q.type==="control_response"){let X="uuid"in Q&&typeof Q.uuid==="string"?Q.uuid:void 0;if(X)Fy(X,"completed");let Z=this.pendingRequests.get(Q.response.request_id);if(!Z){let K=(Q.response.subtype==="success"?Q.response.response:void 0)?.toolUseID;if(typeof K==="string"&&this.resolvedToolUseIds.has(K)){y(`Ignoring duplicate control_response for already-resolved toolUseID=${K} request_id=${Q.response.request_id}`);return}if(this.unexpectedResponseCallback)await this.unexpectedResponseCallback(Q);return}if(this.trackResolvedToolUseId(Z.request),this.pendingRequests.delete(Q.response.request_id),Z.request.request.subtype==="can_use_tool"&&this.onControlRequestResolved)this.onControlRequestResolved(Q.response.request_id);if(Q.response.subtype==="error"){Z.reject(Error(Q.response.error));return}let Y=Q.response.response;if(Z.schema)try{Z.resolve(Z.schema.parse(Y))}catch(q){Z.reject(q)}else Z.resolve({});if(this.replayUserMessages)return Q;return}if(Q.type!=="user"&&Q.type!=="control_request"&&Q.type!=="assistant"&&Q.type!=="system"){y(`Ignoring unknown message type: ${Q.type}`,{level:"warn"});return}if(Q.type==="control_request"){if(!Q.request)hdJ("Error: Missing request on control_request");return Q}if(Q.type==="assistant"||Q.type==="system")return Q;if(Q.message.role!=="user")hdJ(`Error: Expected message role 'user', got '${Q.message.role}'`);return Q}catch(Q){console.error(`Error parsing streaming input line: ${J}: ${Q}`),process.exit(1)}}async write(J){QO(JY1(J)+`
7380
- `)}async sendRequest(J,Q,X,Z=fY8()){let Y={type:"control_request",request_id:Z,request:J};if(this.inputClosed)throw Error("Stream closed");if(X?.aborted)throw Error("Request aborted");if(this.outbound.enqueue(Y),J.subtype==="can_use_tool"&&this.onControlRequestSent)this.onControlRequestSent(Y);let q=()=>{this.outbound.enqueue({type:"control_cancel_request",request_id:Z});let K=this.pendingRequests.get(Z);if(K)this.trackResolvedToolUseId(K.request),K.reject(new IZ)};if(X)X.addEventListener("abort",q,{once:!0});try{return await new Promise((K,G)=>{this.pendingRequests.set(Z,{request:{type:"control_request",request_id:Z,request:J},resolve:(z)=>{K(z)},reject:G,schema:Q})})}finally{if(X)X.removeEventListener("abort",q);this.pendingRequests.delete(Z)}}createCanUseTool(J){return async(Q,X,Z,Y,q,K)=>{let G=K??await P3(Q,X,Z,Y,q);if(G.behavior==="allow"||G.behavior==="deny")return G;let z=new AbortController,W=Z.abortController.signal,H=()=>z.abort();W.addEventListener("abort",H,{once:!0});try{let B=ktQ(Q.name,q,X,Z,G.suggestions).then((_)=>({source:"hook",decision:_})),U=fY8();J?.(StQ(Q,X,q,U));let F=this.sendRequest({subtype:"can_use_tool",tool_name:Q.name,input:X,permission_suggestions:G.suggestions,blocked_path:G.blockedPath,decision_reason:ftQ(G.decisionReason),tool_use_id:q,agent_id:Z.agentId},I$0(),z.signal,U).then((_)=>({source:"sdk",result:_})),O=await Promise.race([B,F]);if(O.source==="hook"){if(O.decision)return F.catch(()=>{}),z.abort(),O.decision;let _=await F;return eq0(_.result,Q,X,Z)}return eq0(O.result,Q,X,Z)}catch(B){return eq0({behavior:"deny",message:`Tool permission request failed: ${B}`,toolUseID:q},Q,X,Z)}finally{if(this.getPendingPermissionRequests().length===0)Oq0("running");W.removeEventListener("abort",H)}}}createHookCallback(J,Q){return{type:"callback",timeout:Q,callback:async(X,Z,Y)=>{try{return await this.sendRequest({subtype:"hook_callback",callback_id:J,input:X,tool_use_id:Z||void 0},Wq0(),Y)}catch(q){return console.error(`Error in hook callback ${J}:`,q),{}}}}}async handleElicitation(J,Q,X,Z,Y,q,K){try{return await this.sendRequest({subtype:"elicitation",mcp_server_name:J,message:Q,mode:Y,url:q,elicitation_id:K,requested_schema:X},vdJ(),Z)}catch{return{action:"cancel"}}}createSandboxAskCallback(){return async(J)=>{try{return(await this.sendRequest({subtype:"can_use_tool",tool_name:vtQ,input:{host:J.host},tool_use_id:fY8(),description:`Allow network connection to ${J.host}?`},I$0())).behavior==="allow"}catch{return!1}}}async sendMcpMessage(J,Q){return(await this.sendRequest({subtype:"mcp_message",server_name:J,message:Q},I.object({mcp_response:I.any()}))).mcp_response}}function hdJ(J){console.error(J),process.exit(1)}async function ktQ(J,Q,X,Z,Y){let K=Z.getAppState().toolPermissionContext.mode,G=Ho(J,Q,X,Z,K,Y,Z.abortController.signal);for await(let z of G)if(z.permissionRequestResult&&(z.permissionRequestResult.behavior==="allow"||z.permissionRequestResult.behavior==="deny")){let W=z.permissionRequestResult;if(W.behavior==="allow"){let H=W.updatedInput||X,B=W.updatedPermissions??[];if(B.length>0){MD(B);let U=Z.getAppState(),F=gO(U.toolPermissionContext,B);Z.setAppState((O)=>{if(O.toolPermissionContext===F)return O;return{...O,toolPermissionContext:F}})}return{behavior:"allow",updatedInput:H,userModified:!1,decisionReason:{type:"hook",hookName:"PermissionRequest"}}}else return{behavior:"deny",message:W.message||"Permission denied by PermissionRequest hook",decisionReason:{type:"hook",hookName:"PermissionRequest"}}}return}var vtQ="SandboxNetworkAccess",xtQ=1000;var QY1=j(()=>{xdJ();LQ8();Y1();cZ();D1();TY8();AK();i1();A6();xY();wK();PD0();i1();ds1();vY8()});function udJ(J,Q,X){let Z=XY1.useRef(!1);XY1.useEffect(()=>{if(!_Y()||Z.current)return;if(Z.current=!0,J)Ns0(J,X)},[Q,J,X])}var XY1;var gdJ=j(()=>{Q_();XY1=E(X1(),1)});function SY8(J){let Q=mdJ.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=eF0(),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:k_.jsxDEV(M,{children:["Yes, and don't ask again for ",k_.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:k_.jsxDEV(M,{children:["No, and tell Glock what to do differently ",k_.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,O;if(Q[9]===Symbol.for("react.memo_cache_sentinel"))O=k_.jsxDEV(M,{dimColor:!0,children:"Host:"},void 0,!1,void 0,this),Q[9]=O;else O=Q[9];let _;if(Q[10]!==Y)_=k_.jsxDEV(f,{children:[O,k_.jsxDEV(M,{children:[" ",Y]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),Q[10]=Y,Q[11]=_;else _=Q[11];let L;if(Q[12]===Symbol.for("react.memo_cache_sentinel"))L=k_.jsxDEV(f,{marginTop:1,children:k_.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 V;if(Q[13]!==Z)V=()=>{Z({allow:!1,persistToSettings:!1})},Q[13]=Z,Q[14]=V;else V=Q[14];let A;if(Q[15]!==K||Q[16]!==F||Q[17]!==V)A=k_.jsxDEV(f,{children:k_.jsxDEV(Y8,{options:F,onChange:K,onCancel:V},void 0,!1,void 0,this)},void 0,!1,void 0,this),Q[15]=K,Q[16]=F,Q[17]=V,Q[18]=A;else A=Q[18];let R;if(Q[19]!==A||Q[20]!==_)R=k_.jsxDEV(GZ,{title:"Network request outside of sandbox",children:k_.jsxDEV(f,{flexDirection:"column",paddingX:2,paddingY:1,children:[_,L,A]},void 0,!0,void 0,this)},void 0,!1,void 0,this),Q[19]=A,Q[20]=_,Q[21]=R;else R=Q[21];return R}var mdJ,k_;var pdJ=j(()=>{t0();zY();ZQ();m3();mdJ=E(Z1(),1),k_=E(t(),1)});function htQ(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 xY8(){let J=cdJ.c(15),Q;if(J[0]===Symbol.for("react.memo_cache_sentinel"))Q=[],J[0]=Q;else Q=J[0];let[X,Z]=P$0.useState(Q),[Y,q]=P$0.useState(0),K,G;if(J[1]===Symbol.for("react.memo_cache_sentinel"))K=()=>{let O=p8.getSandboxViolationStore();return O.subscribe((L)=>{Z(L.slice(-10)),q(O.getTotalCount())})},G=[],J[1]=K,J[2]=G;else K=J[1],G=J[2];if(P$0.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=bp.jsxDEV(f,{marginLeft:0,children:bp.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(utQ),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=bp.jsxDEV(f,{paddingLeft:2,children:bp.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=bp.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 utQ(J,Q){return bp.jsxDEV(f,{paddingLeft:2,children:bp.jsxDEV(M,{dimColor:!0,children:[htQ(J.timestamp),J.command?` ${J.command}:`:""," ",J.line]},void 0,!0,void 0,this)},`${J.timestamp.getTime()}-${Q}`,!1,void 0,this)}var cdJ,P$0,bp;var ddJ=j(()=>{t0();zY();x9();cdJ=E(Z1(),1),P$0=E(X1(),1),bp=E(t(),1)});function ndJ(){let J=idJ.c(6),{addNotification:Q,removeNotification:X}=w9(),[Z,Y]=ZY1.useState(gtQ),q;if(J[0]===Symbol.for("react.memo_cache_sentinel"))q=()=>{let{errors:W}=av();Y(W)},J[0]=q;else q=J[0];Q90(q);let G,z;if(J[1]!==Q||J[2]!==Z||J[3]!==X)G=()=>{if(a9())return;if(Z.length>0){let W=`Found ${Z.length} settings ${Z.length===1?"issue":"issues"} \xB7 /doctor for details`;Q({key:ldJ,text:W,color:"warning",priority:"high",timeoutMs:60000})}else X(ldJ)},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 ZY1.useEffect(G,z),Z}function gtQ(){let{errors:J}=av();return J}var idJ,ZY1,ldJ="settings-errors";var rdJ=j(()=>{mY();w1();lR0();Fp0();idJ=E(Z1(),1),ZY1=E(X1(),1)});function sdJ(J){let Q=adJ.c(4),{mcpClients:X}=J,Z=X===void 0?mtQ:X,{addNotification:Y}=w9(),q,K;if(Q[0]!==Y||Q[1]!==Z)q=()=>{if(a9())return;let G=Z.filter(ltQ),z=Z.filter(dtQ),W=Z.filter(ctQ),H=Z.filter(ptQ);if(G.length===0&&z.length===0&&W.length===0&&H.length===0)return;if(G.length>0)Y({key:"mcp-failed",jsx:QH.jsxDEV(QH.Fragment,{children:[QH.jsxDEV(M,{color:"error",children:[G.length," MCP"," ",G.length===1?"server":"servers"," failed"]},void 0,!0,void 0,this),QH.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:QH.jsxDEV(QH.Fragment,{children:[QH.jsxDEV(M,{color:"error",children:[z.length," glock"," ",z.length===1?"connector":"connectors"," ","unavailable"]},void 0,!0,void 0,this),QH.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:QH.jsxDEV(QH.Fragment,{children:[QH.jsxDEV(M,{color:"warning",children:[W.length," MCP"," ",W.length===1?"server needs":"servers need"," ","auth"]},void 0,!0,void 0,this),QH.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:QH.jsxDEV(QH.Fragment,{children:[QH.jsxDEV(M,{color:"warning",children:[H.length," glock"," ",H.length===1?"connector needs":"connectors need"," ","auth"]},void 0,!0,void 0,this),QH.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];odJ.useEffect(q,K)}function ptQ(J){return J.type==="needs-auth"&&J.config.type==="glockai-proxy"&&Gd1(J.name)}function ctQ(J){return J.type==="needs-auth"&&J.config.type!=="glockai-proxy"}function dtQ(J){return J.type==="failed"&&J.config.type==="glockai-proxy"&&Gd1(J.name)}function ltQ(J){return J.type==="failed"&&J.config.type!=="sse-ide"&&J.config.type!=="ws-ide"&&J.config.type!=="glockai-proxy"}var adJ,odJ,QH,mtQ;var tdJ=j(()=>{mY();w1();t0();UX0();adJ=E(Z1(),1),odJ=E(X1(),1),QH=E(t(),1),mtQ=[]});function edJ(){let{addNotification:J}=w9(),Q=H1((q)=>q.toolPermissionContext.mode),X=H1((q)=>q.toolPermissionContext.isAutoModeAvailable),Z=b$0.useRef(!1),Y=b$0.useRef(Q);b$0.useEffect(()=>{let q=Y.current;Y.current=Q;return},[Q,X,J])}var b$0;var JlJ=j(()=>{mY();w1();K6();_W();v8();b$0=E(X1(),1)});function XlJ(){let J=QlJ.c(10),{addNotification:Q}=w9(),X=M6(),[Z,Y]=QK0.useState(rtQ),q;if(J[0]===Symbol.for("react.memo_cache_sentinel"))q=new Set,J[0]=q;else q=J[0];let K=QK0.useRef(q),G;if(J[1]!==Q||J[2]!==X)G=(F,O)=>{let _=`${F}:${O}`;if(K.current.has(_))return;K.current.add(_),y(`LSP error: ${F} - ${O}`),X((V)=>{let A=new Set(V.plugins.errors.map(ntQ)),R=`generic-error:${F}:${O}`;if(A.has(R))return V;return{...V,plugins:{...V.plugins,errors:[...V.plugins.errors,{type:"generic-error",source:F,error:O}]}}});let L=F.startsWith("plugin:")?F.split(":")[1]??F:F;Q({key:`lsp-error-${F}`,jsx:JK0.jsxDEV(JK0.Fragment,{children:[JK0.jsxDEV(M,{color:"error",children:["LSP for ",L," failed"]},void 0,!0,void 0,this),JK0.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(a9())return;if(vc())return;let F=fX0();if(F.status==="failed"){z("lsp-manager",F.error.message),Y(!1);return}if(F.status==="pending"||F.status==="not-started")return;let O=nT();if(O){let _=O.getAllServers();for(let[L,V]of _)if(V.state==="error"&&V.lastError)z(L,V.lastError.message)}},J[4]=z,J[5]=W;else W=J[5];let H=W;R3(H,Z?itQ:null);let B,U;if(J[6]!==H||J[7]!==Z)B=()=>{if(a9()||!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];QK0.useEffect(B,U)}function ntQ(J){if(J.type==="generic-error")return`generic-error:${J.source}:${J.error}`;return`${J.type}:${J.source}`}function rtQ(){return r0("true")}var QlJ,QK0,JK0,itQ=5000;var ZlJ=j(()=>{MO();w1();mY();t0();Ey();K6();Y1();S1();QlJ=E(Z1(),1),QK0=E(X1(),1),JK0=E(t(),1)});async function qlJ(J){if(!J||!J.trim())return y("[binaryCheck] Empty command provided, returning false"),!1;let Q=J.trim(),X=YlJ.get(Q);if(X!==void 0)return y(`[binaryCheck] Cache hit for '${Q}': ${X}`),X;let Z=!1;if(await sz(Q).catch(()=>null))Z=!0;return YlJ.set(Q,Z),y(`[binaryCheck] Binary '${Q}' ${Z?"found":"not found"}`),Z}var YlJ;var KlJ=j(()=>{Y1();tV();YlJ=new Map});import{extname as atQ}from"path";function stQ(J){return LM.has(J.toLowerCase())}function ttQ(J){if(!J)return null;if(typeof J==="string")return y("[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=zlJ(Q);if(X)return X}return null}return zlJ(J)}function GlJ(J){return typeof J==="object"&&J!==null}function zlJ(J){let Q=new Set,X=null;for(let[Z,Y]of Object.entries(J)){if(!GlJ(Y))continue;if(!X&&typeof Y.command==="string")X=Y.command;let q=Y.extensionToLanguage;if(GlJ(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 etQ(){let J=new Map;try{let Q=await vZ();for(let X of Object.keys(Q))try{let Z=await sU(X),Y=stQ(X);for(let q of Z.plugins){if(!q.lspServers)continue;let K=ttQ(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){y(`[lspRecommendation] Failed to load marketplace ${X}: ${Z}`)}}catch(Q){y(`[lspRecommendation] Failed to load marketplaces config: ${Q}`)}return J}async function WlJ(J){if(JeQ())return y("[lspRecommendation] Recommendations are disabled"),[];let Q=atQ(J).toLowerCase();if(!Q)return y("[lspRecommendation] No file extension found"),[];y(`[lspRecommendation] Looking for LSP plugins for ${Q}`);let X=await etQ(),Y=B1().lspRecommendationNeverPlugins??[],q=[];for(let[G,z]of X){if(!z.extensions.has(Q))continue;if(Y.includes(G)){y(`[lspRecommendation] Skipping ${G} (in never suggest list)`);continue}if(tI(G)){y(`[lspRecommendation] Skipping ${G} (already installed)`);continue}q.push({info:z,pluginId:G})}let K=[];for(let{info:G,pluginId:z}of q)if(await qlJ(G.command))K.push({info:G,pluginId:z}),y(`[lspRecommendation] Binary '${G.command}' found for ${z}`);else y(`[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 HlJ(J){o1((Q)=>{let X=Q.lspRecommendationNeverPlugins??[];if(X.includes(J))return Q;return{...Q,lspRecommendationNeverPlugins:[...X,J]}}),y(`[lspRecommendation] Added ${J} to never suggest`)}function BlJ(){o1((J)=>{let Q=(J.lspRecommendationIgnoredCount??0)+1;return{...J,lspRecommendationIgnoredCount:Q}}),y("[lspRecommendation] Incremented ignored count")}function JeQ(){let J=B1();return J.lspRecommendationDisabled===!0||(J.lspRecommendationIgnoredCount??0)>=otQ}var otQ=5;var UlJ=j(()=>{KlJ();P8();Y1();y3();w5();ZU()});function qY1(){let J=FlJ.c(6),[Q,X]=YY1.useState(null),Z=YY1.useRef(!1),Y;if(J[0]!==Q)Y=(W)=>{if(a9())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 KY1(J,Q,X,Z,Y){try{let q=await fO(J);if(!q)throw Error(`Plugin ${J} not found in marketplace`);await Y(q),Z({key:`${X}-installed`,jsx:kY8.jsxDEV(M,{color:"success",children:[Q1.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:kY8.jsxDEV(M,{color:"error",children:["Failed to install ",Q]},void 0,!0,void 0,this),priority:"immediate",timeoutMs:5000})}}var FlJ,YY1,kY8;var hY8=j(()=>{i6();w1();t0();j1();w5();FlJ=E(Z1(),1),YY1=E(X1(),1),kY8=E(t(),1)});import{extname as QeQ,join as XeQ}from"path";function _lJ(){let J=OlJ.c(12),Q=H1(qeQ),{addNotification:X}=w9(),Z;if(J[0]===Symbol.for("react.memo_cache_sentinel"))Z=new Set,J[0]=Z;else Z=J[0];let Y=GY1.useRef(Z),{recommendation:q,clearRecommendation:K,tryResolve:G}=qY1(),z,W;if(J[1]!==Q||J[2]!==G)z=()=>{G(async()=>{if(uq1())return null;let F=[];for(let O of Q)if(!Y.current.has(O))Y.current.add(O),F.push(O);for(let O of F)try{let L=(await WlJ(O))[0];if(L)return y(`[useLspPluginRecommendation] Found match: ${L.pluginName} for ${O}`),gq1(!0),{pluginId:L.pluginId,pluginName:L.pluginName,pluginDescription:L.description,fileExtension:QeQ(O),shownAt:Date.now()}}catch(_){H0(_)}return null})},W=[Q,G],J[1]=Q,J[2]=G,J[3]=z,J[4]=W;else z=J[3],W=J[4];GY1.useEffect(z,W);let H;if(J[5]!==X||J[6]!==K||J[7]!==q)H=(F)=>{if(!q)return;let{pluginId:O,pluginName:_,shownAt:L}=q;y(`[useLspPluginRecommendation] User response: ${F} for ${_}`);J:switch(F){case"yes":{KY1(O,_,"lsp-plugin",X,async(V)=>{y(`[useLspPluginRecommendation] Installing plugin: ${O}`);let A=typeof V.entry.source==="string"?XeQ(V.marketplaceInstallLocation,V.entry.source):void 0;await wR0(O,V.entry,"user",void 0,A);let R=A8("userSettings");R6("userSettings",{enabledPlugins:{...R?.enabledPlugins,[O]:!0}}),y(`[useLspPluginRecommendation] Plugin installed: ${O}`)});break J}case"no":{let V=Date.now()-L;if(V>=ZeQ)y(`[useLspPluginRecommendation] Timeout detected (${V}ms), incrementing ignored count`),BlJ();break J}case"never":{HlJ(O);break J}case"disable":o1(YeQ)}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 YeQ(J){if(J.lspRecommendationDisabled)return J;return{...J,lspRecommendationDisabled:!0}}function qeQ(J){return J.fileHistory.trackedFiles}var OlJ,GY1,ZeQ=28000;var LlJ=j(()=>{w1();mY();K6();P8();Y1();j1();UlJ();zm();v8();hY8();OlJ=E(Z1(),1),GY1=E(X1(),1)});function NlJ({pluginName:J,pluginDescription:Q,fileExtension:X,onResponse:Z}){let Y=zY1.useRef(Z);Y.current=Z,zY1.useEffect(()=>{let G=setTimeout((z)=>z.current("no"),KeQ,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 gG.jsxDEV(GZ,{title:"LSP Plugin Recommendation",children:gG.jsxDEV(f,{flexDirection:"column",paddingX:2,paddingY:1,children:[gG.jsxDEV(f,{marginBottom:1,children:gG.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),gG.jsxDEV(f,{children:[gG.jsxDEV(M,{dimColor:!0,children:"Plugin:"},void 0,!1,void 0,this),gG.jsxDEV(M,{children:[" ",J]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),Q&&gG.jsxDEV(f,{children:gG.jsxDEV(M,{dimColor:!0,children:Q},void 0,!1,void 0,this)},void 0,!1,void 0,this),gG.jsxDEV(f,{children:[gG.jsxDEV(M,{dimColor:!0,children:"Triggered by:"},void 0,!1,void 0,this),gG.jsxDEV(M,{children:[" ",X," files"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),gG.jsxDEV(f,{marginTop:1,children:gG.jsxDEV(M,{children:"Would you like to install this LSP plugin?"},void 0,!1,void 0,this)},void 0,!1,void 0,this),gG.jsxDEV(f,{children:gG.jsxDEV(Y8,{options:[{label:gG.jsxDEV(M,{children:["Yes, install ",gG.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:gG.jsxDEV(M,{children:["Never for ",gG.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 zY1,gG,KeQ=30000;var VlJ=j(()=>{t0();ZQ();m3();zY1=E(X1(),1),gG=E(t(),1)});function AlJ(){let J=wlJ.c(11),Q=WY1.useSyncExternalStore(UI6,_h1),{addNotification:X}=w9(),{recommendation:Z,clearRecommendation:Y,tryResolve:q}=qY1(),K,G;if(J[0]!==Q||J[1]!==q)K=()=>{if(!Q)return;q(async()=>{let B=await _I6(Q);if(B)y(`[useGlockCodeHintRecommendation] surfacing ${B.pluginId} from ${B.sourceCommand}`),BI6();if(_h1()===Q)HI6();return B})},G=[Q,q],J[0]=Q,J[1]=q,J[2]=K,J[3]=G;else K=J[2],G=J[3];WY1.useEffect(K,G);let z;if(J[4]!==X||J[5]!==Y||J[6]!==Z)z=(B)=>{if(!Z)return;LI6(Z.pluginId),d("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:O}=Z;KY1(U,F,"hint-plugin",X,async(_)=>{let L=await Gm({pluginId:U,entry:_.entry,marketplaceName:O,scope:"user",trigger:"hint"});if(!L.success)throw Error(L.error)});break J}case"disable":{NI6();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 wlJ,WY1;var RlJ=j(()=>{mY();M1();w_0();Y1();wl0();zm();hY8();wlJ=E(Z1(),1),WY1=E(X1(),1)});function MlJ({pluginName:J,pluginDescription:Q,marketplaceName:X,sourceCommand:Z,onResponse:Y}){let q=HY1.useRef(Y);q.current=Y,HY1.useEffect(()=>{let z=setTimeout((W)=>W.current("no"),GeQ,q);return()=>clearTimeout(z)},[]);function K(z){switch(z){case"yes":Y("yes");break;case"disable":Y("disable");break;default:Y("no")}}return Sz.jsxDEV(GZ,{title:"Plugin Recommendation",children:Sz.jsxDEV(f,{flexDirection:"column",paddingX:2,paddingY:1,children:[Sz.jsxDEV(f,{marginBottom:1,children:Sz.jsxDEV(M,{dimColor:!0,children:["The ",Sz.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),Sz.jsxDEV(f,{children:[Sz.jsxDEV(M,{dimColor:!0,children:"Plugin:"},void 0,!1,void 0,this),Sz.jsxDEV(M,{children:[" ",J]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),Sz.jsxDEV(f,{children:[Sz.jsxDEV(M,{dimColor:!0,children:"Marketplace:"},void 0,!1,void 0,this),Sz.jsxDEV(M,{children:[" ",X]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),Q&&Sz.jsxDEV(f,{children:Sz.jsxDEV(M,{dimColor:!0,children:Q},void 0,!1,void 0,this)},void 0,!1,void 0,this),Sz.jsxDEV(f,{marginTop:1,children:Sz.jsxDEV(M,{children:"Would you like to install it?"},void 0,!1,void 0,this)},void 0,!1,void 0,this),Sz.jsxDEV(f,{children:Sz.jsxDEV(Y8,{options:[{label:Sz.jsxDEV(M,{children:["Yes, install ",Sz.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 HY1,Sz,GeQ=30000;var DlJ=j(()=>{t0();ZQ();m3();HY1=E(X1(),1),Sz=E(t(),1)});function IlJ(){let J=$lJ.c(20),{addNotification:Q}=w9(),X=H1(HeQ),Z;J:{if(!X){let _;if(J[0]===Symbol.for("react.memo_cache_sentinel"))_={totalFailed:0,failedMarketplacesCount:0,failedPluginsCount:0},J[0]=_;else _=J[0];Z=_;break J}let W;if(J[1]!==X.marketplaces)W=X.marketplaces.filter(WeQ),J[1]=X.marketplaces,J[2]=W;else W=J[2];let H=W,B;if(J[3]!==X.plugins)B=X.plugins.filter(zeQ),J[3]=X.plugins,J[4]=B;else B=J[4];let U=B,F=H.length+U.length,O;if(J[5]!==H.length||J[6]!==U.length||J[7]!==F)O={totalFailed:F,failedMarketplacesCount:H.length,failedPluginsCount:U.length},J[5]=H.length,J[6]=U.length,J[7]=F,J[8]=O;else O=J[8];Z=O}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(a9())return;if(!X){y("No installation status to monitor");return}if(Y===0)return;if(y(`Plugin installation status: ${q} failed marketplaces, ${K} failed plugins`),Y===0)return;y(`Adding notification for ${Y} failed installations`),Q({key:"plugin-install-failed",jsx:XK0.jsxDEV(XK0.Fragment,{children:[XK0.jsxDEV(M,{color:"error",children:[Y," ",t8(Y,"plugin")," failed to install"]},void 0,!0,void 0,this),XK0.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];jlJ.useEffect(G,z)}function zeQ(J){return J.status==="failed"}function WeQ(J){return J.status==="failed"}function HeQ(J){return J.plugins.installationStatus}var $lJ,jlJ,XK0;var ylJ=j(()=>{w1();mY();t0();K6();Y1();$lJ=E(Z1(),1),jlJ=E(X1(),1),XK0=E(t(),1)});function blJ(){let J=PlJ.c(7),{addNotification:Q}=w9(),X;if(J[0]===Symbol.for("react.memo_cache_sentinel"))X=[],J[0]=X;else X=J[0];let[Z,Y]=E$0.useState(X),q,K;if(J[1]===Symbol.for("react.memo_cache_sentinel"))q=()=>{if(a9())return;return KVJ((H)=>{y(`Plugin autoupdate notification: ${H.length} plugin(s) updated`),Y(H)})},K=[],J[1]=q,J[2]=K;else q=J[1],K=J[2];E$0.useEffect(q,K);let G,z;if(J[3]!==Q||J[4]!==Z)G=()=>{if(a9())return;if(Z.length===0)return;let W=Z.map(BeQ),H=W.length<=2?W.join(" and "):`${W.length} plugins`;Q({key:"plugin-autoupdate-restart",jsx:ZK0.jsxDEV(ZK0.Fragment,{children:[ZK0.jsxDEV(M,{color:"success",children:[W.length===1?"Plugin":"Plugins"," updated:"," ",H]},void 0,!0,void 0,this),ZK0.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}),y(`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];E$0.useEffect(G,z)}function BeQ(J){let Q=J.indexOf("@");return Q>0?J.substring(0,Q):J}var PlJ,E$0,ZK0;var ElJ=j(()=>{w1();mY();t0();Y1();k91();PlJ=E(Z1(),1),E$0=E(X1(),1),ZK0=E(t(),1)});import{isAbsolute as UeQ,resolve as FeQ}from"path";function uY8(J,Q,X){let Z=[],Y=[],q=[];for(let[K,G]of Object.entries(J)){let z=Q[K],W=ClJ(G.source,X?.projectRoot);if(!z)Z.push(K);else if(G.sourceIsFallback)q.push(K);else if(!Pw(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 BY1(J){let Q=Ym();if(Object.keys(Q).length===0)return{installed:[],updated:[],failed:[],upToDate:[],skipped:[]};let X;try{X=await vZ()}catch(H){H0(H),X={}}let Z=uY8(Q,X,{projectRoot:b8()}),Y=[...Z.missing.map((H)=>({name:H,source:ClJ(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"&&mj(H.source)&&!await W7(H.source.path)){y(`[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};y(`[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 O=await Km(U);if(F==="install")G.push(B);else z.push(B);J?.onProgress?.({type:"installed",name:B,alreadyMaterialized:O.alreadyMaterialized})}catch(O){let _=a0(O);W.push({name:B,error:_}),J?.onProgress?.({type:"failed",name:B,error:_}),H0(O)}}return{installed:G,updated:z,failed:W,upToDate:Z.upToDate,skipped:q}}function ClJ(J,Q){if((J.source==="directory"||J.source==="file")&&!UeQ(J.path)){let X=Q??b8(),Z=YK(X);return{...J,path:FeQ(Z??X,J.path)}}return J}var gY8=j(()=>{M60();w1();Y1();D1();_9();l7();j1();w5();ZU()});function mY8(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 TlJ(J){y("performBackgroundPluginInstallations called");try{let Q=Ym(),X=await vZ().catch(()=>({})),Z=uY8(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;y(`Installing ${Y.length} marketplace(s) in background`);let q=await BY1({onProgress:(G)=>{switch(G.type){case"installing":mY8(J,G.name,"installing");break;case"installed":mY8(J,G.name,"installed");break;case"failed":mY8(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(d("jarvis_api_error",K),u1("info","jarvis_api_error",K),q.installed.length>0){WP(),y(`Auto-refreshing plugins after ${q.installed.length} new marketplace(s) installed`);try{await ro(J)}catch(G){H0(G),y(`Auto-refresh failed, falling back to needsRefresh: ${G}`,{level:"warn"}),_F("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)WP(),_F("performBackgroundPluginInstallations: marketplaces reconciled"),J((G)=>{if(G.plugins.needsRefresh)return G;return{...G,plugins:{...G.plugins,needsRefresh:!0}}})}catch(Q){H0(Q)}}var vlJ=j(()=>{Y1();cZ();j1();w5();VK();gY8();FQ1();M1()});async function flJ(J){if(y("performStartupChecks called"),!zK()){y("Trust not accepted for current directory - skipping plugin installations");return}try{if(y("Starting background plugin installations"),await H61())WP(),_F("performStartupChecks: seed marketplaces changed"),J((X)=>{if(X.plugins.needsRefresh)return X;return{...X,plugins:{...X.plugins,needsRefresh:!0}}});await TlJ(J)}catch(Q){y(`Error initiating background plugin installations: ${Q}`)}}var SlJ=j(()=>{vlJ();P8();Y1();w5();VK()});function klJ(){let J=xlJ.c(11),Q;if(J[0]===Symbol.for("react.memo_cache_sentinel"))Q=U3.getInstance().getStatus(),J[0]=Q;else Q=J[0];let[X,Z]=UY1.useState(Q),Y,q;if(J[1]===Symbol.for("react.memo_cache_sentinel"))Y=()=>{return U3.getInstance().subscribe(Z)},q=[],J[1]=Y,J[2]=q;else Y=J[1],q=J[2];if(UY1.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=kf.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&&kf.jsxDEV(f,{flexDirection:"column",marginTop:1,children:X.output.slice(-5).map(_eQ)},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&&kf.jsxDEV(f,{marginTop:1,children:kf.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=kf.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 _eQ(J,Q){let X=J.match(OeQ);if(!X)return kf.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 kf.jsxDEV(M,{dimColor:!0,children:[q,kf.jsxDEV(HJ,{url:Z,children:Z},void 0,!1,void 0,this),K]},Q,!0,void 0,this)}var xlJ,UY1,kf,OeQ;var hlJ=j(()=>{t0();Vu0();xlJ=E(Z1(),1),UY1=E(X1(),1),kf=E(t(),1),OeQ=/https?:\/\/\S+/});function NeQ(J){let Q=J.toLowerCase(),X=N6();for(let[Z,Y]of Object.entries(LeQ)){let q=Y.retirementDates[X];if(!Q.includes(Z)||!q)continue;return{isDeprecated:!0,modelName:Y.modelName,retirementDate:q}}return{isDeprecated:!1}}function FY1(J){if(!J)return null;let Q=NeQ(J);if(!Q.isDeprecated)return null;return`\u26A0 ${Q.modelName} will be retired on ${Q.retirementDate}. Consider switching to a newer model.`}var LeQ;var pY8=j(()=>{KY();LeQ={"claude-3-opus":{modelName:"Glock 3 Opus",retirementDates:{firstParty:"January 5, 2026",bedrock:"January 15, 2026",vertex:"January 5, 2026",foundry:"January 5, 2026"}},"claude-3-7-sonnet":{modelName:"Glock 3.7 Sonnet",retirementDates:{firstParty:"February 19, 2026",bedrock:"April 28, 2026",vertex:"May 11, 2026",foundry:"February 19, 2026"}},"claude-3-5-haiku":{modelName:"Glock 3.5 Haiku",retirementDates:{firstParty:"February 19, 2026",bedrock:null,vertex:null,foundry:null}}}});function glJ(J){let Q=ulJ.c(4),{addNotification:X}=w9(),Z=OY1.useRef(null),Y,q;if(Q[0]!==X||Q[1]!==J)Y=()=>{if(a9())return;let K=FY1(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];OY1.useEffect(Y,q)}var ulJ,OY1;var mlJ=j(()=>{mY();pY8();w1();ulJ=E(Z1(),1),OY1=E(X1(),1)});function plJ(){Pp(weQ)}async function weQ(){if(K3()||r0(process.env.DISABLE_INSTALLATION_CHECKS))return null;if(await lv()==="development")return null;return{timeoutMs:15000,key:"npm-deprecation-warning",text:VeQ,color:"warning",priority:"high"}}var VeQ="Glock has switched from npm to native installer. Run `glock install` or see https://docs.getglock.dev/getting-started for more options.";var clJ=j(()=>{i40();S1();D$0()});function llJ(J){let Q=dlJ.c(26),{ideSelection:X,mcpClients:Z,ideInstallationStatus:Y}=J,{addNotification:q,removeNotification:K}=w9(),{status:G,ideName:z}=Cq0(Z),W=hs.useRef(!1),H;if(Q[0]!==Y)H=Y?gD(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),O=G==="connected"&&!F,_=U&&!B&&!O&&!F,L=U&&B&&!O&&!F,V,A;if(Q[2]!==q||Q[3]!==G||Q[4]!==K||Q[5]!==L)V=()=>{if(a9())return;if(yW()||G!==null||L){K("ide-status-hint");return}if(W.current||(B1().ideHintShownCount??0)>=AeQ)return;let T=setTimeout(ReQ,3000,W,q);return()=>clearTimeout(T)},A=[q,K,G,L],Q[2]=q,Q[3]=G,Q[4]=K,Q[5]=L,Q[6]=V,Q[7]=A;else V=Q[6],A=Q[7];hs.useEffect(V,A);let R,D;if(Q[8]!==q||Q[9]!==z||Q[10]!==G||Q[11]!==K||Q[12]!==_||Q[13]!==L)R=()=>{if(a9())return;if(_||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,_,L],Q[8]=q,Q[9]=z,Q[10]=G,Q[11]=K,Q[12]=_,Q[13]=L,Q[14]=R,Q[15]=D;else R=Q[14],D=Q[15];hs.useEffect(R,D);let $,P;if(Q[16]!==q||Q[17]!==K||Q[18]!==L)$=()=>{if(a9())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"})},P=[q,K,L],Q[16]=q,Q[17]=K,Q[18]=L,Q[19]=$,Q[20]=P;else $=Q[19],P=Q[20];hs.useEffect($,P);let v,b;if(Q[21]!==q||Q[22]!==K||Q[23]!==_)v=()=>{if(a9())return;if(!_){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"})},b=[q,K,_],Q[21]=q,Q[22]=K,Q[23]=_,Q[24]=v,Q[25]=b;else v=Q[24],b=Q[25];hs.useEffect(v,b)}function ReQ(J,Q){$X0(!0).then((X)=>{let Z=X[0]?.name;if(Z&&!J.current)J.current=!0,o1(MeQ),Q({key:"ide-status-hint",jsx:cY8.jsxDEV(M,{dimColor:!0,children:["/ide for ",cY8.jsxDEV(M,{color:"ide",children:Z},void 0,!1,void 0,this)]},void 0,!0,void 0,this),priority:"low"})})}function MeQ(J){return{...J,ideHintShownCount:(J.ideHintShownCount??0)+1}}var dlJ,hs,cY8,AeQ=5;var ilJ=j(()=>{mY();t0();P8();a5();w1();fX1();dlJ=E(Z1(),1),hs=E(X1(),1),cY8=E(t(),1)});function nlJ(J){if(!("text"in J))return 1;let Q=J.text.match(/^(\d+)/);return Q?.[1]?parseInt(Q[1],10):1}function DeQ(J,Q){return rlJ(nlJ(J)+1)}function rlJ(J){return{key:"teammate-spawn",text:J===1?"1 agent spawned":`${J} agents spawned`,priority:"low",timeoutMs:5000,fold:DeQ}}function $eQ(J,Q){return alJ(nlJ(J)+1)}function alJ(J){return{key:"teammate-shutdown",text:J===1?"1 agent shut down":`${J} agents shut down`,priority:"low",timeoutMs:5000,fold:$eQ}}function olJ(){let J=H1((Y)=>Y.tasks),{addNotification:Q}=w9(),X=C$0.useRef(new Set),Z=C$0.useRef(new Set);C$0.useEffect(()=>{if(a9())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(rlJ(1));if(q.status==="completed"&&!Z.current.has(Y))Z.current.add(Y),Q(alJ(1))}},[J,Q])}var C$0;var slJ=j(()=>{w1();mY();K6();C$0=E(X1(),1)});function XiJ(){let J=QiJ.c(13),{addNotification:Q}=w9(),X=H1(PeQ),Z=M6(),Y,q;if(J[0]!==Q||J[1]!==X||J[2]!==Z)Y=()=>{if(a9())return;if(!j9())return;return MW6((H)=>{if(H)Q({key:JiJ,color:"fastMode",priority:"immediate",text:"Fast mode is now available \xB7 /fast to turn on"});else if(X)Z(yeQ),Q({key:JiJ,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];_Y1.useEffect(Y,q);let K,G;if(J[5]!==Q||J[6]!==Z)K=()=>{if(a9())return;if(!j9())return;return AW6((H)=>{Z(IeQ),Q({key:jeQ,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];_Y1.useEffect(K,G);let z,W;if(J[9]!==Q||J[10]!==X)z=()=>{if(a9())return;if(!X)return;let H=_W6((U,F)=>{let O=hQ(U-Date.now(),{hideTrailingZeros:!0}),_=beQ(F,O);Q({key:tlJ,invalidates:[elJ],text:_,color:"warning",priority:"immediate"})}),B=LW6(()=>{Q({key:elJ,invalidates:[tlJ],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];_Y1.useEffect(z,W)}function IeQ(J){return{...J,fastMode:!1}}function yeQ(J){return{...J,fastMode:!1}}function PeQ(J){return J.fastMode}function beQ(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 QiJ,_Y1,tlJ="fast-mode-cooldown-started",elJ="fast-mode-cooldown-expired",JiJ="fast-mode-org-changed",jeQ="fast-mode-overage-rejected";var ZiJ=j(()=>{mY();K6();_U();w6();w1();QiJ=E(Z1(),1),_Y1=E(X1(),1)});function qiJ(J){let Q=YiJ.c(8),{onRun:X,onCancel:Z,reason:Y}=J,q=LY1.useRef(!1),K;if(Q[0]===Symbol.for("react.memo_cache_sentinel"))K={context:"Confirmation"},Q[0]=K;else K=Q[0];z8("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];LY1.useEffect(G,z);let W;if(Q[4]===Symbol.for("react.memo_cache_sentinel"))W=hf.jsxDEV(f,{children:hf.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=hf.jsxDEV(f,{children:hf.jsxDEV(M,{dimColor:!0,children:["Press ",hf.jsxDEV(n1,{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=hf.jsxDEV(f,{flexDirection:"column",marginTop:1,children:[W,H,hf.jsxDEV(f,{children:hf.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 KiJ(J){return!1;switch(J){case"feedback_survey_bad":return!1;case"feedback_survey_good":return!1;default:return!1}}function GiJ(J){return"/issue"}function ziJ(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 YiJ,LY1,hf;var WiJ=j(()=>{i9();t0();f6();YiJ=E(Z1(),1),LY1=E(X1(),1),hf=E(t(),1)});function HiJ(){return null}function TeQ(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===P6){let K=Z.input?.command||"";if(EeQ.some((G)=>G.test(K)))return!1}}}return!0}function veQ(J){for(let Q=J.length-1;Q>=0;Q--){let X=J[Q];if(X.type!=="user")continue;let Z=ar(X);if(!Z)continue;return CeQ.some((Y)=>Y.test(Z))}return!1}function BiJ(J,Q){if(process.env.USER_TYPE!=="ant")return!1;let X=T$0.useRef(0),Z=T$0.useRef(-1),Y=T$0.useMemo(()=>TeQ(J)&&veQ(J),[J]);if(Z.current===Q)return!0;if(Date.now()-X.current<SeQ)return!1;if(Q<feQ)return!1;if(!Y)return!1;return X.current=Date.now(),Z.current=Q,!0}var T$0,EeQ,CeQ,feQ=3,SeQ=1800000;var UiJ=j(()=>{I8();T$0=E(X1(),1),EeQ=[/\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/],CeQ=[/^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 xeQ,keQ,heQ;var FiJ=j(()=>{w1();t0();xeQ=E(Z1(),1),keQ=E(X1(),1),heQ=E(t(),1)});function dY8(J){let Q=OiJ.c(7),{children:X,mouseTracking:Z}=J,Y=Z===void 0?!0:Z,q=v$0.useContext(Hh),K=v$0.useContext(Fh),G,z;if(Q[0]!==Y||Q[1]!==K)G=()=>{let B=SY.get(process.stdout);if(!K)return;return K(YF0+"\x1B[2J\x1B[H"+(Y?Vi:"")),B?.setAltScreenActive(!0,Y),()=>{B?.setAltScreenActive(!1),B?.clearTextSelection(),K((Y?CC:"")+EJ0)}},z=[K,Y],Q[0]=Y,Q[1]=K,Q[2]=G,Q[3]=z;else G=Q[2],z=Q[3];v$0.useInsertionEffect(G,z);let W=q?.rows??24,H;if(Q[4]!==X||Q[5]!==W)H=_iJ.jsxDEV(Pq,{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 OiJ,v$0,_iJ;var LiJ=j(()=>{AO();Wh();xC();SC();zF0();OiJ=E(Z1(),1),v$0=E(X1(),1),_iJ=E(t(),1)});function NiJ(J,Q,X){let Z=YK0.useRef(!1),Y=YK0.useRef(X);Y.current=X,YK0.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(!(B1().copyOnSelect??!0))return;let W=J.copySelectionNoClear();if(!W||!W.trim()){Z.current=!0;return}Z.current=!0,Y.current?.(W)})},[Q,J])}function ViJ(J){let[Q]=v6();YK0.useEffect(()=>{J.setSelectionBgColor(A3(Q).selectionBg)},[J,Q])}var YK0;var wiJ=j(()=>{zJ0();P8();aM();YK0=E(X1(),1)});function teQ(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 eeQ(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 MiJ(J,Q,X){if(!J.xtermJs){if(J.wheelMode&&X-J.time>ieQ)J.wheelMode=!1,J.burstCount=0,J.mult=J.base;if(J.pendingFlip){if(J.pendingFlip=!1,Q!==J.dir||X-J.time>peQ)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<RiJ)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/AiJ),W=Math.max(deQ,J.base*2),H=1+(J.mult-1)*z+ceQ*z;return J.mult=Math.min(W,H,J.mult+leQ),Math.floor(J.mult)}if(G>ueQ)J.mult=J.base;else{let z=Math.max(meQ,J.base*2);J.mult=Math.min(z,J.mult+geQ)}return Math.floor(J.mult)}let Z=X-J.time,Y=Q===J.dir;if(J.time=X,J.dir=Q,Y&&Z<RiJ)return 1;if(!Y||Z>seQ)J.mult=2,J.frac=0;else{let G=Math.pow(0.5,Z/AiJ),z=Z>=reQ?aeQ:oeQ;J.mult=Math.min(z,1+(J.mult-1)*G+neQ*G)}let q=J.mult+J.frac,K=Math.floor(q);return J.frac=q-K,K}function J0X(){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 Q0X(J=!1,Q=1){return{time:0,mult:Q,dir:0,xtermJs:J,frac:0,base:Q,pendingFlip:!1,wheelMode:!1,burstCount:0}}function DiJ(){let J=vC(),Q=J0X();return y(`wheel accel: ${J?"decay (xterm.js)":"window (native)"} \xB7 base=${Q} \xB7 TERM_PROGRAM=${process.env.TERM_PROGRAM??"unset"}`),Q0X(J,Q)}function lY8({scrollRef:J,isActive:Q,onScroll:X,isModal:Z=!1}){let Y=lJ0(),{addNotification:q}=w9(),K=gf.useRef(null);function G(H){let B=R26(),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(),O=F+H.getViewportHeight()-1;if(U.anchor.row<F||U.anchor.row>O)return;if(U.focus.row<F||U.focus.row>O)return;let _=Math.max(0,H.getScrollHeight()-H.getViewportHeight()),L=H.getScrollTop()+H.getPendingDelta(),V=Math.max(0,Math.min(_,L+B))-L;if(V===0)return;if(V>0)Y.captureScrolledRows(F,F+V-1,"above"),Y.shiftSelection(-V,F,O);else{let A=-V;Y.captureScrolledRows(O-A+1,O,"below"),Y.shiftSelection(A,F,O)}}return k6({"scroll:pageUp":()=>{let H=J.current;if(!H)return;let B=-Math.max(1,Math.floor(H.getViewportHeight()/2));W(H,B);let U=uf(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=uf(H,B);X?.(U,H)},"scroll:lineUp":()=>{Y.clearSelection();let H=J.current;if(!H||H.getScrollHeight()<=H.getViewportHeight())return!1;K.current??=DiJ(),G0X(H,MiJ(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??=DiJ();let B=MiJ(K.current,1,performance.now()),U=K0X(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}),k6({"scroll:halfPageUp":()=>{let H=J.current;if(!H)return;let B=-Math.max(1,Math.floor(H.getViewportHeight()/2));W(H,B);let U=uf(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=uf(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=uf(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=uf(H,B);X?.(U,H)}},{context:"Scroll",isActive:Q}),jJ((H,B,U)=>{let F=J.current;if(!F)return;let O=W0X(F,z0X(H,B),(_)=>W(F,_));if(O===null)return;X?.(O,F),U.stopImmediatePropagation()},{isActive:Q&&Z}),jJ((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=eeQ(B);if(F){Y.moveFocus(F),U.stopImmediatePropagation();return}if(teQ(B))Y.clearSelection()},{isActive:Q}),Y0X(J,Y,Q,X),NiJ(Y,Q,G),ViJ(Y),null}function Y0X(J,Q,X,Z){let Y=gf.useRef(null),q=gf.useRef(0),K=gf.useRef(0),G=gf.useRef(0),z=gf.useRef(Z);z.current=Z,gf.useEffect(()=>{if(!X)return;function W(){if(q.current=0,Y.current)clearInterval(Y.current),Y.current=null}function H(){let O=Q.getState(),_=J.current,L=q.current;if(!O?.isDragging||!O.focus||!_||L===0||++G.current>Z0X){W();return}if(_.getPendingDelta()!==0)return;let V=_.getViewportTop(),A=V+_.getViewportHeight()-1;if(L<0){if(_.getScrollTop()<=0){W();return}let R=Math.min(NY1,_.getScrollTop());Q.captureScrolledRows(A-R+1,A,"below"),Q.shiftAnchor(R,0,A),_.scrollBy(-NY1)}else{let R=Math.max(0,_.getScrollHeight()-_.getViewportHeight());if(_.getScrollTop()>=R){W();return}let D=Math.min(NY1,R-_.getScrollTop());Q.captureScrolledRows(V,V+D-1,"above"),Q.shiftAnchor(-D,V,A),_.scrollBy(NY1)}z.current?.(!1,_)}function B(O){if(K.current=O,q.current===O)return;if(W(),q.current=O,G.current=0,H(),q.current===O)Y.current=setInterval(H,X0X)}function U(){let O=J.current;if(!O){W();return}let _=O.getViewportTop(),L=_+O.getViewportHeight()-1,V=Q.getState();if(!V?.isDragging||V.scrolledOffAbove.length===0&&V.scrolledOffBelow.length===0)K.current=0;let A=q0X(V,_,L,K.current);if(A===0){if(K.current!==0&&V?.focus){let R=V.focus.row<_?-1:V.focus.row>L?1:0;if(R!==0&&R!==K.current)V.scrolledOffAbove=[],V.scrolledOffBelow=[],V.scrolledOffAboveSW=[],V.scrolledOffBelowSW=[],K.current=0}W()}else B(A)}let F=Q.subscribe(U);return()=>{F(),W(),K.current=0}},[X,J,Q])}function q0X(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 uf(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 K0X(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 G0X(J,Q){if(J.getScrollTop()+J.getPendingDelta()-Q<=0){J.scrollTo(0);return}J.scrollBy(-Q)}function z0X(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 W0X(J,Q,X){switch(Q){case null:return null;case"lineUp":case"lineDown":{let Z=Q==="lineDown"?1:-1;return X(Z),uf(J,Z)}case"halfPageUp":case"halfPageDown":{let Z=Math.max(1,Math.floor(J.getViewportHeight()/2)),Y=Q==="halfPageDown"?Z:-Z;return X(Y),uf(J,Y)}case"fullPageUp":case"fullPageDown":{let Z=Math.max(1,J.getViewportHeight()),Y=Q==="fullPageDown"?Z:-Z;return X(Y),uf(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 gf,ueQ=40,geQ=0.3,meQ=6,peQ=200,ceQ=15,deQ=15,leQ=3,ieQ=1500,AiJ=150,neQ=5,RiJ=5,reQ=80,aeQ=3,oeQ=6,seQ=500,NY1=2,X0X=50,Z0X=200;var $iJ=j(()=>{mY();wiJ();tm0();fC();BW();t0();f6();Y1();gf=E(X1(),1)});var EiJ={};d1(EiJ,{REPL:()=>rY8});import{dirname as H0X,join as B0X}from"path";import{tmpdir as U0X}from"os";import{writeFile as F0X}from"fs/promises";import{randomUUID as f$0}from"crypto";function IiJ(J){let Q=nY8.c(9),{showAllInTranscript:X,virtualScroll:Z,searchBadge:Y,suppressShowAll:q,status:K}=J,G=q===void 0?!1:q,z=l9("app:toggleTranscript","Global","ctrl+o"),W=l9("transcript:toggleShowAll","Transcript","ctrl+e"),H=Y?" \xB7 n/N to navigate":Z?` \xB7 ${Q1.arrowUp}${Q1.arrowDown} scroll \xB7 home/end top/bottom`:G?"":` \xB7 ${W} to ${X?"collapse":"show all"}`,B;if(Q[0]!==H||Q[1]!==z)B=J6.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?J6.jsxDEV(J6.Fragment,{children:[J6.jsxDEV(f,{flexGrow:1},void 0,!1,void 0,this),J6.jsxDEV(M,{children:[K," "]},void 0,!0,void 0,this)]},void 0,!0,void 0,this):Y?J6.jsxDEV(J6.Fragment,{children:[J6.jsxDEV(f,{flexGrow:1},void 0,!1,void 0,this),J6.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=J6.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 M0X({jumpRef:J,count:Q,current:X,onClose:Z,onCancel:Y,setHighlight:q,initialQuery:K}){let{query:G,cursorOffset:z}=lN({isActive:!0,initialQuery:K,onExit:()=>Z(G),onCancel:Y}),[W,H]=J5.useState("building");J5.useEffect(()=>{let O=!0,_=J.current?.warmSearchIndex;if(!_){H(null);return}return H("building"),_().then((L)=>{if(!O)return;if(L<20)H(null);else H({ms:L}),setTimeout(()=>O&&H(null),2000)}),()=>{O=!1}},[]);let B=W!=="building";p1.useEffect(()=>{if(!B)return;J.current?.setSearchQuery(G),q(G)},[G,B]);let U=z,F=U<G.length?G[U]:" ";return J6.jsxDEV(f,{borderTopDimColor:!0,borderBottom:!1,borderLeft:!1,borderRight:!1,borderStyle:"single",marginTop:1,paddingLeft:2,width:"100%",noSelect:!0,children:[J6.jsxDEV(M,{children:"/"},void 0,!1,void 0,this),J6.jsxDEV(M,{children:G.slice(0,U)},void 0,!1,void 0,this),J6.jsxDEV(M,{inverse:!0,children:F},void 0,!1,void 0,this),U<G.length&&J6.jsxDEV(M,{children:G.slice(U+1)},void 0,!1,void 0,this),J6.jsxDEV(f,{flexGrow:1},void 0,!1,void 0,this),W==="building"?J6.jsxDEV(M,{dimColor:!0,children:"indexing\u2026 "},void 0,!1,void 0,this):W?J6.jsxDEV(M,{dimColor:!0,children:["indexed in ",W.ms,"ms "]},void 0,!0,void 0,this):Q===0&&G?J6.jsxDEV(M,{color:"error",children:"no matches "},void 0,!1,void 0,this):Q>0?J6.jsxDEV(M,{dimColor:!0,children:[X,"/",Q," "]},void 0,!0,void 0,this):null]},void 0,!0,void 0,this)}function PiJ(J){let Q=nY8.c(6),{isAnimating:X,title:Z,disabled:Y,noPrefix:q}=J,K=L5(),[G,z]=p1.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($0X,D0X,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];p1.useEffect(W,H);let B=X?biJ[G]??yiJ:yiJ;return Qp0(Y?null:q?Z:`${B} ${Z}`),null}function $0X(J){return J(j0X)}function j0X(J){return(J+1)%biJ.length}function rY8({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:O,onBeforeQuery:_,onTurnComplete:L,disabled:V=!1,mainThreadAgentDefinition:A,disableSlashCommands:R=!1,taskListId:D,remoteSessionConfig:$,directConnectConfig:P,sshSession:v,thinkingConfig:b}){let T=!!$,S=p1.useMemo(()=>r0(process.env.GLOCK_DISABLE_TERMINAL_TITLE),[]),k=p1.useMemo(()=>!1,[]),h=p1.useMemo(()=>r0(process.env.GLOCK_DISABLE_VIRTUAL_SCROLL),[]),u=!1;p1.useEffect(()=>{return y(`[REPL:mount] REPL mounted, disabled=${V}`),()=>y("[REPL:unmount] REPL unmounting")},[V]);let[x,g]=p1.useState(A),p=H1((q1)=>q1.toolPermissionContext),c=H1((q1)=>q1.verbose),i=H1((q1)=>q1.mcp),Y0=H1((q1)=>q1.plugins),n=H1((q1)=>q1.agentDefinitions),s=H1((q1)=>q1.fileHistory),e=H1((q1)=>q1.initialMessage),q0=pP(),z0=H1((q1)=>q1.spinnerTip),D0=H1((q1)=>q1.expandedView)==="tasks",K0=H1((q1)=>q1.pendingWorkerRequest),$0=H1((q1)=>q1.pendingSandboxRequest),U0=H1((q1)=>q1.teamContext),o=H1((q1)=>q1.tasks),a=H1((q1)=>q1.workerSandboxPermissions),Q0=H1((q1)=>q1.elicitation),X0=H1((q1)=>q1.ultraplanPendingChoice),J0=H1((q1)=>q1.ultraplanLaunchPending),F0=H1((q1)=>q1.viewingAgentTaskId),R0=M6(),_0=F0?o[F0]:void 0,M0=sK(_0)&&_0.retain&&!_0.diskLoaded;p1.useEffect(()=>{if(!F0||!M0)return;let q1=F0;Rg(j4(q1)).then((R1)=>{R0((k1)=>{let l8=k1.tasks[q1];if(!sK(l8)||l8.diskLoaded||!l8.retain)return k1;let W6=l8.messages??[],p6=new Set(W6.map((FJ)=>FJ.uuid)),H6=R1?R1.messages.filter((FJ)=>!p6.has(FJ.uuid)):[];return{...k1,tasks:{...k1.tasks,[q1]:{...l8,messages:[...H6,...W6],diskLoaded:!0}}}})})},[F0,M0,R0]);let B0=rX(),I0=Oh(),w0=K2(),[L0,E0]=p1.useState(J);FcJ(T?void 0:TY(),E0);let m0=J5.useSyncExternalStore(jiJ?.subscribeToProactiveChanges??N0X,jiJ?.isProactiveActive??V0X),s0=H1((q1)=>q1.isBriefOnly),T0=p1.useMemo(()=>PF(p),[p,m0,s0]);EdJ(),CdJ();let[P0,S0]=p1.useState(H),y0=p1.useCallback((q1)=>{S0(q1)},[S0]),[N0,A0]=p1.useState("prompt"),[b0,k0]=p1.useState(!1),[h0,c0]=p1.useState(!1),[e0,G0]=p1.useState(""),i0=p1.useRef(0),j0=p1.useRef(void 0),C0=p1.useRef(!1),{addNotification:n0,removeNotification:z1}=w9(),A1=w0X,c1=GcJ(W,i.clients),[H8,D8]=p1.useState(void 0),[U6,e8]=p1.useState(null),[y6,K8]=p1.useState(null),[W0,O0]=p1.useState(!1),[v0,l0]=p1.useState(()=>{return!1}),[J1,o0]=p1.useState(()=>ccJ(w0)),T1=H1((q1)=>q1.showRemoteCallout),[L1,C1]=p1.useState(()=>DdJ());llJ({ideSelection:H8,mcpClients:c1,ideInstallationStatus:y6}),sdJ({mcpClients:c1}),edJ(),IlJ(),blJ(),ndJ(),XiJ(),glJ(w0),plJ(),_0X(),GdJ(),UdJ(),LdJ(),XlJ(),olJ();let{recommendation:J8,handleResponse:G6}=_lJ(),{recommendation:d8,handleResponse:GJ}=AlJ(),V6=p1.useMemo(()=>{return[...T0,...X]},[T0,X]);_cJ({enabled:!T});let RJ=bJJ();p1.useEffect(()=>{if(T)return;flJ(R0)},[R0,T]),wdJ(T?iY8:c1,p.mode),DpJ(R0,Z,{enabled:!T});let e6=XQ1(V6,i.tools,p),{tools:NQ,allowedAgentTypes:A7}=p1.useMemo(()=>{if(!x)return{tools:e6,allowedAgentTypes:void 0};let q1=Zv(x,e6,!1,!0);return{tools:q1.resolvedTools,allowedAgentTypes:q1.allowedAgentTypes}},[x,e6]),vQ=FY8(L0,Y0.commands),F6=FY8(vQ,i.commands),_X=p1.useMemo(()=>R?[]:F6,[R,F6]);DSJ(T?iY8:i.clients),AcJ(T?iY8:i.clients,D8);let[S8,IX]=p1.useState("responding"),mG=p1.useRef(S8);mG.current=S8;let[t9,Kq]=p1.useState([]),[Q5,e9]=p1.useState(null);p1.useEffect(()=>{if(Q5&&!Q5.isStreaming&&Q5.streamingEndedAt){let R1=30000-(Date.now()-Q5.streamingEndedAt);if(R1>0){let k1=setTimeout(e9,R1,null);return()=>clearTimeout(k1)}else e9(null)}},[Q5]);let[QY,oQ]=p1.useState(null),T5=p1.useRef(null);T5.current=QY;let XX=p1.useRef(()=>{}),hZ=p1.useRef(()=>{}),C4=p1.useRef(null),$Y=p1.useRef(null),XY=p1.useRef(0),t7=J5.useRef(new oQ8).current,B4=J5.useSyncExternalStore(t7.subscribe,t7.getSnapshot),[T4,X5]=J5.useState($?.hasInitialPrompt??!1),lJ=B4||T4,[O9,Gq]=J5.useState(void 0),sX=J5.useRef(0),fQ=J5.useRef(!1),R7=J5.useRef(0),s1=J5.useRef(0),s8=J5.useRef(null),hJ=J5.useCallback(()=>{R7.current=Date.now(),s1.current=0,s8.current=null},[]),VJ=J5.useRef(!1);if(B4&&!VJ.current)hJ();VJ.current=B4;let tJ=J5.useCallback((q1)=>{if(X5(q1),q1)hJ()},[hJ]),aJ=J5.useRef(null),M7=J5.useRef(void 0),B9=J5.useRef(void 0),S6=1500,[uJ,J7]=J5.useState(!1),[zJ,oJ]=p1.useState(null);p1.useEffect(()=>{if(zJ?.notifications)zJ.notifications.forEach((q1)=>{n0({key:"auto-updater-notification",text:q1,priority:"low"})})},[zJ,n0]),p1.useEffect(()=>{if(pJ())R36().then((q1)=>{if(q1)n0({key:"tmux-mouse-hint",text:q1,priority:"low"})})},[]);let[yX,O7]=p1.useState(!1);p1.useEffect(()=>{},[]);let[I9,P7]=p1.useState(null),M9=p1.useRef(null),g9=p1.useCallback((q1)=>{if(q1?.isLocalJSXCommand){let{clearLocalJSX:R1,...k1}=q1;M9.current={...k1,isLocalJSXCommand:!0},P7(k1);return}if(M9.current){if(q1?.clearLocalJSX){M9.current=null,P7(null);return}return}if(q1?.clearLocalJSX){P7(null);return}P7(q1)},[]),[SQ,zQ]=p1.useState([]),[uZ,sY]=p1.useState(null),[v4,Z5]=p1.useState([]),[jY,U4]=p1.useState([]),WQ=p1.useRef(new Map),f4=H1((q1)=>q1.settings.terminalTitleFromRename)!==!1?FB(V1()):void 0,[Y5,nq]=p1.useState(),gZ=p1.useRef((Z?.length??0)>0),rq=x?.agentType,aq=f4??rq??Y5??"Glock",F4=SQ.length>0||jY.length>0||K0||$0,h8=I9?.isLocalJSXCommand===!0&&I9?.jsx!=null,E8=lJ&&!F4&&!h8;p1.useEffect(()=>{if(lJ&&!F4&&!h8)return tfJ(),()=>efJ()},[lJ,F4,h8]);let PJ=F4||h8?"waiting":lJ?"busy":"idle",VQ=PJ!=="waiting"?void 0:SQ.length>0?`approve ${SQ[0].tool.name}`:K0?"worker request":$0?"sandbox request":h8?"dialog open":"input needed";p1.useEffect(()=>{},[PJ,VQ]);let HQ=W8("jarvis_api_error",!1)&&(B1().showStatusInTerminalTab??!1);em0(S||!HQ?null:PJ),p1.useEffect(()=>{return Z9J(zQ),()=>Y9J()},[zQ]);let[WJ,MZ]=p1.useState(Z??[]),gJ=p1.useRef(WJ),E6=p1.useRef(!1),mJ=p1.useCallback((q1)=>{let R1=gJ.current,k1=typeof q1==="function"?q1(gJ.current):q1;if(gJ.current=k1,k1.length<sX.current)sX.current=0;else if(k1.length>R1.length&&fQ.current){let l8=k1.length-R1.length;if((R1.length===0||k1[0]===R1[0]?k1.slice(-l8):k1.slice(0,l8)).some(W40))fQ.current=!1;else sX.current=k1.length}MZ(k1)},[]),mZ=p1.useCallback((q1)=>{if(q1!==void 0)sX.current=gJ.current.length,fQ.current=!0;else fQ.current=!1;Gq(q1)},[]),{dividerIndex:v5,dividerYRef:iW,onScrollAway:gB,onRepin:pG,jumpToNew:YH,shiftDivider:_2}=tMJ(WJ.length),[oq,qH]=p1.useState(null),vR=p1.useRef(null),LV=p1.useMemo(()=>eMJ(WJ,v5),[v5,WJ.length]),vK=p1.useCallback(()=>{C4.current?.scrollToBottom(),pG(),qH(null)},[pG,qH]),fR=WJ.at(-1),zq=fR!=null&&W40(fR);p1.useEffect(()=>{if(zq)vK()},[zq,fR,vK]);let{maybeLoadOlder:Tp}=A0X,NV=p1.useCallback((q1,R1)=>{if(XY.current=Date.now(),q1)pG();else gB(R1)},[pG,gB,Tp,R0]),f0=GpJ(Y,mJ),g0=p1.useDeferredValue(WJ),_1=WJ.length-g0.length;if(_1>0)y(`[useDeferredValue] Messages deferred by ${_1} (${g0.length}\u2192${WJ.length})`);let[Q8,R8]=p1.useState(null),[O6,eJ]=p1.useState(()=>aE1()),m9=p1.useRef(O6);m9.current=O6;let tY=p1.useRef(null),b7=p1.useCallback((q1)=>{if(A1(m9.current,q1))return;if(m9.current===""&&q1!==""&&Date.now()-XY.current>=R0X)vK();m9.current=q1,eJ(q1),J7(q1.trim().length>0)},[J7,vK,A1]);p1.useEffect(()=>{if(O6.trim().length===0)return;let q1=setTimeout(J7,S6,!1);return()=>clearTimeout(q1)},[O6]);let[S4,Wq]=p1.useState("prompt"),[eY,q5]=p1.useState(),kz=p1.useCallback((q1)=>{let R1=new Set(q1);E0((k1)=>k1.filter((l8)=>R1.has(l8.name)||m78.has(l8)))},[E0]),[lF,vp]=p1.useState(new Set),L2=p1.useRef(!1),nW=CmJ({config:$,setMessages:mJ,setIsLoading:tJ,onInit:kz,setToolUseConfirmQueue:zQ,tools:V6,setStreamingToolUses:Kq,setStreamMode:IX,setInProgressToolUseIDs:vp}),u_=fmJ({config:P,setMessages:mJ,setIsLoading:tJ,setToolUseConfirmQueue:zQ,tools:V6}),E7=xmJ({session:v,setMessages:mJ,setIsLoading:tJ,setToolUseConfirmQueue:zQ,tools:V6}),i8=E7.isRemoteMode?E7:u_.isRemoteMode?u_:nW,[hz,uz]=p1.useState({}),[DZ,cf]=p1.useState(0),N2=p1.useRef(0),SR=p1.useRef([]),g$=p1.useCallback((q1)=>{let R1=N2.current;if(N2.current=q1(R1),N2.current>R1){let k1=SR.current;if(k1.length>0){let l8=k1.at(-1);l8.lastTokenTime=Date.now(),l8.endResponseLength=N2.current}}},[]),[m$,p$]=p1.useState(null),xR=!(H1((q1)=>q1.settings.prefersReducedMotion)??!1)&&!P26(),FG=p1.useCallback((q1)=>{if(!xR)return;p$(q1)},[xR]),uX=m$&&xR?m$.substring(0,m$.lastIndexOf(`
7380
+ `)}async sendRequest(J,Q,X,Z=fY8()){let Y={type:"control_request",request_id:Z,request:J};if(this.inputClosed)throw Error("Stream closed");if(X?.aborted)throw Error("Request aborted");if(this.outbound.enqueue(Y),J.subtype==="can_use_tool"&&this.onControlRequestSent)this.onControlRequestSent(Y);let q=()=>{this.outbound.enqueue({type:"control_cancel_request",request_id:Z});let K=this.pendingRequests.get(Z);if(K)this.trackResolvedToolUseId(K.request),K.reject(new IZ)};if(X)X.addEventListener("abort",q,{once:!0});try{return await new Promise((K,G)=>{this.pendingRequests.set(Z,{request:{type:"control_request",request_id:Z,request:J},resolve:(z)=>{K(z)},reject:G,schema:Q})})}finally{if(X)X.removeEventListener("abort",q);this.pendingRequests.delete(Z)}}createCanUseTool(J){return async(Q,X,Z,Y,q,K)=>{let G=K??await P3(Q,X,Z,Y,q);if(G.behavior==="allow"||G.behavior==="deny")return G;let z=new AbortController,W=Z.abortController.signal,H=()=>z.abort();W.addEventListener("abort",H,{once:!0});try{let B=ktQ(Q.name,q,X,Z,G.suggestions).then((_)=>({source:"hook",decision:_})),U=fY8();J?.(StQ(Q,X,q,U));let F=this.sendRequest({subtype:"can_use_tool",tool_name:Q.name,input:X,permission_suggestions:G.suggestions,blocked_path:G.blockedPath,decision_reason:ftQ(G.decisionReason),tool_use_id:q,agent_id:Z.agentId},I$0(),z.signal,U).then((_)=>({source:"sdk",result:_})),O=await Promise.race([B,F]);if(O.source==="hook"){if(O.decision)return F.catch(()=>{}),z.abort(),O.decision;let _=await F;return eq0(_.result,Q,X,Z)}return eq0(O.result,Q,X,Z)}catch(B){return eq0({behavior:"deny",message:`Tool permission request failed: ${B}`,toolUseID:q},Q,X,Z)}finally{if(this.getPendingPermissionRequests().length===0)Oq0("running");W.removeEventListener("abort",H)}}}createHookCallback(J,Q){return{type:"callback",timeout:Q,callback:async(X,Z,Y)=>{try{return await this.sendRequest({subtype:"hook_callback",callback_id:J,input:X,tool_use_id:Z||void 0},Wq0(),Y)}catch(q){return console.error(`Error in hook callback ${J}:`,q),{}}}}}async handleElicitation(J,Q,X,Z,Y,q,K){try{return await this.sendRequest({subtype:"elicitation",mcp_server_name:J,message:Q,mode:Y,url:q,elicitation_id:K,requested_schema:X},vdJ(),Z)}catch{return{action:"cancel"}}}createSandboxAskCallback(){return async(J)=>{try{return(await this.sendRequest({subtype:"can_use_tool",tool_name:vtQ,input:{host:J.host},tool_use_id:fY8(),description:`Allow network connection to ${J.host}?`},I$0())).behavior==="allow"}catch{return!1}}}async sendMcpMessage(J,Q){return(await this.sendRequest({subtype:"mcp_message",server_name:J,message:Q},I.object({mcp_response:I.any()}))).mcp_response}}function hdJ(J){console.error(J),process.exit(1)}async function ktQ(J,Q,X,Z,Y){let K=Z.getAppState().toolPermissionContext.mode,G=Ho(J,Q,X,Z,K,Y,Z.abortController.signal);for await(let z of G)if(z.permissionRequestResult&&(z.permissionRequestResult.behavior==="allow"||z.permissionRequestResult.behavior==="deny")){let W=z.permissionRequestResult;if(W.behavior==="allow"){let H=W.updatedInput||X,B=W.updatedPermissions??[];if(B.length>0){MD(B);let U=Z.getAppState(),F=gO(U.toolPermissionContext,B);Z.setAppState((O)=>{if(O.toolPermissionContext===F)return O;return{...O,toolPermissionContext:F}})}return{behavior:"allow",updatedInput:H,userModified:!1,decisionReason:{type:"hook",hookName:"PermissionRequest"}}}else return{behavior:"deny",message:W.message||"Permission denied by PermissionRequest hook",decisionReason:{type:"hook",hookName:"PermissionRequest"}}}return}var vtQ="SandboxNetworkAccess",xtQ=1000;var QY1=j(()=>{xdJ();LQ8();Y1();cZ();D1();TY8();AK();i1();A6();xY();wK();PD0();i1();ds1();vY8()});function udJ(J,Q,X){let Z=XY1.useRef(!1);XY1.useEffect(()=>{if(!_Y()||Z.current)return;if(Z.current=!0,J)Ns0(J,X)},[Q,J,X])}var XY1;var gdJ=j(()=>{Q_();XY1=E(X1(),1)});function SY8(J){let Q=mdJ.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=eF0(),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:k_.jsxDEV(M,{children:["Yes, and don't ask again for ",k_.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:k_.jsxDEV(M,{children:["No, and tell Glock what to do differently ",k_.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,O;if(Q[9]===Symbol.for("react.memo_cache_sentinel"))O=k_.jsxDEV(M,{dimColor:!0,children:"Host:"},void 0,!1,void 0,this),Q[9]=O;else O=Q[9];let _;if(Q[10]!==Y)_=k_.jsxDEV(f,{children:[O,k_.jsxDEV(M,{children:[" ",Y]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),Q[10]=Y,Q[11]=_;else _=Q[11];let L;if(Q[12]===Symbol.for("react.memo_cache_sentinel"))L=k_.jsxDEV(f,{marginTop:1,children:k_.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 V;if(Q[13]!==Z)V=()=>{Z({allow:!1,persistToSettings:!1})},Q[13]=Z,Q[14]=V;else V=Q[14];let A;if(Q[15]!==K||Q[16]!==F||Q[17]!==V)A=k_.jsxDEV(f,{children:k_.jsxDEV(Y8,{options:F,onChange:K,onCancel:V},void 0,!1,void 0,this)},void 0,!1,void 0,this),Q[15]=K,Q[16]=F,Q[17]=V,Q[18]=A;else A=Q[18];let R;if(Q[19]!==A||Q[20]!==_)R=k_.jsxDEV(GZ,{title:"Network request outside of sandbox",children:k_.jsxDEV(f,{flexDirection:"column",paddingX:2,paddingY:1,children:[_,L,A]},void 0,!0,void 0,this)},void 0,!1,void 0,this),Q[19]=A,Q[20]=_,Q[21]=R;else R=Q[21];return R}var mdJ,k_;var pdJ=j(()=>{t0();zY();ZQ();m3();mdJ=E(Z1(),1),k_=E(t(),1)});function htQ(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 xY8(){let J=cdJ.c(15),Q;if(J[0]===Symbol.for("react.memo_cache_sentinel"))Q=[],J[0]=Q;else Q=J[0];let[X,Z]=P$0.useState(Q),[Y,q]=P$0.useState(0),K,G;if(J[1]===Symbol.for("react.memo_cache_sentinel"))K=()=>{let O=p8.getSandboxViolationStore();return O.subscribe((L)=>{Z(L.slice(-10)),q(O.getTotalCount())})},G=[],J[1]=K,J[2]=G;else K=J[1],G=J[2];if(P$0.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=bp.jsxDEV(f,{marginLeft:0,children:bp.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(utQ),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=bp.jsxDEV(f,{paddingLeft:2,children:bp.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=bp.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 utQ(J,Q){return bp.jsxDEV(f,{paddingLeft:2,children:bp.jsxDEV(M,{dimColor:!0,children:[htQ(J.timestamp),J.command?` ${J.command}:`:""," ",J.line]},void 0,!0,void 0,this)},`${J.timestamp.getTime()}-${Q}`,!1,void 0,this)}var cdJ,P$0,bp;var ddJ=j(()=>{t0();zY();x9();cdJ=E(Z1(),1),P$0=E(X1(),1),bp=E(t(),1)});function ndJ(){let J=idJ.c(6),{addNotification:Q,removeNotification:X}=w9(),[Z,Y]=ZY1.useState(gtQ),q;if(J[0]===Symbol.for("react.memo_cache_sentinel"))q=()=>{let{errors:W}=av();Y(W)},J[0]=q;else q=J[0];Q90(q);let G,z;if(J[1]!==Q||J[2]!==Z||J[3]!==X)G=()=>{if(a9())return;if(Z.length>0){let W=`Found ${Z.length} settings ${Z.length===1?"issue":"issues"} \xB7 /doctor for details`;Q({key:ldJ,text:W,color:"warning",priority:"high",timeoutMs:60000})}else X(ldJ)},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 ZY1.useEffect(G,z),Z}function gtQ(){let{errors:J}=av();return J}var idJ,ZY1,ldJ="settings-errors";var rdJ=j(()=>{mY();w1();lR0();Fp0();idJ=E(Z1(),1),ZY1=E(X1(),1)});function sdJ(J){let Q=adJ.c(4),{mcpClients:X}=J,Z=X===void 0?mtQ:X,{addNotification:Y}=w9(),q,K;if(Q[0]!==Y||Q[1]!==Z)q=()=>{if(a9())return;let G=Z.filter(ltQ),z=Z.filter(dtQ),W=Z.filter(ctQ),H=Z.filter(ptQ);if(G.length===0&&z.length===0&&W.length===0&&H.length===0)return;if(G.length>0)Y({key:"mcp-failed",jsx:QH.jsxDEV(QH.Fragment,{children:[QH.jsxDEV(M,{color:"error",children:[G.length," MCP"," ",G.length===1?"server":"servers"," failed"]},void 0,!0,void 0,this),QH.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:QH.jsxDEV(QH.Fragment,{children:[QH.jsxDEV(M,{color:"error",children:[z.length," glock"," ",z.length===1?"connector":"connectors"," ","unavailable"]},void 0,!0,void 0,this),QH.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:QH.jsxDEV(QH.Fragment,{children:[QH.jsxDEV(M,{color:"warning",children:[W.length," MCP"," ",W.length===1?"server needs":"servers need"," ","auth"]},void 0,!0,void 0,this),QH.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:QH.jsxDEV(QH.Fragment,{children:[QH.jsxDEV(M,{color:"warning",children:[H.length," glock"," ",H.length===1?"connector needs":"connectors need"," ","auth"]},void 0,!0,void 0,this),QH.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];odJ.useEffect(q,K)}function ptQ(J){return J.type==="needs-auth"&&J.config.type==="glockai-proxy"&&Gd1(J.name)}function ctQ(J){return J.type==="needs-auth"&&J.config.type!=="glockai-proxy"}function dtQ(J){return J.type==="failed"&&J.config.type==="glockai-proxy"&&Gd1(J.name)}function ltQ(J){return J.type==="failed"&&J.config.type!=="sse-ide"&&J.config.type!=="ws-ide"&&J.config.type!=="glockai-proxy"}var adJ,odJ,QH,mtQ;var tdJ=j(()=>{mY();w1();t0();UX0();adJ=E(Z1(),1),odJ=E(X1(),1),QH=E(t(),1),mtQ=[]});function edJ(){let{addNotification:J}=w9(),Q=H1((q)=>q.toolPermissionContext.mode),X=H1((q)=>q.toolPermissionContext.isAutoModeAvailable),Z=b$0.useRef(!1),Y=b$0.useRef(Q);b$0.useEffect(()=>{let q=Y.current;Y.current=Q;return},[Q,X,J])}var b$0;var JlJ=j(()=>{mY();w1();K6();_W();v8();b$0=E(X1(),1)});function XlJ(){let J=QlJ.c(10),{addNotification:Q}=w9(),X=M6(),[Z,Y]=QK0.useState(rtQ),q;if(J[0]===Symbol.for("react.memo_cache_sentinel"))q=new Set,J[0]=q;else q=J[0];let K=QK0.useRef(q),G;if(J[1]!==Q||J[2]!==X)G=(F,O)=>{let _=`${F}:${O}`;if(K.current.has(_))return;K.current.add(_),y(`LSP error: ${F} - ${O}`),X((V)=>{let A=new Set(V.plugins.errors.map(ntQ)),R=`generic-error:${F}:${O}`;if(A.has(R))return V;return{...V,plugins:{...V.plugins,errors:[...V.plugins.errors,{type:"generic-error",source:F,error:O}]}}});let L=F.startsWith("plugin:")?F.split(":")[1]??F:F;Q({key:`lsp-error-${F}`,jsx:JK0.jsxDEV(JK0.Fragment,{children:[JK0.jsxDEV(M,{color:"error",children:["LSP for ",L," failed"]},void 0,!0,void 0,this),JK0.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(a9())return;if(vc())return;let F=fX0();if(F.status==="failed"){z("lsp-manager",F.error.message),Y(!1);return}if(F.status==="pending"||F.status==="not-started")return;let O=nT();if(O){let _=O.getAllServers();for(let[L,V]of _)if(V.state==="error"&&V.lastError)z(L,V.lastError.message)}},J[4]=z,J[5]=W;else W=J[5];let H=W;R3(H,Z?itQ:null);let B,U;if(J[6]!==H||J[7]!==Z)B=()=>{if(a9()||!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];QK0.useEffect(B,U)}function ntQ(J){if(J.type==="generic-error")return`generic-error:${J.source}:${J.error}`;return`${J.type}:${J.source}`}function rtQ(){return r0("true")}var QlJ,QK0,JK0,itQ=5000;var ZlJ=j(()=>{MO();w1();mY();t0();Ey();K6();Y1();S1();QlJ=E(Z1(),1),QK0=E(X1(),1),JK0=E(t(),1)});async function qlJ(J){if(!J||!J.trim())return y("[binaryCheck] Empty command provided, returning false"),!1;let Q=J.trim(),X=YlJ.get(Q);if(X!==void 0)return y(`[binaryCheck] Cache hit for '${Q}': ${X}`),X;let Z=!1;if(await sz(Q).catch(()=>null))Z=!0;return YlJ.set(Q,Z),y(`[binaryCheck] Binary '${Q}' ${Z?"found":"not found"}`),Z}var YlJ;var KlJ=j(()=>{Y1();tV();YlJ=new Map});import{extname as atQ}from"path";function stQ(J){return LM.has(J.toLowerCase())}function ttQ(J){if(!J)return null;if(typeof J==="string")return y("[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=zlJ(Q);if(X)return X}return null}return zlJ(J)}function GlJ(J){return typeof J==="object"&&J!==null}function zlJ(J){let Q=new Set,X=null;for(let[Z,Y]of Object.entries(J)){if(!GlJ(Y))continue;if(!X&&typeof Y.command==="string")X=Y.command;let q=Y.extensionToLanguage;if(GlJ(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 etQ(){let J=new Map;try{let Q=await vZ();for(let X of Object.keys(Q))try{let Z=await sU(X),Y=stQ(X);for(let q of Z.plugins){if(!q.lspServers)continue;let K=ttQ(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){y(`[lspRecommendation] Failed to load marketplace ${X}: ${Z}`)}}catch(Q){y(`[lspRecommendation] Failed to load marketplaces config: ${Q}`)}return J}async function WlJ(J){if(JeQ())return y("[lspRecommendation] Recommendations are disabled"),[];let Q=atQ(J).toLowerCase();if(!Q)return y("[lspRecommendation] No file extension found"),[];y(`[lspRecommendation] Looking for LSP plugins for ${Q}`);let X=await etQ(),Y=B1().lspRecommendationNeverPlugins??[],q=[];for(let[G,z]of X){if(!z.extensions.has(Q))continue;if(Y.includes(G)){y(`[lspRecommendation] Skipping ${G} (in never suggest list)`);continue}if(tI(G)){y(`[lspRecommendation] Skipping ${G} (already installed)`);continue}q.push({info:z,pluginId:G})}let K=[];for(let{info:G,pluginId:z}of q)if(await qlJ(G.command))K.push({info:G,pluginId:z}),y(`[lspRecommendation] Binary '${G.command}' found for ${z}`);else y(`[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 HlJ(J){o1((Q)=>{let X=Q.lspRecommendationNeverPlugins??[];if(X.includes(J))return Q;return{...Q,lspRecommendationNeverPlugins:[...X,J]}}),y(`[lspRecommendation] Added ${J} to never suggest`)}function BlJ(){o1((J)=>{let Q=(J.lspRecommendationIgnoredCount??0)+1;return{...J,lspRecommendationIgnoredCount:Q}}),y("[lspRecommendation] Incremented ignored count")}function JeQ(){let J=B1();return J.lspRecommendationDisabled===!0||(J.lspRecommendationIgnoredCount??0)>=otQ}var otQ=5;var UlJ=j(()=>{KlJ();P8();Y1();y3();w5();ZU()});function qY1(){let J=FlJ.c(6),[Q,X]=YY1.useState(null),Z=YY1.useRef(!1),Y;if(J[0]!==Q)Y=(W)=>{if(a9())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 KY1(J,Q,X,Z,Y){try{let q=await fO(J);if(!q)throw Error(`Plugin ${J} not found in marketplace`);await Y(q),Z({key:`${X}-installed`,jsx:kY8.jsxDEV(M,{color:"success",children:[Q1.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:kY8.jsxDEV(M,{color:"error",children:["Failed to install ",Q]},void 0,!0,void 0,this),priority:"immediate",timeoutMs:5000})}}var FlJ,YY1,kY8;var hY8=j(()=>{i6();w1();t0();j1();w5();FlJ=E(Z1(),1),YY1=E(X1(),1),kY8=E(t(),1)});import{extname as QeQ,join as XeQ}from"path";function _lJ(){let J=OlJ.c(12),Q=H1(qeQ),{addNotification:X}=w9(),Z;if(J[0]===Symbol.for("react.memo_cache_sentinel"))Z=new Set,J[0]=Z;else Z=J[0];let Y=GY1.useRef(Z),{recommendation:q,clearRecommendation:K,tryResolve:G}=qY1(),z,W;if(J[1]!==Q||J[2]!==G)z=()=>{G(async()=>{if(uq1())return null;let F=[];for(let O of Q)if(!Y.current.has(O))Y.current.add(O),F.push(O);for(let O of F)try{let L=(await WlJ(O))[0];if(L)return y(`[useLspPluginRecommendation] Found match: ${L.pluginName} for ${O}`),gq1(!0),{pluginId:L.pluginId,pluginName:L.pluginName,pluginDescription:L.description,fileExtension:QeQ(O),shownAt:Date.now()}}catch(_){H0(_)}return null})},W=[Q,G],J[1]=Q,J[2]=G,J[3]=z,J[4]=W;else z=J[3],W=J[4];GY1.useEffect(z,W);let H;if(J[5]!==X||J[6]!==K||J[7]!==q)H=(F)=>{if(!q)return;let{pluginId:O,pluginName:_,shownAt:L}=q;y(`[useLspPluginRecommendation] User response: ${F} for ${_}`);J:switch(F){case"yes":{KY1(O,_,"lsp-plugin",X,async(V)=>{y(`[useLspPluginRecommendation] Installing plugin: ${O}`);let A=typeof V.entry.source==="string"?XeQ(V.marketplaceInstallLocation,V.entry.source):void 0;await wR0(O,V.entry,"user",void 0,A);let R=A8("userSettings");R6("userSettings",{enabledPlugins:{...R?.enabledPlugins,[O]:!0}}),y(`[useLspPluginRecommendation] Plugin installed: ${O}`)});break J}case"no":{let V=Date.now()-L;if(V>=ZeQ)y(`[useLspPluginRecommendation] Timeout detected (${V}ms), incrementing ignored count`),BlJ();break J}case"never":{HlJ(O);break J}case"disable":o1(YeQ)}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 YeQ(J){if(J.lspRecommendationDisabled)return J;return{...J,lspRecommendationDisabled:!0}}function qeQ(J){return J.fileHistory.trackedFiles}var OlJ,GY1,ZeQ=28000;var LlJ=j(()=>{w1();mY();K6();P8();Y1();j1();UlJ();zm();v8();hY8();OlJ=E(Z1(),1),GY1=E(X1(),1)});function NlJ({pluginName:J,pluginDescription:Q,fileExtension:X,onResponse:Z}){let Y=zY1.useRef(Z);Y.current=Z,zY1.useEffect(()=>{let G=setTimeout((z)=>z.current("no"),KeQ,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 gG.jsxDEV(GZ,{title:"LSP Plugin Recommendation",children:gG.jsxDEV(f,{flexDirection:"column",paddingX:2,paddingY:1,children:[gG.jsxDEV(f,{marginBottom:1,children:gG.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),gG.jsxDEV(f,{children:[gG.jsxDEV(M,{dimColor:!0,children:"Plugin:"},void 0,!1,void 0,this),gG.jsxDEV(M,{children:[" ",J]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),Q&&gG.jsxDEV(f,{children:gG.jsxDEV(M,{dimColor:!0,children:Q},void 0,!1,void 0,this)},void 0,!1,void 0,this),gG.jsxDEV(f,{children:[gG.jsxDEV(M,{dimColor:!0,children:"Triggered by:"},void 0,!1,void 0,this),gG.jsxDEV(M,{children:[" ",X," files"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),gG.jsxDEV(f,{marginTop:1,children:gG.jsxDEV(M,{children:"Would you like to install this LSP plugin?"},void 0,!1,void 0,this)},void 0,!1,void 0,this),gG.jsxDEV(f,{children:gG.jsxDEV(Y8,{options:[{label:gG.jsxDEV(M,{children:["Yes, install ",gG.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:gG.jsxDEV(M,{children:["Never for ",gG.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 zY1,gG,KeQ=30000;var VlJ=j(()=>{t0();ZQ();m3();zY1=E(X1(),1),gG=E(t(),1)});function AlJ(){let J=wlJ.c(11),Q=WY1.useSyncExternalStore(UI6,_h1),{addNotification:X}=w9(),{recommendation:Z,clearRecommendation:Y,tryResolve:q}=qY1(),K,G;if(J[0]!==Q||J[1]!==q)K=()=>{if(!Q)return;q(async()=>{let B=await _I6(Q);if(B)y(`[useGlockCodeHintRecommendation] surfacing ${B.pluginId} from ${B.sourceCommand}`),BI6();if(_h1()===Q)HI6();return B})},G=[Q,q],J[0]=Q,J[1]=q,J[2]=K,J[3]=G;else K=J[2],G=J[3];WY1.useEffect(K,G);let z;if(J[4]!==X||J[5]!==Y||J[6]!==Z)z=(B)=>{if(!Z)return;LI6(Z.pluginId),d("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:O}=Z;KY1(U,F,"hint-plugin",X,async(_)=>{let L=await Gm({pluginId:U,entry:_.entry,marketplaceName:O,scope:"user",trigger:"hint"});if(!L.success)throw Error(L.error)});break J}case"disable":{NI6();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 wlJ,WY1;var RlJ=j(()=>{mY();M1();w_0();Y1();wl0();zm();hY8();wlJ=E(Z1(),1),WY1=E(X1(),1)});function MlJ({pluginName:J,pluginDescription:Q,marketplaceName:X,sourceCommand:Z,onResponse:Y}){let q=HY1.useRef(Y);q.current=Y,HY1.useEffect(()=>{let z=setTimeout((W)=>W.current("no"),GeQ,q);return()=>clearTimeout(z)},[]);function K(z){switch(z){case"yes":Y("yes");break;case"disable":Y("disable");break;default:Y("no")}}return Sz.jsxDEV(GZ,{title:"Plugin Recommendation",children:Sz.jsxDEV(f,{flexDirection:"column",paddingX:2,paddingY:1,children:[Sz.jsxDEV(f,{marginBottom:1,children:Sz.jsxDEV(M,{dimColor:!0,children:["The ",Sz.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),Sz.jsxDEV(f,{children:[Sz.jsxDEV(M,{dimColor:!0,children:"Plugin:"},void 0,!1,void 0,this),Sz.jsxDEV(M,{children:[" ",J]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),Sz.jsxDEV(f,{children:[Sz.jsxDEV(M,{dimColor:!0,children:"Marketplace:"},void 0,!1,void 0,this),Sz.jsxDEV(M,{children:[" ",X]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),Q&&Sz.jsxDEV(f,{children:Sz.jsxDEV(M,{dimColor:!0,children:Q},void 0,!1,void 0,this)},void 0,!1,void 0,this),Sz.jsxDEV(f,{marginTop:1,children:Sz.jsxDEV(M,{children:"Would you like to install it?"},void 0,!1,void 0,this)},void 0,!1,void 0,this),Sz.jsxDEV(f,{children:Sz.jsxDEV(Y8,{options:[{label:Sz.jsxDEV(M,{children:["Yes, install ",Sz.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 HY1,Sz,GeQ=30000;var DlJ=j(()=>{t0();ZQ();m3();HY1=E(X1(),1),Sz=E(t(),1)});function IlJ(){let J=$lJ.c(20),{addNotification:Q}=w9(),X=H1(HeQ),Z;J:{if(!X){let _;if(J[0]===Symbol.for("react.memo_cache_sentinel"))_={totalFailed:0,failedMarketplacesCount:0,failedPluginsCount:0},J[0]=_;else _=J[0];Z=_;break J}let W;if(J[1]!==X.marketplaces)W=X.marketplaces.filter(WeQ),J[1]=X.marketplaces,J[2]=W;else W=J[2];let H=W,B;if(J[3]!==X.plugins)B=X.plugins.filter(zeQ),J[3]=X.plugins,J[4]=B;else B=J[4];let U=B,F=H.length+U.length,O;if(J[5]!==H.length||J[6]!==U.length||J[7]!==F)O={totalFailed:F,failedMarketplacesCount:H.length,failedPluginsCount:U.length},J[5]=H.length,J[6]=U.length,J[7]=F,J[8]=O;else O=J[8];Z=O}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(a9())return;if(!X){y("No installation status to monitor");return}if(Y===0)return;if(y(`Plugin installation status: ${q} failed marketplaces, ${K} failed plugins`),Y===0)return;y(`Adding notification for ${Y} failed installations`),Q({key:"plugin-install-failed",jsx:XK0.jsxDEV(XK0.Fragment,{children:[XK0.jsxDEV(M,{color:"error",children:[Y," ",t8(Y,"plugin")," failed to install"]},void 0,!0,void 0,this),XK0.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];jlJ.useEffect(G,z)}function zeQ(J){return J.status==="failed"}function WeQ(J){return J.status==="failed"}function HeQ(J){return J.plugins.installationStatus}var $lJ,jlJ,XK0;var ylJ=j(()=>{w1();mY();t0();K6();Y1();$lJ=E(Z1(),1),jlJ=E(X1(),1),XK0=E(t(),1)});function blJ(){let J=PlJ.c(7),{addNotification:Q}=w9(),X;if(J[0]===Symbol.for("react.memo_cache_sentinel"))X=[],J[0]=X;else X=J[0];let[Z,Y]=E$0.useState(X),q,K;if(J[1]===Symbol.for("react.memo_cache_sentinel"))q=()=>{if(a9())return;return KVJ((H)=>{y(`Plugin autoupdate notification: ${H.length} plugin(s) updated`),Y(H)})},K=[],J[1]=q,J[2]=K;else q=J[1],K=J[2];E$0.useEffect(q,K);let G,z;if(J[3]!==Q||J[4]!==Z)G=()=>{if(a9())return;if(Z.length===0)return;let W=Z.map(BeQ),H=W.length<=2?W.join(" and "):`${W.length} plugins`;Q({key:"plugin-autoupdate-restart",jsx:ZK0.jsxDEV(ZK0.Fragment,{children:[ZK0.jsxDEV(M,{color:"success",children:[W.length===1?"Plugin":"Plugins"," updated:"," ",H]},void 0,!0,void 0,this),ZK0.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}),y(`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];E$0.useEffect(G,z)}function BeQ(J){let Q=J.indexOf("@");return Q>0?J.substring(0,Q):J}var PlJ,E$0,ZK0;var ElJ=j(()=>{w1();mY();t0();Y1();k91();PlJ=E(Z1(),1),E$0=E(X1(),1),ZK0=E(t(),1)});import{isAbsolute as UeQ,resolve as FeQ}from"path";function uY8(J,Q,X){let Z=[],Y=[],q=[];for(let[K,G]of Object.entries(J)){let z=Q[K],W=ClJ(G.source,X?.projectRoot);if(!z)Z.push(K);else if(G.sourceIsFallback)q.push(K);else if(!Pw(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 BY1(J){let Q=Ym();if(Object.keys(Q).length===0)return{installed:[],updated:[],failed:[],upToDate:[],skipped:[]};let X;try{X=await vZ()}catch(H){H0(H),X={}}let Z=uY8(Q,X,{projectRoot:b8()}),Y=[...Z.missing.map((H)=>({name:H,source:ClJ(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"&&mj(H.source)&&!await W7(H.source.path)){y(`[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};y(`[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 O=await Km(U);if(F==="install")G.push(B);else z.push(B);J?.onProgress?.({type:"installed",name:B,alreadyMaterialized:O.alreadyMaterialized})}catch(O){let _=a0(O);W.push({name:B,error:_}),J?.onProgress?.({type:"failed",name:B,error:_}),H0(O)}}return{installed:G,updated:z,failed:W,upToDate:Z.upToDate,skipped:q}}function ClJ(J,Q){if((J.source==="directory"||J.source==="file")&&!UeQ(J.path)){let X=Q??b8(),Z=YK(X);return{...J,path:FeQ(Z??X,J.path)}}return J}var gY8=j(()=>{M60();w1();Y1();D1();_9();l7();j1();w5();ZU()});function mY8(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 TlJ(J){y("performBackgroundPluginInstallations called");try{let Q=Ym(),X=await vZ().catch(()=>({})),Z=uY8(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;y(`Installing ${Y.length} marketplace(s) in background`);let q=await BY1({onProgress:(G)=>{switch(G.type){case"installing":mY8(J,G.name,"installing");break;case"installed":mY8(J,G.name,"installed");break;case"failed":mY8(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(d("jarvis_api_error",K),u1("info","jarvis_api_error",K),q.installed.length>0){WP(),y(`Auto-refreshing plugins after ${q.installed.length} new marketplace(s) installed`);try{await ro(J)}catch(G){H0(G),y(`Auto-refresh failed, falling back to needsRefresh: ${G}`,{level:"warn"}),_F("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)WP(),_F("performBackgroundPluginInstallations: marketplaces reconciled"),J((G)=>{if(G.plugins.needsRefresh)return G;return{...G,plugins:{...G.plugins,needsRefresh:!0}}})}catch(Q){H0(Q)}}var vlJ=j(()=>{Y1();cZ();j1();w5();VK();gY8();FQ1();M1()});async function flJ(J){if(y("performStartupChecks called"),!zK()){y("Trust not accepted for current directory - skipping plugin installations");return}try{if(y("Starting background plugin installations"),await H61())WP(),_F("performStartupChecks: seed marketplaces changed"),J((X)=>{if(X.plugins.needsRefresh)return X;return{...X,plugins:{...X.plugins,needsRefresh:!0}}});await TlJ(J)}catch(Q){y(`Error initiating background plugin installations: ${Q}`)}}var SlJ=j(()=>{vlJ();P8();Y1();w5();VK()});function klJ(){let J=xlJ.c(11),Q;if(J[0]===Symbol.for("react.memo_cache_sentinel"))Q=U3.getInstance().getStatus(),J[0]=Q;else Q=J[0];let[X,Z]=UY1.useState(Q),Y,q;if(J[1]===Symbol.for("react.memo_cache_sentinel"))Y=()=>{return U3.getInstance().subscribe(Z)},q=[],J[1]=Y,J[2]=q;else Y=J[1],q=J[2];if(UY1.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=kf.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&&kf.jsxDEV(f,{flexDirection:"column",marginTop:1,children:X.output.slice(-5).map(_eQ)},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&&kf.jsxDEV(f,{marginTop:1,children:kf.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=kf.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 _eQ(J,Q){let X=J.match(OeQ);if(!X)return kf.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 kf.jsxDEV(M,{dimColor:!0,children:[q,kf.jsxDEV(HJ,{url:Z,children:Z},void 0,!1,void 0,this),K]},Q,!0,void 0,this)}var xlJ,UY1,kf,OeQ;var hlJ=j(()=>{t0();Vu0();xlJ=E(Z1(),1),UY1=E(X1(),1),kf=E(t(),1),OeQ=/https?:\/\/\S+/});function NeQ(J){let Q=J.toLowerCase(),X=N6();for(let[Z,Y]of Object.entries(LeQ)){let q=Y.retirementDates[X];if(!Q.includes(Z)||!q)continue;return{isDeprecated:!0,modelName:Y.modelName,retirementDate:q}}return{isDeprecated:!1}}function FY1(J){if(!J)return null;let Q=NeQ(J);if(!Q.isDeprecated)return null;return`\u26A0 ${Q.modelName} will be retired on ${Q.retirementDate}. Consider switching to a newer model.`}var LeQ;var pY8=j(()=>{KY();LeQ={"claude-3-opus":{modelName:"Custom Glock Model",retirementDates:{firstParty:"January 5, 2026",bedrock:"January 15, 2026",vertex:"January 5, 2026",foundry:"January 5, 2026"}},"claude-3-7-sonnet":{modelName:"Custom Glock Model",retirementDates:{firstParty:"February 19, 2026",bedrock:"April 28, 2026",vertex:"May 11, 2026",foundry:"February 19, 2026"}},"claude-3-5-haiku":{modelName:"Custom Glock Model",retirementDates:{firstParty:"February 19, 2026",bedrock:null,vertex:null,foundry:null}}}});function glJ(J){let Q=ulJ.c(4),{addNotification:X}=w9(),Z=OY1.useRef(null),Y,q;if(Q[0]!==X||Q[1]!==J)Y=()=>{if(a9())return;let K=FY1(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];OY1.useEffect(Y,q)}var ulJ,OY1;var mlJ=j(()=>{mY();pY8();w1();ulJ=E(Z1(),1),OY1=E(X1(),1)});function plJ(){Pp(weQ)}async function weQ(){if(K3()||r0(process.env.DISABLE_INSTALLATION_CHECKS))return null;if(await lv()==="development")return null;return{timeoutMs:15000,key:"npm-deprecation-warning",text:VeQ,color:"warning",priority:"high"}}var VeQ="Glock has switched from npm to native installer. Run `glock install` or see https://docs.getglock.dev/getting-started for more options.";var clJ=j(()=>{i40();S1();D$0()});function llJ(J){let Q=dlJ.c(26),{ideSelection:X,mcpClients:Z,ideInstallationStatus:Y}=J,{addNotification:q,removeNotification:K}=w9(),{status:G,ideName:z}=Cq0(Z),W=hs.useRef(!1),H;if(Q[0]!==Y)H=Y?gD(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),O=G==="connected"&&!F,_=U&&!B&&!O&&!F,L=U&&B&&!O&&!F,V,A;if(Q[2]!==q||Q[3]!==G||Q[4]!==K||Q[5]!==L)V=()=>{if(a9())return;if(yW()||G!==null||L){K("ide-status-hint");return}if(W.current||(B1().ideHintShownCount??0)>=AeQ)return;let T=setTimeout(ReQ,3000,W,q);return()=>clearTimeout(T)},A=[q,K,G,L],Q[2]=q,Q[3]=G,Q[4]=K,Q[5]=L,Q[6]=V,Q[7]=A;else V=Q[6],A=Q[7];hs.useEffect(V,A);let R,D;if(Q[8]!==q||Q[9]!==z||Q[10]!==G||Q[11]!==K||Q[12]!==_||Q[13]!==L)R=()=>{if(a9())return;if(_||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,_,L],Q[8]=q,Q[9]=z,Q[10]=G,Q[11]=K,Q[12]=_,Q[13]=L,Q[14]=R,Q[15]=D;else R=Q[14],D=Q[15];hs.useEffect(R,D);let $,P;if(Q[16]!==q||Q[17]!==K||Q[18]!==L)$=()=>{if(a9())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"})},P=[q,K,L],Q[16]=q,Q[17]=K,Q[18]=L,Q[19]=$,Q[20]=P;else $=Q[19],P=Q[20];hs.useEffect($,P);let v,b;if(Q[21]!==q||Q[22]!==K||Q[23]!==_)v=()=>{if(a9())return;if(!_){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"})},b=[q,K,_],Q[21]=q,Q[22]=K,Q[23]=_,Q[24]=v,Q[25]=b;else v=Q[24],b=Q[25];hs.useEffect(v,b)}function ReQ(J,Q){$X0(!0).then((X)=>{let Z=X[0]?.name;if(Z&&!J.current)J.current=!0,o1(MeQ),Q({key:"ide-status-hint",jsx:cY8.jsxDEV(M,{dimColor:!0,children:["/ide for ",cY8.jsxDEV(M,{color:"ide",children:Z},void 0,!1,void 0,this)]},void 0,!0,void 0,this),priority:"low"})})}function MeQ(J){return{...J,ideHintShownCount:(J.ideHintShownCount??0)+1}}var dlJ,hs,cY8,AeQ=5;var ilJ=j(()=>{mY();t0();P8();a5();w1();fX1();dlJ=E(Z1(),1),hs=E(X1(),1),cY8=E(t(),1)});function nlJ(J){if(!("text"in J))return 1;let Q=J.text.match(/^(\d+)/);return Q?.[1]?parseInt(Q[1],10):1}function DeQ(J,Q){return rlJ(nlJ(J)+1)}function rlJ(J){return{key:"teammate-spawn",text:J===1?"1 agent spawned":`${J} agents spawned`,priority:"low",timeoutMs:5000,fold:DeQ}}function $eQ(J,Q){return alJ(nlJ(J)+1)}function alJ(J){return{key:"teammate-shutdown",text:J===1?"1 agent shut down":`${J} agents shut down`,priority:"low",timeoutMs:5000,fold:$eQ}}function olJ(){let J=H1((Y)=>Y.tasks),{addNotification:Q}=w9(),X=C$0.useRef(new Set),Z=C$0.useRef(new Set);C$0.useEffect(()=>{if(a9())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(rlJ(1));if(q.status==="completed"&&!Z.current.has(Y))Z.current.add(Y),Q(alJ(1))}},[J,Q])}var C$0;var slJ=j(()=>{w1();mY();K6();C$0=E(X1(),1)});function XiJ(){let J=QiJ.c(13),{addNotification:Q}=w9(),X=H1(PeQ),Z=M6(),Y,q;if(J[0]!==Q||J[1]!==X||J[2]!==Z)Y=()=>{if(a9())return;if(!j9())return;return MW6((H)=>{if(H)Q({key:JiJ,color:"fastMode",priority:"immediate",text:"Fast mode is now available \xB7 /fast to turn on"});else if(X)Z(yeQ),Q({key:JiJ,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];_Y1.useEffect(Y,q);let K,G;if(J[5]!==Q||J[6]!==Z)K=()=>{if(a9())return;if(!j9())return;return AW6((H)=>{Z(IeQ),Q({key:jeQ,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];_Y1.useEffect(K,G);let z,W;if(J[9]!==Q||J[10]!==X)z=()=>{if(a9())return;if(!X)return;let H=_W6((U,F)=>{let O=hQ(U-Date.now(),{hideTrailingZeros:!0}),_=beQ(F,O);Q({key:tlJ,invalidates:[elJ],text:_,color:"warning",priority:"immediate"})}),B=LW6(()=>{Q({key:elJ,invalidates:[tlJ],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];_Y1.useEffect(z,W)}function IeQ(J){return{...J,fastMode:!1}}function yeQ(J){return{...J,fastMode:!1}}function PeQ(J){return J.fastMode}function beQ(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 QiJ,_Y1,tlJ="fast-mode-cooldown-started",elJ="fast-mode-cooldown-expired",JiJ="fast-mode-org-changed",jeQ="fast-mode-overage-rejected";var ZiJ=j(()=>{mY();K6();_U();w6();w1();QiJ=E(Z1(),1),_Y1=E(X1(),1)});function qiJ(J){let Q=YiJ.c(8),{onRun:X,onCancel:Z,reason:Y}=J,q=LY1.useRef(!1),K;if(Q[0]===Symbol.for("react.memo_cache_sentinel"))K={context:"Confirmation"},Q[0]=K;else K=Q[0];z8("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];LY1.useEffect(G,z);let W;if(Q[4]===Symbol.for("react.memo_cache_sentinel"))W=hf.jsxDEV(f,{children:hf.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=hf.jsxDEV(f,{children:hf.jsxDEV(M,{dimColor:!0,children:["Press ",hf.jsxDEV(n1,{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=hf.jsxDEV(f,{flexDirection:"column",marginTop:1,children:[W,H,hf.jsxDEV(f,{children:hf.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 KiJ(J){return!1;switch(J){case"feedback_survey_bad":return!1;case"feedback_survey_good":return!1;default:return!1}}function GiJ(J){return"/issue"}function ziJ(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 YiJ,LY1,hf;var WiJ=j(()=>{i9();t0();f6();YiJ=E(Z1(),1),LY1=E(X1(),1),hf=E(t(),1)});function HiJ(){return null}function TeQ(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===P6){let K=Z.input?.command||"";if(EeQ.some((G)=>G.test(K)))return!1}}}return!0}function veQ(J){for(let Q=J.length-1;Q>=0;Q--){let X=J[Q];if(X.type!=="user")continue;let Z=ar(X);if(!Z)continue;return CeQ.some((Y)=>Y.test(Z))}return!1}function BiJ(J,Q){if(process.env.USER_TYPE!=="ant")return!1;let X=T$0.useRef(0),Z=T$0.useRef(-1),Y=T$0.useMemo(()=>TeQ(J)&&veQ(J),[J]);if(Z.current===Q)return!0;if(Date.now()-X.current<SeQ)return!1;if(Q<feQ)return!1;if(!Y)return!1;return X.current=Date.now(),Z.current=Q,!0}var T$0,EeQ,CeQ,feQ=3,SeQ=1800000;var UiJ=j(()=>{I8();T$0=E(X1(),1),EeQ=[/\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/],CeQ=[/^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 xeQ,keQ,heQ;var FiJ=j(()=>{w1();t0();xeQ=E(Z1(),1),keQ=E(X1(),1),heQ=E(t(),1)});function dY8(J){let Q=OiJ.c(7),{children:X,mouseTracking:Z}=J,Y=Z===void 0?!0:Z,q=v$0.useContext(Hh),K=v$0.useContext(Fh),G,z;if(Q[0]!==Y||Q[1]!==K)G=()=>{let B=SY.get(process.stdout);if(!K)return;return K(YF0+"\x1B[2J\x1B[H"+(Y?Vi:"")),B?.setAltScreenActive(!0,Y),()=>{B?.setAltScreenActive(!1),B?.clearTextSelection(),K((Y?CC:"")+EJ0)}},z=[K,Y],Q[0]=Y,Q[1]=K,Q[2]=G,Q[3]=z;else G=Q[2],z=Q[3];v$0.useInsertionEffect(G,z);let W=q?.rows??24,H;if(Q[4]!==X||Q[5]!==W)H=_iJ.jsxDEV(Pq,{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 OiJ,v$0,_iJ;var LiJ=j(()=>{AO();Wh();xC();SC();zF0();OiJ=E(Z1(),1),v$0=E(X1(),1),_iJ=E(t(),1)});function NiJ(J,Q,X){let Z=YK0.useRef(!1),Y=YK0.useRef(X);Y.current=X,YK0.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(!(B1().copyOnSelect??!0))return;let W=J.copySelectionNoClear();if(!W||!W.trim()){Z.current=!0;return}Z.current=!0,Y.current?.(W)})},[Q,J])}function ViJ(J){let[Q]=v6();YK0.useEffect(()=>{J.setSelectionBgColor(A3(Q).selectionBg)},[J,Q])}var YK0;var wiJ=j(()=>{zJ0();P8();aM();YK0=E(X1(),1)});function teQ(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 eeQ(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 MiJ(J,Q,X){if(!J.xtermJs){if(J.wheelMode&&X-J.time>ieQ)J.wheelMode=!1,J.burstCount=0,J.mult=J.base;if(J.pendingFlip){if(J.pendingFlip=!1,Q!==J.dir||X-J.time>peQ)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<RiJ)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/AiJ),W=Math.max(deQ,J.base*2),H=1+(J.mult-1)*z+ceQ*z;return J.mult=Math.min(W,H,J.mult+leQ),Math.floor(J.mult)}if(G>ueQ)J.mult=J.base;else{let z=Math.max(meQ,J.base*2);J.mult=Math.min(z,J.mult+geQ)}return Math.floor(J.mult)}let Z=X-J.time,Y=Q===J.dir;if(J.time=X,J.dir=Q,Y&&Z<RiJ)return 1;if(!Y||Z>seQ)J.mult=2,J.frac=0;else{let G=Math.pow(0.5,Z/AiJ),z=Z>=reQ?aeQ:oeQ;J.mult=Math.min(z,1+(J.mult-1)*G+neQ*G)}let q=J.mult+J.frac,K=Math.floor(q);return J.frac=q-K,K}function J0X(){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 Q0X(J=!1,Q=1){return{time:0,mult:Q,dir:0,xtermJs:J,frac:0,base:Q,pendingFlip:!1,wheelMode:!1,burstCount:0}}function DiJ(){let J=vC(),Q=J0X();return y(`wheel accel: ${J?"decay (xterm.js)":"window (native)"} \xB7 base=${Q} \xB7 TERM_PROGRAM=${process.env.TERM_PROGRAM??"unset"}`),Q0X(J,Q)}function lY8({scrollRef:J,isActive:Q,onScroll:X,isModal:Z=!1}){let Y=lJ0(),{addNotification:q}=w9(),K=gf.useRef(null);function G(H){let B=R26(),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(),O=F+H.getViewportHeight()-1;if(U.anchor.row<F||U.anchor.row>O)return;if(U.focus.row<F||U.focus.row>O)return;let _=Math.max(0,H.getScrollHeight()-H.getViewportHeight()),L=H.getScrollTop()+H.getPendingDelta(),V=Math.max(0,Math.min(_,L+B))-L;if(V===0)return;if(V>0)Y.captureScrolledRows(F,F+V-1,"above"),Y.shiftSelection(-V,F,O);else{let A=-V;Y.captureScrolledRows(O-A+1,O,"below"),Y.shiftSelection(A,F,O)}}return k6({"scroll:pageUp":()=>{let H=J.current;if(!H)return;let B=-Math.max(1,Math.floor(H.getViewportHeight()/2));W(H,B);let U=uf(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=uf(H,B);X?.(U,H)},"scroll:lineUp":()=>{Y.clearSelection();let H=J.current;if(!H||H.getScrollHeight()<=H.getViewportHeight())return!1;K.current??=DiJ(),G0X(H,MiJ(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??=DiJ();let B=MiJ(K.current,1,performance.now()),U=K0X(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}),k6({"scroll:halfPageUp":()=>{let H=J.current;if(!H)return;let B=-Math.max(1,Math.floor(H.getViewportHeight()/2));W(H,B);let U=uf(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=uf(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=uf(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=uf(H,B);X?.(U,H)}},{context:"Scroll",isActive:Q}),jJ((H,B,U)=>{let F=J.current;if(!F)return;let O=W0X(F,z0X(H,B),(_)=>W(F,_));if(O===null)return;X?.(O,F),U.stopImmediatePropagation()},{isActive:Q&&Z}),jJ((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=eeQ(B);if(F){Y.moveFocus(F),U.stopImmediatePropagation();return}if(teQ(B))Y.clearSelection()},{isActive:Q}),Y0X(J,Y,Q,X),NiJ(Y,Q,G),ViJ(Y),null}function Y0X(J,Q,X,Z){let Y=gf.useRef(null),q=gf.useRef(0),K=gf.useRef(0),G=gf.useRef(0),z=gf.useRef(Z);z.current=Z,gf.useEffect(()=>{if(!X)return;function W(){if(q.current=0,Y.current)clearInterval(Y.current),Y.current=null}function H(){let O=Q.getState(),_=J.current,L=q.current;if(!O?.isDragging||!O.focus||!_||L===0||++G.current>Z0X){W();return}if(_.getPendingDelta()!==0)return;let V=_.getViewportTop(),A=V+_.getViewportHeight()-1;if(L<0){if(_.getScrollTop()<=0){W();return}let R=Math.min(NY1,_.getScrollTop());Q.captureScrolledRows(A-R+1,A,"below"),Q.shiftAnchor(R,0,A),_.scrollBy(-NY1)}else{let R=Math.max(0,_.getScrollHeight()-_.getViewportHeight());if(_.getScrollTop()>=R){W();return}let D=Math.min(NY1,R-_.getScrollTop());Q.captureScrolledRows(V,V+D-1,"above"),Q.shiftAnchor(-D,V,A),_.scrollBy(NY1)}z.current?.(!1,_)}function B(O){if(K.current=O,q.current===O)return;if(W(),q.current=O,G.current=0,H(),q.current===O)Y.current=setInterval(H,X0X)}function U(){let O=J.current;if(!O){W();return}let _=O.getViewportTop(),L=_+O.getViewportHeight()-1,V=Q.getState();if(!V?.isDragging||V.scrolledOffAbove.length===0&&V.scrolledOffBelow.length===0)K.current=0;let A=q0X(V,_,L,K.current);if(A===0){if(K.current!==0&&V?.focus){let R=V.focus.row<_?-1:V.focus.row>L?1:0;if(R!==0&&R!==K.current)V.scrolledOffAbove=[],V.scrolledOffBelow=[],V.scrolledOffAboveSW=[],V.scrolledOffBelowSW=[],K.current=0}W()}else B(A)}let F=Q.subscribe(U);return()=>{F(),W(),K.current=0}},[X,J,Q])}function q0X(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 uf(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 K0X(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 G0X(J,Q){if(J.getScrollTop()+J.getPendingDelta()-Q<=0){J.scrollTo(0);return}J.scrollBy(-Q)}function z0X(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 W0X(J,Q,X){switch(Q){case null:return null;case"lineUp":case"lineDown":{let Z=Q==="lineDown"?1:-1;return X(Z),uf(J,Z)}case"halfPageUp":case"halfPageDown":{let Z=Math.max(1,Math.floor(J.getViewportHeight()/2)),Y=Q==="halfPageDown"?Z:-Z;return X(Y),uf(J,Y)}case"fullPageUp":case"fullPageDown":{let Z=Math.max(1,J.getViewportHeight()),Y=Q==="fullPageDown"?Z:-Z;return X(Y),uf(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 gf,ueQ=40,geQ=0.3,meQ=6,peQ=200,ceQ=15,deQ=15,leQ=3,ieQ=1500,AiJ=150,neQ=5,RiJ=5,reQ=80,aeQ=3,oeQ=6,seQ=500,NY1=2,X0X=50,Z0X=200;var $iJ=j(()=>{mY();wiJ();tm0();fC();BW();t0();f6();Y1();gf=E(X1(),1)});var EiJ={};d1(EiJ,{REPL:()=>rY8});import{dirname as H0X,join as B0X}from"path";import{tmpdir as U0X}from"os";import{writeFile as F0X}from"fs/promises";import{randomUUID as f$0}from"crypto";function IiJ(J){let Q=nY8.c(9),{showAllInTranscript:X,virtualScroll:Z,searchBadge:Y,suppressShowAll:q,status:K}=J,G=q===void 0?!1:q,z=l9("app:toggleTranscript","Global","ctrl+o"),W=l9("transcript:toggleShowAll","Transcript","ctrl+e"),H=Y?" \xB7 n/N to navigate":Z?` \xB7 ${Q1.arrowUp}${Q1.arrowDown} scroll \xB7 home/end top/bottom`:G?"":` \xB7 ${W} to ${X?"collapse":"show all"}`,B;if(Q[0]!==H||Q[1]!==z)B=J6.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?J6.jsxDEV(J6.Fragment,{children:[J6.jsxDEV(f,{flexGrow:1},void 0,!1,void 0,this),J6.jsxDEV(M,{children:[K," "]},void 0,!0,void 0,this)]},void 0,!0,void 0,this):Y?J6.jsxDEV(J6.Fragment,{children:[J6.jsxDEV(f,{flexGrow:1},void 0,!1,void 0,this),J6.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=J6.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 M0X({jumpRef:J,count:Q,current:X,onClose:Z,onCancel:Y,setHighlight:q,initialQuery:K}){let{query:G,cursorOffset:z}=lN({isActive:!0,initialQuery:K,onExit:()=>Z(G),onCancel:Y}),[W,H]=J5.useState("building");J5.useEffect(()=>{let O=!0,_=J.current?.warmSearchIndex;if(!_){H(null);return}return H("building"),_().then((L)=>{if(!O)return;if(L<20)H(null);else H({ms:L}),setTimeout(()=>O&&H(null),2000)}),()=>{O=!1}},[]);let B=W!=="building";p1.useEffect(()=>{if(!B)return;J.current?.setSearchQuery(G),q(G)},[G,B]);let U=z,F=U<G.length?G[U]:" ";return J6.jsxDEV(f,{borderTopDimColor:!0,borderBottom:!1,borderLeft:!1,borderRight:!1,borderStyle:"single",marginTop:1,paddingLeft:2,width:"100%",noSelect:!0,children:[J6.jsxDEV(M,{children:"/"},void 0,!1,void 0,this),J6.jsxDEV(M,{children:G.slice(0,U)},void 0,!1,void 0,this),J6.jsxDEV(M,{inverse:!0,children:F},void 0,!1,void 0,this),U<G.length&&J6.jsxDEV(M,{children:G.slice(U+1)},void 0,!1,void 0,this),J6.jsxDEV(f,{flexGrow:1},void 0,!1,void 0,this),W==="building"?J6.jsxDEV(M,{dimColor:!0,children:"indexing\u2026 "},void 0,!1,void 0,this):W?J6.jsxDEV(M,{dimColor:!0,children:["indexed in ",W.ms,"ms "]},void 0,!0,void 0,this):Q===0&&G?J6.jsxDEV(M,{color:"error",children:"no matches "},void 0,!1,void 0,this):Q>0?J6.jsxDEV(M,{dimColor:!0,children:[X,"/",Q," "]},void 0,!0,void 0,this):null]},void 0,!0,void 0,this)}function PiJ(J){let Q=nY8.c(6),{isAnimating:X,title:Z,disabled:Y,noPrefix:q}=J,K=L5(),[G,z]=p1.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($0X,D0X,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];p1.useEffect(W,H);let B=X?biJ[G]??yiJ:yiJ;return Qp0(Y?null:q?Z:`${B} ${Z}`),null}function $0X(J){return J(j0X)}function j0X(J){return(J+1)%biJ.length}function rY8({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:O,onBeforeQuery:_,onTurnComplete:L,disabled:V=!1,mainThreadAgentDefinition:A,disableSlashCommands:R=!1,taskListId:D,remoteSessionConfig:$,directConnectConfig:P,sshSession:v,thinkingConfig:b}){let T=!!$,S=p1.useMemo(()=>r0(process.env.GLOCK_DISABLE_TERMINAL_TITLE),[]),k=p1.useMemo(()=>!1,[]),h=p1.useMemo(()=>r0(process.env.GLOCK_DISABLE_VIRTUAL_SCROLL),[]),u=!1;p1.useEffect(()=>{return y(`[REPL:mount] REPL mounted, disabled=${V}`),()=>y("[REPL:unmount] REPL unmounting")},[V]);let[x,g]=p1.useState(A),p=H1((q1)=>q1.toolPermissionContext),c=H1((q1)=>q1.verbose),i=H1((q1)=>q1.mcp),Y0=H1((q1)=>q1.plugins),n=H1((q1)=>q1.agentDefinitions),s=H1((q1)=>q1.fileHistory),e=H1((q1)=>q1.initialMessage),q0=pP(),z0=H1((q1)=>q1.spinnerTip),D0=H1((q1)=>q1.expandedView)==="tasks",K0=H1((q1)=>q1.pendingWorkerRequest),$0=H1((q1)=>q1.pendingSandboxRequest),U0=H1((q1)=>q1.teamContext),o=H1((q1)=>q1.tasks),a=H1((q1)=>q1.workerSandboxPermissions),Q0=H1((q1)=>q1.elicitation),X0=H1((q1)=>q1.ultraplanPendingChoice),J0=H1((q1)=>q1.ultraplanLaunchPending),F0=H1((q1)=>q1.viewingAgentTaskId),R0=M6(),_0=F0?o[F0]:void 0,M0=sK(_0)&&_0.retain&&!_0.diskLoaded;p1.useEffect(()=>{if(!F0||!M0)return;let q1=F0;Rg(j4(q1)).then((R1)=>{R0((k1)=>{let l8=k1.tasks[q1];if(!sK(l8)||l8.diskLoaded||!l8.retain)return k1;let W6=l8.messages??[],p6=new Set(W6.map((FJ)=>FJ.uuid)),H6=R1?R1.messages.filter((FJ)=>!p6.has(FJ.uuid)):[];return{...k1,tasks:{...k1.tasks,[q1]:{...l8,messages:[...H6,...W6],diskLoaded:!0}}}})})},[F0,M0,R0]);let B0=rX(),I0=Oh(),w0=K2(),[L0,E0]=p1.useState(J);FcJ(T?void 0:TY(),E0);let m0=J5.useSyncExternalStore(jiJ?.subscribeToProactiveChanges??N0X,jiJ?.isProactiveActive??V0X),s0=H1((q1)=>q1.isBriefOnly),T0=p1.useMemo(()=>PF(p),[p,m0,s0]);EdJ(),CdJ();let[P0,S0]=p1.useState(H),y0=p1.useCallback((q1)=>{S0(q1)},[S0]),[N0,A0]=p1.useState("prompt"),[b0,k0]=p1.useState(!1),[h0,c0]=p1.useState(!1),[e0,G0]=p1.useState(""),i0=p1.useRef(0),j0=p1.useRef(void 0),C0=p1.useRef(!1),{addNotification:n0,removeNotification:z1}=w9(),A1=w0X,c1=GcJ(W,i.clients),[H8,D8]=p1.useState(void 0),[U6,e8]=p1.useState(null),[y6,K8]=p1.useState(null),[W0,O0]=p1.useState(!1),[v0,l0]=p1.useState(()=>{return!1}),[J1,o0]=p1.useState(()=>ccJ(w0)),T1=H1((q1)=>q1.showRemoteCallout),[L1,C1]=p1.useState(()=>DdJ());llJ({ideSelection:H8,mcpClients:c1,ideInstallationStatus:y6}),sdJ({mcpClients:c1}),edJ(),IlJ(),blJ(),ndJ(),XiJ(),glJ(w0),plJ(),_0X(),GdJ(),UdJ(),LdJ(),XlJ(),olJ();let{recommendation:J8,handleResponse:G6}=_lJ(),{recommendation:d8,handleResponse:GJ}=AlJ(),V6=p1.useMemo(()=>{return[...T0,...X]},[T0,X]);_cJ({enabled:!T});let RJ=bJJ();p1.useEffect(()=>{if(T)return;flJ(R0)},[R0,T]),wdJ(T?iY8:c1,p.mode),DpJ(R0,Z,{enabled:!T});let e6=XQ1(V6,i.tools,p),{tools:NQ,allowedAgentTypes:A7}=p1.useMemo(()=>{if(!x)return{tools:e6,allowedAgentTypes:void 0};let q1=Zv(x,e6,!1,!0);return{tools:q1.resolvedTools,allowedAgentTypes:q1.allowedAgentTypes}},[x,e6]),vQ=FY8(L0,Y0.commands),F6=FY8(vQ,i.commands),_X=p1.useMemo(()=>R?[]:F6,[R,F6]);DSJ(T?iY8:i.clients),AcJ(T?iY8:i.clients,D8);let[S8,IX]=p1.useState("responding"),mG=p1.useRef(S8);mG.current=S8;let[t9,Kq]=p1.useState([]),[Q5,e9]=p1.useState(null);p1.useEffect(()=>{if(Q5&&!Q5.isStreaming&&Q5.streamingEndedAt){let R1=30000-(Date.now()-Q5.streamingEndedAt);if(R1>0){let k1=setTimeout(e9,R1,null);return()=>clearTimeout(k1)}else e9(null)}},[Q5]);let[QY,oQ]=p1.useState(null),T5=p1.useRef(null);T5.current=QY;let XX=p1.useRef(()=>{}),hZ=p1.useRef(()=>{}),C4=p1.useRef(null),$Y=p1.useRef(null),XY=p1.useRef(0),t7=J5.useRef(new oQ8).current,B4=J5.useSyncExternalStore(t7.subscribe,t7.getSnapshot),[T4,X5]=J5.useState($?.hasInitialPrompt??!1),lJ=B4||T4,[O9,Gq]=J5.useState(void 0),sX=J5.useRef(0),fQ=J5.useRef(!1),R7=J5.useRef(0),s1=J5.useRef(0),s8=J5.useRef(null),hJ=J5.useCallback(()=>{R7.current=Date.now(),s1.current=0,s8.current=null},[]),VJ=J5.useRef(!1);if(B4&&!VJ.current)hJ();VJ.current=B4;let tJ=J5.useCallback((q1)=>{if(X5(q1),q1)hJ()},[hJ]),aJ=J5.useRef(null),M7=J5.useRef(void 0),B9=J5.useRef(void 0),S6=1500,[uJ,J7]=J5.useState(!1),[zJ,oJ]=p1.useState(null);p1.useEffect(()=>{if(zJ?.notifications)zJ.notifications.forEach((q1)=>{n0({key:"auto-updater-notification",text:q1,priority:"low"})})},[zJ,n0]),p1.useEffect(()=>{if(pJ())R36().then((q1)=>{if(q1)n0({key:"tmux-mouse-hint",text:q1,priority:"low"})})},[]);let[yX,O7]=p1.useState(!1);p1.useEffect(()=>{},[]);let[I9,P7]=p1.useState(null),M9=p1.useRef(null),g9=p1.useCallback((q1)=>{if(q1?.isLocalJSXCommand){let{clearLocalJSX:R1,...k1}=q1;M9.current={...k1,isLocalJSXCommand:!0},P7(k1);return}if(M9.current){if(q1?.clearLocalJSX){M9.current=null,P7(null);return}return}if(q1?.clearLocalJSX){P7(null);return}P7(q1)},[]),[SQ,zQ]=p1.useState([]),[uZ,sY]=p1.useState(null),[v4,Z5]=p1.useState([]),[jY,U4]=p1.useState([]),WQ=p1.useRef(new Map),f4=H1((q1)=>q1.settings.terminalTitleFromRename)!==!1?FB(V1()):void 0,[Y5,nq]=p1.useState(),gZ=p1.useRef((Z?.length??0)>0),rq=x?.agentType,aq=f4??rq??Y5??"Glock",F4=SQ.length>0||jY.length>0||K0||$0,h8=I9?.isLocalJSXCommand===!0&&I9?.jsx!=null,E8=lJ&&!F4&&!h8;p1.useEffect(()=>{if(lJ&&!F4&&!h8)return tfJ(),()=>efJ()},[lJ,F4,h8]);let PJ=F4||h8?"waiting":lJ?"busy":"idle",VQ=PJ!=="waiting"?void 0:SQ.length>0?`approve ${SQ[0].tool.name}`:K0?"worker request":$0?"sandbox request":h8?"dialog open":"input needed";p1.useEffect(()=>{},[PJ,VQ]);let HQ=W8("jarvis_api_error",!1)&&(B1().showStatusInTerminalTab??!1);em0(S||!HQ?null:PJ),p1.useEffect(()=>{return Z9J(zQ),()=>Y9J()},[zQ]);let[WJ,MZ]=p1.useState(Z??[]),gJ=p1.useRef(WJ),E6=p1.useRef(!1),mJ=p1.useCallback((q1)=>{let R1=gJ.current,k1=typeof q1==="function"?q1(gJ.current):q1;if(gJ.current=k1,k1.length<sX.current)sX.current=0;else if(k1.length>R1.length&&fQ.current){let l8=k1.length-R1.length;if((R1.length===0||k1[0]===R1[0]?k1.slice(-l8):k1.slice(0,l8)).some(W40))fQ.current=!1;else sX.current=k1.length}MZ(k1)},[]),mZ=p1.useCallback((q1)=>{if(q1!==void 0)sX.current=gJ.current.length,fQ.current=!0;else fQ.current=!1;Gq(q1)},[]),{dividerIndex:v5,dividerYRef:iW,onScrollAway:gB,onRepin:pG,jumpToNew:YH,shiftDivider:_2}=tMJ(WJ.length),[oq,qH]=p1.useState(null),vR=p1.useRef(null),LV=p1.useMemo(()=>eMJ(WJ,v5),[v5,WJ.length]),vK=p1.useCallback(()=>{C4.current?.scrollToBottom(),pG(),qH(null)},[pG,qH]),fR=WJ.at(-1),zq=fR!=null&&W40(fR);p1.useEffect(()=>{if(zq)vK()},[zq,fR,vK]);let{maybeLoadOlder:Tp}=A0X,NV=p1.useCallback((q1,R1)=>{if(XY.current=Date.now(),q1)pG();else gB(R1)},[pG,gB,Tp,R0]),f0=GpJ(Y,mJ),g0=p1.useDeferredValue(WJ),_1=WJ.length-g0.length;if(_1>0)y(`[useDeferredValue] Messages deferred by ${_1} (${g0.length}\u2192${WJ.length})`);let[Q8,R8]=p1.useState(null),[O6,eJ]=p1.useState(()=>aE1()),m9=p1.useRef(O6);m9.current=O6;let tY=p1.useRef(null),b7=p1.useCallback((q1)=>{if(A1(m9.current,q1))return;if(m9.current===""&&q1!==""&&Date.now()-XY.current>=R0X)vK();m9.current=q1,eJ(q1),J7(q1.trim().length>0)},[J7,vK,A1]);p1.useEffect(()=>{if(O6.trim().length===0)return;let q1=setTimeout(J7,S6,!1);return()=>clearTimeout(q1)},[O6]);let[S4,Wq]=p1.useState("prompt"),[eY,q5]=p1.useState(),kz=p1.useCallback((q1)=>{let R1=new Set(q1);E0((k1)=>k1.filter((l8)=>R1.has(l8.name)||m78.has(l8)))},[E0]),[lF,vp]=p1.useState(new Set),L2=p1.useRef(!1),nW=CmJ({config:$,setMessages:mJ,setIsLoading:tJ,onInit:kz,setToolUseConfirmQueue:zQ,tools:V6,setStreamingToolUses:Kq,setStreamMode:IX,setInProgressToolUseIDs:vp}),u_=fmJ({config:P,setMessages:mJ,setIsLoading:tJ,setToolUseConfirmQueue:zQ,tools:V6}),E7=xmJ({session:v,setMessages:mJ,setIsLoading:tJ,setToolUseConfirmQueue:zQ,tools:V6}),i8=E7.isRemoteMode?E7:u_.isRemoteMode?u_:nW,[hz,uz]=p1.useState({}),[DZ,cf]=p1.useState(0),N2=p1.useRef(0),SR=p1.useRef([]),g$=p1.useCallback((q1)=>{let R1=N2.current;if(N2.current=q1(R1),N2.current>R1){let k1=SR.current;if(k1.length>0){let l8=k1.at(-1);l8.lastTokenTime=Date.now(),l8.endResponseLength=N2.current}}},[]),[m$,p$]=p1.useState(null),xR=!(H1((q1)=>q1.settings.prefersReducedMotion)??!1)&&!P26(),FG=p1.useCallback((q1)=>{if(!xR)return;p$(q1)},[xR]),uX=m$&&xR?m$.substring(0,m$.lastIndexOf(`
7381
7381
  `)+1)||null:null,[KH,c$]=p1.useState(0),[g_,V2]=p1.useState(null),[W1,U8]=p1.useState(null),[$6,r9]=p1.useState(null),[Q7,$Z]=p1.useState(!1),[sq,GH]=p1.useState(void 0),[rW,VV]=p1.useState(!1),[d$,wV]=p1.useState(f$0()),[df,rs]=p1.useState(null),lf=p1.useRef(!1),Sp=p1.useRef(KH);Sp.current=KH;let[as]=p1.useState(()=>({current:QI6(Z,K)})),[HK0,r$0]=p1.useState(B1().hasAcknowledgedCostThreshold),[BK0,a$0]=p1.useState("INSERT"),[nf,xp]=p1.useState(!1),[UK0,o$0]=p1.useState(!1),[oP,os]=p1.useState(!1);p1.useEffect(()=>{if(X0&&nf)xp(!1)},[X0,nf]);let FK0=L5(),lY1=p1.useRef(FK0);lY1.current=FK0;let[l$]=v6(),i$=J5.useRef(!1),ss=p1.useCallback(()=>{if(i$.current)return;i$.current=!0;let q1=gJ.current.slice(mp.current);for(let R1 of it1(q1))rf.current.add(R1);mp.current=gJ.current.length,IdJ({theme:l$,readFileState:m_.current,bashTools:rf.current}).then(async(R1)=>{if(R1){let k1=await R1.content({theme:l$});R0((l8)=>({...l8,spinnerTip:k1})),ydJ(R1)}else R0((k1)=>{if(k1.spinnerTip===void 0)return k1;return{...k1,spinnerTip:void 0}})})},[R0,l$]),zH=p1.useCallback(()=>{tJ(!1),mZ(void 0),N2.current=0,SR.current=[],p$(null),Kq([]),V2(null),U8(null),r9(null),ss(),kn0()},[ss]),gz=p1.useMemo(()=>$a(o).some((q1)=>q1.status==="running"),[o]);p1.useEffect(()=>{if(!gz&&aJ.current!==null){let q1=Date.now()-aJ.current,R1=M7.current;aJ.current=null,M7.current=void 0,mJ((k1)=>[...k1,He1(q1,R1,u8(k1,LD0))])}},[gz,mJ]);let OK0=p1.useRef(!1);p1.useEffect(()=>{},[p.mode,mJ]);let s$0=p1.useRef(!1);p1.useEffect(()=>{if(s$0.current)return;let q1=e5();if(!q1?.creationDurationMs||q1.usedSparsePaths)return;if(q1.creationDurationMs<15000)return;s$0.current=!0;let R1=Math.round(q1.creationDurationMs/1000);mJ((k1)=>[...k1,XG(`Worktree creation took ${R1}s. For large repos, set \`worktree.sparsePaths\` in .glock/settings.json to check out only the directories you need \u2014 e.g. \`{"worktree": {"sparsePaths": ["src", "packages/foo"]}}\`.`,"info")])},[mJ]);let _K0=p1.useMemo(()=>{let q1=WJ.findLast((k1)=>k1.type==="assistant");if(q1?.type!=="assistant")return!1;let R1=q1.message.content.filter((k1)=>k1.type==="tool_use"&&lF.has(k1.id));return R1.length>0&&R1.every((k1)=>k1.type==="tool_use"&&k1.name===PL0)},[WJ,lF]),{onBeforeQuery:kp,onTurnComplete:hp,render:t$0}=amJ({enabled:k,setMessages:mJ,inputValue:O6,setInputValue:b7,setToolJSX:g9}),up=(!I9||I9.showSpinner===!0)&&SQ.length===0&&jY.length===0&&(lJ||O9||gz||cg1()>0)&&!K0&&!_K0&&(!uX||s0),sP=SQ.length>0||jY.length>0||v4.length>0||Q0.queue.length>0||a.queue.length>0,gp=ocJ(WJ,lJ,DZ,"session",sP),LK0=nmJ(mJ),NK0=BiJ(WJ,DZ),n$=p1.useMemo(()=>({...gp,handleSelect:(q1)=>{AK0.current=!1;let R1=gp.handleSelect(q1);if(q1==="bad"&&!R1&&KiJ("feedback_survey_bad"))wK0("feedback_survey_bad"),AK0.current=!0}}),[gp]),tP=QdJ(WJ,lJ,sP,{enabled:!T}),eP=tcJ(WJ,lJ,sP,{enabled:!T}),ts=O0X(WJ,lJ,sP,n$.state!=="closed"||tP.state!=="closed"||eP.state!=="closed");fcJ({autoConnectIdeFlag:B,ideToInstallExtension:U6,setDynamicMcpConfig:S0,setShowIdeOnboarding:O0,setIDEInstallationState:K8}),udJ(q,s,(q1)=>R0((R1)=>({...R1,fileHistory:q1})));let es=p1.useCallback(async(q1,R1,k1)=>{let l8=performance.now();try{let W6=j01(R1.messages),p6=SR0();await xR0("resume",{getAppState:()=>B0.getState(),setAppState:R0,signal:AbortSignal.timeout(p6),timeoutMs:p6});let H6=await b3("resume",{sessionId:q1,agentType:x?.agentType,model:w0});if(W6.push(...H6),k1==="fork")ab6(R1,wz(q1));else Xn0(R1,wz(q1));if(L$0(R1,R0),R1.fileHistorySnapshots)Vs0(R1);let{agentDefinition:FJ}=fs(R1.agentSetting,A,n);g(FJ),R0((G9)=>({...G9,agent:FJ?.agentType})),R0((G9)=>({...G9,standaloneAgentContext:N$0(R1.agentName,R1.agentColor)})),XP(R1.agentName),VK0(W6,R1.projectPath??b8()),zH(),oQ(null),wV(q1);let K9=jl1(q1);Ws0(),Le(),UH(wz(q1),R1.fullPath?H0X(R1.fullPath):null);let{renameRecordingForSession:cJ}=await Promise.resolve().then(() => (_$0(),jcJ));if(await cJ(),await BR(),fR0(),SP(R1),gZ.current=!0,nq(void 0),k1!=="fork")IcJ(),V$0(R1.worktreeSession),Qs(),_a1({abortController:new AbortController,getAppState:()=>B0.getState(),setAppState:R0});else{let G9=e5();if(G9)B_(G9)}if(K9)iG0(K9);if(as.current&&k1!=="fork")as.current=Nl0(W6,R1.contentReplacements??[]);mJ(()=>W6),g9(null),b7(""),d("jarvis_api_error",{entrypoint:k1,success:!0,resume_duration_ms:Math.round(performance.now()-l8)})}catch(W6){throw d("jarvis_api_error",{entrypoint:k1,success:!1}),W6}},[zH,R0]),[e$0]=p1.useState(()=>GT(sI)),m_=p1.useRef(e$0),rf=p1.useRef(new Set),mp=p1.useRef(0),pp=p1.useRef(new Set),Jt=p1.useRef(new Set),VK0=p1.useCallback((q1,R1)=>{let k1=Q40(q1,R1,sI);m_.current=R70(m_.current,k1);for(let l8 of it1(q1))rf.current.add(l8)},[]);p1.useEffect(()=>{if(Z&&Z.length>0)VK0(Z,b8()),_a1({abortController:new AbortController,getAppState:()=>B0.getState(),setAppState:R0})},[]);let{status:Jb,reverify:cp}=WpJ(),[Qb,wK0]=p1.useState(null),AK0=p1.useRef(!1),[RK0,Xb]=p1.useState(null),[Qt,af]=p1.useState(!1),MK0=!lJ&&rW;function Jj0(){if(Qt||RK0)return;if(Q7)return"message-selector";if(uJ)return;if(v4[0])return"sandbox-permission";let q1=!I9||I9.shouldContinueAnimation;if(q1&&SQ[0])return"tool-permission";if(q1&&jY[0])return"prompt";if(q1&&a.queue[0])return"worker-sandbox-permission";if(q1&&Q0.queue[0])return"elicitation";if(q1&&MK0)return"cost";if(q1&&df)return"idle-return";if(q1&&W0)return"ide-onboarding";if(q1&&J1)return"effort-callout";if(q1&&T1)return"remote-callout";if(q1&&J8)return"lsp-recommendation";if(q1&&d8)return"plugin-hint";if(q1&&L1)return"desktop-upsell";return}let eX=Jj0(),DK0=uJ&&(v4[0]||SQ[0]||jY[0]||a.queue[0]||Q0.queue[0]||MK0);B9.current=eX,p1.useEffect(()=>{if(!lJ)return;let q1=eX==="tool-permission",R1=Date.now();if(q1&&s8.current===null)s8.current=R1;else if(!q1&&s8.current!==null)s1.current+=R1-s8.current,s8.current=null},[eX,lJ]);let $K0=p1.useRef(eX);p1.useLayoutEffect(()=>{if($K0.current==="tool-permission"!==(eX==="tool-permission"))vK();$K0.current=eX},[eX,vK]);function Xt(){if(eX==="elicitation")return;if(y(`[onCancel] focusedInputDialog=${eX} streamMode=${S8}`),t7.forceEnd(),lf.current=!1,m$?.trim())mJ((q1)=>[...q1,mO({content:m$})]);if(zH(),eX==="tool-permission")SQ[0]?.onAbort(),zQ([]);else if(eX==="prompt"){for(let q1 of jY)q1.reject(Error("Prompt cancelled by user"));U4([]),QY?.abort("user-cancel")}else if(i8.isRemoteMode)i8.cancelRequest();else QY?.abort("user-cancel");oQ(null),hp(gJ.current,!0)}let r$=p1.useCallback(()=>{let q1=in0(O6,0);if(!q1)return;if(b7(q1.text),Wq("prompt"),q1.images.length>0)uz((R1)=>{let k1={...R1};for(let l8 of q1.images)k1[l8.id]=l8;return k1})},[b7,Wq,O6,uz]),dp={setToolUseConfirmQueue:zQ,onCancel:Xt,onAgentsKilled:()=>mJ((q1)=>[...q1,bWJ()]),isMessageSelectorVisible:Q7||!!nf,screen:N0,abortSignal:QY?.signal,popCommandFromQueue:r$,vimMode:BK0,isLocalJSXCommand:I9?.isLocalJSXCommand,isSearchingHistory:UK0,isHelpOpen:oP,inputMode:S4,inputValue:O6,streamMode:S8};p1.useEffect(()=>{if(Q3()>=5&&!rW&&!HK0){if(d("jarvis_api_error",{}),r$0(!0),dJ1())VV(!0)}},[WJ,rW,HK0]);let Qj0=p1.useCallback(async(q1)=>{if(l6()&&Cw0()){let R1=rJJ(),k1=await aJJ(q1.host,R1);return new Promise((l8)=>{if(!k1){Z5((W6)=>[...W6,{hostPattern:q1,resolvePromise:l8}]);return}J9J({requestId:R1,host:q1.host,resolve:l8}),R0((W6)=>({...W6,pendingSandboxRequest:{requestId:R1,host:q1.host}}))})}return new Promise((R1)=>{let k1=!1;function l8(W6){if(k1)return;k1=!0,R1(W6)}Z5((W6)=>[...W6,{hostPattern:q1,resolvePromise:l8}])})},[R0,B0]);if(p1.useEffect(()=>{let q1=p8.getSandboxUnavailableReason();if(!q1)return;if(p8.isSandboxRequired()){process.stderr.write(`
7382
7382
  Error: sandbox required but unavailable: ${q1}
7383
7383
  `+` sandbox.failIfUnavailable is set \u2014 refusing to start without a working sandbox.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@glock-org/cli",
3
- "version": "0.1.0",
3
+ "version": "0.1.1",
4
4
  "description": "Glock — AI coding agent CLI",
5
5
  "bin": {
6
6
  "glock": "./cli.js"