| 6719 | ${d37}`};let A=Y??($===404?"not_found_error":"authentication_error");return K.injectFault({method:"pollForWork",kind:"fatal",status:$,errorType:A,count:1}),K.wakePollLoop(),{type:"text",value:`Next poll will throw BridgeFatalError(${$}, ${A}). Poll loop woken.`}}case"register":{if(z==="fatal")return K.injectFault({method:"registerBridgeEnvironment",kind:"fatal",status:403,errorType:"permission_error",count:1}),{type:"text",value:"Next registerBridgeEnvironment will 403. Trigger with close/reconnect."};let $=Number(Y)||1;return K.injectFault({method:"registerBridgeEnvironment",kind:"transient",status:503,count:$}),{type:"text",value:`Next ${$} registerBridgeEnvironment call(s) will transient-fail. Trigger with close/reconnect.`}}case"reconnect-session":return K.injectFault({method:"reconnectSession",kind:"fatal",status:404,errorType:"not_found_error",count:2}),{type:"text",value:"Next 2 POST /bridge/reconnect calls will 404. doReconnect Strategy 1 falls through to Strategy 2."};case"heartbeat":{let $=Number(z)||401;return K.injectFault({method:"heartbeatWork",kind:"fatal",status:$,errorType:$===401?"authentication_error":"not_found_error",count:1}),{type:"text",value:`Next heartbeat will ${$}. Watch for onHeartbeatFatal → work-state teardown.`}}case"reconnect":return K.forceReconnect(),{type:"text",value:"Called reconnectEnvironmentWithSession(). Watch debug.log."};case"status":return{type:"text",value:K.describe()};default:return{type:"text",value:d37}}},bVY,nIK;var iIK=y(()=>{Q37();bVY={type:"local",name:"bridge-kick",description:"Inject bridge failure states for manual recovery testing",isEnabled:()=>!1,supportsNonInteractive:!1,load:()=>Promise.resolve({call:CVY})},nIK=bVY});var xVY=async()=>{return{type:"text",value:{ISSUES_EXPLAINER:"report the issue at https://github.com/anthropics/claude-code/issues",PACKAGE_URL:"@anthropic-ai/claude-code",README_URL:"https://code.claude.com/docs/en/overview",VERSION:"2.1.88",FEEDBACK_CHANNEL:"https://github.com/anthropics/claude-code/issues",BUILD_TIME:"2026-03-30T21:59:52Z"}.BUILD_TIME?`${{ISSUES_EXPLAINER:"report the issue at https://github.com/anthropics/claude-code/issues",PACKAGE_URL:"@anthropic-ai/claude-code",README_URL:"https://code.claude.com/docs/en/overview",VERSION:"2.1.88",FEEDBACK_CHANNEL:"https://github.com/anthropics/claude-code/issues",BUILD_TIME:"2026-03-30T21:59:52Z"}.VERSION} (built ${{ISSUES_EXPLAINER:"report the issue at https://github.com/anthropics/claude-code/issues",PACKAGE_URL:"@anthropic-ai/claude-code",README_URL:"https://code.claude.com/docs/en/overview",VERSION:"2.1.88",FEEDBACK_CHANNEL:"https://github.com/anthropics/claude-code/issues",BUILD_TIME:"2026-03-30T21:59:52Z"}.BUILD_TIME})`:{ISSUES_EXPLAINER:"report the issue at https://github.com/anthropics/claude-code/issues",PACKAGE_URL:"@anthropic-ai/claude-code",README_URL:"https://code.claude.com/docs/en/overview",VERSION:"2.1.88",FEEDBACK_CHANNEL:"https://github.com/anthropics/claude-code/issues",BUILD_TIME:"2026-03-30T21:59:52Z"}.VERSION}},IVY,rIK;var oIK=y(()=>{IVY={type:"local",name:"version",description:"Print the version this session is running (not what autoupdate downloaded)",isEnabled:()=>!1,supportsNonInteractive:!0,load:()=>Promise.resolve({call:xVY})},rIK=IVY});var c37;var aIK=y(()=>{c37={isEnabled:()=>!1,isHidden:!0,name:"stub"}});var sIK,tIK,eIK;var quK=y(()=>{sIK={isEnabled:()=>!1,isHidden:!0,name:"stub"},tIK=sIK,eIK=sIK});var KuK;var _uK=y(()=>{KuK={isEnabled:()=>!1,isHidden:!0,name:"stub"}});var zuK;var YuK=y(()=>{zuK={isEnabled:()=>!1,isHidden:!0,name:"stub"}});function $uK(){let q=z6(3),K=M7.isSandboxingEnabled(),_;if(q[0]===Symbol.for("react.memo_cache_sentinel")){let $=M7.checkDependencies();_=$.warnings.length>0?C5.createElement(u,{marginTop:1,flexDirection:"column"},$.warnings.map(uVY)):null,q[0]=_}else _=q[0];let z=_;if(!K){let $;if(q[1]===Symbol.for("react.memo_cache_sentinel"))$=C5.createElement(u,{flexDirection:"column",paddingY:1},C5.createElement(k,{color:"subtle"},"Sandbox is not enabled"),z),q[1]=$;else $=q[1];return $}let Y;if(q[2]===Symbol.for("react.memo_cache_sentinel")){let $=M7.getFsReadConfig(),A=M7.getFsWriteConfig(),O=M7.getNetworkRestrictionConfig(),w=M7.getAllowUnixSockets(),j=M7.getExcludedCommands(),H=M7.getLinuxGlobPatternWarnings();Y=C5.createElement(u,{flexDirection:"column",paddingY:1},C5.createElement(u,{flexDirection:"column"},C5.createElement(k,{bold:!0,color:"permission"},"Excluded Commands:"),C5.createElement(k,{dimColor:!0},j.length>0?j.join(", "):"None")),$.denyOnly.length>0&&C5.createElement(u,{marginTop:1,flexDirection:"column"},C5.createElement(k,{bold:!0,color:"permission"},"Filesystem Read Restrictions:"),C5.createElement(k,{dimColor:!0},"Denied: ",$.denyOnly.join(", ")),$.allowWithinDeny&&$.allowWithinDeny.length>0&&C5.createElement(k,{dimColor:!0},"Allowed within denied: ",$.allowWithinDeny.join(", "))),A.allowOnly.length>0&&C5.createElement(u,{marginTop:1,flexDirection:"column"},C5.createElement(k,{bold:!0,color:"permission"},"Filesystem Write Restrictions:"),C5.createElement(k,{dimColor:!0},"Allowed: ",A.allowOnly.join(", ")),A.denyWithinAllow.length>0&&C5.createElement(k,{dimColor:!0},"Denied within allowed: ",A.denyWithinAllow.join(", "))),(O.allowedHosts&&O.allowedHosts.length>0||O.deniedHosts&&O.deniedHosts.length>0)&&C5.createElement(u,{marginTop:1,flexDirection:"column"},C5.createElement(k,{bold:!0,color:"permission"},"Network Restrictions",lA6()?" (Managed)":"",":"),O.allowedHosts&&O.allowedHosts.length>0&&C5.createElement(k,{dimColor:!0},"Allowed: ",O.allowedHosts.join(", ")),O.deniedHosts&&O.deniedHosts.length>0&&C5.createElement(k,{dimColor:!0},"Denied: ",O.deniedHosts.join(", "))),w&&w.length>0&&C5.createElement(u,{marginTop:1,flexDirection:"column"},C5.createElement(k,{bold:!0,color:"permission"},"Allowed Unix Sockets:"),C5.createElement(k,{dimColor:!0},w.join(", "))),H.length>0&&C5.createElement(u,{marginTop:1,flexDirection:"column"},C5.createElement(k,{bold:!0,color:"warning"},"⚠ Warning: Glob patterns not fully supported on Linux"),C5.createElement(k,{dimColor:!0},"The following patterns will be ignored:"," ",H.slice(0,3).join(", "),H.length>3&&` (${H.length-3} more)`)),z),q[2]=Y}else Y=q[2];return Y}function uVY(q,K){return C5.createElement(k,{key:K,dimColor:!0},q)}var C5;var AuK=y(()=>{q8();s6();K$();C5=O6(D6(),1)});function l37(q){let K=z6(24),{depCheck:_}=q,z;if(K[0]===Symbol.for("react.memo_cache_sentinel"))z=Z1(),K[0]=z;else z=K[0];let $=z==="macos",A;if(K[1]!==_.errors)A=_.errors.some(FVY),K[1]=_.errors,K[2]=A;else A=K[2];let O=A,w;if(K[3]!==_.errors)w=_.errors.some(gVY),K[3]=_.errors,K[4]=w;else w=K[4];let j=w,H;if(K[5]!==_.errors)H=_.errors.some(BVY),K[5]=_.errors,K[6]=H;else H=K[6];let J=H,M=_.warnings.length>0,X;if(K[7]!==j||K[8]!==_.errors||K[9]!==O||K[10]!==M||K[11]!==J){let P=_.errors.filter(pVY),W=$?"brew install ripgrep":"apt install ripgrep",D;if(K[13]===Symbol.for("react.memo_cache_sentinel"))D=$&&x$.default.createElement(u,{flexDirection:"column"},x$.default.createElement(k,null,"seatbelt: ",x$.default.createElement(k,{color:"success"},"built-in (macOS)"))),K[13]=D;else D=K[13];let f,G;if(K[14]!==O)f=x$.default.createElement(k,null,"ripgrep (rg):"," ",O?x$.default.createElement(k,{color:"error"},"not found"):x$.default.createElement(k,{color:"success"},"found")),G=O&&x$.default.createElement(k,{dimColor:!0}," ","· ",W),K[14]=O,K[15]=f,K[16]=G;else f=K[15],G=K[16];let Z;if(K[17]!==f||K[18]!==G)Z=x$.default.createElement(u,{flexDirection:"column"},f,G),K[17]=f,K[18]=G,K[19]=Z;else Z=K[19];let T;if(K[20]!==j||K[21]!==M||K[22]!==J)T=!$&&x$.default.createElement(x$.default.Fragment,null,x$.default.createElement(u,{flexDirection:"column"},x$.default.createElement(k,null,"bubblewrap (bwrap):"," ",j?x$.default.createElement(k,{color:"error"},"not installed"):x$.default.createElement(k,{color:"success"},"installed")),j&&x$.default.createElement(k,{dimColor:!0}," ","· apt install bubblewrap")),x$.default.createElement(u,{flexDirection:"column"},x$.default.createElement(k,null,"socat:"," ",J?x$.default.createElement(k,{color:"error"},"not installed"):x$.default.createElement(k,{color:"success"},"installed")),J&&x$.default.createElement(k,{dimColor:!0}," ","· apt install socat")),x$.default.createElement(u,{flexDirection:"column"},x$.default.createElement(k,null,"seccomp filter:"," ",M?x$.default.createElement(k,{color:"warning"},"not installed"):x$.default.createElement(k,{color:"success"},"installed"),M&&x$.default.createElement(k,{dimColor:!0}," (required to block unix domain sockets)")),M&&x$.default.createElement(u,{flexDirection:"column"},x$.default.createElement(k,{dimColor:!0}," ","· npm install -g @anthropic-ai/sandbox-runtime"),x$.default.createElement(k,{dimColor:!0}," ","· or copy vendor/seccomp/* from sandbox-runtime and set"),x$.default.createElement(k,{dimColor:!0}," ","sandbox.seccomp.bpfPath and applyPath in settings.json")))),K[20]=j,K[21]=M,K[22]=J,K[23]=T;else T=K[23];X=x$.default.createElement(u,{flexDirection:"column",paddingY:1,gap:1},D,Z,T,P.map(mVY)),K[7]=j,K[8]=_.errors,K[9]=O,K[10]=M,K[11]=J,K[12]=X}else X=K[12];return X}function mVY(q){return x$.default.createElement(k,{key:q,color:"error"},q)}function pVY(q){return!q.includes("ripgrep")&&!q.includes("bwrap")&&!q.includes("socat")}function BVY(q){return q.includes("socat")}function gVY(q){return q.includes("bwrap")}function FVY(q){return q.includes("ripgrep")}var x$;var OuK=y(()=>{q8();s6();vK();x$=O6(D6(),1)});function wuK(q){let K=z6(5),{onComplete:_}=q,z=M7.isSandboxingEnabled(),Y=M7.areSandboxSettingsLockedByPolicy(),$=M7.areUnsandboxedCommandsAllowed();if(!z){let O;if(K[0]===Symbol.for("react.memo_cache_sentinel"))O=$W.default.createElement(u,{flexDirection:"column",paddingY:1},$W.default.createElement(k,{color:"subtle"},"Sandbox is not enabled. Enable sandbox to configure override settings.")),K[0]=O;else O=K[0];return O}if(Y){let O;if(K[1]===Symbol.for("react.memo_cache_sentinel"))O=$W.default.createElement(k,{color:"subtle"},"Override settings are managed by a higher-priority configuration and cannot be changed locally."),K[1]=O;else O=K[1];let w;if(K[2]===Symbol.for("react.memo_cache_sentinel"))w=$W.default.createElement(u,{flexDirection:"column",paddingY:1},O,$W.default.createElement(u,{marginTop:1},$W.default.createElement(k,{dimColor:!0},"Current setting:"," ",$?"Allow unsandboxed fallback":"Strict sandbox mode"))),K[2]=w;else w=K[2];return w}let A;if(K[3]!==_)A=$W.default.createElement(UVY,{onComplete:_,currentMode:$?"open":"closed"}),K[3]=_,K[4]=A;else A=K[4];return A}function UVY(q){let K=z6(25),{onComplete:_,currentMode:z}=q,[Y]=Aq(),{headerFocused:$,focusHeader:A}=$T(),O;if(K[0]!==Y)O=h7("success",Y)("(current)"),K[0]=Y,K[1]=O;else O=K[1];let w=O,j=z==="open"?`Allow unsandboxed fallback ${w}`:"Allow unsandboxed fallback",H;if(K[2]!==j)H={label:j,value:"open"},K[2]=j,K[3]=H;else H=K[3];let J=z==="closed"?`Strict sandbox mode ${w}`:"Strict sandbox mode",M;if(K[4]!==J)M={label:J,value:"closed"},K[4]=J,K[5]=M;else M=K[5];let X;if(K[6]!==H||K[7]!==M)X=[H,M],K[6]=H,K[7]=M,K[8]=X;else X=K[8];let P=X,W;if(K[9]!==_)W=async function(R){let x=R;await M7.setSandboxSettings({allowUnsandboxedCommands:x==="open"}),_(x==="open"?"✓ Unsandboxed fallback allowed - commands can run outside sandbox when necessary":"✓ Strict sandbox mode - all commands must run in sandbox or be excluded via the `excludedCommands` option")},K[9]=_,K[10]=W;else W=K[10];let D=W,f;if(K[11]===Symbol.for("react.memo_cache_sentinel"))f=$W.default.createElement(u,{marginBottom:1},$W.default.createElement(k,{bold:!0},"Configure Overrides:")),K[11]=f;else f=K[11];let G;if(K[12]!==_)G=()=>_(void 0,{display:"skip"}),K[12]=_,K[13]=G;else G=K[13];let Z;if(K[14]!==A||K[15]!==D||K[16]!==$||K[17]!==P||K[18]!==G)Z=$W.default.createElement(H1,{options:P,onChange:D,onCancel:G,onUpFromFirstItem:A,isDisabled:$}),K[14]=A,K[15]=D,K[16]=$,K[17]=P,K[18]=G,K[19]=Z;else Z=K[19];let T;if(K[20]===Symbol.for("react.memo_cache_sentinel"))T=$W.default.createElement(k,{dimColor:!0},$W.default.createElement(k,{bold:!0,dimColor:!0},"Allow unsandboxed fallback:")," ","When a command fails due to sandbox restrictions, Claude can retry with dangerouslyDisableSandbox to run outside the sandbox (falling back to default permissions)."),K[20]=T;else T=K[20];let v;if(K[21]===Symbol.for("react.memo_cache_sentinel"))v=$W.default.createElement(k,{dimColor:!0},$W.default.createElement(k,{bold:!0,dimColor:!0},"Strict sandbox mode:")," ","All bash commands invoked by the model must run in the sandbox unless they are explicitly listed in excludedCommands."),K[21]=v;else v=K[21];let V;if(K[22]===Symbol.for("react.memo_cache_sentinel"))V=$W.default.createElement(u,{flexDirection:"column",marginTop:1,gap:1},T,v,$W.default.createElement(k,{dimColor:!0},"Learn more:"," ",$W.default.createElement(hq,{url:"https://code.claude.com/docs/en/sandboxing#configure-sandboxing"},"code.claude.com/docs/en/sandboxing#configure-sandboxing"))),K[22]=V;else V=K[22];let E;if(K[23]!==Z)E=$W.default.createElement(u,{flexDirection:"column",paddingY:1},f,Z,V),K[23]=Z,K[24]=E;else E=K[24];return E}var $W;var juK=y(()=>{q8();s6();K$();p3();gb();$W=O6(D6(),1)});function HuK(q){let K=z6(34),{onComplete:_,depCheck:z}=q,[Y]=Aq(),$=M7.isSandboxingEnabled(),A=M7.isAutoAllowBashIfSandboxedEnabled(),O=z.warnings.length>0,w;if(K[0]===Symbol.for("react.memo_cache_sentinel"))w=Z7(),K[0]=w;else w=K[0];let H=w.sandbox?.network?.allowAllUnixSockets,J=O&&!H,X=(()=>{if(!$)return"disabled";if(A)return"auto-allow";return"regular"})(),P;if(K[1]!==Y)P=h7("success",Y)("(current)"),K[1]=Y,K[2]=P;else P=K[2];let W=P,D=X==="auto-allow"?`Sandbox BashTool, with auto-allow ${W}`:"Sandbox BashTool, with auto-allow",f;if(K[3]!==D)f={label:D,value:"auto-allow"},K[3]=D,K[4]=f;else f=K[4];let G=X==="regular"?`Sandbox BashTool, with regular permissions ${W}`:"Sandbox BashTool, with regular permissions",Z;if(K[5]!==G)Z={label:G,value:"regular"},K[5]=G,K[6]=Z;else Z=K[6];let T=X==="disabled"?`No Sandbox ${W}`:"No Sandbox",v;if(K[7]!==T)v={label:T,value:"disabled"},K[7]=T,K[8]=v;else v=K[8];let V;if(K[9]!==f||K[10]!==Z||K[11]!==v)V=[f,Z,v],K[9]=f,K[10]=Z,K[11]=v,K[12]=V;else V=K[12];let E=V,S;if(K[13]!==_)S=async function(i){let $6=i;q:switch($6){case"auto-allow":{await M7.setSandboxSettings({enabled:!0,autoAllowBashIfSandboxed:!0}),_("✓ Sandbox enabled with auto-allow for bash commands");break q}case"regular":{await M7.setSandboxSettings({enabled:!0,autoAllowBashIfSandboxed:!1}),_("✓ Sandbox enabled with regular bash permissions");break q}case"disabled":await M7.setSandboxSettings({enabled:!1,autoAllowBashIfSandboxed:!1}),_("○ Sandbox disabled")}},K[13]=_,K[14]=S;else S=K[14];let R=S,x;if(K[15]!==_)x={"confirm:no":()=>_(void 0,{display:"skip"})},K[15]=_,K[16]=x;else x=K[16];let I;if(K[17]===Symbol.for("react.memo_cache_sentinel"))I={context:"Settings"},K[17]=I;else I=K[17];o7(x,I);let B;if(K[18]!==R||K[19]!==_||K[20]!==E||K[21]!==J)B=ij.default.createElement(cO,{key:"mode",title:"Mode"},ij.default.createElement(QVY,{showSocketWarning:J,options:E,onSelect:R,onComplete:_})),K[18]=R,K[19]=_,K[20]=E,K[21]=J,K[22]=B;else B=K[22];let p=B,C;if(K[23]!==_)C=ij.default.createElement(cO,{key:"overrides",title:"Overrides"},ij.default.createElement(wuK,{onComplete:_})),K[23]=_,K[24]=C;else C=K[24];let g=C,F;if(K[25]===Symbol.for("react.memo_cache_sentinel"))F=ij.default.createElement(cO,{key:"config",title:"Config"},ij.default.createElement($uK,null)),K[25]=F;else F=K[25];let U=F,c=z.errors.length>0,K6;if(K[26]!==z||K[27]!==c||K[28]!==O||K[29]!==p||K[30]!==g)K6=c?[ij.default.createElement(cO,{key:"dependencies",title:"Dependencies"},ij.default.createElement(l37,{depCheck:z}))]:[p,...O?[ij.default.createElement(cO,{key:"dependencies",title:"Dependencies"},ij.default.createElement(l37,{depCheck:z}))]:[],g,U],K[26]=z,K[27]=c,K[28]=O,K[29]=p,K[30]=g,K[31]=K6;else K6=K[31];let t=K6,q6;if(K[32]!==t)q6=ij.default.createElement(Q_,{color:"permission"},ij.default.createElement(Bb,{title:"Sandbox:",color:"permission",defaultTab:"Mode"},t)),K[32]=t,K[33]=q6;else q6=K[33];return q6}function QVY(q){let K=z6(16),{showSocketWarning:_,options:z,onSelect:Y,onComplete:$}=q,{headerFocused:A,focusHeader:O}=$T(),w;if(K[0]!==_)w=_&&ij.default.createElement(u,{marginBottom:1},ij.default.createElement(k,{color:"warning"},"Cannot block unix domain sockets (see Dependencies tab)")),K[0]=_,K[1]=w;else w=K[1];let j;if(K[2]===Symbol.for("react.memo_cache_sentinel"))j=ij.default.createElement(u,{marginBottom:1},ij.default.createElement(k,{bold:!0},"Configure Mode:")),K[2]=j;else j=K[2];let H;if(K[3]!==$)H=()=>$(void 0,{display:"skip"}),K[3]=$,K[4]=H;else H=K[4];let J;if(K[5]!==O||K[6]!==A||K[7]!==Y||K[8]!==z||K[9]!==H)J=ij.default.createElement(H1,{options:z,onChange:Y,onCancel:H,onUpFromFirstItem:O,isDisabled:A}),K[5]=O,K[6]=A,K[7]=Y,K[8]=z,K[9]=H,K[10]=J;else J=K[10];let M;if(K[11]===Symbol.for("react.memo_cache_sentinel"))M=ij.default.createElement(k,{dimColor:!0},ij.default.createElement(k,{bold:!0,dimColor:!0},"Auto-allow mode:")," ","Commands will try to run in the sandbox automatically, and attempts to run outside of the sandbox fallback to regular permissions. Explicit ask/deny rules are always respected."),K[11]=M;else M=K[11];let X;if(K[12]===Symbol.for("react.memo_cache_sentinel"))X=ij.default.createElement(u,{flexDirection:"column",marginTop:1,gap:1},M,ij.default.createElement(k,{dimColor:!0},"Learn more:"," ",ij.default.createElement(hq,{url:"https://code.claude.com/docs/en/sandboxing"},"code.claude.com/docs/en/sandboxing"))),K[12]=X;else X=K[12];let P;if(K[13]!==w||K[14]!==J)P=ij.default.createElement(u,{flexDirection:"column",paddingY:1},w,j,J,X),K[13]=w,K[14]=J,K[15]=P;else P=K[15];return P}var ij;var JuK=y(()=>{q8();s6();Oq();K$();U1();p3();pP();gb();AuK();OuK();juK();ij=O6(D6(),1)});var XuK={};T8(XuK,{call:()=>cVY});import{relative as dVY}from"path";async function cVY(q,K,_){let Y=Z7().theme||"light",$=Z1();if(!M7.isSupportedPlatform()){let w=$==="wsl"?"Error: Sandboxing requires WSL2. WSL1 is not supported.":"Error: Sandboxing is currently only supported on macOS, Linux, and WSL2.",j=h7("error",Y)(w);return q(j),null}let A=M7.checkDependencies();if(!M7.isPlatformInEnabledList()){let w=h7("error",Y)(`Error: Sandboxing is disabled for this platform (${$}) via the enabledPlatforms setting.`);return q(w),null}if(M7.areSandboxSettingsLockedByPolicy()){let w=h7("error",Y)("Error: Sandbox settings are overridden by a higher-priority configuration and cannot be changed locally.");return q(w),null}let O=_?.trim()||"";if(!O)return MuK.default.createElement(HuK,{onComplete:q,depCheck:A});if(O){let j=O.split(" ")[0];if(j==="exclude"){let H=O.slice(8).trim();if(!H){let W=h7("error",Y)('Error: Please provide a command pattern to exclude (e.g., /sandbox exclude "npm run test:*")');return q(W),null}let J=H.replace(/^["']|["']$/g,"");_S1(J);let M=Hj("localSettings"),X=M?dVY(Vx(),M):".claude/settings.local.json",P=h7("success",Y)(`Added "${J}" to excluded commands in ${X}`);return q(P),null}else{let H=h7("error",Y)(`Error: Unknown subcommand "${j}". Available subcommand: exclude`);return q(H),null}}return null}var MuK;var PuK=y(()=>{v8();JuK();s6();vK();K$();U1();MuK=O6(D6(),1)});var lVY,WuK;var DuK=y(()=>{bq();K$();lVY={name:"sandbox",get description(){let q=M7.isSandboxingEnabled(),K=M7.isAutoAllowBashIfSandboxedEnabled(),_=M7.areUnsandboxedCommandsAllowed(),z=M7.areSandboxSettingsLockedByPolicy(),Y=M7.checkDependencies().errors.length===0,$;if(!Y)$=t6.warning;else $=q?t6.tick:t6.circle;let A="sandbox disabled";if(q)A=K?"sandbox enabled (auto-allow)":"sandbox enabled",A+=_?", fallback allowed":"";if(z)A+=" (managed)";return`${$} ${A} (⏎ to configure)`},argumentHint:'exclude "command pattern"',get isHidden(){return!M7.isSupportedPlatform()||!M7.isPlatformInEnabledList()},immediate:!0,type:"local-jsx",load:()=>Promise.resolve().then(() => (PuK(),XuK))},WuK=lVY});import{readdir as fuK}from"fs/promises";import{join as nVY}from"path";function rVY(){return[iVY]}async function oVY(q,K){if(q.length===0)return K?.("[Claude in Chrome] No browser paths to check"),{isInstalled:!1,browser:null};let _=rVY();for(let{browser:z,path:Y}of q){let $=[];try{$=await fuK(Y,{withFileTypes:!0})}catch(O){if(e3(O))continue;throw O}let A=$.filter((O)=>O.isDirectory()).filter((O)=>O.name==="Default"||O.name.startsWith("Profile ")).map((O)=>O.name);if(A.length>0)K?.(`[Claude in Chrome] Found ${z} profiles: ${A.join(", ")}`);for(let O of A)for(let w of _){let j=nVY(Y,O,"Extensions",w);try{return await fuK(j),K?.(`[Claude in Chrome] Extension ${w} found in ${z} ${O}`),{isInstalled:!0,browser:z}}catch{}}}return K?.("[Claude in Chrome] Extension not found in any browser"),{isInstalled:!1,browser:null}}async function ZuK(q,K){return(await oVY(q,K)).isInstalled}var iVY="fcoeoabgfenejglbffodgkkbkcdhcgfn";var GuK=y(()=>{y8()});import{chmod as aVY,mkdir as VuK,readFile as NuK,writeFile as yuK}from"fs/promises";import{homedir as sVY}from"os";import{join as fs}from"path";import{fileURLToPath as tVY}from"url";function UU8(q){if(i7()&&q!==!0)return!1;if(q===!0)return!0;if(q===!1)return!1;if(i6(process.env.CLAUDE_CODE_ENABLE_CFC))return!0;if(k_(process.env.CLAUDE_CODE_ENABLE_CFC))return!1;let K=j8();if(K.claudeInChromeDefaultEnabled!==void 0)return K.claudeInChromeDefaultEnabled;return!1}function xS6(){if(FU8!==void 0)return FU8;return FU8=ET()&&_NY()&&g8("tengu_chrome_auto_enable",!1),FU8}function i37(){let q=jj(),K=pc.map((Y)=>`mcp__claude-in-chrome__${Y.name}`),_={};if(s36())_.CLAUDE_CHROME_PERMISSION_MODE="skip_all_permission_checks";let z=Object.keys(_).length>0;if(q){let Y=`"${process.execPath}" --chrome-native-host`;return kuK(Y).then(($)=>vuK($)).catch(($)=>N(`[Claude in Chrome] Failed to install native host: ${$}`,{level:"error"})),{mcpConfig:{[yN]:{type:"stdio",command:process.execPath,args:["--claude-in-chrome-mcp"],scope:"dynamic",...z&&{env:_}}},allowedTools:K,systemPrompt:j17()}}else{let Y=tVY(import.meta.url),$=fs(Y,".."),A=fs($,"cli.js");return kuK(`"${process.execPath}" "${A}" --chrome-native-host`).then((w)=>vuK(w)).catch((w)=>N(`[Claude in Chrome] Failed to install native host: ${w}`,{level:"error"})),{mcpConfig:{[yN]:{type:"stdio",command:process.execPath,args:[`${A}`,"--claude-in-chrome-mcp"],scope:"dynamic",...z&&{env:_}}},allowedTools:K,systemPrompt:j17()}}}function qNY(){if(Z1()==="windows"){let K=sVY(),_=process.env.APPDATA||fs(K,"AppData","Local");return[fs(_,"Claude Code","ChromeNativeHost")]}return AR4().map(({path:K})=>K)}async function vuK(q){let K=qNY();if(K.length===0)throw Error("Claude in Chrome Native Host not supported on this platform");let _={name:n37,description:"Claude Code Browser Extension Native Host",path:q,type:"stdio",allowed_origins:["chrome-extension://fcoeoabgfenejglbffodgkkbkcdhcgfn/",...[]]},z=g6(_,null,2),Y=!1;for(let $ of K){let A=fs($,TuK);if(await NuK(A,"utf-8").catch(()=>null)===z)continue;try{await VuK($,{recursive:!0}),await yuK(A,z),N(`[Claude in Chrome] Installed native host manifest at: ${A}`),Y=!0}catch(w){N(`[Claude in Chrome] Failed to install manifest at ${A}: ${w}`)}}if(Z1()==="windows"){let $=fs(K[0],TuK);KNY($)}if(Y)Zs().then(($)=>{if($)N("[Claude in Chrome] First-time install detected, opening reconnect page in browser"),ty8(eVY);else N("[Claude in Chrome] First-time install detected, but extension not installed, skipping reconnect")})}function KNY(q){let K=OR4();for(let{browser:_,key:z}of K){let Y=`${z}\\${n37}`;S7("reg",["add",Y,"/ve","/t","REG_SZ","/d",q,"/f"]).then(($)=>{if($.code===0)N(`[Claude in Chrome] Registered native host for ${_} in Windows registry: ${Y}`);else N(`[Claude in Chrome] Failed to register native host for ${_} in Windows registry: ${$.stderr}`)})}}async function kuK(q){let K=Z1(),_=fs(c1(),"chrome"),z=K==="windows"?fs(_,"chrome-native-host.bat"):fs(_,"chrome-native-host"),Y=K==="windows"?`@echo off |
| 6727 | `;if(await NuK(z,"utf-8").catch(()=>null)===Y)return z;if(await VuK(_,{recursive:!0}),await yuK(z,Y),K!=="windows")await aVY(z,493);return N(`[Claude in Chrome] Created Chrome native host wrapper script: ${z}`),z}function _NY(){return Zs().then((K)=>{if(!K)return;if(j8().cachedChromeExtensionInstalled!==K)b8((z)=>({...z,cachedChromeExtensionInstalled:K}))}),j8().cachedChromeExtensionInstalled??!1}async function Zs(){let q=$R4();if(q.length===0)return N(`[Claude in Chrome] Unsupported platform for extension detection: ${Z1()}`),!1;return ZuK(q,N)}var eVY="https://clau.de/chrome/reconnect",n37="com.anthropic.claude_code_browser_extension",TuK,FU8=void 0;var WJ6=y(()=>{zm6();v8();o1();V1();_8();m8();XK();vK();l8();cC();GuK();TuK=`${n37}.json`});var EuK={};T8(EuK,{call:()=>MNY});function ANY(q){let K=z6(41),{onDone:_,isExtensionInstalled:z,configEnabled:Y,isClaudeAISubscriber:$,isWSL:A}=q,O=P8(JNY),[w,j]=Jz.useState(0),[H,J]=Jz.useState(Y??!1),[M,X]=Jz.useState(!1),[P,W]=Jz.useState(z),D;if(K[0]===Symbol.for("react.memo_cache_sentinel"))D=!1,K[0]=D;else D=K[0];let f=D,G;if(K[1]!==O)G=O.find(HNY),K[1]=O,K[2]=G;else G=K[2];let T=G?.type==="connected",v;if(K[3]===Symbol.for("react.memo_cache_sentinel"))v=function(t){if(f)m3(t);else ty8(t)},K[3]=v;else v=K[3];let V=v,E;if(K[4]!==H)E=function(t){q:switch(t){case"install-extension":{j(jNY),X(!0),V(zNY);break q}case"reconnect":{j(wNY),Zs().then((q6)=>{if(W(q6),q6)X(!1)}),V($NY);break q}case"manage-permissions":{j(ONY),V(YNY);break q}case"toggle-default":{let q6=!H;b8((e)=>({...e,claudeInChromeDefaultEnabled:q6})),J(q6)}}},K[4]=H,K[5]=E;else E=K[5];let S=E,R;if(K[6]!==H||K[7]!==P){R=[];let K6=P?"":" (requires extension)";if(!P&&!f){let j6;if(K[9]===Symbol.for("react.memo_cache_sentinel"))j6={label:"Install Chrome extension",value:"install-extension"},K[9]=j6;else j6=K[9];R.push(j6)}let t;if(K[10]===Symbol.for("react.memo_cache_sentinel"))t=Jz.default.createElement(k,null,"Manage permissions"),K[10]=t;else t=K[10];let q6;if(K[11]!==K6)q6={label:Jz.default.createElement(Jz.default.Fragment,null,t,Jz.default.createElement(k,{dimColor:!0},K6)),value:"manage-permissions"},K[11]=K6,K[12]=q6;else q6=K[12];let e;if(K[13]===Symbol.for("react.memo_cache_sentinel"))e=Jz.default.createElement(k,null,"Reconnect extension"),K[13]=e;else e=K[13];let i;if(K[14]!==K6)i={label:Jz.default.createElement(Jz.default.Fragment,null,e,Jz.default.createElement(k,{dimColor:!0},K6)),value:"reconnect"},K[14]=K6,K[15]=i;else i=K[15];let $6=`Enabled by default: ${H?"Yes":"No"}`,M6;if(K[16]!==$6)M6={label:$6,value:"toggle-default"},K[16]=$6,K[17]=M6;else M6=K[17];R.push(q6,i,M6),K[6]=H,K[7]=P,K[8]=R}else R=K[8];let x=A||!$,I;if(K[18]!==_)I=()=>_(),K[18]=_,K[19]=I;else I=K[19];let B;if(K[20]===Symbol.for("react.memo_cache_sentinel"))B=Jz.default.createElement(k,null,"Claude in Chrome works with the Chrome extension to let you control your browser directly from Claude Code. Navigate websites, fill forms, capture screenshots, record GIFs, and debug with console logs and network requests."),K[20]=B;else B=K[20];let p;if(K[21]!==A)p=A&&Jz.default.createElement(k,{color:"error"},"Claude in Chrome is not supported in WSL at this time."),K[21]=A,K[22]=p;else p=K[22];let C;if(K[23]!==$)C=!$&&Jz.default.createElement(k,{color:"error"},"Claude in Chrome requires a claude.ai subscription."),K[23]=$,K[24]=C;else C=K[24];let g;if(K[25]!==S||K[26]!==T||K[27]!==x||K[28]!==P||K[29]!==R||K[30]!==w||K[31]!==M)g=!x&&Jz.default.createElement(Jz.default.Fragment,null,!f&&Jz.default.createElement(u,{flexDirection:"column"},Jz.default.createElement(k,null,"Status:"," ",T?Jz.default.createElement(k,{color:"success"},"Enabled"):Jz.default.createElement(k,{color:"inactive"},"Disabled")),Jz.default.createElement(k,null,"Extension:"," ",P?Jz.default.createElement(k,{color:"success"},"Installed"):Jz.default.createElement(k,{color:"warning"},"Not detected"))),Jz.default.createElement(H1,{key:w,options:R,onChange:S,hideIndexes:!0}),M&&Jz.default.createElement(k,{color:"warning"},"Once installed, select ",'"Reconnect extension"'," to connect."),Jz.default.createElement(k,null,Jz.default.createElement(k,{dimColor:!0},"Usage: "),Jz.default.createElement(k,null,"claude --chrome"),Jz.default.createElement(k,{dimColor:!0}," or "),Jz.default.createElement(k,null,"claude --no-chrome")),Jz.default.createElement(k,{dimColor:!0},"Site-level permissions are inherited from the Chrome extension. Manage permissions in the Chrome extension settings to control which sites Claude can browse, click, and type on.")),K[25]=S,K[26]=T,K[27]=x,K[28]=P,K[29]=R,K[30]=w,K[31]=M,K[32]=g;else g=K[32];let F;if(K[33]===Symbol.for("react.memo_cache_sentinel"))F=Jz.default.createElement(k,{dimColor:!0},"Learn more: https://code.claude.com/docs/en/chrome"),K[33]=F;else F=K[33];let U;if(K[34]!==p||K[35]!==C||K[36]!==g)U=Jz.default.createElement(u,{flexDirection:"column",gap:1},B,p,C,g,F),K[34]=p,K[35]=C,K[36]=g,K[37]=U;else U=K[37];let c;if(K[38]!==U||K[39]!==I)c=Jz.default.createElement(R1,{title:"Claude in Chrome (Beta)",onCancel:I,color:"chromeYellow"},U),K[38]=U,K[39]=I,K[40]=c;else c=K[40];return c}function ONY(q){return q+1}function wNY(q){return q+1}function jNY(q){return q+1}function HNY(q){return q.name===yN}function JNY(q){return q.mcp.clients}var Jz,zNY="https://claude.ai/chrome",YNY="https://clau.de/chrome/permissions",$NY="https://clau.de/chrome/reconnect",MNY=async function(q){let K=await Zs(),_=j8(),z=d7(),Y=a1.isWslEnvironment();return Jz.default.createElement(ANY,{onDone:q,isExtensionInstalled:K,configEnabled:_.claudeInChromeDefaultEnabled,isClaudeAISubscriber:z,isWSL:Y})};var LuK=y(()=>{q8();p3();e4();s6();C7();G7();hH();cC();WJ6();V1();y_();m8();Jz=O6(D6(),1)});var XNY,RuK;var huK=y(()=>{v8();XNY={name:"chrome",description:"Claude in Chrome (Beta) settings",availability:["claude-ai"],isEnabled:()=>!i7(),type:"local-jsx",load:()=>Promise.resolve().then(() => (LuK(),EuK))},RuK=XNY});var SuK={};T8(SuK,{call:()=>PNY});async function PNY(){if(await m3("https://www.stickermule.com/claudecode"))return{type:"text",value:"Opening sticker page in browser…"};else return{type:"text",value:"Failed to open browser. Visit: https://www.stickermule.com/claudecode"}}var CuK=y(()=>{hH()});var WNY,r37;var buK=y(()=>{WNY={type:"local",name:"stickers",description:"Order Claude Code stickers",supportsNonInteractive:!1,load:()=>Promise.resolve().then(() => (CuK(),SuK))},r37=WNY});var DNY=async(q,K)=>{let _=q.trim().toLowerCase(),z=A5(K.getAppState().mainLoopModel??KG());if(!_){let w=K.getAppState().advisorModel;if(!w)return{type:"text",value:`Advisor: not set |