MCPcopy Index your code
hub / github.com/ChinaSiro/claude-code-sourcemap / lcY

Function lcY

package/cli.js:8152–8152  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

8150${h7("suggestion",q.theme)(`/plugin install vercel@${C2}`)}`},cooldownSessions:3,isRelevant:async(q)=>caK("vercel",q,{filePath:/(?:^|[/\\])vercel\.json$/i,cli:["vercel"]})},{id:"effort-high-nudge",content:async(q)=>{let _=h7("suggestion",q.theme)("/effort high");return g8("tengu_tide_elm","off")==="copy_b"?`Use ${_} for better one-shot answers. Claude thinks it through first.`:`Working on something tricky? ${_} gives better first answers`},cooldownSessions:3,isRelevant:async()=>{if(!P$6())return!1;if(!fL(D5()))return!1;if(v1("policySettings")?.effortLevel!==void 0)return!1;if(iA6()!==void 0)return!1;let q=N7().effortLevel;if(q==="high"||q==="max")return!1;return g8("tengu_tide_elm","off")!=="off"}},{id:"subagent-fanout-nudge",content:async(q)=>{let K=h7("suggestion",q.theme);return g8("tengu_tern_alloy","off")==="copy_b"?`For big tasks, tell Claude to ${K("use subagents")}. They work in parallel and keep your main thread clean.`:`Say ${K('"fan out subagents"')} and Claude sends a team. Each one digs deep so nothing gets missed.`},cooldownSessions:3,isRelevant:async()=>{if(!P$6())return!1;return g8("tengu_tern_alloy","off")!=="off"}},{id:"loop-command-nudge",content:async(q)=>{let K=h7("suggestion",q.theme);return g8("tengu_timber_lark","off")==="copy_b"?`Use ${K("/loop 5m check the deploy")} to run any prompt on a schedule. Set it and forget it.`:`${K("/loop")} runs any prompt on a recurring schedule. Great for monitoring deploys, babysitting PRs, or polling status.`},cooldownSessions:3,isRelevant:async()=>{if(!P$6())return!1;if(!vN())return!1;return g8("tengu_timber_lark","off")!=="off"}},{id:"guest-passes",content:async(q)=>{let K=h7("claude",q.theme),_=C56();return _?`Share Claude Code and earn ${K(S56(_))} of extra usage · ${K("/passes")}`:`You have free guest passes to share · ${K("/passes")}`},cooldownSessions:3,isRelevant:async()=>{if(j8().hasVisitedPasses)return!1;let{eligible:K}=fS6();return K}},{id:"overage-credit",content:async(q)=>{let K=h7("claude",q.theme),_=Yj6(),z=_?mE6(_):null;if(!z)return"";return`${K(`${z} in extra usage, on us`)} · third-party apps · ${K("/extra-usage")}`},cooldownSessions:3,isRelevant:async()=>eq7()},{id:"feedback-command",content:async()=>"Use /feedback to help us improve!",cooldownSessions:15,async isRelevant(){return j8().numStartups>5}}],VdY=[]});function ydY(q){if(q.length===0)return;if(q.length===1)return q[0];let K=q.map((_)=>({tip:_,sessions:pc8(_.id)}));return K.sort((_,z)=>z.sessions-_.sessions),K[0]?.tip}async function laK(q){if(Z7().spinnerTipsEnabled===!1)return;let K=await Fc8(q);if(K.length===0)return;return ydY(K)}function naK(q){UaK(q.id),d("tengu_tip_shown",{tipIdLength:q.id,cooldownSessions:q.cooldownSessions})}var iaK=y(()=>{U1();k8();c$7();i$7()});var EdY,LdY,RdY,eSj,hdY,SdY,CdY,bdY,xdY,IdY,qCj,udY,mdY,pdY,KCj,BdY,_Cj,gdY,zCj,FdY,UdY,QdY,ddY,YCj,cdY,$Cj,ldY,ndY,idY,rdY,odY,ACj,adY,raK,sdY,r$7,tdY,edY,oaK,qcY,aaK,KcY,OCj,wCj;var saK=y(()=>{x7();Ai1();EdY=B6(()=>L.unknown()),LdY=B6(()=>L.object({matcher:L.string().optional(),hookCallbackIds:L.array(L.string()),timeout:L.number().optional()}).describe("Configuration for matching and routing hook callbacks.")),RdY=B6(()=>L.object({subtype:L.literal("initialize"),hooks:L.record(e1K(),L.array(LdY())).optional(),sdkMcpServers:L.array(L.string()).optional(),jsonSchema:L.record(L.string(),L.unknown()).optional(),systemPrompt:L.string().optional(),appendSystemPrompt:L.string().optional(),agents:L.record(L.string(),z7K()).optional(),promptSuggestions:L.boolean().optional(),agentProgressSummaries:L.boolean().optional()}).describe("Initializes the SDK session with hooks, MCP servers, and agent configuration.")),eSj=B6(()=>L.object({commands:L.array(_i1()),agents:L.array(zi1()),output_style:L.string(),available_output_styles:L.array(L.string()),models:L.array(K7K()),account:_7K(),pid:L.number().optional().describe("@internal CLI process PID for tmux socket isolation"),fast_mode_state:Xe6().optional()}).describe("Response from session initialization with available commands, models, and account info.")),hdY=B6(()=>L.object({subtype:L.literal("interrupt")}).describe("Interrupts the currently running conversation turn.")),SdY=B6(()=>L.object({subtype:L.literal("can_use_tool"),tool_name:L.string(),input:L.record(L.string(),L.unknown()),permission_suggestions:L.array(Me6()).optional(),blocked_path:L.string().optional(),decision_reason:L.string().optional(),title:L.string().optional(),display_name:L.string().optional(),tool_use_id:L.string(),agent_id:L.string().optional(),description:L.string().optional()}).describe("Requests permission to use a tool with the given input.")),CdY=B6(()=>L.object({subtype:L.literal("set_permission_mode"),mode:Uo(),ultraplan:L.boolean().optional().describe("@internal CCR ultraplan session marker.")}).describe("Sets the permission mode for tool execution handling.")),bdY=B6(()=>L.object({subtype:L.literal("set_model"),model:L.string().optional()}).describe("Sets the model to use for subsequent conversation turns.")),xdY=B6(()=>L.object({subtype:L.literal("set_max_thinking_tokens"),max_thinking_tokens:L.number().nullable()}).describe("Sets the maximum number of thinking tokens for extended thinking.")),IdY=B6(()=>L.object({subtype:L.literal("mcp_status")}).describe("Requests the current status of all MCP server connections.")),qCj=B6(()=>L.object({mcpServers:L.array(Ki1())}).describe("Response containing the current status of all MCP server connections.")),udY=B6(()=>L.object({subtype:L.literal("get_context_usage")}).describe("Requests a breakdown of current context window usage by category.")),mdY=B6(()=>L.object({name:L.string(),tokens:L.number(),color:L.string(),isDeferred:L.boolean().optional()})),pdY=B6(()=>L.object({color:L.string(),isFilled:L.boolean(),categoryName:L.string(),tokens:L.number(),percentage:L.number(),squareFullness:L.number()})),KCj=B6(()=>L.object({categories:L.array(mdY()),totalTokens:L.number(),maxTokens:L.number(),rawMaxTokens:L.number(),percentage:L.number(),gridRows:L.array(L.array(pdY())),model:L.string(),memoryFiles:L.array(L.object({path:L.string(),type:L.string(),tokens:L.number()})),mcpTools:L.array(L.object({name:L.string(),serverName:L.string(),tokens:L.number(),isLoaded:L.boolean().optional()})),deferredBuiltinTools:L.array(L.object({name:L.string(),tokens:L.number(),isLoaded:L.boolean()})).optional(),systemTools:L.array(L.object({name:L.string(),tokens:L.number()})).optional(),systemPromptSections:L.array(L.object({name:L.string(),tokens:L.number()})).optional(),agents:L.array(L.object({agentType:L.string(),source:L.string(),tokens:L.number()})),slashCommands:L.object({totalCommands:L.number(),includedCommands:L.number(),tokens:L.number()}).optional(),skills:L.object({totalSkills:L.number(),includedSkills:L.number(),tokens:L.number(),skillFrontmatter:L.array(L.object({name:L.string(),source:L.string(),tokens:L.number()}))}).optional(),autoCompactThreshold:L.number().optional(),isAutoCompactEnabled:L.boolean(),messageBreakdown:L.object({toolCallTokens:L.number(),toolResultTokens:L.number(),attachmentTokens:L.number(),assistantMessageTokens:L.number(),userMessageTokens:L.number(),toolCallsByType:L.array(L.object({name:L.string(),callTokens:L.number(),resultTokens:L.number()})),attachmentsByType:L.array(L.object({name:L.string(),tokens:L.number()}))}).optional(),apiUsage:L.object({input_tokens:L.number(),output_tokens:L.number(),cache_creation_input_tokens:L.number(),cache_read_input_tokens:L.number()}).nullable()}).describe("Breakdown of current context window usage by category (system prompt, tools, messages, etc.).")),BdY=B6(()=>L.object({subtype:L.literal("rewind_files"),user_message_id:L.string(),dry_run:L.boolean().optional()}).describe("Rewinds file changes made since a specific user message.")),_Cj=B6(()=>L.object({canRewind:L.boolean(),error:L.string().optional(),filesChanged:L.array(L.string()).optional(),insertions:L.number().optional(),deletions:L.number().optional()}).describe("Result of a rewindFiles operation.")),gdY=B6(()=>L.object({subtype:L.literal("cancel_async_message"),message_uuid:L.string()}).describe("Drops a pending async user message from the command queue by uuid. No-op if already dequeued for execution.")),zCj=B6(()=>L.object({cancelled:L.boolean()}).describe("Result of a cancel_async_message operation. cancelled=false means the message was not in the queue (already dequeued or never enqueued).")),FdY=B6(()=>L.object({subtype:L.literal("seed_read_state"),path:L.string(),mtime:L.number()}).describe("Seeds the readFileState cache with a path+mtime entry. Use when a prior Read was removed from context (e.g. by snip) so Edit validation would fail despite the client having observed the Read. The mtime lets the CLI detect if the file changed since the seeded Read — same staleness check as the normal path.")),UdY=B6(()=>L.object({subtype:L.literal("hook_callback"),callback_id:L.string(),input:q7K(),tool_use_id:L.string().optional()}).describe("Delivers a hook callback with its input data.")),QdY=B6(()=>L.object({subtype:L.literal("mcp_message"),server_name:L.string(),message:EdY()}).describe("Sends a JSON-RPC message to a specific MCP server.")),ddY=B6(()=>L.object({subtype:L.literal("mcp_set_servers"),servers:L.record(L.string(),bC8())}).describe("Replaces the set of dynamically managed MCP servers.")),YCj=B6(()=>L.object({added:L.array(L.string()),removed:L.array(L.string()),errors:L.record(L.string(),L.string())}).describe("Result of replacing the set of dynamically managed MCP servers.")),cdY=B6(()=>L.object({subtype:L.literal("reload_plugins")}).describe("Reloads plugins from disk and returns the refreshed session components.")),$Cj=B6(()=>L.object({commands:L.array(_i1()),agents:L.array(zi1()),plugins:L.array(L.object({name:L.string(),path:L.string(),source:L.string().optional()})),mcpServers:L.array(Ki1()),error_count:L.number()}).describe("Refreshed commands, agents, plugins, and MCP server status after reload.")),ldY=B6(()=>L.object({subtype:L.literal("mcp_reconnect"),serverName:L.string()}).describe("Reconnects a disconnected or failed MCP server.")),ndY=B6(()=>L.object({subtype:L.literal("mcp_toggle"),serverName:L.string(),enabled:L.boolean()}).describe("Enables or disables an MCP server.")),idY=B6(()=>L.object({subtype:L.literal("stop_task"),task_id:L.string()}).describe("Stops a running task.")),rdY=B6(()=>L.object({subtype:L.literal("apply_flag_settings"),settings:L.record(L.string(),L.unknown())}).describe("Merges the provided settings into the flag settings layer, updating the active configuration.")),odY=B6(()=>L.object({subtype:L.literal("get_settings")}).describe("Returns the effective merged settings and the raw per-source settings.")),ACj=B6(()=>L.object({effective:L.record(L.string(),L.unknown()),sources:L.array(L.object({source:L.enum(["userSettings","projectSettings","localSettings","flagSettings","policySettings"]),settings:L.record(L.string(),L.unknown())})).describe("Ordered low-to-high priority — later entries override earlier ones."),applied:L.object({model:L.string(),effort:L.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.")),adY=B6(()=>L.object({subtype:L.literal("elicitation"),mcp_server_name:L.string(),message:L.string(),mode:L.enum(["form","url"]).optional(),url:L.string().optional(),elicitation_id:L.string().optional(),requested_schema:L.record(L.string(),L.unknown()).optional()}).describe("Requests the SDK consumer to handle an MCP elicitation (user input request).")),raK=B6(()=>L.object({action:L.enum(["accept","decline","cancel"]),content:L.record(L.string(),L.unknown()).optional()}).describe("Response from the SDK consumer for an elicitation request.")),sdY=B6(()=>L.union([hdY(),SdY(),RdY(),CdY(),bdY(),xdY(),IdY(),udY(),UdY(),QdY(),BdY(),gdY(),FdY(),ddY(),cdY(),ldY(),ndY(),idY(),rdY(),odY(),adY()])),r$7=B6(()=>L.object({type:L.literal("control_request"),request_id:L.string(),request:sdY()})),tdY=B6(()=>L.object({subtype:L.literal("success"),request_id:L.string(),response:L.record(L.string(),L.unknown()).optional()})),edY=B6(()=>L.object({subtype:L.literal("error"),request_id:L.string(),error:L.string(),pending_permission_requests:L.array(L.lazy(()=>r$7())).optional()})),oaK=B6(()=>L.object({type:L.literal("control_response"),response:L.union([tdY(),edY()])})),qcY=B6(()=>L.object({type:L.literal("control_cancel_request"),request_id:L.string()}).describe("Cancels a currently open control request.")),aaK=B6(()=>L.object({type:L.literal("keep_alive")}).describe("Keep-alive message to maintain WebSocket connection.")),KcY=B6(()=>L.object({type:L.literal("update_environment_variables"),variables:L.record(L.string(),L.string())}).describe("Updates environment variables at runtime.")),OCj=B6(()=>L.union([H7K(),A7K(),O7K(),j7K(),oaK(),r$7(),qcY(),aaK()])),wCj=B6(()=>L.union([$i1(),r$7(),oaK(),aaK(),KcY()]))});function xC6(q,K,_,z){let Y={type:"permissionPromptTool",permissionPromptToolName:K.name,toolResult:q};if(q.behavior==="allow"){let $=q.updatedPermissions;if($)z.setAppState((O)=>({...O,toolPermissionContext:XN(O.toolPermissionContext,$)})),ru($);let A=Object.keys(q.updatedInput).length>0?q.updatedInput:_;return{...q,updatedInput:A,decisionReason:Y}}else if(q.behavior==="deny"&&q.interrupt)N(`SDK permission prompt deny+interrupt: tool=${K.name} message=${q.message}`),z.abortController.abort();return{...q,decisionReason:Y}}var WCj,taK,_cY,zcY,_K8;var o$7=y(()=>{x7();_8();LH();dC8();WCj=B6(()=>KK.object({tool_name:KK.string().describe("The name of the tool requesting permission"),input:KK.record(KK.string(),KK.unknown()).describe("The input for the tool"),tool_use_id:KK.string().optional().describe("The unique tool use request ID")})),taK=B6(()=>KK.enum(["user_temporary","user_permanent","user_reject"]).optional().catch(void 0)),_cY=B6(()=>KK.object({behavior:KK.literal("allow"),updatedInput:KK.record(KK.string(),KK.unknown()),updatedPermissions:KK.array(TE6()).optional().catch((q)=>{N(`Malformed updatedPermissions from SDK host ignored: ${q.error.issues[0]?.message??"unknown"}`,{level:"warn"});return}),toolUseID:KK.string().optional(),decisionClassification:taK()})),zcY=B6(()=>KK.object({behavior:KK.literal("deny"),message:KK.string(),interrupt:KK.boolean().optional(),toolUseID:KK.string().optional(),decisionClassification:taK()})),_K8=B6(()=>KK.union([_cY(),zcY()]))});function $cY(q){return q.replace(YcY,(K)=>K==="\u2028"?"\\u2028":"\\u2029")}function Uc8(q){return $cY(g6(q))}var YcY;var a$7=y(()=>{l8();YcY=/\u2028|\u2029/g});import{randomUUID as s$7}from"crypto";function OcY(q){if(!q)return;if(q.type==="classifier")return q.reason;switch(q.type){case"rule":case"mode":case"subcommandResults":case"permissionPromptTool":return;case"hook":case"asyncAgent":case"sandboxOverride":case"workingDir":case"safetyCheck":case"other":return q.reason}}function wcY(q,K,_,z){let Y;try{Y=q.getActivityDescription?.(K)??q.getToolUseSummary?.(K)??q.userFacingName(K)}catch{Y=q.name}return{tool_name:q.name,action_description:Y,tool_use_id:_,request_id:z,input:K}}class zK8{input;replayUserMessages;structuredInput;pendingRequests=new Map;restoredWorkerState=Promise.resolve(null);inputClosed=!1;unexpectedResponseCallback;resolvedToolUseIds=new Set;prependedLines=[];onControlRequestSent;onControlRequestResolved;outbound=new Y18;constructor(q,K){this.input=q;this.replayUserMessages=K;this.input=q,this.structuredInput=this.read()}trackResolvedToolUseId(q){if(q.request.subtype==="can_use_tool"){if(this.resolvedToolUseIds.add(q.request.tool_use_id),this.resolvedToolUseIds.size>jcY){let K=this.resolvedToolUseIds.values().next().value;if(K!==void 0)this.resolvedToolUseIds.delete(K)}}}flushInternalEvents(){return Promise.resolve()}get internalEventsPending(){return 0}prependUserMessage(q){this.prependedLines.push(g6({type:"user",session_id:"",message:{role:"user",content:q},parent_tool_use_id:null})+`
8151`)}async*read(){let q="",K=async function*(){for(;;){if(this.prependedLines.length>0)q=this.prependedLines.join("")+q,this.prependedLines=[];let _=q.indexOf(`
8152`);if(_===-1)break;let z=q.slice(0,_);q=q.slice(_+1);let Y=await this.processLine(z);if(Y)c8("info","cli_stdin_message_parsed",{type:Y.type}),yield Y}}.bind(this);yield*K();for await(let _ of this.input)q+=_,yield*K();if(q){let _=await this.processLine(q);if(_)yield _}this.inputClosed=!0;for(let _ of this.pendingRequests.values())_.reject(Error("Tool permission stream closed before response received"))}getPendingPermissionRequests(){return Array.from(this.pendingRequests.values()).map((q)=>q.request).filter((q)=>q.request.subtype==="can_use_tool")}setUnexpectedResponseCallback(q){this.unexpectedResponseCallback=q}injectControlResponse(q){let K=q.response?.request_id;if(!K)return;let _=this.pendingRequests.get(K);if(!_)return;if(this.trackResolvedToolUseId(_.request),this.pendingRequests.delete(K),this.write({type:"control_cancel_request",request_id:K}),q.response.subtype==="error")_.reject(Error(q.response.error));else{let z=q.response.response;if(_.schema)try{_.resolve(_.schema.parse(z))}catch(Y){_.reject(Y)}else _.resolve({})}}setOnControlRequestSent(q){this.onControlRequestSent=q}setOnControlRequestResolved(q){this.onControlRequestResolved=q}async processLine(q){if(!q)return;try{let K=qd8(r8(q));if(K.type==="keep_alive")return;if(K.type==="update_environment_variables"){let _=Object.keys(K.variables);for(let[z,Y]of Object.entries(K.variables))process.env[z]=Y;N(`[structuredIO] applied update_environment_variables: ${_.join(", ")}`);return}if(K.type==="control_response"){let _="uuid"in K&&typeof K.uuid==="string"?K.uuid:void 0;if(_)jU(_,"completed");let z=this.pendingRequests.get(K.response.request_id);if(!z){let A=(K.response.subtype==="success"?K.response.response:void 0)?.toolUseID;if(typeof A==="string"&&this.resolvedToolUseIds.has(A)){N(`Ignoring duplicate control_response for already-resolved toolUseID=${A} request_id=${K.response.request_id}`);return}if(this.unexpectedResponseCallback)await this.unexpectedResponseCallback(K);return}if(this.trackResolvedToolUseId(z.request),this.pendingRequests.delete(K.response.request_id),z.request.request.subtype==="can_use_tool"&&this.onControlRequestResolved)this.onControlRequestResolved(K.response.request_id);if(K.response.subtype==="error"){z.reject(Error(K.response.error));return}let Y=K.response.response;if(z.schema)try{z.resolve(z.schema.parse(Y))}catch($){z.reject($)}else z.resolve({});if(this.replayUserMessages)return K;return}if(K.type!=="user"&&K.type!=="control_request"&&K.type!=="assistant"&&K.type!=="system"){N(`Ignoring unknown message type: ${K.type}`,{level:"warn"});return}if(K.type==="control_request"){if(!K.request)eaK("Error: Missing request on control_request");return K}if(K.type==="assistant"||K.type==="system")return K;if(K.message.role!=="user")eaK(`Error: Expected message role 'user', got '${K.message.role}'`);return K}catch(K){console.error(`Error parsing streaming input line: ${q}: ${K}`),process.exit(1)}}async write(q){C4(Uc8(q)+`
8153`)}async sendRequest(q,K,_,z=s$7()){let Y={type:"control_request",request_id:z,request:q};if(this.inputClosed)throw Error("Stream closed");if(_?.aborted)throw Error("Request aborted");if(this.outbound.enqueue(Y),q.subtype==="can_use_tool"&&this.onControlRequestSent)this.onControlRequestSent(Y);let $=()=>{this.outbound.enqueue({type:"control_cancel_request",request_id:z});let A=this.pendingRequests.get(z);if(A)this.trackResolvedToolUseId(A.request),A.reject(new Uz)};if(_)_.addEventListener("abort",$,{once:!0});try{return await new Promise((A,O)=>{this.pendingRequests.set(z,{request:{type:"control_request",request_id:z,request:q},resolve:(w)=>{A(w)},reject:O,schema:K})})}finally{if(_)_.removeEventListener("abort",$);this.pendingRequests.delete(z)}}createCanUseTool(q){return async(K,_,z,Y,$,A)=>{let O=A??await uX(K,_,z,Y,$);if(O.behavior==="allow"||O.behavior==="deny")return O;let w=new AbortController,j=z.abortController.signal,H=()=>w.abort();j.addEventListener("abort",H,{once:!0});try{let J=HcY(K.name,$,_,z,O.suggestions).then((W)=>({source:"hook",decision:W})),M=s$7();q?.(wcY(K,_,$,M));let X=this.sendRequest({subtype:"can_use_tool",tool_name:K.name,input:_,permission_suggestions:O.suggestions,blocked_path:O.blockedPath,decision_reason:OcY(O.decisionReason),tool_use_id:$,agent_id:z.agentId},_K8(),w.signal,M).then((W)=>({source:"sdk",result:W})),P=await Promise.race([J,X]);if(P.source==="hook"){if(P.decision)return X.catch(()=>{}),w.abort(),P.decision;let W=await X;return xC6(W.result,K,_,z)}return xC6(P.result,K,_,z)}catch(J){return xC6({behavior:"deny",message:`Tool permission request failed: ${J}`,toolUseID:$},K,_,z)}finally{if(this.getPendingPermissionRequests().length===0)sS6("running");j.removeEventListener("abort",H)}}}createHookCallback(q,K){return{type:"callback",timeout:K,callback:async(_,z,Y)=>{try{return await this.sendRequest({subtype:"hook_callback",callback_id:q,input:_,tool_use_id:z||void 0},lS6(),Y)}catch($){return console.error(`Error in hook callback ${q}:`,$),{}}}}}async handleElicitation(q,K,_,z,Y,$,A){try{return await this.sendRequest({subtype:"elicitation",mcp_server_name:q,message:K,mode:Y,url:$,elicitation_id:A,requested_schema:_},raK(),z)}catch{return{action:"cancel"}}}createSandboxAskCallback(){return async(q)=>{try{return(await this.sendRequest({subtype:"can_use_tool",tool_name:t$7,input:{host:q.host},tool_use_id:s$7(),description:`Allow network connection to ${q.host}?`},_K8())).behavior==="allow"}catch{return!1}}}async sendMcpMessage(q,K){return(await this.sendRequest({subtype:"mcp_message",server_name:q,message:K},L.object({mcp_response:L.any()}))).mcp_response}}function eaK(q){console.error(q),process.exit(1)}async function HcY(q,K,_,z,Y){let A=z.getAppState().toolPermissionContext.mode,O=hH6(q,K,_,z,A,Y,z.abortController.signal);for await(let w of O)if(w.permissionRequestResult&&(w.permissionRequestResult.behavior==="allow"||w.permissionRequestResult.behavior==="deny")){let j=w.permissionRequestResult;if(j.behavior==="allow"){let H=j.updatedInput||_,J=j.updatedPermissions??[];if(J.length>0){ru(J);let M=z.getAppState(),X=XN(M.toolPermissionContext,J);z.setAppState((P)=>{if(P.toolPermissionContext===X)return P;return{...P,toolPermissionContext:X}})}return{behavior:"allow",updatedInput:H,userModified:!1,decisionReason:{type:"hook",hookName:"PermissionRequest"}}}else return{behavior:"deny",message:j.message||"Permission denied by PermissionRequest hook",decisionReason:{type:"hook",hookName:"PermissionRequest"}}}return}var t$7="SandboxNetworkAccess",jcY=1000;var Qc8=y(()=>{saK();Y_7();_8();oY();y8();o$7();Fj();l8();x7();y$();LH();z48();l8();q87();a$7()});function qsK(q,K,_){let z=dc8.useRef(!1);dc8.useEffect(()=>{if(!e$()||z.current)return;if(z.current=!0,q)Jx8(q,_)},[K,q,_])}var dc8;var KsK=y(()=>{oN();dc8=O6(D6(),1)});function e$7(q){let K=z6(22),{hostPattern:_,onUserResponse:z}=q,{host:Y}=_,$;if(K[0]!==z)$=function(v){q:switch(v){case"yes":{z({allow:!0,persistToSettings:!1});break q}case"yes-dont-ask-again":{z({allow:!0,persistToSettings:!0});break q}case"no":z({allow:!1,persistToSettings:!1})}},K[0]=z,K[1]=$;else $=K[1];let A=$,O;if(K[2]===Symbol.for("react.memo_cache_sentinel"))O=lA6(),K[2]=O;else O=K[2];let w=O,j;if(K[3]===Symbol.for("react.memo_cache_sentinel"))j={label:"Yes",value:"yes"},K[3]=j;else j=K[3];let H;if(K[4]!==Y)H=!w?[{label:Sw.createElement(k,null,"Yes, and don't ask again for ",Sw.createElement(k,{bold:!0},Y)),value:"yes-dont-ask-again"}]:[],K[4]=Y,K[5]=H;else H=K[5];let J;if(K[6]===Symbol.for("react.memo_cache_sentinel"))J={label:Sw.createElement(k,null,"No, and tell Claude what to do differently ",Sw.createElement(k,{bold:!0},"(esc)")),value:"no"},K[6]=J;else J=K[6];let M;if(K[7]!==H)M=[j,...H,J],K[7]=H,K[8]=M;else M=K[8];let X=M,P;if(K[9]===Symbol.for("react.memo_cache_sentinel"))P=Sw.createElement(k,{dimColor:!0},"Host:"),K[9]=P;else P=K[9];let W;if(K[10]!==Y)W=Sw.createElement(u,null,P,Sw.createElement(k,null," ",Y)),K[10]=Y,K[11]=W;else W=K[11];let D;if(K[12]===Symbol.for("react.memo_cache_sentinel"))D=Sw.createElement(u,{marginTop:1},Sw.createElement(k,null,"Do you want to allow this connection?")),K[12]=D;else D=K[12];let f;if(K[13]!==z)f=()=>{z({allow:!1,persistToSettings:!1})},K[13]=z,K[14]=f;else f=K[14];let G;if(K[15]!==A||K[16]!==X||K[17]!==f)G=Sw.createElement(u,null,Sw.createElement(H1,{options:X,onChange:A,onCancel:f})),K[15]=A,K[16]=X,K[17]=f,K[18]=G;else G=K[18];let Z;if(K[19]!==G||K[20]!==W)Z=Sw.createElement(HY,{title:"Network request outside of sandbox"},Sw.createElement(u,{flexDirection:"column",paddingX:2,paddingY:1},W,D,G)),K[19]=G,K[20]=W,K[21]=Z;else Z=K[21];return Z}var Sw;var _sK=y(()=>{q8();s6();K$();p3();GD();Sw=O6(D6(),1)});function JcY(q){let K=q.getHours()%12||12,_=String(q.getMinutes()).padStart(2,"0"),z=String(q.getSeconds()).padStart(2,"0"),Y=q.getHours()<12?"am":"pm";return`${K}:${_}:${z}${Y}`}function qA7(){let q=z6(15),K;if(q[0]===Symbol.for("react.memo_cache_sentinel"))K=[],q[0]=K;else K=q[0];let[_,z]=YK8.useState(K),[Y,$]=YK8.useState(0),A,O;if(q[1]===Symbol.for("react.memo_cache_sentinel"))A=()=>{let P=M7.getSandboxViolationStore();return P.subscribe((D)=>{z(D.slice(-10)),$(P.getTotalCount())})},O=[],q[1]=A,q[2]=O;else A=q[1],O=q[2];if(YK8.useEffect(A,O),!M7.isSandboxingEnabled()||Z1()==="linux")return null;if(Y===0)return null;let w=Y===1?"operation":"operations",j;if(q[3]!==w||q[4]!==Y)j=Gk.createElement(u,{marginLeft:0},Gk.createElement(k,{color:"permission"},"⧈ Sandbox blocked ",Y," total"," ",w)),q[3]=w,q[4]=Y,q[5]=j;else j=q[5];let H;if(q[6]!==_)H=_.map(McY),q[6]=_,q[7]=H;else H=q[7];let J=Math.min(10,_.length),M;if(q[8]!==J||q[9]!==Y)M=Gk.createElement(u,{paddingLeft:2},Gk.createElement(k,{dimColor:!0},"… showing last ",J," of ",Y)),q[8]=J,q[9]=Y,q[10]=M;else M=q[10];let X;if(q[11]!==j||q[12]!==H||q[13]!==M)X=Gk.createElement(u,{flexDirection:"column",marginTop:1},j,H,M),q[11]=j,q[12]=H,q[13]=M,q[14]=X;else X=q[14];return X}function McY(q,K){return Gk.createElement(u,{key:`${q.timestamp.getTime()}-${K}`,paddingLeft:2},Gk.createElement(k,{dimColor:!0},JcY(q.timestamp),q.command?` ${q.command}:`:""," ",q.line))}var Gk,YK8;var zsK=y(()=>{q8();s6();K$();vK();Gk=O6(D6(),1),YK8=O6(D6(),1)});function $sK(q){let K=z6(4),{mcpClients:_}=q,z=_===void 0?XcY:_,{addNotification:Y}=PK(),$,A;if(K[0]!==Y||K[1]!==z)$=()=>{if(z5())return;let O=z.filter(fcY),w=z.filter(DcY),j=z.filter(WcY),H=z.filter(PcY);if(O.length===0&&w.length===0&&j.length===0&&H.length===0)return;if(O.length>0)Y({key:"mcp-failed",jsx:cY.createElement(cY.Fragment,null,cY.createElement(k,{color:"error"},O.length," MCP"," ",O.length===1?"server":"servers"," failed"),cY.createElement(k,{dimColor:!0}," · /mcp")),priority:"medium"});if(w.length>0)Y({key:"mcp-claudeai-failed",jsx:cY.createElement(cY.Fragment,null,cY.createElement(k,{color:"error"},w.length," claude.ai"," ",w.length===1?"connector":"connectors"," ","unavailable"),cY.createElement(k,{dimColor:!0}," · /mcp")),priority:"medium"});if(j.length>0)Y({key:"mcp-needs-auth",jsx:cY.createElement(cY.Fragment,null,cY.createElement(k,{color:"warning"},j.length," MCP"," ",j.length===1?"server needs":"servers need"," ","auth"),cY.createElement(k,{dimColor:!0}," · /mcp")),priority:"medium"});if(H.length>0)Y({key:"mcp-claudeai-needs-auth",jsx:cY.createElement(cY.Fragment,null,cY.createElement(k,{color:"warning"},H.length," claude.ai"," ",H.length===1?"connector needs":"connectors need"," ","auth"),cY.createElement(k,{dimColor:!0}," · /mcp")),priority:"medium"})},A=[Y,z],K[0]=Y,K[1]=z,K[2]=$,K[3]=A;else $=K[2],A=K[3];YsK.useEffect($,A)}function PcY(q){return q.type==="needs-auth"&&q.config.type==="claudeai-proxy"&&NB1(q.name)}function WcY(q){return q.type==="needs-auth"&&q.config.type!=="claudeai-proxy"}function DcY(q){return q.type==="failed"&&q.config.type==="claudeai-proxy"&&NB1(q.name)}function fcY(q){return q.type==="failed"&&q.config.type!=="sse-ide"&&q.config.type!=="ws-ide"&&q.config.type!=="claudeai-proxy"}var cY,YsK,XcY;var AsK=y(()=>{q8();h$();v8();s6();ON6();cY=O6(D6(),1),YsK=O6(D6(),1),XcY=[]});function OsK(){let{addNotification:q}=PK(),K=P8(($)=>$.toolPermissionContext.mode),_=P8(($)=>$.toolPermissionContext.isAutoModeAvailable),z=$K8.useRef(!1),Y=$K8.useRef(K);$K8.useEffect(()=>{let $=Y.current;if(Y.current=K,z5())return;if(z.current)return;if(!(K==="default"&&$!=="default"&&$!=="auto"&&!_&&fl()))return;let O=la();if(!O)return;z.current=!0,q({key:"auto-mode-unavailable",text:A56(O),color:"warning",priority:"medium"})},[K,_,q])}var $K8;var wsK=y(()=>{h$();v8();C7();fX();U1();$K8=O6(D6(),1)});function jsK(){let q=z6(10),{addNotification:K}=PK(),_=s7(),[z,Y]=ZT.useState(TcY),$;if(q[0]===Symbol.for("react.memo_cache_sentinel"))$=new Set,q[0]=$;else $=q[0];let A=ZT.useRef($),O;if(q[1]!==K||q[2]!==_)O=(X,P)=>{let W=`${X}:${P}`;if(A.current.has(W))return;A.current.add(W),N(`LSP error: ${X} - ${P}`),_((f)=>{let G=new Set(f.plugins.errors.map(GcY)),Z=`generic-error:${X}:${P}`;if(G.has(Z))return f;return{...f,plugins:{...f.plugins,errors:[...f.plugins.errors,{type:"generic-error",source:X,error:P}]}}});let D=X.startsWith("plugin:")?X.split(":")[1]??X:X;K({key:`lsp-error-${X}`,jsx:ZT.createElement(ZT.Fragment,null,ZT.createElement(k,{color:"error"},"LSP for ",D," failed"),ZT.createElement(k,{dimColor:!0}," · /plugin for details")),priority:"medium",timeoutMs:8000})},q[1]=K,q[2]=_,q[3]=O;else O=q[3];let w=O,j;if(q[4]!==w)j=()=>{if(z5())return;if(r36())return;let X=WL6();if(X.status==="failed"){w("lsp-manager",X.error.message),Y(!1);return}if(X.status==="pending"||X.status==="not-started")return;let P=Ma();if(P){let W=P.getAllServers();for(let[D,f]of W)if(f.state==="error"&&f.lastError)w(D,f.lastError.message)}},q[4]=w,q[5]=j;else j=q[5];let H=j;eW(H,z?ZcY:null);let J,M;if(q[6]!==H||q[7]!==z)J=()=>{if(z5()||!z)return;H()},M=[H,z],q[6]=H,q[7]=z,q[8]=J,q[9]=M;else J=q[8],M=q[9];ZT.useEffect(J,M)}function GcY(q){if(q.type==="generic-error")return`generic-error:${q.source}:${q.error}`;return`${q.type}:${q.source}`}function TcY(){return i6("true")}var ZT,ZcY=5000;var HsK=y(()=>{q8();dV();v8();h$();s6();uQ();C7();_8();m8();ZT=O6(D6(),1)});async function MsK(q){if(!q||!q.trim())return N("[binaryCheck] Empty command provided, returning false"),!1;let K=q.trim(),_=JsK.get(K);if(_!==void 0)return N(`[binaryCheck] Cache hit for '${K}': ${_}`),_;let z=!1;if(await TO(K).catch(()=>null))z=!0;return JsK.set(K,z),N(`[binaryCheck] Binary '${K}' ${z?"found":"not found"}`),z}var JsK;var XsK=y(()=>{_8();rk();JsK=new Map});import{extname as vcY}from"path";function VcY(q){return _I.has(q.toLowerCase())}function NcY(q){if(!q)return null;if(typeof q==="string")return N("[lspRecommendation] Skipping string path lspServers (not readable from marketplace)"),null;if(Array.isArray(q)){for(let K of q){if(typeof K==="string")continue;let _=WsK(K);if(_)return _}return null}return WsK(q)}function PsK(q){return typeof q==="object"&&q!==null}function WsK(q){let K=new Set,_=null;for(let[z,Y]of Object.entries(q)){if(!PsK(Y))continue;if(!_&&typeof Y.command==="string")_=Y.command;let $=Y.extensionToLanguage;if(PsK($))for(let A of Object.keys($))K.add(A.toLowerCase())}if(!_||K.size===0)return null;return{extensions:K,command:_}}async function ycY(){let q=new Map;try{let K=await r_();for(let _ of Object.keys(K))try{let z=await r0(_),Y=VcY(_);for(let $ of z.plugins){if(!$.lspServers)continue;let A=NcY($.lspServers);if(!A)continue;let O=`${$.name}@${_}`;q.set(O,{entry:$,marketplaceName:_,extensions:A.extensions,command:A.command,isOfficial:Y})}}catch(z){N(`[lspRecommendation] Failed to load marketplace ${_}: ${z}`)}}catch(K){N(`[lspRecommendation] Failed to load marketplaces config: ${K}`)}return q}async function DsK(q){if(EcY())return N("[lspRecommendation] Recommendations are disabled"),[];let K=vcY(q).toLowerCase();if(!K)return N("[lspRecommendation] No file extension found"),[];N(`[lspRecommendation] Looking for LSP plugins for ${K}`);let _=await ycY(),Y=j8().lspRecommendationNeverPlugins??[],$=[];for(let[O,w]of _){if(!w.extensions.has(K))continue;if(Y.includes(O)){N(`[lspRecommendation] Skipping ${O} (in never suggest list)`);continue}if(Zb(O)){N(`[lspRecommendation] Skipping ${O} (already installed)`);continue}$.push({info:w,pluginId:O})}let A=[];for(let{info:O,pluginId:w}of $)if(await MsK(O.command))A.push({info:O,pluginId:w}),N(`[lspRecommendation] Binary '${O.command}' found for ${w}`);else N(`[lspRecommendation] Skipping ${w} (binary '${O.command}' not found)`);return A.sort((O,w)=>{if(O.info.isOfficial&&!w.info.isOfficial)return-1;if(!O.info.isOfficial&&w.info.isOfficial)return 1;return 0}),A.map(({info:O,pluginId:w})=>({pluginId:w,pluginName:O.entry.name,marketplaceName:O.marketplaceName,description:O.entry.description,isOfficial:O.isOfficial,extensions:Array.from(O.extensions),command:O.command}))}function fsK(q){b8((K)=>{let _=K.lspRecommendationNeverPlugins??[];if(_.includes(q))return K;return{...K,lspRecommendationNeverPlugins:[..._,q]}}),N(`[lspRecommendation] Added ${q} to never suggest`)}function ZsK(){b8((q)=>{let K=(q.lspRecommendationIgnoredCount??0)+1;return{...q,lspRecommendationIgnoredCount:K}}),N("[lspRecommendation] Incremented ignored count")}function EcY(){let q=j8();return q.lspRecommendationDisabled===!0||(q.lspRecommendationIgnoredCount??0)>=kcY}var kcY=5;var GsK=y(()=>{XsK();V1();_8();pX();Nw();BZ()});function cc8(){let q=z6(6),[K,_]=ns.useState(null),z=ns.useRef(!1),Y;if(q[0]!==K)Y=(j)=>{if(z5())return;if(K)return;if(z.current)return;z.current=!0,j().then((H)=>{if(H)_(H)}).catch(H6).finally(()=>{z.current=!1})},q[0]=K,q[1]=Y;else Y=q[1];let $=Y,A;if(q[2]===Symbol.for("react.memo_cache_sentinel"))A=()=>_(null),q[2]=A;else A=q[2];let O=A,w;if(q[3]!==K||q[4]!==$)w={recommendation:K,clearRecommendation:O,tryResolve:$},q[3]=K,q[4]=$,q[5]=w;else w=q[5];return w}async function lc8(q,K,_,z,Y){try{let $=await aG(q);if(!$)throw Error(`Plugin ${q} not found in marketplace`);await Y($),z({key:`${_}-installed`,jsx:ns.createElement(k,{color:"success"},t6.tick," ",K," installed · restart to apply"),priority:"immediate",timeoutMs:5000})}catch($){H6($),z({key:`${_}-install-failed`,jsx:ns.createElement(k,{color:"error"},"Failed to install ",K),priority:"immediate",timeoutMs:5000})}}var ns;var KA7=y(()=>{q8();bq();v8();s6();E8();Nw();ns=O6(D6(),1)});import{extname as LcY,join as RcY}from"path";function TsK(){let q=z6(12),K=P8(CcY),{addNotification:_}=PK(),z;if(q[0]===Symbol.for("react.memo_cache_sentinel"))z=new Set,q[0]=z;else z=q[0];let Y=nc8.useRef(z),{recommendation:$,clearRecommendation:A,tryResolve:O}=cc8(),w,j;if(q[1]!==K||q[2]!==O)w=()=>{O(async()=>{if(Ui8())return null;let X=[];for(let P of K)if(!Y.current.has(P))Y.current.add(P),X.push(P);for(let P of X)try{let D=(await DsK(P))[0];if(D)return N(`[useLspPluginRecommendation] Found match: ${D.pluginName} for ${P}`),Qi8(!0),{pluginId:D.pluginId,pluginName:D.pluginName,pluginDescription:D.description,fileExtension:LcY(P),shownAt:Date.now()}}catch(W){H6(W)}return null})},j=[K,O],q[1]=K,q[2]=O,q[3]=w,q[4]=j;else w=q[3],j=q[4];nc8.useEffect(w,j);let H;if(q[5]!==_||q[6]!==A||q[7]!==$)H=(X)=>{if(!$)return;let{pluginId:P,pluginName:W,shownAt:D}=$;N(`[useLspPluginRecommendation] User response: ${X} for ${W}`);q:switch(X){case"yes":{lc8(P,W,"lsp-plugin",_,async(f)=>{N(`[useLspPluginRecommendation] Installing plugin: ${P}`);let G=typeof f.entry.source==="string"?RcY(f.marketplaceInstallLocation,f.entry.source):void 0;await U18(P,f.entry,"user",void 0,G);let Z=v1("userSettings");W7("userSettings",{enabledPlugins:{...Z?.enabledPlugins,[P]:!0}}),N(`[useLspPluginRecommendation] Plugin installed: ${P}`)});break q}case"no":{let f=Date.now()-D;if(f>=hcY)N(`[useLspPluginRecommendation] Timeout detected (${f}ms), incrementing ignored count`),ZsK();break q}case"never":{fsK(P);break q}case"disable":b8(ScY)}A()},q[5]=_,q[6]=A,q[7]=$,q[8]=H;else H=q[8];let J=H,M;if(q[9]!==J||q[10]!==$)M={recommendation:$,handleResponse:J},q[9]=J,q[10]=$,q[11]=M;else M=q[11];return M}function ScY(q){if(q.lspRecommendationDisabled)return q;return{...q,lspRecommendationDisabled:!0}}function CcY(q){return q.fileHistory.trackedFiles}var nc8,hcY=28000;var vsK=y(()=>{q8();v8();h$();C7();V1();_8();E8();GsK();_56();U1();KA7();nc8=O6(D6(),1)});function ksK({pluginName:q,pluginDescription:K,fileExtension:_,onResponse:z}){let Y=M9.useRef(z);Y.current=z,M9.useEffect(()=>{let O=setTimeout((w)=>w.current("no"),bcY,Y);return()=>clearTimeout(O)},[]);function $(O){switch(O){case"yes":z("yes");break;case"no":z("no");break;case"never":z("never");break;case"disable":z("disable");break}}return M9.createElement(HY,{title:"LSP Plugin Recommendation"},M9.createElement(u,{flexDirection:"column",paddingX:2,paddingY:1},M9.createElement(u,{marginBottom:1},M9.createElement(k,{dimColor:!0},"LSP provides code intelligence like go-to-definition and error checking")),M9.createElement(u,null,M9.createElement(k,{dimColor:!0},"Plugin:"),M9.createElement(k,null," ",q)),K&&M9.createElement(u,null,M9.createElement(k,{dimColor:!0},K)),M9.createElement(u,null,M9.createElement(k,{dimColor:!0},"Triggered by:"),M9.createElement(k,null," ",_," files")),M9.createElement(u,{marginTop:1},M9.createElement(k,null,"Would you like to install this LSP plugin?")),M9.createElement(u,null,M9.createElement(H1,{options:[{label:M9.createElement(k,null,"Yes, install ",M9.createElement(k,{bold:!0},q)),value:"yes"},{label:"No, not now",value:"no"},{label:M9.createElement(k,null,"Never for ",M9.createElement(k,{bold:!0},q)),value:"never"},{label:"Disable all LSP recommendations",value:"disable"}],onChange:$,onCancel:()=>z("no")}))))}var M9,bcY=30000;var VsK=y(()=>{s6();p3();GD();M9=O6(D6(),1)});function NsK(){let q=z6(11),K=ic8.useSyncExternalStore(Q_K,ja1),{addNotification:_}=PK(),{recommendation:z,clearRecommendation:Y,tryResolve:$}=cc8(),A,O;if(q[0]!==K||q[1]!==$)A=()=>{if(!K)return;$(async()=>{let J=await l_K(K);if(J)N(`[useClaudeCodeHintRecommendation] surfacing ${J.pluginId} from ${J.sourceCommand}`),U_K();if(ja1()===K)F_K();return J})},O=[K,$],q[0]=K,q[1]=$,q[2]=A,q[3]=O;else A=q[2],O=q[3];ic8.useEffect(A,O);let w;if(q[4]!==_||q[5]!==Y||q[6]!==z)w=(J)=>{if(!z)return;n_K(z.pluginId),d("tengu_plugin_hint_response",{_PROTO_plugin_name:z.pluginName,_PROTO_marketplace_name:z.marketplaceName,response:J});q:switch(J){case"yes":{let{pluginId:M,pluginName:X,marketplaceName:P}=z;lc8(M,X,"hint-plugin",_,async(W)=>{let D=await K56({pluginId:M,entry:W.entry,marketplaceName:P,scope:"user",trigger:"hint"});if(!D.success)throw Error(D.error)});break q}case"disable":{i_K();break q}case"no":}Y()},q[4]=_,q[5]=Y,q[6]=z,q[7]=w;else w=q[7];let j=w,H;if(q[8]!==j||q[9]!==z)H={recommendation:z,handleResponse:j},q[8]=j,q[9]=z,q[10]=H;else H=q[10];return H}var ic8;var ysK=y(()=>{q8();h$();k8();b68();_8();wI8();_56();KA7();ic8=O6(D6(),1)});function EsK({pluginName:q,pluginDescription:K,marketplaceName:_,sourceCommand:z,onResponse:Y}){let $=F9.useRef(Y);$.current=Y,F9.useEffect(()=>{let w=setTimeout((j)=>j.current("no"),xcY,$);return()=>clearTimeout(w)},[]);function A(w){switch(w){case"yes":Y("yes");break;case"disable":Y("disable");break;default:Y("no")}}return F9.createElement(HY,{title:"Plugin Recommendation"},F9.createElement(u,{flexDirection:"column",paddingX:2,paddingY:1},F9.createElement(u,{marginBottom:1},F9.createElement(k,{dimColor:!0},"The ",F9.createElement(k,{bold:!0},z)," command suggests installing a plugin.")),F9.createElement(u,null,F9.createElement(k,{dimColor:!0},"Plugin:"),F9.createElement(k,null," ",q)),F9.createElement(u,null,F9.createElement(k,{dimColor:!0},"Marketplace:"),F9.createElement(k,null," ",_)),K&&F9.createElement(u,null,F9.createElement(k,{dimColor:!0},K)),F9.createElement(u,{marginTop:1},F9.createElement(k,null,"Would you like to install it?")),F9.createElement(u,null,F9.createElement(H1,{options:[{label:F9.createElement(k,null,"Yes, install ",F9.createElement(k,{bold:!0},q)),value:"yes"},{label:"No",value:"no"},{label:"No, and don't show plugin installation hints again",value:"disable"}],onChange:A,onCancel:()=>Y("no")}))))}var F9,xcY=30000;var LsK=y(()=>{s6();p3();GD();F9=O6(D6(),1)});function hsK(){let q=z6(20),{addNotification:K}=PK(),_=P8(mcY),z;q:{if(!_){let W;if(q[0]===Symbol.for("react.memo_cache_sentinel"))W={totalFailed:0,failedMarketplacesCount:0,failedPluginsCount:0},q[0]=W;else W=q[0];z=W;break q}let j;if(q[1]!==_.marketplaces)j=_.marketplaces.filter(ucY),q[1]=_.marketplaces,q[2]=j;else j=q[2];let H=j,J;if(q[3]!==_.plugins)J=_.plugins.filter(IcY),q[3]=_.plugins,q[4]=J;else J=q[4];let M=J,X=H.length+M.length,P;if(q[5]!==H.length||q[6]!==M.length||q[7]!==X)P={totalFailed:X,failedMarketplacesCount:H.length,failedPluginsCount:M.length},q[5]=H.length,q[6]=M.length,q[7]=X,q[8]=P;else P=q[8];z=P}let{totalFailed:Y,failedMarketplacesCount:$,failedPluginsCount:A}=z,O;if(q[9]!==K||q[10]!==$||q[11]!==A||q[12]!==_||q[13]!==Y)O=()=>{if(z5())return;if(!_){N("No installation status to monitor");return}if(Y===0)return;if(N(`Plugin installation status: ${$} failed marketplaces, ${A} failed plugins`),Y===0)return;N(`Adding notification for ${Y} failed installations`),K({key:"plugin-install-failed",jsx:nd.createElement(nd.Fragment,null,nd.createElement(k,{color:"error"},Y," ",A7(Y,"plugin")," failed to install"),nd.createElement(k,{dimColor:!0}," · /plugin for details")),priority:"medium"})},q[9]=K,q[10]=$,q[11]=A,q[12]=_,q[13]=Y,q[14]=O;else O=q[14];let w;if(q[15]!==K||q[16]!==$||q[17]!==A||q[18]!==Y)w=[K,Y,$,A],q[15]=K,q[16]=$,q[17]=A,q[18]=Y,q[19]=w;else w=q[19];RsK.useEffect(O,w)}function IcY(q){return q.status==="failed"}function ucY(q){return q.status==="failed"}function mcY(q){return q.plugins.installationStatus}var nd,RsK;var SsK=y(()=>{q8();v8();h$();s6();C7();_8();nd=O6(D6(),1),RsK=O6(D6(),1)});function CsK(){let q=z6(7),{addNotification:K}=PK(),_;if(q[0]===Symbol.for("react.memo_cache_sentinel"))_=[],q[0]=_;else _=q[0];let[z,Y]=AK8.useState(_),$,A;if(q[1]===Symbol.for("react.memo_cache_sentinel"))$=()=>{if(z5())return;return DyK((H)=>{N(`Plugin autoupdate notification: ${H.length} plugin(s) updated`),Y(H)})},A=[],q[1]=$,q[2]=A;else $=q[1],A=q[2];AK8.useEffect($,A);let O,w;if(q[3]!==K||q[4]!==z)O=()=>{if(z5())return;if(z.length===0)return;let j=z.map(pcY),H=j.length<=2?j.join(" and "):`${j.length} plugins`;K({key:"plugin-autoupdate-restart",jsx:id.createElement(id.Fragment,null,id.createElement(k,{color:"success"},j.length===1?"Plugin":"Plugins"," updated:"," ",H),id.createElement(k,{dimColor:!0}," · Run /reload-plugins to apply")),priority:"low",timeoutMs:1e4}),N(`Showing plugin autoupdate notification for: ${j.join(", ")}`)},w=[z,K],q[3]=K,q[4]=z,q[5]=O,q[6]=w;else O=q[5],w=q[6];AK8.useEffect(O,w)}function pcY(q){let K=q.indexOf("@");return K>0?q.substring(0,K):q}var id,AK8;var bsK=y(()=>{q8();v8();h$();s6();_8();WF8();id=O6(D6(),1),AK8=O6(D6(),1)});import{isAbsolute as BcY,resolve as gcY}from"path";function _A7(q,K,_){let z=[],Y=[],$=[];for(let[A,O]of Object.entries(q)){let w=K[A],j=xsK(O.source,_?.projectRoot);if(!w)z.push(A);else if(O.sourceIsFallback)$.push(A);else if(!QJ(j,w.source))Y.push({name:A,declaredSource:j,materializedSource:w.source});else $.push(A)}return{missing:z,sourceChanged:Y,upToDate:$}}async function rc8(q){let K=tK6();if(Object.keys(K).length===0)return{installed:[],updated:[],failed:[],upToDate:[],skipped:[]};let _;try{_=await r_()}catch(H){H6(H),_={}}let z=_A7(K,_,{projectRoot:r1()}),Y=[...z.missing.map((H)=>({name:H,source:xsK(K[H].source),action:"install"})),...z.sourceChanged.map(({name:H,declaredSource:J})=>({name:H,source:J,action:"update"}))],$=[],A=[];for(let H of Y){if(q?.skip?.(H.name,H.source)){$.push(H.name);continue}if(H.action==="update"&&SB(H.source)&&!await u5(H.source.path)){N(`[reconcile] '${H.name}' declared path does not exist; keeping materialized entry`),$.push(H.name);continue}A.push(H)}if(A.length===0)return{installed:[],updated:[],failed:[],upToDate:z.upToDate,skipped:$};N(`[reconcile] ${A.length} marketplace(s): ${A.map((H)=>`${H.name}(${H.action})`).join(", ")}`);let O=[],w=[],j=[];for(let H=0;H<A.length;H++){let{name:J,source:M,action:X}=A[H];q?.onProgress?.({type:"installing",name:J,action:X,index:H+1,total:A.length});try{let P=await Yd(M);if(X==="install")O.push(J);else w.push(J);q?.onProgress?.({type:"installed",name:J,alreadyMaterialized:P.alreadyMaterialized})}catch(P){let W=d6(P);j.push({name:J,error:W}),q?.onProgress?.({type:"failed",name:J,error:W}),H6(P)}}return{installed:O,updated:w,failed:j,upToDate:z.upToDate,skipped:$}}function xsK(q,K){if((q.source==="directory"||q.source==="file")&&!BcY(q.path)){let _=K??r1(),z=jH(_);return{...q,path:gcY(z??_,q.path)}}return q}var zA7=y(()=>{Ee();v8();_8();y8();bK();E5();E8();Nw();BZ()});function YA7(q,K,_,z){q((Y)=>({...Y,plugins:{...Y.plugins,installationStatus:{...Y.plugins.installationStatus,marketplaces:Y.plugins.installationStatus.marketplaces.map(($)=>$.name===K?{...$,status:_,error:z}:$)}}}))}async function IsK(q){N("performBackgroundPluginInstallations called");try{let K=tK6(),_=await r_().catch(()=>({})),z=_A7(K,_),Y=[...z.missing,...z.sourceChanged.map((O)=>O.name)];if(q((O)=>({...O,plugins:{...O.plugins,installationStatus:{marketplaces:Y.map((w)=>({name:w,status:"pending"})),plugins:[]}}})),Y.length===0)return;N(`Installing ${Y.length} marketplace(s) in background`);let $=await rc8({onProgress:(O)=>{switch(O.type){case"installing":YA7(q,O.name,"installing");break;case"installed":YA7(q,O.name,"installed");break;case"failed":YA7(q,O.name,"failed",O.error);break}}}),A={installed_count:$.installed.length,updated_count:$.updated.length,failed_count:$.failed.length,up_to_date_count:$.upToDate.length};if(d("tengu_marketplace_background_install",A),c8("info","tengu_marketplace_background_install",A),$.installed.length>0){zd(),N(`Auto-refreshing plugins after ${$.installed.length} new marketplace(s) installed`);try{await XJ6(q)}catch(O){H6(O),N(`Auto-refresh failed, falling back to needsRefresh: ${O}`,{level:"warn"}),Yk("performBackgroundPluginInstallations: auto-refresh failed"),q((w)=>{if(w.plugins.needsRefresh)return w;return{...w,plugins:{...w.plugins,needsRefresh:!0}}})}}else if($.updated.length>0)zd(),Yk("performBackgroundPluginInstallations: marketplaces reconciled"),q((O)=>{if(O.plugins.needsRefresh)return O;return{...O,plugins:{...O.plugins,needsRefresh:!0}}})}catch(K){H6(K)}}var usK=y(()=>{_8();oY();E8();Nw();bj();zA7();gU8();k8()});async function msK(q){if(N("performStartupChecks called"),!l$()){N("Trust not accepted for current directory - skipping plugin installations");return}try{if(N("Starting background plugin installations"),await GB8())zd(),Yk("performStartupChecks: seed marketplaces changed"),q((_)=>{if(_.plugins.needsRefresh)return _;return{..._,plugins:{..._.plugins,needsRefresh:!0}}});await IsK(q)}catch(K){N(`Error initiating background plugin installations: ${K}`)}}var psK=y(()=>{usK();V1();_8();Nw();bj()});function BsK(){let q=z6(11),K;if(q[0]===Symbol.for("react.memo_cache_sentinel"))K=FW.getInstance().getStatus(),q[0]=K;else K=q[0];let[_,z]=bR.useState(K),Y,$;if(q[1]===Symbol.for("react.memo_cache_sentinel"))Y=()=>{return FW.getInstance().subscribe(z)},$=[],q[1]=Y,q[2]=$;else Y=q[1],$=q[2];if(bR.useEffect(Y,$),!_.isAuthenticating&&!_.error&&_.output.length===0)return null;if(!_.isAuthenticating&&!_.error)return null;let A;if(q[3]===Symbol.for("react.memo_cache_sentinel"))A=bR.default.createElement(k,{bold:!0,color:"permission"},"Cloud Authentication"),q[3]=A;else A=q[3];let O;if(q[4]!==_.output)O=_.output.length>0&&bR.default.createElement(u,{flexDirection:"column",marginTop:1},_.output.slice(-5).map(UcY)),q[4]=_.output,q[5]=O;else O=q[5];let w;if(q[6]!==_.error)w=_.error&&bR.default.createElement(u,{marginTop:1},bR.default.createElement(k,{color:"error"},_.error)),q[6]=_.error,q[7]=w;else w=q[7];let j;if(q[8]!==O||q[9]!==w)j=bR.default.createElement(u,{flexDirection:"column",borderStyle:"round",borderColor:"permission",paddingX:1,marginY:1},A,O,w),q[8]=O,q[9]=w,q[10]=j;else j=q[10];return j}function UcY(q,K){let _=q.match(FcY);if(!_)return bR.default.createElement(k,{key:K,dimColor:!0},q);let z=_[0],Y=_.index??0,$=q.slice(0,Y),A=q.slice(Y+z.length);return bR.default.createElement(k,{key:K,dimColor:!0},$,bR.default.createElement(hq,{url:z},z),A)}var bR,FcY;var gsK=y(()=>{q8();s6();uJ8();bR=O6(D6(),1),FcY=/https?:\/\/\S+/});function FsK(q){let K=z6(17),{addNotification:_}=PK(),z=e46(),Y;if(K[0]!==z||K[1]!==q)Y=Cm1(z,q),K[0]=z,K[1]=q,K[2]=Y;else Y=K[2];let $=Y,A;if(K[3]!==z)A=bm1(z),K[3]=z,K[4]=A;else A=K[4];let O=A,w=MM6.useRef(null),j;if(K[5]===Symbol.for("react.memo_cache_sentinel"))j=yK(),K[5]=j;else j=K[5];let H=j,J;if(K[6]===Symbol.for("react.memo_cache_sentinel"))J=fg(),K[6]=J;else J=K[6];let M=J,X=H==="team"||H==="enterprise",[P,W]=MM6.useState(!1),D,f;if(K[7]!==_||K[8]!==z.isUsingOverage||K[9]!==P||K[10]!==O)D=()=>{if(z5())return;if(z.isUsingOverage&&!P&&(!X||M))_({key:"limit-reached",text:O,priority:"immediate"}),W(!0);else if(!z.isUsingOverage&&P)W(!1)},f=[z.isUsingOverage,O,P,_,M,X],K[7]=_,K[8]=z.isUsingOverage,K[9]=P,K[10]=O,K[11]=D,K[12]=f;else D=K[11],f=K[12];MM6.useEffect(D,f);let G,Z;if(K[13]!==_||K[14]!==$)G=()=>{if(z5())return;if($&&$!==w.current)w.current=$,_({key:"rate-limit-warning",jsx:OK8.createElement(k,null,OK8.createElement(k,{color:"warning"},$)),priority:"high"})},Z=[$,_],K[13]=_,K[14]=$,K[15]=G,K[16]=Z;else G=K[15],Z=K[16];MM6.useEffect(G,Z)}var OK8,MM6;var UsK=y(()=>{q8();h$();s6();ZU();Ue6();G7();$n();v8();OK8=O6(D6(),1),MM6=O6(D6(),1)});function dcY(q){let K=q.toLowerCase(),_=E7();for(let[z,Y]of Object.entries(QcY)){let $=Y.retirementDates[_];if(!K.includes(z)||!$)continue;return{isDeprecated:!0,modelName:Y.modelName,retirementDate:$}}return{isDeprecated:!1}}function oc8(q){if(!q)return null;let K=dcY(q);if(!K.isDeprecated)return null;return`⚠ ${K.modelName} will be retired on ${K.retirementDate}. Consider switching to a newer model.`}var QcY;var $A7=y(()=>{Az();QcY={"claude-3-opus":{modelName:"Claude 3 Opus",retirementDates:{firstParty:"January 5, 2026",bedrock:"January 15, 2026",vertex:"January 5, 2026",foundry:"January 5, 2026"}},"claude-3-7-sonnet":{modelName:"Claude 3.7 Sonnet",retirementDates:{firstParty:"February 19, 2026",bedrock:"April 28, 2026",vertex:"May 11, 2026",foundry:"February 19, 2026"}},"claude-3-5-haiku":{modelName:"Claude 3.5 Haiku",retirementDates:{firstParty:"February 19, 2026",bedrock:null,vertex:null,foundry:null}}}});function QsK(q){let K=z6(4),{addNotification:_}=PK(),z=ac8.useRef(null),Y,$;if(K[0]!==_||K[1]!==q)Y=()=>{if(z5())return;let A=oc8(q);if(A&&A!==z.current)z.current=A,_({key:"model-deprecation-warning",text:A,color:"warning",priority:"high"});if(!A)z.current=null},$=[q,_],K[0]=_,K[1]=q,K[2]=Y,K[3]=$;else Y=K[2],$=K[3];ac8.useEffect(Y,$)}var ac8;var dsK=y(()=>{q8();h$();$A7();v8();ac8=O6(D6(),1)});function csK(){zx(lcY)}async function lcY(){if(jj()||i6(process.env.DISABLE_INSTALLATION_CHECKS))return null;if(await Ro()==="development")return null;return{timeoutMs:15000,key:"npm-deprecation-warning",text:ccY,color:"warning",priority:"high"}}var ccY="Claude Code has switched from npm to native installer. Run `claude install` or see https://docs.anthropic.com/en/docs/claude-code/getting-started for more options.";var lsK=y(()=>{u46();m8();HM6()});function nsK(q){let K=z6(26),{ideSelection:_,mcpClients:z,ideInstallationStatus:Y}=q,{addNotification:$,removeNotification:A}=PK(),{status:O,ideName:w}=ZC6(z),j=rd.useRef(!1),H;if(K[0]!==Y)H=Y?_m(Y?.ideType):!1,K[0]=Y,K[1]=H;else H=K[1];let J=H,M=Y?.error||J,X=O==="connected"&&(_?.filePath||_?.text&&_.lineCount>0),P=O==="connected"&&!X,W=M&&!J&&!P&&!X,D=M&&J&&!P&&!X,f,G;if(K[2]!==$||K[3]!==O||K[4]!==A||K[5]!==D)f=()=>{if(z5())return;if(BP()||O!==null||D){A("ide-status-hint");return}if(j.current||(j8().ideHintShownCount??0)>=ncY)return;let R=setTimeout(icY,3000,j,$);return()=>clearTimeout(R)},G=[$,A,O,D],K[2]=$,K[3]=O,K[4]=A,K[5]=D,K[6]=f,K[7]=G;else f=K[6],G=K[7];rd.useEffect(f,G);let Z,T;if(K[8]!==$||K[9]!==w||K[10]!==O||K[11]!==A||K[12]!==W||K[13]!==D)Z=()=>{if(z5())return;if(W||D||O!=="disconnected"||!w){A("ide-status-disconnected");return}$({key:"ide-status-disconnected",text:`${w} disconnected`,color:"error",priority:"medium"})},T=[$,A,O,w,W,D],K[8]=$,K[9]=w,K[10]=O,K[11]=A,K[12]=W,K[13]=D,K[14]=Z,K[15]=T;else Z=K[14],T=K[15];rd.useEffect(Z,T);let v,V;if(K[16]!==$||K[17]!==A||K[18]!==D)v=()=>{if(z5())return;if(!D){A("ide-status-jetbrains-disconnected");return}$({key:"ide-status-jetbrains-disconnected",text:"IDE plugin not connected · /status for info",priority:"medium"})},V=[$,A,D],K[16]=$,K[17]=A,K[18]=D,K[19]=v,K[20]=V;else v=K[19],V=K[20];rd.useEffect(v,V);let E,S;if(K[21]!==$||K[22]!==A||K[23]!==W)E=()=>{if(z5())return;if(!W){A("ide-status-install-error");return}$({key:"ide-status-install-error",text:"IDE extension install failed (see /status for info)",color:"error",priority:"medium"})},S=[$,A,W],K[21]=$,K[22]=A,K[23]=W,K[24]=E,K[25]=S;else E=K[24],S=K[25];rd.useEffect(E,S)}function icY(q,K){NN6(!0).then((_)=>{let z=_[0]?.name;if(z&&!q.current)q.current=!0,b8(rcY),K({key:"ide-status-hint",jsx:rd.default.createElement(k,{dimColor:!0},"/ide for ",rd.default.createElement(k,{color:"ide"},z)),priority:"low"})})}function rcY(q){return{...q,ideHintShownCount:(q.ideHintShownCount??0)+1}}var rd,ncY=5;var isK=y(()=>{q8();h$();s6();V1();U2();v8();hd8();rd=O6(D6(),1)});function osK(){zx(acY)}function acY(){let q=j8(),K=[];for(let _ of ocY){let z=_(q);if(z)K.push(z)}return K.length>0?K:null}function rsK(q){return q!==void 0&&Date.now()-q<3000}var ocY;var asK=y(()=>{V1();HM6();ocY=[(q)=>{if(!rsK(q.sonnet45To46MigrationTimestamp))return;return{key:"sonnet-46-update",text:"Model updated to Sonnet 4.6",color:"suggestion",priority:"high",timeoutMs:3000}},(q)=>{let K=Boolean(q.legacyOpusMigrationTimestamp),_=q.legacyOpusMigrationTimestamp??q.opusProMigrationTimestamp;if(!rsK(_))return;return{key:"opus-pro-update",text:K?"Model updated to Opus 4.6 · Set CLAUDE_CODE_DISABLE_LEGACY_MODEL_REMAP=1 to opt out":"Model updated to Opus 4.6",color:"suggestion",priority:"high",timeoutMs:K?8000:3000}}]});function ssK(){zx(tcY)}async function tcY(){if((j8().subscriptionNoticeCount??0)>=scY)return null;let q=await qlY();if(q===null)return null;return b8(ecY),d("tengu_switch_to_subscription_notice_shown",{}),{key:"switch-to-subscription",jsx:wK8.createElement(k,{color:"suggestion"},"Use your existing Claude ",q," plan with Claude Code",wK8.createElement(k,{color:"text",dimColor:!0}," ","· /login to activate")),priority:"low"}}function ecY(q){return{...q,subscriptionNoticeCount:(q.subscriptionNoticeCount??0)+1}}async function qlY(){if(d7())return null;let q=await wYq();if(!q)return null;if(q.account.has_claude_max)return"Max";if(q.account.has_claude_pro)return"Pro";return null}var wK8,scY=3;var tsK=y(()=>{v06();G7();s6();k8();V1();HM6();wK8=O6(D6(),1)});function esK(q){if(!("text"in q))return 1;let K=q.text.match(/^(\d+)/);return K?.[1]?parseInt(K[1],10):1}function KlY(q,K){return qtK(esK(q)+1)}function qtK(q){return{key:"teammate-spawn",text:q===1?"1 agent spawned":`${q} agents spawned`,priority:"low",timeoutMs:5000,fold:KlY}}function _lY(q,K){return KtK(esK(q)+1)}function KtK(q){return{key:"teammate-shutdown",text:q===1?"1 agent shut down":`${q} agents shut down`,priority:"low",timeoutMs:5000,fold:_lY}}function _tK(){let q=P8((Y)=>Y.tasks),{addNotification:K}=PK(),_=jK8.useRef(new Set),z=jK8.useRef(new Set);jK8.useEffect(()=>{if(z5())return;for(let[Y,$]of Object.entries(q)){if(!xH($))continue;if($.status==="running"&&!_.current.has(Y))_.current.add(Y),K(qtK(1));if($.status==="completed"&&!z.current.has(Y))z.current.add(Y),K(KtK(1))}},[q,K])}var jK8;var ztK=y(()=>{v8();h$();C7();jK8=O6(D6(),1)});function OtK(){let q=z6(13),{addNotification:K}=PK(),_=P8(AlY),z=s7(),Y,$;if(q[0]!==K||q[1]!==_||q[2]!==z)Y=()=>{if(z5())return;if(!BK())return;return V2q((H)=>{if(H)K({key:AtK,color:"fastMode",priority:"immediate",text:"Fast mode is now available · /fast to turn on"});else if(_)z($lY),K({key:AtK,color:"warning",priority:"immediate",text:"Fast mode has been disabled by your organization"})})},$=[K,_,z],q[0]=K,q[1]=_,q[2]=z,q[3]=Y,q[4]=$;else Y=q[3],$=q[4];sc8.useEffect(Y,$);let A,O;if(q[5]!==K||q[6]!==z)A=()=>{if(z5())return;if(!BK())return;return v2q((H)=>{z(YlY),K({key:zlY,color:"warning",priority:"immediate",text:H})})},O=[K,z],q[5]=K,q[6]=z,q[7]=A,q[8]=O;else A=q[7],O=q[8];sc8.useEffect(A,O);let w,j;if(q[9]!==K||q[10]!==_)w=()=>{if(z5())return;if(!_)return;let H=D2q((M,X)=>{let P=I5(M-Date.now(),{hideTrailingZeros:!0}),W=OlY(X,P);K({key:YtK,invalidates:[$tK],text:W,color:"warning",priority:"immediate"})}),J=f2q(()=>{K({key:$tK,invalidates:[YtK],color:"fastMode",text:"Fast limit reset · now using fast mode",priority:"immediate"})});return()=>{H(),J()}},j=[K,_],q[9]=K,q[10]=_,q[11]=w,q[12]=j;else w=q[11],j=q[12];sc8.useEffect(w,j)}function YlY(q){return{...q,fastMode:!1}}function $lY(q){return{...q,fastMode:!1}}function AlY(q){return q.fastMode}function OlY(q,K){switch(q){case"overloaded":return`Fast mode overloaded and is temporarily unavailable · resets in ${K}`;case"rate_limit":return`Fast limit reached and temporarily disabled · resets in ${K}`}}var sc8,YtK="fast-mode-cooldown-started",$tK="fast-mode-cooldown-expired",AtK="fast-mode-org-changed",zlY="fast-mode-overage-rejected";var wtK=y(()=>{q8();h$();C7();xf();U7();v8();sc8=O6(D6(),1)});function jtK(q){let K=z6(8),{onRun:_,onCancel:z,reason:Y}=q,$=tc8.useRef(!1),A;if(K[0]===Symbol.for("react.memo_cache_sentinel"))A={context:"Confirmation"},K[0]=A;else A=K[0];P1("confirm:no",z,A);let O,w;if(K[1]!==_)O=()=>{if(!$.current)$.current=!0,_()},w=[_],K[1]=_,K[2]=O,K[3]=w;else O=K[2],w=K[3];tc8.useEffect(O,w);let j;if(K[4]===Symbol.for("react.memo_cache_sentinel"))j=GZ.createElement(u,null,GZ.createElement(k,{bold:!0},"Running feedback capture...")),K[4]=j;else j=K[4];let H;if(K[5]===Symbol.for("react.memo_cache_sentinel"))H=GZ.createElement(u,null,GZ.createElement(k,{dimColor:!0},"Press ",GZ.createElement(t8,{shortcut:"Esc",action:"cancel"})," anytime")),K[5]=H;else H=K[5];let J;if(K[6]!==Y)J=GZ.createElement(u,{flexDirection:"column",marginTop:1},j,H,GZ.createElement(u,null,GZ.createElement(k,{dimColor:!0},"Reason: ",Y))),K[6]=Y,K[7]=J;else J=K[7];return J}function HtK(q){return!1;switch(q){case"feedback_survey_bad":return!1;case"feedback_survey_good":return!1;default:return!1}}function JtK(q){return"/issue"}function MtK(q){switch(q){case"feedback_survey_bad":return'You responded "Bad" to the feedback survey';case"feedback_survey_good":return'You responded "Good" to the feedback survey';default:return"Unknown reason"}}var GZ,tc8;var XtK=y(()=>{q8();rK();s6();Oq();GZ=O6(D6(),1),tc8=O6(D6(),1)});function PtK(){return null}function HlY(q){for(let K of q){if(K.type!=="assistant")continue;let _=K.message.content;if(!Array.isArray(_))continue;for(let z of _){if(z.type!=="tool_use"||!("name"in z))continue;let Y=z.name;if(Y.startsWith("mcp__"))return!1;if(Y===_q){let A=z.input?.command||"";if(wlY.some((O)=>O.test(A)))return!1}}}return!0}function JlY(q){for(let K=q.length-1;K>=0;K--){let _=q[K];if(_.type!=="user")continue;let z=iw6(_);if(!z)continue;return jlY.some((Y)=>Y.test(z))}return!1}function WtK(q,K){return!1}var HK8,wlY,jlY,MlY=3,XlY=1800000;var DtK=y(()=>{i1();HK8=O6(D6(),1),wlY=[/\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/],jlY=[/^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 PlY,WlY;var ftK=y(()=>{q8();v8();s6();PlY=O6(D6(),1),WlY=O6(D6(),1)});function AA7(q){let K=z6(7),{children:_,mouseTracking:z}=q,Y=z===void 0?!0:z,$=XM6.useContext(g16),A=XM6.useContext(U16),O,w;if(K[0]!==Y||K[1]!==A)O=()=>{let J=VA.get(process.stdout);if(!A)return;return A(El6+"\x1B[2J\x1B[H"+(Y?HA6:"")),J?.setAltScreenActive(!0,Y),()=>{J?.setAltScreenActive(!1),J?.clearTextSelection(),A((Y?ui:"")+ST6)}},w=[A,Y],K[0]=Y,K[1]=A,K[2]=O,K[3]=w;else O=K[2],w=K[3];XM6.useInsertionEffect(O,w);let j=$?.rows??24,H;if(K[4]!==_||K[5]!==j)H=XM6.default.createElement(Lj,{flexDirection:"column",height:j,width:"100%",flexShrink:0},_),K[4]=_,K[5]=j,K[6]=H;else H=K[6];return H}var XM6;var ZtK=y(()=>{q8();QV();p16();GF();gi();Sl6();XM6=O6(D6(),1)});function GtK(q,K,_){let z=IC6.useRef(!1),Y=IC6.useRef(_);Y.current=_,IC6.useEffect(()=>{if(!K)return;return q.subscribe(()=>{let A=q.getState(),O=q.hasSelection();if(A?.isDragging){z.current=!1;return}if(!O){z.current=!1;return}if(z.current)return;if(!(j8().copyOnSelect??!0))return;let j=q.copySelectionNoClear();if(!j||!j.trim()){z.current=!0;return}z.current=!0,Y.current?.(j)})},[K,q])}function TtK(q){let[K]=Aq();IC6.useEffect(()=>{q.setSelectionBgColor(sW(K).selectionBg)},[q,K])}var IC6;var vtK=y(()=>{AT6();V1();Tu();IC6=O6(D6(),1)});function hlY(q){if(q.wheelUp||q.wheelDown)return!1;if((q.leftArrow||q.rightArrow||q.upArrow||q.downArrow||q.home||q.end||q.pageUp||q.pageDown)&&(q.shift||q.meta||q.super))return!1;return!0}function SlY(q){if(!q.shift||q.meta)return null;if(q.leftArrow)return"left";if(q.rightArrow)return"right";if(q.upArrow)return"up";if(q.downArrow)return"down";if(q.home)return"lineStart";if(q.end)return"lineEnd";return null}function NtK(q,K,_){if(!q.xtermJs){if(q.wheelMode&&_-q.time>VlY)q.wheelMode=!1,q.burstCount=0,q.mult=q.base;if(q.pendingFlip){if(q.pendingFlip=!1,K!==q.dir||_-q.time>GlY)return q.dir=K,q.time=_,q.mult=q.base,Math.floor(q.mult);q.wheelMode=!0}let O=_-q.time;if(K!==q.dir&&q.dir!==0)return q.pendingFlip=!0,q.time=_,0;if(q.dir=K,q.time=_,q.wheelMode)if(O<VtK)if(++q.burstCount>=5)q.wheelMode=!1,q.burstCount=0,q.mult=q.base;else return 1;else q.burstCount=0;if(q.wheelMode){let w=Math.pow(0.5,O/ktK),j=Math.max(vlY,q.base*2),H=1+(q.mult-1)*w+TlY*w;return q.mult=Math.min(j,H,q.mult+klY),Math.floor(q.mult)}if(O>DlY)q.mult=q.base;else{let w=Math.max(ZlY,q.base*2);q.mult=Math.min(w,q.mult+flY)}return Math.floor(q.mult)}let z=_-q.time,Y=K===q.dir;if(q.time=_,q.dir=K,Y&&z<VtK)return 1;if(!Y||z>RlY)q.mult=2,q.frac=0;else{let O=Math.pow(0.5,z/ktK),w=z>=ylY?ElY:LlY;q.mult=Math.min(w,1+(q.mult-1)*O+NlY*O)}let $=q.mult+q.frac,A=Math.floor($);return q.frac=$-A,A}function ClY(){let q=process.env.CLAUDE_CODE_SCROLL_SPEED;if(!q)return 1;let K=parseFloat(q);return Number.isNaN(K)||K<=0?1:Math.min(K,20)}function blY(q=!1,K=1){return{time:0,mult:K,dir:0,xtermJs:q,frac:0,base:K,pendingFlip:!1,wheelMode:!1,burstCount:0}}function ytK(){let q=pi(),K=ClY();return N(`wheel accel: ${q?"decay (xterm.js)":"window (native)"} · base=${K} · TERM_PROGRAM=${process.env.TERM_PROGRAM??"unset"}`),blY(q,K)}function OA7({scrollRef:q,isActive:K,onScroll:_,isModal:z=!1}){let Y=dT6(),{addNotification:$}=PK(),A=rs.useRef(null);function O(H){let J=v64(),M=H.length,X;switch(J){case"native":X=`copied ${M} chars to clipboard`;break;case"tmux-buffer":X=`copied ${M} chars to tmux buffer · paste with prefix + ]`;break;case"osc52":X=`sent ${M} chars via OSC 52 · check terminal clipboard settings if paste fails`;break}$({key:"selection-copied",text:X,color:"suggestion",priority:"immediate",timeoutMs:J==="native"?2000:4000})}function w(){let H=Y.copySelection();if(H)O(H)}function j(H,J){let M=Y.getState();if(!M?.anchor||!M.focus)return;let X=H.getViewportTop(),P=X+H.getViewportHeight()-1;if(M.anchor.row<X||M.anchor.row>P)return;if(M.focus.row<X||M.focus.row>P)return;let W=Math.max(0,H.getScrollHeight()-H.getViewportHeight()),D=H.getScrollTop()+H.getPendingDelta(),f=Math.max(0,Math.min(W,D+J))-D;if(f===0)return;if(f>0)Y.captureScrolledRows(X,X+f-1,"above"),Y.shiftSelection(-f,X,P);else{let G=-f;Y.captureScrolledRows(P-G+1,P,"below"),Y.shiftSelection(G,X,P)}}return o7({"scroll:pageUp":()=>{let H=q.current;if(!H)return;let J=-Math.max(1,Math.floor(H.getViewportHeight()/2));j(H,J);let M=is(H,J);_?.(M,H)},"scroll:pageDown":()=>{let H=q.current;if(!H)return;let J=Math.max(1,Math.floor(H.getViewportHeight()/2));j(H,J);let M=is(H,J);_?.(M,H)},"scroll:lineUp":()=>{Y.clearSelection();let H=q.current;if(!H||H.getScrollHeight()<=H.getViewportHeight())return!1;A.current??=ytK(),BlY(H,NtK(A.current,-1,performance.now())),_?.(!1,H)},"scroll:lineDown":()=>{Y.clearSelection();let H=q.current;if(!H||H.getScrollHeight()<=H.getViewportHeight())return!1;A.current??=ytK();let J=NtK(A.current,1,performance.now()),M=plY(H,J);_?.(M,H)},"scroll:top":()=>{let H=q.current;if(!H)return;j(H,-(H.getScrollTop()+H.getPendingDelta())),H.scrollTo(0),_?.(!1,H)},"scroll:bottom":()=>{let H=q.current;if(!H)return;let J=Math.max(0,H.getScrollHeight()-H.getViewportHeight());j(H,J-(H.getScrollTop()+H.getPendingDelta())),H.scrollTo(J),H.scrollToBottom(),_?.(!0,H)},"selection:copy":w},{context:"Scroll",isActive:K}),o7({"scroll:halfPageUp":()=>{let H=q.current;if(!H)return;let J=-Math.max(1,Math.floor(H.getViewportHeight()/2));j(H,J);let M=is(H,J);_?.(M,H)},"scroll:halfPageDown":()=>{let H=q.current;if(!H)return;let J=Math.max(1,Math.floor(H.getViewportHeight()/2));j(H,J);let M=is(H,J);_?.(M,H)},"scroll:fullPageUp":()=>{let H=q.current;if(!H)return;let J=-Math.max(1,H.getViewportHeight());j(H,J);let M=is(H,J);_?.(M,H)},"scroll:fullPageDown":()=>{let H=q.current;if(!H)return;let J=Math.max(1,H.getViewportHeight());j(H,J);let M=is(H,J);_?.(M,H)}},{context:"Scroll",isActive:K}),k4((H,J,M)=>{let X=q.current;if(!X)return;let P=FlY(X,glY(H,J),(W)=>j(X,W));if(P===null)return;_?.(P,X),M.stopImmediatePropagation()},{isActive:K&&z}),k4((H,J,M)=>{if(!Y.hasSelection())return;if(J.escape){Y.clearSelection(),M.stopImmediatePropagation();return}if(J.ctrl&&!J.shift&&!J.meta&&H==="c"){w(),M.stopImmediatePropagation();return}let X=SlY(J);if(X){Y.moveFocus(X),M.stopImmediatePropagation();return}if(hlY(J))Y.clearSelection()},{isActive:K}),ulY(q,Y,K,_),GtK(Y,K,O),TtK(Y),null}function ulY(q,K,_,z){let Y=rs.useRef(null),$=rs.useRef(0),A=rs.useRef(0),O=rs.useRef(0),w=rs.useRef(z);w.current=z,rs.useEffect(()=>{if(!_)return;function j(){if($.current=0,Y.current)clearInterval(Y.current),Y.current=null}function H(){let P=K.getState(),W=q.current,D=$.current;if(!P?.isDragging||!P.focus||!W||D===0||++O.current>IlY){j();return}if(W.getPendingDelta()!==0)return;let f=W.getViewportTop(),G=f+W.getViewportHeight()-1;if(D<0){if(W.getScrollTop()<=0){j();return}let Z=Math.min(ec8,W.getScrollTop());K.captureScrolledRows(G-Z+1,G,"below"),K.shiftAnchor(Z,0,G),W.scrollBy(-ec8)}else{let Z=Math.max(0,W.getScrollHeight()-W.getViewportHeight());if(W.getScrollTop()>=Z){j();return}let T=Math.min(ec8,Z-W.getScrollTop());K.captureScrolledRows(f,f+T-1,"above"),K.shiftAnchor(-T,f,G),W.scrollBy(ec8)}w.current?.(!1,W)}function J(P){if(A.current=P,$.current===P)return;if(j(),$.current=P,O.current=0,H(),$.current===P)Y.current=setInterval(H,xlY)}function M(){let P=q.current;if(!P){j();return}let W=P.getViewportTop(),D=W+P.getViewportHeight()-1,f=K.getState();if(!f?.isDragging||f.scrolledOffAbove.length===0&&f.scrolledOffBelow.length===0)A.current=0;let G=mlY(f,W,D,A.current);if(G===0){if(A.current!==0&&f?.focus){let Z=f.focus.row<W?-1:f.focus.row>D?1:0;if(Z!==0&&Z!==A.current)f.scrolledOffAbove=[],f.scrolledOffBelow=[],f.scrolledOffAboveSW=[],f.scrolledOffBelowSW=[],A.current=0}j()}else J(G)}let X=K.subscribe(M);return()=>{X(),j(),A.current=0}},[_,q,K])}function mlY(q,K,_,z=0){if(!q?.isDragging||!q.anchor||!q.focus)return 0;let Y=q.focus.row,$=Y<K?-1:Y>_?1:0;if(z!==0)return $===z?$:0;if(q.anchor.row<K||q.anchor.row>_)return 0;return $}function is(q,K){let _=Math.max(0,q.getScrollHeight()-q.getViewportHeight()),z=q.getScrollTop()+q.getPendingDelta()+K;if(z>=_)return q.scrollTo(_),q.scrollToBottom(),!0;return q.scrollTo(Math.max(0,z)),!1}function plY(q,K){let _=Math.max(0,q.getScrollHeight()-q.getViewportHeight());if(q.getScrollTop()+q.getPendingDelta()+K>=_)return q.scrollToBottom(),!0;return q.scrollBy(K),!1}function BlY(q,K){if(q.getScrollTop()+q.getPendingDelta()-K<=0){q.scrollTo(0);return}q.scrollBy(-K)}function glY(q,K){if(K.meta)return null;if(!K.ctrl&&!K.shift){if(K.upArrow)return"lineUp";if(K.downArrow)return"lineDown";if(K.home)return"top";if(K.end)return"bottom"}if(K.ctrl){if(K.shift)return null;switch(q){case"u":return"halfPageUp";case"d":return"halfPageDown";case"b":return"fullPageUp";case"f":return"fullPageDown";case"n":return"lineDown";case"p":return"lineUp";default:return null}}let _=q[0];if(!_||q!==_.repeat(q.length))return null;if(_==="G"||_==="g"&&K.shift)return"bottom";if(K.shift)return null;switch(_){case"g":return"top";case"j":return"lineDown";case"k":return"lineUp";case" ":return"fullPageDown";case"b":return"fullPageUp";default:return null}}function FlY(q,K,_){switch(K){case null:return null;case"lineUp":case"lineDown":{let z=K==="lineDown"?1:-1;return _(z),is(q,z)}case"halfPageUp":case"halfPageDown":{let z=Math.max(1,Math.floor(q.getViewportHeight()/2)),Y=K==="halfPageDown"?z:-z;return _(Y),is(q,Y)}case"fullPageUp":case"fullPageDown":{let z=Math.max(1,q.getViewportHeight()),Y=K==="fullPageDown"?z:-z;return _(Y),is(q,Y)}case"top":return _(-(q.getScrollTop()+q.getPendingDelta())),q.scrollTo(0),!1;case"bottom":{let z=Math.max(0,q.getScrollHeight()-q.getViewportHeight());return _(z-(q.getScrollTop()+q.getPendingDelta())),q.scrollTo(z),q.scrollToBottom(),!0}}}var rs,DlY=40,flY=0.3,ZlY=6,GlY=200,TlY=15,vlY=15,klY=3,VlY=1500,ktK=150,NlY=5,VtK=5,ylY=80,ElY=3,LlY=6,RlY=500,ec8=2,xlY=50,IlY=200;var EtK=y(()=>{h$();vtK();xZ8();Bi();YM();s6();Oq();_8();rs=O6(D6(),1)});var wA7={};T8(wA7,{useVoiceKeybindingHandler:()=>RtK,useVoiceIntegration:()=>ilY,VoiceKeybindingHandler:()=>rlY});function llY(q,K){if((q.key==="space"?" ":q.key==="return"?"enter":q.key.toLowerCase())!==K.key)return!1;if(q.ctrl!==K.ctrl)return!1;if(q.shift!==K.shift)return!1;if(q.meta!==(K.alt||K.meta))return!1;if(q.superKey!==K.super)return!1;return!0}function ilY({setInputValueRaw:q,inputValueRef:K,insertTextRef:_}){let{addNotification:z}=PK(),Y=aX.useRef(null),$=aX.useRef(""),A=aX.useRef(null),O=aX.useCallback((W,{char:D=" ",anchor:f=!1,floor:G=0}={})=>{let Z=K.current,T=_.current?.cursorOffset??Z.length,v=Z.slice(0,T),V=Z.slice(T),E=D===" "?v_6(v):v,S=0;while(S<E.length&&E[E.length-1-S]===D)S++;let R=Math.max(0,Math.min(S-G,W)),x=S-R,I=v.slice(0,v.length-R),B="";if(f){if(Y.current=I,$.current=V,V.length>0&&!/^\s/.test(V))B=" "}let p=I+B+V;if(f)A.current=p;if(p===Z&&R===0)return x;if(_.current)_.current.setInputWithCursor(p,I.length);else q(p);return x},[q,K,_]),w=aX.useCallback(()=>{let W=Y.current;if(W===null)return;let D=$.current;Y.current=null,$.current="";let f=W+D;if(_.current)_.current.setInputWithCursor(f,W.length);else q(f)},[q,_]),j=FJ6(),H=lV((W)=>W.voiceState),J=lV((W)=>W.voiceInterimTranscript);aX.useEffect(()=>{if(H==="recording"&&Y.current===null){let W=K.current,D=_.current?.cursorOffset??W.length;Y.current=W.slice(0,D),$.current=W.slice(D),A.current=W}if(H==="idle")Y.current=null,$.current="",A.current=null},[H,K,_]),aX.useEffect(()=>{if(Y.current===null)return;let W=Y.current,D=$.current;if(K.current!==A.current)return;let f=W.length>0&&!/\s$/.test(W)&&J.length>0,G=D.length>0&&!/^\s/.test(D),Z=f?" ":"",T=G?" ":"",v=W+Z+J+T+D,V=W.length+Z.length+J.length;if(_.current)_.current.setInputWithCursor(v,V);else q(v);A.current=v},[J,q,K,_]);let M=aX.useCallback((W)=>{let D=Y.current;if(D===null)return;let f=$.current;if(K.current!==A.current)return;let G=D.length>0&&!/\s$/.test(D)&&W.length>0,Z=f.length>0&&!/^\s/.test(f)&&W.length>0,T=G?" ":"",v=Z?" ":"",V=D+T+W+v+f,E=D.length+T.length+W.length;if(_.current)_.current.setInputWithCursor(V,E);else q(V);A.current=V,Y.current=D+T+W},[q,K,_]),X=UlY.useVoice({onTranscript:M,onError:(W)=>{z({key:"voice-error",text:W,color:"error",priority:"immediate",timeoutMs:1e4})},enabled:j,focusMode:!1}),P=aX.useMemo(()=>{if(Y.current===null)return null;if(J.length===0)return null;let W=Y.current,D=W.length>0&&!/\s$/.test(W)&&J.length>0,f=W.length+(D?1:0),G=f+J.length;return{start:f,end:G}},[J]);return{stripTrailing:O,resetAnchor:w,handleKeyEvent:X.handleKeyEvent,interimRange:P}}function RtK({voiceHandleKeyEvent:q,stripTrailing:K,resetAnchor:_,isActive:z}){let Y=VL1(),$=gl6(),A=VN(),O=dq6(),w=FJ6(),j=lV((G)=>G.voiceState),H=aX.useMemo(()=>{if(!A)return nlY;let G=null;for(let Z of A.bindings){if(Z.context!=="Chat")continue;if(Z.chord.length!==1)continue;let T=Z.chord[0];if(!T)continue;if(Z.action==="voice:pushToTalk")G=T;else if(G!==null&&Vy8(T,G))G=null}return G},[A]),J=H!==null&&H.key.length===1&&!H.ctrl&&!H.alt&&!H.shift&&!H.meta&&!H.super?H.key:null,M=aX.useRef(0),X=aX.useRef(0),P=aX.useRef(0),W=aX.useRef(!1),D=aX.useRef(null);aX.useEffect(()=>{if(j!=="recording")W.current=!1,M.current=0,X.current=0,P.current=0,$((G)=>{if(!G.voiceWarmingUp)return G;return{...G,voiceWarmingUp:!1}})},[j,$]);let f=(G)=>{if(!w)return;if(!z||O)return;if(H===null)return;let Z;if(J!==null){if(G.ctrl||G.meta||G.shift)return;let V=J===" "?v_6(G.key):G.key;if(V[0]!==J)return;if(V.length>1&&V!==J.repeat(V.length))return;Z=V.length}else{if(!llY(G,H))return;Z=1}let T=Y().voiceState;if(W.current&&T!=="idle"){if(G.stopImmediatePropagation(),J!==null)K(Z,{char:J,floor:P.current});q();return}if(T!=="idle"){if(J===null)G.stopImmediatePropagation();return}let v=M.current;if(M.current+=Z,J===null||M.current>=clY){if(G.stopImmediatePropagation(),D.current)clearTimeout(D.current),D.current=null;if(M.current=0,W.current=!0,$((V)=>{if(!V.voiceWarmingUp)return V;return{...V,voiceWarmingUp:!1}}),J!==null)P.current=K(X.current+Z,{char:J,anchor:!0}),X.current=0,q();else K(0,{anchor:!0}),q(dlY);if(Y().voiceState==="idle")W.current=!1,_();return}if(v>=LtK)G.stopImmediatePropagation(),K(Z,{char:J,floor:X.current});else X.current+=Z;if(M.current>=LtK)$((V)=>{if(V.voiceWarmingUp)return V;return{...V,voiceWarmingUp:!0}});if(D.current)clearTimeout(D.current);D.current=setTimeout((V,E,S,R)=>{V.current=null,E.current=0,S.current=0,R((x)=>{if(!x.voiceWarmingUp)return x;return{...x,voiceWarmingUp:!1}})},QlY,D,M,X,$)};return k4((G,Z,T)=>{let v=new JL(T.keypress);if(f(v),v.didStopImmediatePropagation())T.stopImmediatePropagation()},{isActive:z}),{handleKeyDown:f}}function rlY(q){return RtK(q),null}var aX,UlY,QlY=120,dlY=2000,clY=5,LtK=2,nlY;var jA7=y(()=>{h$();T0();NA6();fA6();s6();yU();do6();Sd8();aX=O6(D6(),1),UlY=(v97(),Eq(IpK));nlY={key:" ",ctrl:!1,alt:!1,shift:!1,meta:!1,super:!1}});var htK={};T8(htK,{getCronJitterConfig:()=>JA7});function JA7(){let q=gV("tengu_kairos_cron_config",kU,olY),K=slY().safeParse(q);return K.success?K.data:kU}var olY=60000,HA7=1800000,alY=2592000000,slY;var MA7=y(()=>{x7();o1();vq6();slY=B6(()=>L.object({recurringFrac:L.number().min(0).max(1),recurringCapMs:L.number().int().min(0).max(HA7),oneShotMaxMs:L.number().int().min(0).max(HA7),oneShotFloorMs:L.number().int().min(0).max(HA7),oneShotMinuteMod:L.number().int().min(1).max(60),recurringMaxAgeMs:L.number().int().min(0).max(alY).default(kU.recurringMaxAgeMs)}).refine((q)=>q.oneShotFloorMs<=q.oneShotMaxMs))});import{mkdir as tlY,readFile as elY,unlink as CtK,writeFile as PA7}from"fs/promises";import{dirname as qnY,join as btK}from"path";function MK8(q){return btK(q??Fz(),KnY)}async function xtK(q){let K;try{K=await elY(MK8(q),"utf8")}catch{return}let _=_nY().safeParse(m5(K,!1));return _.success?_.data:void 0}async function StK(q,K){let _=MK8(K),z=g6(q);try{return await PA7(_,z,{flag:"wx"}),!0}catch(Y){let $=s1(Y);if($==="EEXIST")return!1;if($==="ENOENT"){await tlY(qnY(_),{recursive:!0});try{return await PA7(_,z,{flag:"wx"}),!0}catch(A){if(s1(A)==="EEXIST")return!1;throw A}}throw Y}}function XA7(q){ql8?.(),ql8=pq(async()=>{await XK8(q)})}async function WA7(q){let K=q?.dir,_=q?.lockIdentity??N8(),z={sessionId:_,pid:process.pid,acquiredAt:Date.now()};if(await StK(z,K))return JK8=void 0,XA7(q),N(`[ScheduledTasks] acquired scheduler lock (PID ${process.pid})`),!0;let Y=await xtK(K);if(Y?.sessionId===_){if(Y.pid!==process.pid)await PA7(MK8(K),g6(z)),XA7(q);return!0}if(Y&&QG6(Y.pid)){if(JK8!==Y.sessionId)JK8=Y.sessionId,N(`[ScheduledTasks] scheduler lock held by session ${Y.sessionId} (PID ${Y.pid})`);return!1}if(Y)N(`[ScheduledTasks] recovering stale scheduler lock from PID ${Y.pid}`);if(await CtK(MK8(K)).catch(()=>{}),await StK(z,K))return JK8=void 0,XA7(q),!0;return!1}async function XK8(q){ql8?.(),ql8=void 0,JK8=void 0;let K=q?.dir,_=q?.lockIdentity??N8(),z=await xtK(K);if(!z||z.sessionId!==_)return;try{await CtK(MK8(K)),N("[ScheduledTasks] released scheduler lock")}catch{}}var KnY,_nY,ql8,JK8;var ItK=y(()=>{x7();v8();c9();_8();y8();u$6();vO();l8();KnY=btK(".claude","scheduled_tasks.lock"),_nY=B6(()=>L.object({sessionId:L.string(),pid:L.number(),acquiredAt:L.number()}))});var BtK={};T8(BtK,{isRecurringTaskAged:()=>mtK,createCronScheduler:()=>DA7,buildMissedTaskNotification:()=>ptK});function mtK(q,K,_){if(_===0)return!1;return Boolean(q.recurring&&!q.permanent&&K-q.createdAt>=_)}function DA7(q){let{onFire:K,isLoading:_,assistantMode:z=!1,onFireTask:Y,onMissed:$,dir:A,lockIdentity:O,getJitterConfig:w,isKilled:j,filter:H}=q,J=A||O?{dir:A,lockIdentity:O}:void 0,M=[],X=new Map,P=new Set,W=new Set,D=null,f=null,G=null,Z=null,T=!1,v=!1;async function V(R){let x=await IV6(A);if(T)return;if(M=x,!R)return;let I=Date.now(),B=iy4(x,I).filter((p)=>!p.recurring&&!P.has(p.id)&&(!H||H(p)));if(B.length>0){for(let p of B)P.add(p.id),X.set(p.id,1/0);if(d("tengu_scheduled_task_missed",{count:B.length,taskIds:B.map((p)=>p.id).join(",")}),$)$(B);else K(ptK(B));Jw6(B.map((p)=>p.id),A).catch((p)=>N(`[ScheduledTasks] failed to remove missed tasks: ${p}`)),N(`[ScheduledTasks] surfaced ${B.length} missed one-shot task(s)`)}}function E(){if(j?.())return;if(_()&&!z)return;let R=Date.now(),x=new Set,I=[],B=w?.()??kU;function p(C,g){if(H&&!H(C))return;if(x.add(C.id),W.has(C.id))return;let F=X.get(C.id);if(F===void 0)F=C.recurring?jp1(C.cron,C.lastFiredAt??C.createdAt,C.id,B)??1/0:ny4(C.cron,C.createdAt,C.id,B)??1/0,X.set(C.id,F),N(`[ScheduledTasks] scheduled ${C.id} for ${F===1/0?"never":new Date(F).toISOString()}`);if(R<F)return;if(N(`[ScheduledTasks] firing ${C.id}${C.recurring?" (recurring)":""}`),d("tengu_scheduled_task_fire",{recurring:C.recurring??!1,taskId:C.id}),Y)Y(C);else K(C.prompt);let U=mtK(C,R,B.recurringMaxAgeMs);if(U){let c=Math.floor((R-C.createdAt)/1000/60/60);N(`[ScheduledTasks] recurring task ${C.id} aged out (${c}h since creation), deleting after final fire`),d("tengu_scheduled_task_expired",{taskId:C.id,ageHours:c})}if(C.recurring&&!U){let c=jp1(C.cron,R,C.id,B)??1/0;if(X.set(C.id,c),!g)I.push(C.id)}else if(g)ob6([C.id]),X.delete(C.id);else W.add(C.id),Jw6([C.id],A).catch((c)=>N(`[ScheduledTasks] failed to remove task ${C.id}: ${c}`)).finally(()=>W.delete(C.id)),X.delete(C.id)}if(v){for(let C of M)p(C,!1);if(I.length>0){for(let C of I)W.add(C);cy4(I,R,A).catch((C)=>N(`[ScheduledTasks] failed to persist lastFiredAt: ${C}`)).finally(()=>{for(let C of I)W.delete(C)})}}if(A===void 0)for(let C of rb6())p(C,!0);if(x.size===0){X.clear();return}for(let C of X.keys())if(!x.has(C))X.delete(C)}async function S(){if(T)return;if(D)clearInterval(D),D=null;let{default:R}=await Promise.resolve().then(() => (sT6(),E74));if(T)return;if(v=await WA7(J).catch(()=>!1),T){if(v)v=!1,XK8(J);return}if(!v)G=setInterval(()=>{WA7(J).then((I)=>{if(T){if(I)XK8(J);return}if(I){if(v=!0,G)clearInterval(G),G=null}}).catch((I)=>N(String(I),{level:"error"}))},YnY),G.unref?.();V(!0);let x=pr(A);Z=R.watch(x,{persistent:!1,ignoreInitial:!0,awaitWriteFinish:{stabilityThreshold:znY},ignorePermissionErrors:!0}),Z.on("add",()=>void V(!1)),Z.on("change",()=>void V(!1)),Z.on("unlink",()=>{if(!T)M=[],X.clear()}),f=setInterval(E,utK),f.unref?.()}return{start(){if(T=!1,A!==void 0){N(`[ScheduledTasks] scheduler start() — dir=${A}, hasTasks=${nN8(A)}`),S();return}if(N(`[ScheduledTasks] scheduler start() — enabled=${uX6()}, hasTasks=${nN8()}`),!uX6()&&(z||nN8()))ib6(!0);if(uX6()){S();return}D=setInterval((R)=>{if(uX6())R()},utK,S),D.unref?.()},stop(){if(T=!0,D)clearInterval(D),D=null;if(f)clearInterval(f),f=null;if(G)clearInterval(G),G=null;if(Z?.close(),Z=null,v)v=!1,XK8(J)},getNextFireTime(){let R=1/0;for(let x of X.values())if(x<R)R=x;return R===1/0?null:R}}}function ptK(q){let K=q.length>1,_=`The following one-shot scheduled task${K?"s were":" was"} missed while Claude was not running. ${K?"They have":"It has"} already been removed from .claude/scheduled_tasks.json.
8154
8155Do NOT execute ${K?"these prompts":"this prompt"} yet. First use the AskUserQuestion tool to ask whether to run ${K?"each one":"it"} now. Only execute if the user confirms.`,z=q.map((Y)=>{let $=`[${bV6(Y.cron)}, created ${new Date(Y.createdAt).toLocaleString()}]`,A=(Y.prompt.match(/`+/g)??[]).reduce((w,j)=>Math.max(w,j.length),0),O="`".repeat(Math.max(3,A+1));return`${$}

Callers

nothing calls this directly

Calls 3

jjFunction · 0.85
i6Function · 0.85
RoFunction · 0.85

Tested by

no test coverage detected