@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,12 +1,12 @@
1
- import*as m from"node:fs";import*as T from"node:path";import*as z from"node:fs";import*as P from"node:path";var D=new Map;function s($){return $ instanceof Error?$.message:String($)}function H$($){return typeof $==="object"&&$!==null&&"code"in $&&$.code==="ENOENT"}function W$($){let f=P.join($,"status.json"),j;try{j=z.statSync(f)}catch(q){if(H$(q))return null;throw Error(`Failed to inspect async status file '${f}': ${s(q)}`,{cause:q instanceof Error?q:void 0})}let J=D.get(f);if(J&&J.mtime===j.mtimeMs)return J.status;let Q;try{Q=z.readFileSync(f,"utf-8")}catch(q){if(H$(q))return null;throw Error(`Failed to read async status file '${f}': ${s(q)}`,{cause:q instanceof Error?q:void 0})}let Z;try{Z=JSON.parse(Q)}catch(q){throw Error(`Failed to parse async status file '${f}': ${s(q)}`,{cause:q instanceof Error?q:void 0})}if(D.set(f,{mtime:j.mtimeMs,status:Z}),D.size>50){let q=D.keys().next().value;if(q)D.delete(q)}return Z}import*as y from"node:os";import*as x from"node:path";function c($){return $.trim().replace(/[^A-Za-z0-9._-]+/g,"-").replace(/^-+|-+$/g,"")||"unknown"}function d$($){let f=$?.env??process.env,j=$&&Object.hasOwn($,"getuid")?$.getuid:process.getuid?.bind(process);if(typeof j==="function")return`uid-${j()}`;for(let q of["USERNAME","USER","LOGNAME"]){let B=f[q];if(B)return`user-${c(B)}`}let J=$&&Object.hasOwn($,"userInfo")?$.userInfo:y.userInfo;try{let q=J?.().username;if(q)return`user-${c(q)}`}catch{}let Q=f.USERPROFILE??f.HOME;if(Q)return`home-${c(Q)}`;let Z=$&&Object.hasOwn($,"homedir")?$.homedir:y.homedir;try{let q=Z?.();if(q)return`home-${c(q)}`}catch{}return"shared"}var E=x.join(y.tmpdir(),`dm-subagents-${d$()}`),h=x.join(E,"async-subagent-results"),n$=x.join(E,"async-subagent-runs"),o$=x.join(E,"chain-runs"),l0=x.join(E,"artifacts");var e=["off","minimal","low","medium","high","xhigh"];function U$($){let f=$.lastIndexOf(":");if(f===-1)return{baseModel:$,thinkingSuffix:""};let j=e.find((J)=>J===$.substring(f+1));if(!j)return{baseModel:$,thinkingSuffix:""};return{baseModel:$.substring(0,f),thinkingSuffix:`:${j}`}}function d($){return $<1000?String($):$<1e4?`${($/1000).toFixed(1)}k`:`${Math.round($/1000)}k`}function G$($,f){let j=$?U$($):void 0,J=j?.baseModel??$,Q=e.find((q)=>q===f?.trim()),Z=j?.thinkingSuffix?j.thinkingSuffix.slice(1):Q;if(J){let q=J.lastIndexOf("/");if(q!==-1)J=J.slice(q+1)}return[J,Z?`thinking ${Z}`:void 0].filter(Boolean).join(" · ")}function w($){if($<1000)return`${$}ms`;if($<60000)return`${($/1000).toFixed(1)}s`;return`${Math.floor($/60000)}m${Math.floor($%60000/1000)}s`}function S($){let f=process.env.HOME;if(f&&$.startsWith(f))return`~${$.slice(f.length)}`;return $}function u$($){if($<1000)return"now";if($<60000)return`${Math.floor($/1000)}s`;return`${Math.floor($/60000)}m`}function n($,f,j=Date.now()){if($===void 0){if(f==="needs_attention")return"needs attention";if(f==="active_long_running")return"active but long-running";return}let J=u$(Math.max(0,j-$));if(f==="needs_attention")return`no activity for ${J}`;if(f==="active_long_running")return`active but long-running · last activity ${J} ago`;return J==="now"?"active now":`active ${J} ago`}function l$($){return $==="complete"||$==="completed"}function p$($){return $===1?"1 agent running":`${$} agents running`}function t($,f,j={}){let J=$.filter((O)=>O.status==="running").length,Q=$.filter((O)=>l$(O.status)).length,Z=$.filter((O)=>O.status==="failed").length,q=$.filter((O)=>O.status==="paused").length,B=[`${Q}/${f} done`];if(j.showRunning!==!1&&J>0)B.unshift(p$(J));if(Z>0)B.push(`${Z} failed`);if(q>0)B.push(`${q} paused`);return B.join(" · ")}import{randomUUID as Z0}from"node:crypto";import*as M from"node:fs";import*as U from"node:path";import*as M$ from"node:path";var r$=128,i$=4;function $$($){return typeof $==="string"&&$.length>0&&$.length<=r$&&!M$.isAbsolute($)&&!$.includes("/")&&!$.includes("\\")&&!$.includes("..")}function L$($){return typeof $==="number"&&Number.isFinite($)?$:void 0}function V$($,f){return typeof $==="string"&&$.length>0?$.slice(0,f):void 0}function A$($){if(!Array.isArray($))return[];return $.map((f)=>{if(!f||typeof f!=="object")return;let j=f;if(!$$(j.runId))return;return{runId:j.runId,...L$(j.stepIndex)!==void 0?{stepIndex:L$(j.stepIndex)}:{},...V$(j.agent,128)?{agent:V$(j.agent,128)}:{}}}).filter((f)=>Boolean(f)).slice(0,i$)}import*as I from"node:path";import{fileURLToPath as T$}from"node:url";import*as C from"node:os";import*as _ from"node:path";var Of=_.join(C.homedir(),".config","mcp","mcp.json"),Kf={cursor:[_.join(C.homedir(),".cursor","mcp.json")],"claude-code":[_.join(C.homedir(),".claude","mcp.json"),_.join(C.homedir(),".claude.json"),_.join(C.homedir(),".claude","claude_desktop_config.json")],"claude-desktop":[_.join(C.homedir(),"Library","Application Support","Claude","claude_desktop_config.json")],codex:[_.join(C.homedir(),".codex","config.json")],windsurf:[_.join(C.homedir(),".windsurf","mcp.json")],vscode:[".vscode/mcp.json"]};import{Compile as Wf}from"typebox/compile";var yf=I.join(I.dirname(T$(import.meta.url)),"subagent-prompt-runtime.ts"),xf=I.join(I.dirname(T$(import.meta.url)),"..","..","extension","fanout-child.ts");import*as s$ from"node:fs";import*as b from"node:path";var e$=[10,25,50,100,200,500,1000,2000,4000],t$=new Set(["EACCES","EBUSY","EPERM"]),z$=typeof SharedArrayBuffer<"u"?new SharedArrayBuffer(4):void 0,_$=z$?new Int32Array(z$):void 0;function $0($){if($<=0)return;if(_$)try{Atomics.wait(_$,0,0,$);return}catch{}let f=Date.now()+$;while(Date.now()<f);}function f0($){let f=$?.code;return typeof f==="string"&&t$.has(f)}function j0($,f,j,J,Q){for(let Z=0;;Z++)try{$.renameSync(f,j);return}catch(q){let B=J[Z];if(B===void 0||!f0(q))throw q;Q(B)}}function J0($={}){let f=$.fs??s$,j=$.now??Date.now,J=$.pid??process.pid,Q=$.random??Math.random,q=$.retryRenameErrors??process.platform==="win32"?$.retryDelaysMs??e$:[],B=$.wait??$0;return(O,W)=>{f.mkdirSync(b.dirname(O),{recursive:!0});let G=b.join(b.dirname(O),`.${b.basename(O)}.${J}.${j()}.${Q().toString(36).slice(2)}.tmp`);try{f.writeFileSync(G,JSON.stringify(W,null,2),"utf-8"),j0(f,G,O,q,B)}finally{f.rmSync(G,{force:!0})}}}var N=J0();var u=U.join(E,"nested-subagent-events"),Q0="route.json",q0="registry.json",Q$=65536,f$=12,g=16,j$=3;function l($){return $$($)}function B0($,f){if(!l(f))throw Error(`${$} must be a non-empty safe id token.`)}function C$($,f){B0($,f)}function J$($,f){let j=U.resolve($),J=U.resolve(f);return J===j||J.startsWith(`${j}${U.sep}`)}function E$($){return U.dirname(U.resolve($.eventSink))}function r($){if(C$("rootRunId",$.rootRunId),C$("capabilityToken",$.capabilityToken),!J$(u,$.eventSink))throw Error("Nested event sink is outside the subagent nested event root.");if(!J$(u,$.controlInbox))throw Error("Nested control inbox is outside the subagent nested event root.");if(E$($)!==U.dirname(U.resolve($.controlInbox)))throw Error("Nested event sink and control inbox must share one route root.")}function S$($,f){if(!f.asyncDir)return;let j=U.resolve(f.asyncDir),J=U.resolve(E,"nested-subagent-runs",$,f.id),Q=U.relative(J,j);return j===J||!Q.startsWith("..")&&!U.isAbsolute(Q)?j:void 0}function K($){return typeof $==="number"&&Number.isFinite($)?$:void 0}function H($,f=512){return typeof $==="string"&&$.length>0?$.slice(0,f):void 0}function X0($){if(!$||typeof $!=="object")return;let f=$,j=K(f.input),J=K(f.output),Q=K(f.total);return j!==void 0&&J!==void 0&&Q!==void 0?{input:j,output:J,total:Q}:void 0}function O0($){if(!$||typeof $!=="object")return;let f=$,j=K(f.inputTokens),J=K(f.outputTokens),Q=K(f.costUsd);return j!==void 0&&J!==void 0&&Q!==void 0?{inputTokens:j,outputTokens:J,costUsd:Q}:void 0}function p($){if(!$||typeof $!=="object")return;let f=$,j=K(f.maxTurns),J=K(f.graceTurns),Q=K(f.turnCount),Z=f.outcome==="within-budget"||f.outcome==="wrap-up-requested"||f.outcome==="exceeded"?f.outcome:void 0;if(j===void 0||J===void 0||Q===void 0||!Z)return;return{maxTurns:j,graceTurns:J,turnCount:Q,outcome:Z,...K(f.wrapUpRequestedAtTurn)!==void 0?{wrapUpRequestedAtTurn:K(f.wrapUpRequestedAtTurn)}:{},...K(f.exceededAtTurn)!==void 0?{exceededAtTurn:K(f.exceededAtTurn)}:{}}}function K0($,f){return $==="queued"||$==="running"||$==="complete"||$==="failed"||$==="paused"?$:f}function Y0($,f){if(!$||typeof $!=="object")return;let j=$,J=H(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,...H(j.sessionFile,2048)?{sessionFile:H(j.sessionFile,2048)}:{},...j.activityState==="active_long_running"||j.activityState==="needs_attention"?{activityState:j.activityState}:{},...K(j.lastActivityAt)!==void 0?{lastActivityAt:K(j.lastActivityAt)}:{},...H(j.currentTool,128)?{currentTool:H(j.currentTool,128)}:{},...K(j.currentToolStartedAt)!==void 0?{currentToolStartedAt:K(j.currentToolStartedAt)}:{},...H(j.currentPath,2048)?{currentPath:H(j.currentPath,2048)}:{},...K(j.turnCount)!==void 0?{turnCount:K(j.turnCount)}:{},...K(j.toolCount)!==void 0?{toolCount:K(j.toolCount)}:{},...K(j.startedAt)!==void 0?{startedAt:K(j.startedAt)}:{},...K(j.endedAt)!==void 0?{endedAt:K(j.endedAt)}:{},...H(j.error,1024)?{error:H(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}:{},...f<j$&&Array.isArray(j.children)?{children:j.children.map((Z)=>i(Z,f+1)).filter((Z)=>Boolean(Z)).slice(0,g)}:{}}}function i($,f=0){if(!$||typeof $!=="object")return;let j=$;if(!l(j.id)||!l(j.parentRunId))return;let J=A$(j.path),Q=Array.isArray(j.steps)?j.steps.map((B)=>Y0(B,f+1)).filter((B)=>Boolean(B)).slice(0,f$):void 0,Z=X0(j.totalTokens),q=O0(j.totalCost);return{id:j.id,parentRunId:j.parentRunId,...K(j.parentStepIndex)!==void 0?{parentStepIndex:K(j.parentStepIndex)}:{},...H(j.parentAgent,128)?{parentAgent:H(j.parentAgent,128)}:{},depth:Math.min(Math.max(0,K(j.depth)??0),j$),path:J,state:K0(j.state,"running"),...H(j.asyncDir,2048)?{asyncDir:H(j.asyncDir,2048)}:{},...K(j.pid)!==void 0&&K(j.pid)>0&&Number.isInteger(K(j.pid))?{pid:K(j.pid)}:{},...H(j.sessionId,256)?{sessionId:H(j.sessionId,256)}:{},...H(j.sessionFile,2048)?{sessionFile:H(j.sessionFile,2048)}:{},...H(j.intercomTarget,256)?{intercomTarget:H(j.intercomTarget,256)}:{},...H(j.ownerIntercomTarget,256)?{ownerIntercomTarget:H(j.ownerIntercomTarget,256)}:{},...H(j.leafIntercomTarget,256)?{leafIntercomTarget:H(j.leafIntercomTarget,256)}:{},...j.ownerState==="live"||j.ownerState==="gone"||j.ownerState==="unknown"?{ownerState:j.ownerState}:{},...H(j.controlInbox,2048)?{controlInbox:H(j.controlInbox,2048)}:{},...H(j.capabilityToken,128)?{capabilityToken:H(j.capabilityToken,128)}:{},...j.mode==="single"||j.mode==="parallel"||j.mode==="chain"?{mode:j.mode}:{},...H(j.agent,128)?{agent:H(j.agent,128)}:{},...Array.isArray(j.agents)?{agents:j.agents.map((B)=>H(B,128)).filter((B)=>Boolean(B)).slice(0,f$)}:{},...K(j.currentStep)!==void 0?{currentStep:K(j.currentStep)}:{},...K(j.chainStepCount)!==void 0?{chainStepCount:K(j.chainStepCount)}:{},...j.activityState==="active_long_running"||j.activityState==="needs_attention"?{activityState:j.activityState}:{},...K(j.lastActivityAt)!==void 0?{lastActivityAt:K(j.lastActivityAt)}:{},...H(j.currentTool,128)?{currentTool:H(j.currentTool,128)}:{},...K(j.currentToolStartedAt)!==void 0?{currentToolStartedAt:K(j.currentToolStartedAt)}:{},...H(j.currentPath,2048)?{currentPath:H(j.currentPath,2048)}:{},...K(j.turnCount)!==void 0?{turnCount:K(j.turnCount)}:{},...K(j.toolCount)!==void 0?{toolCount:K(j.toolCount)}:{},...Z?{totalTokens:Z}:{},...q?{totalCost:q}:{},...K(j.startedAt)!==void 0?{startedAt:K(j.startedAt)}:{},...K(j.endedAt)!==void 0?{endedAt:K(j.endedAt)}:{},...K(j.lastUpdate)!==void 0?{lastUpdate:K(j.lastUpdate)}:{},...K(j.timeoutMs)!==void 0?{timeoutMs:K(j.timeoutMs)}:{},...K(j.deadlineAt)!==void 0?{deadlineAt:K(j.deadlineAt)}:{},...j.timedOut===!0?{timedOut:!0}:{},...p(j.turnBudget)?{turnBudget:p(j.turnBudget)}:{},...j.turnBudgetExceeded===!0?{turnBudgetExceeded:!0}:{},...j.wrapUpRequested===!0?{wrapUpRequested:!0}:{},...H(j.error,1024)?{error:H(j.error,1024)}:{},...Q&&Q.length>0?{steps:Q}:{},...f<j$&&Array.isArray(j.children)?{children:j.children.map((B)=>i(B,f+1)).filter((B)=>Boolean(B)).slice(0,g)}:{}}}function Z$($,f){if(Buffer.byteLength($,"utf-8")>Q$)return;let j;try{j=JSON.parse($)}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!==f.rootRunId||J.capabilityToken!==f.capabilityToken)return;if(!l(J.parentRunId))return;let Q=K(J.ts);if(Q===void 0)return;let Z=i(J.child);if(!Z||Z.id===f.rootRunId)return;let q={...Z,controlInbox:f.controlInbox,capabilityToken:f.capabilityToken,ownerState:Z.ownerState??"unknown"};return{type:J.type,ts:Q,rootRunId:f.rootRunId,parentRunId:J.parentRunId,...K(J.parentStepIndex)!==void 0?{parentStepIndex:K(J.parentStepIndex)}:{},capabilityToken:f.capabilityToken,child:q}}function H0($,f){if(!$.includes(`
2
- `)){let j=Z$($.trim(),f);return j?[j]:[]}return $.split(`
1
+ import*as c from"node:fs";import*as T from"node:path";import*as z from"node:fs";import*as w from"node:path";var P=new Map;function e($){return $ instanceof Error?$.message:String($)}function W$($){return typeof $==="object"&&$!==null&&"code"in $&&$.code==="ENOENT"}function G$($){let f=w.join($,"status.json"),j;try{j=z.statSync(f)}catch(q){if(W$(q))return null;throw Error(`Failed to inspect async status file '${f}': ${e(q)}`,{cause:q instanceof Error?q:void 0})}let J=P.get(f);if(J&&J.mtime===j.mtimeMs)return J.status;let Q;try{Q=z.readFileSync(f,"utf-8")}catch(q){if(W$(q))return null;throw Error(`Failed to read async status file '${f}': ${e(q)}`,{cause:q instanceof Error?q:void 0})}let Z;try{Z=JSON.parse(Q)}catch(q){throw Error(`Failed to parse async status file '${f}': ${e(q)}`,{cause:q instanceof Error?q:void 0})}if(P.set(f,{mtime:j.mtimeMs,status:Z}),P.size>50){let q=P.keys().next().value;if(q)P.delete(q)}return Z}import*as x from"node:os";import*as I from"node:path";function h($){return $.trim().replace(/[^A-Za-z0-9._-]+/g,"-").replace(/^-+|-+$/g,"")||"unknown"}function n$($){let f=$?.env??process.env,j=$&&Object.hasOwn($,"getuid")?$.getuid:process.getuid?.bind(process);if(typeof j==="function")return`uid-${j()}`;for(let q of["USERNAME","USER","LOGNAME"]){let B=f[q];if(B)return`user-${h(B)}`}let J=$&&Object.hasOwn($,"userInfo")?$.userInfo:x.userInfo;try{let q=J?.().username;if(q)return`user-${h(q)}`}catch{}let Q=f.USERPROFILE??f.HOME;if(Q)return`home-${h(Q)}`;let Z=$&&Object.hasOwn($,"homedir")?$.homedir:x.homedir;try{let q=Z?.();if(q)return`home-${h(q)}`}catch{}return"shared"}var S=I.join(x.tmpdir(),`dm-subagents-${n$()}`),d=I.join(S,"async-subagent-results"),o$=I.join(S,"async-subagent-runs"),u$=I.join(S,"chain-runs"),r0=I.join(S,"artifacts");var t=["off","minimal","low","medium","high","xhigh"];function U$($){let f=$.lastIndexOf(":");if(f===-1)return{baseModel:$,thinkingSuffix:""};let j=t.find((J)=>J===$.substring(f+1));if(!j)return{baseModel:$,thinkingSuffix:""};return{baseModel:$.substring(0,f),thinkingSuffix:`:${j}`}}function n($){return $<1000?String($):$<1e4?`${($/1000).toFixed(1)}k`:`${Math.round($/1000)}k`}function L$($,f){let j=$?U$($):void 0,J=j?.baseModel??$,Q=t.find((q)=>q===f?.trim()),Z=j?.thinkingSuffix?j.thinkingSuffix.slice(1):Q;if(J){let q=J.lastIndexOf("/");if(q!==-1)J=J.slice(q+1)}return[J,Z?`thinking ${Z}`:void 0].filter(Boolean).join(" · ")}function g($){if($<1000)return`${$}ms`;if($<60000)return`${($/1000).toFixed(1)}s`;return`${Math.floor($/60000)}m${Math.floor($%60000/1000)}s`}function b($){let f=process.env.HOME;if(f&&$.startsWith(f))return`~${$.slice(f.length)}`;return $}function p$($){if($<1000)return"now";if($<60000)return`${Math.floor($/1000)}s`;return`${Math.floor($/60000)}m`}function o($,f,j=Date.now()){if($===void 0){if(f==="needs_attention")return"needs attention";if(f==="active_long_running")return"active but long-running";return}let J=p$(Math.max(0,j-$));if(f==="needs_attention")return`no activity for ${J}`;if(f==="active_long_running")return`active but long-running · last activity ${J} ago`;return J==="now"?"active now":`active ${J} ago`}function l$($){return $==="complete"||$==="completed"}function r$($){return $===1?"1 agent running":`${$} agents running`}function $$($,f,j={}){let J=$.filter((O)=>O.status==="running").length,Q=$.filter((O)=>l$(O.status)).length,Z=$.filter((O)=>O.status==="failed").length,q=$.filter((O)=>O.status==="paused").length,B=[`${Q}/${f} done`];if(j.showRunning!==!1&&J>0)B.unshift(r$(J));if(Z>0)B.push(`${Z} failed`);if(q>0)B.push(`${q} paused`);return B.join(" · ")}import{randomUUID as q0}from"node:crypto";import*as M from"node:fs";import*as G from"node:path";import*as A$ from"node:path";var i$=128,a$=4;function f$($){return typeof $==="string"&&$.length>0&&$.length<=i$&&!A$.isAbsolute($)&&!$.includes("/")&&!$.includes("\\")&&!$.includes("..")}function V$($){return typeof $==="number"&&Number.isFinite($)?$:void 0}function M$($,f){return typeof $==="string"&&$.length>0?$.slice(0,f):void 0}function T$($){if(!Array.isArray($))return[];return $.map((f)=>{if(!f||typeof f!=="object")return;let j=f;if(!f$(j.runId))return;return{runId:j.runId,...V$(j.stepIndex)!==void 0?{stepIndex:V$(j.stepIndex)}:{},...M$(j.agent,128)?{agent:M$(j.agent,128)}:{}}}).filter((f)=>Boolean(f)).slice(0,a$)}import*as N from"node:fs";import*as C from"node:path";import{fileURLToPath as e$}from"node:url";import*as F from"node:os";import*as _ from"node:path";var Yf=_.join(F.homedir(),".config","mcp","mcp.json"),Hf={cursor:[_.join(F.homedir(),".cursor","mcp.json")],"claude-code":[_.join(F.homedir(),".claude","mcp.json"),_.join(F.homedir(),".claude.json"),_.join(F.homedir(),".claude","claude_desktop_config.json")],"claude-desktop":[_.join(F.homedir(),"Library","Application Support","Claude","claude_desktop_config.json")],codex:[_.join(F.homedir(),".codex","config.json")],windsurf:[_.join(F.homedir(),".windsurf","mcp.json")],vscode:[".vscode/mcp.json"]};import{Compile as Uf}from"typebox/compile";function z$($,f){let j=e$($),J=C.extname(j),Q=[".js",".mjs",".cjs",".ts",".mts",".cts"].includes(J)?J:".ts",Z=C.dirname(j);while(!N.existsSync(C.join(Z,"package.json"))){let q=C.dirname(Z);if(q===Z)throw Error(`Unable to resolve dm-subagents package root from ${j}`);Z=q}return C.join(Z,`${f}${Q}`)}var If=z$(import.meta.url,C.join("src","runs","shared","subagent-prompt-runtime")),Nf=z$(import.meta.url,C.join("src","extension","fanout-child"));import*as t$ from"node:fs";import*as y from"node:path";var $0=[10,25,50,100,200,500,1000,2000,4000],f0=new Set(["EACCES","EBUSY","EPERM"]),_$=typeof SharedArrayBuffer<"u"?new SharedArrayBuffer(4):void 0,C$=_$?new Int32Array(_$):void 0;function j0($){if($<=0)return;if(C$)try{Atomics.wait(C$,0,0,$);return}catch{}let f=Date.now()+$;while(Date.now()<f);}function J0($){let f=$?.code;return typeof f==="string"&&f0.has(f)}function Z0($,f,j,J,Q){for(let Z=0;;Z++)try{$.renameSync(f,j);return}catch(q){let B=J[Z];if(B===void 0||!J0(q))throw q;Q(B)}}function Q0($={}){let f=$.fs??t$,j=$.now??Date.now,J=$.pid??process.pid,Q=$.random??Math.random,q=$.retryRenameErrors??process.platform==="win32"?$.retryDelaysMs??$0:[],B=$.wait??j0;return(O,W)=>{f.mkdirSync(y.dirname(O),{recursive:!0});let U=y.join(y.dirname(O),`.${y.basename(O)}.${J}.${j()}.${Q().toString(36).slice(2)}.tmp`);try{f.writeFileSync(U,JSON.stringify(W,null,2),"utf-8"),Z0(f,U,O,q,B)}finally{f.rmSync(U,{force:!0})}}}var R=Q0();var p=G.join(S,"nested-subagent-events"),B0="route.json",X0="registry.json",q$=65536,j$=12,k=16,J$=3;function l($){return f$($)}function O0($,f){if(!l(f))throw Error(`${$} must be a non-empty safe id token.`)}function F$($,f){O0($,f)}function Z$($,f){let j=G.resolve($),J=G.resolve(f);return J===j||J.startsWith(`${j}${G.sep}`)}function S$($){return G.dirname(G.resolve($.eventSink))}function i($){if(F$("rootRunId",$.rootRunId),F$("capabilityToken",$.capabilityToken),!Z$(p,$.eventSink))throw Error("Nested event sink is outside the subagent nested event root.");if(!Z$(p,$.controlInbox))throw Error("Nested control inbox is outside the subagent nested event root.");if(S$($)!==G.dirname(G.resolve($.controlInbox)))throw Error("Nested event sink and control inbox must share one route root.")}function b$($,f){if(!f.asyncDir)return;let j=G.resolve(f.asyncDir),J=G.resolve(S,"nested-subagent-runs",$,f.id),Q=G.relative(J,j);return j===J||!Q.startsWith("..")&&!G.isAbsolute(Q)?j:void 0}function K($){return typeof $==="number"&&Number.isFinite($)?$:void 0}function H($,f=512){return typeof $==="string"&&$.length>0?$.slice(0,f):void 0}function K0($){if(!$||typeof $!=="object")return;let f=$,j=K(f.input),J=K(f.output),Q=K(f.total);return j!==void 0&&J!==void 0&&Q!==void 0?{input:j,output:J,total:Q}:void 0}function Y0($){if(!$||typeof $!=="object")return;let f=$,j=K(f.inputTokens),J=K(f.outputTokens),Q=K(f.costUsd);return j!==void 0&&J!==void 0&&Q!==void 0?{inputTokens:j,outputTokens:J,costUsd:Q}:void 0}function r($){if(!$||typeof $!=="object")return;let f=$,j=K(f.maxTurns),J=K(f.graceTurns),Q=K(f.turnCount),Z=f.outcome==="within-budget"||f.outcome==="wrap-up-requested"||f.outcome==="exceeded"?f.outcome:void 0;if(j===void 0||J===void 0||Q===void 0||!Z)return;return{maxTurns:j,graceTurns:J,turnCount:Q,outcome:Z,...K(f.wrapUpRequestedAtTurn)!==void 0?{wrapUpRequestedAtTurn:K(f.wrapUpRequestedAtTurn)}:{},...K(f.exceededAtTurn)!==void 0?{exceededAtTurn:K(f.exceededAtTurn)}:{}}}function H0($,f){return $==="queued"||$==="running"||$==="complete"||$==="failed"||$==="paused"?$:f}function W0($,f){if(!$||typeof $!=="object")return;let j=$,J=H(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,...H(j.sessionFile,2048)?{sessionFile:H(j.sessionFile,2048)}:{},...j.activityState==="active_long_running"||j.activityState==="needs_attention"?{activityState:j.activityState}:{},...K(j.lastActivityAt)!==void 0?{lastActivityAt:K(j.lastActivityAt)}:{},...H(j.currentTool,128)?{currentTool:H(j.currentTool,128)}:{},...K(j.currentToolStartedAt)!==void 0?{currentToolStartedAt:K(j.currentToolStartedAt)}:{},...H(j.currentPath,2048)?{currentPath:H(j.currentPath,2048)}:{},...K(j.turnCount)!==void 0?{turnCount:K(j.turnCount)}:{},...K(j.toolCount)!==void 0?{toolCount:K(j.toolCount)}:{},...K(j.startedAt)!==void 0?{startedAt:K(j.startedAt)}:{},...K(j.endedAt)!==void 0?{endedAt:K(j.endedAt)}:{},...H(j.error,1024)?{error:H(j.error,1024)}:{},...j.timedOut===!0?{timedOut:!0}:{},...r(j.turnBudget)?{turnBudget:r(j.turnBudget)}:{},...j.turnBudgetExceeded===!0?{turnBudgetExceeded:!0}:{},...j.wrapUpRequested===!0?{wrapUpRequested:!0}:{},...f<J$&&Array.isArray(j.children)?{children:j.children.map((Z)=>a(Z,f+1)).filter((Z)=>Boolean(Z)).slice(0,k)}:{}}}function a($,f=0){if(!$||typeof $!=="object")return;let j=$;if(!l(j.id)||!l(j.parentRunId))return;let J=T$(j.path),Q=Array.isArray(j.steps)?j.steps.map((B)=>W0(B,f+1)).filter((B)=>Boolean(B)).slice(0,j$):void 0,Z=K0(j.totalTokens),q=Y0(j.totalCost);return{id:j.id,parentRunId:j.parentRunId,...K(j.parentStepIndex)!==void 0?{parentStepIndex:K(j.parentStepIndex)}:{},...H(j.parentAgent,128)?{parentAgent:H(j.parentAgent,128)}:{},depth:Math.min(Math.max(0,K(j.depth)??0),J$),path:J,state:H0(j.state,"running"),...H(j.asyncDir,2048)?{asyncDir:H(j.asyncDir,2048)}:{},...K(j.pid)!==void 0&&K(j.pid)>0&&Number.isInteger(K(j.pid))?{pid:K(j.pid)}:{},...H(j.sessionId,256)?{sessionId:H(j.sessionId,256)}:{},...H(j.sessionFile,2048)?{sessionFile:H(j.sessionFile,2048)}:{},...H(j.intercomTarget,256)?{intercomTarget:H(j.intercomTarget,256)}:{},...H(j.ownerIntercomTarget,256)?{ownerIntercomTarget:H(j.ownerIntercomTarget,256)}:{},...H(j.leafIntercomTarget,256)?{leafIntercomTarget:H(j.leafIntercomTarget,256)}:{},...j.ownerState==="live"||j.ownerState==="gone"||j.ownerState==="unknown"?{ownerState:j.ownerState}:{},...H(j.controlInbox,2048)?{controlInbox:H(j.controlInbox,2048)}:{},...H(j.capabilityToken,128)?{capabilityToken:H(j.capabilityToken,128)}:{},...j.mode==="single"||j.mode==="parallel"||j.mode==="chain"?{mode:j.mode}:{},...H(j.agent,128)?{agent:H(j.agent,128)}:{},...Array.isArray(j.agents)?{agents:j.agents.map((B)=>H(B,128)).filter((B)=>Boolean(B)).slice(0,j$)}:{},...K(j.currentStep)!==void 0?{currentStep:K(j.currentStep)}:{},...K(j.chainStepCount)!==void 0?{chainStepCount:K(j.chainStepCount)}:{},...j.activityState==="active_long_running"||j.activityState==="needs_attention"?{activityState:j.activityState}:{},...K(j.lastActivityAt)!==void 0?{lastActivityAt:K(j.lastActivityAt)}:{},...H(j.currentTool,128)?{currentTool:H(j.currentTool,128)}:{},...K(j.currentToolStartedAt)!==void 0?{currentToolStartedAt:K(j.currentToolStartedAt)}:{},...H(j.currentPath,2048)?{currentPath:H(j.currentPath,2048)}:{},...K(j.turnCount)!==void 0?{turnCount:K(j.turnCount)}:{},...K(j.toolCount)!==void 0?{toolCount:K(j.toolCount)}:{},...Z?{totalTokens:Z}:{},...q?{totalCost:q}:{},...K(j.startedAt)!==void 0?{startedAt:K(j.startedAt)}:{},...K(j.endedAt)!==void 0?{endedAt:K(j.endedAt)}:{},...K(j.lastUpdate)!==void 0?{lastUpdate:K(j.lastUpdate)}:{},...K(j.timeoutMs)!==void 0?{timeoutMs:K(j.timeoutMs)}:{},...K(j.deadlineAt)!==void 0?{deadlineAt:K(j.deadlineAt)}:{},...j.timedOut===!0?{timedOut:!0}:{},...r(j.turnBudget)?{turnBudget:r(j.turnBudget)}:{},...j.turnBudgetExceeded===!0?{turnBudgetExceeded:!0}:{},...j.wrapUpRequested===!0?{wrapUpRequested:!0}:{},...H(j.error,1024)?{error:H(j.error,1024)}:{},...Q&&Q.length>0?{steps:Q}:{},...f<J$&&Array.isArray(j.children)?{children:j.children.map((B)=>a(B,f+1)).filter((B)=>Boolean(B)).slice(0,k)}:{}}}function Q$($,f){if(Buffer.byteLength($,"utf-8")>q$)return;let j;try{j=JSON.parse($)}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!==f.rootRunId||J.capabilityToken!==f.capabilityToken)return;if(!l(J.parentRunId))return;let Q=K(J.ts);if(Q===void 0)return;let Z=a(J.child);if(!Z||Z.id===f.rootRunId)return;let q={...Z,controlInbox:f.controlInbox,capabilityToken:f.capabilityToken,ownerState:Z.ownerState??"unknown"};return{type:J.type,ts:Q,rootRunId:f.rootRunId,parentRunId:J.parentRunId,...K(J.parentStepIndex)!==void 0?{parentStepIndex:K(J.parentStepIndex)}:{},capabilityToken:f.capabilityToken,child:q}}function G0($,f){if(!$.includes(`
2
+ `)){let j=Q$($.trim(),f);return j?[j]:[]}return $.split(`
3
3
  `).slice(0,$.endsWith(`
4
- `)?void 0:-1).map((j)=>j.trim()?Z$(j,f):void 0).filter((j)=>Boolean(j))}function o($){return $==="complete"||$==="failed"||$==="paused"}function F$($,f){let j=f.type==="subagent.nested.completed"&&f.child.state==="running"?"complete":f.child.state,J={...f.child,state:j,lastUpdate:f.child.lastUpdate??f.ts};if(!$)return J;let Q=$.lastUpdate??0,Z=J.lastUpdate??f.ts;if(Z<Q)return $;if(o($.state)&&!o(J.state))return $;if(o($.state)&&o(J.state)&&Z===Q)return $;return{...$,...J,state:J.state,lastUpdate:Math.max(Q,Z)}}function W0($,f){let j=!1,J=(B)=>B.map((O)=>{if(O.id===f.parentRunId){let G=O.children??[],X=G.findIndex((F)=>F.id===f.child.id),L=F$(X>=0?G[X]:void 0,f),Y=X>=0?G.map((F,R)=>R===X?L:F):[...G,L];return j=!0,{...O,children:Y.slice(0,g),lastUpdate:Math.max(O.lastUpdate??0,f.ts)}}if(!O.children?.length)return O;let W=J(O.children);return W===O.children?O:{...O,children:W}}),Q=J($);if(j)return Q;let Z=Q.findIndex((B)=>B.id===f.child.id),q=F$(Z>=0?Q[Z]:void 0,f);return Z>=0?Q.map((B,O)=>O===Z?q:B):[...Q,q].slice(0,g)}function U0($,f){return{...$,updatedAt:Math.max($.updatedAt,f.ts),children:W0($.children,f)}}function b$($){return U.join(E$($),q0)}function y$(){let $;try{$=M.readdirSync(u)}catch(j){if(j.code==="ENOENT")return new Map;throw j}let f=new Map;for(let j of $){let J=U.join(u,j);try{let Q=JSON.parse(M.readFileSync(U.join(J,Q0),"utf-8"));if(typeof Q.rootRunId!=="string"||typeof Q.capabilityToken!=="string")continue;if(f.has(Q.rootRunId))continue;let Z={rootRunId:Q.rootRunId,eventSink:U.join(J,"events"),controlInbox:U.join(J,"controls"),capabilityToken:Q.capabilityToken};r(Z),f.set(Q.rootRunId,Z)}catch{continue}}return f}function G0($){r($);try{let f=JSON.parse(M.readFileSync(b$($),"utf-8"));return{rootRunId:$.rootRunId,updatedAt:typeof f.updatedAt==="number"?f.updatedAt:0,children:Array.isArray(f.children)?f.children.map((j)=>i(j)).filter((j)=>Boolean(j)):[],processedEvents:Array.isArray(f.processedEvents)?f.processedEvents.filter((j)=>typeof j==="string"):[]}}catch(f){if(f.code!=="ENOENT")throw f;return{rootRunId:$.rootRunId,updatedAt:0,children:[],processedEvents:[]}}}function a($){r($);let f=G0($),j=new Set(f.processedEvents),J=!1,Q=[];try{Q=M.readdirSync($.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 q=U.join($.eventSink,Z);if(!J$($.eventSink,q))continue;let B;try{let O=M.statSync(q);if(!O.isFile()||O.size>Q$)continue;B=M.readFileSync(q,"utf-8")}catch{continue}for(let O of H0(B,$))f=U0(f,O),J=!0;j.add(Z),J=!0}if(J)f={...f,processedEvents:[...j].slice(-1000)},N(b$($),f);return f}function L0($,f,j){let J=`${JSON.stringify(j)}
5
- `;if(Buffer.byteLength(J,"utf-8")>Q$)throw Error("Nested route record exceeds the maximum size.");M.mkdirSync($,{recursive:!0,mode:448});let Q=`${String(f).padStart(13,"0")}-${Z0()}.json`,Z=U.join($,`.${Q}.tmp`),q=U.join($,Q);return M.writeFileSync(Z,J,{mode:384}),M.renameSync(Z,q),q}function x$($,f){r($);let j={...f,rootRunId:$.rootRunId,capabilityToken:$.capabilityToken},J=Z$(JSON.stringify(j),$);if(!J)throw Error("Nested event record failed validation.");L0($.eventSink,J.ts,J)}function I$($,f,j){if(!f?.length)return;for(let J of f)J.children=void 0;if(!j?.length)return;for(let J of j){if(J.parentRunId!==$||J.parentStepIndex===void 0)continue;let Q=f.find((Z,q)=>(Z.index??q)===J.parentStepIndex);if(!Q)continue;Q.children??=[],Q.children=[...Q.children.filter((Z)=>Z.id!==J.id),J].slice(0,g)}}function N$($,f,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:f,...$.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((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,f$)}:{}}}function D$($){let f={total:0,running:0,paused:0,complete:0,failed:0,queued:0};for(let j of $??[]){f.total++,f[j.state]++;let J=D$([...j.children??[],...j.steps?.flatMap((Q)=>Q.children??[])??[]]);f.total+=J.total,f.running+=J.running,f.paused+=J.paused,f.complete+=J.complete,f.failed+=J.failed,f.queued+=J.queued}return f}function q$($){let f=D$($);if(f.total===0)return;let j=[f.running>0?`${f.running} running`:"",f.paused>0?`${f.paused} paused`:"",f.failed>0?`${f.failed} failed`:"",f.complete>0?`${f.complete} complete`:"",f.queued>0?`${f.queued} queued`:""].filter(Boolean);return`+${f.total} nested run${f.total===1?"":"s"}${j.length?` (${j.join(", ")})`:""}`}function V0($){if($.agent)return $.agent;if($.agents?.length)return $.agents.length===1?$.agents[0]:`${$.agents.slice(0,2).join(", ")}${$.agents.length>2?` +${$.agents.length-2}`:""}`;return $.id}function R$($){let f=[];if($.currentTool&&$.currentToolStartedAt!==void 0)f.push(`tool ${$.currentTool} ${w(Math.max(0,Date.now()-$.currentToolStartedAt))}`);else if($.currentTool)f.push(`tool ${$.currentTool}`);if($.currentPath)f.push(S($.currentPath));if($.turnCount!==void 0)f.push(`${$.turnCount} turns`);if($.toolCount!==void 0)f.push(`${$.toolCount} tools`);if($.totalTokens)f.push(`${d($.totalTokens.total)} tok`);let j=n($.lastActivityAt,$.activityState);return j||f.length?[j,...f].filter(Boolean).join(" | "):void 0}function M0($,f){let j=[],J=(Q,Z,q)=>{if(!Q?.length||j.length>=f.maxLines)return;if(Z>f.maxDepth){let B=q$(Q);if(B&&j.length<f.maxLines)j.push(`${q}↳ ${B}`);return}for(let B=0;B<Q.length;B++){let O=Q[B];if(j.length>=f.maxLines){let X=q$(Q.slice(B));if(X)j[j.length-1]=`${q}↳ ${X}`;return}let W=O.state==="running"?R$(O):void 0,G=O.error?` | error: ${O.error}`:"";if(j.push(`${q}↳ ${V0(O)} [${O.id}] ${O.state}${W?` | ${W}`:""}${G}`),f.commandHints&&j.length<f.maxLines)j.push(`${q} Status: subagent({ action: "status", id: "${O.id}" })`);if(Z===f.maxDepth){let X=q$([...O.steps?.flatMap((L)=>L.children??[])??[],...O.children??[]]);if(X&&j.length<f.maxLines)j.push(`${q} ↳ ${X}`);continue}for(let[X,L]of(O.steps??[]).entries()){if(j.length>=f.maxLines)return;let Y=L.status==="running"?R$(L):void 0;j.push(`${q} ${X+1}. ${L.agent} ${L.status}${Y?` | ${Y}`:""}${L.error?` | error: ${L.error}`:""}`),J(L.children,Z+1,`${q} `)}J(O.children,Z+1,`${q} `)}};return J($,0,f.indent),j}function B$($,f={}){return M0($,{indent:f.indent??" ",maxDepth:f.maxDepth??2,maxLines:f.maxLines??40,commandHints:f.commandHints??!1})}function A0($,f,j){if(typeof $!=="object"||$===null)return!1;let{start:J,count:Q,stepIndex:Z}=$;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<=f}function k($,f,j){if(!Array.isArray($))return[];return $.filter((J)=>A0(J,f,j)).sort((J,Q)=>J.stepIndex-Q.stepIndex||J.start-Q.start)}function P$($,f,j){let J=0,Q=0;for(let Z of j){while(Q<Z.start&&J<f){if(Q===$)return J;Q++,J++}if($>=Z.start&&$<Z.start+Z.count)return Z.stepIndex;Q=Z.start+Z.count,J=Z.stepIndex+1}while(Q<=$&&J<f){if(Q===$)return J;Q++,J++}return Math.max(0,f-1)}import*as V from"node:fs";import*as A from"node:path";function X$($){return $ instanceof Error?$.message:String($)}function T0($){let f=A.join($,"runner.stderr.log"),j=65536,J;try{let Z=V.statSync(f);if(Z.size<=0)return;let q=V.openSync(f,"r");try{let B=Math.min(Z.size,65536),O=Math.max(0,Z.size-B),W=Buffer.alloc(B);V.readSync(q,W,0,B,O),J=W.toString("utf-8").trim()}finally{V.closeSync(q)}}catch{return}if(!J)return;let Q=J.split(/\r?\n/).slice(-30).join(`
4
+ `)?void 0:-1).map((j)=>j.trim()?Q$(j,f):void 0).filter((j)=>Boolean(j))}function u($){return $==="complete"||$==="failed"||$==="paused"}function E$($,f){let j=f.type==="subagent.nested.completed"&&f.child.state==="running"?"complete":f.child.state,J={...f.child,state:j,lastUpdate:f.child.lastUpdate??f.ts};if(!$)return J;let Q=$.lastUpdate??0,Z=J.lastUpdate??f.ts;if(Z<Q)return $;if(u($.state)&&!u(J.state))return $;if(u($.state)&&u(J.state)&&Z===Q)return $;return{...$,...J,state:J.state,lastUpdate:Math.max(Q,Z)}}function U0($,f){let j=!1,J=(B)=>B.map((O)=>{if(O.id===f.parentRunId){let U=O.children??[],X=U.findIndex((E)=>E.id===f.child.id),L=E$(X>=0?U[X]:void 0,f),Y=X>=0?U.map((E,D)=>D===X?L:E):[...U,L];return j=!0,{...O,children:Y.slice(0,k),lastUpdate:Math.max(O.lastUpdate??0,f.ts)}}if(!O.children?.length)return O;let W=J(O.children);return W===O.children?O:{...O,children:W}}),Q=J($);if(j)return Q;let Z=Q.findIndex((B)=>B.id===f.child.id),q=E$(Z>=0?Q[Z]:void 0,f);return Z>=0?Q.map((B,O)=>O===Z?q:B):[...Q,q].slice(0,k)}function L0($,f){return{...$,updatedAt:Math.max($.updatedAt,f.ts),children:U0($.children,f)}}function y$($){return G.join(S$($),X0)}function x$(){let $;try{$=M.readdirSync(p)}catch(j){if(j.code==="ENOENT")return new Map;throw j}let f=new Map;for(let j of $){let J=G.join(p,j);try{let Q=JSON.parse(M.readFileSync(G.join(J,B0),"utf-8"));if(typeof Q.rootRunId!=="string"||typeof Q.capabilityToken!=="string")continue;if(f.has(Q.rootRunId))continue;let Z={rootRunId:Q.rootRunId,eventSink:G.join(J,"events"),controlInbox:G.join(J,"controls"),capabilityToken:Q.capabilityToken};i(Z),f.set(Q.rootRunId,Z)}catch{continue}}return f}function V0($){i($);try{let f=JSON.parse(M.readFileSync(y$($),"utf-8"));return{rootRunId:$.rootRunId,updatedAt:typeof f.updatedAt==="number"?f.updatedAt:0,children:Array.isArray(f.children)?f.children.map((j)=>a(j)).filter((j)=>Boolean(j)):[],processedEvents:Array.isArray(f.processedEvents)?f.processedEvents.filter((j)=>typeof j==="string"):[]}}catch(f){if(f.code!=="ENOENT")throw f;return{rootRunId:$.rootRunId,updatedAt:0,children:[],processedEvents:[]}}}function s($){i($);let f=V0($),j=new Set(f.processedEvents),J=!1,Q=[];try{Q=M.readdirSync($.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 q=G.join($.eventSink,Z);if(!Z$($.eventSink,q))continue;let B;try{let O=M.statSync(q);if(!O.isFile()||O.size>q$)continue;B=M.readFileSync(q,"utf-8")}catch{continue}for(let O of G0(B,$))f=L0(f,O),J=!0;j.add(Z),J=!0}if(J)f={...f,processedEvents:[...j].slice(-1000)},R(y$($),f);return f}function M0($,f,j){let J=`${JSON.stringify(j)}
5
+ `;if(Buffer.byteLength(J,"utf-8")>q$)throw Error("Nested route record exceeds the maximum size.");M.mkdirSync($,{recursive:!0,mode:448});let Q=`${String(f).padStart(13,"0")}-${q0()}.json`,Z=G.join($,`.${Q}.tmp`),q=G.join($,Q);return M.writeFileSync(Z,J,{mode:384}),M.renameSync(Z,q),q}function I$($,f){i($);let j={...f,rootRunId:$.rootRunId,capabilityToken:$.capabilityToken},J=Q$(JSON.stringify(j),$);if(!J)throw Error("Nested event record failed validation.");M0($.eventSink,J.ts,J)}function N$($,f,j){if(!f?.length)return;for(let J of f)J.children=void 0;if(!j?.length)return;for(let J of j){if(J.parentRunId!==$||J.parentStepIndex===void 0)continue;let Q=f.find((Z,q)=>(Z.index??q)===J.parentStepIndex);if(!Q)continue;Q.children??=[],Q.children=[...Q.children.filter((Z)=>Z.id!==J.id),J].slice(0,k)}}function R$($,f,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:f,...$.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((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,j$)}:{}}}function P$($){let f={total:0,running:0,paused:0,complete:0,failed:0,queued:0};for(let j of $??[]){f.total++,f[j.state]++;let J=P$([...j.children??[],...j.steps?.flatMap((Q)=>Q.children??[])??[]]);f.total+=J.total,f.running+=J.running,f.paused+=J.paused,f.complete+=J.complete,f.failed+=J.failed,f.queued+=J.queued}return f}function B$($){let f=P$($);if(f.total===0)return;let j=[f.running>0?`${f.running} running`:"",f.paused>0?`${f.paused} paused`:"",f.failed>0?`${f.failed} failed`:"",f.complete>0?`${f.complete} complete`:"",f.queued>0?`${f.queued} queued`:""].filter(Boolean);return`+${f.total} nested run${f.total===1?"":"s"}${j.length?` (${j.join(", ")})`:""}`}function A0($){if($.agent)return $.agent;if($.agents?.length)return $.agents.length===1?$.agents[0]:`${$.agents.slice(0,2).join(", ")}${$.agents.length>2?` +${$.agents.length-2}`:""}`;return $.id}function D$($){let f=[];if($.currentTool&&$.currentToolStartedAt!==void 0)f.push(`tool ${$.currentTool} ${g(Math.max(0,Date.now()-$.currentToolStartedAt))}`);else if($.currentTool)f.push(`tool ${$.currentTool}`);if($.currentPath)f.push(b($.currentPath));if($.turnCount!==void 0)f.push(`${$.turnCount} turns`);if($.toolCount!==void 0)f.push(`${$.toolCount} tools`);if($.totalTokens)f.push(`${n($.totalTokens.total)} tok`);let j=o($.lastActivityAt,$.activityState);return j||f.length?[j,...f].filter(Boolean).join(" | "):void 0}function T0($,f){let j=[],J=(Q,Z,q)=>{if(!Q?.length||j.length>=f.maxLines)return;if(Z>f.maxDepth){let B=B$(Q);if(B&&j.length<f.maxLines)j.push(`${q}↳ ${B}`);return}for(let B=0;B<Q.length;B++){let O=Q[B];if(j.length>=f.maxLines){let X=B$(Q.slice(B));if(X)j[j.length-1]=`${q}↳ ${X}`;return}let W=O.state==="running"?D$(O):void 0,U=O.error?` | error: ${O.error}`:"";if(j.push(`${q}↳ ${A0(O)} [${O.id}] ${O.state}${W?` | ${W}`:""}${U}`),f.commandHints&&j.length<f.maxLines)j.push(`${q} Status: subagent({ action: "status", id: "${O.id}" })`);if(Z===f.maxDepth){let X=B$([...O.steps?.flatMap((L)=>L.children??[])??[],...O.children??[]]);if(X&&j.length<f.maxLines)j.push(`${q} ↳ ${X}`);continue}for(let[X,L]of(O.steps??[]).entries()){if(j.length>=f.maxLines)return;let Y=L.status==="running"?D$(L):void 0;j.push(`${q} ${X+1}. ${L.agent} ${L.status}${Y?` | ${Y}`:""}${L.error?` | error: ${L.error}`:""}`),J(L.children,Z+1,`${q} `)}J(O.children,Z+1,`${q} `)}};return J($,0,f.indent),j}function X$($,f={}){return T0($,{indent:f.indent??" ",maxDepth:f.maxDepth??2,maxLines:f.maxLines??40,commandHints:f.commandHints??!1})}function z0($,f,j){if(typeof $!=="object"||$===null)return!1;let{start:J,count:Q,stepIndex:Z}=$;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<=f}function v($,f,j){if(!Array.isArray($))return[];return $.filter((J)=>z0(J,f,j)).sort((J,Q)=>J.stepIndex-Q.stepIndex||J.start-Q.start)}function w$($,f,j){let J=0,Q=0;for(let Z of j){while(Q<Z.start&&J<f){if(Q===$)return J;Q++,J++}if($>=Z.start&&$<Z.start+Z.count)return Z.stepIndex;Q=Z.start+Z.count,J=Z.stepIndex+1}while(Q<=$&&J<f){if(Q===$)return J;Q++,J++}return Math.max(0,f-1)}import*as V from"node:fs";import*as A from"node:path";function O$($){return $ instanceof Error?$.message:String($)}function _0($){let f=A.join($,"runner.stderr.log"),j=65536,J;try{let Z=V.statSync(f);if(Z.size<=0)return;let q=V.openSync(f,"r");try{let B=Math.min(Z.size,65536),O=Math.max(0,Z.size-B),W=Buffer.alloc(B);V.readSync(q,W,0,B,O),J=W.toString("utf-8").trim()}finally{V.closeSync(q)}}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 k$($){return typeof $==="object"&&$!==null&&"code"in $&&$.code==="ENOENT"}function z0($,f){try{V.mkdirSync(A.dirname($),{recursive:!0}),V.appendFileSync($,`${JSON.stringify(f)}
8
- `,"utf-8")}catch{}}function _0($){let f=A.join($,"status.json"),j;try{j=V.readFileSync(f,"utf-8")}catch(J){if(k$(J))return null;throw Error(`Failed to read async status file '${f}': ${X$(J)}`,{cause:J instanceof Error?J:void 0})}try{return JSON.parse(j)}catch(J){throw Error(`Failed to parse async status file '${f}': ${X$(J)}`,{cause:J instanceof Error?J:void 0})}}function C0($){try{let f=JSON.parse(V.readFileSync($,"utf-8"));return{state:f.success?"complete":f.state==="paused"||f.exitCode===0?"paused":"failed",...Array.isArray(f.results)?{results:f.results}:{}}}catch(f){if(k$(f))return;throw Error(`Failed to read async result file '${$}': ${X$(f)}`,{cause:f instanceof Error?f:void 0})}}function F0($,f){if(f?.success===!0)return"complete";if(f?.success===!1)return"failed";return $}function E0($,f,j){let J=C0(f);if(!J)return;let Q=($.steps??[]).map((Z,q)=>{if(Z.status!=="running"&&Z.status!=="pending")return Z;let B=J.results?.[q],O=F0(J.state,B);return{...Z,status:O==="complete"?"complete":O,endedAt:Z.endedAt??j,durationMs:Z.startedAt!==void 0&&Z.durationMs===void 0?Math.max(0,j-Z.startedAt):Z.durationMs,exitCode:Z.exitCode??(O==="complete"||O==="paused"?0:1),error:O==="failed"?Z.error??B?.error:Z.error,sessionFile:Z.sessionFile??B?.sessionFile,model:Z.model??B?.model,attemptedModels:Z.attemptedModels??B?.attemptedModels,modelAttempts:Z.modelAttempts??B?.modelAttempts}});return{...$,state:J.state,activityState:void 0,lastUpdate:j,endedAt:$.endedAt??j,steps:Q}}function S0($,f,j){let J=f.startedAt??j,Q=f.agents?.length?f.agents:["subagent"],Z=f.chainStepCount,q=Z!==void 0?k(f.parallelGroups,Q.length,Z):[];return{runId:f.runId||A.basename($),...f.sessionId?{sessionId:f.sessionId}:{},mode:f.mode??"single",state:"running",pid:f.pid,startedAt:J,lastUpdate:j,currentStep:0,...Z!==void 0?{chainStepCount:Z}:{},...q.length?{parallelGroups:q}:{},steps:Q.map((B)=>({agent:B,status:"running",startedAt:J})),...f.sessionFile?{sessionFile:f.sessionFile}:{}}}function b0($,f,j,J){let Q=$.runId||A.basename(f),Z=typeof $.pid==="number"?$.pid:"unknown",q=J??`Async runner process ${Z} exited or disappeared before writing a result. Marked run failed by stale-run reconciliation.`,B=T0(f),O=B?`${q}
7
+ [stderr tail truncated]`:Q}function v$($){return typeof $==="object"&&$!==null&&"code"in $&&$.code==="ENOENT"}function C0($,f){try{V.mkdirSync(A.dirname($),{recursive:!0}),V.appendFileSync($,`${JSON.stringify(f)}
8
+ `,"utf-8")}catch{}}function F0($){let f=A.join($,"status.json"),j;try{j=V.readFileSync(f,"utf-8")}catch(J){if(v$(J))return null;throw Error(`Failed to read async status file '${f}': ${O$(J)}`,{cause:J instanceof Error?J:void 0})}try{return JSON.parse(j)}catch(J){throw Error(`Failed to parse async status file '${f}': ${O$(J)}`,{cause:J instanceof Error?J:void 0})}}function E0($){try{let f=JSON.parse(V.readFileSync($,"utf-8"));return{state:f.success?"complete":f.state==="paused"||f.exitCode===0?"paused":"failed",...Array.isArray(f.results)?{results:f.results}:{}}}catch(f){if(v$(f))return;throw Error(`Failed to read async result file '${$}': ${O$(f)}`,{cause:f instanceof Error?f:void 0})}}function S0($,f){if(f?.success===!0)return"complete";if(f?.success===!1)return"failed";return $}function b0($,f,j){let J=E0(f);if(!J)return;let Q=($.steps??[]).map((Z,q)=>{if(Z.status!=="running"&&Z.status!=="pending")return Z;let B=J.results?.[q],O=S0(J.state,B);return{...Z,status:O==="complete"?"complete":O,endedAt:Z.endedAt??j,durationMs:Z.startedAt!==void 0&&Z.durationMs===void 0?Math.max(0,j-Z.startedAt):Z.durationMs,exitCode:Z.exitCode??(O==="complete"||O==="paused"?0:1),error:O==="failed"?Z.error??B?.error:Z.error,sessionFile:Z.sessionFile??B?.sessionFile,model:Z.model??B?.model,attemptedModels:Z.attemptedModels??B?.attemptedModels,modelAttempts:Z.modelAttempts??B?.modelAttempts}});return{...$,state:J.state,activityState:void 0,lastUpdate:j,endedAt:$.endedAt??j,steps:Q}}function y0($,f,j){let J=f.startedAt??j,Q=f.agents?.length?f.agents:["subagent"],Z=f.chainStepCount,q=Z!==void 0?v(f.parallelGroups,Q.length,Z):[];return{runId:f.runId||A.basename($),...f.sessionId?{sessionId:f.sessionId}:{},mode:f.mode??"single",state:"running",pid:f.pid,startedAt:J,lastUpdate:j,currentStep:0,...Z!==void 0?{chainStepCount:Z}:{},...q.length?{parallelGroups:q}:{},steps:Q.map((B)=>({agent:B,status:"running",startedAt:J})),...f.sessionFile?{sessionFile:f.sessionFile}:{}}}function x0($,f,j,J){let Q=$.runId||A.basename(f),Z=typeof $.pid==="number"?$.pid:"unknown",q=J??`Async runner process ${Z} exited or disappeared before writing a result. Marked run failed by stale-run reconciliation.`,B=_0(f),O=B?`${q}
9
9
 
10
10
  Runner stderr tail:
11
- ${B}`:q,G=(($.steps?.length)?$.steps:[{agent:"subagent",status:"running"}]).map((Y)=>Y.status==="running"||Y.status==="pending"?{...Y,status:"failed",activityState:void 0,endedAt:Y.endedAt??j,durationMs:Y.startedAt!==void 0&&Y.durationMs===void 0?Math.max(0,j-Y.startedAt):Y.durationMs,exitCode:Y.exitCode??1,error:Y.error??O}:Y),X={...$,state:"failed",activityState:void 0,lastUpdate:j,endedAt:j,steps:G},L=G[$.currentStep??0]?.agent??G[0]?.agent??"subagent";return{status:X,message:O,result:{id:Q,agent:L,mode:$.mode,success:!1,state:"failed",summary:O,results:G.map((Y)=>({agent:Y.agent,output:Y.status==="complete"||Y.status==="completed"?"":O,error:Y.status==="complete"||Y.status==="completed"?void 0:Y.error??O,success:Y.status==="complete"||Y.status==="completed",model:Y.model,attemptedModels:Y.attemptedModels,modelAttempts:Y.modelAttempts,sessionFile:Y.sessionFile})),exitCode:1,timestamp:j,durationMs:Math.max(0,j-$.startedAt),asyncDir:f,sessionId:$.sessionId,sessionFile:$.sessionFile}}}function w$($,f,j,J,Q){let Z=b0(f,$,J,Q);return N(j,Z.result),N(A.join($,"status.json"),Z.status),z0(A.join($,"events.jsonl"),{type:"subagent.run.repaired_stale",ts:J,runId:Z.status.runId,pid:f.pid,resultPath:j,message:Z.message}),{status:Z.status,repaired:!0,resultPath:j,message:Z.message}}function g$($){return $==="complete"||$==="failed"||$==="paused"}function*O$($){for(let f of $??[])yield f,yield*O$(f.children),yield*O$(f.steps?.flatMap((j)=>j.children??[]))}function v$($,f={}){let j=a($);for(let J of O$(j.children)){if(J.state!=="running"&&J.state!=="queued")continue;let Q=S$($.rootRunId,J);if(!Q)continue;let Z=K$(Q,{...f,resultsDir:A.join(f.resultsDir??h,"nested",$.rootRunId)}),q=Z.status;if(!q)continue;if(!Z.repaired&&!g$(q.state))continue;let B=f.now?.()??Date.now();x$($,{type:g$(q.state)?"subagent.nested.completed":"subagent.nested.updated",ts:B,parentRunId:J.parentRunId,parentStepIndex:J.parentStepIndex,child:N$(q,Q,{id:J.id,parentRunId:J.parentRunId,parentStepIndex:J.parentStepIndex,depth:J.depth,path:J.path,mode:J.mode,ts:B})})}}function y0($,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 K$($,f={}){let j=f.now?.()??Date.now(),J=_0($),Q=!J&&f.startedRun?S0($,f.startedRun,j):void 0,Z=J??Q;if(!Z)return{status:null,repaired:!1};let q=Z.runId||A.basename($),B=A.join(f.resultsDir??h,`${q}.json`);if(V.existsSync(B)){let W=Z.state==="running"||Z.state==="queued"?E0(Z,B,j):void 0;if(W)return N(A.join($,"status.json"),W),{status:W,repaired:!0,resultPath:B,message:"Existing async result file was used to repair stale running status."};return{status:Z,repaired:!1,resultPath:B}}if(Z.state!=="running"||typeof Z.pid!=="number")return{status:J??null,repaired:!1,resultPath:B};if(!J){let W=f.startedRun?.startedAt??Z.startedAt;if(j-W<(f.missingStatusGraceMs??1000))return{status:null,repaired:!1,resultPath:B}}if(y0(Z.pid,f.kill)!=="dead"){let W=f.staleAlivePidMs??86400000,G=Z.lastUpdate??Z.startedAt;if(j-G<=W)return{status:J??null,repaired:!1,resultPath:B};let X=`Async runner process ${Z.pid} still has a live PID, but status has not updated for ${j-G}ms. Marked run failed by stale-run reconciliation because PID ownership cannot be verified.`;return w$($,Z,B,j,X)}return w$($,Z,B,j)}function v($){return $ instanceof Error?$.message:String($)}function Y$($){return typeof $==="object"&&$!==null&&"code"in $&&$.code==="ENOENT"}function x0($,f){let j=T.join($,f);try{return m.statSync(j).isDirectory()}catch(J){if(Y$(J))return!1;throw Error(`Failed to inspect async run path '${j}': ${v(J)}`,{cause:J instanceof Error?J:void 0})}}function I0($){if(!$)return;try{return m.statSync($).mtimeMs}catch(f){if(Y$(f))return;throw Error(`Failed to inspect async output file '${$}': ${v(f)}`,{cause:f instanceof Error?f:void 0})}}function N0($,f){if(f.state!=="running")return{activityState:f.activityState,lastActivityAt:f.lastActivityAt};let j=f.outputFile?T.isAbsolute(f.outputFile)?f.outputFile:T.join($,f.outputFile):void 0,J=typeof f.currentStep==="number"?f.steps?.[f.currentStep]:void 0;return{activityState:f.activityState,lastActivityAt:f.lastActivityAt??I0(j)??J?.lastActivityAt??J?.startedAt??f.startedAt}}function R0($,f,j=[],J){if(f.sessionId!==void 0&&typeof f.sessionId!=="string")throw Error(`Invalid async status '${T.join($,"status.json")}': sessionId must be a string.`);let{activityState:Q,lastActivityAt:Z}=N0($,f),q=f.steps??[],B=f.chainStepCount??q.length,O=k(f.parallelGroups,q.length,B),W=[];if(j.length===0&&J)try{W=a(J)?.children??[]}catch(X){j.push(`Nested status unavailable: ${v(X)}`)}let G=q.map((X,L)=>{let{activityState:Y,lastActivityAt:F}=X;return{index:L,agent:X.agent,...X.label?{label:X.label}:{},...X.phase?{phase:X.phase}:{},...X.outputName?{outputName:X.outputName}:{},...X.structured?{structured:X.structured}:{},status:X.status,...Y?{activityState:Y}:{},...F?{lastActivityAt:F}:{},...X.currentTool?{currentTool:X.currentTool}:{},...X.currentToolArgs?{currentToolArgs:X.currentToolArgs}:{},...X.currentToolStartedAt?{currentToolStartedAt:X.currentToolStartedAt}:{},...X.currentPath?{currentPath:X.currentPath}:{},...X.recentTools?{recentTools:X.recentTools.map((R)=>({...R}))}:{},...X.recentOutput?{recentOutput:[...X.recentOutput]}:{},...X.turnCount!==void 0?{turnCount:X.turnCount}:{},...X.toolCount!==void 0?{toolCount:X.toolCount}:{},...X.steerCount!==void 0?{steerCount:X.steerCount}:{},...X.lastSteerAt!==void 0?{lastSteerAt:X.lastSteerAt}:{},...X.durationMs!==void 0?{durationMs:X.durationMs}:{},...X.tokens?{tokens:X.tokens}:{},...X.totalCost?{totalCost:X.totalCost}:{},...X.skills?{skills:X.skills}:{},...X.model?{model:X.model}:{},...X.thinking?{thinking:X.thinking}:{},...X.attemptedModels?{attemptedModels:X.attemptedModels}:{},...X.error?{error:X.error}:{},...X.timedOut!==void 0?{timedOut:X.timedOut}:{},...X.turnBudget?{turnBudget:X.turnBudget}:{},...X.turnBudgetExceeded!==void 0?{turnBudgetExceeded:X.turnBudgetExceeded}:{},...X.wrapUpRequested!==void 0?{wrapUpRequested:X.wrapUpRequested}:{},...X.children?.length?{children:X.children}:{}}});return I$(f.runId||T.basename($),G,W),{id:f.runId||T.basename($),asyncDir:$,...f.sessionId?{sessionId:f.sessionId}:{},state:f.state,...f.error?{error:f.error}:{},activityState:Q,lastActivityAt:Z,currentTool:f.currentTool,currentToolStartedAt:f.currentToolStartedAt,currentPath:f.currentPath,turnCount:f.turnCount,toolCount:f.toolCount,steerCount:f.steerCount,lastSteerAt:f.lastSteerAt,mode:f.mode,cwd:f.cwd,startedAt:f.startedAt,lastUpdate:f.lastUpdate,endedAt:f.endedAt,...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}:{},currentStep:f.currentStep,...f.chainStepCount!==void 0?{chainStepCount:f.chainStepCount}:{},...f.pendingAppends!==void 0?{pendingAppends:f.pendingAppends}:{},...O.length?{parallelGroups:O}:{},steps:G,...W.length?{nestedChildren:W}:{},...j.length?{nestedWarnings:j}:{},...f.sessionDir?{sessionDir:f.sessionDir}:{},...f.outputFile?{outputFile:f.outputFile}:{},...f.totalTokens?{totalTokens:f.totalTokens}:{},...f.totalCost?{totalCost:f.totalCost}:{},...f.sessionFile?{sessionFile:f.sessionFile}:{}}}function D0($){let f=(j)=>{switch(j){case"running":return 0;case"queued":return 1;case"failed":return 2;case"paused":return 2;case"complete":return 3}};return[...$].sort((j,J)=>{let Q=f(j.state)-f(J.state);if(Q!==0)return Q;let Z=j.lastUpdate??j.endedAt??j.startedAt;return(J.lastUpdate??J.endedAt??J.startedAt)-Z})}function Oj($,f={}){let j;try{j=m.readdirSync($).filter((O)=>x0($,O))}catch(O){if(Y$(O))return[];throw Error(`Failed to list async runs in '${$}': ${v(O)}`,{cause:O instanceof Error?O:void 0})}let J=f.states?new Set(f.states):void 0,Q=[],Z,q=(O)=>{if(!Z)Z=y$();return Z.get(O)};for(let O of j){let W=T.join($,O),X=(f.reconcile===!1?void 0:K$(W,{resultsDir:f.resultsDir,kill:f.kill,now:f.now}))?.status??W$(W);if(!X)continue;if(J&&!J.has(X.state))continue;if(f.sessionId&&X.sessionId!==f.sessionId)continue;let L=[],Y;try{if(Y=q(X.runId||T.basename(W)),Y)v$(Y,{resultsDir:f.resultsDir,kill:f.kill,now:f.now})}catch(R){L.push(`Nested status unavailable: ${v(R)}`)}let F=R0(W,X,L,Y);Q.push(F)}let B=D0(Q);return f.limit!==void 0?B.slice(0,f.limit):B}function m$($){let f=[];if($.currentTool&&$.currentToolStartedAt!==void 0)f.push(`tool ${$.currentTool} ${w(Math.max(0,Date.now()-$.currentToolStartedAt))}`);else if($.currentTool)f.push(`tool ${$.currentTool}`);if($.currentPath)f.push(S($.currentPath));if($.turnCount!==void 0)f.push(`${$.turnCount} turns`);if($.turnBudgetExceeded&&$.turnBudget)f.push(`turn budget exceeded ${$.turnBudget.turnCount}/${$.turnBudget.maxTurns}+${$.turnBudget.graceTurns}`);else if($.wrapUpRequested&&$.turnBudget)f.push(`wrap-up requested ${$.turnBudget.turnCount}/${$.turnBudget.maxTurns}`);else if($.turnBudget)f.push(`turn budget ${$.turnBudget.turnCount}/${$.turnBudget.maxTurns}+${$.turnBudget.graceTurns}`);if($.toolCount!==void 0)f.push(`${$.toolCount} tools`);if($.steerCount!==void 0)f.push(`${$.steerCount} steers`);if(typeof $.lastSteerAt==="number"&&Number.isFinite($.lastSteerAt))f.push(`last steer ${new Date($.lastSteerAt).toISOString()}`);let j=n($.lastActivityAt,$.activityState);return j||f.length?[j,...f].filter(Boolean).join(" | "):void 0}function P0($){let f=$.label?`${$.label} (${$.agent})`:$.agent,j=$.phase?`[${$.phase}] `:"",J=[`${$.index+1}. ${j}${f}`,$.status],Q=m$($);if(Q)J.push(Q);let Z=G$($.model,$.thinking);if(Z)J.push(Z);if($.durationMs!==void 0)J.push(w($.durationMs));if($.tokens)J.push(`${d($.tokens.total)} tok`);return J.join(" | ")}function w0($){if(!$.outputFile)return;return T.isAbsolute($.outputFile)?$.outputFile:T.join($.asyncDir,$.outputFile)}function g0($){let f=$.steps.length||1,j=$.chainStepCount??f,J=k($.parallelGroups,$.steps.length,j),Q=$.currentStep!==void 0?J.find((Z)=>$.currentStep>=Z.start&&$.currentStep<Z.start+Z.count):void 0;if(Q){let Z=$.steps.slice(Q.start,Q.start+Q.count),q=t(Z,Q.count,{showRunning:$.state==="running"});if($.mode==="parallel")return q;return`step ${Q.stepIndex+1}/${j} · parallel group: ${q}`}if($.mode==="parallel")return t($.steps,f,{showRunning:$.state==="running"});if($.mode==="chain"&&$.currentStep!==void 0&&J.length>0)return`step ${P$($.currentStep,j,J)+1}/${j}`;return $.currentStep!==void 0?`step ${$.currentStep+1}/${f}`:`steps ${f}`}function k0($){let f=g0($),j=$.cwd?S($.cwd):S($.asyncDir),J=m$($),Q=$.pendingAppends?` | ${$.pendingAppends} pending append${$.pendingAppends===1?"":"s"}`:"";return`${$.id} | ${$.state}${J?` | ${J}`:""} | ${$.mode} | ${f}${Q} | ${j}`}function Kj($,f="Active async runs"){if($.length===0)return`No ${f.toLowerCase()}.`;let j=[`${f}: ${$.length}`,""];for(let J of $){j.push(`- ${k0(J)}`);for(let B of J.steps)j.push(` ${P0(B)}`),j.push(...B$(B.children,{indent:" ",maxLines:12}));let Q=new Set(J.steps.flatMap((B)=>B.children?.map((O)=>O.id)??[])),Z=J.nestedChildren?.filter((B)=>!Q.has(B.id))??[];if(j.push(...B$(Z,{indent:" ",maxLines:12})),J.error)j.push(` Error: ${J.error}`);for(let B of J.nestedWarnings??[])j.push(` Warning: ${B}`);let q=w0(J);if(q)j.push(` output: ${S(q)}`);if(J.sessionFile)j.push(` session: ${S(J.sessionFile)}`);j.push("")}return j.join(`
12
- `).trimEnd()}export{Oj as listAsyncRuns,g0 as formatAsyncRunProgressLabel,w0 as formatAsyncRunOutputPath,Kj as formatAsyncRunList};
11
+ ${B}`:q,U=(($.steps?.length)?$.steps:[{agent:"subagent",status:"running"}]).map((Y)=>Y.status==="running"||Y.status==="pending"?{...Y,status:"failed",activityState:void 0,endedAt:Y.endedAt??j,durationMs:Y.startedAt!==void 0&&Y.durationMs===void 0?Math.max(0,j-Y.startedAt):Y.durationMs,exitCode:Y.exitCode??1,error:Y.error??O}:Y),X={...$,state:"failed",activityState:void 0,lastUpdate:j,endedAt:j,steps:U},L=U[$.currentStep??0]?.agent??U[0]?.agent??"subagent";return{status:X,message:O,result:{id:Q,agent:L,mode:$.mode,success:!1,state:"failed",summary:O,results:U.map((Y)=>({agent:Y.agent,output:Y.status==="complete"||Y.status==="completed"?"":O,error:Y.status==="complete"||Y.status==="completed"?void 0:Y.error??O,success:Y.status==="complete"||Y.status==="completed",model:Y.model,attemptedModels:Y.attemptedModels,modelAttempts:Y.modelAttempts,sessionFile:Y.sessionFile})),exitCode:1,timestamp:j,durationMs:Math.max(0,j-$.startedAt),asyncDir:f,sessionId:$.sessionId,sessionFile:$.sessionFile}}}function g$($,f,j,J,Q){let Z=x0(f,$,J,Q);return R(j,Z.result),R(A.join($,"status.json"),Z.status),C0(A.join($,"events.jsonl"),{type:"subagent.run.repaired_stale",ts:J,runId:Z.status.runId,pid:f.pid,resultPath:j,message:Z.message}),{status:Z.status,repaired:!0,resultPath:j,message:Z.message}}function k$($){return $==="complete"||$==="failed"||$==="paused"}function*K$($){for(let f of $??[])yield f,yield*K$(f.children),yield*K$(f.steps?.flatMap((j)=>j.children??[]))}function m$($,f={}){let j=s($);for(let J of K$(j.children)){if(J.state!=="running"&&J.state!=="queued")continue;let Q=b$($.rootRunId,J);if(!Q)continue;let Z=Y$(Q,{...f,resultsDir:A.join(f.resultsDir??d,"nested",$.rootRunId)}),q=Z.status;if(!q)continue;if(!Z.repaired&&!k$(q.state))continue;let B=f.now?.()??Date.now();I$($,{type:k$(q.state)?"subagent.nested.completed":"subagent.nested.updated",ts:B,parentRunId:J.parentRunId,parentStepIndex:J.parentStepIndex,child:R$(q,Q,{id:J.id,parentRunId:J.parentRunId,parentStepIndex:J.parentStepIndex,depth:J.depth,path:J.path,mode:J.mode,ts:B})})}}function I0($,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 Y$($,f={}){let j=f.now?.()??Date.now(),J=F0($),Q=!J&&f.startedRun?y0($,f.startedRun,j):void 0,Z=J??Q;if(!Z)return{status:null,repaired:!1};let q=Z.runId||A.basename($),B=A.join(f.resultsDir??d,`${q}.json`);if(V.existsSync(B)){let W=Z.state==="running"||Z.state==="queued"?b0(Z,B,j):void 0;if(W)return R(A.join($,"status.json"),W),{status:W,repaired:!0,resultPath:B,message:"Existing async result file was used to repair stale running status."};return{status:Z,repaired:!1,resultPath:B}}if(Z.state!=="running"||typeof Z.pid!=="number")return{status:J??null,repaired:!1,resultPath:B};if(!J){let W=f.startedRun?.startedAt??Z.startedAt;if(j-W<(f.missingStatusGraceMs??1000))return{status:null,repaired:!1,resultPath:B}}if(I0(Z.pid,f.kill)!=="dead"){let W=f.staleAlivePidMs??86400000,U=Z.lastUpdate??Z.startedAt;if(j-U<=W)return{status:J??null,repaired:!1,resultPath:B};let X=`Async runner process ${Z.pid} still has a live PID, but status has not updated for ${j-U}ms. Marked run failed by stale-run reconciliation because PID ownership cannot be verified.`;return g$($,Z,B,j,X)}return g$($,Z,B,j)}function m($){return $ instanceof Error?$.message:String($)}function H$($){return typeof $==="object"&&$!==null&&"code"in $&&$.code==="ENOENT"}function N0($,f){let j=T.join($,f);try{return c.statSync(j).isDirectory()}catch(J){if(H$(J))return!1;throw Error(`Failed to inspect async run path '${j}': ${m(J)}`,{cause:J instanceof Error?J:void 0})}}function R0($){if(!$)return;try{return c.statSync($).mtimeMs}catch(f){if(H$(f))return;throw Error(`Failed to inspect async output file '${$}': ${m(f)}`,{cause:f instanceof Error?f:void 0})}}function D0($,f){if(f.state!=="running")return{activityState:f.activityState,lastActivityAt:f.lastActivityAt};let j=f.outputFile?T.isAbsolute(f.outputFile)?f.outputFile:T.join($,f.outputFile):void 0,J=typeof f.currentStep==="number"?f.steps?.[f.currentStep]:void 0;return{activityState:f.activityState,lastActivityAt:f.lastActivityAt??R0(j)??J?.lastActivityAt??J?.startedAt??f.startedAt}}function P0($,f,j=[],J){if(f.sessionId!==void 0&&typeof f.sessionId!=="string")throw Error(`Invalid async status '${T.join($,"status.json")}': sessionId must be a string.`);let{activityState:Q,lastActivityAt:Z}=D0($,f),q=f.steps??[],B=f.chainStepCount??q.length,O=v(f.parallelGroups,q.length,B),W=[];if(j.length===0&&J)try{W=s(J)?.children??[]}catch(X){j.push(`Nested status unavailable: ${m(X)}`)}let U=q.map((X,L)=>{let{activityState:Y,lastActivityAt:E}=X;return{index:L,agent:X.agent,...X.label?{label:X.label}:{},...X.phase?{phase:X.phase}:{},...X.outputName?{outputName:X.outputName}:{},...X.structured?{structured:X.structured}:{},status:X.status,...Y?{activityState:Y}:{},...E?{lastActivityAt:E}:{},...X.currentTool?{currentTool:X.currentTool}:{},...X.currentToolArgs?{currentToolArgs:X.currentToolArgs}:{},...X.currentToolStartedAt?{currentToolStartedAt:X.currentToolStartedAt}:{},...X.currentPath?{currentPath:X.currentPath}:{},...X.recentTools?{recentTools:X.recentTools.map((D)=>({...D}))}:{},...X.recentOutput?{recentOutput:[...X.recentOutput]}:{},...X.turnCount!==void 0?{turnCount:X.turnCount}:{},...X.toolCount!==void 0?{toolCount:X.toolCount}:{},...X.steerCount!==void 0?{steerCount:X.steerCount}:{},...X.lastSteerAt!==void 0?{lastSteerAt:X.lastSteerAt}:{},...X.durationMs!==void 0?{durationMs:X.durationMs}:{},...X.tokens?{tokens:X.tokens}:{},...X.totalCost?{totalCost:X.totalCost}:{},...X.skills?{skills:X.skills}:{},...X.model?{model:X.model}:{},...X.thinking?{thinking:X.thinking}:{},...X.attemptedModels?{attemptedModels:X.attemptedModels}:{},...X.error?{error:X.error}:{},...X.timedOut!==void 0?{timedOut:X.timedOut}:{},...X.turnBudget?{turnBudget:X.turnBudget}:{},...X.turnBudgetExceeded!==void 0?{turnBudgetExceeded:X.turnBudgetExceeded}:{},...X.wrapUpRequested!==void 0?{wrapUpRequested:X.wrapUpRequested}:{},...X.children?.length?{children:X.children}:{}}});return N$(f.runId||T.basename($),U,W),{id:f.runId||T.basename($),asyncDir:$,...f.sessionId?{sessionId:f.sessionId}:{},state:f.state,...f.error?{error:f.error}:{},activityState:Q,lastActivityAt:Z,currentTool:f.currentTool,currentToolStartedAt:f.currentToolStartedAt,currentPath:f.currentPath,turnCount:f.turnCount,toolCount:f.toolCount,steerCount:f.steerCount,lastSteerAt:f.lastSteerAt,mode:f.mode,cwd:f.cwd,startedAt:f.startedAt,lastUpdate:f.lastUpdate,endedAt:f.endedAt,...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}:{},currentStep:f.currentStep,...f.chainStepCount!==void 0?{chainStepCount:f.chainStepCount}:{},...f.pendingAppends!==void 0?{pendingAppends:f.pendingAppends}:{},...O.length?{parallelGroups:O}:{},steps:U,...W.length?{nestedChildren:W}:{},...j.length?{nestedWarnings:j}:{},...f.sessionDir?{sessionDir:f.sessionDir}:{},...f.outputFile?{outputFile:f.outputFile}:{},...f.totalTokens?{totalTokens:f.totalTokens}:{},...f.totalCost?{totalCost:f.totalCost}:{},...f.sessionFile?{sessionFile:f.sessionFile}:{}}}function w0($){let f=(j)=>{switch(j){case"running":return 0;case"queued":return 1;case"failed":return 2;case"paused":return 2;case"complete":return 3}};return[...$].sort((j,J)=>{let Q=f(j.state)-f(J.state);if(Q!==0)return Q;let Z=j.lastUpdate??j.endedAt??j.startedAt;return(J.lastUpdate??J.endedAt??J.startedAt)-Z})}function Yj($,f={}){let j;try{j=c.readdirSync($).filter((O)=>N0($,O))}catch(O){if(H$(O))return[];throw Error(`Failed to list async runs in '${$}': ${m(O)}`,{cause:O instanceof Error?O:void 0})}let J=f.states?new Set(f.states):void 0,Q=[],Z,q=(O)=>{if(!Z)Z=x$();return Z.get(O)};for(let O of j){let W=T.join($,O),X=(f.reconcile===!1?void 0:Y$(W,{resultsDir:f.resultsDir,kill:f.kill,now:f.now}))?.status??G$(W);if(!X)continue;if(J&&!J.has(X.state))continue;if(f.sessionId&&X.sessionId!==f.sessionId)continue;let L=[],Y;try{if(Y=q(X.runId||T.basename(W)),Y)m$(Y,{resultsDir:f.resultsDir,kill:f.kill,now:f.now})}catch(D){L.push(`Nested status unavailable: ${m(D)}`)}let E=P0(W,X,L,Y);Q.push(E)}let B=w0(Q);return f.limit!==void 0?B.slice(0,f.limit):B}function c$($){let f=[];if($.currentTool&&$.currentToolStartedAt!==void 0)f.push(`tool ${$.currentTool} ${g(Math.max(0,Date.now()-$.currentToolStartedAt))}`);else if($.currentTool)f.push(`tool ${$.currentTool}`);if($.currentPath)f.push(b($.currentPath));if($.turnCount!==void 0)f.push(`${$.turnCount} turns`);if($.turnBudgetExceeded&&$.turnBudget)f.push(`turn budget exceeded ${$.turnBudget.turnCount}/${$.turnBudget.maxTurns}+${$.turnBudget.graceTurns}`);else if($.wrapUpRequested&&$.turnBudget)f.push(`wrap-up requested ${$.turnBudget.turnCount}/${$.turnBudget.maxTurns}`);else if($.turnBudget)f.push(`turn budget ${$.turnBudget.turnCount}/${$.turnBudget.maxTurns}+${$.turnBudget.graceTurns}`);if($.toolCount!==void 0)f.push(`${$.toolCount} tools`);if($.steerCount!==void 0)f.push(`${$.steerCount} steers`);if(typeof $.lastSteerAt==="number"&&Number.isFinite($.lastSteerAt))f.push(`last steer ${new Date($.lastSteerAt).toISOString()}`);let j=o($.lastActivityAt,$.activityState);return j||f.length?[j,...f].filter(Boolean).join(" | "):void 0}function g0($){let f=$.label?`${$.label} (${$.agent})`:$.agent,j=$.phase?`[${$.phase}] `:"",J=[`${$.index+1}. ${j}${f}`,$.status],Q=c$($);if(Q)J.push(Q);let Z=L$($.model,$.thinking);if(Z)J.push(Z);if($.durationMs!==void 0)J.push(g($.durationMs));if($.tokens)J.push(`${n($.tokens.total)} tok`);return J.join(" | ")}function k0($){if(!$.outputFile)return;return T.isAbsolute($.outputFile)?$.outputFile:T.join($.asyncDir,$.outputFile)}function v0($){let f=$.steps.length||1,j=$.chainStepCount??f,J=v($.parallelGroups,$.steps.length,j),Q=$.currentStep!==void 0?J.find((Z)=>$.currentStep>=Z.start&&$.currentStep<Z.start+Z.count):void 0;if(Q){let Z=$.steps.slice(Q.start,Q.start+Q.count),q=$$(Z,Q.count,{showRunning:$.state==="running"});if($.mode==="parallel")return q;return`step ${Q.stepIndex+1}/${j} · parallel group: ${q}`}if($.mode==="parallel")return $$($.steps,f,{showRunning:$.state==="running"});if($.mode==="chain"&&$.currentStep!==void 0&&J.length>0)return`step ${w$($.currentStep,j,J)+1}/${j}`;return $.currentStep!==void 0?`step ${$.currentStep+1}/${f}`:`steps ${f}`}function m0($){let f=v0($),j=$.cwd?b($.cwd):b($.asyncDir),J=c$($),Q=$.pendingAppends?` | ${$.pendingAppends} pending append${$.pendingAppends===1?"":"s"}`:"";return`${$.id} | ${$.state}${J?` | ${J}`:""} | ${$.mode} | ${f}${Q} | ${j}`}function Hj($,f="Active async runs"){if($.length===0)return`No ${f.toLowerCase()}.`;let j=[`${f}: ${$.length}`,""];for(let J of $){j.push(`- ${m0(J)}`);for(let B of J.steps)j.push(` ${g0(B)}`),j.push(...X$(B.children,{indent:" ",maxLines:12}));let Q=new Set(J.steps.flatMap((B)=>B.children?.map((O)=>O.id)??[])),Z=J.nestedChildren?.filter((B)=>!Q.has(B.id))??[];if(j.push(...X$(Z,{indent:" ",maxLines:12})),J.error)j.push(` Error: ${J.error}`);for(let B of J.nestedWarnings??[])j.push(` Warning: ${B}`);let q=k0(J);if(q)j.push(` output: ${b(q)}`);if(J.sessionFile)j.push(` session: ${b(J.sessionFile)}`);j.push("")}return j.join(`
12
+ `).trimEnd()}export{Yj as listAsyncRuns,v0 as formatAsyncRunProgressLabel,k0 as formatAsyncRunOutputPath,Hj as formatAsyncRunList};
@@ -1,17 +1,17 @@
1
- import*as W from"node:fs";import*as S from"node:path";import*as V from"node:fs";import*as w from"node:path";var o=new Map;function On(n){return n instanceof Error?n.message:String(n)}function Vn(n){return typeof n==="object"&&n!==null&&"code"in n&&n.code==="ENOENT"}function l(n){let f=w.join(n,"status.json"),$;try{$=V.statSync(f)}catch(T){if(Vn(T))return null;throw Error(`Failed to inspect async status file '${f}': ${On(T)}`,{cause:T instanceof Error?T:void 0})}let j=o.get(f);if(j&&j.mtime===$.mtimeMs)return j.status;let A;try{A=V.readFileSync(f,"utf-8")}catch(T){if(Vn(T))return null;throw Error(`Failed to read async status file '${f}': ${On(T)}`,{cause:T instanceof Error?T:void 0})}let J;try{J=JSON.parse(A)}catch(T){throw Error(`Failed to parse async status file '${f}': ${On(T)}`,{cause:T instanceof Error?T:void 0})}if(o.set(f,{mtime:$.mtimeMs,status:J}),o.size>50){let T=o.keys().next().value;if(T)o.delete(T)}return J}import*as R from"node:os";import*as I from"node:path";function p(n){return n.trim().replace(/[^A-Za-z0-9._-]+/g,"-").replace(/^-+|-+$/g,"")||"unknown"}function Bf(n){let f=n?.env??process.env,$=n&&Object.hasOwn(n,"getuid")?n.getuid:process.getuid?.bind(process);if(typeof $==="function")return`uid-${$()}`;for(let T of["USERNAME","USER","LOGNAME"]){let B=f[T];if(B)return`user-${p(B)}`}let j=n&&Object.hasOwn(n,"userInfo")?n.userInfo:R.userInfo;try{let T=j?.().username;if(T)return`user-${p(T)}`}catch{}let A=f.USERPROFILE??f.HOME;if(A)return`home-${p(A)}`;let J=n&&Object.hasOwn(n,"homedir")?n.homedir:R.homedir;try{let T=J?.();if(T)return`home-${p(T)}`}catch{}return"shared"}var z=I.join(R.tmpdir(),`dm-subagents-${Bf()}`),N=I.join(z,"async-subagent-results"),Bn=I.join(z,"async-subagent-runs"),Zf=I.join(z,"chain-runs"),U$=I.join(z,"artifacts");var Zn=["off","minimal","low","medium","high","xhigh"];function Cn(n){let f=n.lastIndexOf(":");if(f===-1)return{baseModel:n,thinkingSuffix:""};let $=Zn.find((j)=>j===n.substring(f+1));if(!$)return{baseModel:n,thinkingSuffix:""};return{baseModel:n.substring(0,f),thinkingSuffix:`:${$}`}}function h(n){return n<1000?String(n):n<1e4?`${(n/1000).toFixed(1)}k`:`${Math.round(n/1000)}k`}function e(n,f){let $=n?Cn(n):void 0,j=$?.baseModel??n,A=Zn.find((T)=>T===f?.trim()),J=$?.thinkingSuffix?$.thinkingSuffix.slice(1):A;if(j){let T=j.lastIndexOf("/");if(T!==-1)j=j.slice(T+1)}return[j,J?`thinking ${J}`:void 0].filter(Boolean).join(" · ")}function P(n){if(n<1000)return`${n}ms`;if(n<60000)return`${(n/1000).toFixed(1)}s`;return`${Math.floor(n/60000)}m${Math.floor(n%60000/1000)}s`}function C(n){let f=process.env.HOME;if(f&&n.startsWith(f))return`~${n.slice(f.length)}`;return n}function Qf(n){if(n<1000)return"now";if(n<60000)return`${Math.floor(n/1000)}s`;return`${Math.floor(n/60000)}m`}function k(n,f,$=Date.now()){if(n===void 0){if(f==="needs_attention")return"needs attention";if(f==="active_long_running")return"active but long-running";return}let j=Qf(Math.max(0,$-n));if(f==="needs_attention")return`no activity for ${j}`;if(f==="active_long_running")return`active but long-running · last activity ${j} ago`;return j==="now"?"active now":`active ${j} ago`}function cf(n){return n==="complete"||n==="completed"}function Lf(n){return n===1?"1 agent running":`${n} agents running`}function Qn(n,f,$={}){let j=n.filter((O)=>O.status==="running").length,A=n.filter((O)=>cf(O.status)).length,J=n.filter((O)=>O.status==="failed").length,T=n.filter((O)=>O.status==="paused").length,B=[`${A}/${f} done`];if($.showRunning!==!1&&j>0)B.unshift(Lf(j));if(J>0)B.push(`${J} failed`);if(T>0)B.push(`${T} paused`);return B.join(" · ")}function _n(n){let f={total:0,running:0,paused:0,complete:0,failed:0,queued:0};for(let $ of n??[]){f.total++,f[$.state]++;let j=_n([...$.children??[],...$.steps?.flatMap((A)=>A.children??[])??[]]);f.total+=j.total,f.running+=j.running,f.paused+=j.paused,f.complete+=j.complete,f.failed+=j.failed,f.queued+=j.queued}return f}function cn(n){let f=_n(n);if(f.total===0)return;let $=[f.running>0?`${f.running} running`:"",f.paused>0?`${f.paused} paused`:"",f.failed>0?`${f.failed} failed`:"",f.complete>0?`${f.complete} complete`:"",f.queued>0?`${f.queued} queued`:""].filter(Boolean);return`+${f.total} nested run${f.total===1?"":"s"}${$.length?` (${$.join(", ")})`:""}`}function qf(n){if(n.agent)return n.agent;if(n.agents?.length)return n.agents.length===1?n.agents[0]:`${n.agents.slice(0,2).join(", ")}${n.agents.length>2?` +${n.agents.length-2}`:""}`;return n.id}function gn(n){let f=[];if(n.currentTool&&n.currentToolStartedAt!==void 0)f.push(`tool ${n.currentTool} ${P(Math.max(0,Date.now()-n.currentToolStartedAt))}`);else if(n.currentTool)f.push(`tool ${n.currentTool}`);if(n.currentPath)f.push(C(n.currentPath));if(n.turnCount!==void 0)f.push(`${n.turnCount} turns`);if(n.toolCount!==void 0)f.push(`${n.toolCount} tools`);if(n.totalTokens)f.push(`${h(n.totalTokens.total)} tok`);let $=k(n.lastActivityAt,n.activityState);return $||f.length?[$,...f].filter(Boolean).join(" | "):void 0}function Xf(n,f){let $=[],j=(A,J,T)=>{if(!A?.length||$.length>=f.maxLines)return;if(J>f.maxDepth){let B=cn(A);if(B&&$.length<f.maxLines)$.push(`${T}↳ ${B}`);return}for(let B=0;B<A.length;B++){let O=A[B];if($.length>=f.maxLines){let Z=cn(A.slice(B));if(Z)$[$.length-1]=`${T}↳ ${Z}`;return}let c=O.state==="running"?gn(O):void 0,L=O.error?` | error: ${O.error}`:"";if($.push(`${T}↳ ${qf(O)} [${O.id}] ${O.state}${c?` | ${c}`:""}${L}`),f.commandHints&&$.length<f.maxLines)$.push(`${T} Status: subagent({ action: "status", id: "${O.id}" })`);if(J===f.maxDepth){let Z=cn([...O.steps?.flatMap((Y)=>Y.children??[])??[],...O.children??[]]);if(Z&&$.length<f.maxLines)$.push(`${T} ↳ ${Z}`);continue}for(let[Z,Y]of(O.steps??[]).entries()){if($.length>=f.maxLines)return;let q=Y.status==="running"?gn(Y):void 0;$.push(`${T} ${Z+1}. ${Y.agent} ${Y.status}${q?` | ${q}`:""}${Y.error?` | error: ${Y.error}`:""}`),j(Y.children,J+1,`${T} `)}j(O.children,J+1,`${T} `)}};return j(n,0,f.indent),$}function v(n,f={}){return Xf(n,{indent:f.indent??" ",maxDepth:f.maxDepth??2,maxLines:f.maxLines??40,commandHints:f.commandHints??!1})}import*as i from"node:fs";import*as F from"node:path";import{randomUUID as Vf}from"node:crypto";import*as U from"node:fs";import*as K from"node:path";import*as En from"node:path";var Yf=128,Kf=4;function Ln(n){return typeof n==="string"&&n.length>0&&n.length<=Yf&&!En.isAbsolute(n)&&!n.includes("/")&&!n.includes("\\")&&!n.includes("..")}function bn(n){return typeof n==="number"&&Number.isFinite(n)?n:void 0}function zn(n,f){return typeof n==="string"&&n.length>0?n.slice(0,f):void 0}function xn(n){if(!Array.isArray(n))return[];return n.map((f)=>{if(!f||typeof f!=="object")return;let $=f;if(!Ln($.runId))return;return{runId:$.runId,...bn($.stepIndex)!==void 0?{stepIndex:bn($.stepIndex)}:{},...zn($.agent,128)?{agent:zn($.agent,128)}:{}}}).filter((f)=>Boolean(f)).slice(0,Kf)}import*as m from"node:path";import{fileURLToPath as Rn}from"node:url";import*as b from"node:os";import*as _ from"node:path";var P$=_.join(b.homedir(),".config","mcp","mcp.json"),k$={cursor:[_.join(b.homedir(),".cursor","mcp.json")],"claude-code":[_.join(b.homedir(),".claude","mcp.json"),_.join(b.homedir(),".claude.json"),_.join(b.homedir(),".claude","claude_desktop_config.json")],"claude-desktop":[_.join(b.homedir(),"Library","Application Support","Claude","claude_desktop_config.json")],codex:[_.join(b.homedir(),".codex","config.json")],windsurf:[_.join(b.homedir(),".windsurf","mcp.json")],vscode:[".vscode/mcp.json"]};import{Compile as r$}from"typebox/compile";var T0=m.join(m.dirname(Rn(import.meta.url)),"subagent-prompt-runtime.ts"),O0=m.join(m.dirname(Rn(import.meta.url)),"..","..","extension","fanout-child.ts");import*as Hf from"node:fs";import*as x from"node:path";var Sf=[10,25,50,100,200,500,1000,2000,4000],Mf=new Set(["EACCES","EBUSY","EPERM"]),In=typeof SharedArrayBuffer<"u"?new SharedArrayBuffer(4):void 0,Nn=In?new Int32Array(In):void 0;function Uf(n){if(n<=0)return;if(Nn)try{Atomics.wait(Nn,0,0,n);return}catch{}let f=Date.now()+n;while(Date.now()<f);}function yf(n){let f=n?.code;return typeof f==="string"&&Mf.has(f)}function Ff(n,f,$,j,A){for(let J=0;;J++)try{n.renameSync(f,$);return}catch(T){let B=j[J];if(B===void 0||!yf(T))throw T;A(B)}}function Gf(n={}){let f=n.fs??Hf,$=n.now??Date.now,j=n.pid??process.pid,A=n.random??Math.random,T=n.retryRenameErrors??process.platform==="win32"?n.retryDelaysMs??Sf:[],B=n.wait??Uf;return(O,c)=>{f.mkdirSync(x.dirname(O),{recursive:!0});let L=x.join(x.dirname(O),`.${x.basename(O)}.${j}.${$()}.${A().toString(36).slice(2)}.tmp`);try{f.writeFileSync(L,JSON.stringify(c,null,2),"utf-8"),Ff(f,L,O,T,B)}finally{f.rmSync(L,{force:!0})}}}var D=Gf();var a=K.join(z,"nested-subagent-events"),Cf="route.json",gf="registry.json",Wn=65536,qn=12,d=16,Xn=3;function t(n){return Ln(n)}function _f(n,f){if(!t(f))throw Error(`${n} must be a non-empty safe id token.`)}function mn(n,f){_f(n,f)}function Yn(n,f){let $=K.resolve(n),j=K.resolve(f);return j===$||j.startsWith(`${$}${K.sep}`)}function on(n){return K.dirname(K.resolve(n.eventSink))}function fn(n){if(mn("rootRunId",n.rootRunId),mn("capabilityToken",n.capabilityToken),!Yn(a,n.eventSink))throw Error("Nested event sink is outside the subagent nested event root.");if(!Yn(a,n.controlInbox))throw Error("Nested control inbox is outside the subagent nested event root.");if(on(n)!==K.dirname(K.resolve(n.controlInbox)))throw Error("Nested event sink and control inbox must share one route root.")}function wn(n,f){if(!f.asyncDir)return;let $=K.resolve(f.asyncDir),j=K.resolve(z,"nested-subagent-runs",n,f.id),A=K.relative(j,$);return $===j||!A.startsWith("..")&&!K.isAbsolute(A)?$:void 0}function Q(n){return typeof n==="number"&&Number.isFinite(n)?n:void 0}function X(n,f=512){return typeof n==="string"&&n.length>0?n.slice(0,f):void 0}function bf(n){if(!n||typeof n!=="object")return;let f=n,$=Q(f.input),j=Q(f.output),A=Q(f.total);return $!==void 0&&j!==void 0&&A!==void 0?{input:$,output:j,total:A}:void 0}function zf(n){if(!n||typeof n!=="object")return;let f=n,$=Q(f.inputTokens),j=Q(f.outputTokens),A=Q(f.costUsd);return $!==void 0&&j!==void 0&&A!==void 0?{inputTokens:$,outputTokens:j,costUsd:A}:void 0}function nn(n){if(!n||typeof n!=="object")return;let f=n,$=Q(f.maxTurns),j=Q(f.graceTurns),A=Q(f.turnCount),J=f.outcome==="within-budget"||f.outcome==="wrap-up-requested"||f.outcome==="exceeded"?f.outcome:void 0;if($===void 0||j===void 0||A===void 0||!J)return;return{maxTurns:$,graceTurns:j,turnCount:A,outcome:J,...Q(f.wrapUpRequestedAtTurn)!==void 0?{wrapUpRequestedAtTurn:Q(f.wrapUpRequestedAtTurn)}:{},...Q(f.exceededAtTurn)!==void 0?{exceededAtTurn:Q(f.exceededAtTurn)}:{}}}function Ef(n,f){return n==="queued"||n==="running"||n==="complete"||n==="failed"||n==="paused"?n:f}function xf(n,f){if(!n||typeof n!=="object")return;let $=n,j=X($.agent,128);if(!j)return;let A=$.status==="pending"||$.status==="running"||$.status==="complete"||$.status==="completed"||$.status==="failed"||$.status==="paused"?$.status:"pending";return{agent:j,status:A,...X($.sessionFile,2048)?{sessionFile:X($.sessionFile,2048)}:{},...$.activityState==="active_long_running"||$.activityState==="needs_attention"?{activityState:$.activityState}:{},...Q($.lastActivityAt)!==void 0?{lastActivityAt:Q($.lastActivityAt)}:{},...X($.currentTool,128)?{currentTool:X($.currentTool,128)}:{},...Q($.currentToolStartedAt)!==void 0?{currentToolStartedAt:Q($.currentToolStartedAt)}:{},...X($.currentPath,2048)?{currentPath:X($.currentPath,2048)}:{},...Q($.turnCount)!==void 0?{turnCount:Q($.turnCount)}:{},...Q($.toolCount)!==void 0?{toolCount:Q($.toolCount)}:{},...Q($.startedAt)!==void 0?{startedAt:Q($.startedAt)}:{},...Q($.endedAt)!==void 0?{endedAt:Q($.endedAt)}:{},...X($.error,1024)?{error:X($.error,1024)}:{},...$.timedOut===!0?{timedOut:!0}:{},...nn($.turnBudget)?{turnBudget:nn($.turnBudget)}:{},...$.turnBudgetExceeded===!0?{turnBudgetExceeded:!0}:{},...$.wrapUpRequested===!0?{wrapUpRequested:!0}:{},...f<Xn&&Array.isArray($.children)?{children:$.children.map((J)=>$n(J,f+1)).filter((J)=>Boolean(J)).slice(0,d)}:{}}}function $n(n,f=0){if(!n||typeof n!=="object")return;let $=n;if(!t($.id)||!t($.parentRunId))return;let j=xn($.path),A=Array.isArray($.steps)?$.steps.map((B)=>xf(B,f+1)).filter((B)=>Boolean(B)).slice(0,qn):void 0,J=bf($.totalTokens),T=zf($.totalCost);return{id:$.id,parentRunId:$.parentRunId,...Q($.parentStepIndex)!==void 0?{parentStepIndex:Q($.parentStepIndex)}:{},...X($.parentAgent,128)?{parentAgent:X($.parentAgent,128)}:{},depth:Math.min(Math.max(0,Q($.depth)??0),Xn),path:j,state:Ef($.state,"running"),...X($.asyncDir,2048)?{asyncDir:X($.asyncDir,2048)}:{},...Q($.pid)!==void 0&&Q($.pid)>0&&Number.isInteger(Q($.pid))?{pid:Q($.pid)}:{},...X($.sessionId,256)?{sessionId:X($.sessionId,256)}:{},...X($.sessionFile,2048)?{sessionFile:X($.sessionFile,2048)}:{},...X($.intercomTarget,256)?{intercomTarget:X($.intercomTarget,256)}:{},...X($.ownerIntercomTarget,256)?{ownerIntercomTarget:X($.ownerIntercomTarget,256)}:{},...X($.leafIntercomTarget,256)?{leafIntercomTarget:X($.leafIntercomTarget,256)}:{},...$.ownerState==="live"||$.ownerState==="gone"||$.ownerState==="unknown"?{ownerState:$.ownerState}:{},...X($.controlInbox,2048)?{controlInbox:X($.controlInbox,2048)}:{},...X($.capabilityToken,128)?{capabilityToken:X($.capabilityToken,128)}:{},...$.mode==="single"||$.mode==="parallel"||$.mode==="chain"?{mode:$.mode}:{},...X($.agent,128)?{agent:X($.agent,128)}:{},...Array.isArray($.agents)?{agents:$.agents.map((B)=>X(B,128)).filter((B)=>Boolean(B)).slice(0,qn)}:{},...Q($.currentStep)!==void 0?{currentStep:Q($.currentStep)}:{},...Q($.chainStepCount)!==void 0?{chainStepCount:Q($.chainStepCount)}:{},...$.activityState==="active_long_running"||$.activityState==="needs_attention"?{activityState:$.activityState}:{},...Q($.lastActivityAt)!==void 0?{lastActivityAt:Q($.lastActivityAt)}:{},...X($.currentTool,128)?{currentTool:X($.currentTool,128)}:{},...Q($.currentToolStartedAt)!==void 0?{currentToolStartedAt:Q($.currentToolStartedAt)}:{},...X($.currentPath,2048)?{currentPath:X($.currentPath,2048)}:{},...Q($.turnCount)!==void 0?{turnCount:Q($.turnCount)}:{},...Q($.toolCount)!==void 0?{toolCount:Q($.toolCount)}:{},...J?{totalTokens:J}:{},...T?{totalCost:T}:{},...Q($.startedAt)!==void 0?{startedAt:Q($.startedAt)}:{},...Q($.endedAt)!==void 0?{endedAt:Q($.endedAt)}:{},...Q($.lastUpdate)!==void 0?{lastUpdate:Q($.lastUpdate)}:{},...Q($.timeoutMs)!==void 0?{timeoutMs:Q($.timeoutMs)}:{},...Q($.deadlineAt)!==void 0?{deadlineAt:Q($.deadlineAt)}:{},...$.timedOut===!0?{timedOut:!0}:{},...nn($.turnBudget)?{turnBudget:nn($.turnBudget)}:{},...$.turnBudgetExceeded===!0?{turnBudgetExceeded:!0}:{},...$.wrapUpRequested===!0?{wrapUpRequested:!0}:{},...X($.error,1024)?{error:X($.error,1024)}:{},...A&&A.length>0?{steps:A}:{},...f<Xn&&Array.isArray($.children)?{children:$.children.map((B)=>$n(B,f+1)).filter((B)=>Boolean(B)).slice(0,d)}:{}}}function Kn(n,f){if(Buffer.byteLength(n,"utf-8")>Wn)return;let $;try{$=JSON.parse(n)}catch{return}if(!$||typeof $!=="object")return;let j=$;if(j.type!=="subagent.nested.started"&&j.type!=="subagent.nested.updated"&&j.type!=="subagent.nested.completed")return;if(j.rootRunId!==f.rootRunId||j.capabilityToken!==f.capabilityToken)return;if(!t(j.parentRunId))return;let A=Q(j.ts);if(A===void 0)return;let J=$n(j.child);if(!J||J.id===f.rootRunId)return;let T={...J,controlInbox:f.controlInbox,capabilityToken:f.capabilityToken,ownerState:J.ownerState??"unknown"};return{type:j.type,ts:A,rootRunId:f.rootRunId,parentRunId:j.parentRunId,...Q(j.parentStepIndex)!==void 0?{parentStepIndex:Q(j.parentStepIndex)}:{},capabilityToken:f.capabilityToken,child:T}}function Rf(n,f){if(!n.includes(`
2
- `)){let $=Kn(n.trim(),f);return $?[$]:[]}return n.split(`
1
+ import*as W from"node:fs";import*as M from"node:path";import*as V from"node:fs";import*as h from"node:path";var o=new Map;function Bn(n){return n instanceof Error?n.message:String(n)}function Cn(n){return typeof n==="object"&&n!==null&&"code"in n&&n.code==="ENOENT"}function p(n){let f=h.join(n,"status.json"),$;try{$=V.statSync(f)}catch(T){if(Cn(T))return null;throw Error(`Failed to inspect async status file '${f}': ${Bn(T)}`,{cause:T instanceof Error?T:void 0})}let j=o.get(f);if(j&&j.mtime===$.mtimeMs)return j.status;let A;try{A=V.readFileSync(f,"utf-8")}catch(T){if(Cn(T))return null;throw Error(`Failed to read async status file '${f}': ${Bn(T)}`,{cause:T instanceof Error?T:void 0})}let J;try{J=JSON.parse(A)}catch(T){throw Error(`Failed to parse async status file '${f}': ${Bn(T)}`,{cause:T instanceof Error?T:void 0})}if(o.set(f,{mtime:$.mtimeMs,status:J}),o.size>50){let T=o.keys().next().value;if(T)o.delete(T)}return J}import*as N from"node:os";import*as R from"node:path";function e(n){return n.trim().replace(/[^A-Za-z0-9._-]+/g,"-").replace(/^-+|-+$/g,"")||"unknown"}function Zf(n){let f=n?.env??process.env,$=n&&Object.hasOwn(n,"getuid")?n.getuid:process.getuid?.bind(process);if(typeof $==="function")return`uid-${$()}`;for(let T of["USERNAME","USER","LOGNAME"]){let B=f[T];if(B)return`user-${e(B)}`}let j=n&&Object.hasOwn(n,"userInfo")?n.userInfo:N.userInfo;try{let T=j?.().username;if(T)return`user-${e(T)}`}catch{}let A=f.USERPROFILE??f.HOME;if(A)return`home-${e(A)}`;let J=n&&Object.hasOwn(n,"homedir")?n.homedir:N.homedir;try{let T=J?.();if(T)return`home-${e(T)}`}catch{}return"shared"}var E=R.join(N.tmpdir(),`dm-subagents-${Zf()}`),m=R.join(E,"async-subagent-results"),Zn=R.join(E,"async-subagent-runs"),Qf=R.join(E,"chain-runs"),F$=R.join(E,"artifacts");var Qn=["off","minimal","low","medium","high","xhigh"];function gn(n){let f=n.lastIndexOf(":");if(f===-1)return{baseModel:n,thinkingSuffix:""};let $=Qn.find((j)=>j===n.substring(f+1));if(!$)return{baseModel:n,thinkingSuffix:""};return{baseModel:n.substring(0,f),thinkingSuffix:`:${$}`}}function P(n){return n<1000?String(n):n<1e4?`${(n/1000).toFixed(1)}k`:`${Math.round(n/1000)}k`}function s(n,f){let $=n?gn(n):void 0,j=$?.baseModel??n,A=Qn.find((T)=>T===f?.trim()),J=$?.thinkingSuffix?$.thinkingSuffix.slice(1):A;if(j){let T=j.lastIndexOf("/");if(T!==-1)j=j.slice(T+1)}return[j,J?`thinking ${J}`:void 0].filter(Boolean).join(" · ")}function k(n){if(n<1000)return`${n}ms`;if(n<60000)return`${(n/1000).toFixed(1)}s`;return`${Math.floor(n/60000)}m${Math.floor(n%60000/1000)}s`}function C(n){let f=process.env.HOME;if(f&&n.startsWith(f))return`~${n.slice(f.length)}`;return n}function cf(n){if(n<1000)return"now";if(n<60000)return`${Math.floor(n/1000)}s`;return`${Math.floor(n/60000)}m`}function v(n,f,$=Date.now()){if(n===void 0){if(f==="needs_attention")return"needs attention";if(f==="active_long_running")return"active but long-running";return}let j=cf(Math.max(0,$-n));if(f==="needs_attention")return`no activity for ${j}`;if(f==="active_long_running")return`active but long-running · last activity ${j} ago`;return j==="now"?"active now":`active ${j} ago`}function Lf(n){return n==="complete"||n==="completed"}function qf(n){return n===1?"1 agent running":`${n} agents running`}function cn(n,f,$={}){let j=n.filter((O)=>O.status==="running").length,A=n.filter((O)=>Lf(O.status)).length,J=n.filter((O)=>O.status==="failed").length,T=n.filter((O)=>O.status==="paused").length,B=[`${A}/${f} done`];if($.showRunning!==!1&&j>0)B.unshift(qf(j));if(J>0)B.push(`${J} failed`);if(T>0)B.push(`${T} paused`);return B.join(" · ")}function bn(n){let f={total:0,running:0,paused:0,complete:0,failed:0,queued:0};for(let $ of n??[]){f.total++,f[$.state]++;let j=bn([...$.children??[],...$.steps?.flatMap((A)=>A.children??[])??[]]);f.total+=j.total,f.running+=j.running,f.paused+=j.paused,f.complete+=j.complete,f.failed+=j.failed,f.queued+=j.queued}return f}function Ln(n){let f=bn(n);if(f.total===0)return;let $=[f.running>0?`${f.running} running`:"",f.paused>0?`${f.paused} paused`:"",f.failed>0?`${f.failed} failed`:"",f.complete>0?`${f.complete} complete`:"",f.queued>0?`${f.queued} queued`:""].filter(Boolean);return`+${f.total} nested run${f.total===1?"":"s"}${$.length?` (${$.join(", ")})`:""}`}function Xf(n){if(n.agent)return n.agent;if(n.agents?.length)return n.agents.length===1?n.agents[0]:`${n.agents.slice(0,2).join(", ")}${n.agents.length>2?` +${n.agents.length-2}`:""}`;return n.id}function _n(n){let f=[];if(n.currentTool&&n.currentToolStartedAt!==void 0)f.push(`tool ${n.currentTool} ${k(Math.max(0,Date.now()-n.currentToolStartedAt))}`);else if(n.currentTool)f.push(`tool ${n.currentTool}`);if(n.currentPath)f.push(C(n.currentPath));if(n.turnCount!==void 0)f.push(`${n.turnCount} turns`);if(n.toolCount!==void 0)f.push(`${n.toolCount} tools`);if(n.totalTokens)f.push(`${P(n.totalTokens.total)} tok`);let $=v(n.lastActivityAt,n.activityState);return $||f.length?[$,...f].filter(Boolean).join(" | "):void 0}function Yf(n,f){let $=[],j=(A,J,T)=>{if(!A?.length||$.length>=f.maxLines)return;if(J>f.maxDepth){let B=Ln(A);if(B&&$.length<f.maxLines)$.push(`${T}↳ ${B}`);return}for(let B=0;B<A.length;B++){let O=A[B];if($.length>=f.maxLines){let Z=Ln(A.slice(B));if(Z)$[$.length-1]=`${T}↳ ${Z}`;return}let c=O.state==="running"?_n(O):void 0,L=O.error?` | error: ${O.error}`:"";if($.push(`${T}↳ ${Xf(O)} [${O.id}] ${O.state}${c?` | ${c}`:""}${L}`),f.commandHints&&$.length<f.maxLines)$.push(`${T} Status: subagent({ action: "status", id: "${O.id}" })`);if(J===f.maxDepth){let Z=Ln([...O.steps?.flatMap((Y)=>Y.children??[])??[],...O.children??[]]);if(Z&&$.length<f.maxLines)$.push(`${T} ↳ ${Z}`);continue}for(let[Z,Y]of(O.steps??[]).entries()){if($.length>=f.maxLines)return;let q=Y.status==="running"?_n(Y):void 0;$.push(`${T} ${Z+1}. ${Y.agent} ${Y.status}${q?` | ${q}`:""}${Y.error?` | error: ${Y.error}`:""}`),j(Y.children,J+1,`${T} `)}j(O.children,J+1,`${T} `)}};return j(n,0,f.indent),$}function d(n,f={}){return Yf(n,{indent:f.indent??" ",maxDepth:f.maxDepth??2,maxLines:f.maxLines??40,commandHints:f.commandHints??!1})}import*as l from"node:fs";import*as F from"node:path";import{randomUUID as gf}from"node:crypto";import*as y from"node:fs";import*as K from"node:path";import*as xn from"node:path";var Kf=128,Wf=4;function qn(n){return typeof n==="string"&&n.length>0&&n.length<=Kf&&!xn.isAbsolute(n)&&!n.includes("/")&&!n.includes("\\")&&!n.includes("..")}function zn(n){return typeof n==="number"&&Number.isFinite(n)?n:void 0}function En(n,f){return typeof n==="string"&&n.length>0?n.slice(0,f):void 0}function In(n){if(!Array.isArray(n))return[];return n.map((f)=>{if(!f||typeof f!=="object")return;let $=f;if(!qn($.runId))return;return{runId:$.runId,...zn($.stepIndex)!==void 0?{stepIndex:zn($.stepIndex)}:{},...En($.agent,128)?{agent:En($.agent,128)}:{}}}).filter((f)=>Boolean(f)).slice(0,Wf)}import*as D from"node:fs";import*as b from"node:path";import{fileURLToPath as Mf}from"node:url";import*as z from"node:os";import*as _ from"node:path";var v$=_.join(z.homedir(),".config","mcp","mcp.json"),d$={cursor:[_.join(z.homedir(),".cursor","mcp.json")],"claude-code":[_.join(z.homedir(),".claude","mcp.json"),_.join(z.homedir(),".claude.json"),_.join(z.homedir(),".claude","claude_desktop_config.json")],"claude-desktop":[_.join(z.homedir(),"Library","Application Support","Claude","claude_desktop_config.json")],codex:[_.join(z.homedir(),".codex","config.json")],windsurf:[_.join(z.homedir(),".windsurf","mcp.json")],vscode:[".vscode/mcp.json"]};import{Compile as i$}from"typebox/compile";function Nn(n,f){let $=Mf(n),j=b.extname($),A=[".js",".mjs",".cjs",".ts",".mts",".cts"].includes(j)?j:".ts",J=b.dirname($);while(!D.existsSync(b.join(J,"package.json"))){let T=b.dirname(J);if(T===J)throw Error(`Unable to resolve dm-subagents package root from ${$}`);J=T}return b.join(J,`${f}${A}`)}var B0=Nn(import.meta.url,b.join("src","runs","shared","subagent-prompt-runtime")),Z0=Nn(import.meta.url,b.join("src","extension","fanout-child"));import*as Sf from"node:fs";import*as I from"node:path";var yf=[10,25,50,100,200,500,1000,2000,4000],Uf=new Set(["EACCES","EBUSY","EPERM"]),Rn=typeof SharedArrayBuffer<"u"?new SharedArrayBuffer(4):void 0,mn=Rn?new Int32Array(Rn):void 0;function Ff(n){if(n<=0)return;if(mn)try{Atomics.wait(mn,0,0,n);return}catch{}let f=Date.now()+n;while(Date.now()<f);}function Gf(n){let f=n?.code;return typeof f==="string"&&Uf.has(f)}function Vf(n,f,$,j,A){for(let J=0;;J++)try{n.renameSync(f,$);return}catch(T){let B=j[J];if(B===void 0||!Gf(T))throw T;A(B)}}function Cf(n={}){let f=n.fs??Sf,$=n.now??Date.now,j=n.pid??process.pid,A=n.random??Math.random,T=n.retryRenameErrors??process.platform==="win32"?n.retryDelaysMs??yf:[],B=n.wait??Ff;return(O,c)=>{f.mkdirSync(I.dirname(O),{recursive:!0});let L=I.join(I.dirname(O),`.${I.basename(O)}.${j}.${$()}.${A().toString(36).slice(2)}.tmp`);try{f.writeFileSync(L,JSON.stringify(c,null,2),"utf-8"),Vf(f,L,O,T,B)}finally{f.rmSync(L,{force:!0})}}}var w=Cf();var t=K.join(E,"nested-subagent-events"),_f="route.json",bf="registry.json",Hn=65536,Xn=12,r=16,Yn=3;function nn(n){return qn(n)}function zf(n,f){if(!nn(f))throw Error(`${n} must be a non-empty safe id token.`)}function Dn(n,f){zf(n,f)}function Kn(n,f){let $=K.resolve(n),j=K.resolve(f);return j===$||j.startsWith(`${$}${K.sep}`)}function on(n){return K.dirname(K.resolve(n.eventSink))}function $n(n){if(Dn("rootRunId",n.rootRunId),Dn("capabilityToken",n.capabilityToken),!Kn(t,n.eventSink))throw Error("Nested event sink is outside the subagent nested event root.");if(!Kn(t,n.controlInbox))throw Error("Nested control inbox is outside the subagent nested event root.");if(on(n)!==K.dirname(K.resolve(n.controlInbox)))throw Error("Nested event sink and control inbox must share one route root.")}function hn(n,f){if(!f.asyncDir)return;let $=K.resolve(f.asyncDir),j=K.resolve(E,"nested-subagent-runs",n,f.id),A=K.relative(j,$);return $===j||!A.startsWith("..")&&!K.isAbsolute(A)?$:void 0}function Q(n){return typeof n==="number"&&Number.isFinite(n)?n:void 0}function X(n,f=512){return typeof n==="string"&&n.length>0?n.slice(0,f):void 0}function Ef(n){if(!n||typeof n!=="object")return;let f=n,$=Q(f.input),j=Q(f.output),A=Q(f.total);return $!==void 0&&j!==void 0&&A!==void 0?{input:$,output:j,total:A}:void 0}function xf(n){if(!n||typeof n!=="object")return;let f=n,$=Q(f.inputTokens),j=Q(f.outputTokens),A=Q(f.costUsd);return $!==void 0&&j!==void 0&&A!==void 0?{inputTokens:$,outputTokens:j,costUsd:A}:void 0}function fn(n){if(!n||typeof n!=="object")return;let f=n,$=Q(f.maxTurns),j=Q(f.graceTurns),A=Q(f.turnCount),J=f.outcome==="within-budget"||f.outcome==="wrap-up-requested"||f.outcome==="exceeded"?f.outcome:void 0;if($===void 0||j===void 0||A===void 0||!J)return;return{maxTurns:$,graceTurns:j,turnCount:A,outcome:J,...Q(f.wrapUpRequestedAtTurn)!==void 0?{wrapUpRequestedAtTurn:Q(f.wrapUpRequestedAtTurn)}:{},...Q(f.exceededAtTurn)!==void 0?{exceededAtTurn:Q(f.exceededAtTurn)}:{}}}function If(n,f){return n==="queued"||n==="running"||n==="complete"||n==="failed"||n==="paused"?n:f}function Nf(n,f){if(!n||typeof n!=="object")return;let $=n,j=X($.agent,128);if(!j)return;let A=$.status==="pending"||$.status==="running"||$.status==="complete"||$.status==="completed"||$.status==="failed"||$.status==="paused"?$.status:"pending";return{agent:j,status:A,...X($.sessionFile,2048)?{sessionFile:X($.sessionFile,2048)}:{},...$.activityState==="active_long_running"||$.activityState==="needs_attention"?{activityState:$.activityState}:{},...Q($.lastActivityAt)!==void 0?{lastActivityAt:Q($.lastActivityAt)}:{},...X($.currentTool,128)?{currentTool:X($.currentTool,128)}:{},...Q($.currentToolStartedAt)!==void 0?{currentToolStartedAt:Q($.currentToolStartedAt)}:{},...X($.currentPath,2048)?{currentPath:X($.currentPath,2048)}:{},...Q($.turnCount)!==void 0?{turnCount:Q($.turnCount)}:{},...Q($.toolCount)!==void 0?{toolCount:Q($.toolCount)}:{},...Q($.startedAt)!==void 0?{startedAt:Q($.startedAt)}:{},...Q($.endedAt)!==void 0?{endedAt:Q($.endedAt)}:{},...X($.error,1024)?{error:X($.error,1024)}:{},...$.timedOut===!0?{timedOut:!0}:{},...fn($.turnBudget)?{turnBudget:fn($.turnBudget)}:{},...$.turnBudgetExceeded===!0?{turnBudgetExceeded:!0}:{},...$.wrapUpRequested===!0?{wrapUpRequested:!0}:{},...f<Yn&&Array.isArray($.children)?{children:$.children.map((J)=>jn(J,f+1)).filter((J)=>Boolean(J)).slice(0,r)}:{}}}function jn(n,f=0){if(!n||typeof n!=="object")return;let $=n;if(!nn($.id)||!nn($.parentRunId))return;let j=In($.path),A=Array.isArray($.steps)?$.steps.map((B)=>Nf(B,f+1)).filter((B)=>Boolean(B)).slice(0,Xn):void 0,J=Ef($.totalTokens),T=xf($.totalCost);return{id:$.id,parentRunId:$.parentRunId,...Q($.parentStepIndex)!==void 0?{parentStepIndex:Q($.parentStepIndex)}:{},...X($.parentAgent,128)?{parentAgent:X($.parentAgent,128)}:{},depth:Math.min(Math.max(0,Q($.depth)??0),Yn),path:j,state:If($.state,"running"),...X($.asyncDir,2048)?{asyncDir:X($.asyncDir,2048)}:{},...Q($.pid)!==void 0&&Q($.pid)>0&&Number.isInteger(Q($.pid))?{pid:Q($.pid)}:{},...X($.sessionId,256)?{sessionId:X($.sessionId,256)}:{},...X($.sessionFile,2048)?{sessionFile:X($.sessionFile,2048)}:{},...X($.intercomTarget,256)?{intercomTarget:X($.intercomTarget,256)}:{},...X($.ownerIntercomTarget,256)?{ownerIntercomTarget:X($.ownerIntercomTarget,256)}:{},...X($.leafIntercomTarget,256)?{leafIntercomTarget:X($.leafIntercomTarget,256)}:{},...$.ownerState==="live"||$.ownerState==="gone"||$.ownerState==="unknown"?{ownerState:$.ownerState}:{},...X($.controlInbox,2048)?{controlInbox:X($.controlInbox,2048)}:{},...X($.capabilityToken,128)?{capabilityToken:X($.capabilityToken,128)}:{},...$.mode==="single"||$.mode==="parallel"||$.mode==="chain"?{mode:$.mode}:{},...X($.agent,128)?{agent:X($.agent,128)}:{},...Array.isArray($.agents)?{agents:$.agents.map((B)=>X(B,128)).filter((B)=>Boolean(B)).slice(0,Xn)}:{},...Q($.currentStep)!==void 0?{currentStep:Q($.currentStep)}:{},...Q($.chainStepCount)!==void 0?{chainStepCount:Q($.chainStepCount)}:{},...$.activityState==="active_long_running"||$.activityState==="needs_attention"?{activityState:$.activityState}:{},...Q($.lastActivityAt)!==void 0?{lastActivityAt:Q($.lastActivityAt)}:{},...X($.currentTool,128)?{currentTool:X($.currentTool,128)}:{},...Q($.currentToolStartedAt)!==void 0?{currentToolStartedAt:Q($.currentToolStartedAt)}:{},...X($.currentPath,2048)?{currentPath:X($.currentPath,2048)}:{},...Q($.turnCount)!==void 0?{turnCount:Q($.turnCount)}:{},...Q($.toolCount)!==void 0?{toolCount:Q($.toolCount)}:{},...J?{totalTokens:J}:{},...T?{totalCost:T}:{},...Q($.startedAt)!==void 0?{startedAt:Q($.startedAt)}:{},...Q($.endedAt)!==void 0?{endedAt:Q($.endedAt)}:{},...Q($.lastUpdate)!==void 0?{lastUpdate:Q($.lastUpdate)}:{},...Q($.timeoutMs)!==void 0?{timeoutMs:Q($.timeoutMs)}:{},...Q($.deadlineAt)!==void 0?{deadlineAt:Q($.deadlineAt)}:{},...$.timedOut===!0?{timedOut:!0}:{},...fn($.turnBudget)?{turnBudget:fn($.turnBudget)}:{},...$.turnBudgetExceeded===!0?{turnBudgetExceeded:!0}:{},...$.wrapUpRequested===!0?{wrapUpRequested:!0}:{},...X($.error,1024)?{error:X($.error,1024)}:{},...A&&A.length>0?{steps:A}:{},...f<Yn&&Array.isArray($.children)?{children:$.children.map((B)=>jn(B,f+1)).filter((B)=>Boolean(B)).slice(0,r)}:{}}}function Wn(n,f){if(Buffer.byteLength(n,"utf-8")>Hn)return;let $;try{$=JSON.parse(n)}catch{return}if(!$||typeof $!=="object")return;let j=$;if(j.type!=="subagent.nested.started"&&j.type!=="subagent.nested.updated"&&j.type!=="subagent.nested.completed")return;if(j.rootRunId!==f.rootRunId||j.capabilityToken!==f.capabilityToken)return;if(!nn(j.parentRunId))return;let A=Q(j.ts);if(A===void 0)return;let J=jn(j.child);if(!J||J.id===f.rootRunId)return;let T={...J,controlInbox:f.controlInbox,capabilityToken:f.capabilityToken,ownerState:J.ownerState??"unknown"};return{type:j.type,ts:A,rootRunId:f.rootRunId,parentRunId:j.parentRunId,...Q(j.parentStepIndex)!==void 0?{parentStepIndex:Q(j.parentStepIndex)}:{},capabilityToken:f.capabilityToken,child:T}}function Rf(n,f){if(!n.includes(`
2
+ `)){let $=Wn(n.trim(),f);return $?[$]:[]}return n.split(`
3
3
  `).slice(0,n.endsWith(`
4
- `)?void 0:-1).map(($)=>$.trim()?Kn($,f):void 0).filter(($)=>Boolean($))}function s(n){return n==="complete"||n==="failed"||n==="paused"}function Dn(n,f){let $=f.type==="subagent.nested.completed"&&f.child.state==="running"?"complete":f.child.state,j={...f.child,state:$,lastUpdate:f.child.lastUpdate??f.ts};if(!n)return j;let A=n.lastUpdate??0,J=j.lastUpdate??f.ts;if(J<A)return n;if(s(n.state)&&!s(j.state))return n;if(s(n.state)&&s(j.state)&&J===A)return n;return{...n,...j,state:j.state,lastUpdate:Math.max(A,J)}}function If(n,f){let $=!1,j=(B)=>B.map((O)=>{if(O.id===f.parentRunId){let L=O.children??[],Z=L.findIndex((M)=>M.id===f.child.id),Y=Dn(Z>=0?L[Z]:void 0,f),q=Z>=0?L.map((M,g)=>g===Z?Y:M):[...L,Y];return $=!0,{...O,children:q.slice(0,d),lastUpdate:Math.max(O.lastUpdate??0,f.ts)}}if(!O.children?.length)return O;let c=j(O.children);return c===O.children?O:{...O,children:c}}),A=j(n);if($)return A;let J=A.findIndex((B)=>B.id===f.child.id),T=Dn(J>=0?A[J]:void 0,f);return J>=0?A.map((B,O)=>O===J?T:B):[...A,T].slice(0,d)}function Nf(n,f){return{...n,updatedAt:Math.max(n.updatedAt,f.ts),children:If(n.children,f)}}function hn(n){return K.join(on(n),gf)}function Pn(){let n;try{n=U.readdirSync(a)}catch($){if($.code==="ENOENT")return new Map;throw $}let f=new Map;for(let $ of n){let j=K.join(a,$);try{let A=JSON.parse(U.readFileSync(K.join(j,Cf),"utf-8"));if(typeof A.rootRunId!=="string"||typeof A.capabilityToken!=="string")continue;if(f.has(A.rootRunId))continue;let J={rootRunId:A.rootRunId,eventSink:K.join(j,"events"),controlInbox:K.join(j,"controls"),capabilityToken:A.capabilityToken};fn(J),f.set(A.rootRunId,J)}catch{continue}}return f}function mf(n){fn(n);try{let f=JSON.parse(U.readFileSync(hn(n),"utf-8"));return{rootRunId:n.rootRunId,updatedAt:typeof f.updatedAt==="number"?f.updatedAt:0,children:Array.isArray(f.children)?f.children.map(($)=>$n($)).filter(($)=>Boolean($)):[],processedEvents:Array.isArray(f.processedEvents)?f.processedEvents.filter(($)=>typeof $==="string"):[]}}catch(f){if(f.code!=="ENOENT")throw f;return{rootRunId:n.rootRunId,updatedAt:0,children:[],processedEvents:[]}}}function jn(n){fn(n);let f=mf(n),$=new Set(f.processedEvents),j=!1,A=[];try{A=U.readdirSync(n.eventSink).filter((J)=>J.endsWith(".json")||J.endsWith(".jsonl")).sort()}catch(J){if(J.code!=="ENOENT")throw J}for(let J of A){if($.has(J))continue;let T=K.join(n.eventSink,J);if(!Yn(n.eventSink,T))continue;let B;try{let O=U.statSync(T);if(!O.isFile()||O.size>Wn)continue;B=U.readFileSync(T,"utf-8")}catch{continue}for(let O of Rf(B,n))f=Nf(f,O),j=!0;$.add(J),j=!0}if(j)f={...f,processedEvents:[...$].slice(-1000)},D(hn(n),f);return f}function Df(n,f,$){let j=`${JSON.stringify($)}
5
- `;if(Buffer.byteLength(j,"utf-8")>Wn)throw Error("Nested route record exceeds the maximum size.");U.mkdirSync(n,{recursive:!0,mode:448});let A=`${String(f).padStart(13,"0")}-${Vf()}.json`,J=K.join(n,`.${A}.tmp`),T=K.join(n,A);return U.writeFileSync(J,j,{mode:384}),U.renameSync(J,T),T}function kn(n,f){fn(n);let $={...f,rootRunId:n.rootRunId,capabilityToken:n.capabilityToken},j=Kn(JSON.stringify($),n);if(!j)throw Error("Nested event record failed validation.");Df(n.eventSink,j.ts,j)}function vn(n,f,$){if(!f?.length)return;for(let j of f)j.children=void 0;if(!$?.length)return;for(let j of $){if(j.parentRunId!==n||j.parentStepIndex===void 0)continue;let A=f.find((J,T)=>(J.index??T)===j.parentStepIndex);if(!A)continue;A.children??=[],A.children=[...A.children.filter((J)=>J.id!==j.id),j].slice(0,d)}}function dn(n,f,$){return{id:n.runId||$.id,parentRunId:$.parentRunId,...$.parentStepIndex!==void 0?{parentStepIndex:$.parentStepIndex}:{},depth:$.depth,path:$.path??[{runId:$.parentRunId,...$.parentStepIndex!==void 0?{stepIndex:$.parentStepIndex}:{}}],asyncDir:f,...n.pid?{pid:n.pid}:{},...n.sessionId?{sessionId:n.sessionId}:{},mode:n.mode??$.mode,state:n.state,...n.currentStep!==void 0?{currentStep:n.currentStep}:{},...n.chainStepCount!==void 0?{chainStepCount:n.chainStepCount}:{},...n.activityState?{activityState:n.activityState}:{},...n.lastActivityAt!==void 0?{lastActivityAt:n.lastActivityAt}:{},...n.currentTool?{currentTool:n.currentTool}:{},...n.currentToolStartedAt!==void 0?{currentToolStartedAt:n.currentToolStartedAt}:{},...n.currentPath?{currentPath:n.currentPath}:{},...n.turnCount!==void 0?{turnCount:n.turnCount}:{},...n.toolCount!==void 0?{toolCount:n.toolCount}:{},...n.totalTokens?{totalTokens:n.totalTokens}:{},...n.timeoutMs!==void 0?{timeoutMs:n.timeoutMs}:{},...n.deadlineAt!==void 0?{deadlineAt:n.deadlineAt}:{},...n.timedOut!==void 0?{timedOut:n.timedOut}:{},...n.turnBudget?{turnBudget:n.turnBudget}:{},...n.turnBudgetExceeded!==void 0?{turnBudgetExceeded:n.turnBudgetExceeded}:{},...n.wrapUpRequested!==void 0?{wrapUpRequested:n.wrapUpRequested}:{},...n.error?{error:n.error}:{},...n.startedAt!==void 0?{startedAt:n.startedAt}:{startedAt:$.ts},...n.endedAt!==void 0?{endedAt:n.endedAt}:{},lastUpdate:n.lastUpdate??$.ts,...n.sessionFile?{sessionFile:n.sessionFile}:{},...n.steps?.length?{steps:n.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,qn)}:{}}}function of(n,f,$){if(typeof n!=="object"||n===null)return!1;let{start:j,count:A,stepIndex:J}=n;return typeof j==="number"&&typeof A==="number"&&typeof J==="number"&&Number.isInteger(j)&&Number.isInteger(A)&&Number.isInteger(J)&&j>=0&&A>0&&J>=0&&J<$&&j+A<=f}function r(n,f,$){if(!Array.isArray(n))return[];return n.filter((j)=>of(j,f,$)).sort((j,A)=>j.stepIndex-A.stepIndex||j.start-A.start)}function rn(n,f,$){let j=0,A=0;for(let J of $){while(A<J.start&&j<f){if(A===n)return j;A++,j++}if(n>=J.start&&n<J.start+J.count)return J.stepIndex;A=J.start+J.count,j=J.stepIndex+1}while(A<=n&&j<f){if(A===n)return j;A++,j++}return Math.max(0,f-1)}import*as H from"node:fs";import*as y from"node:path";function Hn(n){return n instanceof Error?n.message:String(n)}function wf(n){let f=y.join(n,"runner.stderr.log"),$=65536,j;try{let J=H.statSync(f);if(J.size<=0)return;let T=H.openSync(f,"r");try{let B=Math.min(J.size,65536),O=Math.max(0,J.size-B),c=Buffer.alloc(B);H.readSync(T,c,0,B,O),j=c.toString("utf-8").trim()}finally{H.closeSync(T)}}catch{return}if(!j)return;let A=j.split(/\r?\n/).slice(-30).join(`
4
+ `)?void 0:-1).map(($)=>$.trim()?Wn($,f):void 0).filter(($)=>Boolean($))}function a(n){return n==="complete"||n==="failed"||n==="paused"}function wn(n,f){let $=f.type==="subagent.nested.completed"&&f.child.state==="running"?"complete":f.child.state,j={...f.child,state:$,lastUpdate:f.child.lastUpdate??f.ts};if(!n)return j;let A=n.lastUpdate??0,J=j.lastUpdate??f.ts;if(J<A)return n;if(a(n.state)&&!a(j.state))return n;if(a(n.state)&&a(j.state)&&J===A)return n;return{...n,...j,state:j.state,lastUpdate:Math.max(A,J)}}function mf(n,f){let $=!1,j=(B)=>B.map((O)=>{if(O.id===f.parentRunId){let L=O.children??[],Z=L.findIndex((S)=>S.id===f.child.id),Y=wn(Z>=0?L[Z]:void 0,f),q=Z>=0?L.map((S,g)=>g===Z?Y:S):[...L,Y];return $=!0,{...O,children:q.slice(0,r),lastUpdate:Math.max(O.lastUpdate??0,f.ts)}}if(!O.children?.length)return O;let c=j(O.children);return c===O.children?O:{...O,children:c}}),A=j(n);if($)return A;let J=A.findIndex((B)=>B.id===f.child.id),T=wn(J>=0?A[J]:void 0,f);return J>=0?A.map((B,O)=>O===J?T:B):[...A,T].slice(0,r)}function Df(n,f){return{...n,updatedAt:Math.max(n.updatedAt,f.ts),children:mf(n.children,f)}}function Pn(n){return K.join(on(n),bf)}function kn(){let n;try{n=y.readdirSync(t)}catch($){if($.code==="ENOENT")return new Map;throw $}let f=new Map;for(let $ of n){let j=K.join(t,$);try{let A=JSON.parse(y.readFileSync(K.join(j,_f),"utf-8"));if(typeof A.rootRunId!=="string"||typeof A.capabilityToken!=="string")continue;if(f.has(A.rootRunId))continue;let J={rootRunId:A.rootRunId,eventSink:K.join(j,"events"),controlInbox:K.join(j,"controls"),capabilityToken:A.capabilityToken};$n(J),f.set(A.rootRunId,J)}catch{continue}}return f}function wf(n){$n(n);try{let f=JSON.parse(y.readFileSync(Pn(n),"utf-8"));return{rootRunId:n.rootRunId,updatedAt:typeof f.updatedAt==="number"?f.updatedAt:0,children:Array.isArray(f.children)?f.children.map(($)=>jn($)).filter(($)=>Boolean($)):[],processedEvents:Array.isArray(f.processedEvents)?f.processedEvents.filter(($)=>typeof $==="string"):[]}}catch(f){if(f.code!=="ENOENT")throw f;return{rootRunId:n.rootRunId,updatedAt:0,children:[],processedEvents:[]}}}function Jn(n){$n(n);let f=wf(n),$=new Set(f.processedEvents),j=!1,A=[];try{A=y.readdirSync(n.eventSink).filter((J)=>J.endsWith(".json")||J.endsWith(".jsonl")).sort()}catch(J){if(J.code!=="ENOENT")throw J}for(let J of A){if($.has(J))continue;let T=K.join(n.eventSink,J);if(!Kn(n.eventSink,T))continue;let B;try{let O=y.statSync(T);if(!O.isFile()||O.size>Hn)continue;B=y.readFileSync(T,"utf-8")}catch{continue}for(let O of Rf(B,n))f=Df(f,O),j=!0;$.add(J),j=!0}if(j)f={...f,processedEvents:[...$].slice(-1000)},w(Pn(n),f);return f}function of(n,f,$){let j=`${JSON.stringify($)}
5
+ `;if(Buffer.byteLength(j,"utf-8")>Hn)throw Error("Nested route record exceeds the maximum size.");y.mkdirSync(n,{recursive:!0,mode:448});let A=`${String(f).padStart(13,"0")}-${gf()}.json`,J=K.join(n,`.${A}.tmp`),T=K.join(n,A);return y.writeFileSync(J,j,{mode:384}),y.renameSync(J,T),T}function vn(n,f){$n(n);let $={...f,rootRunId:n.rootRunId,capabilityToken:n.capabilityToken},j=Wn(JSON.stringify($),n);if(!j)throw Error("Nested event record failed validation.");of(n.eventSink,j.ts,j)}function dn(n,f,$){if(!f?.length)return;for(let j of f)j.children=void 0;if(!$?.length)return;for(let j of $){if(j.parentRunId!==n||j.parentStepIndex===void 0)continue;let A=f.find((J,T)=>(J.index??T)===j.parentStepIndex);if(!A)continue;A.children??=[],A.children=[...A.children.filter((J)=>J.id!==j.id),j].slice(0,r)}}function rn(n,f,$){return{id:n.runId||$.id,parentRunId:$.parentRunId,...$.parentStepIndex!==void 0?{parentStepIndex:$.parentStepIndex}:{},depth:$.depth,path:$.path??[{runId:$.parentRunId,...$.parentStepIndex!==void 0?{stepIndex:$.parentStepIndex}:{}}],asyncDir:f,...n.pid?{pid:n.pid}:{},...n.sessionId?{sessionId:n.sessionId}:{},mode:n.mode??$.mode,state:n.state,...n.currentStep!==void 0?{currentStep:n.currentStep}:{},...n.chainStepCount!==void 0?{chainStepCount:n.chainStepCount}:{},...n.activityState?{activityState:n.activityState}:{},...n.lastActivityAt!==void 0?{lastActivityAt:n.lastActivityAt}:{},...n.currentTool?{currentTool:n.currentTool}:{},...n.currentToolStartedAt!==void 0?{currentToolStartedAt:n.currentToolStartedAt}:{},...n.currentPath?{currentPath:n.currentPath}:{},...n.turnCount!==void 0?{turnCount:n.turnCount}:{},...n.toolCount!==void 0?{toolCount:n.toolCount}:{},...n.totalTokens?{totalTokens:n.totalTokens}:{},...n.timeoutMs!==void 0?{timeoutMs:n.timeoutMs}:{},...n.deadlineAt!==void 0?{deadlineAt:n.deadlineAt}:{},...n.timedOut!==void 0?{timedOut:n.timedOut}:{},...n.turnBudget?{turnBudget:n.turnBudget}:{},...n.turnBudgetExceeded!==void 0?{turnBudgetExceeded:n.turnBudgetExceeded}:{},...n.wrapUpRequested!==void 0?{wrapUpRequested:n.wrapUpRequested}:{},...n.error?{error:n.error}:{},...n.startedAt!==void 0?{startedAt:n.startedAt}:{startedAt:$.ts},...n.endedAt!==void 0?{endedAt:n.endedAt}:{},lastUpdate:n.lastUpdate??$.ts,...n.sessionFile?{sessionFile:n.sessionFile}:{},...n.steps?.length?{steps:n.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,Xn)}:{}}}function hf(n,f,$){if(typeof n!=="object"||n===null)return!1;let{start:j,count:A,stepIndex:J}=n;return typeof j==="number"&&typeof A==="number"&&typeof J==="number"&&Number.isInteger(j)&&Number.isInteger(A)&&Number.isInteger(J)&&j>=0&&A>0&&J>=0&&J<$&&j+A<=f}function u(n,f,$){if(!Array.isArray(n))return[];return n.filter((j)=>hf(j,f,$)).sort((j,A)=>j.stepIndex-A.stepIndex||j.start-A.start)}function un(n,f,$){let j=0,A=0;for(let J of $){while(A<J.start&&j<f){if(A===n)return j;A++,j++}if(n>=J.start&&n<J.start+J.count)return J.stepIndex;A=J.start+J.count,j=J.stepIndex+1}while(A<=n&&j<f){if(A===n)return j;A++,j++}return Math.max(0,f-1)}import*as H from"node:fs";import*as U from"node:path";function Mn(n){return n instanceof Error?n.message:String(n)}function Pf(n){let f=U.join(n,"runner.stderr.log"),$=65536,j;try{let J=H.statSync(f);if(J.size<=0)return;let T=H.openSync(f,"r");try{let B=Math.min(J.size,65536),O=Math.max(0,J.size-B),c=Buffer.alloc(B);H.readSync(T,c,0,B,O),j=c.toString("utf-8").trim()}finally{H.closeSync(T)}}catch{return}if(!j)return;let A=j.split(/\r?\n/).slice(-30).join(`
6
6
  `);return A.length>4000?`${A.slice(-4000)}
7
- [stderr tail truncated]`:A}function pn(n){return typeof n==="object"&&n!==null&&"code"in n&&n.code==="ENOENT"}function hf(n,f){try{H.mkdirSync(y.dirname(n),{recursive:!0}),H.appendFileSync(n,`${JSON.stringify(f)}
8
- `,"utf-8")}catch{}}function Pf(n){let f=y.join(n,"status.json"),$;try{$=H.readFileSync(f,"utf-8")}catch(j){if(pn(j))return null;throw Error(`Failed to read async status file '${f}': ${Hn(j)}`,{cause:j instanceof Error?j:void 0})}try{return JSON.parse($)}catch(j){throw Error(`Failed to parse async status file '${f}': ${Hn(j)}`,{cause:j instanceof Error?j:void 0})}}function kf(n){try{let f=JSON.parse(H.readFileSync(n,"utf-8"));return{state:f.success?"complete":f.state==="paused"||f.exitCode===0?"paused":"failed",...Array.isArray(f.results)?{results:f.results}:{}}}catch(f){if(pn(f))return;throw Error(`Failed to read async result file '${n}': ${Hn(f)}`,{cause:f instanceof Error?f:void 0})}}function vf(n,f){if(f?.success===!0)return"complete";if(f?.success===!1)return"failed";return n}function df(n,f,$){let j=kf(f);if(!j)return;let A=(n.steps??[]).map((J,T)=>{if(J.status!=="running"&&J.status!=="pending")return J;let B=j.results?.[T],O=vf(j.state,B);return{...J,status:O==="complete"?"complete":O,endedAt:J.endedAt??$,durationMs:J.startedAt!==void 0&&J.durationMs===void 0?Math.max(0,$-J.startedAt):J.durationMs,exitCode:J.exitCode??(O==="complete"||O==="paused"?0:1),error:O==="failed"?J.error??B?.error:J.error,sessionFile:J.sessionFile??B?.sessionFile,model:J.model??B?.model,attemptedModels:J.attemptedModels??B?.attemptedModels,modelAttempts:J.modelAttempts??B?.modelAttempts}});return{...n,state:j.state,activityState:void 0,lastUpdate:$,endedAt:n.endedAt??$,steps:A}}function rf(n,f,$){let j=f.startedAt??$,A=f.agents?.length?f.agents:["subagent"],J=f.chainStepCount,T=J!==void 0?r(f.parallelGroups,A.length,J):[];return{runId:f.runId||y.basename(n),...f.sessionId?{sessionId:f.sessionId}:{},mode:f.mode??"single",state:"running",pid:f.pid,startedAt:j,lastUpdate:$,currentStep:0,...J!==void 0?{chainStepCount:J}:{},...T.length?{parallelGroups:T}:{},steps:A.map((B)=>({agent:B,status:"running",startedAt:j})),...f.sessionFile?{sessionFile:f.sessionFile}:{}}}function uf(n,f,$,j){let A=n.runId||y.basename(f),J=typeof n.pid==="number"?n.pid:"unknown",T=j??`Async runner process ${J} exited or disappeared before writing a result. Marked run failed by stale-run reconciliation.`,B=wf(f),O=B?`${T}
7
+ [stderr tail truncated]`:A}function en(n){return typeof n==="object"&&n!==null&&"code"in n&&n.code==="ENOENT"}function kf(n,f){try{H.mkdirSync(U.dirname(n),{recursive:!0}),H.appendFileSync(n,`${JSON.stringify(f)}
8
+ `,"utf-8")}catch{}}function vf(n){let f=U.join(n,"status.json"),$;try{$=H.readFileSync(f,"utf-8")}catch(j){if(en(j))return null;throw Error(`Failed to read async status file '${f}': ${Mn(j)}`,{cause:j instanceof Error?j:void 0})}try{return JSON.parse($)}catch(j){throw Error(`Failed to parse async status file '${f}': ${Mn(j)}`,{cause:j instanceof Error?j:void 0})}}function df(n){try{let f=JSON.parse(H.readFileSync(n,"utf-8"));return{state:f.success?"complete":f.state==="paused"||f.exitCode===0?"paused":"failed",...Array.isArray(f.results)?{results:f.results}:{}}}catch(f){if(en(f))return;throw Error(`Failed to read async result file '${n}': ${Mn(f)}`,{cause:f instanceof Error?f:void 0})}}function rf(n,f){if(f?.success===!0)return"complete";if(f?.success===!1)return"failed";return n}function uf(n,f,$){let j=df(f);if(!j)return;let A=(n.steps??[]).map((J,T)=>{if(J.status!=="running"&&J.status!=="pending")return J;let B=j.results?.[T],O=rf(j.state,B);return{...J,status:O==="complete"?"complete":O,endedAt:J.endedAt??$,durationMs:J.startedAt!==void 0&&J.durationMs===void 0?Math.max(0,$-J.startedAt):J.durationMs,exitCode:J.exitCode??(O==="complete"||O==="paused"?0:1),error:O==="failed"?J.error??B?.error:J.error,sessionFile:J.sessionFile??B?.sessionFile,model:J.model??B?.model,attemptedModels:J.attemptedModels??B?.attemptedModels,modelAttempts:J.modelAttempts??B?.modelAttempts}});return{...n,state:j.state,activityState:void 0,lastUpdate:$,endedAt:n.endedAt??$,steps:A}}function lf(n,f,$){let j=f.startedAt??$,A=f.agents?.length?f.agents:["subagent"],J=f.chainStepCount,T=J!==void 0?u(f.parallelGroups,A.length,J):[];return{runId:f.runId||U.basename(n),...f.sessionId?{sessionId:f.sessionId}:{},mode:f.mode??"single",state:"running",pid:f.pid,startedAt:j,lastUpdate:$,currentStep:0,...J!==void 0?{chainStepCount:J}:{},...T.length?{parallelGroups:T}:{},steps:A.map((B)=>({agent:B,status:"running",startedAt:j})),...f.sessionFile?{sessionFile:f.sessionFile}:{}}}function pf(n,f,$,j){let A=n.runId||U.basename(f),J=typeof n.pid==="number"?n.pid:"unknown",T=j??`Async runner process ${J} exited or disappeared before writing a result. Marked run failed by stale-run reconciliation.`,B=Pf(f),O=B?`${T}
9
9
 
10
10
  Runner stderr tail:
11
- ${B}`:T,L=((n.steps?.length)?n.steps:[{agent:"subagent",status:"running"}]).map((q)=>q.status==="running"||q.status==="pending"?{...q,status:"failed",activityState:void 0,endedAt:q.endedAt??$,durationMs:q.startedAt!==void 0&&q.durationMs===void 0?Math.max(0,$-q.startedAt):q.durationMs,exitCode:q.exitCode??1,error:q.error??O}:q),Z={...n,state:"failed",activityState:void 0,lastUpdate:$,endedAt:$,steps:L},Y=L[n.currentStep??0]?.agent??L[0]?.agent??"subagent";return{status:Z,message:O,result:{id:A,agent:Y,mode:n.mode,success:!1,state:"failed",summary:O,results:L.map((q)=>({agent:q.agent,output:q.status==="complete"||q.status==="completed"?"":O,error:q.status==="complete"||q.status==="completed"?void 0:q.error??O,success:q.status==="complete"||q.status==="completed",model:q.model,attemptedModels:q.attemptedModels,modelAttempts:q.modelAttempts,sessionFile:q.sessionFile})),exitCode:1,timestamp:$,durationMs:Math.max(0,$-n.startedAt),asyncDir:f,sessionId:n.sessionId,sessionFile:n.sessionFile}}}function un(n,f,$,j,A){let J=uf(f,n,j,A);return D($,J.result),D(y.join(n,"status.json"),J.status),hf(y.join(n,"events.jsonl"),{type:"subagent.run.repaired_stale",ts:j,runId:J.status.runId,pid:f.pid,resultPath:$,message:J.message}),{status:J.status,repaired:!0,resultPath:$,message:J.message}}function ln(n){return n==="complete"||n==="failed"||n==="paused"}function*Sn(n){for(let f of n??[])yield f,yield*Sn(f.children),yield*Sn(f.steps?.flatMap(($)=>$.children??[]))}function en(n,f={}){let $=jn(n);for(let j of Sn($.children)){if(j.state!=="running"&&j.state!=="queued")continue;let A=wn(n.rootRunId,j);if(!A)continue;let J=Mn(A,{...f,resultsDir:y.join(f.resultsDir??N,"nested",n.rootRunId)}),T=J.status;if(!T)continue;if(!J.repaired&&!ln(T.state))continue;let B=f.now?.()??Date.now();kn(n,{type:ln(T.state)?"subagent.nested.completed":"subagent.nested.updated",ts:B,parentRunId:j.parentRunId,parentStepIndex:j.parentStepIndex,child:dn(T,A,{id:j.id,parentRunId:j.parentRunId,parentStepIndex:j.parentStepIndex,depth:j.depth,path:j.path,mode:j.mode,ts:B})})}}function lf(n,f=process.kill){try{return f(n,0),"alive"}catch($){let j=typeof $==="object"&&$!==null&&"code"in $?$.code:void 0;if(j==="ESRCH")return"dead";if(j==="EPERM")return"unknown";return"unknown"}}function Mn(n,f={}){let $=f.now?.()??Date.now(),j=Pf(n),A=!j&&f.startedRun?rf(n,f.startedRun,$):void 0,J=j??A;if(!J)return{status:null,repaired:!1};let T=J.runId||y.basename(n),B=y.join(f.resultsDir??N,`${T}.json`);if(H.existsSync(B)){let c=J.state==="running"||J.state==="queued"?df(J,B,$):void 0;if(c)return D(y.join(n,"status.json"),c),{status:c,repaired:!0,resultPath:B,message:"Existing async result file was used to repair stale running status."};return{status:J,repaired:!1,resultPath:B}}if(J.state!=="running"||typeof J.pid!=="number")return{status:j??null,repaired:!1,resultPath:B};if(!j){let c=f.startedRun?.startedAt??J.startedAt;if($-c<(f.missingStatusGraceMs??1000))return{status:null,repaired:!1,resultPath:B}}if(lf(J.pid,f.kill)!=="dead"){let c=f.staleAlivePidMs??86400000,L=J.lastUpdate??J.startedAt;if($-L<=c)return{status:j??null,repaired:!1,resultPath:B};let Z=`Async runner process ${J.pid} still has a live PID, but status has not updated for ${$-L}ms. Marked run failed by stale-run reconciliation because PID ownership cannot be verified.`;return un(n,J,B,$,Z)}return un(n,J,B,$)}function u(n){return n instanceof Error?n.message:String(n)}function Un(n){return typeof n==="object"&&n!==null&&"code"in n&&n.code==="ENOENT"}function pf(n,f){let $=F.join(n,f);try{return i.statSync($).isDirectory()}catch(j){if(Un(j))return!1;throw Error(`Failed to inspect async run path '${$}': ${u(j)}`,{cause:j instanceof Error?j:void 0})}}function ef(n){if(!n)return;try{return i.statSync(n).mtimeMs}catch(f){if(Un(f))return;throw Error(`Failed to inspect async output file '${n}': ${u(f)}`,{cause:f instanceof Error?f:void 0})}}function sf(n,f){if(f.state!=="running")return{activityState:f.activityState,lastActivityAt:f.lastActivityAt};let $=f.outputFile?F.isAbsolute(f.outputFile)?f.outputFile:F.join(n,f.outputFile):void 0,j=typeof f.currentStep==="number"?f.steps?.[f.currentStep]:void 0;return{activityState:f.activityState,lastActivityAt:f.lastActivityAt??ef($)??j?.lastActivityAt??j?.startedAt??f.startedAt}}function af(n,f,$=[],j){if(f.sessionId!==void 0&&typeof f.sessionId!=="string")throw Error(`Invalid async status '${F.join(n,"status.json")}': sessionId must be a string.`);let{activityState:A,lastActivityAt:J}=sf(n,f),T=f.steps??[],B=f.chainStepCount??T.length,O=r(f.parallelGroups,T.length,B),c=[];if($.length===0&&j)try{c=jn(j)?.children??[]}catch(Z){$.push(`Nested status unavailable: ${u(Z)}`)}let L=T.map((Z,Y)=>{let{activityState:q,lastActivityAt:M}=Z;return{index:Y,agent:Z.agent,...Z.label?{label:Z.label}:{},...Z.phase?{phase:Z.phase}:{},...Z.outputName?{outputName:Z.outputName}:{},...Z.structured?{structured:Z.structured}:{},status:Z.status,...q?{activityState:q}:{},...M?{lastActivityAt:M}:{},...Z.currentTool?{currentTool:Z.currentTool}:{},...Z.currentToolArgs?{currentToolArgs:Z.currentToolArgs}:{},...Z.currentToolStartedAt?{currentToolStartedAt:Z.currentToolStartedAt}:{},...Z.currentPath?{currentPath:Z.currentPath}:{},...Z.recentTools?{recentTools:Z.recentTools.map((g)=>({...g}))}:{},...Z.recentOutput?{recentOutput:[...Z.recentOutput]}:{},...Z.turnCount!==void 0?{turnCount:Z.turnCount}:{},...Z.toolCount!==void 0?{toolCount:Z.toolCount}:{},...Z.steerCount!==void 0?{steerCount:Z.steerCount}:{},...Z.lastSteerAt!==void 0?{lastSteerAt:Z.lastSteerAt}:{},...Z.durationMs!==void 0?{durationMs:Z.durationMs}:{},...Z.tokens?{tokens:Z.tokens}:{},...Z.totalCost?{totalCost:Z.totalCost}:{},...Z.skills?{skills:Z.skills}:{},...Z.model?{model:Z.model}:{},...Z.thinking?{thinking:Z.thinking}:{},...Z.attemptedModels?{attemptedModels:Z.attemptedModels}:{},...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}:{},...Z.children?.length?{children:Z.children}:{}}});return vn(f.runId||F.basename(n),L,c),{id:f.runId||F.basename(n),asyncDir:n,...f.sessionId?{sessionId:f.sessionId}:{},state:f.state,...f.error?{error:f.error}:{},activityState:A,lastActivityAt:J,currentTool:f.currentTool,currentToolStartedAt:f.currentToolStartedAt,currentPath:f.currentPath,turnCount:f.turnCount,toolCount:f.toolCount,steerCount:f.steerCount,lastSteerAt:f.lastSteerAt,mode:f.mode,cwd:f.cwd,startedAt:f.startedAt,lastUpdate:f.lastUpdate,endedAt:f.endedAt,...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}:{},currentStep:f.currentStep,...f.chainStepCount!==void 0?{chainStepCount:f.chainStepCount}:{},...f.pendingAppends!==void 0?{pendingAppends:f.pendingAppends}:{},...O.length?{parallelGroups:O}:{},steps:L,...c.length?{nestedChildren:c}:{},...$.length?{nestedWarnings:$}:{},...f.sessionDir?{sessionDir:f.sessionDir}:{},...f.outputFile?{outputFile:f.outputFile}:{},...f.totalTokens?{totalTokens:f.totalTokens}:{},...f.totalCost?{totalCost:f.totalCost}:{},...f.sessionFile?{sessionFile:f.sessionFile}:{}}}function tf(n){let f=($)=>{switch($){case"running":return 0;case"queued":return 1;case"failed":return 2;case"paused":return 2;case"complete":return 3}};return[...n].sort(($,j)=>{let A=f($.state)-f(j.state);if(A!==0)return A;let J=$.lastUpdate??$.endedAt??$.startedAt;return(j.lastUpdate??j.endedAt??j.startedAt)-J})}function sn(n,f={}){let $;try{$=i.readdirSync(n).filter((O)=>pf(n,O))}catch(O){if(Un(O))return[];throw Error(`Failed to list async runs in '${n}': ${u(O)}`,{cause:O instanceof Error?O:void 0})}let j=f.states?new Set(f.states):void 0,A=[],J,T=(O)=>{if(!J)J=Pn();return J.get(O)};for(let O of $){let c=F.join(n,O),Z=(f.reconcile===!1?void 0:Mn(c,{resultsDir:f.resultsDir,kill:f.kill,now:f.now}))?.status??l(c);if(!Z)continue;if(j&&!j.has(Z.state))continue;if(f.sessionId&&Z.sessionId!==f.sessionId)continue;let Y=[],q;try{if(q=T(Z.runId||F.basename(c)),q)en(q,{resultsDir:f.resultsDir,kill:f.kill,now:f.now})}catch(g){Y.push(`Nested status unavailable: ${u(g)}`)}let M=af(c,Z,Y,q);A.push(M)}let B=tf(A);return f.limit!==void 0?B.slice(0,f.limit):B}function an(n){if(!n.outputFile)return;return F.isAbsolute(n.outputFile)?n.outputFile:F.join(n.asyncDir,n.outputFile)}function tn(n){let f=n.steps.length||1,$=n.chainStepCount??f,j=r(n.parallelGroups,n.steps.length,$),A=n.currentStep!==void 0?j.find((J)=>n.currentStep>=J.start&&n.currentStep<J.start+J.count):void 0;if(A){let J=n.steps.slice(A.start,A.start+A.count),T=Qn(J,A.count,{showRunning:n.state==="running"});if(n.mode==="parallel")return T;return`step ${A.stepIndex+1}/${$} · parallel group: ${T}`}if(n.mode==="parallel")return Qn(n.steps,f,{showRunning:n.state==="running"});if(n.mode==="chain"&&n.currentStep!==void 0&&j.length>0)return`step ${rn(n.currentStep,$,j)+1}/${$}`;return n.currentStep!==void 0?`step ${n.currentStep+1}/${f}`:`steps ${f}`}var nf=80,n$=500,f$=262144;function Fn(n){if(n===void 0)return nf;if(!Number.isFinite(n))return nf;return Math.max(1,Math.min(n$,Math.trunc(n)))}function ff(n){let f=new Set,$=[];for(let j of n){if(!j||f.has(j))continue;f.add(j),$.push(j)}return $}function $$(n,f){if(!f)return;return S.resolve(n,f)}function $f(n,f){let $=S.resolve(n),j=S.resolve(f);return j===$||j.startsWith(`${$}${S.sep}`)}function Jn(n){return n instanceof Error?n.message:String(n)}function jf(n){return typeof n==="object"&&n!==null&&"code"in n&&n.code==="ENOENT"}function j$(n,f){let $;try{$=W.statSync(n)}catch(A){if(jf(A))return{path:n,lines:[],truncated:!1};return{path:n,lines:[],truncated:!1,error:Jn(A)}}if($.size===0)return{path:n,lines:[],truncated:!1};let j;try{let A=Math.min($.size,f$),J=$.size-A,T=Buffer.alloc(A);j=W.openSync(n,"r");let B=W.readSync(j,T,0,A,J),c=T.subarray(0,B).toString("utf-8").split(/\r?\n/);if(J>0&&c.length>0)c=c.slice(1);if(c.at(-1)==="")c=c.slice(0,-1);return{path:n,lines:c.slice(-f),truncated:J>0||c.length>f}}catch(A){return{path:n,lines:[],truncated:!1,error:Jn(A)}}finally{if(j!==void 0)W.closeSync(j)}}function Jf(n,f,$,j){if($.length===0)return{path:n,lines:[],truncated:!1,error:`Refusing to read ${j} transcript path without a trusted root: ${n}`};let A=S.resolve(n);if(!$.some((O)=>$f(O,A)))return{path:n,lines:[],truncated:!1,error:`Refusing to read ${j} transcript path outside trusted roots: ${n}`};let J;try{J=W.lstatSync(A)}catch(O){if(jf(O))return{path:n,lines:[],truncated:!1};return{path:n,lines:[],truncated:!1,error:Jn(O)}}if(J.isSymbolicLink())return{path:n,lines:[],truncated:!1,error:`Refusing to read symlink ${j} transcript path: ${n}`};if(!J.isFile())return{path:n,lines:[],truncated:!1,error:`Refusing to read non-file ${j} transcript path: ${n}`};let T,B;try{T=W.realpathSync(A),B=$.filter((O)=>W.existsSync(O)).map((O)=>W.realpathSync(O))}catch(O){return{path:n,lines:[],truncated:!1,error:Jn(O)}}if(!B.some((O)=>$f(O,T)))return{path:n,lines:[],truncated:!1,error:`Refusing to read ${j} transcript path outside trusted roots: ${n}`};return j$(A,f)}function yn(n,f=240){let $;if(typeof n==="string")$=n;else $=JSON.stringify(n);return $.length>f?`${$.slice(0,f)}…`:$}function J$(n){if(typeof n==="string")return n;if(!Array.isArray(n))return"";return n.map((f)=>{if(!f||typeof f!=="object")return"";let $=f;if(typeof $.text==="string")return $.text;if($.type==="toolCall"||$.type==="tool_call")return`[tool: ${typeof $.name==="string"?$.name:typeof $.toolName==="string"?$.toolName:"tool"}${$.args===void 0?"":` ${yn($.args)}`}]`;if($.type==="toolResult"||$.type==="tool_result")return`[tool result${$.result===void 0?"":`: ${yn($.result)}`}]`;if($.content!==void 0)return yn($.content);return""}).filter(Boolean).join(`
12
- `)}function A$(n){if(!n||typeof n!=="object")return;let f=n,$=f.message&&typeof f.message==="object"?f.message:f,j=typeof $.role==="string"?$.role:void 0;if(!j)return;let A=J$($.content).trim();if(!A)return;return`${j}: ${A}`}function Af(n,f,$){let j=Jf(n,Math.max(f*4,f),$,"session"),A=[];if(j.error)A.push(`Session read failed for ${n}: ${j.error}`);let J=[],T=0;for(let B of j.lines){if(!B.trim())continue;try{let O=JSON.parse(B),c=A$(O);if(c)J.push(c)}catch{T++}}if(T>0)A.push(`Skipped ${T} malformed session tail line${T===1?"":"s"}.`);return{lines:J.slice(-f),warnings:A}}function An(n){let f=[];if(n.currentTool&&n.currentToolStartedAt!==void 0)f.push(`tool ${n.currentTool} ${P(Math.max(0,Date.now()-n.currentToolStartedAt))}`);else if(n.currentTool)f.push(`tool ${n.currentTool}`);if(n.currentPath)f.push(C(n.currentPath));if(n.turnCount!==void 0)f.push(`${n.turnCount} turns`);if(n.toolCount!==void 0)f.push(`${n.toolCount} tools`);if(n.tokens?.total)f.push(`${h(n.tokens.total)} tok`);let $=k(n.lastActivityAt,n.activityState);return $||f.length?[$,...f].filter(Boolean).join(" | "):void 0}function T$(n){if(n.mode==="single"&&n.currentAgent)return n.currentAgent;return n.mode}function O$(n){if(n.length===0)return[];let f=["Foreground runs:"],$=[...n].sort((j,A)=>A.updatedAt-j.updatedAt);for(let j of $){let A=An({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}}:{}}),J=j.currentAgent?` | ${j.currentAgent}${j.currentIndex!==void 0?` #${j.currentIndex}`:""}`:"";f.push(`- ${j.runId} | running | ${T$(j)}${J}${A?` | ${A}`:""}`),f.push(` status: subagent({ action: "status", id: "${j.runId}" })`),f.push(" transcript: live in the expanded foreground result; persisted session transcript appears after completion when sessions are enabled."),f.push(...v(j.nestedChildren,{indent:" ",commandHints:!0,maxLines:12}))}return f}function B$(n){if(n.length===0)return[];let f=["Async runs:"];for(let $ of n){let j=tn($),A=An($),J=$.cwd?C($.cwd):C($.asyncDir),T=$.pendingAppends?` | ${$.pendingAppends} pending append${$.pendingAppends===1?"":"s"}`:"";f.push(`- ${$.id} | ${$.state}${A?` | ${A}`:""} | ${$.mode} | ${j}${T} | ${J}`),f.push(` status: subagent({ action: "status", id: "${$.id}" })`),f.push(` transcript: subagent({ action: "status", id: "${$.id}", view: "transcript" })`);for(let L of $.steps){let Z=L.label?`${L.label} (${L.agent})`:L.agent,Y=L.phase?`[${L.phase}] `:"",q=An(L),M=e(L.model,L.thinking),g=[`${L.index}. ${Y}${Z}`,L.status,q,M].filter(Boolean);f.push(` ${g.join(" | ")}`);let G=S.join($.asyncDir,`output-${L.index}.log`);if(W.existsSync(G))f.push(` output: ${C(G)}`);if(L.sessionFile)f.push(` session: ${C(L.sessionFile)}`);if(L.status==="running"||L.recentOutput?.length||W.existsSync(G))f.push(` transcript: subagent({ action: "status", id: "${$.id}", index: ${L.index}, view: "transcript" })`);f.push(...v(L.children,{indent:" ",commandHints:!0,maxLines:12}))}let B=new Set($.steps.flatMap((L)=>L.children?.map((Z)=>Z.id)??[])),O=$.nestedChildren?.filter((L)=>!B.has(L.id))??[];if(f.push(...v(O,{indent:" ",commandHints:!0,maxLines:12})),$.error)f.push(` error: ${$.error}`);for(let L of $.nestedWarnings??[])f.push(` warning: ${L}`);let c=an($);if(c)f.push(` output: ${C(c)}`);if($.sessionFile)f.push(` session: ${C($.sessionFile)}`)}return f}function d0(n,f={}){if(f.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 $;try{$=sn(f.asyncDirRoot??Bn,{states:["queued","running"],sessionId:f.state?.currentSessionId??void 0,resultsDir:f.resultsDir??N,kill:f.kill,now:f.now})}catch(O){return{content:[{type:"text",text:O instanceof Error?O.message:String(O)}],isError:!0,details:{mode:"management",results:[]}}}let j=f.state?[...f.state.foregroundControls.values()]:[],A=j.length+$.length;if(A===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 J=[`Subagent fleet: ${A} active`,""],T=O$(j);if(T.length)J.push(...T,"");let B=B$($);if(B.length)J.push(...B,"");return J.push("Commands:"),J.push(' Refresh fleet: subagent({ action: "status", view: "fleet" })'),J.push(' Tail run transcript: subagent({ action: "status", id: "<run-id>", view: "transcript" })'),J.push(' Tail child transcript: subagent({ action: "status", id: "<run-id>", index: 0, view: "transcript" })'),{content:[{type:"text",text:J.join(`
13
- `).trimEnd()}],details:{mode:"management",results:[]}}}function Z$(n,f){if(n===void 0)return;if(!Number.isInteger(n))throw Error("Transcript index must be an integer.");if(n<0||n>=f.length)throw Error(`Transcript index ${n} is out of range for ${f.length} child step${f.length===1?"":"s"}.`);return n}function Q$(n,f){let $=n.steps??[],j=Z$(f.index,$);if(j===void 0){if(n.state==="running"&&typeof n.currentStep==="number"&&n.currentStep>=0&&n.currentStep<$.length)j=n.currentStep;else if($.length===1)j=0}let A=j!==void 0?$[j]:void 0,J=f.index===void 0&&$.length>1?`Tip: pass index to inspect a specific child transcript (${$.map((T,B)=>`${B}=${T.agent}`).join(", ")}).`:void 0;return{index:j,step:A,hint:J}}function c$(n,f,$){if(f===void 0||!$)return;let j=e($.model,$.thinking);return[`${n==="parallel"?"Agent":"Step"}: ${f} (${$.agent})`,$.status,An($),j,$.error?`error: ${$.error}`:void 0].filter(Boolean).join(" | ")}function Gn(n,f){let $=[];for(let j of f.outputPaths)$.push(`Output: ${j}`);if(f.sessionFile)$.push(`Session: ${f.sessionFile}`);if(f.eventsPath)$.push(`Events: ${f.eventsPath}`);if(f.logPath)$.push(`Log: ${f.logPath}`);if(f.resultPath)$.push(`Result: ${f.resultPath}`);if(!$.length)return;n.push("Artifacts:");for(let j of $)n.push(` ${j}`)}function Tn(n,f,$,j){if(n.push(`${f}${j?" (tail truncated)":""}:`),$.length===0){n.push(" (no transcript lines available yet)");return}for(let A of $)n.push(` ${A}`)}function L$(n,f,$={}){let j=Fn($.lines),A=Q$(n,$),J=A.index!==void 0?S.join(f,`output-${A.index}.log`):void 0,T=$$(f,n.outputFile),B=S.join(f,`subagent-log-${n.runId}.md`),O=A.index!==void 0?ff([J,T&&J&&S.resolve(T)===S.resolve(J)?T:void 0]):ff([T]),c=A.index!==void 0?A.step?.sessionFile:n.sessionFile,L=S.join(f,"events.jsonl"),Z=[`Run: ${n.runId}`,`State: ${n.state}`,`Mode: ${n.mode}`,c$(n.mode,A.index,A.step),A.hint].filter((G)=>Boolean(G));Gn(Z,{outputPaths:O,sessionFile:c,eventsPath:W.existsSync(L)?L:void 0,logPath:W.existsSync(B)?B:void 0});let Y=[],q=[],M="Transcript tail",g=!1;for(let G of O){let E=Jf(G,j,[f],"output");if(E.error)Y.push(`Output read failed for ${E.path}: ${E.error}`);if(E.lines.length===0)continue;q=E.lines,M=`Transcript tail from ${E.path}`,g=E.truncated;break}if(q.length===0&&A.step?.recentOutput?.length)q=A.step.recentOutput.slice(-j),M="Recent output from status.json";if(q.length===0&&c){let G=Af(c,j,$.sessionRoots??[]);if(q=G.lines,Y.push(...G.warnings),q.length>0)M=`Session transcript tail from ${c}`}if(Y.length){Z.push("Warnings:");for(let G of Y)Z.push(` ${G}`)}return Tn(Z,M,q,g),Z.join(`
14
- `)}function r0(n,f={}){if(n.asyncDir){let J=l(n.asyncDir);if(J)return L$(J,n.asyncDir,f)}let $=Fn(f.lines),j=[`Nested run: ${n.id}`,`State: ${n.state}`,n.mode?`Mode: ${n.mode}`:void 0,n.agent?`Agent: ${n.agent}`:n.agents?.length?`Agents: ${n.agents.join(", ")}`:void 0].filter((J)=>Boolean(J));if(Gn(j,{outputPaths:[],sessionFile:n.sessionFile}),!n.sessionFile)return Tn(j,"Transcript tail",[],!1),j.join(`
15
- `);let A=Af(n.sessionFile,$,f.sessionRoots??[]);if(A.warnings.length){j.push("Warnings:");for(let J of A.warnings)j.push(` ${J}`)}return Tn(j,`Session transcript tail from ${n.sessionFile}`,A.lines,!1),j.join(`
16
- `)}function u0(n,f,$={}){let j=Fn($.lines),A=n.runId??n.id??S.basename(f,".json"),J=Array.isArray(n.results)?n.results:n.agent?[{agent:n.agent,output:n.output,summary:n.summary,sessionFile:n.sessionFile,state:n.state,success:n.success,exitCode:n.exitCode}]:[],T=$.index;if(T!==void 0&&!Number.isInteger(T))throw Error("Transcript index must be an integer.");if(T===void 0&&J.length===1)T=0;if(T!==void 0&&(T<0||T>=J.length))throw Error(`Transcript index ${T} is out of range for ${J.length} result child${J.length===1?"":"ren"}.`);let B=T!==void 0?J[T]:void 0,O=T!==void 0?B?.output??B?.summary??(J.length===1?n.output??n.summary:void 0)??"":n.output??n.summary??"",c=O.split(/\r?\n/).slice(-j),L=B?.sessionFile??n.sessionFile,Z=[`Run: ${A}`,`State: ${n.state??(n.success?"complete":"failed")}`,T!==void 0&&B?`Child: ${T} (${B.agent??"subagent"})`:void 0,T===void 0&&J.length>1?`Tip: pass index to inspect a specific child transcript (${J.map((Y,q)=>`${q}=${Y.agent??"subagent"}`).join(", ")}).`:void 0].filter((Y)=>Boolean(Y));return Gn(Z,{outputPaths:[],sessionFile:L,resultPath:f}),Tn(Z,"Result transcript tail",c.filter((Y)=>Y.trim()),O.split(/\r?\n/).length>j),Z.join(`
17
- `)}export{d0 as inspectSubagentFleet,r0 as formatNestedRunTranscript,L$ as formatAsyncRunTranscript,u0 as formatAsyncResultTranscript};
11
+ ${B}`:T,L=((n.steps?.length)?n.steps:[{agent:"subagent",status:"running"}]).map((q)=>q.status==="running"||q.status==="pending"?{...q,status:"failed",activityState:void 0,endedAt:q.endedAt??$,durationMs:q.startedAt!==void 0&&q.durationMs===void 0?Math.max(0,$-q.startedAt):q.durationMs,exitCode:q.exitCode??1,error:q.error??O}:q),Z={...n,state:"failed",activityState:void 0,lastUpdate:$,endedAt:$,steps:L},Y=L[n.currentStep??0]?.agent??L[0]?.agent??"subagent";return{status:Z,message:O,result:{id:A,agent:Y,mode:n.mode,success:!1,state:"failed",summary:O,results:L.map((q)=>({agent:q.agent,output:q.status==="complete"||q.status==="completed"?"":O,error:q.status==="complete"||q.status==="completed"?void 0:q.error??O,success:q.status==="complete"||q.status==="completed",model:q.model,attemptedModels:q.attemptedModels,modelAttempts:q.modelAttempts,sessionFile:q.sessionFile})),exitCode:1,timestamp:$,durationMs:Math.max(0,$-n.startedAt),asyncDir:f,sessionId:n.sessionId,sessionFile:n.sessionFile}}}function ln(n,f,$,j,A){let J=pf(f,n,j,A);return w($,J.result),w(U.join(n,"status.json"),J.status),kf(U.join(n,"events.jsonl"),{type:"subagent.run.repaired_stale",ts:j,runId:J.status.runId,pid:f.pid,resultPath:$,message:J.message}),{status:J.status,repaired:!0,resultPath:$,message:J.message}}function pn(n){return n==="complete"||n==="failed"||n==="paused"}function*Sn(n){for(let f of n??[])yield f,yield*Sn(f.children),yield*Sn(f.steps?.flatMap(($)=>$.children??[]))}function sn(n,f={}){let $=Jn(n);for(let j of Sn($.children)){if(j.state!=="running"&&j.state!=="queued")continue;let A=hn(n.rootRunId,j);if(!A)continue;let J=yn(A,{...f,resultsDir:U.join(f.resultsDir??m,"nested",n.rootRunId)}),T=J.status;if(!T)continue;if(!J.repaired&&!pn(T.state))continue;let B=f.now?.()??Date.now();vn(n,{type:pn(T.state)?"subagent.nested.completed":"subagent.nested.updated",ts:B,parentRunId:j.parentRunId,parentStepIndex:j.parentStepIndex,child:rn(T,A,{id:j.id,parentRunId:j.parentRunId,parentStepIndex:j.parentStepIndex,depth:j.depth,path:j.path,mode:j.mode,ts:B})})}}function ef(n,f=process.kill){try{return f(n,0),"alive"}catch($){let j=typeof $==="object"&&$!==null&&"code"in $?$.code:void 0;if(j==="ESRCH")return"dead";if(j==="EPERM")return"unknown";return"unknown"}}function yn(n,f={}){let $=f.now?.()??Date.now(),j=vf(n),A=!j&&f.startedRun?lf(n,f.startedRun,$):void 0,J=j??A;if(!J)return{status:null,repaired:!1};let T=J.runId||U.basename(n),B=U.join(f.resultsDir??m,`${T}.json`);if(H.existsSync(B)){let c=J.state==="running"||J.state==="queued"?uf(J,B,$):void 0;if(c)return w(U.join(n,"status.json"),c),{status:c,repaired:!0,resultPath:B,message:"Existing async result file was used to repair stale running status."};return{status:J,repaired:!1,resultPath:B}}if(J.state!=="running"||typeof J.pid!=="number")return{status:j??null,repaired:!1,resultPath:B};if(!j){let c=f.startedRun?.startedAt??J.startedAt;if($-c<(f.missingStatusGraceMs??1000))return{status:null,repaired:!1,resultPath:B}}if(ef(J.pid,f.kill)!=="dead"){let c=f.staleAlivePidMs??86400000,L=J.lastUpdate??J.startedAt;if($-L<=c)return{status:j??null,repaired:!1,resultPath:B};let Z=`Async runner process ${J.pid} still has a live PID, but status has not updated for ${$-L}ms. Marked run failed by stale-run reconciliation because PID ownership cannot be verified.`;return ln(n,J,B,$,Z)}return ln(n,J,B,$)}function i(n){return n instanceof Error?n.message:String(n)}function Un(n){return typeof n==="object"&&n!==null&&"code"in n&&n.code==="ENOENT"}function sf(n,f){let $=F.join(n,f);try{return l.statSync($).isDirectory()}catch(j){if(Un(j))return!1;throw Error(`Failed to inspect async run path '${$}': ${i(j)}`,{cause:j instanceof Error?j:void 0})}}function af(n){if(!n)return;try{return l.statSync(n).mtimeMs}catch(f){if(Un(f))return;throw Error(`Failed to inspect async output file '${n}': ${i(f)}`,{cause:f instanceof Error?f:void 0})}}function tf(n,f){if(f.state!=="running")return{activityState:f.activityState,lastActivityAt:f.lastActivityAt};let $=f.outputFile?F.isAbsolute(f.outputFile)?f.outputFile:F.join(n,f.outputFile):void 0,j=typeof f.currentStep==="number"?f.steps?.[f.currentStep]:void 0;return{activityState:f.activityState,lastActivityAt:f.lastActivityAt??af($)??j?.lastActivityAt??j?.startedAt??f.startedAt}}function n$(n,f,$=[],j){if(f.sessionId!==void 0&&typeof f.sessionId!=="string")throw Error(`Invalid async status '${F.join(n,"status.json")}': sessionId must be a string.`);let{activityState:A,lastActivityAt:J}=tf(n,f),T=f.steps??[],B=f.chainStepCount??T.length,O=u(f.parallelGroups,T.length,B),c=[];if($.length===0&&j)try{c=Jn(j)?.children??[]}catch(Z){$.push(`Nested status unavailable: ${i(Z)}`)}let L=T.map((Z,Y)=>{let{activityState:q,lastActivityAt:S}=Z;return{index:Y,agent:Z.agent,...Z.label?{label:Z.label}:{},...Z.phase?{phase:Z.phase}:{},...Z.outputName?{outputName:Z.outputName}:{},...Z.structured?{structured:Z.structured}:{},status:Z.status,...q?{activityState:q}:{},...S?{lastActivityAt:S}:{},...Z.currentTool?{currentTool:Z.currentTool}:{},...Z.currentToolArgs?{currentToolArgs:Z.currentToolArgs}:{},...Z.currentToolStartedAt?{currentToolStartedAt:Z.currentToolStartedAt}:{},...Z.currentPath?{currentPath:Z.currentPath}:{},...Z.recentTools?{recentTools:Z.recentTools.map((g)=>({...g}))}:{},...Z.recentOutput?{recentOutput:[...Z.recentOutput]}:{},...Z.turnCount!==void 0?{turnCount:Z.turnCount}:{},...Z.toolCount!==void 0?{toolCount:Z.toolCount}:{},...Z.steerCount!==void 0?{steerCount:Z.steerCount}:{},...Z.lastSteerAt!==void 0?{lastSteerAt:Z.lastSteerAt}:{},...Z.durationMs!==void 0?{durationMs:Z.durationMs}:{},...Z.tokens?{tokens:Z.tokens}:{},...Z.totalCost?{totalCost:Z.totalCost}:{},...Z.skills?{skills:Z.skills}:{},...Z.model?{model:Z.model}:{},...Z.thinking?{thinking:Z.thinking}:{},...Z.attemptedModels?{attemptedModels:Z.attemptedModels}:{},...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}:{},...Z.children?.length?{children:Z.children}:{}}});return dn(f.runId||F.basename(n),L,c),{id:f.runId||F.basename(n),asyncDir:n,...f.sessionId?{sessionId:f.sessionId}:{},state:f.state,...f.error?{error:f.error}:{},activityState:A,lastActivityAt:J,currentTool:f.currentTool,currentToolStartedAt:f.currentToolStartedAt,currentPath:f.currentPath,turnCount:f.turnCount,toolCount:f.toolCount,steerCount:f.steerCount,lastSteerAt:f.lastSteerAt,mode:f.mode,cwd:f.cwd,startedAt:f.startedAt,lastUpdate:f.lastUpdate,endedAt:f.endedAt,...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}:{},currentStep:f.currentStep,...f.chainStepCount!==void 0?{chainStepCount:f.chainStepCount}:{},...f.pendingAppends!==void 0?{pendingAppends:f.pendingAppends}:{},...O.length?{parallelGroups:O}:{},steps:L,...c.length?{nestedChildren:c}:{},...$.length?{nestedWarnings:$}:{},...f.sessionDir?{sessionDir:f.sessionDir}:{},...f.outputFile?{outputFile:f.outputFile}:{},...f.totalTokens?{totalTokens:f.totalTokens}:{},...f.totalCost?{totalCost:f.totalCost}:{},...f.sessionFile?{sessionFile:f.sessionFile}:{}}}function f$(n){let f=($)=>{switch($){case"running":return 0;case"queued":return 1;case"failed":return 2;case"paused":return 2;case"complete":return 3}};return[...n].sort(($,j)=>{let A=f($.state)-f(j.state);if(A!==0)return A;let J=$.lastUpdate??$.endedAt??$.startedAt;return(j.lastUpdate??j.endedAt??j.startedAt)-J})}function an(n,f={}){let $;try{$=l.readdirSync(n).filter((O)=>sf(n,O))}catch(O){if(Un(O))return[];throw Error(`Failed to list async runs in '${n}': ${i(O)}`,{cause:O instanceof Error?O:void 0})}let j=f.states?new Set(f.states):void 0,A=[],J,T=(O)=>{if(!J)J=kn();return J.get(O)};for(let O of $){let c=F.join(n,O),Z=(f.reconcile===!1?void 0:yn(c,{resultsDir:f.resultsDir,kill:f.kill,now:f.now}))?.status??p(c);if(!Z)continue;if(j&&!j.has(Z.state))continue;if(f.sessionId&&Z.sessionId!==f.sessionId)continue;let Y=[],q;try{if(q=T(Z.runId||F.basename(c)),q)sn(q,{resultsDir:f.resultsDir,kill:f.kill,now:f.now})}catch(g){Y.push(`Nested status unavailable: ${i(g)}`)}let S=n$(c,Z,Y,q);A.push(S)}let B=f$(A);return f.limit!==void 0?B.slice(0,f.limit):B}function tn(n){if(!n.outputFile)return;return F.isAbsolute(n.outputFile)?n.outputFile:F.join(n.asyncDir,n.outputFile)}function nf(n){let f=n.steps.length||1,$=n.chainStepCount??f,j=u(n.parallelGroups,n.steps.length,$),A=n.currentStep!==void 0?j.find((J)=>n.currentStep>=J.start&&n.currentStep<J.start+J.count):void 0;if(A){let J=n.steps.slice(A.start,A.start+A.count),T=cn(J,A.count,{showRunning:n.state==="running"});if(n.mode==="parallel")return T;return`step ${A.stepIndex+1}/${$} · parallel group: ${T}`}if(n.mode==="parallel")return cn(n.steps,f,{showRunning:n.state==="running"});if(n.mode==="chain"&&n.currentStep!==void 0&&j.length>0)return`step ${un(n.currentStep,$,j)+1}/${$}`;return n.currentStep!==void 0?`step ${n.currentStep+1}/${f}`:`steps ${f}`}var ff=80,$$=500,j$=262144;function Gn(n){if(n===void 0)return ff;if(!Number.isFinite(n))return ff;return Math.max(1,Math.min($$,Math.trunc(n)))}function $f(n){let f=new Set,$=[];for(let j of n){if(!j||f.has(j))continue;f.add(j),$.push(j)}return $}function J$(n,f){if(!f)return;return M.resolve(n,f)}function jf(n,f){let $=M.resolve(n),j=M.resolve(f);return j===$||j.startsWith(`${$}${M.sep}`)}function An(n){return n instanceof Error?n.message:String(n)}function Jf(n){return typeof n==="object"&&n!==null&&"code"in n&&n.code==="ENOENT"}function A$(n,f){let $;try{$=W.statSync(n)}catch(A){if(Jf(A))return{path:n,lines:[],truncated:!1};return{path:n,lines:[],truncated:!1,error:An(A)}}if($.size===0)return{path:n,lines:[],truncated:!1};let j;try{let A=Math.min($.size,j$),J=$.size-A,T=Buffer.alloc(A);j=W.openSync(n,"r");let B=W.readSync(j,T,0,A,J),c=T.subarray(0,B).toString("utf-8").split(/\r?\n/);if(J>0&&c.length>0)c=c.slice(1);if(c.at(-1)==="")c=c.slice(0,-1);return{path:n,lines:c.slice(-f),truncated:J>0||c.length>f}}catch(A){return{path:n,lines:[],truncated:!1,error:An(A)}}finally{if(j!==void 0)W.closeSync(j)}}function Af(n,f,$,j){if($.length===0)return{path:n,lines:[],truncated:!1,error:`Refusing to read ${j} transcript path without a trusted root: ${n}`};let A=M.resolve(n);if(!$.some((O)=>jf(O,A)))return{path:n,lines:[],truncated:!1,error:`Refusing to read ${j} transcript path outside trusted roots: ${n}`};let J;try{J=W.lstatSync(A)}catch(O){if(Jf(O))return{path:n,lines:[],truncated:!1};return{path:n,lines:[],truncated:!1,error:An(O)}}if(J.isSymbolicLink())return{path:n,lines:[],truncated:!1,error:`Refusing to read symlink ${j} transcript path: ${n}`};if(!J.isFile())return{path:n,lines:[],truncated:!1,error:`Refusing to read non-file ${j} transcript path: ${n}`};let T,B;try{T=W.realpathSync(A),B=$.filter((O)=>W.existsSync(O)).map((O)=>W.realpathSync(O))}catch(O){return{path:n,lines:[],truncated:!1,error:An(O)}}if(!B.some((O)=>jf(O,T)))return{path:n,lines:[],truncated:!1,error:`Refusing to read ${j} transcript path outside trusted roots: ${n}`};return A$(A,f)}function Fn(n,f=240){let $;if(typeof n==="string")$=n;else $=JSON.stringify(n);return $.length>f?`${$.slice(0,f)}…`:$}function T$(n){if(typeof n==="string")return n;if(!Array.isArray(n))return"";return n.map((f)=>{if(!f||typeof f!=="object")return"";let $=f;if(typeof $.text==="string")return $.text;if($.type==="toolCall"||$.type==="tool_call")return`[tool: ${typeof $.name==="string"?$.name:typeof $.toolName==="string"?$.toolName:"tool"}${$.args===void 0?"":` ${Fn($.args)}`}]`;if($.type==="toolResult"||$.type==="tool_result")return`[tool result${$.result===void 0?"":`: ${Fn($.result)}`}]`;if($.content!==void 0)return Fn($.content);return""}).filter(Boolean).join(`
12
+ `)}function O$(n){if(!n||typeof n!=="object")return;let f=n,$=f.message&&typeof f.message==="object"?f.message:f,j=typeof $.role==="string"?$.role:void 0;if(!j)return;let A=T$($.content).trim();if(!A)return;return`${j}: ${A}`}function Tf(n,f,$){let j=Af(n,Math.max(f*4,f),$,"session"),A=[];if(j.error)A.push(`Session read failed for ${n}: ${j.error}`);let J=[],T=0;for(let B of j.lines){if(!B.trim())continue;try{let O=JSON.parse(B),c=O$(O);if(c)J.push(c)}catch{T++}}if(T>0)A.push(`Skipped ${T} malformed session tail line${T===1?"":"s"}.`);return{lines:J.slice(-f),warnings:A}}function Tn(n){let f=[];if(n.currentTool&&n.currentToolStartedAt!==void 0)f.push(`tool ${n.currentTool} ${k(Math.max(0,Date.now()-n.currentToolStartedAt))}`);else if(n.currentTool)f.push(`tool ${n.currentTool}`);if(n.currentPath)f.push(C(n.currentPath));if(n.turnCount!==void 0)f.push(`${n.turnCount} turns`);if(n.toolCount!==void 0)f.push(`${n.toolCount} tools`);if(n.tokens?.total)f.push(`${P(n.tokens.total)} tok`);let $=v(n.lastActivityAt,n.activityState);return $||f.length?[$,...f].filter(Boolean).join(" | "):void 0}function B$(n){if(n.mode==="single"&&n.currentAgent)return n.currentAgent;return n.mode}function Z$(n){if(n.length===0)return[];let f=["Foreground runs:"],$=[...n].sort((j,A)=>A.updatedAt-j.updatedAt);for(let j of $){let A=Tn({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}}:{}}),J=j.currentAgent?` | ${j.currentAgent}${j.currentIndex!==void 0?` #${j.currentIndex}`:""}`:"";f.push(`- ${j.runId} | running | ${B$(j)}${J}${A?` | ${A}`:""}`),f.push(` status: subagent({ action: "status", id: "${j.runId}" })`),f.push(" transcript: live in the expanded foreground result; persisted session transcript appears after completion when sessions are enabled."),f.push(...d(j.nestedChildren,{indent:" ",commandHints:!0,maxLines:12}))}return f}function Q$(n){if(n.length===0)return[];let f=["Async runs:"];for(let $ of n){let j=nf($),A=Tn($),J=$.cwd?C($.cwd):C($.asyncDir),T=$.pendingAppends?` | ${$.pendingAppends} pending append${$.pendingAppends===1?"":"s"}`:"";f.push(`- ${$.id} | ${$.state}${A?` | ${A}`:""} | ${$.mode} | ${j}${T} | ${J}`),f.push(` status: subagent({ action: "status", id: "${$.id}" })`),f.push(` transcript: subagent({ action: "status", id: "${$.id}", view: "transcript" })`);for(let L of $.steps){let Z=L.label?`${L.label} (${L.agent})`:L.agent,Y=L.phase?`[${L.phase}] `:"",q=Tn(L),S=s(L.model,L.thinking),g=[`${L.index}. ${Y}${Z}`,L.status,q,S].filter(Boolean);f.push(` ${g.join(" | ")}`);let G=M.join($.asyncDir,`output-${L.index}.log`);if(W.existsSync(G))f.push(` output: ${C(G)}`);if(L.sessionFile)f.push(` session: ${C(L.sessionFile)}`);if(L.status==="running"||L.recentOutput?.length||W.existsSync(G))f.push(` transcript: subagent({ action: "status", id: "${$.id}", index: ${L.index}, view: "transcript" })`);f.push(...d(L.children,{indent:" ",commandHints:!0,maxLines:12}))}let B=new Set($.steps.flatMap((L)=>L.children?.map((Z)=>Z.id)??[])),O=$.nestedChildren?.filter((L)=>!B.has(L.id))??[];if(f.push(...d(O,{indent:" ",commandHints:!0,maxLines:12})),$.error)f.push(` error: ${$.error}`);for(let L of $.nestedWarnings??[])f.push(` warning: ${L}`);let c=tn($);if(c)f.push(` output: ${C(c)}`);if($.sessionFile)f.push(` session: ${C($.sessionFile)}`)}return f}function u0(n,f={}){if(f.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 $;try{$=an(f.asyncDirRoot??Zn,{states:["queued","running"],sessionId:f.state?.currentSessionId??void 0,resultsDir:f.resultsDir??m,kill:f.kill,now:f.now})}catch(O){return{content:[{type:"text",text:O instanceof Error?O.message:String(O)}],isError:!0,details:{mode:"management",results:[]}}}let j=f.state?[...f.state.foregroundControls.values()]:[],A=j.length+$.length;if(A===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 J=[`Subagent fleet: ${A} active`,""],T=Z$(j);if(T.length)J.push(...T,"");let B=Q$($);if(B.length)J.push(...B,"");return J.push("Commands:"),J.push(' Refresh fleet: subagent({ action: "status", view: "fleet" })'),J.push(' Tail run transcript: subagent({ action: "status", id: "<run-id>", view: "transcript" })'),J.push(' Tail child transcript: subagent({ action: "status", id: "<run-id>", index: 0, view: "transcript" })'),{content:[{type:"text",text:J.join(`
13
+ `).trimEnd()}],details:{mode:"management",results:[]}}}function c$(n,f){if(n===void 0)return;if(!Number.isInteger(n))throw Error("Transcript index must be an integer.");if(n<0||n>=f.length)throw Error(`Transcript index ${n} is out of range for ${f.length} child step${f.length===1?"":"s"}.`);return n}function L$(n,f){let $=n.steps??[],j=c$(f.index,$);if(j===void 0){if(n.state==="running"&&typeof n.currentStep==="number"&&n.currentStep>=0&&n.currentStep<$.length)j=n.currentStep;else if($.length===1)j=0}let A=j!==void 0?$[j]:void 0,J=f.index===void 0&&$.length>1?`Tip: pass index to inspect a specific child transcript (${$.map((T,B)=>`${B}=${T.agent}`).join(", ")}).`:void 0;return{index:j,step:A,hint:J}}function q$(n,f,$){if(f===void 0||!$)return;let j=s($.model,$.thinking);return[`${n==="parallel"?"Agent":"Step"}: ${f} (${$.agent})`,$.status,Tn($),j,$.error?`error: ${$.error}`:void 0].filter(Boolean).join(" | ")}function Vn(n,f){let $=[];for(let j of f.outputPaths)$.push(`Output: ${j}`);if(f.sessionFile)$.push(`Session: ${f.sessionFile}`);if(f.eventsPath)$.push(`Events: ${f.eventsPath}`);if(f.logPath)$.push(`Log: ${f.logPath}`);if(f.resultPath)$.push(`Result: ${f.resultPath}`);if(!$.length)return;n.push("Artifacts:");for(let j of $)n.push(` ${j}`)}function On(n,f,$,j){if(n.push(`${f}${j?" (tail truncated)":""}:`),$.length===0){n.push(" (no transcript lines available yet)");return}for(let A of $)n.push(` ${A}`)}function X$(n,f,$={}){let j=Gn($.lines),A=L$(n,$),J=A.index!==void 0?M.join(f,`output-${A.index}.log`):void 0,T=J$(f,n.outputFile),B=M.join(f,`subagent-log-${n.runId}.md`),O=A.index!==void 0?$f([J,T&&J&&M.resolve(T)===M.resolve(J)?T:void 0]):$f([T]),c=A.index!==void 0?A.step?.sessionFile:n.sessionFile,L=M.join(f,"events.jsonl"),Z=[`Run: ${n.runId}`,`State: ${n.state}`,`Mode: ${n.mode}`,q$(n.mode,A.index,A.step),A.hint].filter((G)=>Boolean(G));Vn(Z,{outputPaths:O,sessionFile:c,eventsPath:W.existsSync(L)?L:void 0,logPath:W.existsSync(B)?B:void 0});let Y=[],q=[],S="Transcript tail",g=!1;for(let G of O){let x=Af(G,j,[f],"output");if(x.error)Y.push(`Output read failed for ${x.path}: ${x.error}`);if(x.lines.length===0)continue;q=x.lines,S=`Transcript tail from ${x.path}`,g=x.truncated;break}if(q.length===0&&A.step?.recentOutput?.length)q=A.step.recentOutput.slice(-j),S="Recent output from status.json";if(q.length===0&&c){let G=Tf(c,j,$.sessionRoots??[]);if(q=G.lines,Y.push(...G.warnings),q.length>0)S=`Session transcript tail from ${c}`}if(Y.length){Z.push("Warnings:");for(let G of Y)Z.push(` ${G}`)}return On(Z,S,q,g),Z.join(`
14
+ `)}function i0(n,f={}){if(n.asyncDir){let J=p(n.asyncDir);if(J)return X$(J,n.asyncDir,f)}let $=Gn(f.lines),j=[`Nested run: ${n.id}`,`State: ${n.state}`,n.mode?`Mode: ${n.mode}`:void 0,n.agent?`Agent: ${n.agent}`:n.agents?.length?`Agents: ${n.agents.join(", ")}`:void 0].filter((J)=>Boolean(J));if(Vn(j,{outputPaths:[],sessionFile:n.sessionFile}),!n.sessionFile)return On(j,"Transcript tail",[],!1),j.join(`
15
+ `);let A=Tf(n.sessionFile,$,f.sessionRoots??[]);if(A.warnings.length){j.push("Warnings:");for(let J of A.warnings)j.push(` ${J}`)}return On(j,`Session transcript tail from ${n.sessionFile}`,A.lines,!1),j.join(`
16
+ `)}function l0(n,f,$={}){let j=Gn($.lines),A=n.runId??n.id??M.basename(f,".json"),J=Array.isArray(n.results)?n.results:n.agent?[{agent:n.agent,output:n.output,summary:n.summary,sessionFile:n.sessionFile,state:n.state,success:n.success,exitCode:n.exitCode}]:[],T=$.index;if(T!==void 0&&!Number.isInteger(T))throw Error("Transcript index must be an integer.");if(T===void 0&&J.length===1)T=0;if(T!==void 0&&(T<0||T>=J.length))throw Error(`Transcript index ${T} is out of range for ${J.length} result child${J.length===1?"":"ren"}.`);let B=T!==void 0?J[T]:void 0,O=T!==void 0?B?.output??B?.summary??(J.length===1?n.output??n.summary:void 0)??"":n.output??n.summary??"",c=O.split(/\r?\n/).slice(-j),L=B?.sessionFile??n.sessionFile,Z=[`Run: ${A}`,`State: ${n.state??(n.success?"complete":"failed")}`,T!==void 0&&B?`Child: ${T} (${B.agent??"subagent"})`:void 0,T===void 0&&J.length>1?`Tip: pass index to inspect a specific child transcript (${J.map((Y,q)=>`${q}=${Y.agent??"subagent"}`).join(", ")}).`:void 0].filter((Y)=>Boolean(Y));return Vn(Z,{outputPaths:[],sessionFile:L,resultPath:f}),On(Z,"Result transcript tail",c.filter((Y)=>Y.trim()),O.split(/\r?\n/).length>j),Z.join(`
17
+ `)}export{u0 as inspectSubagentFleet,i0 as formatNestedRunTranscript,X$ as formatAsyncRunTranscript,l0 as formatAsyncResultTranscript};