| 3134 | |
| 3135 | [Binary content (${H}, ${m4(M??O)}) also saved to ${J}]`;return{data:{bytes:O,code:w,codeText:j,result:P,durationMs:Date.now()-Y,url:q}}},mapToolResultToToolResultBlockParam({result:q},K){return{tool_use_id:K,type:"tool_result",content:q}}})});import{readdir as c8Y,stat as l8Y}from"fs/promises";import{basename as zJw,join as n8Y}from"path";async function wjK(q,K,_){let z;try{z=await c8Y(q)}catch{return[]}return(await Promise.all(z.map(async($)=>{if(!$.endsWith(".jsonl"))return null;let A=wR7($.slice(0,-6));if(!A)return null;let O=n8Y(q,$);if(!K)return{sessionId:A,filePath:O,mtime:0,projectPath:_};try{let w=await l8Y(O);return{sessionId:A,filePath:O,mtime:w.mtime.getTime(),projectPath:_}}catch{return null}}))).filter(($)=>$!==null)}var jjK=y(()=>{m$8();QW6()});import{mkdir as i8Y,readFile as HjK,stat as JjK,unlink as r8Y,utimes as o8Y,writeFile as MjK}from"fs/promises";import{join as a8Y}from"path";function Ge1(){return a8Y(Vj(),s8Y)}async function Am8(){try{return(await JjK(Ge1())).mtimeMs}catch{return 0}}async function XjK(){let q=Ge1(),K,_;try{let[Y,$]=await Promise.all([JjK(q),HjK(q,"utf8")]);K=Y.mtimeMs;let A=parseInt($.trim(),10);_=Number.isFinite(A)?A:void 0}catch{}if(K!==void 0&&Date.now()-K<t8Y){if(_!==void 0&&QG6(_))return N(`[autoDream] lock held by live PID ${_} (mtime ${Math.round((Date.now()-K)/1000)}s ago)`),null}await i8Y(Vj(),{recursive:!0}),await MjK(q,String(process.pid));let z;try{z=await HjK(q,"utf8")}catch{return null}if(parseInt(z.trim(),10)!==process.pid)return null;return K??0}async function Om8(q){let K=Ge1();try{if(q===0){await r8Y(K);return}await MjK(K,"");let _=q/1000;await o8Y(K,_,_)}catch(_){N(`[autoDream] rollback failed: ${_.message} — next trigger delayed to minHours`)}}async function PjK(q){let K=_2(r1());return(await wjK(K,!0)).filter((z)=>z.mtime>q).map((z)=>z.sessionId)}var s8Y=".consolidate-lock",t8Y=3600000;var wm8=y(()=>{v8();rw();_8();u$6();jjK();_K()});function WjK(q){return typeof q==="object"&&q!==null&&"type"in q&&q.type==="dream"}function DjK(q,K){let _=aL("dream"),z={...C0(_,"dream","dreaming"),type:"dream",status:"running",phase:"starting",sessionsReviewing:K.sessionsReviewing,filesTouched:[],turns:[],abortController:K.abortController,priorMtime:K.priorMtime};return H0(z,q),_}function fjK(q,K,_,z){A3(q,z,(Y)=>{let $=new Set(Y.filesTouched),A=_.filter((O)=>!$.has(O)&&$.add(O));if(K.text===""&&K.toolUseCount===0&&A.length===0)return Y;return{...Y,phase:A.length>0?"updating":Y.phase,filesTouched:A.length>0?[...Y.filesTouched,...A]:Y.filesTouched,turns:Y.turns.slice(-(e8Y-1)).concat(K)}})}function ZjK(q,K){A3(q,K,(_)=>({..._,status:"completed",endTime:Date.now(),notified:!0,abortController:void 0}))}function GjK(q,K){A3(q,K,(_)=>({..._,status:"failed",endTime:Date.now(),notified:!0,abortController:void 0}))}var e8Y=30,jm8;var Hm8=y(()=>{wm8();GN();J0();jm8={name:"DreamTask",type:"dream",async kill(q,K){let _;if(A3(q,K,(z)=>{if(z.status!=="running")return z;return z.abortController?.abort(),_=z.priorMtime,{...z,status:"killed",endTime:Date.now(),notified:!0,abortController:void 0}}),_!==void 0)await Om8(_)}}});function K1Y(){let q=[Mm8,Jm8,AL6,jm8];if(TjK)q.push(TjK);if(vjK)q.push(vjK);return q}function kjK(q){return K1Y().find((K)=>K.type===q)}var TjK=null,vjK=null;var VjK=y(()=>{Hm8();gP();vK6();PK6()});async function Pm8(q,K){let{getAppState:_,setAppState:z}=K,$=_().tasks?.[q];if(!$)throw new Xm8(`No task found with ID: ${q}`,"not_found");if($.status!=="running")throw new Xm8(`Task ${q} is not running (status: ${$.status})`,"not_running");let A=kjK($.type);if(!A)throw new Xm8(`Unsupported task type: ${$.type}`,"unsupported_type");if(await A.kill(q,z),sv($)){let w=!1;if(z((j)=>{let H=j.tasks[q];if(!H||H.notified)return j;return w=!0,{...j,tasks:{...j.tasks,[q]:{...H,notified:!0}}}}),w)ZN(q,"stopped",{toolUseId:$.toolUseId,summary:$.description})}let O=sv($)?$.command:$.description;return{taskId:q,taskType:$.type,command:O}}var Xm8;var Te1=y(()=>{VjK();pC();Xm8=class Xm8 extends Error{code;constructor(q,K){super(q);this.code=K;this.name="StopTaskError"}}});function EjK(){return""}function _1Y(q){let K=q.split(` |
| 3136 | `),_=q;if(K.length>NjK)_=K.slice(0,NjK).join(` |
| 3137 | `);if(O1(_)>yjK)_=H96(_,yjK);return _.trim()}function LjK(q,K,{verbose:_}){let z=q.command??"",Y=_?z:_1Y(z);return ve1.default.createElement(s8,null,ve1.default.createElement(k,null,Y,Y!==z?"… · stopped":" · stopped"))}var ve1,NjK=2,yjK=160;var RjK=y(()=>{gK();Q5();s6();U7();ve1=O6(D6(),1)});var z1Y,Y1Y,Wm8;var ke1=y(()=>{x7();Bq();Te1();l8();RjK();z1Y=B6(()=>L.strictObject({task_id:L.string().optional().describe("The ID of the background task to stop"),shell_id:L.string().optional().describe("Deprecated: use task_id instead")})),Y1Y=B6(()=>L.object({message:L.string().describe("Status message about the operation"),task_id:L.string().describe("The ID of the task that was stopped"),task_type:L.string().describe("The type of the task that was stopped"),command:L.string().optional().describe("The command or description of the stopped task")})),Wm8=sq({name:zI,searchHint:"kill a running background task",aliases:["KillShell"],maxResultSizeChars:1e5,userFacingName:()=>"Stop Task",get inputSchema(){return z1Y()},get outputSchema(){return Y1Y()},shouldDefer:!0,isConcurrencySafe(){return!0},toAutoClassifierInput(q){return q.task_id??q.shell_id??""},async validateInput({task_id:q,shell_id:K},{getAppState:_}){let z=q??K;if(!z)return{result:!1,message:"Missing required parameter: task_id",errorCode:1};let $=_().tasks?.[z];if(!$)return{result:!1,message:`No task found with ID: ${z}`,errorCode:1};if($.status!=="running")return{result:!1,message:`Task ${z} is not running (status: ${$.status})`,errorCode:3};return{result:!0}},async description(){return"Stop a running background task by ID"},async prompt(){return _S7},mapToolResultToToolResultBlockParam(q,K){return{tool_use_id:K,type:"tool_result",content:g6(q)}},renderToolUseMessage:EjK,renderToolResultMessage:LjK,async call({task_id:q,shell_id:K},{getAppState:_,setAppState:z,abortController:Y}){let $=q??K;if(!$)throw Error("Missing required parameter: task_id");let A=await Pm8($,{getAppState:_,setAppState:z});return{data:{message:`Successfully stopped task: ${A.taskId} (${A.command})`,task_id:A.taskId,task_type:A.taskType,command:A.command}}}})});var Ve1={};T8(Ve1,{getBridgeTokenOverride:()=>DR6,getBridgeBaseUrlOverride:()=>xK6,getBridgeBaseUrl:()=>E88,getBridgeAccessToken:()=>Ay});function DR6(){return}function xK6(){return}function Ay(){return DR6()??Kq()?.accessToken}function E88(){return xK6()??u7().BASE_API_URL}var Ea=y(()=>{H3();G7()});var SjK={};T8(SjK,{uploadBriefAttachment:()=>P1Y});import{randomUUID as $1Y}from"crypto";import{readFile as A1Y}from"fs/promises";import{basename as O1Y,extname as w1Y}from"path";function J1Y(q){let K=w1Y(q).toLowerCase();return H1Y[K]??"application/octet-stream"}function qH6(q){N(`[brief:upload] ${q}`)}function M1Y(){return xK6()??process.env.ANTHROPIC_BASE_URL??u7().BASE_API_URL}async function P1Y(q,K,_){{if(!_.replBridgeEnabled)return;if(K>hjK){qH6(`skip ${q}: ${K} bytes exceeds ${hjK} limit`);return}let z=Ay();if(!z){qH6("skip: no oauth token");return}let Y;try{Y=await A1Y(q)}catch(J){qH6(`read failed for ${q}: ${J}`);return}let A=`${M1Y()}/api/oauth/file_upload`,O=O1Y(q),w=J1Y(O),j=`----FormBoundary${$1Y()}`,H=Buffer.concat([Buffer.from(`--${j}\r |
| 3138 | Content-Disposition: form-data; name="file"; filename="${O}"\r |
| 3139 | Content-Type: ${w}\r |
| 3140 | \r |
| 3141 | `),Y,Buffer.from(`\r |
| 3142 | --${j}--\r |
| 3143 | `)]);try{let J=await $1.post(A,H,{headers:{Authorization:`Bearer ${z}`,"Content-Type":`multipart/form-data; boundary=${j}`,"Content-Length":H.length.toString()},timeout:j1Y,signal:_.signal,validateStatus:()=>!0});if(J.status!==201){qH6(`upload failed for ${q}: status=${J.status} body=${g6(J.data).slice(0,200)}`);return}let M=X1Y().safeParse(J.data);if(!M.success){qH6(`unexpected response shape for ${q}: ${M.error.message}`);return}return qH6(`uploaded ${q} → ${M.data.file_uuid} (${K} bytes)`),M.data.file_uuid}catch(J){qH6(`upload threw for ${q}: ${J}`);return}}return}var hjK=31457280,j1Y=30000,H1Y,X1Y;var CjK=y(()=>{CK();x7();Ea();H3();_8();l8();H1Y={".png":"image/png",".jpg":"image/jpeg",".jpeg":"image/jpeg",".gif":"image/gif",".webp":"image/webp"};X1Y=B6(()=>L.object({file_uuid:L.string()}))});import{stat as bjK}from"fs/promises";async function xjK(q){let K=Z8();for(let _ of q){let z=lq(_);try{if(!(await bjK(z)).isFile())return{result:!1,message:`Attachment "${_}" is not a regular file.`,errorCode:1}}catch(Y){let $=s1(Y);if($==="ENOENT")return{result:!1,message:`Attachment "${_}" does not exist. Current working directory: ${K}.`,errorCode:1};if($==="EACCES"||$==="EPERM")return{result:!1,message:`Attachment "${_}" is not accessible (permission denied).`,errorCode:1};throw Y}}return{result:!0}}async function IjK(q,K){let _=[];for(let z of q){let Y=lq(z),$=await bjK(Y);_.push({path:Y,size:$.size,isImage:lE8.test(Y)})}{let z=K.replBridgeEnabled||i6(process.env.CLAUDE_CODE_BRIEF_UPLOAD),{uploadBriefAttachment:Y}=await Promise.resolve().then(() => (CjK(),SjK)),$=await Promise.all(_.map((A)=>Y(A.path,A.size,{replBridgeEnabled:z,signal:K.signal})));return _.map((A,O)=>$[O]===void 0?A:{...A,file_uuid:$[O]})}return _}var ujK=y(()=>{I7();m8();y8();hN6();dz()});function mjK(){return""}function pjK(q,K,_){let z=(q.attachments?.length??0)>0;if(!q.message&&!z)return null;if(_?.isTranscriptMode)return dj.default.createElement(u,{flexDirection:"row",marginTop:1},dj.default.createElement(u,{minWidth:2},dj.default.createElement(k,{color:"text"},A_)),dj.default.createElement(u,{flexDirection:"column"},q.message?dj.default.createElement(AO,null,q.message):null,dj.default.createElement(Ne1,{attachments:q.attachments})));if(_?.isBriefOnly){let Y=q.sentAt?mb8(q.sentAt):"";return dj.default.createElement(u,{flexDirection:"column",marginTop:1,paddingLeft:2},dj.default.createElement(u,{flexDirection:"row"},dj.default.createElement(k,{color:"briefLabelClaude"},"Claude"),Y?dj.default.createElement(k,{dimColor:!0}," ",Y):null),dj.default.createElement(u,{flexDirection:"column"},q.message?dj.default.createElement(AO,null,q.message):null,dj.default.createElement(Ne1,{attachments:q.attachments})))}return dj.default.createElement(u,{flexDirection:"row",marginTop:1},dj.default.createElement(u,{minWidth:2}),dj.default.createElement(u,{flexDirection:"column"},q.message?dj.default.createElement(AO,null,q.message):null,dj.default.createElement(Ne1,{attachments:q.attachments})))}function Ne1(q){let K=z6(4),{attachments:_}=q;if(!_||_.length===0)return null;let z;if(K[0]!==_)z=_.map(W1Y),K[0]=_,K[1]=z;else z=K[1];let Y;if(K[2]!==z)Y=dj.default.createElement(u,{flexDirection:"column",marginTop:1},z),K[2]=z,K[3]=Y;else Y=K[3];return Y}function W1Y(q){return dj.default.createElement(u,{key:q.path,flexDirection:"row"},dj.default.createElement(k,{dimColor:!0},t6.pointerSmall," ",q.isImage?"[image]":"[file]"," "),dj.default.createElement(k,null,_3(q.path)),dj.default.createElement(k,{dimColor:!0}," (",m4(q.size),")"))}var dj;var BjK=y(()=>{q8();bq();xN();zz();s6();bK();U7();dj=O6(D6(),1)});var IK6={};T8(IK6,{isBriefEntitled:()=>Dm8,isBriefEnabled:()=>gjK,BriefTool:()=>Ee1});function Dm8(){return xk()||i6(process.env.CLAUDE_CODE_BRIEF)||gV("tengu_kairos_brief",!1,Z1Y)}function gjK(){return(xk()||sy())&&Dm8()}var D1Y,f1Y,Z1Y=300000,Ee1;var dQ=y(()=>{x7();v8();o1();k8();Bq();m8();ujK();YI();BjK();D1Y=B6(()=>L.strictObject({message:L.string().describe("The message for the user. Supports markdown formatting."),attachments:L.array(L.string()).optional().describe("Optional file paths (absolute or relative to cwd) to attach. Use for photos, screenshots, diffs, logs, or any file the user should see alongside your message."),status:L.enum(["normal","proactive"]).describe("Use 'proactive' when you're surfacing something the user hasn't asked for and needs to see now — task completion while they're away, a blocker you hit, an unsolicited status update. Use 'normal' when replying to something the user just said.")})),f1Y=B6(()=>L.object({message:L.string().describe("The message"),attachments:L.array(L.object({path:L.string(),size:L.number(),isImage:L.boolean(),file_uuid:L.string().optional()})).optional().describe("Resolved attachment metadata"),sentAt:L.string().optional().describe("ISO timestamp captured at tool execution on the emitting process. Optional — resumed sessions replay pre-sentAt outputs verbatim.")}));Ee1=sq({name:wD6,aliases:[jK1],searchHint:"send a message to the user — your primary visible output channel",maxResultSizeChars:1e5,userFacingName(){return""},get inputSchema(){return D1Y()},get outputSchema(){return f1Y()},isEnabled(){return gjK()},isConcurrencySafe(){return!0},isReadOnly(){return!0},toAutoClassifierInput(q){return q.message},async validateInput({attachments:q},K){if(!q||q.length===0)return{result:!0};return xjK(q)},async description(){return HK1},async prompt(){return JK1},mapToolResultToToolResultBlockParam(q,K){let _=q.attachments?.length??0,z=_===0?"":` (${_} ${A7(_,"attachment")} included)`;return{tool_use_id:K,type:"tool_result",content:`Message delivered to user.${z}`}},renderToolUseMessage:mjK,renderToolResultMessage:pjK,async call({message:q,attachments:K,status:_},z){let Y=new Date().toISOString();if(d("tengu_brief_send",{proactive:_==="proactive",attachment_count:K?.length??0}),!K||K.length===0)return{data:{message:q,sentAt:Y}};let $=z.getAppState(),A=await IjK(K,{replBridgeEnabled:$.replBridgeEnabled,signal:z.abortController.signal});return{data:{message:q,attachments:A,sentAt:Y}}}})});function G1Y(){return GK6("TASK_MAX_OUTPUT_LENGTH",process.env.TASK_MAX_OUTPUT_LENGTH,Re1,Le1).effective}function FjK(q,K){let _=G1Y();if(q.length<=_)return{content:q,wasTruncated:!1};let Y=`[Truncated. Full output: ${sz(K)}] |
| 3144 | |
| 3145 | `,$=_-Y.length,A=q.slice(-$);return{content:Y+A,wasTruncated:!0}}var Le1=160000,Re1=32000;var he1=y(()=>{u68();Ij()});async function fm8(q){let K;if(q.type==="local_bash"){let Y=q.shellCommand?.taskOutput;if(Y){let $=await Y.getStdout(),A=Y.getStderr();K=[$,A].filter(Boolean).join(` |