@duckmind/dm-darwin-x64 0.49.0 → 0.49.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (40) hide show
  1. package/dm +0 -0
  2. package/extensions/.dm-extensions.json +14 -4
  3. package/extensions/dm-subagents/.m/artifacts/shell/shell_output_1783845384621_9cf9262bf674.txt +1336 -0
  4. package/extensions/dm-subagents/.m/artifacts/shell/shell_output_1783846154938_6a41cefee0bf.txt +1336 -0
  5. package/extensions/dm-subagents/src/extension/doctor.js +10 -10
  6. package/extensions/dm-subagents/src/extension/fanout-child.js +97 -97
  7. package/extensions/dm-subagents/src/extension/index.js +121 -121
  8. package/extensions/dm-subagents/src/extension/rpc.js +5 -5
  9. package/extensions/dm-subagents/src/extension/schemas.js +1 -1
  10. package/extensions/dm-subagents/src/extension/tool-description.js +2 -2
  11. package/extensions/dm-subagents/src/intercom/native-supervisor-channel.js +5 -5
  12. package/extensions/dm-subagents/src/runs/background/async-execution.js +19 -19
  13. package/extensions/dm-subagents/src/runs/background/async-job-tracker.js +9 -9
  14. package/extensions/dm-subagents/src/runs/background/async-resume.js +5 -5
  15. package/extensions/dm-subagents/src/runs/background/async-status.js +8 -8
  16. package/extensions/dm-subagents/src/runs/background/fleet-view.js +13 -13
  17. package/extensions/dm-subagents/src/runs/background/result-watcher.js +5 -5
  18. package/extensions/dm-subagents/src/runs/background/run-id-resolver.js +3 -3
  19. package/extensions/dm-subagents/src/runs/background/run-status.js +19 -19
  20. package/extensions/dm-subagents/src/runs/background/stale-run-reconciler.js +7 -7
  21. package/extensions/dm-subagents/src/runs/background/subagent-runner.js +35 -35
  22. package/extensions/dm-subagents/src/runs/background/wait.js +7 -7
  23. package/extensions/dm-subagents/src/runs/foreground/chain-execution.js +32 -32
  24. package/extensions/dm-subagents/src/runs/foreground/execution.js +26 -26
  25. package/extensions/dm-subagents/src/runs/foreground/subagent-executor.js +96 -96
  26. package/extensions/dm-subagents/src/runs/shared/dm-args.js +1 -1
  27. package/extensions/dm-subagents/src/runs/shared/nested-events.js +6 -6
  28. package/extensions/dm-subagents/src/runs/shared/subagent-prompt-runtime.js +13 -13
  29. package/extensions/dm-subagents/src/shared/fork-context.js +4 -4
  30. package/package.json +1 -1
  31. package/extensions/dm-caveman/LICENSE +0 -21
  32. package/extensions/dm-cli-anything/LICENSE +0 -201
  33. package/extensions/dm-goal/LICENSE +0 -21
  34. package/extensions/dm-grill-me/LICENSE +0 -21
  35. package/extensions/dm-subagents/banner.png +0 -0
  36. package/extensions/dm-tasks/LICENSE +0 -21
  37. package/extensions/dm-usage/LICENSE +0 -21
  38. package/extensions/dm-usage/insights-screenshot.png +0 -0
  39. package/extensions/dm-usage/screenshot.png +0 -0
  40. package/extensions/greedysearch-dm/LICENSE +0 -21
@@ -1,23 +1,23 @@
1
- import*as n from"node:fs";import*as qf from"node:path";import*as Af from"node:fs";import*as N from"node:path";import*as x from"node:fs";import*as jf from"node:path";var $f=new Map;function yf(f){return f instanceof Error?f.message:String(f)}function X$(f){return typeof f==="object"&&f!==null&&"code"in f&&f.code==="ENOENT"}function Hf(f){let $=jf.join(f,"status.json"),j;try{j=x.statSync($)}catch(A){if(X$(A))return null;throw Error(`Failed to inspect async status file '${$}': ${yf(A)}`,{cause:A instanceof Error?A:void 0})}let J=$f.get($);if(J&&J.mtime===j.mtimeMs)return J.status;let Q;try{Q=x.readFileSync($,"utf-8")}catch(A){if(X$(A))return null;throw Error(`Failed to read async status file '${$}': ${yf(A)}`,{cause:A instanceof Error?A:void 0})}let Z;try{Z=JSON.parse(Q)}catch(A){throw Error(`Failed to parse async status file '${$}': ${yf(A)}`,{cause:A instanceof Error?A:void 0})}if($f.set($,{mtime:j.mtimeMs,status:Z}),$f.size>50){let A=$f.keys().next().value;if(A)$f.delete(A)}return Z}import*as p from"node:os";import*as r from"node:path";function Kf(f){return f.trim().replace(/[^A-Za-z0-9._-]+/g,"-").replace(/^-+|-+$/g,"")||"unknown"}function A0(f){let $=f?.env??process.env,j=f&&Object.hasOwn(f,"getuid")?f.getuid:process.getuid?.bind(process);if(typeof j==="function")return`uid-${j()}`;for(let A of["USERNAME","USER","LOGNAME"]){let X=$[A];if(X)return`user-${Kf(X)}`}let J=f&&Object.hasOwn(f,"userInfo")?f.userInfo:p.userInfo;try{let A=J?.().username;if(A)return`user-${Kf(A)}`}catch{}let Q=$.USERPROFILE??$.HOME;if(Q)return`home-${Kf(Q)}`;let Z=f&&Object.hasOwn(f,"homedir")?f.homedir:p.homedir;try{let A=Z?.();if(A)return`home-${Kf(A)}`}catch{}return"shared"}var P=r.join(p.tmpdir(),`dm-subagents-${A0()}`),w=r.join(P,"async-subagent-results"),v=r.join(P,"async-subagent-runs"),B0=r.join(P,"chain-runs"),Ej=r.join(P,"artifacts");var Ef=["off","minimal","low","medium","high","xhigh"];function H$(f){let $=f.lastIndexOf(":");if($===-1)return{baseModel:f,thinkingSuffix:""};let j=Ef.find((J)=>J===f.substring($+1));if(!j)return{baseModel:f,thinkingSuffix:""};return{baseModel:f.substring(0,$),thinkingSuffix:`:${j}`}}function a(f){return f<1000?String(f):f<1e4?`${(f/1000).toFixed(1)}k`:`${Math.round(f/1000)}k`}function o(f,$){let j=f?H$(f):void 0,J=j?.baseModel??f,Q=Ef.find((A)=>A===$?.trim()),Z=j?.thinkingSuffix?j.thinkingSuffix.slice(1):Q;if(J){let A=J.lastIndexOf("/");if(A!==-1)J=J.slice(A+1)}return[J,Z?`thinking ${Z}`:void 0].filter(Boolean).join(" · ")}function d(f){if(f<1000)return`${f}ms`;if(f<60000)return`${(f/1000).toFixed(1)}s`;return`${Math.floor(f/60000)}m${Math.floor(f%60000/1000)}s`}function _(f){let $=process.env.HOME;if($&&f.startsWith($))return`~${f.slice($.length)}`;return f}function X0(f){if(f<1000)return"now";if(f<60000)return`${Math.floor(f/1000)}s`;return`${Math.floor(f/60000)}m`}function k(f,$,j=Date.now()){if(f===void 0){if($==="needs_attention")return"needs attention";if($==="active_long_running")return"active but long-running";return}let J=X0(Math.max(0,j-f));if($==="needs_attention")return`no activity for ${J}`;if($==="active_long_running")return`active but long-running · last activity ${J} ago`;return J==="now"?"active now":`active ${J} ago`}function Y0(f){return f==="complete"||f==="completed"}function H0(f){return f===1?"1 agent running":`${f} agents running`}function gf(f,$,j={}){let J=f.filter((Y)=>Y.status==="running").length,Q=f.filter((Y)=>Y0(Y.status)).length,Z=f.filter((Y)=>Y.status==="failed").length,A=f.filter((Y)=>Y.status==="paused").length,X=[`${Q}/${$} done`];if(j.showRunning!==!1&&J>0)X.unshift(H0(J));if(Z>0)X.push(`${Z} failed`);if(A>0)X.push(`${A} paused`);return X.join(" · ")}import{randomUUID as C0}from"node:crypto";import*as F from"node:fs";import*as G from"node:path";import*as L$ from"node:path";var K0=128,W0=4;function Nf(f){return typeof f==="string"&&f.length>0&&f.length<=K0&&!L$.isAbsolute(f)&&!f.includes("/")&&!f.includes("\\")&&!f.includes("..")}function K$(f){return typeof f==="number"&&Number.isFinite(f)?f:void 0}function W$(f,$){return typeof f==="string"&&f.length>0?f.slice(0,$):void 0}function O$(f){if(!Array.isArray(f))return[];return f.map(($)=>{if(!$||typeof $!=="object")return;let j=$;if(!Nf(j.runId))return;return{runId:j.runId,...K$(j.stepIndex)!==void 0?{stepIndex:K$(j.stepIndex)}:{},...W$(j.agent,128)?{agent:W$(j.agent,128)}:{}}}).filter(($)=>Boolean($)).slice(0,W0)}import*as s from"node:path";import{fileURLToPath as U$}from"node:url";import*as I from"node:os";import*as c from"node:path";var uj=c.join(I.homedir(),".config","mcp","mcp.json"),lj={cursor:[c.join(I.homedir(),".cursor","mcp.json")],"claude-code":[c.join(I.homedir(),".claude","mcp.json"),c.join(I.homedir(),".claude.json"),c.join(I.homedir(),".claude","claude_desktop_config.json")],"claude-desktop":[c.join(I.homedir(),"Library","Application Support","Claude","claude_desktop_config.json")],codex:[c.join(I.homedir(),".codex","config.json")],windsurf:[c.join(I.homedir(),".windsurf","mcp.json")],vscode:[".vscode/mcp.json"]};import{Compile as rj}from"typebox/compile";var H1=s.join(s.dirname(U$(import.meta.url)),"subagent-prompt-runtime.ts"),K1=s.join(s.dirname(U$(import.meta.url)),"..","..","extension","fanout-child.ts");import*as O0 from"node:fs";import*as u from"node:path";var U0=[10,25,50,100,200,500,1000,2000,4000],G0=new Set(["EACCES","EBUSY","EPERM"]),G$=typeof SharedArrayBuffer<"u"?new SharedArrayBuffer(4):void 0,M$=G$?new Int32Array(G$):void 0;function M0(f){if(f<=0)return;if(M$)try{Atomics.wait(M$,0,0,f);return}catch{}let $=Date.now()+f;while(Date.now()<$);}function V0(f){let $=f?.code;return typeof $==="string"&&G0.has($)}function z0(f,$,j,J,Q){for(let Z=0;;Z++)try{f.renameSync($,j);return}catch(A){let X=J[Z];if(X===void 0||!V0(A))throw A;Q(X)}}function T0(f={}){let $=f.fs??O0,j=f.now??Date.now,J=f.pid??process.pid,Q=f.random??Math.random,A=f.retryRenameErrors??process.platform==="win32"?f.retryDelaysMs??U0:[],X=f.wait??M0;return(Y,K)=>{$.mkdirSync(u.dirname(Y),{recursive:!0});let B=u.join(u.dirname(Y),`.${u.basename(Y)}.${J}.${j()}.${Q().toString(36).slice(2)}.tmp`);try{$.writeFileSync(B,JSON.stringify(K,null,2),"utf-8"),z0($,B,Y,A,X)}finally{$.rmSync(B,{force:!0})}}}var l=T0();var h=G.join(P,"nested-subagent-events"),nf="route.json",F0="registry.json",Df=65536,xf=12,Jf=16,Rf=3;function Lf(f){return Nf(f)}function If(f,$){if(!Lf($))throw Error(`${f} must be a non-empty safe id token.`)}function Of(f,$){If(f,$)}function wf(f,$){let j=G.resolve(f),J=G.resolve($);return J===j||J.startsWith(`${j}${G.sep}`)}function z$(f){return G.dirname(G.resolve(f.eventSink))}function e(f){if(Of("rootRunId",f.rootRunId),Of("capabilityToken",f.capabilityToken),!wf(h,f.eventSink))throw Error("Nested event sink is outside the subagent nested event root.");if(!wf(h,f.controlInbox))throw Error("Nested control inbox is outside the subagent nested event root.");if(z$(f)!==G.dirname(G.resolve(f.controlInbox)))throw Error("Nested event sink and control inbox must share one route root.")}function T$(f,$){if(!$.asyncDir)return;let j=G.resolve($.asyncDir),J=G.resolve(P,"nested-subagent-runs",f,$.id),Q=G.relative(J,j);return j===J||!Q.startsWith("..")&&!G.isAbsolute(Q)?j:void 0}function L(f){return typeof f==="number"&&Number.isFinite(f)?f:void 0}function U(f,$=512){return typeof f==="string"&&f.length>0?f.slice(0,$):void 0}function b0(f){if(!f||typeof f!=="object")return;let $=f,j=L($.input),J=L($.output),Q=L($.total);return j!==void 0&&J!==void 0&&Q!==void 0?{input:j,output:J,total:Q}:void 0}function S0(f){if(!f||typeof f!=="object")return;let $=f,j=L($.inputTokens),J=L($.outputTokens),Q=L($.costUsd);return j!==void 0&&J!==void 0&&Q!==void 0?{inputTokens:j,outputTokens:J,costUsd:Q}:void 0}function Uf(f){if(!f||typeof f!=="object")return;let $=f,j=L($.maxTurns),J=L($.graceTurns),Q=L($.turnCount),Z=$.outcome==="within-budget"||$.outcome==="wrap-up-requested"||$.outcome==="exceeded"?$.outcome:void 0;if(j===void 0||J===void 0||Q===void 0||!Z)return;return{maxTurns:j,graceTurns:J,turnCount:Q,outcome:Z,...L($.wrapUpRequestedAtTurn)!==void 0?{wrapUpRequestedAtTurn:L($.wrapUpRequestedAtTurn)}:{},...L($.exceededAtTurn)!==void 0?{exceededAtTurn:L($.exceededAtTurn)}:{}}}function q0(f,$){return f==="queued"||f==="running"||f==="complete"||f==="failed"||f==="paused"?f:$}function _0(f,$){if(!f||typeof f!=="object")return;let j=f,J=U(j.agent,128);if(!J)return;let Q=j.status==="pending"||j.status==="running"||j.status==="complete"||j.status==="completed"||j.status==="failed"||j.status==="paused"?j.status:"pending";return{agent:J,status:Q,...U(j.sessionFile,2048)?{sessionFile:U(j.sessionFile,2048)}:{},...j.activityState==="active_long_running"||j.activityState==="needs_attention"?{activityState:j.activityState}:{},...L(j.lastActivityAt)!==void 0?{lastActivityAt:L(j.lastActivityAt)}:{},...U(j.currentTool,128)?{currentTool:U(j.currentTool,128)}:{},...L(j.currentToolStartedAt)!==void 0?{currentToolStartedAt:L(j.currentToolStartedAt)}:{},...U(j.currentPath,2048)?{currentPath:U(j.currentPath,2048)}:{},...L(j.turnCount)!==void 0?{turnCount:L(j.turnCount)}:{},...L(j.toolCount)!==void 0?{toolCount:L(j.toolCount)}:{},...L(j.startedAt)!==void 0?{startedAt:L(j.startedAt)}:{},...L(j.endedAt)!==void 0?{endedAt:L(j.endedAt)}:{},...U(j.error,1024)?{error:U(j.error,1024)}:{},...j.timedOut===!0?{timedOut:!0}:{},...Uf(j.turnBudget)?{turnBudget:Uf(j.turnBudget)}:{},...j.turnBudgetExceeded===!0?{turnBudgetExceeded:!0}:{},...j.wrapUpRequested===!0?{wrapUpRequested:!0}:{},...$<Rf&&Array.isArray(j.children)?{children:j.children.map((Z)=>Mf(Z,$+1)).filter((Z)=>Boolean(Z)).slice(0,Jf)}:{}}}function Mf(f,$=0){if(!f||typeof f!=="object")return;let j=f;if(!Lf(j.id)||!Lf(j.parentRunId))return;let J=O$(j.path),Q=Array.isArray(j.steps)?j.steps.map((X)=>_0(X,$+1)).filter((X)=>Boolean(X)).slice(0,xf):void 0,Z=b0(j.totalTokens),A=S0(j.totalCost);return{id:j.id,parentRunId:j.parentRunId,...L(j.parentStepIndex)!==void 0?{parentStepIndex:L(j.parentStepIndex)}:{},...U(j.parentAgent,128)?{parentAgent:U(j.parentAgent,128)}:{},depth:Math.min(Math.max(0,L(j.depth)??0),Rf),path:J,state:q0(j.state,"running"),...U(j.asyncDir,2048)?{asyncDir:U(j.asyncDir,2048)}:{},...L(j.pid)!==void 0&&L(j.pid)>0&&Number.isInteger(L(j.pid))?{pid:L(j.pid)}:{},...U(j.sessionId,256)?{sessionId:U(j.sessionId,256)}:{},...U(j.sessionFile,2048)?{sessionFile:U(j.sessionFile,2048)}:{},...U(j.intercomTarget,256)?{intercomTarget:U(j.intercomTarget,256)}:{},...U(j.ownerIntercomTarget,256)?{ownerIntercomTarget:U(j.ownerIntercomTarget,256)}:{},...U(j.leafIntercomTarget,256)?{leafIntercomTarget:U(j.leafIntercomTarget,256)}:{},...j.ownerState==="live"||j.ownerState==="gone"||j.ownerState==="unknown"?{ownerState:j.ownerState}:{},...U(j.controlInbox,2048)?{controlInbox:U(j.controlInbox,2048)}:{},...U(j.capabilityToken,128)?{capabilityToken:U(j.capabilityToken,128)}:{},...j.mode==="single"||j.mode==="parallel"||j.mode==="chain"?{mode:j.mode}:{},...U(j.agent,128)?{agent:U(j.agent,128)}:{},...Array.isArray(j.agents)?{agents:j.agents.map((X)=>U(X,128)).filter((X)=>Boolean(X)).slice(0,xf)}:{},...L(j.currentStep)!==void 0?{currentStep:L(j.currentStep)}:{},...L(j.chainStepCount)!==void 0?{chainStepCount:L(j.chainStepCount)}:{},...j.activityState==="active_long_running"||j.activityState==="needs_attention"?{activityState:j.activityState}:{},...L(j.lastActivityAt)!==void 0?{lastActivityAt:L(j.lastActivityAt)}:{},...U(j.currentTool,128)?{currentTool:U(j.currentTool,128)}:{},...L(j.currentToolStartedAt)!==void 0?{currentToolStartedAt:L(j.currentToolStartedAt)}:{},...U(j.currentPath,2048)?{currentPath:U(j.currentPath,2048)}:{},...L(j.turnCount)!==void 0?{turnCount:L(j.turnCount)}:{},...L(j.toolCount)!==void 0?{toolCount:L(j.toolCount)}:{},...Z?{totalTokens:Z}:{},...A?{totalCost:A}:{},...L(j.startedAt)!==void 0?{startedAt:L(j.startedAt)}:{},...L(j.endedAt)!==void 0?{endedAt:L(j.endedAt)}:{},...L(j.lastUpdate)!==void 0?{lastUpdate:L(j.lastUpdate)}:{},...L(j.timeoutMs)!==void 0?{timeoutMs:L(j.timeoutMs)}:{},...L(j.deadlineAt)!==void 0?{deadlineAt:L(j.deadlineAt)}:{},...j.timedOut===!0?{timedOut:!0}:{},...Uf(j.turnBudget)?{turnBudget:Uf(j.turnBudget)}:{},...j.turnBudgetExceeded===!0?{turnBudgetExceeded:!0}:{},...j.wrapUpRequested===!0?{wrapUpRequested:!0}:{},...U(j.error,1024)?{error:U(j.error,1024)}:{},...Q&&Q.length>0?{steps:Q}:{},...$<Rf&&Array.isArray(j.children)?{children:j.children.map((X)=>Mf(X,$+1)).filter((X)=>Boolean(X)).slice(0,Jf)}:{}}}function kf(f,$){if(Buffer.byteLength(f,"utf-8")>Df)return;let j;try{j=JSON.parse(f)}catch{return}if(!j||typeof j!=="object")return;let J=j;if(J.type!=="subagent.nested.started"&&J.type!=="subagent.nested.updated"&&J.type!=="subagent.nested.completed")return;if(J.rootRunId!==$.rootRunId||J.capabilityToken!==$.capabilityToken)return;if(!Lf(J.parentRunId))return;let Q=L(J.ts);if(Q===void 0)return;let Z=Mf(J.child);if(!Z||Z.id===$.rootRunId)return;let A={...Z,controlInbox:$.controlInbox,capabilityToken:$.capabilityToken,ownerState:Z.ownerState??"unknown"};return{type:J.type,ts:Q,rootRunId:$.rootRunId,parentRunId:J.parentRunId,...L(J.parentStepIndex)!==void 0?{parentStepIndex:L(J.parentStepIndex)}:{},capabilityToken:$.capabilityToken,child:A}}function y0(f,$){if(!f.includes(`
2
- `)){let j=kf(f.trim(),$);return j?[j]:[]}return f.split(`
1
+ import*as I from"node:fs";import*as _f from"node:path";import*as Bf from"node:fs";import*as N from"node:path";import*as R from"node:fs";import*as Jf from"node:path";var jf=new Map;function Ef(f){return f instanceof Error?f.message:String(f)}function Y$(f){return typeof f==="object"&&f!==null&&"code"in f&&f.code==="ENOENT"}function Kf(f){let $=Jf.join(f,"status.json"),j;try{j=R.statSync($)}catch(A){if(Y$(A))return null;throw Error(`Failed to inspect async status file '${$}': ${Ef(A)}`,{cause:A instanceof Error?A:void 0})}let J=jf.get($);if(J&&J.mtime===j.mtimeMs)return J.status;let Q;try{Q=R.readFileSync($,"utf-8")}catch(A){if(Y$(A))return null;throw Error(`Failed to read async status file '${$}': ${Ef(A)}`,{cause:A instanceof Error?A:void 0})}let Z;try{Z=JSON.parse(Q)}catch(A){throw Error(`Failed to parse async status file '${$}': ${Ef(A)}`,{cause:A instanceof Error?A:void 0})}if(jf.set($,{mtime:j.mtimeMs,status:Z}),jf.size>50){let A=jf.keys().next().value;if(A)jf.delete(A)}return Z}import*as r from"node:os";import*as a from"node:path";function Wf(f){return f.trim().replace(/[^A-Za-z0-9._-]+/g,"-").replace(/^-+|-+$/g,"")||"unknown"}function B0(f){let $=f?.env??process.env,j=f&&Object.hasOwn(f,"getuid")?f.getuid:process.getuid?.bind(process);if(typeof j==="function")return`uid-${j()}`;for(let A of["USERNAME","USER","LOGNAME"]){let X=$[A];if(X)return`user-${Wf(X)}`}let J=f&&Object.hasOwn(f,"userInfo")?f.userInfo:r.userInfo;try{let A=J?.().username;if(A)return`user-${Wf(A)}`}catch{}let Q=$.USERPROFILE??$.HOME;if(Q)return`home-${Wf(Q)}`;let Z=f&&Object.hasOwn(f,"homedir")?f.homedir:r.homedir;try{let A=Z?.();if(A)return`home-${Wf(A)}`}catch{}return"shared"}var v=a.join(r.tmpdir(),`dm-subagents-${B0()}`),w=a.join(v,"async-subagent-results"),h=a.join(v,"async-subagent-runs"),X0=a.join(v,"chain-runs"),Nj=a.join(v,"artifacts");var gf=["off","minimal","low","medium","high","xhigh"];function K$(f){let $=f.lastIndexOf(":");if($===-1)return{baseModel:f,thinkingSuffix:""};let j=gf.find((J)=>J===f.substring($+1));if(!j)return{baseModel:f,thinkingSuffix:""};return{baseModel:f.substring(0,$),thinkingSuffix:`:${j}`}}function s(f){return f<1000?String(f):f<1e4?`${(f/1000).toFixed(1)}k`:`${Math.round(f/1000)}k`}function d(f,$){let j=f?K$(f):void 0,J=j?.baseModel??f,Q=gf.find((A)=>A===$?.trim()),Z=j?.thinkingSuffix?j.thinkingSuffix.slice(1):Q;if(J){let A=J.lastIndexOf("/");if(A!==-1)J=J.slice(A+1)}return[J,Z?`thinking ${Z}`:void 0].filter(Boolean).join(" · ")}function u(f){if(f<1000)return`${f}ms`;if(f<60000)return`${(f/1000).toFixed(1)}s`;return`${Math.floor(f/60000)}m${Math.floor(f%60000/1000)}s`}function _(f){let $=process.env.HOME;if($&&f.startsWith($))return`~${f.slice($.length)}`;return f}function Y0(f){if(f<1000)return"now";if(f<60000)return`${Math.floor(f/1000)}s`;return`${Math.floor(f/60000)}m`}function k(f,$,j=Date.now()){if(f===void 0){if($==="needs_attention")return"needs attention";if($==="active_long_running")return"active but long-running";return}let J=Y0(Math.max(0,j-f));if($==="needs_attention")return`no activity for ${J}`;if($==="active_long_running")return`active but long-running · last activity ${J} ago`;return J==="now"?"active now":`active ${J} ago`}function H0(f){return f==="complete"||f==="completed"}function K0(f){return f===1?"1 agent running":`${f} agents running`}function Nf(f,$,j={}){let J=f.filter((Y)=>Y.status==="running").length,Q=f.filter((Y)=>H0(Y.status)).length,Z=f.filter((Y)=>Y.status==="failed").length,A=f.filter((Y)=>Y.status==="paused").length,X=[`${Q}/${$} done`];if(j.showRunning!==!1&&J>0)X.unshift(K0(J));if(Z>0)X.push(`${Z} failed`);if(A>0)X.push(`${A} paused`);return X.join(" · ")}import{randomUUID as b0}from"node:crypto";import*as F from"node:fs";import*as G from"node:path";import*as O$ from"node:path";var W0=128,L0=4;function Rf(f){return typeof f==="string"&&f.length>0&&f.length<=W0&&!O$.isAbsolute(f)&&!f.includes("/")&&!f.includes("\\")&&!f.includes("..")}function W$(f){return typeof f==="number"&&Number.isFinite(f)?f:void 0}function L$(f,$){return typeof f==="string"&&f.length>0?f.slice(0,$):void 0}function U$(f){if(!Array.isArray(f))return[];return f.map(($)=>{if(!$||typeof $!=="object")return;let j=$;if(!Rf(j.runId))return;return{runId:j.runId,...W$(j.stepIndex)!==void 0?{stepIndex:W$(j.stepIndex)}:{},...L$(j.agent,128)?{agent:L$(j.agent,128)}:{}}}).filter(($)=>Boolean($)).slice(0,L0)}import*as e from"node:fs";import*as D from"node:path";import{fileURLToPath as U0}from"node:url";import*as m from"node:os";import*as c from"node:path";var ij=c.join(m.homedir(),".config","mcp","mcp.json"),pj={cursor:[c.join(m.homedir(),".cursor","mcp.json")],"claude-code":[c.join(m.homedir(),".claude","mcp.json"),c.join(m.homedir(),".claude.json"),c.join(m.homedir(),".claude","claude_desktop_config.json")],"claude-desktop":[c.join(m.homedir(),"Library","Application Support","Claude","claude_desktop_config.json")],codex:[c.join(m.homedir(),".codex","config.json")],windsurf:[c.join(m.homedir(),".windsurf","mcp.json")],vscode:[".vscode/mcp.json"]};import{Compile as sj}from"typebox/compile";function G$(f,$){let j=U0(f),J=D.extname(j),Q=[".js",".mjs",".cjs",".ts",".mts",".cts"].includes(J)?J:".ts",Z=D.dirname(j);while(!e.existsSync(D.join(Z,"package.json"))){let A=D.dirname(Z);if(A===Z)throw Error(`Unable to resolve dm-subagents package root from ${j}`);Z=A}return D.join(Z,`${$}${Q}`)}var W1=G$(import.meta.url,D.join("src","runs","shared","subagent-prompt-runtime")),L1=G$(import.meta.url,D.join("src","extension","fanout-child"));import*as G0 from"node:fs";import*as l from"node:path";var M0=[10,25,50,100,200,500,1000,2000,4000],V0=new Set(["EACCES","EBUSY","EPERM"]),M$=typeof SharedArrayBuffer<"u"?new SharedArrayBuffer(4):void 0,V$=M$?new Int32Array(M$):void 0;function z0(f){if(f<=0)return;if(V$)try{Atomics.wait(V$,0,0,f);return}catch{}let $=Date.now()+f;while(Date.now()<$);}function T0(f){let $=f?.code;return typeof $==="string"&&V0.has($)}function C0(f,$,j,J,Q){for(let Z=0;;Z++)try{f.renameSync($,j);return}catch(A){let X=J[Z];if(X===void 0||!T0(A))throw A;Q(X)}}function F0(f={}){let $=f.fs??G0,j=f.now??Date.now,J=f.pid??process.pid,Q=f.random??Math.random,A=f.retryRenameErrors??process.platform==="win32"?f.retryDelaysMs??M0:[],X=f.wait??z0;return(Y,K)=>{$.mkdirSync(l.dirname(Y),{recursive:!0});let B=l.join(l.dirname(Y),`.${l.basename(Y)}.${J}.${j()}.${Q().toString(36).slice(2)}.tmp`);try{$.writeFileSync(B,JSON.stringify(K,null,2),"utf-8"),C0($,B,Y,A,X)}finally{$.rmSync(B,{force:!0})}}}var i=F0();var o=G.join(v,"nested-subagent-events"),If="route.json",S0="registry.json",nf=65536,xf=12,Zf=16,wf=3;function Of(f){return Rf(f)}function mf(f,$){if(!Of($))throw Error(`${f} must be a non-empty safe id token.`)}function Uf(f,$){mf(f,$)}function kf(f,$){let j=G.resolve(f),J=G.resolve($);return J===j||J.startsWith(`${j}${G.sep}`)}function T$(f){return G.dirname(G.resolve(f.eventSink))}function t(f){if(Uf("rootRunId",f.rootRunId),Uf("capabilityToken",f.capabilityToken),!kf(o,f.eventSink))throw Error("Nested event sink is outside the subagent nested event root.");if(!kf(o,f.controlInbox))throw Error("Nested control inbox is outside the subagent nested event root.");if(T$(f)!==G.dirname(G.resolve(f.controlInbox)))throw Error("Nested event sink and control inbox must share one route root.")}function C$(f,$){if(!$.asyncDir)return;let j=G.resolve($.asyncDir),J=G.resolve(v,"nested-subagent-runs",f,$.id),Q=G.relative(J,j);return j===J||!Q.startsWith("..")&&!G.isAbsolute(Q)?j:void 0}function L(f){return typeof f==="number"&&Number.isFinite(f)?f:void 0}function U(f,$=512){return typeof f==="string"&&f.length>0?f.slice(0,$):void 0}function q0(f){if(!f||typeof f!=="object")return;let $=f,j=L($.input),J=L($.output),Q=L($.total);return j!==void 0&&J!==void 0&&Q!==void 0?{input:j,output:J,total:Q}:void 0}function _0(f){if(!f||typeof f!=="object")return;let $=f,j=L($.inputTokens),J=L($.outputTokens),Q=L($.costUsd);return j!==void 0&&J!==void 0&&Q!==void 0?{inputTokens:j,outputTokens:J,costUsd:Q}:void 0}function Gf(f){if(!f||typeof f!=="object")return;let $=f,j=L($.maxTurns),J=L($.graceTurns),Q=L($.turnCount),Z=$.outcome==="within-budget"||$.outcome==="wrap-up-requested"||$.outcome==="exceeded"?$.outcome:void 0;if(j===void 0||J===void 0||Q===void 0||!Z)return;return{maxTurns:j,graceTurns:J,turnCount:Q,outcome:Z,...L($.wrapUpRequestedAtTurn)!==void 0?{wrapUpRequestedAtTurn:L($.wrapUpRequestedAtTurn)}:{},...L($.exceededAtTurn)!==void 0?{exceededAtTurn:L($.exceededAtTurn)}:{}}}function y0(f,$){return f==="queued"||f==="running"||f==="complete"||f==="failed"||f==="paused"?f:$}function E0(f,$){if(!f||typeof f!=="object")return;let j=f,J=U(j.agent,128);if(!J)return;let Q=j.status==="pending"||j.status==="running"||j.status==="complete"||j.status==="completed"||j.status==="failed"||j.status==="paused"?j.status:"pending";return{agent:J,status:Q,...U(j.sessionFile,2048)?{sessionFile:U(j.sessionFile,2048)}:{},...j.activityState==="active_long_running"||j.activityState==="needs_attention"?{activityState:j.activityState}:{},...L(j.lastActivityAt)!==void 0?{lastActivityAt:L(j.lastActivityAt)}:{},...U(j.currentTool,128)?{currentTool:U(j.currentTool,128)}:{},...L(j.currentToolStartedAt)!==void 0?{currentToolStartedAt:L(j.currentToolStartedAt)}:{},...U(j.currentPath,2048)?{currentPath:U(j.currentPath,2048)}:{},...L(j.turnCount)!==void 0?{turnCount:L(j.turnCount)}:{},...L(j.toolCount)!==void 0?{toolCount:L(j.toolCount)}:{},...L(j.startedAt)!==void 0?{startedAt:L(j.startedAt)}:{},...L(j.endedAt)!==void 0?{endedAt:L(j.endedAt)}:{},...U(j.error,1024)?{error:U(j.error,1024)}:{},...j.timedOut===!0?{timedOut:!0}:{},...Gf(j.turnBudget)?{turnBudget:Gf(j.turnBudget)}:{},...j.turnBudgetExceeded===!0?{turnBudgetExceeded:!0}:{},...j.wrapUpRequested===!0?{wrapUpRequested:!0}:{},...$<wf&&Array.isArray(j.children)?{children:j.children.map((Z)=>Vf(Z,$+1)).filter((Z)=>Boolean(Z)).slice(0,Zf)}:{}}}function Vf(f,$=0){if(!f||typeof f!=="object")return;let j=f;if(!Of(j.id)||!Of(j.parentRunId))return;let J=U$(j.path),Q=Array.isArray(j.steps)?j.steps.map((X)=>E0(X,$+1)).filter((X)=>Boolean(X)).slice(0,xf):void 0,Z=q0(j.totalTokens),A=_0(j.totalCost);return{id:j.id,parentRunId:j.parentRunId,...L(j.parentStepIndex)!==void 0?{parentStepIndex:L(j.parentStepIndex)}:{},...U(j.parentAgent,128)?{parentAgent:U(j.parentAgent,128)}:{},depth:Math.min(Math.max(0,L(j.depth)??0),wf),path:J,state:y0(j.state,"running"),...U(j.asyncDir,2048)?{asyncDir:U(j.asyncDir,2048)}:{},...L(j.pid)!==void 0&&L(j.pid)>0&&Number.isInteger(L(j.pid))?{pid:L(j.pid)}:{},...U(j.sessionId,256)?{sessionId:U(j.sessionId,256)}:{},...U(j.sessionFile,2048)?{sessionFile:U(j.sessionFile,2048)}:{},...U(j.intercomTarget,256)?{intercomTarget:U(j.intercomTarget,256)}:{},...U(j.ownerIntercomTarget,256)?{ownerIntercomTarget:U(j.ownerIntercomTarget,256)}:{},...U(j.leafIntercomTarget,256)?{leafIntercomTarget:U(j.leafIntercomTarget,256)}:{},...j.ownerState==="live"||j.ownerState==="gone"||j.ownerState==="unknown"?{ownerState:j.ownerState}:{},...U(j.controlInbox,2048)?{controlInbox:U(j.controlInbox,2048)}:{},...U(j.capabilityToken,128)?{capabilityToken:U(j.capabilityToken,128)}:{},...j.mode==="single"||j.mode==="parallel"||j.mode==="chain"?{mode:j.mode}:{},...U(j.agent,128)?{agent:U(j.agent,128)}:{},...Array.isArray(j.agents)?{agents:j.agents.map((X)=>U(X,128)).filter((X)=>Boolean(X)).slice(0,xf)}:{},...L(j.currentStep)!==void 0?{currentStep:L(j.currentStep)}:{},...L(j.chainStepCount)!==void 0?{chainStepCount:L(j.chainStepCount)}:{},...j.activityState==="active_long_running"||j.activityState==="needs_attention"?{activityState:j.activityState}:{},...L(j.lastActivityAt)!==void 0?{lastActivityAt:L(j.lastActivityAt)}:{},...U(j.currentTool,128)?{currentTool:U(j.currentTool,128)}:{},...L(j.currentToolStartedAt)!==void 0?{currentToolStartedAt:L(j.currentToolStartedAt)}:{},...U(j.currentPath,2048)?{currentPath:U(j.currentPath,2048)}:{},...L(j.turnCount)!==void 0?{turnCount:L(j.turnCount)}:{},...L(j.toolCount)!==void 0?{toolCount:L(j.toolCount)}:{},...Z?{totalTokens:Z}:{},...A?{totalCost:A}:{},...L(j.startedAt)!==void 0?{startedAt:L(j.startedAt)}:{},...L(j.endedAt)!==void 0?{endedAt:L(j.endedAt)}:{},...L(j.lastUpdate)!==void 0?{lastUpdate:L(j.lastUpdate)}:{},...L(j.timeoutMs)!==void 0?{timeoutMs:L(j.timeoutMs)}:{},...L(j.deadlineAt)!==void 0?{deadlineAt:L(j.deadlineAt)}:{},...j.timedOut===!0?{timedOut:!0}:{},...Gf(j.turnBudget)?{turnBudget:Gf(j.turnBudget)}:{},...j.turnBudgetExceeded===!0?{turnBudgetExceeded:!0}:{},...j.wrapUpRequested===!0?{wrapUpRequested:!0}:{},...U(j.error,1024)?{error:U(j.error,1024)}:{},...Q&&Q.length>0?{steps:Q}:{},...$<wf&&Array.isArray(j.children)?{children:j.children.map((X)=>Vf(X,$+1)).filter((X)=>Boolean(X)).slice(0,Zf)}:{}}}function cf(f,$){if(Buffer.byteLength(f,"utf-8")>nf)return;let j;try{j=JSON.parse(f)}catch{return}if(!j||typeof j!=="object")return;let J=j;if(J.type!=="subagent.nested.started"&&J.type!=="subagent.nested.updated"&&J.type!=="subagent.nested.completed")return;if(J.rootRunId!==$.rootRunId||J.capabilityToken!==$.capabilityToken)return;if(!Of(J.parentRunId))return;let Q=L(J.ts);if(Q===void 0)return;let Z=Vf(J.child);if(!Z||Z.id===$.rootRunId)return;let A={...Z,controlInbox:$.controlInbox,capabilityToken:$.capabilityToken,ownerState:Z.ownerState??"unknown"};return{type:J.type,ts:Q,rootRunId:$.rootRunId,parentRunId:J.parentRunId,...L(J.parentStepIndex)!==void 0?{parentStepIndex:L(J.parentStepIndex)}:{},capabilityToken:$.capabilityToken,child:A}}function g0(f,$){if(!f.includes(`
2
+ `)){let j=cf(f.trim(),$);return j?[j]:[]}return f.split(`
3
3
  `).slice(0,f.endsWith(`
4
- `)?void 0:-1).map((j)=>j.trim()?kf(j,$):void 0).filter((j)=>Boolean(j))}function Wf(f){return f==="complete"||f==="failed"||f==="paused"}function V$(f,$){let j=$.type==="subagent.nested.completed"&&$.child.state==="running"?"complete":$.child.state,J={...$.child,state:j,lastUpdate:$.child.lastUpdate??$.ts};if(!f)return J;let Q=f.lastUpdate??0,Z=J.lastUpdate??$.ts;if(Z<Q)return f;if(Wf(f.state)&&!Wf(J.state))return f;if(Wf(f.state)&&Wf(J.state)&&Z===Q)return f;return{...f,...J,state:J.state,lastUpdate:Math.max(Q,Z)}}function E0(f,$){let j=!1,J=(X)=>X.map((Y)=>{if(Y.id===$.parentRunId){let B=Y.children??[],H=B.findIndex((V)=>V.id===$.child.id),O=V$(H>=0?B[H]:void 0,$),W=H>=0?B.map((V,C)=>C===H?O:V):[...B,O];return j=!0,{...Y,children:W.slice(0,Jf),lastUpdate:Math.max(Y.lastUpdate??0,$.ts)}}if(!Y.children?.length)return Y;let K=J(Y.children);return K===Y.children?Y:{...Y,children:K}}),Q=J(f);if(j)return Q;let Z=Q.findIndex((X)=>X.id===$.child.id),A=V$(Z>=0?Q[Z]:void 0,$);return Z>=0?Q.map((X,Y)=>Y===Z?A:X):[...Q,A].slice(0,Jf)}function g0(f,$){return{...f,updatedAt:Math.max(f.updatedAt,$.ts),children:E0(f.children,$)}}function C$(f){return G.join(z$(f),F0)}function mf(f){Of("rootRunId",f);let $;try{$=F.readdirSync(h)}catch(j){if(j.code==="ENOENT")return;throw j}for(let j of $){if(!j.startsWith(`${f}-`))continue;let J=G.join(h,j);try{let Q=JSON.parse(F.readFileSync(G.join(J,nf),"utf-8"));if(Q.rootRunId!==f||typeof Q.capabilityToken!=="string")continue;let Z={rootRunId:f,eventSink:G.join(J,"events"),controlInbox:G.join(J,"controls"),capabilityToken:Q.capabilityToken};return e(Z),Z}catch{continue}}return}function F$(){let f;try{f=F.readdirSync(h)}catch(j){if(j.code==="ENOENT")return new Map;throw j}let $=new Map;for(let j of f){let J=G.join(h,j);try{let Q=JSON.parse(F.readFileSync(G.join(J,nf),"utf-8"));if(typeof Q.rootRunId!=="string"||typeof Q.capabilityToken!=="string")continue;if($.has(Q.rootRunId))continue;let Z={rootRunId:Q.rootRunId,eventSink:G.join(J,"events"),controlInbox:G.join(J,"controls"),capabilityToken:Q.capabilityToken};e(Z),$.set(Q.rootRunId,Z)}catch{continue}}return $}function b$(f){let $=mf(f);return $?t($):void 0}function Gf(f,$=[]){for(let j of f??[])$.push(j),Gf(j.children,$),Gf(j.steps?.flatMap((J)=>J.children??[]),$);return $}function cf(f,$,j=[]){if(!$)return Gf(f,j);for(let J of f??[]){if(J.parentRunId===$.parentRunId&&($.parentStepIndex===void 0||J.parentStepIndex===$.parentStepIndex)){Gf([J],j);continue}cf(J.children,$,j),cf(J.steps?.flatMap((Q)=>Q.children??[]),$,j)}return j}function N0(){let f;try{f=F.readdirSync(h)}catch(j){if(j.code==="ENOENT")return[];throw j}let $=[];for(let j of f){let J=G.join(h,j);try{let Q=JSON.parse(F.readFileSync(G.join(J,nf),"utf-8"));if(typeof Q.rootRunId!=="string"||typeof Q.capabilityToken!=="string")continue;let Z={rootRunId:Q.rootRunId,eventSink:G.join(J,"events"),controlInbox:G.join(J,"controls"),capabilityToken:Q.capabilityToken};e(Z),$.push(Z)}catch{continue}}return $}function Pf(f,$={}){Of("id",f);let j=[];for(let J of $.scope?.routes??N0())try{let Q=t(J);for(let Z of cf(Q.children,$.scope?.descendantOf))if($.prefix?Z.id.startsWith(f):Z.id===f)j.push({rootRunId:J.rootRunId,route:J,run:Z})}catch{continue}return j}function x0(f){e(f);try{let $=JSON.parse(F.readFileSync(C$(f),"utf-8"));return{rootRunId:f.rootRunId,updatedAt:typeof $.updatedAt==="number"?$.updatedAt:0,children:Array.isArray($.children)?$.children.map((j)=>Mf(j)).filter((j)=>Boolean(j)):[],processedEvents:Array.isArray($.processedEvents)?$.processedEvents.filter((j)=>typeof j==="string"):[]}}catch($){if($.code!=="ENOENT")throw $;return{rootRunId:f.rootRunId,updatedAt:0,children:[],processedEvents:[]}}}function t(f){e(f);let $=x0(f),j=new Set($.processedEvents),J=!1,Q=[];try{Q=F.readdirSync(f.eventSink).filter((Z)=>Z.endsWith(".json")||Z.endsWith(".jsonl")).sort()}catch(Z){if(Z.code!=="ENOENT")throw Z}for(let Z of Q){if(j.has(Z))continue;let A=G.join(f.eventSink,Z);if(!wf(f.eventSink,A))continue;let X;try{let Y=F.statSync(A);if(!Y.isFile()||Y.size>Df)continue;X=F.readFileSync(A,"utf-8")}catch{continue}for(let Y of y0(X,f))$=g0($,Y),J=!0;j.add(Z),J=!0}if(J)$={...$,processedEvents:[...j].slice(-1000)},l(C$(f),$);return $}function R0(f,$,j){let J=`${JSON.stringify(j)}
5
- `;if(Buffer.byteLength(J,"utf-8")>Df)throw Error("Nested route record exceeds the maximum size.");F.mkdirSync(f,{recursive:!0,mode:448});let Q=`${String($).padStart(13,"0")}-${C0()}.json`,Z=G.join(f,`.${Q}.tmp`),A=G.join(f,Q);return F.writeFileSync(Z,J,{mode:384}),F.renameSync(Z,A),A}function S$(f,$){e(f);let j={...$,rootRunId:f.rootRunId,capabilityToken:f.capabilityToken},J=kf(JSON.stringify(j),f);if(!J)throw Error("Nested event record failed validation.");R0(f.eventSink,J.ts,J)}function Vf(f,$,j){if(!$?.length)return;for(let J of $)J.children=void 0;if(!j?.length)return;for(let J of j){if(J.parentRunId!==f||J.parentStepIndex===void 0)continue;let Q=$.find((Z,A)=>(Z.index??A)===J.parentStepIndex);if(!Q)continue;Q.children??=[],Q.children=[...Q.children.filter((Z)=>Z.id!==J.id),J].slice(0,Jf)}}function q$(f,$,j){return{id:f.runId||j.id,parentRunId:j.parentRunId,...j.parentStepIndex!==void 0?{parentStepIndex:j.parentStepIndex}:{},depth:j.depth,path:j.path??[{runId:j.parentRunId,...j.parentStepIndex!==void 0?{stepIndex:j.parentStepIndex}:{}}],asyncDir:$,...f.pid?{pid:f.pid}:{},...f.sessionId?{sessionId:f.sessionId}:{},mode:f.mode??j.mode,state:f.state,...f.currentStep!==void 0?{currentStep:f.currentStep}:{},...f.chainStepCount!==void 0?{chainStepCount:f.chainStepCount}:{},...f.activityState?{activityState:f.activityState}:{},...f.lastActivityAt!==void 0?{lastActivityAt:f.lastActivityAt}:{},...f.currentTool?{currentTool:f.currentTool}:{},...f.currentToolStartedAt!==void 0?{currentToolStartedAt:f.currentToolStartedAt}:{},...f.currentPath?{currentPath:f.currentPath}:{},...f.turnCount!==void 0?{turnCount:f.turnCount}:{},...f.toolCount!==void 0?{toolCount:f.toolCount}:{},...f.totalTokens?{totalTokens:f.totalTokens}:{},...f.timeoutMs!==void 0?{timeoutMs:f.timeoutMs}:{},...f.deadlineAt!==void 0?{deadlineAt:f.deadlineAt}:{},...f.timedOut!==void 0?{timedOut:f.timedOut}:{},...f.turnBudget?{turnBudget:f.turnBudget}:{},...f.turnBudgetExceeded!==void 0?{turnBudgetExceeded:f.turnBudgetExceeded}:{},...f.wrapUpRequested!==void 0?{wrapUpRequested:f.wrapUpRequested}:{},...f.error?{error:f.error}:{},...f.startedAt!==void 0?{startedAt:f.startedAt}:{startedAt:j.ts},...f.endedAt!==void 0?{endedAt:f.endedAt}:{},lastUpdate:f.lastUpdate??j.ts,...f.sessionFile?{sessionFile:f.sessionFile}:{},...f.steps?.length?{steps:f.steps.map((J)=>({agent:J.agent,status:J.status,...J.sessionFile?{sessionFile:J.sessionFile}:{},...J.activityState?{activityState:J.activityState}:{},...J.lastActivityAt!==void 0?{lastActivityAt:J.lastActivityAt}:{},...J.currentTool?{currentTool:J.currentTool}:{},...J.currentToolStartedAt!==void 0?{currentToolStartedAt:J.currentToolStartedAt}:{},...J.currentPath?{currentPath:J.currentPath}:{},...J.turnCount!==void 0?{turnCount:J.turnCount}:{},...J.toolCount!==void 0?{toolCount:J.toolCount}:{},...J.startedAt!==void 0?{startedAt:J.startedAt}:{},...J.endedAt!==void 0?{endedAt:J.endedAt}:{},...J.error?{error:J.error}:{},...J.timedOut!==void 0?{timedOut:J.timedOut}:{},...J.turnBudget?{turnBudget:J.turnBudget}:{},...J.turnBudgetExceeded!==void 0?{turnBudgetExceeded:J.turnBudgetExceeded}:{},...J.wrapUpRequested!==void 0?{wrapUpRequested:J.wrapUpRequested}:{}})).slice(0,xf)}:{}}}function y$(f){let $={total:0,running:0,paused:0,complete:0,failed:0,queued:0};for(let j of f??[]){$.total++,$[j.state]++;let J=y$([...j.children??[],...j.steps?.flatMap((Q)=>Q.children??[])??[]]);$.total+=J.total,$.running+=J.running,$.paused+=J.paused,$.complete+=J.complete,$.failed+=J.failed,$.queued+=J.queued}return $}function vf(f){let $=y$(f);if($.total===0)return;let j=[$.running>0?`${$.running} running`:"",$.paused>0?`${$.paused} paused`:"",$.failed>0?`${$.failed} failed`:"",$.complete>0?`${$.complete} complete`:"",$.queued>0?`${$.queued} queued`:""].filter(Boolean);return`+${$.total} nested run${$.total===1?"":"s"}${j.length?` (${j.join(", ")})`:""}`}function w0(f){if(f.agent)return f.agent;if(f.agents?.length)return f.agents.length===1?f.agents[0]:`${f.agents.slice(0,2).join(", ")}${f.agents.length>2?` +${f.agents.length-2}`:""}`;return f.id}function _$(f){let $=[];if(f.currentTool&&f.currentToolStartedAt!==void 0)$.push(`tool ${f.currentTool} ${d(Math.max(0,Date.now()-f.currentToolStartedAt))}`);else if(f.currentTool)$.push(`tool ${f.currentTool}`);if(f.currentPath)$.push(_(f.currentPath));if(f.turnCount!==void 0)$.push(`${f.turnCount} turns`);if(f.toolCount!==void 0)$.push(`${f.toolCount} tools`);if(f.totalTokens)$.push(`${a(f.totalTokens.total)} tok`);let j=k(f.lastActivityAt,f.activityState);return j||$.length?[j,...$].filter(Boolean).join(" | "):void 0}function k0(f,$){let j=[],J=(Q,Z,A)=>{if(!Q?.length||j.length>=$.maxLines)return;if(Z>$.maxDepth){let X=vf(Q);if(X&&j.length<$.maxLines)j.push(`${A}↳ ${X}`);return}for(let X=0;X<Q.length;X++){let Y=Q[X];if(j.length>=$.maxLines){let H=vf(Q.slice(X));if(H)j[j.length-1]=`${A}↳ ${H}`;return}let K=Y.state==="running"?_$(Y):void 0,B=Y.error?` | error: ${Y.error}`:"";if(j.push(`${A}↳ ${w0(Y)} [${Y.id}] ${Y.state}${K?` | ${K}`:""}${B}`),$.commandHints&&j.length<$.maxLines)j.push(`${A} Status: subagent({ action: "status", id: "${Y.id}" })`);if(Z===$.maxDepth){let H=vf([...Y.steps?.flatMap((O)=>O.children??[])??[],...Y.children??[]]);if(H&&j.length<$.maxLines)j.push(`${A} ↳ ${H}`);continue}for(let[H,O]of(Y.steps??[]).entries()){if(j.length>=$.maxLines)return;let W=O.status==="running"?_$(O):void 0;j.push(`${A} ${H+1}. ${O.agent} ${O.status}${W?` | ${W}`:""}${O.error?` | error: ${O.error}`:""}`),J(O.children,Z+1,`${A} `)}J(Y.children,Z+1,`${A} `)}};return J(f,0,$.indent),j}function R(f,$={}){return k0(f,{indent:$.indent??" ",maxDepth:$.maxDepth??2,maxLines:$.maxLines??40,commandHints:$.commandHints??!1})}function c0(f,$,j){if(typeof f!=="object"||f===null)return!1;let{start:J,count:Q,stepIndex:Z}=f;return typeof J==="number"&&typeof Q==="number"&&typeof Z==="number"&&Number.isInteger(J)&&Number.isInteger(Q)&&Number.isInteger(Z)&&J>=0&&Q>0&&Z>=0&&Z<j&&J+Q<=$}function i(f,$,j){if(!Array.isArray(f))return[];return f.filter((J)=>c0(J,$,j)).sort((J,Q)=>J.stepIndex-Q.stepIndex||J.start-Q.start)}function zf(f,$,j){let J=0,Q=0;for(let Z of j){while(Q<Z.start&&J<$){if(Q===f)return J;Q++,J++}if(f>=Z.start&&f<Z.start+Z.count)return Z.stepIndex;Q=Z.start+Z.count,J=Z.stepIndex+1}while(Q<=f&&J<$){if(Q===f)return J;Q++,J++}return Math.max(0,$-1)}import*as q from"node:fs";import*as E from"node:path";function hf(f){return f instanceof Error?f.message:String(f)}function n0(f){let $=E.join(f,"runner.stderr.log"),j=65536,J;try{let Z=q.statSync($);if(Z.size<=0)return;let A=q.openSync($,"r");try{let X=Math.min(Z.size,65536),Y=Math.max(0,Z.size-X),K=Buffer.alloc(X);q.readSync(A,K,0,X,Y),J=K.toString("utf-8").trim()}finally{q.closeSync(A)}}catch{return}if(!J)return;let Q=J.split(/\r?\n/).slice(-30).join(`
4
+ `)?void 0:-1).map((j)=>j.trim()?cf(j,$):void 0).filter((j)=>Boolean(j))}function Lf(f){return f==="complete"||f==="failed"||f==="paused"}function z$(f,$){let j=$.type==="subagent.nested.completed"&&$.child.state==="running"?"complete":$.child.state,J={...$.child,state:j,lastUpdate:$.child.lastUpdate??$.ts};if(!f)return J;let Q=f.lastUpdate??0,Z=J.lastUpdate??$.ts;if(Z<Q)return f;if(Lf(f.state)&&!Lf(J.state))return f;if(Lf(f.state)&&Lf(J.state)&&Z===Q)return f;return{...f,...J,state:J.state,lastUpdate:Math.max(Q,Z)}}function N0(f,$){let j=!1,J=(X)=>X.map((Y)=>{if(Y.id===$.parentRunId){let B=Y.children??[],H=B.findIndex((V)=>V.id===$.child.id),O=z$(H>=0?B[H]:void 0,$),W=H>=0?B.map((V,C)=>C===H?O:V):[...B,O];return j=!0,{...Y,children:W.slice(0,Zf),lastUpdate:Math.max(Y.lastUpdate??0,$.ts)}}if(!Y.children?.length)return Y;let K=J(Y.children);return K===Y.children?Y:{...Y,children:K}}),Q=J(f);if(j)return Q;let Z=Q.findIndex((X)=>X.id===$.child.id),A=z$(Z>=0?Q[Z]:void 0,$);return Z>=0?Q.map((X,Y)=>Y===Z?A:X):[...Q,A].slice(0,Zf)}function R0(f,$){return{...f,updatedAt:Math.max(f.updatedAt,$.ts),children:N0(f.children,$)}}function F$(f){return G.join(T$(f),S0)}function Pf(f){Uf("rootRunId",f);let $;try{$=F.readdirSync(o)}catch(j){if(j.code==="ENOENT")return;throw j}for(let j of $){if(!j.startsWith(`${f}-`))continue;let J=G.join(o,j);try{let Q=JSON.parse(F.readFileSync(G.join(J,If),"utf-8"));if(Q.rootRunId!==f||typeof Q.capabilityToken!=="string")continue;let Z={rootRunId:f,eventSink:G.join(J,"events"),controlInbox:G.join(J,"controls"),capabilityToken:Q.capabilityToken};return t(Z),Z}catch{continue}}return}function b$(){let f;try{f=F.readdirSync(o)}catch(j){if(j.code==="ENOENT")return new Map;throw j}let $=new Map;for(let j of f){let J=G.join(o,j);try{let Q=JSON.parse(F.readFileSync(G.join(J,If),"utf-8"));if(typeof Q.rootRunId!=="string"||typeof Q.capabilityToken!=="string")continue;if($.has(Q.rootRunId))continue;let Z={rootRunId:Q.rootRunId,eventSink:G.join(J,"events"),controlInbox:G.join(J,"controls"),capabilityToken:Q.capabilityToken};t(Z),$.set(Q.rootRunId,Z)}catch{continue}}return $}function S$(f){let $=Pf(f);return $?ff($):void 0}function Mf(f,$=[]){for(let j of f??[])$.push(j),Mf(j.children,$),Mf(j.steps?.flatMap((J)=>J.children??[]),$);return $}function Df(f,$,j=[]){if(!$)return Mf(f,j);for(let J of f??[]){if(J.parentRunId===$.parentRunId&&($.parentStepIndex===void 0||J.parentStepIndex===$.parentStepIndex)){Mf([J],j);continue}Df(J.children,$,j),Df(J.steps?.flatMap((Q)=>Q.children??[]),$,j)}return j}function x0(){let f;try{f=F.readdirSync(o)}catch(j){if(j.code==="ENOENT")return[];throw j}let $=[];for(let j of f){let J=G.join(o,j);try{let Q=JSON.parse(F.readFileSync(G.join(J,If),"utf-8"));if(typeof Q.rootRunId!=="string"||typeof Q.capabilityToken!=="string")continue;let Z={rootRunId:Q.rootRunId,eventSink:G.join(J,"events"),controlInbox:G.join(J,"controls"),capabilityToken:Q.capabilityToken};t(Z),$.push(Z)}catch{continue}}return $}function vf(f,$={}){Uf("id",f);let j=[];for(let J of $.scope?.routes??x0())try{let Q=ff(J);for(let Z of Df(Q.children,$.scope?.descendantOf))if($.prefix?Z.id.startsWith(f):Z.id===f)j.push({rootRunId:J.rootRunId,route:J,run:Z})}catch{continue}return j}function w0(f){t(f);try{let $=JSON.parse(F.readFileSync(F$(f),"utf-8"));return{rootRunId:f.rootRunId,updatedAt:typeof $.updatedAt==="number"?$.updatedAt:0,children:Array.isArray($.children)?$.children.map((j)=>Vf(j)).filter((j)=>Boolean(j)):[],processedEvents:Array.isArray($.processedEvents)?$.processedEvents.filter((j)=>typeof j==="string"):[]}}catch($){if($.code!=="ENOENT")throw $;return{rootRunId:f.rootRunId,updatedAt:0,children:[],processedEvents:[]}}}function ff(f){t(f);let $=w0(f),j=new Set($.processedEvents),J=!1,Q=[];try{Q=F.readdirSync(f.eventSink).filter((Z)=>Z.endsWith(".json")||Z.endsWith(".jsonl")).sort()}catch(Z){if(Z.code!=="ENOENT")throw Z}for(let Z of Q){if(j.has(Z))continue;let A=G.join(f.eventSink,Z);if(!kf(f.eventSink,A))continue;let X;try{let Y=F.statSync(A);if(!Y.isFile()||Y.size>nf)continue;X=F.readFileSync(A,"utf-8")}catch{continue}for(let Y of g0(X,f))$=R0($,Y),J=!0;j.add(Z),J=!0}if(J)$={...$,processedEvents:[...j].slice(-1000)},i(F$(f),$);return $}function k0(f,$,j){let J=`${JSON.stringify(j)}
5
+ `;if(Buffer.byteLength(J,"utf-8")>nf)throw Error("Nested route record exceeds the maximum size.");F.mkdirSync(f,{recursive:!0,mode:448});let Q=`${String($).padStart(13,"0")}-${b0()}.json`,Z=G.join(f,`.${Q}.tmp`),A=G.join(f,Q);return F.writeFileSync(Z,J,{mode:384}),F.renameSync(Z,A),A}function q$(f,$){t(f);let j={...$,rootRunId:f.rootRunId,capabilityToken:f.capabilityToken},J=cf(JSON.stringify(j),f);if(!J)throw Error("Nested event record failed validation.");k0(f.eventSink,J.ts,J)}function zf(f,$,j){if(!$?.length)return;for(let J of $)J.children=void 0;if(!j?.length)return;for(let J of j){if(J.parentRunId!==f||J.parentStepIndex===void 0)continue;let Q=$.find((Z,A)=>(Z.index??A)===J.parentStepIndex);if(!Q)continue;Q.children??=[],Q.children=[...Q.children.filter((Z)=>Z.id!==J.id),J].slice(0,Zf)}}function _$(f,$,j){return{id:f.runId||j.id,parentRunId:j.parentRunId,...j.parentStepIndex!==void 0?{parentStepIndex:j.parentStepIndex}:{},depth:j.depth,path:j.path??[{runId:j.parentRunId,...j.parentStepIndex!==void 0?{stepIndex:j.parentStepIndex}:{}}],asyncDir:$,...f.pid?{pid:f.pid}:{},...f.sessionId?{sessionId:f.sessionId}:{},mode:f.mode??j.mode,state:f.state,...f.currentStep!==void 0?{currentStep:f.currentStep}:{},...f.chainStepCount!==void 0?{chainStepCount:f.chainStepCount}:{},...f.activityState?{activityState:f.activityState}:{},...f.lastActivityAt!==void 0?{lastActivityAt:f.lastActivityAt}:{},...f.currentTool?{currentTool:f.currentTool}:{},...f.currentToolStartedAt!==void 0?{currentToolStartedAt:f.currentToolStartedAt}:{},...f.currentPath?{currentPath:f.currentPath}:{},...f.turnCount!==void 0?{turnCount:f.turnCount}:{},...f.toolCount!==void 0?{toolCount:f.toolCount}:{},...f.totalTokens?{totalTokens:f.totalTokens}:{},...f.timeoutMs!==void 0?{timeoutMs:f.timeoutMs}:{},...f.deadlineAt!==void 0?{deadlineAt:f.deadlineAt}:{},...f.timedOut!==void 0?{timedOut:f.timedOut}:{},...f.turnBudget?{turnBudget:f.turnBudget}:{},...f.turnBudgetExceeded!==void 0?{turnBudgetExceeded:f.turnBudgetExceeded}:{},...f.wrapUpRequested!==void 0?{wrapUpRequested:f.wrapUpRequested}:{},...f.error?{error:f.error}:{},...f.startedAt!==void 0?{startedAt:f.startedAt}:{startedAt:j.ts},...f.endedAt!==void 0?{endedAt:f.endedAt}:{},lastUpdate:f.lastUpdate??j.ts,...f.sessionFile?{sessionFile:f.sessionFile}:{},...f.steps?.length?{steps:f.steps.map((J)=>({agent:J.agent,status:J.status,...J.sessionFile?{sessionFile:J.sessionFile}:{},...J.activityState?{activityState:J.activityState}:{},...J.lastActivityAt!==void 0?{lastActivityAt:J.lastActivityAt}:{},...J.currentTool?{currentTool:J.currentTool}:{},...J.currentToolStartedAt!==void 0?{currentToolStartedAt:J.currentToolStartedAt}:{},...J.currentPath?{currentPath:J.currentPath}:{},...J.turnCount!==void 0?{turnCount:J.turnCount}:{},...J.toolCount!==void 0?{toolCount:J.toolCount}:{},...J.startedAt!==void 0?{startedAt:J.startedAt}:{},...J.endedAt!==void 0?{endedAt:J.endedAt}:{},...J.error?{error:J.error}:{},...J.timedOut!==void 0?{timedOut:J.timedOut}:{},...J.turnBudget?{turnBudget:J.turnBudget}:{},...J.turnBudgetExceeded!==void 0?{turnBudgetExceeded:J.turnBudgetExceeded}:{},...J.wrapUpRequested!==void 0?{wrapUpRequested:J.wrapUpRequested}:{}})).slice(0,xf)}:{}}}function E$(f){let $={total:0,running:0,paused:0,complete:0,failed:0,queued:0};for(let j of f??[]){$.total++,$[j.state]++;let J=E$([...j.children??[],...j.steps?.flatMap((Q)=>Q.children??[])??[]]);$.total+=J.total,$.running+=J.running,$.paused+=J.paused,$.complete+=J.complete,$.failed+=J.failed,$.queued+=J.queued}return $}function hf(f){let $=E$(f);if($.total===0)return;let j=[$.running>0?`${$.running} running`:"",$.paused>0?`${$.paused} paused`:"",$.failed>0?`${$.failed} failed`:"",$.complete>0?`${$.complete} complete`:"",$.queued>0?`${$.queued} queued`:""].filter(Boolean);return`+${$.total} nested run${$.total===1?"":"s"}${j.length?` (${j.join(", ")})`:""}`}function c0(f){if(f.agent)return f.agent;if(f.agents?.length)return f.agents.length===1?f.agents[0]:`${f.agents.slice(0,2).join(", ")}${f.agents.length>2?` +${f.agents.length-2}`:""}`;return f.id}function y$(f){let $=[];if(f.currentTool&&f.currentToolStartedAt!==void 0)$.push(`tool ${f.currentTool} ${u(Math.max(0,Date.now()-f.currentToolStartedAt))}`);else if(f.currentTool)$.push(`tool ${f.currentTool}`);if(f.currentPath)$.push(_(f.currentPath));if(f.turnCount!==void 0)$.push(`${f.turnCount} turns`);if(f.toolCount!==void 0)$.push(`${f.toolCount} tools`);if(f.totalTokens)$.push(`${s(f.totalTokens.total)} tok`);let j=k(f.lastActivityAt,f.activityState);return j||$.length?[j,...$].filter(Boolean).join(" | "):void 0}function D0(f,$){let j=[],J=(Q,Z,A)=>{if(!Q?.length||j.length>=$.maxLines)return;if(Z>$.maxDepth){let X=hf(Q);if(X&&j.length<$.maxLines)j.push(`${A}↳ ${X}`);return}for(let X=0;X<Q.length;X++){let Y=Q[X];if(j.length>=$.maxLines){let H=hf(Q.slice(X));if(H)j[j.length-1]=`${A}↳ ${H}`;return}let K=Y.state==="running"?y$(Y):void 0,B=Y.error?` | error: ${Y.error}`:"";if(j.push(`${A}↳ ${c0(Y)} [${Y.id}] ${Y.state}${K?` | ${K}`:""}${B}`),$.commandHints&&j.length<$.maxLines)j.push(`${A} Status: subagent({ action: "status", id: "${Y.id}" })`);if(Z===$.maxDepth){let H=hf([...Y.steps?.flatMap((O)=>O.children??[])??[],...Y.children??[]]);if(H&&j.length<$.maxLines)j.push(`${A} ↳ ${H}`);continue}for(let[H,O]of(Y.steps??[]).entries()){if(j.length>=$.maxLines)return;let W=O.status==="running"?y$(O):void 0;j.push(`${A} ${H+1}. ${O.agent} ${O.status}${W?` | ${W}`:""}${O.error?` | error: ${O.error}`:""}`),J(O.children,Z+1,`${A} `)}J(Y.children,Z+1,`${A} `)}};return J(f,0,$.indent),j}function x(f,$={}){return D0(f,{indent:$.indent??" ",maxDepth:$.maxDepth??2,maxLines:$.maxLines??40,commandHints:$.commandHints??!1})}function I0(f,$,j){if(typeof f!=="object"||f===null)return!1;let{start:J,count:Q,stepIndex:Z}=f;return typeof J==="number"&&typeof Q==="number"&&typeof Z==="number"&&Number.isInteger(J)&&Number.isInteger(Q)&&Number.isInteger(Z)&&J>=0&&Q>0&&Z>=0&&Z<j&&J+Q<=$}function p(f,$,j){if(!Array.isArray(f))return[];return f.filter((J)=>I0(J,$,j)).sort((J,Q)=>J.stepIndex-Q.stepIndex||J.start-Q.start)}function Tf(f,$,j){let J=0,Q=0;for(let Z of j){while(Q<Z.start&&J<$){if(Q===f)return J;Q++,J++}if(f>=Z.start&&f<Z.start+Z.count)return Z.stepIndex;Q=Z.start+Z.count,J=Z.stepIndex+1}while(Q<=f&&J<$){if(Q===f)return J;Q++,J++}return Math.max(0,$-1)}import*as q from"node:fs";import*as E from"node:path";function of(f){return f instanceof Error?f.message:String(f)}function n0(f){let $=E.join(f,"runner.stderr.log"),j=65536,J;try{let Z=q.statSync($);if(Z.size<=0)return;let A=q.openSync($,"r");try{let X=Math.min(Z.size,65536),Y=Math.max(0,Z.size-X),K=Buffer.alloc(X);q.readSync(A,K,0,X,Y),J=K.toString("utf-8").trim()}finally{q.closeSync(A)}}catch{return}if(!J)return;let Q=J.split(/\r?\n/).slice(-30).join(`
6
6
  `);return Q.length>4000?`${Q.slice(-4000)}
7
- [stderr tail truncated]`:Q}function N$(f){return typeof f==="object"&&f!==null&&"code"in f&&f.code==="ENOENT"}function D0(f,$){try{q.mkdirSync(E.dirname(f),{recursive:!0}),q.appendFileSync(f,`${JSON.stringify($)}
8
- `,"utf-8")}catch{}}function I0(f){let $=E.join(f,"status.json"),j;try{j=q.readFileSync($,"utf-8")}catch(J){if(N$(J))return null;throw Error(`Failed to read async status file '${$}': ${hf(J)}`,{cause:J instanceof Error?J:void 0})}try{return JSON.parse(j)}catch(J){throw Error(`Failed to parse async status file '${$}': ${hf(J)}`,{cause:J instanceof Error?J:void 0})}}function m0(f){try{let $=JSON.parse(q.readFileSync(f,"utf-8"));return{state:$.success?"complete":$.state==="paused"||$.exitCode===0?"paused":"failed",...Array.isArray($.results)?{results:$.results}:{}}}catch($){if(N$($))return;throw Error(`Failed to read async result file '${f}': ${hf($)}`,{cause:$ instanceof Error?$:void 0})}}function P0(f,$){if($?.success===!0)return"complete";if($?.success===!1)return"failed";return f}function v0(f,$,j){let J=m0($);if(!J)return;let Q=(f.steps??[]).map((Z,A)=>{if(Z.status!=="running"&&Z.status!=="pending")return Z;let X=J.results?.[A],Y=P0(J.state,X);return{...Z,status:Y==="complete"?"complete":Y,endedAt:Z.endedAt??j,durationMs:Z.startedAt!==void 0&&Z.durationMs===void 0?Math.max(0,j-Z.startedAt):Z.durationMs,exitCode:Z.exitCode??(Y==="complete"||Y==="paused"?0:1),error:Y==="failed"?Z.error??X?.error:Z.error,sessionFile:Z.sessionFile??X?.sessionFile,model:Z.model??X?.model,attemptedModels:Z.attemptedModels??X?.attemptedModels,modelAttempts:Z.modelAttempts??X?.modelAttempts}});return{...f,state:J.state,activityState:void 0,lastUpdate:j,endedAt:f.endedAt??j,steps:Q}}function h0(f,$,j){let J=$.startedAt??j,Q=$.agents?.length?$.agents:["subagent"],Z=$.chainStepCount,A=Z!==void 0?i($.parallelGroups,Q.length,Z):[];return{runId:$.runId||E.basename(f),...$.sessionId?{sessionId:$.sessionId}:{},mode:$.mode??"single",state:"running",pid:$.pid,startedAt:J,lastUpdate:j,currentStep:0,...Z!==void 0?{chainStepCount:Z}:{},...A.length?{parallelGroups:A}:{},steps:Q.map((X)=>({agent:X,status:"running",startedAt:J})),...$.sessionFile?{sessionFile:$.sessionFile}:{}}}function o0(f,$,j,J){let Q=f.runId||E.basename($),Z=typeof f.pid==="number"?f.pid:"unknown",A=J??`Async runner process ${Z} exited or disappeared before writing a result. Marked run failed by stale-run reconciliation.`,X=n0($),Y=X?`${A}
7
+ [stderr tail truncated]`:Q}function R$(f){return typeof f==="object"&&f!==null&&"code"in f&&f.code==="ENOENT"}function m0(f,$){try{q.mkdirSync(E.dirname(f),{recursive:!0}),q.appendFileSync(f,`${JSON.stringify($)}
8
+ `,"utf-8")}catch{}}function P0(f){let $=E.join(f,"status.json"),j;try{j=q.readFileSync($,"utf-8")}catch(J){if(R$(J))return null;throw Error(`Failed to read async status file '${$}': ${of(J)}`,{cause:J instanceof Error?J:void 0})}try{return JSON.parse(j)}catch(J){throw Error(`Failed to parse async status file '${$}': ${of(J)}`,{cause:J instanceof Error?J:void 0})}}function v0(f){try{let $=JSON.parse(q.readFileSync(f,"utf-8"));return{state:$.success?"complete":$.state==="paused"||$.exitCode===0?"paused":"failed",...Array.isArray($.results)?{results:$.results}:{}}}catch($){if(R$($))return;throw Error(`Failed to read async result file '${f}': ${of($)}`,{cause:$ instanceof Error?$:void 0})}}function h0(f,$){if($?.success===!0)return"complete";if($?.success===!1)return"failed";return f}function o0(f,$,j){let J=v0($);if(!J)return;let Q=(f.steps??[]).map((Z,A)=>{if(Z.status!=="running"&&Z.status!=="pending")return Z;let X=J.results?.[A],Y=h0(J.state,X);return{...Z,status:Y==="complete"?"complete":Y,endedAt:Z.endedAt??j,durationMs:Z.startedAt!==void 0&&Z.durationMs===void 0?Math.max(0,j-Z.startedAt):Z.durationMs,exitCode:Z.exitCode??(Y==="complete"||Y==="paused"?0:1),error:Y==="failed"?Z.error??X?.error:Z.error,sessionFile:Z.sessionFile??X?.sessionFile,model:Z.model??X?.model,attemptedModels:Z.attemptedModels??X?.attemptedModels,modelAttempts:Z.modelAttempts??X?.modelAttempts}});return{...f,state:J.state,activityState:void 0,lastUpdate:j,endedAt:f.endedAt??j,steps:Q}}function d0(f,$,j){let J=$.startedAt??j,Q=$.agents?.length?$.agents:["subagent"],Z=$.chainStepCount,A=Z!==void 0?p($.parallelGroups,Q.length,Z):[];return{runId:$.runId||E.basename(f),...$.sessionId?{sessionId:$.sessionId}:{},mode:$.mode??"single",state:"running",pid:$.pid,startedAt:J,lastUpdate:j,currentStep:0,...Z!==void 0?{chainStepCount:Z}:{},...A.length?{parallelGroups:A}:{},steps:Q.map((X)=>({agent:X,status:"running",startedAt:J})),...$.sessionFile?{sessionFile:$.sessionFile}:{}}}function u0(f,$,j,J){let Q=f.runId||E.basename($),Z=typeof f.pid==="number"?f.pid:"unknown",A=J??`Async runner process ${Z} exited or disappeared before writing a result. Marked run failed by stale-run reconciliation.`,X=n0($),Y=X?`${A}
9
9
 
10
10
  Runner stderr tail:
11
- ${X}`:A,B=((f.steps?.length)?f.steps:[{agent:"subagent",status:"running"}]).map((W)=>W.status==="running"||W.status==="pending"?{...W,status:"failed",activityState:void 0,endedAt:W.endedAt??j,durationMs:W.startedAt!==void 0&&W.durationMs===void 0?Math.max(0,j-W.startedAt):W.durationMs,exitCode:W.exitCode??1,error:W.error??Y}:W),H={...f,state:"failed",activityState:void 0,lastUpdate:j,endedAt:j,steps:B},O=B[f.currentStep??0]?.agent??B[0]?.agent??"subagent";return{status:H,message:Y,result:{id:Q,agent:O,mode:f.mode,success:!1,state:"failed",summary:Y,results:B.map((W)=>({agent:W.agent,output:W.status==="complete"||W.status==="completed"?"":Y,error:W.status==="complete"||W.status==="completed"?void 0:W.error??Y,success:W.status==="complete"||W.status==="completed",model:W.model,attemptedModels:W.attemptedModels,modelAttempts:W.modelAttempts,sessionFile:W.sessionFile})),exitCode:1,timestamp:j,durationMs:Math.max(0,j-f.startedAt),asyncDir:$,sessionId:f.sessionId,sessionFile:f.sessionFile}}}function E$(f,$,j,J,Q){let Z=o0($,f,J,Q);return l(j,Z.result),l(E.join(f,"status.json"),Z.status),D0(E.join(f,"events.jsonl"),{type:"subagent.run.repaired_stale",ts:J,runId:Z.status.runId,pid:$.pid,resultPath:j,message:Z.message}),{status:Z.status,repaired:!0,resultPath:j,message:Z.message}}function g$(f){return f==="complete"||f==="failed"||f==="paused"}function*of(f){for(let $ of f??[])yield $,yield*of($.children),yield*of($.steps?.flatMap((j)=>j.children??[]))}function Zf(f,$={}){let j=t(f);for(let J of of(j.children)){if(J.state!=="running"&&J.state!=="queued")continue;let Q=T$(f.rootRunId,J);if(!Q)continue;let Z=ff(Q,{...$,resultsDir:E.join($.resultsDir??w,"nested",f.rootRunId)}),A=Z.status;if(!A)continue;if(!Z.repaired&&!g$(A.state))continue;let X=$.now?.()??Date.now();S$(f,{type:g$(A.state)?"subagent.nested.completed":"subagent.nested.updated",ts:X,parentRunId:J.parentRunId,parentStepIndex:J.parentStepIndex,child:q$(A,Q,{id:J.id,parentRunId:J.parentRunId,parentStepIndex:J.parentStepIndex,depth:J.depth,path:J.path,mode:J.mode,ts:X})})}}function d0(f,$=process.kill){try{return $(f,0),"alive"}catch(j){let J=typeof j==="object"&&j!==null&&"code"in j?j.code:void 0;if(J==="ESRCH")return"dead";if(J==="EPERM")return"unknown";return"unknown"}}function ff(f,$={}){let j=$.now?.()??Date.now(),J=I0(f),Q=!J&&$.startedRun?h0(f,$.startedRun,j):void 0,Z=J??Q;if(!Z)return{status:null,repaired:!1};let A=Z.runId||E.basename(f),X=E.join($.resultsDir??w,`${A}.json`);if(q.existsSync(X)){let K=Z.state==="running"||Z.state==="queued"?v0(Z,X,j):void 0;if(K)return l(E.join(f,"status.json"),K),{status:K,repaired:!0,resultPath:X,message:"Existing async result file was used to repair stale running status."};return{status:Z,repaired:!1,resultPath:X}}if(Z.state!=="running"||typeof Z.pid!=="number")return{status:J??null,repaired:!1,resultPath:X};if(!J){let K=$.startedRun?.startedAt??Z.startedAt;if(j-K<($.missingStatusGraceMs??1000))return{status:null,repaired:!1,resultPath:X}}if(d0(Z.pid,$.kill)!=="dead"){let K=$.staleAlivePidMs??86400000,B=Z.lastUpdate??Z.startedAt;if(j-B<=K)return{status:J??null,repaired:!1,resultPath:X};let H=`Async runner process ${Z.pid} still has a live PID, but status has not updated for ${j-B}ms. Marked run failed by stale-run reconciliation because PID ownership cannot be verified.`;return E$(f,Z,X,j,H)}return E$(f,Z,X,j)}function Qf(f){return f instanceof Error?f.message:String(f)}function df(f){return typeof f==="object"&&f!==null&&"code"in f&&f.code==="ENOENT"}function u0(f,$){let j=N.join(f,$);try{return Af.statSync(j).isDirectory()}catch(J){if(df(J))return!1;throw Error(`Failed to inspect async run path '${j}': ${Qf(J)}`,{cause:J instanceof Error?J:void 0})}}function l0(f){if(!f)return;try{return Af.statSync(f).mtimeMs}catch($){if(df($))return;throw Error(`Failed to inspect async output file '${f}': ${Qf($)}`,{cause:$ instanceof Error?$:void 0})}}function i0(f,$){if($.state!=="running")return{activityState:$.activityState,lastActivityAt:$.lastActivityAt};let j=$.outputFile?N.isAbsolute($.outputFile)?$.outputFile:N.join(f,$.outputFile):void 0,J=typeof $.currentStep==="number"?$.steps?.[$.currentStep]:void 0;return{activityState:$.activityState,lastActivityAt:$.lastActivityAt??l0(j)??J?.lastActivityAt??J?.startedAt??$.startedAt}}function p0(f,$,j=[],J){if($.sessionId!==void 0&&typeof $.sessionId!=="string")throw Error(`Invalid async status '${N.join(f,"status.json")}': sessionId must be a string.`);let{activityState:Q,lastActivityAt:Z}=i0(f,$),A=$.steps??[],X=$.chainStepCount??A.length,Y=i($.parallelGroups,A.length,X),K=[];if(j.length===0&&J)try{K=t(J)?.children??[]}catch(H){j.push(`Nested status unavailable: ${Qf(H)}`)}let B=A.map((H,O)=>{let{activityState:W,lastActivityAt:V}=H;return{index:O,agent:H.agent,...H.label?{label:H.label}:{},...H.phase?{phase:H.phase}:{},...H.outputName?{outputName:H.outputName}:{},...H.structured?{structured:H.structured}:{},status:H.status,...W?{activityState:W}:{},...V?{lastActivityAt:V}:{},...H.currentTool?{currentTool:H.currentTool}:{},...H.currentToolArgs?{currentToolArgs:H.currentToolArgs}:{},...H.currentToolStartedAt?{currentToolStartedAt:H.currentToolStartedAt}:{},...H.currentPath?{currentPath:H.currentPath}:{},...H.recentTools?{recentTools:H.recentTools.map((C)=>({...C}))}:{},...H.recentOutput?{recentOutput:[...H.recentOutput]}:{},...H.turnCount!==void 0?{turnCount:H.turnCount}:{},...H.toolCount!==void 0?{toolCount:H.toolCount}:{},...H.steerCount!==void 0?{steerCount:H.steerCount}:{},...H.lastSteerAt!==void 0?{lastSteerAt:H.lastSteerAt}:{},...H.durationMs!==void 0?{durationMs:H.durationMs}:{},...H.tokens?{tokens:H.tokens}:{},...H.totalCost?{totalCost:H.totalCost}:{},...H.skills?{skills:H.skills}:{},...H.model?{model:H.model}:{},...H.thinking?{thinking:H.thinking}:{},...H.attemptedModels?{attemptedModels:H.attemptedModels}:{},...H.error?{error:H.error}:{},...H.timedOut!==void 0?{timedOut:H.timedOut}:{},...H.turnBudget?{turnBudget:H.turnBudget}:{},...H.turnBudgetExceeded!==void 0?{turnBudgetExceeded:H.turnBudgetExceeded}:{},...H.wrapUpRequested!==void 0?{wrapUpRequested:H.wrapUpRequested}:{},...H.children?.length?{children:H.children}:{}}});return Vf($.runId||N.basename(f),B,K),{id:$.runId||N.basename(f),asyncDir:f,...$.sessionId?{sessionId:$.sessionId}:{},state:$.state,...$.error?{error:$.error}:{},activityState:Q,lastActivityAt:Z,currentTool:$.currentTool,currentToolStartedAt:$.currentToolStartedAt,currentPath:$.currentPath,turnCount:$.turnCount,toolCount:$.toolCount,steerCount:$.steerCount,lastSteerAt:$.lastSteerAt,mode:$.mode,cwd:$.cwd,startedAt:$.startedAt,lastUpdate:$.lastUpdate,endedAt:$.endedAt,...$.timeoutMs!==void 0?{timeoutMs:$.timeoutMs}:{},...$.deadlineAt!==void 0?{deadlineAt:$.deadlineAt}:{},...$.timedOut!==void 0?{timedOut:$.timedOut}:{},...$.turnBudget?{turnBudget:$.turnBudget}:{},...$.turnBudgetExceeded!==void 0?{turnBudgetExceeded:$.turnBudgetExceeded}:{},...$.wrapUpRequested!==void 0?{wrapUpRequested:$.wrapUpRequested}:{},currentStep:$.currentStep,...$.chainStepCount!==void 0?{chainStepCount:$.chainStepCount}:{},...$.pendingAppends!==void 0?{pendingAppends:$.pendingAppends}:{},...Y.length?{parallelGroups:Y}:{},steps:B,...K.length?{nestedChildren:K}:{},...j.length?{nestedWarnings:j}:{},...$.sessionDir?{sessionDir:$.sessionDir}:{},...$.outputFile?{outputFile:$.outputFile}:{},...$.totalTokens?{totalTokens:$.totalTokens}:{},...$.totalCost?{totalCost:$.totalCost}:{},...$.sessionFile?{sessionFile:$.sessionFile}:{}}}function r0(f){let $=(j)=>{switch(j){case"running":return 0;case"queued":return 1;case"failed":return 2;case"paused":return 2;case"complete":return 3}};return[...f].sort((j,J)=>{let Q=$(j.state)-$(J.state);if(Q!==0)return Q;let Z=j.lastUpdate??j.endedAt??j.startedAt;return(J.lastUpdate??J.endedAt??J.startedAt)-Z})}function Tf(f,$={}){let j;try{j=Af.readdirSync(f).filter((Y)=>u0(f,Y))}catch(Y){if(df(Y))return[];throw Error(`Failed to list async runs in '${f}': ${Qf(Y)}`,{cause:Y instanceof Error?Y:void 0})}let J=$.states?new Set($.states):void 0,Q=[],Z,A=(Y)=>{if(!Z)Z=F$();return Z.get(Y)};for(let Y of j){let K=N.join(f,Y),H=($.reconcile===!1?void 0:ff(K,{resultsDir:$.resultsDir,kill:$.kill,now:$.now}))?.status??Hf(K);if(!H)continue;if(J&&!J.has(H.state))continue;if($.sessionId&&H.sessionId!==$.sessionId)continue;let O=[],W;try{if(W=A(H.runId||N.basename(K)),W)Zf(W,{resultsDir:$.resultsDir,kill:$.kill,now:$.now})}catch(C){O.push(`Nested status unavailable: ${Qf(C)}`)}let V=p0(K,H,O,W);Q.push(V)}let X=r0(Q);return $.limit!==void 0?X.slice(0,$.limit):X}function x$(f){let $=[];if(f.currentTool&&f.currentToolStartedAt!==void 0)$.push(`tool ${f.currentTool} ${d(Math.max(0,Date.now()-f.currentToolStartedAt))}`);else if(f.currentTool)$.push(`tool ${f.currentTool}`);if(f.currentPath)$.push(_(f.currentPath));if(f.turnCount!==void 0)$.push(`${f.turnCount} turns`);if(f.turnBudgetExceeded&&f.turnBudget)$.push(`turn budget exceeded ${f.turnBudget.turnCount}/${f.turnBudget.maxTurns}+${f.turnBudget.graceTurns}`);else if(f.wrapUpRequested&&f.turnBudget)$.push(`wrap-up requested ${f.turnBudget.turnCount}/${f.turnBudget.maxTurns}`);else if(f.turnBudget)$.push(`turn budget ${f.turnBudget.turnCount}/${f.turnBudget.maxTurns}+${f.turnBudget.graceTurns}`);if(f.toolCount!==void 0)$.push(`${f.toolCount} tools`);if(f.steerCount!==void 0)$.push(`${f.steerCount} steers`);if(typeof f.lastSteerAt==="number"&&Number.isFinite(f.lastSteerAt))$.push(`last steer ${new Date(f.lastSteerAt).toISOString()}`);let j=k(f.lastActivityAt,f.activityState);return j||$.length?[j,...$].filter(Boolean).join(" | "):void 0}function a0(f){let $=f.label?`${f.label} (${f.agent})`:f.agent,j=f.phase?`[${f.phase}] `:"",J=[`${f.index+1}. ${j}${$}`,f.status],Q=x$(f);if(Q)J.push(Q);let Z=o(f.model,f.thinking);if(Z)J.push(Z);if(f.durationMs!==void 0)J.push(d(f.durationMs));if(f.tokens)J.push(`${a(f.tokens.total)} tok`);return J.join(" | ")}function Bf(f){if(!f.outputFile)return;return N.isAbsolute(f.outputFile)?f.outputFile:N.join(f.asyncDir,f.outputFile)}function Xf(f){let $=f.steps.length||1,j=f.chainStepCount??$,J=i(f.parallelGroups,f.steps.length,j),Q=f.currentStep!==void 0?J.find((Z)=>f.currentStep>=Z.start&&f.currentStep<Z.start+Z.count):void 0;if(Q){let Z=f.steps.slice(Q.start,Q.start+Q.count),A=gf(Z,Q.count,{showRunning:f.state==="running"});if(f.mode==="parallel")return A;return`step ${Q.stepIndex+1}/${j} · parallel group: ${A}`}if(f.mode==="parallel")return gf(f.steps,$,{showRunning:f.state==="running"});if(f.mode==="chain"&&f.currentStep!==void 0&&J.length>0)return`step ${zf(f.currentStep,j,J)+1}/${j}`;return f.currentStep!==void 0?`step ${f.currentStep+1}/${$}`:`steps ${$}`}function s0(f){let $=Xf(f),j=f.cwd?_(f.cwd):_(f.asyncDir),J=x$(f),Q=f.pendingAppends?` | ${f.pendingAppends} pending append${f.pendingAppends===1?"":"s"}`:"";return`${f.id} | ${f.state}${J?` | ${J}`:""} | ${f.mode} | ${$}${Q} | ${j}`}function R$(f,$="Active async runs"){if(f.length===0)return`No ${$.toLowerCase()}.`;let j=[`${$}: ${f.length}`,""];for(let J of f){j.push(`- ${s0(J)}`);for(let X of J.steps)j.push(` ${a0(X)}`),j.push(...R(X.children,{indent:" ",maxLines:12}));let Q=new Set(J.steps.flatMap((X)=>X.children?.map((Y)=>Y.id)??[])),Z=J.nestedChildren?.filter((X)=>!Q.has(X.id))??[];if(j.push(...R(Z,{indent:" ",maxLines:12})),J.error)j.push(` Error: ${J.error}`);for(let X of J.nestedWarnings??[])j.push(` Warning: ${X}`);let A=Bf(J);if(A)j.push(` output: ${_(A)}`);if(J.sessionFile)j.push(` session: ${_(J.sessionFile)}`);j.push("")}return j.join(`
12
- `).trimEnd()}import*as b from"node:fs";import*as y from"node:path";var w$=80,e0=500,t0=262144;function lf(f){if(f===void 0)return w$;if(!Number.isFinite(f))return w$;return Math.max(1,Math.min(e0,Math.trunc(f)))}function k$(f){let $=new Set,j=[];for(let J of f){if(!J||$.has(J))continue;$.add(J),j.push(J)}return j}function fj(f,$){if(!$)return;return y.resolve(f,$)}function c$(f,$){let j=y.resolve(f),J=y.resolve($);return J===j||J.startsWith(`${j}${y.sep}`)}function Cf(f){return f instanceof Error?f.message:String(f)}function n$(f){return typeof f==="object"&&f!==null&&"code"in f&&f.code==="ENOENT"}function $j(f,$){let j;try{j=b.statSync(f)}catch(Q){if(n$(Q))return{path:f,lines:[],truncated:!1};return{path:f,lines:[],truncated:!1,error:Cf(Q)}}if(j.size===0)return{path:f,lines:[],truncated:!1};let J;try{let Q=Math.min(j.size,t0),Z=j.size-Q,A=Buffer.alloc(Q);J=b.openSync(f,"r");let X=b.readSync(J,A,0,Q,Z),K=A.subarray(0,X).toString("utf-8").split(/\r?\n/);if(Z>0&&K.length>0)K=K.slice(1);if(K.at(-1)==="")K=K.slice(0,-1);return{path:f,lines:K.slice(-$),truncated:Z>0||K.length>$}}catch(Q){return{path:f,lines:[],truncated:!1,error:Cf(Q)}}finally{if(J!==void 0)b.closeSync(J)}}function D$(f,$,j,J){if(j.length===0)return{path:f,lines:[],truncated:!1,error:`Refusing to read ${J} transcript path without a trusted root: ${f}`};let Q=y.resolve(f);if(!j.some((Y)=>c$(Y,Q)))return{path:f,lines:[],truncated:!1,error:`Refusing to read ${J} transcript path outside trusted roots: ${f}`};let Z;try{Z=b.lstatSync(Q)}catch(Y){if(n$(Y))return{path:f,lines:[],truncated:!1};return{path:f,lines:[],truncated:!1,error:Cf(Y)}}if(Z.isSymbolicLink())return{path:f,lines:[],truncated:!1,error:`Refusing to read symlink ${J} transcript path: ${f}`};if(!Z.isFile())return{path:f,lines:[],truncated:!1,error:`Refusing to read non-file ${J} transcript path: ${f}`};let A,X;try{A=b.realpathSync(Q),X=j.filter((Y)=>b.existsSync(Y)).map((Y)=>b.realpathSync(Y))}catch(Y){return{path:f,lines:[],truncated:!1,error:Cf(Y)}}if(!X.some((Y)=>c$(Y,A)))return{path:f,lines:[],truncated:!1,error:`Refusing to read ${J} transcript path outside trusted roots: ${f}`};return $j(Q,$)}function uf(f,$=240){let j;if(typeof f==="string")j=f;else j=JSON.stringify(f);return j.length>$?`${j.slice(0,$)}…`:j}function jj(f){if(typeof f==="string")return f;if(!Array.isArray(f))return"";return f.map(($)=>{if(!$||typeof $!=="object")return"";let j=$;if(typeof j.text==="string")return j.text;if(j.type==="toolCall"||j.type==="tool_call")return`[tool: ${typeof j.name==="string"?j.name:typeof j.toolName==="string"?j.toolName:"tool"}${j.args===void 0?"":` ${uf(j.args)}`}]`;if(j.type==="toolResult"||j.type==="tool_result")return`[tool result${j.result===void 0?"":`: ${uf(j.result)}`}]`;if(j.content!==void 0)return uf(j.content);return""}).filter(Boolean).join(`
13
- `)}function Jj(f){if(!f||typeof f!=="object")return;let $=f,j=$.message&&typeof $.message==="object"?$.message:$,J=typeof j.role==="string"?j.role:void 0;if(!J)return;let Q=jj(j.content).trim();if(!Q)return;return`${J}: ${Q}`}function I$(f,$,j){let J=D$(f,Math.max($*4,$),j,"session"),Q=[];if(J.error)Q.push(`Session read failed for ${f}: ${J.error}`);let Z=[],A=0;for(let X of J.lines){if(!X.trim())continue;try{let Y=JSON.parse(X),K=Jj(Y);if(K)Z.push(K)}catch{A++}}if(A>0)Q.push(`Skipped ${A} malformed session tail line${A===1?"":"s"}.`);return{lines:Z.slice(-$),warnings:Q}}function Ff(f){let $=[];if(f.currentTool&&f.currentToolStartedAt!==void 0)$.push(`tool ${f.currentTool} ${d(Math.max(0,Date.now()-f.currentToolStartedAt))}`);else if(f.currentTool)$.push(`tool ${f.currentTool}`);if(f.currentPath)$.push(_(f.currentPath));if(f.turnCount!==void 0)$.push(`${f.turnCount} turns`);if(f.toolCount!==void 0)$.push(`${f.toolCount} tools`);if(f.tokens?.total)$.push(`${a(f.tokens.total)} tok`);let j=k(f.lastActivityAt,f.activityState);return j||$.length?[j,...$].filter(Boolean).join(" | "):void 0}function Zj(f){if(f.mode==="single"&&f.currentAgent)return f.currentAgent;return f.mode}function Qj(f){if(f.length===0)return[];let $=["Foreground runs:"],j=[...f].sort((J,Q)=>Q.updatedAt-J.updatedAt);for(let J of j){let Q=Ff({activityState:J.currentActivityState,lastActivityAt:J.lastActivityAt,currentTool:J.currentTool,currentToolStartedAt:J.currentToolStartedAt,currentPath:J.currentPath,turnCount:J.turnCount,toolCount:J.toolCount,...J.tokens!==void 0?{tokens:{total:J.tokens}}:{}}),Z=J.currentAgent?` | ${J.currentAgent}${J.currentIndex!==void 0?` #${J.currentIndex}`:""}`:"";$.push(`- ${J.runId} | running | ${Zj(J)}${Z}${Q?` | ${Q}`:""}`),$.push(` status: subagent({ action: "status", id: "${J.runId}" })`),$.push(" transcript: live in the expanded foreground result; persisted session transcript appears after completion when sessions are enabled."),$.push(...R(J.nestedChildren,{indent:" ",commandHints:!0,maxLines:12}))}return $}function Aj(f){if(f.length===0)return[];let $=["Async runs:"];for(let j of f){let J=Xf(j),Q=Ff(j),Z=j.cwd?_(j.cwd):_(j.asyncDir),A=j.pendingAppends?` | ${j.pendingAppends} pending append${j.pendingAppends===1?"":"s"}`:"";$.push(`- ${j.id} | ${j.state}${Q?` | ${Q}`:""} | ${j.mode} | ${J}${A} | ${Z}`),$.push(` status: subagent({ action: "status", id: "${j.id}" })`),$.push(` transcript: subagent({ action: "status", id: "${j.id}", view: "transcript" })`);for(let B of j.steps){let H=B.label?`${B.label} (${B.agent})`:B.agent,O=B.phase?`[${B.phase}] `:"",W=Ff(B),V=o(B.model,B.thinking),C=[`${B.index}. ${O}${H}`,B.status,W,V].filter(Boolean);$.push(` ${C.join(" | ")}`);let S=y.join(j.asyncDir,`output-${B.index}.log`);if(b.existsSync(S))$.push(` output: ${_(S)}`);if(B.sessionFile)$.push(` session: ${_(B.sessionFile)}`);if(B.status==="running"||B.recentOutput?.length||b.existsSync(S))$.push(` transcript: subagent({ action: "status", id: "${j.id}", index: ${B.index}, view: "transcript" })`);$.push(...R(B.children,{indent:" ",commandHints:!0,maxLines:12}))}let X=new Set(j.steps.flatMap((B)=>B.children?.map((H)=>H.id)??[])),Y=j.nestedChildren?.filter((B)=>!X.has(B.id))??[];if($.push(...R(Y,{indent:" ",commandHints:!0,maxLines:12})),j.error)$.push(` error: ${j.error}`);for(let B of j.nestedWarnings??[])$.push(` warning: ${B}`);let K=Bf(j);if(K)$.push(` output: ${_(K)}`);if(j.sessionFile)$.push(` session: ${_(j.sessionFile)}`)}return $}function m$(f,$={}){if($.childSafe)return{content:[{type:"text",text:'Child-safe subagent fleet view is unavailable without an explicit run id. Use subagent({ action: "status", id: "..." }) for the delegated run you can see.'}],isError:!0,details:{mode:"management",results:[]}};let j;try{j=Tf($.asyncDirRoot??v,{states:["queued","running"],sessionId:$.state?.currentSessionId??void 0,resultsDir:$.resultsDir??w,kill:$.kill,now:$.now})}catch(Y){return{content:[{type:"text",text:Y instanceof Error?Y.message:String(Y)}],isError:!0,details:{mode:"management",results:[]}}}let J=$.state?[...$.state.foregroundControls.values()]:[],Q=J.length+j.length;if(Q===0)return{content:[{type:"text",text:'No active subagent fleet. Background runs that already finished are available through completion notifications or subagent({ action: "status", id: "..." }).'}],details:{mode:"management",results:[]}};let Z=[`Subagent fleet: ${Q} active`,""],A=Qj(J);if(A.length)Z.push(...A,"");let X=Aj(j);if(X.length)Z.push(...X,"");return Z.push("Commands:"),Z.push(' Refresh fleet: subagent({ action: "status", view: "fleet" })'),Z.push(' Tail run transcript: subagent({ action: "status", id: "<run-id>", view: "transcript" })'),Z.push(' Tail child transcript: subagent({ action: "status", id: "<run-id>", index: 0, view: "transcript" })'),{content:[{type:"text",text:Z.join(`
14
- `).trimEnd()}],details:{mode:"management",results:[]}}}function Bj(f,$){if(f===void 0)return;if(!Number.isInteger(f))throw Error("Transcript index must be an integer.");if(f<0||f>=$.length)throw Error(`Transcript index ${f} is out of range for ${$.length} child step${$.length===1?"":"s"}.`);return f}function Xj(f,$){let j=f.steps??[],J=Bj($.index,j);if(J===void 0){if(f.state==="running"&&typeof f.currentStep==="number"&&f.currentStep>=0&&f.currentStep<j.length)J=f.currentStep;else if(j.length===1)J=0}let Q=J!==void 0?j[J]:void 0,Z=$.index===void 0&&j.length>1?`Tip: pass index to inspect a specific child transcript (${j.map((A,X)=>`${X}=${A.agent}`).join(", ")}).`:void 0;return{index:J,step:Q,hint:Z}}function Yj(f,$,j){if($===void 0||!j)return;let J=o(j.model,j.thinking);return[`${f==="parallel"?"Agent":"Step"}: ${$} (${j.agent})`,j.status,Ff(j),J,j.error?`error: ${j.error}`:void 0].filter(Boolean).join(" | ")}function pf(f,$){let j=[];for(let J of $.outputPaths)j.push(`Output: ${J}`);if($.sessionFile)j.push(`Session: ${$.sessionFile}`);if($.eventsPath)j.push(`Events: ${$.eventsPath}`);if($.logPath)j.push(`Log: ${$.logPath}`);if($.resultPath)j.push(`Result: ${$.resultPath}`);if(!j.length)return;f.push("Artifacts:");for(let J of j)f.push(` ${J}`)}function bf(f,$,j,J){if(f.push(`${$}${J?" (tail truncated)":""}:`),j.length===0){f.push(" (no transcript lines available yet)");return}for(let Q of j)f.push(` ${Q}`)}function rf(f,$,j={}){let J=lf(j.lines),Q=Xj(f,j),Z=Q.index!==void 0?y.join($,`output-${Q.index}.log`):void 0,A=fj($,f.outputFile),X=y.join($,`subagent-log-${f.runId}.md`),Y=Q.index!==void 0?k$([Z,A&&Z&&y.resolve(A)===y.resolve(Z)?A:void 0]):k$([A]),K=Q.index!==void 0?Q.step?.sessionFile:f.sessionFile,B=y.join($,"events.jsonl"),H=[`Run: ${f.runId}`,`State: ${f.state}`,`Mode: ${f.mode}`,Yj(f.mode,Q.index,Q.step),Q.hint].filter((S)=>Boolean(S));pf(H,{outputPaths:Y,sessionFile:K,eventsPath:b.existsSync(B)?B:void 0,logPath:b.existsSync(X)?X:void 0});let O=[],W=[],V="Transcript tail",C=!1;for(let S of Y){let D=D$(S,J,[$],"output");if(D.error)O.push(`Output read failed for ${D.path}: ${D.error}`);if(D.lines.length===0)continue;W=D.lines,V=`Transcript tail from ${D.path}`,C=D.truncated;break}if(W.length===0&&Q.step?.recentOutput?.length)W=Q.step.recentOutput.slice(-J),V="Recent output from status.json";if(W.length===0&&K){let S=I$(K,J,j.sessionRoots??[]);if(W=S.lines,O.push(...S.warnings),W.length>0)V=`Session transcript tail from ${K}`}if(O.length){H.push("Warnings:");for(let S of O)H.push(` ${S}`)}return bf(H,V,W,C),H.join(`
15
- `)}function P$(f,$={}){if(f.asyncDir){let Z=Hf(f.asyncDir);if(Z)return rf(Z,f.asyncDir,$)}let j=lf($.lines),J=[`Nested run: ${f.id}`,`State: ${f.state}`,f.mode?`Mode: ${f.mode}`:void 0,f.agent?`Agent: ${f.agent}`:f.agents?.length?`Agents: ${f.agents.join(", ")}`:void 0].filter((Z)=>Boolean(Z));if(pf(J,{outputPaths:[],sessionFile:f.sessionFile}),!f.sessionFile)return bf(J,"Transcript tail",[],!1),J.join(`
16
- `);let Q=I$(f.sessionFile,j,$.sessionRoots??[]);if(Q.warnings.length){J.push("Warnings:");for(let Z of Q.warnings)J.push(` ${Z}`)}return bf(J,`Session transcript tail from ${f.sessionFile}`,Q.lines,!1),J.join(`
17
- `)}function v$(f,$,j={}){let J=lf(j.lines),Q=f.runId??f.id??y.basename($,".json"),Z=Array.isArray(f.results)?f.results:f.agent?[{agent:f.agent,output:f.output,summary:f.summary,sessionFile:f.sessionFile,state:f.state,success:f.success,exitCode:f.exitCode}]:[],A=j.index;if(A!==void 0&&!Number.isInteger(A))throw Error("Transcript index must be an integer.");if(A===void 0&&Z.length===1)A=0;if(A!==void 0&&(A<0||A>=Z.length))throw Error(`Transcript index ${A} is out of range for ${Z.length} result child${Z.length===1?"":"ren"}.`);let X=A!==void 0?Z[A]:void 0,Y=A!==void 0?X?.output??X?.summary??(Z.length===1?f.output??f.summary:void 0)??"":f.output??f.summary??"",K=Y.split(/\r?\n/).slice(-J),B=X?.sessionFile??f.sessionFile,H=[`Run: ${Q}`,`State: ${f.state??(f.success?"complete":"failed")}`,A!==void 0&&X?`Child: ${A} (${X.agent??"subagent"})`:void 0,A===void 0&&Z.length>1?`Tip: pass index to inspect a specific child transcript (${Z.map((O,W)=>`${W}=${O.agent??"subagent"}`).join(", ")}).`:void 0].filter((O)=>Boolean(O));return pf(H,{outputPaths:[],sessionFile:B,resultPath:$}),bf(H,"Result transcript tail",K.filter((O)=>O.trim()),Y.split(/\r?\n/).length>J),H.join(`
18
- `)}function h$(f){return f.trim().toLowerCase().replace(/[^a-z0-9_-]+/g,"-").replace(/^-+|-+$/g,"")||"agent"}function af(f,$,j){let J=j!==void 0?`-${j+1}`:"";return`subagent-${h$($)}-${h$(f)}${J}`}import*as m from"node:fs";import*as T from"node:path";var JJ=process.platform==="win32"?"SIGBREAK":"SIGUSR2";var HJ=process.platform==="win32"?"SIGBREAK":"SIGUSR2";function sf(f,$){if(f===void 0)return;if(f.trim()==="")throw Error(`${$} must not be empty.`);if(T.isAbsolute(f)||/[\\/]/.test(f)||f.includes(".."))throw Error(`${$} must be an async run id or prefix, not a path.`);return f}function Sf(f,$,j){let J=T.resolve(f),Q=T.resolve($),Z=T.relative(J,Q);if(Z===""||!Z.startsWith("..")&&!T.isAbsolute(Z))return;throw Error(`${j} must be inside ${J}.`)}function o$(f,$,j=""){if(!m.existsSync(f))return[];return m.readdirSync(f).filter((J)=>J.startsWith($)&&(!j||J.endsWith(j))).map((J)=>j?J.slice(0,-j.length):J).sort()}function ef(f,$){let j=T.join(f,`${$}.json`);return Sf(f,j,"Async result file"),m.existsSync(j)?j:null}function tf(f,$,j){let J=sf(f,"id");if(!J)return[];let Q=T.resolve($),Z=T.resolve(j);return[...new Set([...o$(Q,J),...o$(Z,J,".json")])].sort().map((X)=>{let Y=T.join(Q,X);return Sf(Q,Y,"Async run directory"),{id:X,location:{asyncDir:m.existsSync(Y)?Y:null,resultPath:ef(Z,X),resolvedId:X}}})}function d$(f,$,j){let J=T.resolve($),Q=T.resolve(j),Z=sf(f.id,"id")??sf(f.runId,"runId");if(f.dir){let K=T.resolve(f.dir);Sf(J,K,"Async run directory");let B=Z??T.basename(K);if(Z&&Z!==T.basename(K))throw Error(`Async run id '${Z}' does not match directory '${T.basename(K)}'.`);return{asyncDir:K,resultPath:ef(Q,B),resolvedId:B}}if(!Z)return{asyncDir:null,resultPath:null};let A=T.join(J,Z);Sf(J,A,"Async run directory");let X=ef(Q,Z);if(m.existsSync(A)||X)return{asyncDir:m.existsSync(A)?A:null,resultPath:X,resolvedId:Z};let Y=tf(Z,J,Q);if(Y.length===0)return{asyncDir:null,resultPath:null,resolvedId:Z};if(Y.length>1)throw Error(`Ambiguous async run id prefix '${Z}' matched: ${Y.map((K)=>K.id).join(", ")}. Provide a longer id.`);return Y[0].location}import*as Yf from"node:fs";import*as f$ from"node:path";function Hj(f,$,j){let J=f$.join($,f),Q=f$.join(j,`${f}.json`);if(!Yf.existsSync(J)&&!Yf.existsSync(Q))return;return{asyncDir:Yf.existsSync(J)?J:null,resultPath:Yf.existsSync(Q)?Q:null,resolvedId:f}}function Kj(f){if(!f)return[];return[...new Set([...f.foregroundControls.keys(),...f.foregroundRuns?.keys()??[]])]}function Wj(f){if(!f)return;let $=[],j=new Set,J=(Q)=>{if(!Q)return;let Z=`${Q.rootRunId}:${Q.eventSink}:${Q.controlInbox}`;if(j.has(Z))return;j.add(Z),$.push(Q)};for(let Q of f.foregroundControls.values())J(Q.nestedRoute);for(let Q of f.asyncJobs.values())J(Q.nestedRoute);return{routes:$}}function Lj(f,$,j){return tf(f,$,j)}function $$(f,$={}){If("id",f);let j=$.asyncDirRoot??v,J=$.resultsDir??w,Q=$.nested??Wj($.state);if($.state?.foregroundControls.has(f)||$.state?.foregroundRuns?.has(f))return{kind:"foreground",id:f};let Z=Hj(f,j,J);if(Z)return{kind:"async",id:f,location:Z};let A=Pf(f,Q?{scope:Q}:{});if(A.length>1)throw Error(`Nested run id '${f}' is ambiguous across authorized registries. Provide the full id after stale registries are cleaned up.`);if(A[0])return{kind:"nested",id:f,match:A[0]};let X=[];for(let B of Kj($.state).filter((H)=>H.startsWith(f)))X.push({kind:"foreground",id:B});for(let B of Lj(f,j,J))X.push({kind:"async",id:B.id,location:B.location});for(let B of Pf(f,Q?{prefix:!0,scope:Q}:{prefix:!0}))X.push({kind:"nested",id:B.run.id,match:B});let K=[...new Map(X.map((B)=>[`${B.kind}:${B.id}`,B])).values()];if(K.length>1)throw Error(`Ambiguous subagent run id prefix '${f}' matched: ${K.map((B)=>`${B.kind}:${B.id}`).join(", ")}. Provide a longer id.`);return K[0]}function j$(f){return typeof f==="string"&&n.existsSync(f)}function u$(f,$,j){let J=$.map((A,X)=>({child:A,index:X})).filter(({child:A})=>typeof A.agent==="string");if(!f||J.length===0)return"Resume: unavailable; no child session file was persisted.";let Q=J[0]?.child.sessionFile??j;if($.length===1&&J.length===1&&j$(Q))return`Revive: subagent({ action: "resume", id: "${f}", message: "..." })`;let Z=J.find(({child:A})=>j$(A.sessionFile));if(Z)return`Revive child: subagent({ action: "resume", id: "${f}", index: ${Z.index}, message: "..." })`;return"Resume: unavailable; no child session file was persisted."}function Oj(f,$){let j=f.steps??[];if(f.mode==="parallel")return`Agent ${$+1}/${j.length||1}`;if(f.mode==="chain"){let J=f.chainStepCount??(j.length||1),Q=i(f.parallelGroups,j.length,J),Z=Q.find((A)=>$>=A.start&&$<A.start+A.count);if(Z)return`Step ${Z.stepIndex+1}/${J} Agent ${$-Z.start+1}/${Z.count}`;return`Step ${zf($,J,Q)+1}/${J}`}return`Step ${$+1}`}function Uj(f){if(f.agent)return f.agent;if(f.agents?.length)return f.agents.join(", ");return f.id}function l$(f){let $=[];if(f.steerCount!==void 0)$.push(`${f.steerCount} steer${f.steerCount===1?"":"s"}`);if(typeof f.lastSteerAt==="number"&&Number.isFinite(f.lastSteerAt))$.push(`last ${new Date(f.lastSteerAt).toISOString()}`);return $.length?$.join(", "):void 0}function i$(f){let $=f.artifactPaths?.outputPath;if($&&n.existsSync($))try{let j=n.readFileSync($,"utf-8").trim();if(j)return j}catch{}return f.finalOutput??""}function Gj(f){let $=[`Run: ${f.runId}`,"State: remembered foreground",`Mode: ${f.mode}`,`Updated: ${new Date(f.updatedAt).toISOString()}`,`Cwd: ${f.cwd}`];for(let J of f.children){let Q=i$(J).trim().split(/\r?\n/).find((A)=>A.trim()),Z=[`${J.index+1}. ${J.agent} ${J.status}`,J.exitCode!==void 0?`exit ${J.exitCode}`:void 0,J.detachedReason?`detached: ${J.detachedReason}`:void 0,Q?`output: ${Q.slice(0,160)}`:void 0].filter(Boolean);if($.push(Z.join(", ")),J.sessionFile)$.push(` Session: ${J.sessionFile}`);if(J.transcriptPath)$.push(` Transcript: ${J.transcriptPath}`);if(J.artifactPaths?.outputPath)$.push(` Output: ${J.artifactPaths.outputPath}`);if(J.transcriptError)$.push(` Transcript warning: ${J.transcriptError}`)}if($.push("",`Status: subagent({ action: "status", id: "${f.runId}" })`),f.children.length===1)$.push(`Transcript: subagent({ action: "status", id: "${f.runId}", view: "transcript" })`);else $.push(`Transcript: subagent({ action: "status", id: "${f.runId}", index: 0, view: "transcript" })`);let j=f.children.find((J)=>J.status!=="detached"&&j$(J.sessionFile));if(j)$.push(f.children.length===1?`Revive: subagent({ action: "resume", id: "${f.runId}", message: "..." })`:`Revive child: subagent({ action: "resume", id: "${f.runId}", index: ${j.index}, message: "..." })`);else if(f.children.some((J)=>J.status==="detached"))$.push("Recovery: child detached for intercom coordination; status will show recovered output after the child exits when DM can observe it.");else $.push("Resume: unavailable; no child session file was persisted.");return $.join(`
19
- `)}function Mj(f,$){let j=$.index;if(j!==void 0&&!Number.isInteger(j))throw Error("Transcript index must be an integer.");if(j===void 0&&f.children.length===1)j=0;if(j===void 0)return`Transcript view requires index for foreground run '${f.runId}' with ${f.children.length} children.`;if(j<0||j>=f.children.length)throw Error(`Transcript index ${j} is out of range for ${f.children.length} foreground children.`);let J=f.children[j],Q=Math.max(1,Math.min($.lines??80,1000)),Z=i$(J).split(/\r?\n/).filter((X)=>X.trim()).slice(-Q),A=[`Run: ${f.runId}`,`State: ${J.status}`,`Child: ${j} (${J.agent})`,J.sessionFile?`Session: ${J.sessionFile}`:void 0,J.transcriptPath?`Transcript: ${J.transcriptPath}`:void 0,J.artifactPaths?.outputPath?`Output: ${J.artifactPaths.outputPath}`:void 0].filter((X)=>Boolean(X));if(A.push("Result transcript tail:"),Z.length===0)A.push(" (no recovered final output available yet)");else for(let X of Z)A.push(` ${X}`);return A.join(`
20
- `)}function Vj(f,$){let j=[`Nested run: ${$.id}`,`Root: ${f}`,`Parent: ${$.parentRunId}${$.parentStepIndex!==void 0?` step ${$.parentStepIndex+1}`:""}`,`State: ${$.state}`,$.activityState||$.lastActivityAt?`Activity: ${k($.lastActivityAt,$.activityState)}`:void 0,$.mode?`Mode: ${$.mode}`:void 0,`Agent: ${Uj($)}`,$.currentStep!==void 0?`Progress: step ${$.currentStep+1}/${$.chainStepCount??$.steps?.length??1}`:void 0,$.turnBudget?`Turn budget: ${$.turnBudget.turnCount}/${$.turnBudget.maxTurns}+${$.turnBudget.graceTurns} (${$.turnBudget.outcome})`:void 0,$.asyncDir?`Dir: ${$.asyncDir}`:void 0,$.sessionFile?`Session: ${$.sessionFile}`:void 0,$.error?`Error: ${$.error}`:void 0].filter((J)=>Boolean(J));if($.path.length)j.push(`Path: ${$.path.map((J)=>`${J.runId}${J.stepIndex!==void 0?`:${J.stepIndex+1}`:""}${J.agent?`:${J.agent}`:""}`).join(" > ")} > ${$.id}`);if($.steps?.length){j.push("Steps:");for(let[J,Q]of $.steps.entries()){let Z=Q.status==="running"?k(Q.lastActivityAt,Q.activityState):void 0,A=Q.turnBudget?`, turn budget: ${Q.turnBudget.turnCount}/${Q.turnBudget.maxTurns}+${Q.turnBudget.graceTurns} (${Q.turnBudget.outcome})`:"";j.push(` ${J+1}. ${Q.agent} ${Q.status}${Z?`, ${Z}`:""}${A}${Q.error?`, error: ${Q.error}`:""}`),j.push(...R(Q.children,{indent:" ",commandHints:!0}))}}return j.push(...R($.children,{indent:" ",commandHints:!0})),j.push("Commands:",` Status: subagent({ action: "status", id: "${$.id}" })`,` Interrupt: subagent({ action: "interrupt", id: "${$.id}" })`,` Resume: subagent({ action: "resume", id: "${$.id}", message: "..." })`,` Steer: subagent({ action: "steer", id: "${$.id}", message: "..." })`,` Root status: subagent({ action: "status", id: "${f}" })`),j.join(`
21
- `)}function zj(f,$={}){let j=$.asyncDirRoot??v,J=$.resultsDir??w,Q=$.state?.currentSessionId??void 0;if(f.view&&f.view!=="fleet"&&f.view!=="transcript")return{content:[{type:"text",text:`Unknown status view: ${f.view}. Valid: fleet, transcript.`}],isError:!0,details:{mode:"single",results:[]}};if(f.view==="fleet")return m$(f,{asyncDirRoot:j,resultsDir:J,kill:$.kill,now:$.now,state:$.state,childSafe:Boolean($.nested)});if(!f.id&&!f.runId&&!f.dir){if($.nested)return{content:[{type:"text",text:"Child-safe subagent status requires an id when no foreground run is active."}],isError:!0,details:{mode:"single",results:[]}};try{let K=Tf(j,{states:["queued","running"],sessionId:Q,resultsDir:J,kill:$.kill,now:$.now});if(f.view==="transcript"){if(K.length===1)return zj({...f,id:K[0].id},$);return{content:[{type:"text",text:K.length===0?"No active async run transcript is available.":`Transcript view requires an id when ${K.length} active async runs exist. Use subagent({ action: "status", view: "fleet" }) to choose one.`}],isError:!0,details:{mode:"single",results:[]}}}return{content:[{type:"text",text:R$(K)}],details:{mode:"single",results:[]}}}catch(K){return{content:[{type:"text",text:K instanceof Error?K.message:String(K)}],isError:!0,details:{mode:"single",results:[]}}}}let Z;try{let K=f.id??f.runId;if(!f.dir&&K){let B=$$(K,{asyncDirRoot:j,resultsDir:J,state:$.state,nested:$.nested});if(B?.kind==="foreground"){let H=$.state?.foregroundRuns?.get(B.id);if(H)try{return{content:[{type:"text",text:f.view==="transcript"?Mj(H,{index:f.index,lines:f.lines}):Gj(H)}],details:{mode:"single",results:[]}}}catch(O){return{content:[{type:"text",text:O instanceof Error?O.message:String(O)}],isError:!0,details:{mode:"single",results:[]}}}}if(B?.kind==="nested"){Zf(B.match.route,{resultsDir:J,kill:$.kill,now:$.now});let H=$$(K,{asyncDirRoot:j,resultsDir:J,state:$.state,nested:$.nested}),O=H?.kind==="nested"?H:B;if(f.view==="transcript")try{return{content:[{type:"text",text:P$(O.match.run,{index:f.index,lines:f.lines,sessionRoots:$.sessionRoots})}],details:{mode:"single",results:[]}}}catch(W){return{content:[{type:"text",text:W instanceof Error?W.message:String(W)}],isError:!0,details:{mode:"single",results:[]}}}return{content:[{type:"text",text:Vj(O.match.rootRunId,O.match.run)}],details:{mode:"single",results:[]}}}if(B?.kind==="async")Z=B.location;else Z={asyncDir:null,resultPath:null,resolvedId:K}}else Z=d$(f,j,J)}catch(K){return{content:[{type:"text",text:K instanceof Error?K.message:String(K)}],isError:!0,details:{mode:"single",results:[]}}}let{asyncDir:A,resultPath:X,resolvedId:Y}=Z;if(!A&&!X)return{content:[{type:"text",text:"Async run not found. Provide id or dir."}],isError:!0,details:{mode:"single",results:[]}};if(A){let K;try{K=ff(A,{resultsDir:J,kill:$.kill,now:$.now})}catch(V){return{content:[{type:"text",text:V instanceof Error?V.message:String(V)}],isError:!0,details:{mode:"single",results:[]}}}let B=K.status,H=B?.runId??Y??"unknown",O=qf.join(A,`subagent-log-${H}.md`),W=qf.join(A,"events.jsonl");if(B){if(f.view==="transcript"){if(Q&&B.sessionId!==Q)return{content:[{type:"text",text:"Transcript view is only available for async runs owned by the current session."}],isError:!0,details:{mode:"single",results:[]}};try{return{content:[{type:"text",text:rf(B,A,{index:f.index,lines:f.lines,sessionRoots:$.sessionRoots})}],details:{mode:"single",results:[]}}}catch(z){return{content:[{type:"text",text:z instanceof Error?z.message:String(z)}],isError:!0,details:{mode:"single",results:[]}}}}let V=[],C;try{let z=mf(B.runId);if(z)Zf(z,{resultsDir:J,kill:$.kill,now:$.now});V=b$(B.runId)?.children??[],Vf(B.runId,B.steps,V)}catch(z){C=`Nested status unavailable: ${z instanceof Error?z.message:String(z)}`}let S=Bf({asyncDir:A,outputFile:B.outputFile}),D=Xf({mode:B.mode,state:B.state,currentStep:B.currentStep,chainStepCount:B.chainStepCount,parallelGroups:B.parallelGroups,steps:(B.steps??[]).map((z,M)=>({index:M,agent:z.agent,status:z.status}))}),p$=new Date(B.startedAt).toISOString(),r$=B.lastUpdate?new Date(B.lastUpdate).toISOString():"n/a",J$=B.state==="running"?k(B.lastActivityAt,B.activityState):void 0,Z$=l$(B),g=[`Run: ${B.runId}`,`State: ${B.state}`,B.error?`Error: ${B.error}`:void 0,J$?`Activity: ${J$}`:void 0,Z$?`Steering: ${Z$}`:void 0,`Mode: ${B.mode}`,`Progress: ${D}`,B.pendingAppends?`Pending appends: ${B.pendingAppends}`:void 0,`Started: ${p$}`,`Updated: ${r$}`,B.turnBudget?`Turn budget: ${B.turnBudget.turnCount}/${B.turnBudget.maxTurns}+${B.turnBudget.graceTurns} (${B.turnBudget.outcome})`:void 0,`Dir: ${A}`,S?`Output: ${S}`:void 0,K.message?`Diagnosis: ${K.message}`:void 0,K.resultPath&&n.existsSync(K.resultPath)?`Result: ${K.resultPath}`:void 0].filter((z)=>Boolean(z));for(let[z,M]of(B.steps??[]).entries()){let Q$=M.status==="running"?k(M.lastActivityAt,M.activityState):void 0,A$=o(M.model,M.thinking),e$=A$?` (${A$})`:"",B$=l$(M),t$=B$?`, steering: ${B$}`:"",f0=M.error?`, error: ${M.error}`:"",$0=M.acceptance?.status?`, acceptance: ${M.acceptance.status}`:"",j0=M.turnBudget?`, turn budget: ${M.turnBudget.turnCount}/${M.turnBudget.maxTurns}+${M.turnBudget.graceTurns} (${M.turnBudget.outcome})`:"",J0=M.label?`${M.label} (${M.agent})`:M.agent,Z0=M.phase?`[${M.phase}] `:"";g.push(`${Oj(B,z)}: ${Z0}${J0} ${M.status}${e$}${Q$?`, ${Q$}`:""}${t$}${$0}${j0}${f0}`),g.push(...R(M.children,{indent:" ",commandHints:!0,maxLines:20}));let _f=qf.join(A,`output-${z}.log`);if(_f!==S&&n.existsSync(_f))g.push(` Output: ${_f}`);if(M.status==="running")g.push(` Intercom target: ${af(B.runId,M.agent,z)} (if registered)`),g.push(` Steer: subagent({ action: "steer", id: "${B.runId}", index: ${z}, message: "..." })`)}let a$=new Set((B.steps??[]).flatMap((z)=>z.children?.map((M)=>M.id)??[])),s$=V.filter((z)=>!a$.has(z.id));if(g.push(...R(s$,{indent:"",commandHints:!0,maxLines:20})),C)g.push(`Warning: ${C}`);if(B.sessionFile)g.push(`Session: ${B.sessionFile}`);if(B.state==="running")g.push(`Steer running child: subagent({ action: "steer", id: "${B.runId}", message: "..." })`);if(B.state!=="running")g.push(u$(B.runId,B.steps??[],B.sessionFile));if(n.existsSync(O))g.push(`Log: ${O}`);if(n.existsSync(W))g.push(`Events: ${W}`);return{content:[{type:"text",text:g.join(`
22
- `)}],details:{mode:"single",results:[]}}}}if(X)try{let K=n.readFileSync(X,"utf-8"),B=JSON.parse(K);if(f.view==="transcript")try{return{content:[{type:"text",text:v$(B,X,{index:f.index,lines:f.lines})}],details:{mode:"single",results:[]}}}catch(C){return{content:[{type:"text",text:C instanceof Error?C.message:String(C)}],isError:!0,details:{mode:"single",results:[]}}}let H=B.success?"complete":B.state==="paused"||B.exitCode===0?"paused":"failed",O=B.runId??B.id??Y,W=[`Run: ${O}`,`State: ${H}`,`Result: ${X}`],V=Array.isArray(B.results)?B.results:B.agent?[{agent:B.agent,sessionFile:B.sessionFile}]:[];if(W.push(u$(O,V,B.sessionFile)),B.summary)W.push("",B.summary);return{content:[{type:"text",text:W.join(`
23
- `)}],details:{mode:"single",results:[]}}}catch(K){return{content:[{type:"text",text:`Failed to read async result file: ${K instanceof Error?K.message:String(K)}`}],isError:!0,details:{mode:"single",results:[]}}}return{content:[{type:"text",text:"Status file not found."}],isError:!0,details:{mode:"single",results:[]}}}export{zj as inspectSubagentStatus};
11
+ ${X}`:A,B=((f.steps?.length)?f.steps:[{agent:"subagent",status:"running"}]).map((W)=>W.status==="running"||W.status==="pending"?{...W,status:"failed",activityState:void 0,endedAt:W.endedAt??j,durationMs:W.startedAt!==void 0&&W.durationMs===void 0?Math.max(0,j-W.startedAt):W.durationMs,exitCode:W.exitCode??1,error:W.error??Y}:W),H={...f,state:"failed",activityState:void 0,lastUpdate:j,endedAt:j,steps:B},O=B[f.currentStep??0]?.agent??B[0]?.agent??"subagent";return{status:H,message:Y,result:{id:Q,agent:O,mode:f.mode,success:!1,state:"failed",summary:Y,results:B.map((W)=>({agent:W.agent,output:W.status==="complete"||W.status==="completed"?"":Y,error:W.status==="complete"||W.status==="completed"?void 0:W.error??Y,success:W.status==="complete"||W.status==="completed",model:W.model,attemptedModels:W.attemptedModels,modelAttempts:W.modelAttempts,sessionFile:W.sessionFile})),exitCode:1,timestamp:j,durationMs:Math.max(0,j-f.startedAt),asyncDir:$,sessionId:f.sessionId,sessionFile:f.sessionFile}}}function g$(f,$,j,J,Q){let Z=u0($,f,J,Q);return i(j,Z.result),i(E.join(f,"status.json"),Z.status),m0(E.join(f,"events.jsonl"),{type:"subagent.run.repaired_stale",ts:J,runId:Z.status.runId,pid:$.pid,resultPath:j,message:Z.message}),{status:Z.status,repaired:!0,resultPath:j,message:Z.message}}function N$(f){return f==="complete"||f==="failed"||f==="paused"}function*df(f){for(let $ of f??[])yield $,yield*df($.children),yield*df($.steps?.flatMap((j)=>j.children??[]))}function Qf(f,$={}){let j=ff(f);for(let J of df(j.children)){if(J.state!=="running"&&J.state!=="queued")continue;let Q=C$(f.rootRunId,J);if(!Q)continue;let Z=$f(Q,{...$,resultsDir:E.join($.resultsDir??w,"nested",f.rootRunId)}),A=Z.status;if(!A)continue;if(!Z.repaired&&!N$(A.state))continue;let X=$.now?.()??Date.now();q$(f,{type:N$(A.state)?"subagent.nested.completed":"subagent.nested.updated",ts:X,parentRunId:J.parentRunId,parentStepIndex:J.parentStepIndex,child:_$(A,Q,{id:J.id,parentRunId:J.parentRunId,parentStepIndex:J.parentStepIndex,depth:J.depth,path:J.path,mode:J.mode,ts:X})})}}function l0(f,$=process.kill){try{return $(f,0),"alive"}catch(j){let J=typeof j==="object"&&j!==null&&"code"in j?j.code:void 0;if(J==="ESRCH")return"dead";if(J==="EPERM")return"unknown";return"unknown"}}function $f(f,$={}){let j=$.now?.()??Date.now(),J=P0(f),Q=!J&&$.startedRun?d0(f,$.startedRun,j):void 0,Z=J??Q;if(!Z)return{status:null,repaired:!1};let A=Z.runId||E.basename(f),X=E.join($.resultsDir??w,`${A}.json`);if(q.existsSync(X)){let K=Z.state==="running"||Z.state==="queued"?o0(Z,X,j):void 0;if(K)return i(E.join(f,"status.json"),K),{status:K,repaired:!0,resultPath:X,message:"Existing async result file was used to repair stale running status."};return{status:Z,repaired:!1,resultPath:X}}if(Z.state!=="running"||typeof Z.pid!=="number")return{status:J??null,repaired:!1,resultPath:X};if(!J){let K=$.startedRun?.startedAt??Z.startedAt;if(j-K<($.missingStatusGraceMs??1000))return{status:null,repaired:!1,resultPath:X}}if(l0(Z.pid,$.kill)!=="dead"){let K=$.staleAlivePidMs??86400000,B=Z.lastUpdate??Z.startedAt;if(j-B<=K)return{status:J??null,repaired:!1,resultPath:X};let H=`Async runner process ${Z.pid} still has a live PID, but status has not updated for ${j-B}ms. Marked run failed by stale-run reconciliation because PID ownership cannot be verified.`;return g$(f,Z,X,j,H)}return g$(f,Z,X,j)}function Af(f){return f instanceof Error?f.message:String(f)}function uf(f){return typeof f==="object"&&f!==null&&"code"in f&&f.code==="ENOENT"}function i0(f,$){let j=N.join(f,$);try{return Bf.statSync(j).isDirectory()}catch(J){if(uf(J))return!1;throw Error(`Failed to inspect async run path '${j}': ${Af(J)}`,{cause:J instanceof Error?J:void 0})}}function p0(f){if(!f)return;try{return Bf.statSync(f).mtimeMs}catch($){if(uf($))return;throw Error(`Failed to inspect async output file '${f}': ${Af($)}`,{cause:$ instanceof Error?$:void 0})}}function r0(f,$){if($.state!=="running")return{activityState:$.activityState,lastActivityAt:$.lastActivityAt};let j=$.outputFile?N.isAbsolute($.outputFile)?$.outputFile:N.join(f,$.outputFile):void 0,J=typeof $.currentStep==="number"?$.steps?.[$.currentStep]:void 0;return{activityState:$.activityState,lastActivityAt:$.lastActivityAt??p0(j)??J?.lastActivityAt??J?.startedAt??$.startedAt}}function a0(f,$,j=[],J){if($.sessionId!==void 0&&typeof $.sessionId!=="string")throw Error(`Invalid async status '${N.join(f,"status.json")}': sessionId must be a string.`);let{activityState:Q,lastActivityAt:Z}=r0(f,$),A=$.steps??[],X=$.chainStepCount??A.length,Y=p($.parallelGroups,A.length,X),K=[];if(j.length===0&&J)try{K=ff(J)?.children??[]}catch(H){j.push(`Nested status unavailable: ${Af(H)}`)}let B=A.map((H,O)=>{let{activityState:W,lastActivityAt:V}=H;return{index:O,agent:H.agent,...H.label?{label:H.label}:{},...H.phase?{phase:H.phase}:{},...H.outputName?{outputName:H.outputName}:{},...H.structured?{structured:H.structured}:{},status:H.status,...W?{activityState:W}:{},...V?{lastActivityAt:V}:{},...H.currentTool?{currentTool:H.currentTool}:{},...H.currentToolArgs?{currentToolArgs:H.currentToolArgs}:{},...H.currentToolStartedAt?{currentToolStartedAt:H.currentToolStartedAt}:{},...H.currentPath?{currentPath:H.currentPath}:{},...H.recentTools?{recentTools:H.recentTools.map((C)=>({...C}))}:{},...H.recentOutput?{recentOutput:[...H.recentOutput]}:{},...H.turnCount!==void 0?{turnCount:H.turnCount}:{},...H.toolCount!==void 0?{toolCount:H.toolCount}:{},...H.steerCount!==void 0?{steerCount:H.steerCount}:{},...H.lastSteerAt!==void 0?{lastSteerAt:H.lastSteerAt}:{},...H.durationMs!==void 0?{durationMs:H.durationMs}:{},...H.tokens?{tokens:H.tokens}:{},...H.totalCost?{totalCost:H.totalCost}:{},...H.skills?{skills:H.skills}:{},...H.model?{model:H.model}:{},...H.thinking?{thinking:H.thinking}:{},...H.attemptedModels?{attemptedModels:H.attemptedModels}:{},...H.error?{error:H.error}:{},...H.timedOut!==void 0?{timedOut:H.timedOut}:{},...H.turnBudget?{turnBudget:H.turnBudget}:{},...H.turnBudgetExceeded!==void 0?{turnBudgetExceeded:H.turnBudgetExceeded}:{},...H.wrapUpRequested!==void 0?{wrapUpRequested:H.wrapUpRequested}:{},...H.children?.length?{children:H.children}:{}}});return zf($.runId||N.basename(f),B,K),{id:$.runId||N.basename(f),asyncDir:f,...$.sessionId?{sessionId:$.sessionId}:{},state:$.state,...$.error?{error:$.error}:{},activityState:Q,lastActivityAt:Z,currentTool:$.currentTool,currentToolStartedAt:$.currentToolStartedAt,currentPath:$.currentPath,turnCount:$.turnCount,toolCount:$.toolCount,steerCount:$.steerCount,lastSteerAt:$.lastSteerAt,mode:$.mode,cwd:$.cwd,startedAt:$.startedAt,lastUpdate:$.lastUpdate,endedAt:$.endedAt,...$.timeoutMs!==void 0?{timeoutMs:$.timeoutMs}:{},...$.deadlineAt!==void 0?{deadlineAt:$.deadlineAt}:{},...$.timedOut!==void 0?{timedOut:$.timedOut}:{},...$.turnBudget?{turnBudget:$.turnBudget}:{},...$.turnBudgetExceeded!==void 0?{turnBudgetExceeded:$.turnBudgetExceeded}:{},...$.wrapUpRequested!==void 0?{wrapUpRequested:$.wrapUpRequested}:{},currentStep:$.currentStep,...$.chainStepCount!==void 0?{chainStepCount:$.chainStepCount}:{},...$.pendingAppends!==void 0?{pendingAppends:$.pendingAppends}:{},...Y.length?{parallelGroups:Y}:{},steps:B,...K.length?{nestedChildren:K}:{},...j.length?{nestedWarnings:j}:{},...$.sessionDir?{sessionDir:$.sessionDir}:{},...$.outputFile?{outputFile:$.outputFile}:{},...$.totalTokens?{totalTokens:$.totalTokens}:{},...$.totalCost?{totalCost:$.totalCost}:{},...$.sessionFile?{sessionFile:$.sessionFile}:{}}}function s0(f){let $=(j)=>{switch(j){case"running":return 0;case"queued":return 1;case"failed":return 2;case"paused":return 2;case"complete":return 3}};return[...f].sort((j,J)=>{let Q=$(j.state)-$(J.state);if(Q!==0)return Q;let Z=j.lastUpdate??j.endedAt??j.startedAt;return(J.lastUpdate??J.endedAt??J.startedAt)-Z})}function Cf(f,$={}){let j;try{j=Bf.readdirSync(f).filter((Y)=>i0(f,Y))}catch(Y){if(uf(Y))return[];throw Error(`Failed to list async runs in '${f}': ${Af(Y)}`,{cause:Y instanceof Error?Y:void 0})}let J=$.states?new Set($.states):void 0,Q=[],Z,A=(Y)=>{if(!Z)Z=b$();return Z.get(Y)};for(let Y of j){let K=N.join(f,Y),H=($.reconcile===!1?void 0:$f(K,{resultsDir:$.resultsDir,kill:$.kill,now:$.now}))?.status??Kf(K);if(!H)continue;if(J&&!J.has(H.state))continue;if($.sessionId&&H.sessionId!==$.sessionId)continue;let O=[],W;try{if(W=A(H.runId||N.basename(K)),W)Qf(W,{resultsDir:$.resultsDir,kill:$.kill,now:$.now})}catch(C){O.push(`Nested status unavailable: ${Af(C)}`)}let V=a0(K,H,O,W);Q.push(V)}let X=s0(Q);return $.limit!==void 0?X.slice(0,$.limit):X}function x$(f){let $=[];if(f.currentTool&&f.currentToolStartedAt!==void 0)$.push(`tool ${f.currentTool} ${u(Math.max(0,Date.now()-f.currentToolStartedAt))}`);else if(f.currentTool)$.push(`tool ${f.currentTool}`);if(f.currentPath)$.push(_(f.currentPath));if(f.turnCount!==void 0)$.push(`${f.turnCount} turns`);if(f.turnBudgetExceeded&&f.turnBudget)$.push(`turn budget exceeded ${f.turnBudget.turnCount}/${f.turnBudget.maxTurns}+${f.turnBudget.graceTurns}`);else if(f.wrapUpRequested&&f.turnBudget)$.push(`wrap-up requested ${f.turnBudget.turnCount}/${f.turnBudget.maxTurns}`);else if(f.turnBudget)$.push(`turn budget ${f.turnBudget.turnCount}/${f.turnBudget.maxTurns}+${f.turnBudget.graceTurns}`);if(f.toolCount!==void 0)$.push(`${f.toolCount} tools`);if(f.steerCount!==void 0)$.push(`${f.steerCount} steers`);if(typeof f.lastSteerAt==="number"&&Number.isFinite(f.lastSteerAt))$.push(`last steer ${new Date(f.lastSteerAt).toISOString()}`);let j=k(f.lastActivityAt,f.activityState);return j||$.length?[j,...$].filter(Boolean).join(" | "):void 0}function e0(f){let $=f.label?`${f.label} (${f.agent})`:f.agent,j=f.phase?`[${f.phase}] `:"",J=[`${f.index+1}. ${j}${$}`,f.status],Q=x$(f);if(Q)J.push(Q);let Z=d(f.model,f.thinking);if(Z)J.push(Z);if(f.durationMs!==void 0)J.push(u(f.durationMs));if(f.tokens)J.push(`${s(f.tokens.total)} tok`);return J.join(" | ")}function Xf(f){if(!f.outputFile)return;return N.isAbsolute(f.outputFile)?f.outputFile:N.join(f.asyncDir,f.outputFile)}function Yf(f){let $=f.steps.length||1,j=f.chainStepCount??$,J=p(f.parallelGroups,f.steps.length,j),Q=f.currentStep!==void 0?J.find((Z)=>f.currentStep>=Z.start&&f.currentStep<Z.start+Z.count):void 0;if(Q){let Z=f.steps.slice(Q.start,Q.start+Q.count),A=Nf(Z,Q.count,{showRunning:f.state==="running"});if(f.mode==="parallel")return A;return`step ${Q.stepIndex+1}/${j} · parallel group: ${A}`}if(f.mode==="parallel")return Nf(f.steps,$,{showRunning:f.state==="running"});if(f.mode==="chain"&&f.currentStep!==void 0&&J.length>0)return`step ${Tf(f.currentStep,j,J)+1}/${j}`;return f.currentStep!==void 0?`step ${f.currentStep+1}/${$}`:`steps ${$}`}function t0(f){let $=Yf(f),j=f.cwd?_(f.cwd):_(f.asyncDir),J=x$(f),Q=f.pendingAppends?` | ${f.pendingAppends} pending append${f.pendingAppends===1?"":"s"}`:"";return`${f.id} | ${f.state}${J?` | ${J}`:""} | ${f.mode} | ${$}${Q} | ${j}`}function w$(f,$="Active async runs"){if(f.length===0)return`No ${$.toLowerCase()}.`;let j=[`${$}: ${f.length}`,""];for(let J of f){j.push(`- ${t0(J)}`);for(let X of J.steps)j.push(` ${e0(X)}`),j.push(...x(X.children,{indent:" ",maxLines:12}));let Q=new Set(J.steps.flatMap((X)=>X.children?.map((Y)=>Y.id)??[])),Z=J.nestedChildren?.filter((X)=>!Q.has(X.id))??[];if(j.push(...x(Z,{indent:" ",maxLines:12})),J.error)j.push(` Error: ${J.error}`);for(let X of J.nestedWarnings??[])j.push(` Warning: ${X}`);let A=Xf(J);if(A)j.push(` output: ${_(A)}`);if(J.sessionFile)j.push(` session: ${_(J.sessionFile)}`);j.push("")}return j.join(`
12
+ `).trimEnd()}import*as b from"node:fs";import*as y from"node:path";var k$=80,fj=500,$j=262144;function pf(f){if(f===void 0)return k$;if(!Number.isFinite(f))return k$;return Math.max(1,Math.min(fj,Math.trunc(f)))}function c$(f){let $=new Set,j=[];for(let J of f){if(!J||$.has(J))continue;$.add(J),j.push(J)}return j}function jj(f,$){if(!$)return;return y.resolve(f,$)}function D$(f,$){let j=y.resolve(f),J=y.resolve($);return J===j||J.startsWith(`${j}${y.sep}`)}function Ff(f){return f instanceof Error?f.message:String(f)}function I$(f){return typeof f==="object"&&f!==null&&"code"in f&&f.code==="ENOENT"}function Jj(f,$){let j;try{j=b.statSync(f)}catch(Q){if(I$(Q))return{path:f,lines:[],truncated:!1};return{path:f,lines:[],truncated:!1,error:Ff(Q)}}if(j.size===0)return{path:f,lines:[],truncated:!1};let J;try{let Q=Math.min(j.size,$j),Z=j.size-Q,A=Buffer.alloc(Q);J=b.openSync(f,"r");let X=b.readSync(J,A,0,Q,Z),K=A.subarray(0,X).toString("utf-8").split(/\r?\n/);if(Z>0&&K.length>0)K=K.slice(1);if(K.at(-1)==="")K=K.slice(0,-1);return{path:f,lines:K.slice(-$),truncated:Z>0||K.length>$}}catch(Q){return{path:f,lines:[],truncated:!1,error:Ff(Q)}}finally{if(J!==void 0)b.closeSync(J)}}function n$(f,$,j,J){if(j.length===0)return{path:f,lines:[],truncated:!1,error:`Refusing to read ${J} transcript path without a trusted root: ${f}`};let Q=y.resolve(f);if(!j.some((Y)=>D$(Y,Q)))return{path:f,lines:[],truncated:!1,error:`Refusing to read ${J} transcript path outside trusted roots: ${f}`};let Z;try{Z=b.lstatSync(Q)}catch(Y){if(I$(Y))return{path:f,lines:[],truncated:!1};return{path:f,lines:[],truncated:!1,error:Ff(Y)}}if(Z.isSymbolicLink())return{path:f,lines:[],truncated:!1,error:`Refusing to read symlink ${J} transcript path: ${f}`};if(!Z.isFile())return{path:f,lines:[],truncated:!1,error:`Refusing to read non-file ${J} transcript path: ${f}`};let A,X;try{A=b.realpathSync(Q),X=j.filter((Y)=>b.existsSync(Y)).map((Y)=>b.realpathSync(Y))}catch(Y){return{path:f,lines:[],truncated:!1,error:Ff(Y)}}if(!X.some((Y)=>D$(Y,A)))return{path:f,lines:[],truncated:!1,error:`Refusing to read ${J} transcript path outside trusted roots: ${f}`};return Jj(Q,$)}function lf(f,$=240){let j;if(typeof f==="string")j=f;else j=JSON.stringify(f);return j.length>$?`${j.slice(0,$)}…`:j}function Zj(f){if(typeof f==="string")return f;if(!Array.isArray(f))return"";return f.map(($)=>{if(!$||typeof $!=="object")return"";let j=$;if(typeof j.text==="string")return j.text;if(j.type==="toolCall"||j.type==="tool_call")return`[tool: ${typeof j.name==="string"?j.name:typeof j.toolName==="string"?j.toolName:"tool"}${j.args===void 0?"":` ${lf(j.args)}`}]`;if(j.type==="toolResult"||j.type==="tool_result")return`[tool result${j.result===void 0?"":`: ${lf(j.result)}`}]`;if(j.content!==void 0)return lf(j.content);return""}).filter(Boolean).join(`
13
+ `)}function Qj(f){if(!f||typeof f!=="object")return;let $=f,j=$.message&&typeof $.message==="object"?$.message:$,J=typeof j.role==="string"?j.role:void 0;if(!J)return;let Q=Zj(j.content).trim();if(!Q)return;return`${J}: ${Q}`}function m$(f,$,j){let J=n$(f,Math.max($*4,$),j,"session"),Q=[];if(J.error)Q.push(`Session read failed for ${f}: ${J.error}`);let Z=[],A=0;for(let X of J.lines){if(!X.trim())continue;try{let Y=JSON.parse(X),K=Qj(Y);if(K)Z.push(K)}catch{A++}}if(A>0)Q.push(`Skipped ${A} malformed session tail line${A===1?"":"s"}.`);return{lines:Z.slice(-$),warnings:Q}}function bf(f){let $=[];if(f.currentTool&&f.currentToolStartedAt!==void 0)$.push(`tool ${f.currentTool} ${u(Math.max(0,Date.now()-f.currentToolStartedAt))}`);else if(f.currentTool)$.push(`tool ${f.currentTool}`);if(f.currentPath)$.push(_(f.currentPath));if(f.turnCount!==void 0)$.push(`${f.turnCount} turns`);if(f.toolCount!==void 0)$.push(`${f.toolCount} tools`);if(f.tokens?.total)$.push(`${s(f.tokens.total)} tok`);let j=k(f.lastActivityAt,f.activityState);return j||$.length?[j,...$].filter(Boolean).join(" | "):void 0}function Aj(f){if(f.mode==="single"&&f.currentAgent)return f.currentAgent;return f.mode}function Bj(f){if(f.length===0)return[];let $=["Foreground runs:"],j=[...f].sort((J,Q)=>Q.updatedAt-J.updatedAt);for(let J of j){let Q=bf({activityState:J.currentActivityState,lastActivityAt:J.lastActivityAt,currentTool:J.currentTool,currentToolStartedAt:J.currentToolStartedAt,currentPath:J.currentPath,turnCount:J.turnCount,toolCount:J.toolCount,...J.tokens!==void 0?{tokens:{total:J.tokens}}:{}}),Z=J.currentAgent?` | ${J.currentAgent}${J.currentIndex!==void 0?` #${J.currentIndex}`:""}`:"";$.push(`- ${J.runId} | running | ${Aj(J)}${Z}${Q?` | ${Q}`:""}`),$.push(` status: subagent({ action: "status", id: "${J.runId}" })`),$.push(" transcript: live in the expanded foreground result; persisted session transcript appears after completion when sessions are enabled."),$.push(...x(J.nestedChildren,{indent:" ",commandHints:!0,maxLines:12}))}return $}function Xj(f){if(f.length===0)return[];let $=["Async runs:"];for(let j of f){let J=Yf(j),Q=bf(j),Z=j.cwd?_(j.cwd):_(j.asyncDir),A=j.pendingAppends?` | ${j.pendingAppends} pending append${j.pendingAppends===1?"":"s"}`:"";$.push(`- ${j.id} | ${j.state}${Q?` | ${Q}`:""} | ${j.mode} | ${J}${A} | ${Z}`),$.push(` status: subagent({ action: "status", id: "${j.id}" })`),$.push(` transcript: subagent({ action: "status", id: "${j.id}", view: "transcript" })`);for(let B of j.steps){let H=B.label?`${B.label} (${B.agent})`:B.agent,O=B.phase?`[${B.phase}] `:"",W=bf(B),V=d(B.model,B.thinking),C=[`${B.index}. ${O}${H}`,B.status,W,V].filter(Boolean);$.push(` ${C.join(" | ")}`);let S=y.join(j.asyncDir,`output-${B.index}.log`);if(b.existsSync(S))$.push(` output: ${_(S)}`);if(B.sessionFile)$.push(` session: ${_(B.sessionFile)}`);if(B.status==="running"||B.recentOutput?.length||b.existsSync(S))$.push(` transcript: subagent({ action: "status", id: "${j.id}", index: ${B.index}, view: "transcript" })`);$.push(...x(B.children,{indent:" ",commandHints:!0,maxLines:12}))}let X=new Set(j.steps.flatMap((B)=>B.children?.map((H)=>H.id)??[])),Y=j.nestedChildren?.filter((B)=>!X.has(B.id))??[];if($.push(...x(Y,{indent:" ",commandHints:!0,maxLines:12})),j.error)$.push(` error: ${j.error}`);for(let B of j.nestedWarnings??[])$.push(` warning: ${B}`);let K=Xf(j);if(K)$.push(` output: ${_(K)}`);if(j.sessionFile)$.push(` session: ${_(j.sessionFile)}`)}return $}function P$(f,$={}){if($.childSafe)return{content:[{type:"text",text:'Child-safe subagent fleet view is unavailable without an explicit run id. Use subagent({ action: "status", id: "..." }) for the delegated run you can see.'}],isError:!0,details:{mode:"management",results:[]}};let j;try{j=Cf($.asyncDirRoot??h,{states:["queued","running"],sessionId:$.state?.currentSessionId??void 0,resultsDir:$.resultsDir??w,kill:$.kill,now:$.now})}catch(Y){return{content:[{type:"text",text:Y instanceof Error?Y.message:String(Y)}],isError:!0,details:{mode:"management",results:[]}}}let J=$.state?[...$.state.foregroundControls.values()]:[],Q=J.length+j.length;if(Q===0)return{content:[{type:"text",text:'No active subagent fleet. Background runs that already finished are available through completion notifications or subagent({ action: "status", id: "..." }).'}],details:{mode:"management",results:[]}};let Z=[`Subagent fleet: ${Q} active`,""],A=Bj(J);if(A.length)Z.push(...A,"");let X=Xj(j);if(X.length)Z.push(...X,"");return Z.push("Commands:"),Z.push(' Refresh fleet: subagent({ action: "status", view: "fleet" })'),Z.push(' Tail run transcript: subagent({ action: "status", id: "<run-id>", view: "transcript" })'),Z.push(' Tail child transcript: subagent({ action: "status", id: "<run-id>", index: 0, view: "transcript" })'),{content:[{type:"text",text:Z.join(`
14
+ `).trimEnd()}],details:{mode:"management",results:[]}}}function Yj(f,$){if(f===void 0)return;if(!Number.isInteger(f))throw Error("Transcript index must be an integer.");if(f<0||f>=$.length)throw Error(`Transcript index ${f} is out of range for ${$.length} child step${$.length===1?"":"s"}.`);return f}function Hj(f,$){let j=f.steps??[],J=Yj($.index,j);if(J===void 0){if(f.state==="running"&&typeof f.currentStep==="number"&&f.currentStep>=0&&f.currentStep<j.length)J=f.currentStep;else if(j.length===1)J=0}let Q=J!==void 0?j[J]:void 0,Z=$.index===void 0&&j.length>1?`Tip: pass index to inspect a specific child transcript (${j.map((A,X)=>`${X}=${A.agent}`).join(", ")}).`:void 0;return{index:J,step:Q,hint:Z}}function Kj(f,$,j){if($===void 0||!j)return;let J=d(j.model,j.thinking);return[`${f==="parallel"?"Agent":"Step"}: ${$} (${j.agent})`,j.status,bf(j),J,j.error?`error: ${j.error}`:void 0].filter(Boolean).join(" | ")}function rf(f,$){let j=[];for(let J of $.outputPaths)j.push(`Output: ${J}`);if($.sessionFile)j.push(`Session: ${$.sessionFile}`);if($.eventsPath)j.push(`Events: ${$.eventsPath}`);if($.logPath)j.push(`Log: ${$.logPath}`);if($.resultPath)j.push(`Result: ${$.resultPath}`);if(!j.length)return;f.push("Artifacts:");for(let J of j)f.push(` ${J}`)}function Sf(f,$,j,J){if(f.push(`${$}${J?" (tail truncated)":""}:`),j.length===0){f.push(" (no transcript lines available yet)");return}for(let Q of j)f.push(` ${Q}`)}function af(f,$,j={}){let J=pf(j.lines),Q=Hj(f,j),Z=Q.index!==void 0?y.join($,`output-${Q.index}.log`):void 0,A=jj($,f.outputFile),X=y.join($,`subagent-log-${f.runId}.md`),Y=Q.index!==void 0?c$([Z,A&&Z&&y.resolve(A)===y.resolve(Z)?A:void 0]):c$([A]),K=Q.index!==void 0?Q.step?.sessionFile:f.sessionFile,B=y.join($,"events.jsonl"),H=[`Run: ${f.runId}`,`State: ${f.state}`,`Mode: ${f.mode}`,Kj(f.mode,Q.index,Q.step),Q.hint].filter((S)=>Boolean(S));rf(H,{outputPaths:Y,sessionFile:K,eventsPath:b.existsSync(B)?B:void 0,logPath:b.existsSync(X)?X:void 0});let O=[],W=[],V="Transcript tail",C=!1;for(let S of Y){let n=n$(S,J,[$],"output");if(n.error)O.push(`Output read failed for ${n.path}: ${n.error}`);if(n.lines.length===0)continue;W=n.lines,V=`Transcript tail from ${n.path}`,C=n.truncated;break}if(W.length===0&&Q.step?.recentOutput?.length)W=Q.step.recentOutput.slice(-J),V="Recent output from status.json";if(W.length===0&&K){let S=m$(K,J,j.sessionRoots??[]);if(W=S.lines,O.push(...S.warnings),W.length>0)V=`Session transcript tail from ${K}`}if(O.length){H.push("Warnings:");for(let S of O)H.push(` ${S}`)}return Sf(H,V,W,C),H.join(`
15
+ `)}function v$(f,$={}){if(f.asyncDir){let Z=Kf(f.asyncDir);if(Z)return af(Z,f.asyncDir,$)}let j=pf($.lines),J=[`Nested run: ${f.id}`,`State: ${f.state}`,f.mode?`Mode: ${f.mode}`:void 0,f.agent?`Agent: ${f.agent}`:f.agents?.length?`Agents: ${f.agents.join(", ")}`:void 0].filter((Z)=>Boolean(Z));if(rf(J,{outputPaths:[],sessionFile:f.sessionFile}),!f.sessionFile)return Sf(J,"Transcript tail",[],!1),J.join(`
16
+ `);let Q=m$(f.sessionFile,j,$.sessionRoots??[]);if(Q.warnings.length){J.push("Warnings:");for(let Z of Q.warnings)J.push(` ${Z}`)}return Sf(J,`Session transcript tail from ${f.sessionFile}`,Q.lines,!1),J.join(`
17
+ `)}function h$(f,$,j={}){let J=pf(j.lines),Q=f.runId??f.id??y.basename($,".json"),Z=Array.isArray(f.results)?f.results:f.agent?[{agent:f.agent,output:f.output,summary:f.summary,sessionFile:f.sessionFile,state:f.state,success:f.success,exitCode:f.exitCode}]:[],A=j.index;if(A!==void 0&&!Number.isInteger(A))throw Error("Transcript index must be an integer.");if(A===void 0&&Z.length===1)A=0;if(A!==void 0&&(A<0||A>=Z.length))throw Error(`Transcript index ${A} is out of range for ${Z.length} result child${Z.length===1?"":"ren"}.`);let X=A!==void 0?Z[A]:void 0,Y=A!==void 0?X?.output??X?.summary??(Z.length===1?f.output??f.summary:void 0)??"":f.output??f.summary??"",K=Y.split(/\r?\n/).slice(-J),B=X?.sessionFile??f.sessionFile,H=[`Run: ${Q}`,`State: ${f.state??(f.success?"complete":"failed")}`,A!==void 0&&X?`Child: ${A} (${X.agent??"subagent"})`:void 0,A===void 0&&Z.length>1?`Tip: pass index to inspect a specific child transcript (${Z.map((O,W)=>`${W}=${O.agent??"subagent"}`).join(", ")}).`:void 0].filter((O)=>Boolean(O));return rf(H,{outputPaths:[],sessionFile:B,resultPath:$}),Sf(H,"Result transcript tail",K.filter((O)=>O.trim()),Y.split(/\r?\n/).length>J),H.join(`
18
+ `)}function o$(f){return f.trim().toLowerCase().replace(/[^a-z0-9_-]+/g,"-").replace(/^-+|-+$/g,"")||"agent"}function sf(f,$,j){let J=j!==void 0?`-${j+1}`:"";return`subagent-${o$($)}-${o$(f)}${J}`}import*as P from"node:fs";import*as T from"node:path";var QJ=process.platform==="win32"?"SIGBREAK":"SIGUSR2";var WJ=process.platform==="win32"?"SIGBREAK":"SIGUSR2";function ef(f,$){if(f===void 0)return;if(f.trim()==="")throw Error(`${$} must not be empty.`);if(T.isAbsolute(f)||/[\\/]/.test(f)||f.includes(".."))throw Error(`${$} must be an async run id or prefix, not a path.`);return f}function qf(f,$,j){let J=T.resolve(f),Q=T.resolve($),Z=T.relative(J,Q);if(Z===""||!Z.startsWith("..")&&!T.isAbsolute(Z))return;throw Error(`${j} must be inside ${J}.`)}function d$(f,$,j=""){if(!P.existsSync(f))return[];return P.readdirSync(f).filter((J)=>J.startsWith($)&&(!j||J.endsWith(j))).map((J)=>j?J.slice(0,-j.length):J).sort()}function tf(f,$){let j=T.join(f,`${$}.json`);return qf(f,j,"Async result file"),P.existsSync(j)?j:null}function f$(f,$,j){let J=ef(f,"id");if(!J)return[];let Q=T.resolve($),Z=T.resolve(j);return[...new Set([...d$(Q,J),...d$(Z,J,".json")])].sort().map((X)=>{let Y=T.join(Q,X);return qf(Q,Y,"Async run directory"),{id:X,location:{asyncDir:P.existsSync(Y)?Y:null,resultPath:tf(Z,X),resolvedId:X}}})}function u$(f,$,j){let J=T.resolve($),Q=T.resolve(j),Z=ef(f.id,"id")??ef(f.runId,"runId");if(f.dir){let K=T.resolve(f.dir);qf(J,K,"Async run directory");let B=Z??T.basename(K);if(Z&&Z!==T.basename(K))throw Error(`Async run id '${Z}' does not match directory '${T.basename(K)}'.`);return{asyncDir:K,resultPath:tf(Q,B),resolvedId:B}}if(!Z)return{asyncDir:null,resultPath:null};let A=T.join(J,Z);qf(J,A,"Async run directory");let X=tf(Q,Z);if(P.existsSync(A)||X)return{asyncDir:P.existsSync(A)?A:null,resultPath:X,resolvedId:Z};let Y=f$(Z,J,Q);if(Y.length===0)return{asyncDir:null,resultPath:null,resolvedId:Z};if(Y.length>1)throw Error(`Ambiguous async run id prefix '${Z}' matched: ${Y.map((K)=>K.id).join(", ")}. Provide a longer id.`);return Y[0].location}import*as Hf from"node:fs";import*as $$ from"node:path";function Wj(f,$,j){let J=$$.join($,f),Q=$$.join(j,`${f}.json`);if(!Hf.existsSync(J)&&!Hf.existsSync(Q))return;return{asyncDir:Hf.existsSync(J)?J:null,resultPath:Hf.existsSync(Q)?Q:null,resolvedId:f}}function Lj(f){if(!f)return[];return[...new Set([...f.foregroundControls.keys(),...f.foregroundRuns?.keys()??[]])]}function Oj(f){if(!f)return;let $=[],j=new Set,J=(Q)=>{if(!Q)return;let Z=`${Q.rootRunId}:${Q.eventSink}:${Q.controlInbox}`;if(j.has(Z))return;j.add(Z),$.push(Q)};for(let Q of f.foregroundControls.values())J(Q.nestedRoute);for(let Q of f.asyncJobs.values())J(Q.nestedRoute);return{routes:$}}function Uj(f,$,j){return f$(f,$,j)}function j$(f,$={}){mf("id",f);let j=$.asyncDirRoot??h,J=$.resultsDir??w,Q=$.nested??Oj($.state);if($.state?.foregroundControls.has(f)||$.state?.foregroundRuns?.has(f))return{kind:"foreground",id:f};let Z=Wj(f,j,J);if(Z)return{kind:"async",id:f,location:Z};let A=vf(f,Q?{scope:Q}:{});if(A.length>1)throw Error(`Nested run id '${f}' is ambiguous across authorized registries. Provide the full id after stale registries are cleaned up.`);if(A[0])return{kind:"nested",id:f,match:A[0]};let X=[];for(let B of Lj($.state).filter((H)=>H.startsWith(f)))X.push({kind:"foreground",id:B});for(let B of Uj(f,j,J))X.push({kind:"async",id:B.id,location:B.location});for(let B of vf(f,Q?{prefix:!0,scope:Q}:{prefix:!0}))X.push({kind:"nested",id:B.run.id,match:B});let K=[...new Map(X.map((B)=>[`${B.kind}:${B.id}`,B])).values()];if(K.length>1)throw Error(`Ambiguous subagent run id prefix '${f}' matched: ${K.map((B)=>`${B.kind}:${B.id}`).join(", ")}. Provide a longer id.`);return K[0]}function J$(f){return typeof f==="string"&&I.existsSync(f)}function l$(f,$,j){let J=$.map((A,X)=>({child:A,index:X})).filter(({child:A})=>typeof A.agent==="string");if(!f||J.length===0)return"Resume: unavailable; no child session file was persisted.";let Q=J[0]?.child.sessionFile??j;if($.length===1&&J.length===1&&J$(Q))return`Revive: subagent({ action: "resume", id: "${f}", message: "..." })`;let Z=J.find(({child:A})=>J$(A.sessionFile));if(Z)return`Revive child: subagent({ action: "resume", id: "${f}", index: ${Z.index}, message: "..." })`;return"Resume: unavailable; no child session file was persisted."}function Gj(f,$){let j=f.steps??[];if(f.mode==="parallel")return`Agent ${$+1}/${j.length||1}`;if(f.mode==="chain"){let J=f.chainStepCount??(j.length||1),Q=p(f.parallelGroups,j.length,J),Z=Q.find((A)=>$>=A.start&&$<A.start+A.count);if(Z)return`Step ${Z.stepIndex+1}/${J} Agent ${$-Z.start+1}/${Z.count}`;return`Step ${Tf($,J,Q)+1}/${J}`}return`Step ${$+1}`}function Mj(f){if(f.agent)return f.agent;if(f.agents?.length)return f.agents.join(", ");return f.id}function i$(f){let $=[];if(f.steerCount!==void 0)$.push(`${f.steerCount} steer${f.steerCount===1?"":"s"}`);if(typeof f.lastSteerAt==="number"&&Number.isFinite(f.lastSteerAt))$.push(`last ${new Date(f.lastSteerAt).toISOString()}`);return $.length?$.join(", "):void 0}function p$(f){let $=f.artifactPaths?.outputPath;if($&&I.existsSync($))try{let j=I.readFileSync($,"utf-8").trim();if(j)return j}catch{}return f.finalOutput??""}function Vj(f){let $=[`Run: ${f.runId}`,"State: remembered foreground",`Mode: ${f.mode}`,`Updated: ${new Date(f.updatedAt).toISOString()}`,`Cwd: ${f.cwd}`];for(let J of f.children){let Q=p$(J).trim().split(/\r?\n/).find((A)=>A.trim()),Z=[`${J.index+1}. ${J.agent} ${J.status}`,J.exitCode!==void 0?`exit ${J.exitCode}`:void 0,J.detachedReason?`detached: ${J.detachedReason}`:void 0,Q?`output: ${Q.slice(0,160)}`:void 0].filter(Boolean);if($.push(Z.join(", ")),J.sessionFile)$.push(` Session: ${J.sessionFile}`);if(J.transcriptPath)$.push(` Transcript: ${J.transcriptPath}`);if(J.artifactPaths?.outputPath)$.push(` Output: ${J.artifactPaths.outputPath}`);if(J.transcriptError)$.push(` Transcript warning: ${J.transcriptError}`)}if($.push("",`Status: subagent({ action: "status", id: "${f.runId}" })`),f.children.length===1)$.push(`Transcript: subagent({ action: "status", id: "${f.runId}", view: "transcript" })`);else $.push(`Transcript: subagent({ action: "status", id: "${f.runId}", index: 0, view: "transcript" })`);let j=f.children.find((J)=>J.status!=="detached"&&J$(J.sessionFile));if(j)$.push(f.children.length===1?`Revive: subagent({ action: "resume", id: "${f.runId}", message: "..." })`:`Revive child: subagent({ action: "resume", id: "${f.runId}", index: ${j.index}, message: "..." })`);else if(f.children.some((J)=>J.status==="detached"))$.push("Recovery: child detached for intercom coordination; status will show recovered output after the child exits when DM can observe it.");else $.push("Resume: unavailable; no child session file was persisted.");return $.join(`
19
+ `)}function zj(f,$){let j=$.index;if(j!==void 0&&!Number.isInteger(j))throw Error("Transcript index must be an integer.");if(j===void 0&&f.children.length===1)j=0;if(j===void 0)return`Transcript view requires index for foreground run '${f.runId}' with ${f.children.length} children.`;if(j<0||j>=f.children.length)throw Error(`Transcript index ${j} is out of range for ${f.children.length} foreground children.`);let J=f.children[j],Q=Math.max(1,Math.min($.lines??80,1000)),Z=p$(J).split(/\r?\n/).filter((X)=>X.trim()).slice(-Q),A=[`Run: ${f.runId}`,`State: ${J.status}`,`Child: ${j} (${J.agent})`,J.sessionFile?`Session: ${J.sessionFile}`:void 0,J.transcriptPath?`Transcript: ${J.transcriptPath}`:void 0,J.artifactPaths?.outputPath?`Output: ${J.artifactPaths.outputPath}`:void 0].filter((X)=>Boolean(X));if(A.push("Result transcript tail:"),Z.length===0)A.push(" (no recovered final output available yet)");else for(let X of Z)A.push(` ${X}`);return A.join(`
20
+ `)}function Tj(f,$){let j=[`Nested run: ${$.id}`,`Root: ${f}`,`Parent: ${$.parentRunId}${$.parentStepIndex!==void 0?` step ${$.parentStepIndex+1}`:""}`,`State: ${$.state}`,$.activityState||$.lastActivityAt?`Activity: ${k($.lastActivityAt,$.activityState)}`:void 0,$.mode?`Mode: ${$.mode}`:void 0,`Agent: ${Mj($)}`,$.currentStep!==void 0?`Progress: step ${$.currentStep+1}/${$.chainStepCount??$.steps?.length??1}`:void 0,$.turnBudget?`Turn budget: ${$.turnBudget.turnCount}/${$.turnBudget.maxTurns}+${$.turnBudget.graceTurns} (${$.turnBudget.outcome})`:void 0,$.asyncDir?`Dir: ${$.asyncDir}`:void 0,$.sessionFile?`Session: ${$.sessionFile}`:void 0,$.error?`Error: ${$.error}`:void 0].filter((J)=>Boolean(J));if($.path.length)j.push(`Path: ${$.path.map((J)=>`${J.runId}${J.stepIndex!==void 0?`:${J.stepIndex+1}`:""}${J.agent?`:${J.agent}`:""}`).join(" > ")} > ${$.id}`);if($.steps?.length){j.push("Steps:");for(let[J,Q]of $.steps.entries()){let Z=Q.status==="running"?k(Q.lastActivityAt,Q.activityState):void 0,A=Q.turnBudget?`, turn budget: ${Q.turnBudget.turnCount}/${Q.turnBudget.maxTurns}+${Q.turnBudget.graceTurns} (${Q.turnBudget.outcome})`:"";j.push(` ${J+1}. ${Q.agent} ${Q.status}${Z?`, ${Z}`:""}${A}${Q.error?`, error: ${Q.error}`:""}`),j.push(...x(Q.children,{indent:" ",commandHints:!0}))}}return j.push(...x($.children,{indent:" ",commandHints:!0})),j.push("Commands:",` Status: subagent({ action: "status", id: "${$.id}" })`,` Interrupt: subagent({ action: "interrupt", id: "${$.id}" })`,` Resume: subagent({ action: "resume", id: "${$.id}", message: "..." })`,` Steer: subagent({ action: "steer", id: "${$.id}", message: "..." })`,` Root status: subagent({ action: "status", id: "${f}" })`),j.join(`
21
+ `)}function Cj(f,$={}){let j=$.asyncDirRoot??h,J=$.resultsDir??w,Q=$.state?.currentSessionId??void 0;if(f.view&&f.view!=="fleet"&&f.view!=="transcript")return{content:[{type:"text",text:`Unknown status view: ${f.view}. Valid: fleet, transcript.`}],isError:!0,details:{mode:"single",results:[]}};if(f.view==="fleet")return P$(f,{asyncDirRoot:j,resultsDir:J,kill:$.kill,now:$.now,state:$.state,childSafe:Boolean($.nested)});if(!f.id&&!f.runId&&!f.dir){if($.nested)return{content:[{type:"text",text:"Child-safe subagent status requires an id when no foreground run is active."}],isError:!0,details:{mode:"single",results:[]}};try{let K=Cf(j,{states:["queued","running"],sessionId:Q,resultsDir:J,kill:$.kill,now:$.now});if(f.view==="transcript"){if(K.length===1)return Cj({...f,id:K[0].id},$);return{content:[{type:"text",text:K.length===0?"No active async run transcript is available.":`Transcript view requires an id when ${K.length} active async runs exist. Use subagent({ action: "status", view: "fleet" }) to choose one.`}],isError:!0,details:{mode:"single",results:[]}}}return{content:[{type:"text",text:w$(K)}],details:{mode:"single",results:[]}}}catch(K){return{content:[{type:"text",text:K instanceof Error?K.message:String(K)}],isError:!0,details:{mode:"single",results:[]}}}}let Z;try{let K=f.id??f.runId;if(!f.dir&&K){let B=j$(K,{asyncDirRoot:j,resultsDir:J,state:$.state,nested:$.nested});if(B?.kind==="foreground"){let H=$.state?.foregroundRuns?.get(B.id);if(H)try{return{content:[{type:"text",text:f.view==="transcript"?zj(H,{index:f.index,lines:f.lines}):Vj(H)}],details:{mode:"single",results:[]}}}catch(O){return{content:[{type:"text",text:O instanceof Error?O.message:String(O)}],isError:!0,details:{mode:"single",results:[]}}}}if(B?.kind==="nested"){Qf(B.match.route,{resultsDir:J,kill:$.kill,now:$.now});let H=j$(K,{asyncDirRoot:j,resultsDir:J,state:$.state,nested:$.nested}),O=H?.kind==="nested"?H:B;if(f.view==="transcript")try{return{content:[{type:"text",text:v$(O.match.run,{index:f.index,lines:f.lines,sessionRoots:$.sessionRoots})}],details:{mode:"single",results:[]}}}catch(W){return{content:[{type:"text",text:W instanceof Error?W.message:String(W)}],isError:!0,details:{mode:"single",results:[]}}}return{content:[{type:"text",text:Tj(O.match.rootRunId,O.match.run)}],details:{mode:"single",results:[]}}}if(B?.kind==="async")Z=B.location;else Z={asyncDir:null,resultPath:null,resolvedId:K}}else Z=u$(f,j,J)}catch(K){return{content:[{type:"text",text:K instanceof Error?K.message:String(K)}],isError:!0,details:{mode:"single",results:[]}}}let{asyncDir:A,resultPath:X,resolvedId:Y}=Z;if(!A&&!X)return{content:[{type:"text",text:"Async run not found. Provide id or dir."}],isError:!0,details:{mode:"single",results:[]}};if(A){let K;try{K=$f(A,{resultsDir:J,kill:$.kill,now:$.now})}catch(V){return{content:[{type:"text",text:V instanceof Error?V.message:String(V)}],isError:!0,details:{mode:"single",results:[]}}}let B=K.status,H=B?.runId??Y??"unknown",O=_f.join(A,`subagent-log-${H}.md`),W=_f.join(A,"events.jsonl");if(B){if(f.view==="transcript"){if(Q&&B.sessionId!==Q)return{content:[{type:"text",text:"Transcript view is only available for async runs owned by the current session."}],isError:!0,details:{mode:"single",results:[]}};try{return{content:[{type:"text",text:af(B,A,{index:f.index,lines:f.lines,sessionRoots:$.sessionRoots})}],details:{mode:"single",results:[]}}}catch(z){return{content:[{type:"text",text:z instanceof Error?z.message:String(z)}],isError:!0,details:{mode:"single",results:[]}}}}let V=[],C;try{let z=Pf(B.runId);if(z)Qf(z,{resultsDir:J,kill:$.kill,now:$.now});V=S$(B.runId)?.children??[],zf(B.runId,B.steps,V)}catch(z){C=`Nested status unavailable: ${z instanceof Error?z.message:String(z)}`}let S=Xf({asyncDir:A,outputFile:B.outputFile}),n=Yf({mode:B.mode,state:B.state,currentStep:B.currentStep,chainStepCount:B.chainStepCount,parallelGroups:B.parallelGroups,steps:(B.steps??[]).map((z,M)=>({index:M,agent:z.agent,status:z.status}))}),r$=new Date(B.startedAt).toISOString(),a$=B.lastUpdate?new Date(B.lastUpdate).toISOString():"n/a",Z$=B.state==="running"?k(B.lastActivityAt,B.activityState):void 0,Q$=i$(B),g=[`Run: ${B.runId}`,`State: ${B.state}`,B.error?`Error: ${B.error}`:void 0,Z$?`Activity: ${Z$}`:void 0,Q$?`Steering: ${Q$}`:void 0,`Mode: ${B.mode}`,`Progress: ${n}`,B.pendingAppends?`Pending appends: ${B.pendingAppends}`:void 0,`Started: ${r$}`,`Updated: ${a$}`,B.turnBudget?`Turn budget: ${B.turnBudget.turnCount}/${B.turnBudget.maxTurns}+${B.turnBudget.graceTurns} (${B.turnBudget.outcome})`:void 0,`Dir: ${A}`,S?`Output: ${S}`:void 0,K.message?`Diagnosis: ${K.message}`:void 0,K.resultPath&&I.existsSync(K.resultPath)?`Result: ${K.resultPath}`:void 0].filter((z)=>Boolean(z));for(let[z,M]of(B.steps??[]).entries()){let A$=M.status==="running"?k(M.lastActivityAt,M.activityState):void 0,B$=d(M.model,M.thinking),t$=B$?` (${B$})`:"",X$=i$(M),f0=X$?`, steering: ${X$}`:"",$0=M.error?`, error: ${M.error}`:"",j0=M.acceptance?.status?`, acceptance: ${M.acceptance.status}`:"",J0=M.turnBudget?`, turn budget: ${M.turnBudget.turnCount}/${M.turnBudget.maxTurns}+${M.turnBudget.graceTurns} (${M.turnBudget.outcome})`:"",Z0=M.label?`${M.label} (${M.agent})`:M.agent,Q0=M.phase?`[${M.phase}] `:"";g.push(`${Gj(B,z)}: ${Q0}${Z0} ${M.status}${t$}${A$?`, ${A$}`:""}${f0}${j0}${J0}${$0}`),g.push(...x(M.children,{indent:" ",commandHints:!0,maxLines:20}));let yf=_f.join(A,`output-${z}.log`);if(yf!==S&&I.existsSync(yf))g.push(` Output: ${yf}`);if(M.status==="running")g.push(` Intercom target: ${sf(B.runId,M.agent,z)} (if registered)`),g.push(` Steer: subagent({ action: "steer", id: "${B.runId}", index: ${z}, message: "..." })`)}let s$=new Set((B.steps??[]).flatMap((z)=>z.children?.map((M)=>M.id)??[])),e$=V.filter((z)=>!s$.has(z.id));if(g.push(...x(e$,{indent:"",commandHints:!0,maxLines:20})),C)g.push(`Warning: ${C}`);if(B.sessionFile)g.push(`Session: ${B.sessionFile}`);if(B.state==="running")g.push(`Steer running child: subagent({ action: "steer", id: "${B.runId}", message: "..." })`);if(B.state!=="running")g.push(l$(B.runId,B.steps??[],B.sessionFile));if(I.existsSync(O))g.push(`Log: ${O}`);if(I.existsSync(W))g.push(`Events: ${W}`);return{content:[{type:"text",text:g.join(`
22
+ `)}],details:{mode:"single",results:[]}}}}if(X)try{let K=I.readFileSync(X,"utf-8"),B=JSON.parse(K);if(f.view==="transcript")try{return{content:[{type:"text",text:h$(B,X,{index:f.index,lines:f.lines})}],details:{mode:"single",results:[]}}}catch(C){return{content:[{type:"text",text:C instanceof Error?C.message:String(C)}],isError:!0,details:{mode:"single",results:[]}}}let H=B.success?"complete":B.state==="paused"||B.exitCode===0?"paused":"failed",O=B.runId??B.id??Y,W=[`Run: ${O}`,`State: ${H}`,`Result: ${X}`],V=Array.isArray(B.results)?B.results:B.agent?[{agent:B.agent,sessionFile:B.sessionFile}]:[];if(W.push(l$(O,V,B.sessionFile)),B.summary)W.push("",B.summary);return{content:[{type:"text",text:W.join(`
23
+ `)}],details:{mode:"single",results:[]}}}catch(K){return{content:[{type:"text",text:`Failed to read async result file: ${K instanceof Error?K.message:String(K)}`}],isError:!0,details:{mode:"single",results:[]}}}return{content:[{type:"text",text:"Status file not found."}],isError:!0,details:{mode:"single",results:[]}}}export{Cj as inspectSubagentStatus};
@@ -1,11 +1,11 @@
1
- import*as H from"node:fs";import*as V from"node:path";import*as q$ from"node:fs";import*as T from"node:path";var H$=[10,25,50,100,200,500,1000,2000,4000],U$=new Set(["EACCES","EBUSY","EPERM"]),u=typeof SharedArrayBuffer<"u"?new SharedArrayBuffer(4):void 0,p=u?new Int32Array(u):void 0;function f$($){if($<=0)return;if(p)try{Atomics.wait(p,0,0,$);return}catch{}let J=Date.now()+$;while(Date.now()<J);}function V$($){let J=$?.code;return typeof J==="string"&&U$.has(J)}function L$($,J,j,Z,W){for(let Q=0;;Q++)try{$.renameSync(J,j);return}catch(B){let O=Z[Q];if(O===void 0||!V$(B))throw B;W(O)}}function M$($={}){let J=$.fs??q$,j=$.now??Date.now,Z=$.pid??process.pid,W=$.random??Math.random,B=$.retryRenameErrors??process.platform==="win32"?$.retryDelaysMs??H$:[],O=$.wait??f$;return(K,U)=>{J.mkdirSync(T.dirname(K),{recursive:!0});let f=T.join(T.dirname(K),`.${T.basename(K)}.${Z}.${j()}.${W().toString(36).slice(2)}.tmp`);try{J.writeFileSync(f,JSON.stringify(U,null,2),"utf-8"),L$(J,f,K,B,O)}finally{J.rmSync(f,{force:!0})}}}var C=M$();import*as _ from"node:os";import*as E from"node:path";function b($){return $.trim().replace(/[^A-Za-z0-9._-]+/g,"-").replace(/^-+|-+$/g,"")||"unknown"}function A$($){let J=$?.env??process.env,j=$&&Object.hasOwn($,"getuid")?$.getuid:process.getuid?.bind(process);if(typeof j==="function")return`uid-${j()}`;for(let B of["USERNAME","USER","LOGNAME"]){let O=J[B];if(O)return`user-${b(O)}`}let Z=$&&Object.hasOwn($,"userInfo")?$.userInfo:_.userInfo;try{let B=Z?.().username;if(B)return`user-${b(B)}`}catch{}let W=J.USERPROFILE??J.HOME;if(W)return`home-${b(W)}`;let Q=$&&Object.hasOwn($,"homedir")?$.homedir:_.homedir;try{let B=Q?.();if(B)return`home-${b(B)}`}catch{}return"shared"}var F=E.join(_.tmpdir(),`dm-subagents-${A$()}`),I=E.join(F,"async-subagent-results"),z$=E.join(F,"async-subagent-runs"),F$=E.join(F,"chain-runs"),a$=E.join(F,"artifacts");function T$($,J,j){if(typeof $!=="object"||$===null)return!1;let{start:Z,count:W,stepIndex:Q}=$;return typeof Z==="number"&&typeof W==="number"&&typeof Q==="number"&&Number.isInteger(Z)&&Number.isInteger(W)&&Number.isInteger(Q)&&Z>=0&&W>0&&Q>=0&&Q<j&&Z+W<=J}function l($,J,j){if(!Array.isArray($))return[];return $.filter((Z)=>T$(Z,J,j)).sort((Z,W)=>Z.stepIndex-W.stepIndex||Z.start-W.start)}import{randomUUID as b$}from"node:crypto";import*as L from"node:fs";import*as q from"node:path";import*as s from"node:path";var C$=128,_$=4;function k($){return typeof $==="string"&&$.length>0&&$.length<=C$&&!s.isAbsolute($)&&!$.includes("/")&&!$.includes("\\")&&!$.includes("..")}function r($){return typeof $==="number"&&Number.isFinite($)?$:void 0}function i($,J){return typeof $==="string"&&$.length>0?$.slice(0,J):void 0}function a($){if(!Array.isArray($))return[];return $.map((J)=>{if(!J||typeof J!=="object")return;let j=J;if(!k(j.runId))return;return{runId:j.runId,...r(j.stepIndex)!==void 0?{stepIndex:r(j.stepIndex)}:{},...i(j.agent,128)?{agent:i(j.agent,128)}:{}}}).filter((J)=>Boolean(J)).slice(0,_$)}import*as S from"node:path";import{fileURLToPath as e}from"node:url";import*as A from"node:os";import*as M from"node:path";var _j=M.join(A.homedir(),".config","mcp","mcp.json"),Ej={cursor:[M.join(A.homedir(),".cursor","mcp.json")],"claude-code":[M.join(A.homedir(),".claude","mcp.json"),M.join(A.homedir(),".claude.json"),M.join(A.homedir(),".claude","claude_desktop_config.json")],"claude-desktop":[M.join(A.homedir(),"Library","Application Support","Claude","claude_desktop_config.json")],codex:[M.join(A.homedir(),".codex","config.json")],windsurf:[M.join(A.homedir(),".windsurf","mcp.json")],vscode:[".vscode/mcp.json"]};import{Compile as bj}from"typebox/compile";var nj=S.join(S.dirname(e(import.meta.url)),"subagent-prompt-runtime.ts"),oj=S.join(S.dirname(e(import.meta.url)),"..","..","extension","fanout-child.ts");var t=q.join(F,"nested-subagent-events");var I$="registry.json",h=65536,v=12,R=16,g=3;function N($){return k($)}function x$($,J){if(!N(J))throw Error(`${$} must be a non-empty safe id token.`)}function $$($,J){x$($,J)}function c($,J){let j=q.resolve($),Z=q.resolve(J);return Z===j||Z.startsWith(`${j}${q.sep}`)}function J$($){return q.dirname(q.resolve($.eventSink))}function d($){if($$("rootRunId",$.rootRunId),$$("capabilityToken",$.capabilityToken),!c(t,$.eventSink))throw Error("Nested event sink is outside the subagent nested event root.");if(!c(t,$.controlInbox))throw Error("Nested control inbox is outside the subagent nested event root.");if(J$($)!==q.dirname(q.resolve($.controlInbox)))throw Error("Nested event sink and control inbox must share one route root.")}function Z$($,J){if(!J.asyncDir)return;let j=q.resolve(J.asyncDir),Z=q.resolve(F,"nested-subagent-runs",$,J.id),W=q.relative(Z,j);return j===Z||!W.startsWith("..")&&!q.isAbsolute(W)?j:void 0}function X($){return typeof $==="number"&&Number.isFinite($)?$:void 0}function Y($,J=512){return typeof $==="string"&&$.length>0?$.slice(0,J):void 0}function R$($){if(!$||typeof $!=="object")return;let J=$,j=X(J.input),Z=X(J.output),W=X(J.total);return j!==void 0&&Z!==void 0&&W!==void 0?{input:j,output:Z,total:W}:void 0}function N$($){if(!$||typeof $!=="object")return;let J=$,j=X(J.inputTokens),Z=X(J.outputTokens),W=X(J.costUsd);return j!==void 0&&Z!==void 0&&W!==void 0?{inputTokens:j,outputTokens:Z,costUsd:W}:void 0}function D($){if(!$||typeof $!=="object")return;let J=$,j=X(J.maxTurns),Z=X(J.graceTurns),W=X(J.turnCount),Q=J.outcome==="within-budget"||J.outcome==="wrap-up-requested"||J.outcome==="exceeded"?J.outcome:void 0;if(j===void 0||Z===void 0||W===void 0||!Q)return;return{maxTurns:j,graceTurns:Z,turnCount:W,outcome:Q,...X(J.wrapUpRequestedAtTurn)!==void 0?{wrapUpRequestedAtTurn:X(J.wrapUpRequestedAtTurn)}:{},...X(J.exceededAtTurn)!==void 0?{exceededAtTurn:X(J.exceededAtTurn)}:{}}}function D$($,J){return $==="queued"||$==="running"||$==="complete"||$==="failed"||$==="paused"?$:J}function P$($,J){if(!$||typeof $!=="object")return;let j=$,Z=Y(j.agent,128);if(!Z)return;let W=j.status==="pending"||j.status==="running"||j.status==="complete"||j.status==="completed"||j.status==="failed"||j.status==="paused"?j.status:"pending";return{agent:Z,status:W,...Y(j.sessionFile,2048)?{sessionFile:Y(j.sessionFile,2048)}:{},...j.activityState==="active_long_running"||j.activityState==="needs_attention"?{activityState:j.activityState}:{},...X(j.lastActivityAt)!==void 0?{lastActivityAt:X(j.lastActivityAt)}:{},...Y(j.currentTool,128)?{currentTool:Y(j.currentTool,128)}:{},...X(j.currentToolStartedAt)!==void 0?{currentToolStartedAt:X(j.currentToolStartedAt)}:{},...Y(j.currentPath,2048)?{currentPath:Y(j.currentPath,2048)}:{},...X(j.turnCount)!==void 0?{turnCount:X(j.turnCount)}:{},...X(j.toolCount)!==void 0?{toolCount:X(j.toolCount)}:{},...X(j.startedAt)!==void 0?{startedAt:X(j.startedAt)}:{},...X(j.endedAt)!==void 0?{endedAt:X(j.endedAt)}:{},...Y(j.error,1024)?{error:Y(j.error,1024)}:{},...j.timedOut===!0?{timedOut:!0}:{},...D(j.turnBudget)?{turnBudget:D(j.turnBudget)}:{},...j.turnBudgetExceeded===!0?{turnBudgetExceeded:!0}:{},...j.wrapUpRequested===!0?{wrapUpRequested:!0}:{},...J<g&&Array.isArray(j.children)?{children:j.children.map((Q)=>P(Q,J+1)).filter((Q)=>Boolean(Q)).slice(0,R)}:{}}}function P($,J=0){if(!$||typeof $!=="object")return;let j=$;if(!N(j.id)||!N(j.parentRunId))return;let Z=a(j.path),W=Array.isArray(j.steps)?j.steps.map((O)=>P$(O,J+1)).filter((O)=>Boolean(O)).slice(0,v):void 0,Q=R$(j.totalTokens),B=N$(j.totalCost);return{id:j.id,parentRunId:j.parentRunId,...X(j.parentStepIndex)!==void 0?{parentStepIndex:X(j.parentStepIndex)}:{},...Y(j.parentAgent,128)?{parentAgent:Y(j.parentAgent,128)}:{},depth:Math.min(Math.max(0,X(j.depth)??0),g),path:Z,state:D$(j.state,"running"),...Y(j.asyncDir,2048)?{asyncDir:Y(j.asyncDir,2048)}:{},...X(j.pid)!==void 0&&X(j.pid)>0&&Number.isInteger(X(j.pid))?{pid:X(j.pid)}:{},...Y(j.sessionId,256)?{sessionId:Y(j.sessionId,256)}:{},...Y(j.sessionFile,2048)?{sessionFile:Y(j.sessionFile,2048)}:{},...Y(j.intercomTarget,256)?{intercomTarget:Y(j.intercomTarget,256)}:{},...Y(j.ownerIntercomTarget,256)?{ownerIntercomTarget:Y(j.ownerIntercomTarget,256)}:{},...Y(j.leafIntercomTarget,256)?{leafIntercomTarget:Y(j.leafIntercomTarget,256)}:{},...j.ownerState==="live"||j.ownerState==="gone"||j.ownerState==="unknown"?{ownerState:j.ownerState}:{},...Y(j.controlInbox,2048)?{controlInbox:Y(j.controlInbox,2048)}:{},...Y(j.capabilityToken,128)?{capabilityToken:Y(j.capabilityToken,128)}:{},...j.mode==="single"||j.mode==="parallel"||j.mode==="chain"?{mode:j.mode}:{},...Y(j.agent,128)?{agent:Y(j.agent,128)}:{},...Array.isArray(j.agents)?{agents:j.agents.map((O)=>Y(O,128)).filter((O)=>Boolean(O)).slice(0,v)}:{},...X(j.currentStep)!==void 0?{currentStep:X(j.currentStep)}:{},...X(j.chainStepCount)!==void 0?{chainStepCount:X(j.chainStepCount)}:{},...j.activityState==="active_long_running"||j.activityState==="needs_attention"?{activityState:j.activityState}:{},...X(j.lastActivityAt)!==void 0?{lastActivityAt:X(j.lastActivityAt)}:{},...Y(j.currentTool,128)?{currentTool:Y(j.currentTool,128)}:{},...X(j.currentToolStartedAt)!==void 0?{currentToolStartedAt:X(j.currentToolStartedAt)}:{},...Y(j.currentPath,2048)?{currentPath:Y(j.currentPath,2048)}:{},...X(j.turnCount)!==void 0?{turnCount:X(j.turnCount)}:{},...X(j.toolCount)!==void 0?{toolCount:X(j.toolCount)}:{},...Q?{totalTokens:Q}:{},...B?{totalCost:B}:{},...X(j.startedAt)!==void 0?{startedAt:X(j.startedAt)}:{},...X(j.endedAt)!==void 0?{endedAt:X(j.endedAt)}:{},...X(j.lastUpdate)!==void 0?{lastUpdate:X(j.lastUpdate)}:{},...X(j.timeoutMs)!==void 0?{timeoutMs:X(j.timeoutMs)}:{},...X(j.deadlineAt)!==void 0?{deadlineAt:X(j.deadlineAt)}:{},...j.timedOut===!0?{timedOut:!0}:{},...D(j.turnBudget)?{turnBudget:D(j.turnBudget)}:{},...j.turnBudgetExceeded===!0?{turnBudgetExceeded:!0}:{},...j.wrapUpRequested===!0?{wrapUpRequested:!0}:{},...Y(j.error,1024)?{error:Y(j.error,1024)}:{},...W&&W.length>0?{steps:W}:{},...J<g&&Array.isArray(j.children)?{children:j.children.map((O)=>P(O,J+1)).filter((O)=>Boolean(O)).slice(0,R)}:{}}}function m($,J){if(Buffer.byteLength($,"utf-8")>h)return;let j;try{j=JSON.parse($)}catch{return}if(!j||typeof j!=="object")return;let Z=j;if(Z.type!=="subagent.nested.started"&&Z.type!=="subagent.nested.updated"&&Z.type!=="subagent.nested.completed")return;if(Z.rootRunId!==J.rootRunId||Z.capabilityToken!==J.capabilityToken)return;if(!N(Z.parentRunId))return;let W=X(Z.ts);if(W===void 0)return;let Q=P(Z.child);if(!Q||Q.id===J.rootRunId)return;let B={...Q,controlInbox:J.controlInbox,capabilityToken:J.capabilityToken,ownerState:Q.ownerState??"unknown"};return{type:Z.type,ts:W,rootRunId:J.rootRunId,parentRunId:Z.parentRunId,...X(Z.parentStepIndex)!==void 0?{parentStepIndex:X(Z.parentStepIndex)}:{},capabilityToken:J.capabilityToken,child:B}}function w$($,J){if(!$.includes(`
2
- `)){let j=m($.trim(),J);return j?[j]:[]}return $.split(`
1
+ import*as H from"node:fs";import*as L from"node:path";import*as H$ from"node:fs";import*as C from"node:path";var U$=[10,25,50,100,200,500,1000,2000,4000],V$=new Set(["EACCES","EBUSY","EPERM"]),u=typeof SharedArrayBuffer<"u"?new SharedArrayBuffer(4):void 0,l=u?new Int32Array(u):void 0;function L$($){if($<=0)return;if(l)try{Atomics.wait(l,0,0,$);return}catch{}let J=Date.now()+$;while(Date.now()<J);}function M$($){let J=$?.code;return typeof J==="string"&&V$.has(J)}function f$($,J,j,Z,W){for(let Q=0;;Q++)try{$.renameSync(J,j);return}catch(B){let O=Z[Q];if(O===void 0||!M$(B))throw B;W(O)}}function A$($={}){let J=$.fs??H$,j=$.now??Date.now,Z=$.pid??process.pid,W=$.random??Math.random,B=$.retryRenameErrors??process.platform==="win32"?$.retryDelaysMs??U$:[],O=$.wait??L$;return(K,U)=>{J.mkdirSync(C.dirname(K),{recursive:!0});let V=C.join(C.dirname(K),`.${C.basename(K)}.${Z}.${j()}.${W().toString(36).slice(2)}.tmp`);try{J.writeFileSync(V,JSON.stringify(U,null,2),"utf-8"),f$(J,V,K,B,O)}finally{J.rmSync(V,{force:!0})}}}var _=A$();import*as E from"node:os";import*as y from"node:path";function I($){return $.trim().replace(/[^A-Za-z0-9._-]+/g,"-").replace(/^-+|-+$/g,"")||"unknown"}function z$($){let J=$?.env??process.env,j=$&&Object.hasOwn($,"getuid")?$.getuid:process.getuid?.bind(process);if(typeof j==="function")return`uid-${j()}`;for(let B of["USERNAME","USER","LOGNAME"]){let O=J[B];if(O)return`user-${I(O)}`}let Z=$&&Object.hasOwn($,"userInfo")?$.userInfo:E.userInfo;try{let B=Z?.().username;if(B)return`user-${I(B)}`}catch{}let W=J.USERPROFILE??J.HOME;if(W)return`home-${I(W)}`;let Q=$&&Object.hasOwn($,"homedir")?$.homedir:E.homedir;try{let B=Q?.();if(B)return`home-${I(B)}`}catch{}return"shared"}var T=y.join(E.tmpdir(),`dm-subagents-${z$()}`),N=y.join(T,"async-subagent-results"),F$=y.join(T,"async-subagent-runs"),T$=y.join(T,"chain-runs"),t$=y.join(T,"artifacts");function C$($,J,j){if(typeof $!=="object"||$===null)return!1;let{start:Z,count:W,stepIndex:Q}=$;return typeof Z==="number"&&typeof W==="number"&&typeof Q==="number"&&Number.isInteger(Z)&&Number.isInteger(W)&&Number.isInteger(Q)&&Z>=0&&W>0&&Q>=0&&Q<j&&Z+W<=J}function r($,J,j){if(!Array.isArray($))return[];return $.filter((Z)=>C$(Z,J,j)).sort((Z,W)=>Z.stepIndex-W.stepIndex||Z.start-W.start)}import{randomUUID as N$}from"node:crypto";import*as M from"node:fs";import*as q from"node:path";import*as a from"node:path";var _$=128,E$=4;function v($){return typeof $==="string"&&$.length>0&&$.length<=_$&&!a.isAbsolute($)&&!$.includes("/")&&!$.includes("\\")&&!$.includes("..")}function i($){return typeof $==="number"&&Number.isFinite($)?$:void 0}function s($,J){return typeof $==="string"&&$.length>0?$.slice(0,J):void 0}function e($){if(!Array.isArray($))return[];return $.map((J)=>{if(!J||typeof J!=="object")return;let j=J;if(!v(j.runId))return;return{runId:j.runId,...i(j.stepIndex)!==void 0?{stepIndex:i(j.stepIndex)}:{},...s(j.agent,128)?{agent:s(j.agent,128)}:{}}}).filter((J)=>Boolean(J)).slice(0,E$)}import*as S from"node:fs";import*as A from"node:path";import{fileURLToPath as I$}from"node:url";import*as z from"node:os";import*as f from"node:path";var yj=f.join(z.homedir(),".config","mcp","mcp.json"),Sj={cursor:[f.join(z.homedir(),".cursor","mcp.json")],"claude-code":[f.join(z.homedir(),".claude","mcp.json"),f.join(z.homedir(),".claude.json"),f.join(z.homedir(),".claude","claude_desktop_config.json")],"claude-desktop":[f.join(z.homedir(),"Library","Application Support","Claude","claude_desktop_config.json")],codex:[f.join(z.homedir(),".codex","config.json")],windsurf:[f.join(z.homedir(),".windsurf","mcp.json")],vscode:[".vscode/mcp.json"]};import{Compile as Nj}from"typebox/compile";function t($,J){let j=I$($),Z=A.extname(j),W=[".js",".mjs",".cjs",".ts",".mts",".cts"].includes(Z)?Z:".ts",Q=A.dirname(j);while(!S.existsSync(A.join(Q,"package.json"))){let B=A.dirname(Q);if(B===Q)throw Error(`Unable to resolve dm-subagents package root from ${j}`);Q=B}return A.join(Q,`${J}${W}`)}var pj=t(import.meta.url,A.join("src","runs","shared","subagent-prompt-runtime")),uj=t(import.meta.url,A.join("src","extension","fanout-child"));var $$=q.join(T,"nested-subagent-events");var R$="registry.json",d=65536,g=12,x=16,c=3;function D($){return v($)}function x$($,J){if(!D(J))throw Error(`${$} must be a non-empty safe id token.`)}function j$($,J){x$($,J)}function m($,J){let j=q.resolve($),Z=q.resolve(J);return Z===j||Z.startsWith(`${j}${q.sep}`)}function Z$($){return q.dirname(q.resolve($.eventSink))}function n($){if(j$("rootRunId",$.rootRunId),j$("capabilityToken",$.capabilityToken),!m($$,$.eventSink))throw Error("Nested event sink is outside the subagent nested event root.");if(!m($$,$.controlInbox))throw Error("Nested control inbox is outside the subagent nested event root.");if(Z$($)!==q.dirname(q.resolve($.controlInbox)))throw Error("Nested event sink and control inbox must share one route root.")}function Q$($,J){if(!J.asyncDir)return;let j=q.resolve(J.asyncDir),Z=q.resolve(T,"nested-subagent-runs",$,J.id),W=q.relative(Z,j);return j===Z||!W.startsWith("..")&&!q.isAbsolute(W)?j:void 0}function X($){return typeof $==="number"&&Number.isFinite($)?$:void 0}function Y($,J=512){return typeof $==="string"&&$.length>0?$.slice(0,J):void 0}function D$($){if(!$||typeof $!=="object")return;let J=$,j=X(J.input),Z=X(J.output),W=X(J.total);return j!==void 0&&Z!==void 0&&W!==void 0?{input:j,output:Z,total:W}:void 0}function P$($){if(!$||typeof $!=="object")return;let J=$,j=X(J.inputTokens),Z=X(J.outputTokens),W=X(J.costUsd);return j!==void 0&&Z!==void 0&&W!==void 0?{inputTokens:j,outputTokens:Z,costUsd:W}:void 0}function P($){if(!$||typeof $!=="object")return;let J=$,j=X(J.maxTurns),Z=X(J.graceTurns),W=X(J.turnCount),Q=J.outcome==="within-budget"||J.outcome==="wrap-up-requested"||J.outcome==="exceeded"?J.outcome:void 0;if(j===void 0||Z===void 0||W===void 0||!Q)return;return{maxTurns:j,graceTurns:Z,turnCount:W,outcome:Q,...X(J.wrapUpRequestedAtTurn)!==void 0?{wrapUpRequestedAtTurn:X(J.wrapUpRequestedAtTurn)}:{},...X(J.exceededAtTurn)!==void 0?{exceededAtTurn:X(J.exceededAtTurn)}:{}}}function w$($,J){return $==="queued"||$==="running"||$==="complete"||$==="failed"||$==="paused"?$:J}function k$($,J){if(!$||typeof $!=="object")return;let j=$,Z=Y(j.agent,128);if(!Z)return;let W=j.status==="pending"||j.status==="running"||j.status==="complete"||j.status==="completed"||j.status==="failed"||j.status==="paused"?j.status:"pending";return{agent:Z,status:W,...Y(j.sessionFile,2048)?{sessionFile:Y(j.sessionFile,2048)}:{},...j.activityState==="active_long_running"||j.activityState==="needs_attention"?{activityState:j.activityState}:{},...X(j.lastActivityAt)!==void 0?{lastActivityAt:X(j.lastActivityAt)}:{},...Y(j.currentTool,128)?{currentTool:Y(j.currentTool,128)}:{},...X(j.currentToolStartedAt)!==void 0?{currentToolStartedAt:X(j.currentToolStartedAt)}:{},...Y(j.currentPath,2048)?{currentPath:Y(j.currentPath,2048)}:{},...X(j.turnCount)!==void 0?{turnCount:X(j.turnCount)}:{},...X(j.toolCount)!==void 0?{toolCount:X(j.toolCount)}:{},...X(j.startedAt)!==void 0?{startedAt:X(j.startedAt)}:{},...X(j.endedAt)!==void 0?{endedAt:X(j.endedAt)}:{},...Y(j.error,1024)?{error:Y(j.error,1024)}:{},...j.timedOut===!0?{timedOut:!0}:{},...P(j.turnBudget)?{turnBudget:P(j.turnBudget)}:{},...j.turnBudgetExceeded===!0?{turnBudgetExceeded:!0}:{},...j.wrapUpRequested===!0?{wrapUpRequested:!0}:{},...J<c&&Array.isArray(j.children)?{children:j.children.map((Q)=>w(Q,J+1)).filter((Q)=>Boolean(Q)).slice(0,x)}:{}}}function w($,J=0){if(!$||typeof $!=="object")return;let j=$;if(!D(j.id)||!D(j.parentRunId))return;let Z=e(j.path),W=Array.isArray(j.steps)?j.steps.map((O)=>k$(O,J+1)).filter((O)=>Boolean(O)).slice(0,g):void 0,Q=D$(j.totalTokens),B=P$(j.totalCost);return{id:j.id,parentRunId:j.parentRunId,...X(j.parentStepIndex)!==void 0?{parentStepIndex:X(j.parentStepIndex)}:{},...Y(j.parentAgent,128)?{parentAgent:Y(j.parentAgent,128)}:{},depth:Math.min(Math.max(0,X(j.depth)??0),c),path:Z,state:w$(j.state,"running"),...Y(j.asyncDir,2048)?{asyncDir:Y(j.asyncDir,2048)}:{},...X(j.pid)!==void 0&&X(j.pid)>0&&Number.isInteger(X(j.pid))?{pid:X(j.pid)}:{},...Y(j.sessionId,256)?{sessionId:Y(j.sessionId,256)}:{},...Y(j.sessionFile,2048)?{sessionFile:Y(j.sessionFile,2048)}:{},...Y(j.intercomTarget,256)?{intercomTarget:Y(j.intercomTarget,256)}:{},...Y(j.ownerIntercomTarget,256)?{ownerIntercomTarget:Y(j.ownerIntercomTarget,256)}:{},...Y(j.leafIntercomTarget,256)?{leafIntercomTarget:Y(j.leafIntercomTarget,256)}:{},...j.ownerState==="live"||j.ownerState==="gone"||j.ownerState==="unknown"?{ownerState:j.ownerState}:{},...Y(j.controlInbox,2048)?{controlInbox:Y(j.controlInbox,2048)}:{},...Y(j.capabilityToken,128)?{capabilityToken:Y(j.capabilityToken,128)}:{},...j.mode==="single"||j.mode==="parallel"||j.mode==="chain"?{mode:j.mode}:{},...Y(j.agent,128)?{agent:Y(j.agent,128)}:{},...Array.isArray(j.agents)?{agents:j.agents.map((O)=>Y(O,128)).filter((O)=>Boolean(O)).slice(0,g)}:{},...X(j.currentStep)!==void 0?{currentStep:X(j.currentStep)}:{},...X(j.chainStepCount)!==void 0?{chainStepCount:X(j.chainStepCount)}:{},...j.activityState==="active_long_running"||j.activityState==="needs_attention"?{activityState:j.activityState}:{},...X(j.lastActivityAt)!==void 0?{lastActivityAt:X(j.lastActivityAt)}:{},...Y(j.currentTool,128)?{currentTool:Y(j.currentTool,128)}:{},...X(j.currentToolStartedAt)!==void 0?{currentToolStartedAt:X(j.currentToolStartedAt)}:{},...Y(j.currentPath,2048)?{currentPath:Y(j.currentPath,2048)}:{},...X(j.turnCount)!==void 0?{turnCount:X(j.turnCount)}:{},...X(j.toolCount)!==void 0?{toolCount:X(j.toolCount)}:{},...Q?{totalTokens:Q}:{},...B?{totalCost:B}:{},...X(j.startedAt)!==void 0?{startedAt:X(j.startedAt)}:{},...X(j.endedAt)!==void 0?{endedAt:X(j.endedAt)}:{},...X(j.lastUpdate)!==void 0?{lastUpdate:X(j.lastUpdate)}:{},...X(j.timeoutMs)!==void 0?{timeoutMs:X(j.timeoutMs)}:{},...X(j.deadlineAt)!==void 0?{deadlineAt:X(j.deadlineAt)}:{},...j.timedOut===!0?{timedOut:!0}:{},...P(j.turnBudget)?{turnBudget:P(j.turnBudget)}:{},...j.turnBudgetExceeded===!0?{turnBudgetExceeded:!0}:{},...j.wrapUpRequested===!0?{wrapUpRequested:!0}:{},...Y(j.error,1024)?{error:Y(j.error,1024)}:{},...W&&W.length>0?{steps:W}:{},...J<c&&Array.isArray(j.children)?{children:j.children.map((O)=>w(O,J+1)).filter((O)=>Boolean(O)).slice(0,x)}:{}}}function h($,J){if(Buffer.byteLength($,"utf-8")>d)return;let j;try{j=JSON.parse($)}catch{return}if(!j||typeof j!=="object")return;let Z=j;if(Z.type!=="subagent.nested.started"&&Z.type!=="subagent.nested.updated"&&Z.type!=="subagent.nested.completed")return;if(Z.rootRunId!==J.rootRunId||Z.capabilityToken!==J.capabilityToken)return;if(!D(Z.parentRunId))return;let W=X(Z.ts);if(W===void 0)return;let Q=w(Z.child);if(!Q||Q.id===J.rootRunId)return;let B={...Q,controlInbox:J.controlInbox,capabilityToken:J.capabilityToken,ownerState:Q.ownerState??"unknown"};return{type:Z.type,ts:W,rootRunId:J.rootRunId,parentRunId:Z.parentRunId,...X(Z.parentStepIndex)!==void 0?{parentStepIndex:X(Z.parentStepIndex)}:{},capabilityToken:J.capabilityToken,child:B}}function v$($,J){if(!$.includes(`
2
+ `)){let j=h($.trim(),J);return j?[j]:[]}return $.split(`
3
3
  `).slice(0,$.endsWith(`
4
- `)?void 0:-1).map((j)=>j.trim()?m(j,J):void 0).filter((j)=>Boolean(j))}function x($){return $==="complete"||$==="failed"||$==="paused"}function j$($,J){let j=J.type==="subagent.nested.completed"&&J.child.state==="running"?"complete":J.child.state,Z={...J.child,state:j,lastUpdate:J.child.lastUpdate??J.ts};if(!$)return Z;let W=$.lastUpdate??0,Q=Z.lastUpdate??J.ts;if(Q<W)return $;if(x($.state)&&!x(Z.state))return $;if(x($.state)&&x(Z.state)&&Q===W)return $;return{...$,...Z,state:Z.state,lastUpdate:Math.max(W,Q)}}function k$($,J){let j=!1,Z=(O)=>O.map((K)=>{if(K.id===J.parentRunId){let f=K.children??[],z=f.findIndex((w)=>w.id===J.child.id),y=j$(z>=0?f[z]:void 0,J),G=z>=0?f.map((w,G$)=>G$===z?y:w):[...f,y];return j=!0,{...K,children:G.slice(0,R),lastUpdate:Math.max(K.lastUpdate??0,J.ts)}}if(!K.children?.length)return K;let U=Z(K.children);return U===K.children?K:{...K,children:U}}),W=Z($);if(j)return W;let Q=W.findIndex((O)=>O.id===J.child.id),B=j$(Q>=0?W[Q]:void 0,J);return Q>=0?W.map((O,K)=>K===Q?B:O):[...W,B].slice(0,R)}function v$($,J){return{...$,updatedAt:Math.max($.updatedAt,J.ts),children:k$($.children,J)}}function Q$($){return q.join(J$($),I$)}function g$($){d($);try{let J=JSON.parse(L.readFileSync(Q$($),"utf-8"));return{rootRunId:$.rootRunId,updatedAt:typeof J.updatedAt==="number"?J.updatedAt:0,children:Array.isArray(J.children)?J.children.map((j)=>P(j)).filter((j)=>Boolean(j)):[],processedEvents:Array.isArray(J.processedEvents)?J.processedEvents.filter((j)=>typeof j==="string"):[]}}catch(J){if(J.code!=="ENOENT")throw J;return{rootRunId:$.rootRunId,updatedAt:0,children:[],processedEvents:[]}}}function W$($){d($);let J=g$($),j=new Set(J.processedEvents),Z=!1,W=[];try{W=L.readdirSync($.eventSink).filter((Q)=>Q.endsWith(".json")||Q.endsWith(".jsonl")).sort()}catch(Q){if(Q.code!=="ENOENT")throw Q}for(let Q of W){if(j.has(Q))continue;let B=q.join($.eventSink,Q);if(!c($.eventSink,B))continue;let O;try{let K=L.statSync(B);if(!K.isFile()||K.size>h)continue;O=L.readFileSync(B,"utf-8")}catch{continue}for(let K of w$(O,$))J=v$(J,K),Z=!0;j.add(Q),Z=!0}if(Z)J={...J,processedEvents:[...j].slice(-1000)},C(Q$($),J);return J}function c$($,J,j){let Z=`${JSON.stringify(j)}
5
- `;if(Buffer.byteLength(Z,"utf-8")>h)throw Error("Nested route record exceeds the maximum size.");L.mkdirSync($,{recursive:!0,mode:448});let W=`${String(J).padStart(13,"0")}-${b$()}.json`,Q=q.join($,`.${W}.tmp`),B=q.join($,W);return L.writeFileSync(Q,Z,{mode:384}),L.renameSync(Q,B),B}function O$($,J){d($);let j={...J,rootRunId:$.rootRunId,capabilityToken:$.capabilityToken},Z=m(JSON.stringify(j),$);if(!Z)throw Error("Nested event record failed validation.");c$($.eventSink,Z.ts,Z)}function X$($,J,j){return{id:$.runId||j.id,parentRunId:j.parentRunId,...j.parentStepIndex!==void 0?{parentStepIndex:j.parentStepIndex}:{},depth:j.depth,path:j.path??[{runId:j.parentRunId,...j.parentStepIndex!==void 0?{stepIndex:j.parentStepIndex}:{}}],asyncDir:J,...$.pid?{pid:$.pid}:{},...$.sessionId?{sessionId:$.sessionId}:{},mode:$.mode??j.mode,state:$.state,...$.currentStep!==void 0?{currentStep:$.currentStep}:{},...$.chainStepCount!==void 0?{chainStepCount:$.chainStepCount}:{},...$.activityState?{activityState:$.activityState}:{},...$.lastActivityAt!==void 0?{lastActivityAt:$.lastActivityAt}:{},...$.currentTool?{currentTool:$.currentTool}:{},...$.currentToolStartedAt!==void 0?{currentToolStartedAt:$.currentToolStartedAt}:{},...$.currentPath?{currentPath:$.currentPath}:{},...$.turnCount!==void 0?{turnCount:$.turnCount}:{},...$.toolCount!==void 0?{toolCount:$.toolCount}:{},...$.totalTokens?{totalTokens:$.totalTokens}:{},...$.timeoutMs!==void 0?{timeoutMs:$.timeoutMs}:{},...$.deadlineAt!==void 0?{deadlineAt:$.deadlineAt}:{},...$.timedOut!==void 0?{timedOut:$.timedOut}:{},...$.turnBudget?{turnBudget:$.turnBudget}:{},...$.turnBudgetExceeded!==void 0?{turnBudgetExceeded:$.turnBudgetExceeded}:{},...$.wrapUpRequested!==void 0?{wrapUpRequested:$.wrapUpRequested}:{},...$.error?{error:$.error}:{},...$.startedAt!==void 0?{startedAt:$.startedAt}:{startedAt:j.ts},...$.endedAt!==void 0?{endedAt:$.endedAt}:{},lastUpdate:$.lastUpdate??j.ts,...$.sessionFile?{sessionFile:$.sessionFile}:{},...$.steps?.length?{steps:$.steps.map((Z)=>({agent:Z.agent,status:Z.status,...Z.sessionFile?{sessionFile:Z.sessionFile}:{},...Z.activityState?{activityState:Z.activityState}:{},...Z.lastActivityAt!==void 0?{lastActivityAt:Z.lastActivityAt}:{},...Z.currentTool?{currentTool:Z.currentTool}:{},...Z.currentToolStartedAt!==void 0?{currentToolStartedAt:Z.currentToolStartedAt}:{},...Z.currentPath?{currentPath:Z.currentPath}:{},...Z.turnCount!==void 0?{turnCount:Z.turnCount}:{},...Z.toolCount!==void 0?{toolCount:Z.toolCount}:{},...Z.startedAt!==void 0?{startedAt:Z.startedAt}:{},...Z.endedAt!==void 0?{endedAt:Z.endedAt}:{},...Z.error?{error:Z.error}:{},...Z.timedOut!==void 0?{timedOut:Z.timedOut}:{},...Z.turnBudget?{turnBudget:Z.turnBudget}:{},...Z.turnBudgetExceeded!==void 0?{turnBudgetExceeded:Z.turnBudgetExceeded}:{},...Z.wrapUpRequested!==void 0?{wrapUpRequested:Z.wrapUpRequested}:{}})).slice(0,v)}:{}}}function n($){return $ instanceof Error?$.message:String($)}function m$($){let J=V.join($,"runner.stderr.log"),j=65536,Z;try{let Q=H.statSync(J);if(Q.size<=0)return;let B=H.openSync(J,"r");try{let O=Math.min(Q.size,65536),K=Math.max(0,Q.size-O),U=Buffer.alloc(O);H.readSync(B,U,0,O,K),Z=U.toString("utf-8").trim()}finally{H.closeSync(B)}}catch{return}if(!Z)return;let W=Z.split(/\r?\n/).slice(-30).join(`
4
+ `)?void 0:-1).map((j)=>j.trim()?h(j,J):void 0).filter((j)=>Boolean(j))}function R($){return $==="complete"||$==="failed"||$==="paused"}function J$($,J){let j=J.type==="subagent.nested.completed"&&J.child.state==="running"?"complete":J.child.state,Z={...J.child,state:j,lastUpdate:J.child.lastUpdate??J.ts};if(!$)return Z;let W=$.lastUpdate??0,Q=Z.lastUpdate??J.ts;if(Q<W)return $;if(R($.state)&&!R(Z.state))return $;if(R($.state)&&R(Z.state)&&Q===W)return $;return{...$,...Z,state:Z.state,lastUpdate:Math.max(W,Q)}}function g$($,J){let j=!1,Z=(O)=>O.map((K)=>{if(K.id===J.parentRunId){let V=K.children??[],F=V.findIndex((k)=>k.id===J.child.id),b=J$(F>=0?V[F]:void 0,J),G=F>=0?V.map((k,q$)=>q$===F?b:k):[...V,b];return j=!0,{...K,children:G.slice(0,x),lastUpdate:Math.max(K.lastUpdate??0,J.ts)}}if(!K.children?.length)return K;let U=Z(K.children);return U===K.children?K:{...K,children:U}}),W=Z($);if(j)return W;let Q=W.findIndex((O)=>O.id===J.child.id),B=J$(Q>=0?W[Q]:void 0,J);return Q>=0?W.map((O,K)=>K===Q?B:O):[...W,B].slice(0,x)}function c$($,J){return{...$,updatedAt:Math.max($.updatedAt,J.ts),children:g$($.children,J)}}function W$($){return q.join(Z$($),R$)}function m$($){n($);try{let J=JSON.parse(M.readFileSync(W$($),"utf-8"));return{rootRunId:$.rootRunId,updatedAt:typeof J.updatedAt==="number"?J.updatedAt:0,children:Array.isArray(J.children)?J.children.map((j)=>w(j)).filter((j)=>Boolean(j)):[],processedEvents:Array.isArray(J.processedEvents)?J.processedEvents.filter((j)=>typeof j==="string"):[]}}catch(J){if(J.code!=="ENOENT")throw J;return{rootRunId:$.rootRunId,updatedAt:0,children:[],processedEvents:[]}}}function O$($){n($);let J=m$($),j=new Set(J.processedEvents),Z=!1,W=[];try{W=M.readdirSync($.eventSink).filter((Q)=>Q.endsWith(".json")||Q.endsWith(".jsonl")).sort()}catch(Q){if(Q.code!=="ENOENT")throw Q}for(let Q of W){if(j.has(Q))continue;let B=q.join($.eventSink,Q);if(!m($.eventSink,B))continue;let O;try{let K=M.statSync(B);if(!K.isFile()||K.size>d)continue;O=M.readFileSync(B,"utf-8")}catch{continue}for(let K of v$(O,$))J=c$(J,K),Z=!0;j.add(Q),Z=!0}if(Z)J={...J,processedEvents:[...j].slice(-1000)},_(W$($),J);return J}function h$($,J,j){let Z=`${JSON.stringify(j)}
5
+ `;if(Buffer.byteLength(Z,"utf-8")>d)throw Error("Nested route record exceeds the maximum size.");M.mkdirSync($,{recursive:!0,mode:448});let W=`${String(J).padStart(13,"0")}-${N$()}.json`,Q=q.join($,`.${W}.tmp`),B=q.join($,W);return M.writeFileSync(Q,Z,{mode:384}),M.renameSync(Q,B),B}function X$($,J){n($);let j={...J,rootRunId:$.rootRunId,capabilityToken:$.capabilityToken},Z=h(JSON.stringify(j),$);if(!Z)throw Error("Nested event record failed validation.");h$($.eventSink,Z.ts,Z)}function B$($,J,j){return{id:$.runId||j.id,parentRunId:j.parentRunId,...j.parentStepIndex!==void 0?{parentStepIndex:j.parentStepIndex}:{},depth:j.depth,path:j.path??[{runId:j.parentRunId,...j.parentStepIndex!==void 0?{stepIndex:j.parentStepIndex}:{}}],asyncDir:J,...$.pid?{pid:$.pid}:{},...$.sessionId?{sessionId:$.sessionId}:{},mode:$.mode??j.mode,state:$.state,...$.currentStep!==void 0?{currentStep:$.currentStep}:{},...$.chainStepCount!==void 0?{chainStepCount:$.chainStepCount}:{},...$.activityState?{activityState:$.activityState}:{},...$.lastActivityAt!==void 0?{lastActivityAt:$.lastActivityAt}:{},...$.currentTool?{currentTool:$.currentTool}:{},...$.currentToolStartedAt!==void 0?{currentToolStartedAt:$.currentToolStartedAt}:{},...$.currentPath?{currentPath:$.currentPath}:{},...$.turnCount!==void 0?{turnCount:$.turnCount}:{},...$.toolCount!==void 0?{toolCount:$.toolCount}:{},...$.totalTokens?{totalTokens:$.totalTokens}:{},...$.timeoutMs!==void 0?{timeoutMs:$.timeoutMs}:{},...$.deadlineAt!==void 0?{deadlineAt:$.deadlineAt}:{},...$.timedOut!==void 0?{timedOut:$.timedOut}:{},...$.turnBudget?{turnBudget:$.turnBudget}:{},...$.turnBudgetExceeded!==void 0?{turnBudgetExceeded:$.turnBudgetExceeded}:{},...$.wrapUpRequested!==void 0?{wrapUpRequested:$.wrapUpRequested}:{},...$.error?{error:$.error}:{},...$.startedAt!==void 0?{startedAt:$.startedAt}:{startedAt:j.ts},...$.endedAt!==void 0?{endedAt:$.endedAt}:{},lastUpdate:$.lastUpdate??j.ts,...$.sessionFile?{sessionFile:$.sessionFile}:{},...$.steps?.length?{steps:$.steps.map((Z)=>({agent:Z.agent,status:Z.status,...Z.sessionFile?{sessionFile:Z.sessionFile}:{},...Z.activityState?{activityState:Z.activityState}:{},...Z.lastActivityAt!==void 0?{lastActivityAt:Z.lastActivityAt}:{},...Z.currentTool?{currentTool:Z.currentTool}:{},...Z.currentToolStartedAt!==void 0?{currentToolStartedAt:Z.currentToolStartedAt}:{},...Z.currentPath?{currentPath:Z.currentPath}:{},...Z.turnCount!==void 0?{turnCount:Z.turnCount}:{},...Z.toolCount!==void 0?{toolCount:Z.toolCount}:{},...Z.startedAt!==void 0?{startedAt:Z.startedAt}:{},...Z.endedAt!==void 0?{endedAt:Z.endedAt}:{},...Z.error?{error:Z.error}:{},...Z.timedOut!==void 0?{timedOut:Z.timedOut}:{},...Z.turnBudget?{turnBudget:Z.turnBudget}:{},...Z.turnBudgetExceeded!==void 0?{turnBudgetExceeded:Z.turnBudgetExceeded}:{},...Z.wrapUpRequested!==void 0?{wrapUpRequested:Z.wrapUpRequested}:{}})).slice(0,g)}:{}}}function o($){return $ instanceof Error?$.message:String($)}function d$($){let J=L.join($,"runner.stderr.log"),j=65536,Z;try{let Q=H.statSync(J);if(Q.size<=0)return;let B=H.openSync(J,"r");try{let O=Math.min(Q.size,65536),K=Math.max(0,Q.size-O),U=Buffer.alloc(O);H.readSync(B,U,0,O,K),Z=U.toString("utf-8").trim()}finally{H.closeSync(B)}}catch{return}if(!Z)return;let W=Z.split(/\r?\n/).slice(-30).join(`
6
6
  `);return W.length>4000?`${W.slice(-4000)}
7
- [stderr tail truncated]`:W}function Y$($){return typeof $==="object"&&$!==null&&"code"in $&&$.code==="ENOENT"}function h$($,J){try{H.mkdirSync(V.dirname($),{recursive:!0}),H.appendFileSync($,`${JSON.stringify(J)}
8
- `,"utf-8")}catch{}}function d$($){let J=V.join($,"status.json"),j;try{j=H.readFileSync(J,"utf-8")}catch(Z){if(Y$(Z))return null;throw Error(`Failed to read async status file '${J}': ${n(Z)}`,{cause:Z instanceof Error?Z:void 0})}try{return JSON.parse(j)}catch(Z){throw Error(`Failed to parse async status file '${J}': ${n(Z)}`,{cause:Z instanceof Error?Z:void 0})}}function n$($){try{let J=JSON.parse(H.readFileSync($,"utf-8"));return{state:J.success?"complete":J.state==="paused"||J.exitCode===0?"paused":"failed",...Array.isArray(J.results)?{results:J.results}:{}}}catch(J){if(Y$(J))return;throw Error(`Failed to read async result file '${$}': ${n(J)}`,{cause:J instanceof Error?J:void 0})}}function o$($,J){if(J?.success===!0)return"complete";if(J?.success===!1)return"failed";return $}function u$($,J,j){let Z=n$(J);if(!Z)return;let W=($.steps??[]).map((Q,B)=>{if(Q.status!=="running"&&Q.status!=="pending")return Q;let O=Z.results?.[B],K=o$(Z.state,O);return{...Q,status:K==="complete"?"complete":K,endedAt:Q.endedAt??j,durationMs:Q.startedAt!==void 0&&Q.durationMs===void 0?Math.max(0,j-Q.startedAt):Q.durationMs,exitCode:Q.exitCode??(K==="complete"||K==="paused"?0:1),error:K==="failed"?Q.error??O?.error:Q.error,sessionFile:Q.sessionFile??O?.sessionFile,model:Q.model??O?.model,attemptedModels:Q.attemptedModels??O?.attemptedModels,modelAttempts:Q.modelAttempts??O?.modelAttempts}});return{...$,state:Z.state,activityState:void 0,lastUpdate:j,endedAt:$.endedAt??j,steps:W}}function p$($,J,j){let Z=J.startedAt??j,W=J.agents?.length?J.agents:["subagent"],Q=J.chainStepCount,B=Q!==void 0?l(J.parallelGroups,W.length,Q):[];return{runId:J.runId||V.basename($),...J.sessionId?{sessionId:J.sessionId}:{},mode:J.mode??"single",state:"running",pid:J.pid,startedAt:Z,lastUpdate:j,currentStep:0,...Q!==void 0?{chainStepCount:Q}:{},...B.length?{parallelGroups:B}:{},steps:W.map((O)=>({agent:O,status:"running",startedAt:Z})),...J.sessionFile?{sessionFile:J.sessionFile}:{}}}function l$($,J,j,Z){let W=$.runId||V.basename(J),Q=typeof $.pid==="number"?$.pid:"unknown",B=Z??`Async runner process ${Q} exited or disappeared before writing a result. Marked run failed by stale-run reconciliation.`,O=m$(J),K=O?`${B}
7
+ [stderr tail truncated]`:W}function G$($){return typeof $==="object"&&$!==null&&"code"in $&&$.code==="ENOENT"}function n$($,J){try{H.mkdirSync(L.dirname($),{recursive:!0}),H.appendFileSync($,`${JSON.stringify(J)}
8
+ `,"utf-8")}catch{}}function o$($){let J=L.join($,"status.json"),j;try{j=H.readFileSync(J,"utf-8")}catch(Z){if(G$(Z))return null;throw Error(`Failed to read async status file '${J}': ${o(Z)}`,{cause:Z instanceof Error?Z:void 0})}try{return JSON.parse(j)}catch(Z){throw Error(`Failed to parse async status file '${J}': ${o(Z)}`,{cause:Z instanceof Error?Z:void 0})}}function p$($){try{let J=JSON.parse(H.readFileSync($,"utf-8"));return{state:J.success?"complete":J.state==="paused"||J.exitCode===0?"paused":"failed",...Array.isArray(J.results)?{results:J.results}:{}}}catch(J){if(G$(J))return;throw Error(`Failed to read async result file '${$}': ${o(J)}`,{cause:J instanceof Error?J:void 0})}}function u$($,J){if(J?.success===!0)return"complete";if(J?.success===!1)return"failed";return $}function l$($,J,j){let Z=p$(J);if(!Z)return;let W=($.steps??[]).map((Q,B)=>{if(Q.status!=="running"&&Q.status!=="pending")return Q;let O=Z.results?.[B],K=u$(Z.state,O);return{...Q,status:K==="complete"?"complete":K,endedAt:Q.endedAt??j,durationMs:Q.startedAt!==void 0&&Q.durationMs===void 0?Math.max(0,j-Q.startedAt):Q.durationMs,exitCode:Q.exitCode??(K==="complete"||K==="paused"?0:1),error:K==="failed"?Q.error??O?.error:Q.error,sessionFile:Q.sessionFile??O?.sessionFile,model:Q.model??O?.model,attemptedModels:Q.attemptedModels??O?.attemptedModels,modelAttempts:Q.modelAttempts??O?.modelAttempts}});return{...$,state:Z.state,activityState:void 0,lastUpdate:j,endedAt:$.endedAt??j,steps:W}}function r$($,J,j){let Z=J.startedAt??j,W=J.agents?.length?J.agents:["subagent"],Q=J.chainStepCount,B=Q!==void 0?r(J.parallelGroups,W.length,Q):[];return{runId:J.runId||L.basename($),...J.sessionId?{sessionId:J.sessionId}:{},mode:J.mode??"single",state:"running",pid:J.pid,startedAt:Z,lastUpdate:j,currentStep:0,...Q!==void 0?{chainStepCount:Q}:{},...B.length?{parallelGroups:B}:{},steps:W.map((O)=>({agent:O,status:"running",startedAt:Z})),...J.sessionFile?{sessionFile:J.sessionFile}:{}}}function i$($,J,j,Z){let W=$.runId||L.basename(J),Q=typeof $.pid==="number"?$.pid:"unknown",B=Z??`Async runner process ${Q} exited or disappeared before writing a result. Marked run failed by stale-run reconciliation.`,O=d$(J),K=O?`${B}
9
9
 
10
10
  Runner stderr tail:
11
- ${O}`:B,f=(($.steps?.length)?$.steps:[{agent:"subagent",status:"running"}]).map((G)=>G.status==="running"||G.status==="pending"?{...G,status:"failed",activityState:void 0,endedAt:G.endedAt??j,durationMs:G.startedAt!==void 0&&G.durationMs===void 0?Math.max(0,j-G.startedAt):G.durationMs,exitCode:G.exitCode??1,error:G.error??K}:G),z={...$,state:"failed",activityState:void 0,lastUpdate:j,endedAt:j,steps:f},y=f[$.currentStep??0]?.agent??f[0]?.agent??"subagent";return{status:z,message:K,result:{id:W,agent:y,mode:$.mode,success:!1,state:"failed",summary:K,results:f.map((G)=>({agent:G.agent,output:G.status==="complete"||G.status==="completed"?"":K,error:G.status==="complete"||G.status==="completed"?void 0:G.error??K,success:G.status==="complete"||G.status==="completed",model:G.model,attemptedModels:G.attemptedModels,modelAttempts:G.modelAttempts,sessionFile:G.sessionFile})),exitCode:1,timestamp:j,durationMs:Math.max(0,j-$.startedAt),asyncDir:J,sessionId:$.sessionId,sessionFile:$.sessionFile}}}function B$($,J,j,Z,W){let Q=l$(J,$,Z,W);return C(j,Q.result),C(V.join($,"status.json"),Q.status),h$(V.join($,"events.jsonl"),{type:"subagent.run.repaired_stale",ts:Z,runId:Q.status.runId,pid:J.pid,resultPath:j,message:Q.message}),{status:Q.status,repaired:!0,resultPath:j,message:Q.message}}function K$($){return $==="complete"||$==="failed"||$==="paused"}function*o($){for(let J of $??[])yield J,yield*o(J.children),yield*o(J.steps?.flatMap((j)=>j.children??[]))}function Y0($,J={}){let j=W$($);for(let Z of o(j.children)){if(Z.state!=="running"&&Z.state!=="queued")continue;let W=Z$($.rootRunId,Z);if(!W)continue;let Q=i$(W,{...J,resultsDir:V.join(J.resultsDir??I,"nested",$.rootRunId)}),B=Q.status;if(!B)continue;if(!Q.repaired&&!K$(B.state))continue;let O=J.now?.()??Date.now();O$($,{type:K$(B.state)?"subagent.nested.completed":"subagent.nested.updated",ts:O,parentRunId:Z.parentRunId,parentStepIndex:Z.parentStepIndex,child:X$(B,W,{id:Z.id,parentRunId:Z.parentRunId,parentStepIndex:Z.parentStepIndex,depth:Z.depth,path:Z.path,mode:Z.mode,ts:O})})}}function r$($,J=process.kill){try{return J($,0),"alive"}catch(j){let Z=typeof j==="object"&&j!==null&&"code"in j?j.code:void 0;if(Z==="ESRCH")return"dead";if(Z==="EPERM")return"unknown";return"unknown"}}function i$($,J={}){let j=J.now?.()??Date.now(),Z=d$($),W=!Z&&J.startedRun?p$($,J.startedRun,j):void 0,Q=Z??W;if(!Q)return{status:null,repaired:!1};let B=Q.runId||V.basename($),O=V.join(J.resultsDir??I,`${B}.json`);if(H.existsSync(O)){let U=Q.state==="running"||Q.state==="queued"?u$(Q,O,j):void 0;if(U)return C(V.join($,"status.json"),U),{status:U,repaired:!0,resultPath:O,message:"Existing async result file was used to repair stale running status."};return{status:Q,repaired:!1,resultPath:O}}if(Q.state!=="running"||typeof Q.pid!=="number")return{status:Z??null,repaired:!1,resultPath:O};if(!Z){let U=J.startedRun?.startedAt??Q.startedAt;if(j-U<(J.missingStatusGraceMs??1000))return{status:null,repaired:!1,resultPath:O}}if(r$(Q.pid,J.kill)!=="dead"){let U=J.staleAlivePidMs??86400000,f=Q.lastUpdate??Q.startedAt;if(j-f<=U)return{status:Z??null,repaired:!1,resultPath:O};let z=`Async runner process ${Q.pid} still has a live PID, but status has not updated for ${j-f}ms. Marked run failed by stale-run reconciliation because PID ownership cannot be verified.`;return B$($,Q,O,j,z)}return B$($,Q,O,j)}export{Y0 as reconcileNestedAsyncDescendants,i$ as reconcileAsyncRun,r$ as checkPidLiveness};
11
+ ${O}`:B,V=(($.steps?.length)?$.steps:[{agent:"subagent",status:"running"}]).map((G)=>G.status==="running"||G.status==="pending"?{...G,status:"failed",activityState:void 0,endedAt:G.endedAt??j,durationMs:G.startedAt!==void 0&&G.durationMs===void 0?Math.max(0,j-G.startedAt):G.durationMs,exitCode:G.exitCode??1,error:G.error??K}:G),F={...$,state:"failed",activityState:void 0,lastUpdate:j,endedAt:j,steps:V},b=V[$.currentStep??0]?.agent??V[0]?.agent??"subagent";return{status:F,message:K,result:{id:W,agent:b,mode:$.mode,success:!1,state:"failed",summary:K,results:V.map((G)=>({agent:G.agent,output:G.status==="complete"||G.status==="completed"?"":K,error:G.status==="complete"||G.status==="completed"?void 0:G.error??K,success:G.status==="complete"||G.status==="completed",model:G.model,attemptedModels:G.attemptedModels,modelAttempts:G.modelAttempts,sessionFile:G.sessionFile})),exitCode:1,timestamp:j,durationMs:Math.max(0,j-$.startedAt),asyncDir:J,sessionId:$.sessionId,sessionFile:$.sessionFile}}}function K$($,J,j,Z,W){let Q=i$(J,$,Z,W);return _(j,Q.result),_(L.join($,"status.json"),Q.status),n$(L.join($,"events.jsonl"),{type:"subagent.run.repaired_stale",ts:Z,runId:Q.status.runId,pid:J.pid,resultPath:j,message:Q.message}),{status:Q.status,repaired:!0,resultPath:j,message:Q.message}}function Y$($){return $==="complete"||$==="failed"||$==="paused"}function*p($){for(let J of $??[])yield J,yield*p(J.children),yield*p(J.steps?.flatMap((j)=>j.children??[]))}function q0($,J={}){let j=O$($);for(let Z of p(j.children)){if(Z.state!=="running"&&Z.state!=="queued")continue;let W=Q$($.rootRunId,Z);if(!W)continue;let Q=a$(W,{...J,resultsDir:L.join(J.resultsDir??N,"nested",$.rootRunId)}),B=Q.status;if(!B)continue;if(!Q.repaired&&!Y$(B.state))continue;let O=J.now?.()??Date.now();X$($,{type:Y$(B.state)?"subagent.nested.completed":"subagent.nested.updated",ts:O,parentRunId:Z.parentRunId,parentStepIndex:Z.parentStepIndex,child:B$(B,W,{id:Z.id,parentRunId:Z.parentRunId,parentStepIndex:Z.parentStepIndex,depth:Z.depth,path:Z.path,mode:Z.mode,ts:O})})}}function s$($,J=process.kill){try{return J($,0),"alive"}catch(j){let Z=typeof j==="object"&&j!==null&&"code"in j?j.code:void 0;if(Z==="ESRCH")return"dead";if(Z==="EPERM")return"unknown";return"unknown"}}function a$($,J={}){let j=J.now?.()??Date.now(),Z=o$($),W=!Z&&J.startedRun?r$($,J.startedRun,j):void 0,Q=Z??W;if(!Q)return{status:null,repaired:!1};let B=Q.runId||L.basename($),O=L.join(J.resultsDir??N,`${B}.json`);if(H.existsSync(O)){let U=Q.state==="running"||Q.state==="queued"?l$(Q,O,j):void 0;if(U)return _(L.join($,"status.json"),U),{status:U,repaired:!0,resultPath:O,message:"Existing async result file was used to repair stale running status."};return{status:Q,repaired:!1,resultPath:O}}if(Q.state!=="running"||typeof Q.pid!=="number")return{status:Z??null,repaired:!1,resultPath:O};if(!Z){let U=J.startedRun?.startedAt??Q.startedAt;if(j-U<(J.missingStatusGraceMs??1000))return{status:null,repaired:!1,resultPath:O}}if(s$(Q.pid,J.kill)!=="dead"){let U=J.staleAlivePidMs??86400000,V=Q.lastUpdate??Q.startedAt;if(j-V<=U)return{status:Z??null,repaired:!1,resultPath:O};let F=`Async runner process ${Q.pid} still has a live PID, but status has not updated for ${j-V}ms. Marked run failed by stale-run reconciliation because PID ownership cannot be verified.`;return K$($,Q,O,j,F)}return K$($,Q,O,j)}export{q0 as reconcileNestedAsyncDescendants,a$ as reconcileAsyncRun,s$ as checkPidLiveness};