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

Function o48

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

Source from the content-addressed store, hash-verified

8137Original prompt: ${q}`,"warning")],shouldQuery:!1,allowedTools:Z.allowedTools}}if(v.preventContinuation){let V=v.stopReason?`Operation stopped by hook: ${v.stopReason}`:"Operation stopped by hook";return Z.messages.push(U8({content:V})),Z.shouldQuery=!1,Z}if(v.additionalContexts&&v.additionalContexts.length>0)Z.messages.push(V4({type:"hook_additional_context",content:v.additionalContexts.map(EoK),hookName:"UserPromptSubmit",toolUseID:`hook-${wQY()}`,hookEvent:"UserPromptSubmit"}));if(v.message)switch(v.message.attachment.type){case"hook_success":if(!v.message.attachment.content)break;Z.messages.push({...v.message,attachment:{...v.message.attachment,content:EoK(v.message.attachment.content)}});break;default:Z.messages.push(v.message);break}}return g3("query_hooks_end"),Z}function EoK(q){if(q.length>S$7)return`${q.substring(0,S$7)}… [output truncated - exceeded ${S$7} characters]`;return q}async function jQY(q,K,_,z,Y,$,A,O,w,j,H,J,M,X,P,W,D){let f=null,G=[],Z=[],T=q;if(typeof q==="string")f=q;else if(q.length>0){g3("query_image_processing_start");let p=[];for(let g of q)if(g.type==="image"){let F=await Tr(g);if(F.dimensions){let U=_V6(F.dimensions);if(U)Z.push(U)}p.push(F.block)}else p.push(g);T=p,g3("query_image_processing_end");let C=p[p.length-1];if(C?.type==="text")f=C.text,G=p.slice(0,-1);else G=p}if(f===null&&K!=="prompt")throw Error(`Mode: ${K} requires a string input.`);let v=Y?Object.values(Y).filter(vH6):[],V=v.map((p)=>p.id),E=Y?await qC4(Y):new Map;g3("query_pasted_image_processing_start");let S=await Promise.all(v.map(async(p)=>{let C={type:"image",source:{type:"base64",media_type:p.mediaType||"image/png",data:p.content}};return d("tengu_pasted_image_resize_attempt",{original_size_bytes:p.content.length}),{resized:await Tr(C),originalDimensions:p.dimensions,sourcePath:p.sourcePath??E.get(p.id)}})),R=[];for(let{resized:p,originalDimensions:C,sourcePath:g}of S){if(p.dimensions){let F=_V6(p.dimensions,g);if(F)Z.push(F)}else if(C){let F=_V6(C,g);if(F)Z.push(F)}else if(g)Z.push(`[Image source: ${g}]`);R.push(p.block)}g3("query_pasted_image_processing_end");let x=M;if(X&&f!==null&&f.startsWith("/")){let p=ab8(f),C=p?hQ(p.commandName,z.options.commands):void 0;if(C)if(wQ8(C))x=!1;else{let g=`/${W_(C)} isn't available over Remote Control.`;return{messages:[U8({content:f,uuid:O}),LQ(`<local-command-stdout>${g}</local-command-stdout>`)],shouldQuery:!1,resultText:g}}}let I=!W&&f!==null&&(K!=="prompt"||x||!f.startsWith("/"));g3("query_attachment_loading_start");let B=I?await bN8(nE6(f,z,$??null,[],A,j)):[];if(g3("query_attachment_loading_end"),f!==null&&K==="bash"){let{processBashCommand:p}=await Promise.resolve().then(() => (yoK(),NoK));return C$7(await p(f,G,B,z,_),Z)}if(f!==null&&!x&&f.startsWith("/")){let{processSlashCommand:p}=await Promise.resolve().then(() => (qx8(),eb8)),C=await p(f,G,R,B,z,_,O,w,H);return C$7(C,Z)}if(f!==null&&K==="prompt"){let p=f.trim(),C=B.find((g)=>g.attachment.type==="agent_mention");if(C){let g=`@agent-${C.attachment.agentType}`,F=p===g,U=p.startsWith(g)&&!F;d("tengu_subagent_at_mention",{is_subagent_only:F,is_prefix:U})}}return C$7(GoK(T,R,V,B,O,J,P),Z)}function C$7(q,K){if(K.length>0)q.messages.push(U8({content:K.map((_)=>({type:"text",text:_})),isMeta:!0}));return q}var S$7=1e4;var b$7=y(()=>{k8();i1();yA();lP();ww6();y$();RL();Ko();i1();MH6();IY7();ToK()});function HQY(){eK(0)}async function Vc8(q){let{helpers:K,queryGuard:_,isExternalLoading:z=!1,commands:Y,onInputChange:$,setPastedContents:A,setToolJSX:O,getToolUseContext:w,messages:j,mainLoopModel:H,ideSelection:J,setUserInputOnProcessing:M,setAbortController:X,onQuery:P,setAppState:W,onBeforeQuery:D,canUseTool:f,queuedCommands:G,uuid:Z,skipSlashCommands:T}=q,{setCursorOffset:v,clearBuffer:V,resetHistory:E}=K;if(G?.length){O18(),await LoK({queuedCommands:G,messages:j,mainLoopModel:H,ideSelection:J,querySource:q.querySource,commands:Y,queryGuard:_,setToolJSX:O,getToolUseContext:w,setUserInputOnProcessing:M,setAbortController:X,onQuery:P,setAppState:W,onBeforeQuery:D,resetHistory:E,canUseTool:f,onInputChange:$});return}let S=q.input??"",R=q.mode??"prompt",x=q.pastedContents??{},I=new Set(Od(S).map((K6)=>K6.id)),B=Object.fromEntries(Object.entries(x).filter(([,K6])=>K6.type!=="image"||I.has(K6.id))),p=Object.values(B).some(vH6);if(S.trim()==="")return;if(!T&&["exit","quit",":q",":q!",":wq",":wq!"].includes(S.trim())){if(Y.find((t)=>t.name==="exit"))Vc8({...q,input:"/exit"});else HQY();return}let C=Ch6(S,B),g=Od(S).filter((K6)=>B[K6.id]?.type==="text"),F=g.length,U=g.reduce((K6,t)=>K6+(B[t.id]?.content.length??0),0);if(d("tengu_paste_text",{pastedTextCount:F,pastedTextBytes:U}),!T&&C.trim().startsWith("/")){let K6=C.trim(),t=K6.indexOf(" "),q6=t===-1?K6.slice(1):K6.slice(1,t),e=t===-1?"":K6.slice(t+1).trim(),i=Y.find(($6)=>$6.immediate&&vs($6)&&($6.name===q6||$6.aliases?.includes(q6)||W_($6)===q6));if(i&&i.type==="local-jsx"&&(_.isActive||z)){d("tengu_immediate_command_executed",{commandName:i.name}),$(""),v(0),A({}),V();let $6=w(j,[],P3(),H),M6=!1,j6=(o,s)=>{if(M6=!0,O({jsx:null,shouldHidePromptInput:!1,clearLocalJSX:!0}),o&&s?.display!=="skip"&&q.addNotification)q.addNotification({key:`immediate-${i.name}`,text:o,priority:"immediate"});if(s?.nextInput)if(s.submitNextInput)jM({value:s.nextInput,mode:"prompt"});else $(s.nextInput)},w6=await(await i.load()).call(j6,$6,e);if(w6&&!M6)O({jsx:w6,shouldHidePromptInput:!1,isLocalJSXCommand:!0,isImmediate:!0});return}}if(_.isActive||z){if(R!=="prompt"&&R!=="bash")return;if(q.hasInterruptibleToolInProgress)N(`[interrupt] Aborting current turn: streamMode=${q.streamMode}`),d("tengu_cancel",{source:"interrupt_on_submit",streamMode:q.streamMode}),q.abortController?.abort("interrupt");jM({value:C.trim(),preExpansionValue:S.trim(),mode:R,pastedContents:p?B:void 0,skipSlashCommands:T,uuid:Z}),$(""),v(0),A({}),E(),V();return}O18(),await LoK({queuedCommands:[{value:C,preExpansionValue:S,mode:R,pastedContents:p?B:void 0,skipSlashCommands:T,uuid:Z}],messages:j,mainLoopModel:H,ideSelection:J,querySource:q.querySource,commands:Y,queryGuard:_,setToolJSX:O,getToolUseContext:w,setUserInputOnProcessing:M,setAbortController:X,onQuery:P,setAppState:W,onBeforeQuery:D,resetHistory:E,canUseTool:f,onInputChange:$})}async function LoK(q){let{messages:K,mainLoopModel:_,ideSelection:z,querySource:Y,queryGuard:$,setToolJSX:A,getToolUseContext:O,setUserInputOnProcessing:w,setAbortController:j,onQuery:H,setAppState:J,onBeforeQuery:M,resetHistory:X,canUseTool:P,queuedCommands:W}=q,D=P3();j(D);function f(){return O(K,[],D,_)}try{$.reserve(),g3("query_process_user_input_start");let G=[],Z=!1,T,v,V,E,S,R=W??[],x=R[0]?.workload,I=x!==void 0&&R.every((B)=>B.workload===x)?x:void 0;await hD8(I,async()=>{for(let B=0;B<R.length;B++){let p=R[B],C=B===0,g=await kc8({input:p.value,preExpansionInput:p.preExpansionValue,mode:p.mode,setToolJSX:A,context:f(),pastedContents:C?p.pastedContents:void 0,messages:K,setUserInputOnProcessing:C?w:void 0,isAlreadyProcessing:!C,querySource:Y,canUseTool:P,uuid:p.uuid,ideSelection:C?z:void 0,skipSlashCommands:p.skipSlashCommands,bridgeOrigin:p.bridgeOrigin,isMeta:p.isMeta,skipAttachments:!C}),F=p.origin??(p.mode==="task-notification"?{kind:"task-notification"}:void 0);if(F){for(let U of g.messages)if(U.type==="user")U.origin=F}if(G.push(...g.messages),C)Z=g.shouldQuery,T=g.allowedTools,v=g.model,V=g.effort,E=g.nextInput,S=g.submitNextInput}if(g3("query_process_user_input_end"),e$())g3("query_file_history_snapshot_start"),G.filter(xJ6).forEach((B)=>{aE6((p)=>{J((C)=>({...C,fileHistory:p(C.fileHistory)}))},B.uuid)}),g3("query_file_history_snapshot_end");if(G.length){X(),A({jsx:null,shouldHidePromptInput:!1,clearLocalJSX:!0});let B=R[0],p=B?.mode??"prompt",C=B&&typeof B.value==="string"?B.value:void 0,g=p==="prompt";await H(G,D,Z,T??[],v?cF6(v,_):_,g?M:void 0,C,V)}else $.cancelReservation(),A({jsx:null,shouldHidePromptInput:!1,clearLocalJSX:!0}),X(),j(null);if(E)if(S)jM({value:E,mode:"prompt"});else q.onInputChange(E)})}finally{$.cancelReservation(),w(void 0)}}var RoK=y(()=>{k8();yA();Md8();Ib();B2();_8();oN();RA();p2();aq();b$7();MH6();D$6()});function hoK(q){if(typeof q.value==="string")return q.value.trim().startsWith("/");for(let K of q.value)if(K.type==="text")return K.text.trim().startsWith("/");return!1}function SoK({executeInput:q}){let K=($)=>$.agentId===void 0,_=YV6(K);if(!_)return{processed:!1};if(hoK(_)||_.mode==="bash"){let $=xr6(K);return q([$]),{processed:!0}}let z=_.mode,Y=$V6(($)=>K($)&&!hoK($)&&$.mode===z);if(Y.length===0)return{processed:!1};return q(Y),{processed:!0}}var CoK=y(()=>{p2()});function boK({executeQueuedInput:q,hasActiveLocalJsxUI:K,queryGuard:_}){let z=B48.useSyncExternalStore(_.subscribe,_.getSnapshot),Y=B48.useSyncExternalStore(zV6,XV8);B48.useEffect(()=>{if(z)return;if(K)return;if(Y.length===0)return;SoK({executeInput:q})},[Y,z,q,K,_])}var B48;var xoK=y(()=>{p2();CoK();B48=O6(D6(),1)});function IoK({isLoading:q,onSubmitMessage:K}){let _=q74(),z=z36.useMemo(()=>_.subscribe.bind(_),[_]),Y=z36.useCallback(()=>_.revision,[_]),$=z36.useSyncExternalStore(z,Y);z36.useEffect(()=>{if(q)return;let A=_.poll();if(A)K(A.content)},[q,$,_,K])}var z36;var uoK=y(()=>{yL1();z36=O6(D6(),1)});function Nc8(q,K){if(q&&K&&K.length>0)return u2([...q,...K],"name");return q||[]}function poK(q,K){return moK.useMemo(()=>Nc8(q,K),[q,K])}var moK;var BoK=y(()=>{Fu();moK=O6(D6(),1)});function x$7(q,K){return goK.useMemo(()=>{if(K.length>0)return u2([...q,...K],"name");return q},[q,K])}var goK;var FoK=y(()=>{Fu();goK=O6(D6(),1)});import*as AM6 from"path";async function DQY(){if(u$7||m$7)return;if(u$7=!0,!UoK)UoK=!0,FYK(()=>{bq8(),U48.emit()});let q=await ZQY();if(q.length===0)return;N(`Watching for changes in skill/command directories: ${q.join(", ")}...`),cd=di.watch(q,{persistent:!0,ignoreInitial:!0,depth:2,awaitWriteFinish:{stabilityThreshold:F48?.stabilityThreshold??JQY,pollInterval:F48?.pollInterval??MQY},ignored:(K,_)=>{if(_&&!_.isFile()&&!_.isDirectory())return!0;return K.split(AM6.sep).some((z)=>z===".git")},ignorePermissionErrors:!0,usePolling:WQY,interval:F48?.chokidarInterval??PQY,atomic:!0}),cd.on("add",I$7),cd.on("change",I$7),cd.on("unlink",I$7),yc8=pq(async()=>{await QoK()})}function QoK(){if(m$7=!0,yc8)yc8(),yc8=null;let q=Promise.resolve();if(cd)q=cd.close(),cd=null;if(ld)clearTimeout(ld),ld=null;return g48.clear(),U48.clear(),q}async function ZQY(){let q=X8(),K=[],_=VK6("userSettings","skills");if(_)try{await q.stat(_),K.push(_)}catch{}let z=VK6("userSettings","commands");if(z)try{await q.stat(z),K.push(z)}catch{}let Y=VK6("projectSettings","skills");if(Y)try{let A=AM6.resolve(Y);await q.stat(A),K.push(A)}catch{}let $=VK6("projectSettings","commands");if($)try{let A=AM6.resolve($);await q.stat(A),K.push(A)}catch{}for(let A of NZ()){let O=AM6.join(A,".claude","skills");try{await q.stat(O),K.push(O)}catch{}}return K}function I$7(q){N(`Detected skill change: ${q}`),d("tengu_skill_file_changed",{source:"chokidar"}),GQY(q)}function GQY(q){if(g48.add(q),ld)clearTimeout(ld);ld=setTimeout(async()=>{ld=null;let K=[...g48];g48.clear();let _=await qv6("skills",K[0]);if(eT6(_)){N(`ConfigChange hook blocked skill reload (${K.length} paths)`);return}oI8(),tQ(),$h6(),U48.emit()},F48?.reloadDebounce??XQY)}async function TQY(q){if(cd)await cd.close(),cd=null;if(ld)clearTimeout(ld),ld=null;g48.clear(),U48.clear(),u$7=!1,m$7=!1,F48=q??null}var JQY=1000,MQY=500,XQY=300,PQY=2000,WQY,cd=null,ld=null,g48,u$7=!1,m$7=!1,UoK=!1,yc8=null,U48,F48=null,fQY,RC6;var Ec8=y(()=>{sT6();v8();yA();k8();Ga();lP();c9();_8();e7();y$();WQY=typeof Bun<"u",g48=new Set,U48=Dz();fQY=U48.subscribe;RC6={initialize:DQY,dispose:QoK,subscribe:fQY,resetForTesting:TQY}});function doK(q,K){let _=hC6.useCallback(async()=>{if(!q)return;try{tQ();let Y=await u0(q);K(Y)}catch(Y){if(Y instanceof Error)H6(Y)}},[q,K]);hC6.useEffect(()=>RC6.subscribe(_),[_]);let z=hC6.useCallback(async()=>{if(!q)return;try{bq8();let Y=await u0(q);K(Y)}catch(Y){if(Y instanceof Error)H6(Y)}},[q,K]);hC6.useEffect(()=>Nc6(z),[z])}var hC6;var coK=y(()=>{yA();o1();E8();Ec8();hC6=O6(D6(),1)});function vQY(q,K,_){let z=new Set(K.plugins.map((A)=>A.name)),Y=`@${_}`,$=[];for(let A of Object.keys(q.plugins)){if(!A.endsWith(Y))continue;let O=A.slice(0,-Y.length);if(!z.has(O))$.push(A)}return $}async function Lc8(){await vyK();let q=cX(),K=KS6(),_=await eK6(),z=[];for(let Y of Object.keys(_))try{let $=await r0(Y);if(!$.forceRemoveDeletedPlugins)continue;let A=vQY(q,$,Y);for(let O of A){if(O in K)continue;let w=q.plugins[O]??[];if(!w.some((H)=>H.scope==="user"||H.scope==="project"||H.scope==="local"))continue;for(let H of w){let{scope:J}=H;if(J!=="user"&&J!=="project"&&J!=="local")continue;try{await _s(O,J)}catch(M){N(`Failed to auto-uninstall delisted plugin ${O} from ${J}: ${d6(M)}`,{level:"error"})}}await kyK(O),z.push(O)}}catch($){N(`Failed to check for delisted plugins in "${Y}": ${d6($)}`,{level:"warn"})}return z}var p$7=y(()=>{qS6();_8();y8();pX();Nw();ZF8()});function Rc8({enabled:q=!0}={}){let K=s7(),_=P8(($)=>$.plugins.needsRefresh),{addNotification:z}=PK(),Y=Q48.useCallback(async()=>{try{let{enabled:$,disabled:A,errors:O}=await LM();await Lc8();let w=KS6();if(Object.keys(w).length>0)z({key:"plugin-delisted-flagged",text:"Plugins flagged. Check /plugins",color:"warning",priority:"high"});let j=[],H=[];try{j=await kH6()}catch(D){let f=D instanceof Error?D.message:String(D);O.push({type:"generic-error",source:"plugin-commands",error:`Failed to load plugin commands: ${f}`})}try{H=await Ui6()}catch(D){let f=D instanceof Error?D.message:String(D);O.push({type:"generic-error",source:"plugin-agents",error:`Failed to load plugin agents: ${f}`})}try{await IQ()}catch(D){let f=D instanceof Error?D.message:String(D);O.push({type:"generic-error",source:"plugin-hooks",error:`Failed to load plugin hooks: ${f}`})}let M=(await Promise.all($.map(async(D)=>{if(D.mcpServers)return Object.keys(D.mcpServers).length;let f=await Cq6(D,O);if(f)D.mcpServers=f;return f?Object.keys(f).length:0}))).reduce((D,f)=>D+f,0),P=(await Promise.all($.map(async(D)=>{if(D.lspServers)return Object.keys(D.lspServers).length;let f=await v68(D,O);if(f)D.lspServers=f;return f?Object.keys(f).length:0}))).reduce((D,f)=>D+f,0);YI8(),K((D)=>{let f=D.plugins.errors.filter((v)=>v.source==="lsp-manager"||v.source.startsWith("plugin:")),G=new Set(O.map((v)=>v.type==="generic-error"?`generic-error:${v.source}:${v.error}`:`${v.type}:${v.source}`)),T=[...f.filter((v)=>{let V=v.type==="generic-error"?`generic-error:${v.source}:${v.error}`:`${v.type}:${v.source}`;return!G.has(V)}),...O];return{...D,plugins:{...D.plugins,enabled:$,disabled:A,commands:j,errors:T}}}),N(`Loaded plugins - Enabled: ${$.length}, Disabled: ${A.length}, Commands: ${j.length}, Agents: ${H.length}, Errors: ${O.length}`);let W=$.reduce((D,f)=>{if(!f.hooksConfig)return D;return D+Object.values(f.hooksConfig).reduce((G,Z)=>G+(Z?.reduce((T,v)=>T+v.hooks.length,0)??0),0)},0);return{enabled_count:$.length,disabled_count:A.length,inline_count:$7($,(D)=>D.source.endsWith("@inline")),marketplace_count:$7($,(D)=>!D.source.endsWith("@inline")),error_count:O.length,skill_count:j.length,agent_count:H.length,hook_count:W,mcp_count:M,lsp_count:P,ant_enabled_names:void 0}}catch($){let A=x1($);return H6(A),N(`Error loading plugins: ${$}`),K((O)=>{let w=O.plugins.errors.filter((H)=>H.source==="lsp-manager"||H.source.startsWith("plugin:")),j={type:"generic-error",source:"plugin-system",error:A.message};return{...O,plugins:{...O.plugins,enabled:[],disabled:[],commands:[],errors:[...w,j]}}}),{enabled_count:0,disabled_count:0,inline_count:0,marketplace_count:0,error_count:1,skill_count:0,agent_count:0,hook_count:0,mcp_count:0,lsp_count:0,load_failed:!0,ant_enabled_names:void 0}}},[K,z]);Q48.useEffect(()=>{if(!q)return;Y().then(($)=>{let{ant_enabled_names:A,...O}=$,w={...O,has_custom_plugin_cache_dir:!!process.env.CLAUDE_CODE_PLUGIN_CACHE_DIR};d("tengu_plugins_loaded",{...w,...A!==void 0&&{enabled_names:A}}),c8("info","tengu_plugins_loaded",w)})},[Y,q]),Q48.useEffect(()=>{if(!q||!_)return;z({key:"plugin-reload-pending",text:"Plugins changed. Run /reload-plugins to activate.",color:"suggestion",priority:"low"})},[q,_,z])}var Q48;var B$7=y(()=>{h$();k8();uQ();C7();_8();oY();y8();E8();Hk8();L18();Nj6();dx8();AN6();p$7();ZF8();bj();Q48=O6(D6(),1)});function loK(){let q=z6(14),K=P8(kQY);if(!K)return null;let _;if(q[0]!==K.identity.color)_=R0(K.identity.color),q[0]=K.identity.color,q[1]=_;else _=q[1];let z=_,Y;if(q[2]===Symbol.for("react.memo_cache_sentinel"))Y=fZ.createElement(k,null,"Viewing "),q[2]=Y;else Y=q[2];let $;if(q[3]!==z||q[4]!==K.identity.agentName)$=fZ.createElement(k,{color:z,bold:!0},"@",K.identity.agentName),q[3]=z,q[4]=K.identity.agentName,q[5]=$;else $=q[5];let A;if(q[6]===Symbol.for("react.memo_cache_sentinel"))A=fZ.createElement(k,{dimColor:!0}," · ",fZ.createElement(t8,{shortcut:"esc",action:"return"})),q[6]=A;else A=q[6];let O;if(q[7]!==$)O=fZ.createElement(u,null,Y,$,A),q[7]=$,q[8]=O;else O=q[8];let w;if(q[9]!==K.prompt)w=fZ.createElement(k,{dimColor:!0},K.prompt),q[9]=K.prompt,q[10]=w;else w=q[10];let j;if(q[11]!==O||q[12]!==w)j=fZ.createElement(I0,null,fZ.createElement(u,{flexDirection:"column",marginBottom:1},O,w)),q[11]=O,q[12]=w,q[13]=j;else j=q[13];return j}function kQY(q){return Bm(q)}var fZ;var noK=y(()=>{q8();s6();C7();bE6();Fo();rK();$K6();fZ=O6(D6(),1)});function ioK(q,K){let _=d48.useRef(!1),z=d48.useRef(null);d48.useEffect(()=>{let Y=SN(q);if(z.current!==(Y??null))_.current=!1,z.current=Y||null,K({lineCount:0,lineStart:void 0,text:void 0,filePath:void 0});if(_.current||!Y)return;let $=(A)=>{if(A.selection?.start&&A.selection?.end){let{start:O,end:w}=A.selection,j=w.line-O.line+1;if(w.character===0)j--;let H={lineCount:j,lineStart:O.line,text:A.text,filePath:A.filePath};K(H)}};Y.client.setNotificationHandler(VQY(),(A)=>{if(z.current!==Y)return;try{let O=A.params;if(O.selection&&O.selection.start&&O.selection.end)$(O);else if(O.text!==void 0)$({selection:null,text:O.text,filePath:O.filePath})}catch(O){H6(O)}}),_.current=!0},[q,K])}var d48,VQY;var roK=y(()=>{E8();x7();U2();d48=O6(D6(),1),VQY=B6(()=>L.object({method:L.literal("selection_changed"),params:L.object({selection:L.object({start:L.object({line:L.number(),character:L.number()}),end:L.object({line:L.number(),character:L.number()})}).nullable().optional(),text:L.string().optional(),filePath:L.string().optional()})}))});var toK={};T8(toK,{renameRecordingForSession:()=>l48,installAsciicastRecorder:()=>SQY,getSessionRecordingPaths:()=>RQY,getRecordFilePath:()=>soK,flushAsciicastRecorder:()=>hQY,_resetRecordingStateForTesting:()=>LQY});import{appendFile as NQY,rename as yQY}from"fs/promises";import{basename as ooK,dirname as EQY,join as ls}from"path";function soK(){if(SR.filePath!==null)return SR.filePath;return null}function LQY(){SR.filePath=null,SR.timestamp=0}function RQY(){let q=N8(),K=ls(c1(),"projects"),_=ls(K,JP(r1()));try{let z=X8().readdirSync(_);return(typeof z[0]==="string"?z:z.map((A)=>A.name)).filter((A)=>A.startsWith(q)&&A.endsWith(".cast")).sort().map((A)=>ls(_,A))}catch{return[]}}async function l48(){let q=SR.filePath;if(!q||SR.timestamp===0)return;let K=ls(c1(),"projects"),_=ls(K,JP(r1())),z=ls(_,`${N8()}-${SR.timestamp}.cast`);if(q===z)return;await c48?.flush();let Y=ooK(q),$=ooK(z);try{await yQY(q,z),SR.filePath=z,N(`[asciicast] Renamed recording: ${Y} → ${$}`)}catch{N(`[asciicast] Failed to rename recording from ${Y} to ${$}`)}}function aoK(){let q=process.stdout.columns||80,K=process.stdout.rows||24;return{cols:q,rows:K}}async function hQY(){await c48?.flush()}function SQY(){let q=soK();if(!q)return;let{cols:K,rows:_}=aoK(),z=performance.now(),Y=g6({version:2,width:K,height:_,timestamp:Math.floor(Date.now()/1000),env:{SHELL:process.env.SHELL||"",TERM:process.env.TERM||""}});try{X8().mkdirSync(EQY(q))}catch{}X8().appendFileSync(q,Y+`
8138`,{mode:384});let $=Promise.resolve(),A=gX6({writeFn(j){let H=SR.filePath;if(!H)return;$=$.then(()=>NQY(H,j)).catch(()=>{})},flushIntervalMs:500,maxBufferSize:50,maxBufferBytes:10485760}),O=process.stdout.write.bind(process.stdout);process.stdout.write=function(j,H,J){let M=(performance.now()-z)/1000,X=typeof j==="string"?j:Buffer.from(j).toString("utf-8");if(A.write(g6([M,"o",X])+`
8139`),typeof H==="function")return O(j,H);return O(j,H,J)};function w(){let j=(performance.now()-z)/1000,{cols:H,rows:J}=aoK();A.write(g6([j,"r",`${H}x${J}`])+`
8140`)}process.stdout.on("resize",w),c48={async flush(){A.flush(),await $},async dispose(){A.dispose(),await $,process.stdout.removeListener("resize",w),process.stdout.write=O}},pq(async()=>{await c48?.dispose(),c48=null}),N(`[asciicast] Recording to ${q}`)}var SR,c48=null;var n48=y(()=>{v8();c9();_8();m8();e7();dz();l8();SR={filePath:null,timestamp:0}});import{dirname as CQY}from"path";function bQY(q){for(let K=q.length-1;K>=0;K--){let _=q[K];if(_?.type!=="assistant")continue;let z=_.message.content.find((A)=>A.type==="tool_use"&&A.name===BC);if(!z||z.type!=="tool_use")continue;let Y=z.input;if(Y===null||typeof Y!=="object")return[];let $=rE6().safeParse(Y.todos);return $.success?$.data:[]}return[]}function i48(q,K){if(q.fileHistorySnapshots&&q.fileHistorySnapshots.length>0)Jx8(q.fileHistorySnapshots,(_)=>{K((z)=>({...z,fileHistory:_}))});if(!IH()&&q.messages&&q.messages.length>0){let _=bQY(q.messages);if(_.length>0){let z=N8();K((Y)=>({...Y,todos:{...Y.todos,[z]:_}}))}}}function xQY(q){return}function r48(q,K){if(!q&&!K)return;return{name:q??"",color:K==="default"?void 0:K}}function OM6(q,K,_){if(K)return{agentDefinition:K,agentType:void 0};if(!q)return vc(void 0),{agentDefinition:void 0,agentType:void 0};let z=_.activeAgents.find((Y)=>Y.agentType===q);if(!z)return N(`Resumed session had agent "${q}" but it is no longer available. Using default behavior.`),vc(void 0),{agentDefinition:void 0,agentType:void 0};if(vc(z.agentType),!yx()&&z.model&&z.model!=="inherit")YP(A5(z.model));return{agentDefinition:z,agentType:z.agentType}}async function IQY(q,K,_,z){return z}function o48(q){let K=n2();if(K){Oy(K);return}if(!q)return;try{process.chdir(q.worktreePath)}catch{Oy(null);return}QO(q.worktreePath),aR(Z8()),CQ8(q),wN(),La(),hA.cache.clear?.()}function eoK(){let q=n2();if(!q)return;CQ8(null),wN(),La(),hA.cache.clear?.();try{process.chdir(q.originalCwd)}catch{return}QO(q.originalCwd),aR(Z8())}async function g$7(q,K,_){let z;if(!K.forkSession){let j=K.sessionIdOverride??q.sessionId;if(j)Of(EX(j),K.transcriptPath?CQY(K.transcriptPath):null),await l48(),await mb(),sI8(j)}else if(q.contentReplacements?.length)await DH6(q.contentReplacements);if(Ld(K.forkSession?{...q,worktreeSession:void 0}:q),!K.forkSession)o48(q.worktreeSession),vJ6();let{agentDefinition:Y,agentType:$}=OM6(q.agentSetting,_.mainThreadAgentDefinition,_.agentDefinitions),A=K.includeAttribution?xQY(q):void 0,O=r48(q.agentName,q.agentColor);cQ(q.agentName);let w=await IQY(!!z,_.currentCwd,_.cliAgents,_.agentDefinitions);return{messages:q.messages,fileHistorySnapshots:q.fileHistorySnapshots,contentReplacements:q.contentReplacements,agentName:q.agentName,agentColor:q.agentColor==="default"?void 0:q.agentColor,restoredAgentDef:Y,initialState:{..._.initialState,...$&&{agent:$},...A&&{attribution:A},...O&&{standaloneAgentContext:O},agentDefinitions:w}}}var a48=y(()=>{v8();kR6();Tb();SP();M0();n48();wM();xr();lQ();I7();_8();oN();i1();aq();SJ();tN();_K();gj();Fr1();d0()});import{randomUUID as qaK}from"crypto";function hc8(q){if(cW())return;if($Y())return M_();if(MG(q.teamContext)){let K=q.teamContext.leadAgentId;return q.teamContext.teammates[K]?.name||"team-lead"}return}function KaK({enabled:q,isLoading:K,focusedInputDialog:_,onSubmitMessage:z}){let Y=z,$=jz(),A=s7(),O=P8((M)=>M.inbox.messages.length),w=ZF(),j=wM6.useCallback(async()=>{if(!q)return;let M=$.getState(),X=hc8(M);if(!X)return;let P=await n26(X,M.teamContext?.teamName);if(P.length===0)return;if(N(`[InboxPoller] Found ${P.length} unread message(s)`),$Y()&&fc6())for(let B of P){let p=fE6(B.text);if(p&&B.from==="team-lead")if(N(`[InboxPoller] Received plan approval response from team-lead: approved=${p.approved}`),p.approved){let C=p.permissionMode??"default";A((g)=>({...g,toolPermissionContext:L$(g.toolPermissionContext,{type:"setMode",mode:KI(C),destination:"session"})})),N(`[InboxPoller] Plan approved by team lead, exited plan mode to ${C}`)}else N(`[InboxPoller] Plan rejected by team lead: ${p.feedback||"No feedback provided"}`);else if(p)N(`[InboxPoller] Ignoring plan approval response from non-team-lead: ${B.from}`)}let W=()=>{We6(X,M.teamContext?.teamName)},D=[],f=[],G=[],Z=[],T=[],v=[],V=[],E=[],S=[],R=[];for(let B of P){let p=Ze6(B.text),C=i26(B.text),g=IC8(B.text),F=Ge6(B.text),U=n46(B.text),c=qk(B.text),K6=BC8(B.text),t=FC8(B.text),q6=r26(B.text);if(p)D.push(B);else if(C)f.push(B);else if(g)G.push(B);else if(F)Z.push(B);else if(U)T.push(B);else if(c)v.push(B);else if(K6)V.push(B);else if(t)E.push(B);else if(q6)S.push(B);else R.push(B)}if(D.length>0&&MG(M.teamContext)){N(`[InboxPoller] Found ${D.length} permission request(s)`);let B=EE6(),p=M.teamContext?.teamName;for(let g of D){let F=Ze6(g.text);if(!F)continue;if(B){let U=L5(UK6(),F.tool_name);if(!U){N(`[InboxPoller] Unknown tool ${F.tool_name}, skipping permission request`);continue}let c={assistantMessage:nG({content:""}),tool:U,description:F.description,input:F.input,toolUseContext:{},toolUseID:F.tool_use_id,permissionResult:{behavior:"ask",message:F.description},permissionPromptStartTimeMs:Date.now(),workerBadge:{name:F.agent_id,color:"cyan"},onUserInteraction(){},onAbort(){nC8(F.agent_id,{decision:"rejected",resolvedBy:"leader"},F.request_id,p)},onAllow(K6,t){nC8(F.agent_id,{decision:"approved",resolvedBy:"leader",updatedInput:K6,permissionUpdates:t},F.request_id,p)},onReject(K6){nC8(F.agent_id,{decision:"rejected",resolvedBy:"leader",feedback:K6},F.request_id,p)},async recheckPermission(){}};B((K6)=>{if(K6.some((t)=>t.toolUseID===F.tool_use_id))return K6;return[...K6,c]})}else N(`[InboxPoller] ToolUseConfirmQueue unavailable, dropping permission request from ${F.agent_id}`)}let C=Ze6(D[0]?.text??"");if(C&&!K&&!_)ZQ({message:`${C.agent_id} needs permission for ${C.tool_name}`,notificationType:"worker_permission_prompt"},w)}if(f.length>0&&$Y()){N(`[InboxPoller] Found ${f.length} permission response(s)`);for(let B of f){let p=i26(B.text);if(!p)continue;if(V7K(p.request_id))if(N(`[InboxPoller] Processing permission response for ${p.request_id}: ${p.subtype}`),p.subtype==="success")NE6({requestId:p.request_id,decision:"approved",updatedInput:p.response?.updated_input,permissionUpdates:p.response?.permission_updates});else NE6({requestId:p.request_id,decision:"rejected",feedback:p.error})}}if(G.length>0&&MG(M.teamContext)){N(`[InboxPoller] Found ${G.length} sandbox permission request(s)`);let B=[];for(let p of G){let C=IC8(p.text);if(!C)continue;if(!C.hostPattern?.host){N("[InboxPoller] Invalid sandbox permission request: missing hostPattern.host");continue}B.push({requestId:C.requestId,workerId:C.workerId,workerName:C.workerName,workerColor:C.workerColor,host:C.hostPattern.host,createdAt:C.createdAt})}if(B.length>0){A((C)=>({...C,workerSandboxPermissions:{...C.workerSandboxPermissions,queue:[...C.workerSandboxPermissions.queue,...B]}}));let p=B[0];if(p&&!K&&!_)ZQ({message:`${p.workerName} needs network access to ${p.host}`,notificationType:"worker_permission_prompt"},w)}}if(Z.length>0&&$Y()){N(`[InboxPoller] Found ${Z.length} sandbox permission response(s)`);for(let B of Z){let p=Ge6(B.text);if(!p)continue;if(E7K(p.requestId))N(`[InboxPoller] Processing sandbox permission response for ${p.requestId}: allow=${p.allow}`),L7K({requestId:p.requestId,host:p.host,allow:p.allow}),A((C)=>({...C,pendingSandboxRequest:null}))}}if(V.length>0&&$Y()){N(`[InboxPoller] Found ${V.length} team permission update(s)`);for(let B of V){let p=BC8(B.text);if(!p){N(`[InboxPoller] Failed to parse team permission update: ${B.text.substring(0,100)}`);continue}if(!p.permissionUpdate?.rules||!p.permissionUpdate?.behavior){N("[InboxPoller] Invalid team permission update: missing permissionUpdate.rules or permissionUpdate.behavior");continue}N(`[InboxPoller] Applying team permission update: ${p.toolName} allowed in ${p.directoryPath}`),N(`[InboxPoller] Permission update rules: ${g6(p.permissionUpdate.rules)}`),A((C)=>{let g=L$(C.toolPermissionContext,{type:"addRules",rules:p.permissionUpdate.rules,behavior:p.permissionUpdate.behavior,destination:"session"});return N(`[InboxPoller] Updated session allow rules: ${g6(g.alwaysAllowRules.session)}`),{...C,toolPermissionContext:g}})}}if(E.length>0&&$Y()){N(`[InboxPoller] Found ${E.length} mode set request(s)`);for(let B of E){if(B.from!=="team-lead"){N(`[InboxPoller] Ignoring mode set request from non-team-lead: ${B.from}`);continue}let p=FC8(B.text);if(!p){N(`[InboxPoller] Failed to parse mode set request: ${B.text.substring(0,100)}`);continue}let C=vE(p.mode);N(`[InboxPoller] Applying mode change from team-lead: ${C}`),A((U)=>({...U,toolPermissionContext:L$(U.toolPermissionContext,{type:"setMode",mode:KI(C),destination:"session"})}));let g=M.teamContext?.teamName,F=M_();if(g&&F)CE6(g,F,C)}}if(S.length>0&&MG(M.teamContext)){N(`[InboxPoller] Found ${S.length} plan approval request(s), auto-approving`);let B=M.teamContext?.teamName,p=KI(M.toolPermissionContext.mode),C=p==="plan"?"default":p;for(let g of S){let F=r26(g.text);if(!F)continue;let U={type:"plan_approval_response",requestId:F.requestId,approved:!0,timestamp:new Date().toISOString(),permissionMode:C};R_(g.from,{from:wz,text:g6(U),timestamp:new Date().toISOString()},B);let c=Tm8(g.from,M);if(c)ljK(c,{type:"plan_approval_response",requestId:F.requestId,approved:!0,timestamp:new Date().toISOString(),permissionMode:C},A);N(`[InboxPoller] Auto-approved plan from ${g.from} (request ${F.requestId})`),R.push(g)}}if(T.length>0&&$Y()){N(`[InboxPoller] Found ${T.length} shutdown request(s)`);for(let B of T)R.push(B)}if(v.length>0&&MG(M.teamContext)){N(`[InboxPoller] Found ${v.length} shutdown approval(s)`);for(let B of v){let p=qk(B.text);if(!p)continue;if(p.paneId&&p.backendType)(async()=>{try{await hE6();let g=await xm(),U=await t26(p.backendType)?.killPane(p.paneId,!g);N(`[InboxPoller] Killed pane ${p.paneId} for ${p.from}: ${U}`)}catch(g){N(`[InboxPoller] Failed to kill pane for ${p.from}: ${g}`)}})();let C=p.from;if(C&&M.teamContext?.teammates){let g=Object.entries(M.teamContext.teammates).find(([,F])=>F.name===C)?.[0];if(g){let F=M.teamContext?.teamName;if(F)qj6(F,{agentId:g,name:C});let{notificationMessage:U}=F?await c46(F,g,C,"shutdown"):{notificationMessage:`${C} has shut down.`};A((c)=>{if(!c.teamContext?.teammates)return c;if(!(g in c.teamContext.teammates))return c;let{[g]:K6,...t}=c.teamContext.teammates,q6={...c.tasks};for(let[e,i]of Object.entries(q6))if(xH(i)&&i.identity.agentId===g)q6[e]={...i,status:"completed",endTime:Date.now()};return{...c,tasks:q6,teamContext:{...c.teamContext,teammates:t},inbox:{messages:[...c.inbox.messages,{id:qaK(),from:"system",text:g6({type:"teammate_terminated",message:U}),timestamp:new Date().toISOString(),status:"pending"}]}}}),N(`[InboxPoller] Removed ${C} (${g}) from teamContext`)}}R.push(B)}}if(R.length===0){W();return}let x=R.map((B)=>{let p=B.color?` color="${B.color}"`:"",C=B.summary?` summary="${B.summary}"`:"",g=B.text;return`<${dJ} teammate_id="${B.from}"${p}${C}>
8141${g}
8142</${dJ}>`}).join(`

Callers 3

g$7Function · 0.85
GA7Function · 0.85
M6Function · 0.85

Calls 9

n2Function · 0.85
OyFunction · 0.85
QOFunction · 0.85
aRFunction · 0.85
Z8Function · 0.85
CQ8Function · 0.85
wNFunction · 0.85
LaFunction · 0.85
clearMethod · 0.45

Tested by

no test coverage detected