@duckmind/dm-darwin-x64 0.48.5 → 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 (97) hide show
  1. package/dm +0 -0
  2. package/extensions/.dm-extensions.json +159 -220
  3. package/extensions/dm-9router-ext/package.json +0 -6
  4. package/extensions/dm-9router-ext/src/index.js +1 -1
  5. package/extensions/dm-ask-user/package.json +0 -4
  6. package/extensions/dm-caveman/extensions/caveman.js +29 -0
  7. package/extensions/dm-caveman/package.json +20 -0
  8. package/extensions/dm-cli-anything/index.js +5 -5
  9. package/extensions/dm-cli-anything/package.json +0 -7
  10. package/extensions/dm-cli-anything/skills/cli-anything/SKILL.md +1 -3
  11. package/extensions/dm-context/package.json +0 -1
  12. package/extensions/dm-cua/package.json +0 -7
  13. package/extensions/dm-fff/package.json +0 -6
  14. package/extensions/dm-goal/package.json +0 -8
  15. package/extensions/dm-grill-me/index.js +2 -2
  16. package/extensions/dm-grill-me/package.json +0 -7
  17. package/extensions/dm-image2/package.json +0 -8
  18. package/extensions/dm-subagents/.m/artifacts/shell/shell_output_1783845384621_9cf9262bf674.txt +1336 -0
  19. package/extensions/dm-subagents/.m/artifacts/shell/shell_output_1783846154938_6a41cefee0bf.txt +1336 -0
  20. package/extensions/dm-subagents/package.json +0 -11
  21. package/extensions/dm-subagents/src/extension/doctor.js +10 -10
  22. package/extensions/dm-subagents/src/extension/fanout-child.js +97 -97
  23. package/extensions/dm-subagents/src/extension/index.js +121 -121
  24. package/extensions/dm-subagents/src/extension/rpc.js +5 -5
  25. package/extensions/dm-subagents/src/extension/schemas.js +1 -1
  26. package/extensions/dm-subagents/src/extension/tool-description.js +2 -2
  27. package/extensions/dm-subagents/src/intercom/native-supervisor-channel.js +5 -5
  28. package/extensions/dm-subagents/src/runs/background/async-execution.js +19 -19
  29. package/extensions/dm-subagents/src/runs/background/async-job-tracker.js +9 -9
  30. package/extensions/dm-subagents/src/runs/background/async-resume.js +5 -5
  31. package/extensions/dm-subagents/src/runs/background/async-status.js +8 -8
  32. package/extensions/dm-subagents/src/runs/background/fleet-view.js +13 -13
  33. package/extensions/dm-subagents/src/runs/background/result-watcher.js +5 -5
  34. package/extensions/dm-subagents/src/runs/background/run-id-resolver.js +3 -3
  35. package/extensions/dm-subagents/src/runs/background/run-status.js +19 -19
  36. package/extensions/dm-subagents/src/runs/background/stale-run-reconciler.js +7 -7
  37. package/extensions/dm-subagents/src/runs/background/subagent-runner.js +35 -35
  38. package/extensions/dm-subagents/src/runs/background/wait.js +7 -7
  39. package/extensions/dm-subagents/src/runs/foreground/chain-execution.js +32 -32
  40. package/extensions/dm-subagents/src/runs/foreground/execution.js +26 -26
  41. package/extensions/dm-subagents/src/runs/foreground/subagent-executor.js +96 -96
  42. package/extensions/dm-subagents/src/runs/shared/dm-args.js +1 -1
  43. package/extensions/dm-subagents/src/runs/shared/nested-events.js +6 -6
  44. package/extensions/dm-subagents/src/runs/shared/subagent-prompt-runtime.js +13 -13
  45. package/extensions/dm-subagents/src/shared/fork-context.js +4 -4
  46. package/extensions/dm-tasks/package.json +0 -7
  47. package/extensions/dm-usage/package.json +0 -7
  48. package/extensions/greedysearch-dm/bin/cdp-greedy.mjs +1 -8
  49. package/extensions/greedysearch-dm/bin/gschrome.mjs +3 -3
  50. package/extensions/greedysearch-dm/bin/launch-visible.mjs +3 -3
  51. package/extensions/greedysearch-dm/bin/launch.mjs +4 -4
  52. package/extensions/greedysearch-dm/bin/search.mjs +103 -103
  53. package/extensions/greedysearch-dm/extractors/consensus.mjs +35 -35
  54. package/extensions/greedysearch-dm/extractors/gemini.mjs +38 -38
  55. package/extensions/greedysearch-dm/extractors/logically.mjs +35 -35
  56. package/extensions/greedysearch-dm/package.json +0 -10
  57. package/extensions/greedysearch-dm/src/search/chrome.mjs +23 -23
  58. package/extensions/greedysearch-dm/src/search/fetch-source.mjs +35 -35
  59. package/extensions/greedysearch-dm/src/search/research.mjs +61 -61
  60. package/extensions/greedysearch-dm/src/search/synthesis-runner.mjs +4 -4
  61. package/package.json +1 -1
  62. package/extensions/dm-9router-ext/README.md +0 -142
  63. package/extensions/dm-9router-ext/tsconfig.json +0 -17
  64. package/extensions/dm-ask-user/README.md +0 -226
  65. package/extensions/dm-cli-anything/LICENSE +0 -201
  66. package/extensions/dm-cli-anything/README.md +0 -33
  67. package/extensions/dm-cli-anything/vendor/UPSTREAM.md +0 -14
  68. package/extensions/dm-context/AGENTS.md +0 -41
  69. package/extensions/dm-context/README.md +0 -18
  70. package/extensions/dm-context/tsconfig.json +0 -16
  71. package/extensions/dm-cua/README.md +0 -24
  72. package/extensions/dm-fff/README.md +0 -36
  73. package/extensions/dm-fff/tsconfig.json +0 -13
  74. package/extensions/dm-goal/CHANGELOG.md +0 -12
  75. package/extensions/dm-goal/LICENSE +0 -21
  76. package/extensions/dm-goal/README.md +0 -29
  77. package/extensions/dm-goal/tsconfig.json +0 -15
  78. package/extensions/dm-grill-me/DESIGN.md +0 -301
  79. package/extensions/dm-grill-me/LICENSE +0 -21
  80. package/extensions/dm-grill-me/README.md +0 -82
  81. package/extensions/dm-grill-me/tsconfig.json +0 -17
  82. package/extensions/dm-image2/README.md +0 -33
  83. package/extensions/dm-subagents/CHANGELOG.md +0 -1211
  84. package/extensions/dm-subagents/README.md +0 -29
  85. package/extensions/dm-subagents/banner.png +0 -0
  86. package/extensions/dm-subagents/biome.json +0 -26
  87. package/extensions/dm-subagents/tsconfig.json +0 -18
  88. package/extensions/dm-tasks/LICENSE +0 -21
  89. package/extensions/dm-tasks/README.md +0 -30
  90. package/extensions/dm-tasks/biome.json +0 -26
  91. package/extensions/dm-tasks/tsconfig.json +0 -14
  92. package/extensions/dm-usage/LICENSE +0 -21
  93. package/extensions/dm-usage/README.md +0 -29
  94. package/extensions/dm-usage/insights-screenshot.png +0 -0
  95. package/extensions/dm-usage/screenshot.png +0 -0
  96. package/extensions/greedysearch-dm/LICENSE +0 -21
  97. package/extensions/greedysearch-dm/README.md +0 -222
@@ -1,11 +1,11 @@
1
- import*as d from"node:fs";import*as C from"node:path";import*as _ from"node:fs";import*as m from"node:path";var v=new Map;function j$($){return $ instanceof Error?$.message:String($)}function z$($){return typeof $==="object"&&$!==null&&"code"in $&&$.code==="ENOENT"}function A$($){let f=m.join($,"status.json"),j;try{j=_.statSync(f)}catch(X){if(z$(X))return null;throw Error(`Failed to inspect async status file '${f}': ${j$(X)}`,{cause:X instanceof Error?X:void 0})}let J=v.get(f);if(J&&J.mtime===j.mtimeMs)return J.status;let Q;try{Q=_.readFileSync(f,"utf-8")}catch(X){if(z$(X))return null;throw Error(`Failed to read async status file '${f}': ${j$(X)}`,{cause:X instanceof Error?X:void 0})}let Z;try{Z=JSON.parse(Q)}catch(X){throw Error(`Failed to parse async status file '${f}': ${j$(X)}`,{cause:X instanceof Error?X:void 0})}if(v.set(f,{mtime:j.mtimeMs,status:Z}),v.size>50){let X=v.keys().next().value;if(X)v.delete(X)}return Z}import*as R from"node:os";import*as D from"node:path";var F$="subagent:async-complete",T$="subagent:control-event",_$="subagent:control-intercom",C$="subagent:result-intercom";function n($){return $.trim().replace(/[^A-Za-z0-9._-]+/g,"-").replace(/^-+|-+$/g,"")||"unknown"}function e$($){let f=$?.env??process.env,j=$&&Object.hasOwn($,"getuid")?$.getuid:process.getuid?.bind(process);if(typeof j==="function")return`uid-${j()}`;for(let X of["USERNAME","USER","LOGNAME"]){let B=f[X];if(B)return`user-${n(B)}`}let J=$&&Object.hasOwn($,"userInfo")?$.userInfo:R.userInfo;try{let X=J?.().username;if(X)return`user-${n(X)}`}catch{}let Q=f.USERPROFILE??f.HOME;if(Q)return`home-${n(Q)}`;let Z=$&&Object.hasOwn($,"homedir")?$.homedir:R.homedir;try{let X=Z?.();if(X)return`home-${n(X)}`}catch{}return"shared"}var x=D.join(R.tmpdir(),`dm-subagents-${e$()}`),I=D.join(x,"async-subagent-results"),u=D.join(x,"async-subagent-runs"),t$=D.join(x,"chain-runs"),Zf=D.join(x,"artifacts");function P($){if($<1000)return`${$}ms`;if($<60000)return`${($/1000).toFixed(1)}s`;return`${Math.floor($/60000)}m${Math.floor($%60000/1000)}s`}import{randomUUID as Y0}from"node:crypto";import*as F from"node:fs";import*as V from"node:path";import*as S$ from"node:path";var $0=128,f0=4;function J$($){return typeof $==="string"&&$.length>0&&$.length<=$0&&!S$.isAbsolute($)&&!$.includes("/")&&!$.includes("\\")&&!$.includes("..")}function b$($){return typeof $==="number"&&Number.isFinite($)?$:void 0}function E$($,f){return typeof $==="string"&&$.length>0?$.slice(0,f):void 0}function x$($){if(!Array.isArray($))return[];return $.map((f)=>{if(!f||typeof f!=="object")return;let j=f;if(!J$(j.runId))return;return{runId:j.runId,...b$(j.stepIndex)!==void 0?{stepIndex:b$(j.stepIndex)}:{},...E$(j.agent,128)?{agent:E$(j.agent,128)}:{}}}).filter((f)=>Boolean(f)).slice(0,f0)}import*as w from"node:path";import{fileURLToPath as y$}from"node:url";import*as S from"node:os";import*as b from"node:path";var _f=b.join(S.homedir(),".config","mcp","mcp.json"),Cf={cursor:[b.join(S.homedir(),".cursor","mcp.json")],"claude-code":[b.join(S.homedir(),".claude","mcp.json"),b.join(S.homedir(),".claude.json"),b.join(S.homedir(),".claude","claude_desktop_config.json")],"claude-desktop":[b.join(S.homedir(),"Library","Application Support","Claude","claude_desktop_config.json")],codex:[b.join(S.homedir(),".codex","config.json")],windsurf:[b.join(S.homedir(),".windsurf","mcp.json")],vscode:[".vscode/mcp.json"]};import{Compile as Sf}from"typebox/compile";var df=w.join(w.dirname(y$(import.meta.url)),"subagent-prompt-runtime.ts"),of=w.join(w.dirname(y$(import.meta.url)),"..","..","extension","fanout-child.ts");import*as J0 from"node:fs";import*as N from"node:path";var Z0=[10,25,50,100,200,500,1000,2000,4000],Q0=new Set(["EACCES","EBUSY","EPERM"]),I$=typeof SharedArrayBuffer<"u"?new SharedArrayBuffer(4):void 0,N$=I$?new Int32Array(I$):void 0;function q0($){if($<=0)return;if(N$)try{Atomics.wait(N$,0,0,$);return}catch{}let f=Date.now()+$;while(Date.now()<f);}function X0($){let f=$?.code;return typeof f==="string"&&Q0.has(f)}function B0($,f,j,J,Q){for(let Z=0;;Z++)try{$.renameSync(f,j);return}catch(X){let B=J[Z];if(B===void 0||!X0(X))throw X;Q(B)}}function K0($={}){let f=$.fs??J0,j=$.now??Date.now,J=$.pid??process.pid,Q=$.random??Math.random,X=$.retryRenameErrors??process.platform==="win32"?$.retryDelaysMs??Z0:[],B=$.wait??q0;return(K,H)=>{f.mkdirSync(N.dirname(K),{recursive:!0});let U=N.join(N.dirname(K),`.${N.basename(K)}.${J}.${j()}.${Q().toString(36).slice(2)}.tmp`);try{f.writeFileSync(U,JSON.stringify(H,null,2),"utf-8"),B0(f,U,K,X,B)}finally{f.rmSync(U,{force:!0})}}}var k=K0();var p=V.join(x,"nested-subagent-events"),H0="route.json",W0="registry.json",B$=65536,Z$=12,c=16,Q$=3;function r($){return J$($)}function O0($,f){if(!r(f))throw Error(`${$} must be a non-empty safe id token.`)}function R$($,f){O0($,f)}function q$($,f){let j=V.resolve($),J=V.resolve(f);return J===j||J.startsWith(`${j}${V.sep}`)}function P$($){return V.dirname(V.resolve($.eventSink))}function a($){if(R$("rootRunId",$.rootRunId),R$("capabilityToken",$.capabilityToken),!q$(p,$.eventSink))throw Error("Nested event sink is outside the subagent nested event root.");if(!q$(p,$.controlInbox))throw Error("Nested control inbox is outside the subagent nested event root.");if(P$($)!==V.dirname(V.resolve($.controlInbox)))throw Error("Nested event sink and control inbox must share one route root.")}function w$($,f){if(!f.asyncDir)return;let j=V.resolve(f.asyncDir),J=V.resolve(x,"nested-subagent-runs",$,f.id),Q=V.relative(J,j);return j===J||!Q.startsWith("..")&&!V.isAbsolute(Q)?j:void 0}function Y($){return typeof $==="number"&&Number.isFinite($)?$:void 0}function O($,f=512){return typeof $==="string"&&$.length>0?$.slice(0,f):void 0}function G0($){if(!$||typeof $!=="object")return;let f=$,j=Y(f.input),J=Y(f.output),Q=Y(f.total);return j!==void 0&&J!==void 0&&Q!==void 0?{input:j,output:J,total:Q}:void 0}function U0($){if(!$||typeof $!=="object")return;let f=$,j=Y(f.inputTokens),J=Y(f.outputTokens),Q=Y(f.costUsd);return j!==void 0&&J!==void 0&&Q!==void 0?{inputTokens:j,outputTokens:J,costUsd:Q}:void 0}function i($){if(!$||typeof $!=="object")return;let f=$,j=Y(f.maxTurns),J=Y(f.graceTurns),Q=Y(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,...Y(f.wrapUpRequestedAtTurn)!==void 0?{wrapUpRequestedAtTurn:Y(f.wrapUpRequestedAtTurn)}:{},...Y(f.exceededAtTurn)!==void 0?{exceededAtTurn:Y(f.exceededAtTurn)}:{}}}function V0($,f){return $==="queued"||$==="running"||$==="complete"||$==="failed"||$==="paused"?$:f}function L0($,f){if(!$||typeof $!=="object")return;let j=$,J=O(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,...O(j.sessionFile,2048)?{sessionFile:O(j.sessionFile,2048)}:{},...j.activityState==="active_long_running"||j.activityState==="needs_attention"?{activityState:j.activityState}:{},...Y(j.lastActivityAt)!==void 0?{lastActivityAt:Y(j.lastActivityAt)}:{},...O(j.currentTool,128)?{currentTool:O(j.currentTool,128)}:{},...Y(j.currentToolStartedAt)!==void 0?{currentToolStartedAt:Y(j.currentToolStartedAt)}:{},...O(j.currentPath,2048)?{currentPath:O(j.currentPath,2048)}:{},...Y(j.turnCount)!==void 0?{turnCount:Y(j.turnCount)}:{},...Y(j.toolCount)!==void 0?{toolCount:Y(j.toolCount)}:{},...Y(j.startedAt)!==void 0?{startedAt:Y(j.startedAt)}:{},...Y(j.endedAt)!==void 0?{endedAt:Y(j.endedAt)}:{},...O(j.error,1024)?{error:O(j.error,1024)}:{},...j.timedOut===!0?{timedOut:!0}:{},...i(j.turnBudget)?{turnBudget:i(j.turnBudget)}:{},...j.turnBudgetExceeded===!0?{turnBudgetExceeded:!0}:{},...j.wrapUpRequested===!0?{wrapUpRequested:!0}:{},...f<Q$&&Array.isArray(j.children)?{children:j.children.map((Z)=>s(Z,f+1)).filter((Z)=>Boolean(Z)).slice(0,c)}:{}}}function s($,f=0){if(!$||typeof $!=="object")return;let j=$;if(!r(j.id)||!r(j.parentRunId))return;let J=x$(j.path),Q=Array.isArray(j.steps)?j.steps.map((B)=>L0(B,f+1)).filter((B)=>Boolean(B)).slice(0,Z$):void 0,Z=G0(j.totalTokens),X=U0(j.totalCost);return{id:j.id,parentRunId:j.parentRunId,...Y(j.parentStepIndex)!==void 0?{parentStepIndex:Y(j.parentStepIndex)}:{},...O(j.parentAgent,128)?{parentAgent:O(j.parentAgent,128)}:{},depth:Math.min(Math.max(0,Y(j.depth)??0),Q$),path:J,state:V0(j.state,"running"),...O(j.asyncDir,2048)?{asyncDir:O(j.asyncDir,2048)}:{},...Y(j.pid)!==void 0&&Y(j.pid)>0&&Number.isInteger(Y(j.pid))?{pid:Y(j.pid)}:{},...O(j.sessionId,256)?{sessionId:O(j.sessionId,256)}:{},...O(j.sessionFile,2048)?{sessionFile:O(j.sessionFile,2048)}:{},...O(j.intercomTarget,256)?{intercomTarget:O(j.intercomTarget,256)}:{},...O(j.ownerIntercomTarget,256)?{ownerIntercomTarget:O(j.ownerIntercomTarget,256)}:{},...O(j.leafIntercomTarget,256)?{leafIntercomTarget:O(j.leafIntercomTarget,256)}:{},...j.ownerState==="live"||j.ownerState==="gone"||j.ownerState==="unknown"?{ownerState:j.ownerState}:{},...O(j.controlInbox,2048)?{controlInbox:O(j.controlInbox,2048)}:{},...O(j.capabilityToken,128)?{capabilityToken:O(j.capabilityToken,128)}:{},...j.mode==="single"||j.mode==="parallel"||j.mode==="chain"?{mode:j.mode}:{},...O(j.agent,128)?{agent:O(j.agent,128)}:{},...Array.isArray(j.agents)?{agents:j.agents.map((B)=>O(B,128)).filter((B)=>Boolean(B)).slice(0,Z$)}:{},...Y(j.currentStep)!==void 0?{currentStep:Y(j.currentStep)}:{},...Y(j.chainStepCount)!==void 0?{chainStepCount:Y(j.chainStepCount)}:{},...j.activityState==="active_long_running"||j.activityState==="needs_attention"?{activityState:j.activityState}:{},...Y(j.lastActivityAt)!==void 0?{lastActivityAt:Y(j.lastActivityAt)}:{},...O(j.currentTool,128)?{currentTool:O(j.currentTool,128)}:{},...Y(j.currentToolStartedAt)!==void 0?{currentToolStartedAt:Y(j.currentToolStartedAt)}:{},...O(j.currentPath,2048)?{currentPath:O(j.currentPath,2048)}:{},...Y(j.turnCount)!==void 0?{turnCount:Y(j.turnCount)}:{},...Y(j.toolCount)!==void 0?{toolCount:Y(j.toolCount)}:{},...Z?{totalTokens:Z}:{},...X?{totalCost:X}:{},...Y(j.startedAt)!==void 0?{startedAt:Y(j.startedAt)}:{},...Y(j.endedAt)!==void 0?{endedAt:Y(j.endedAt)}:{},...Y(j.lastUpdate)!==void 0?{lastUpdate:Y(j.lastUpdate)}:{},...Y(j.timeoutMs)!==void 0?{timeoutMs:Y(j.timeoutMs)}:{},...Y(j.deadlineAt)!==void 0?{deadlineAt:Y(j.deadlineAt)}:{},...j.timedOut===!0?{timedOut:!0}:{},...i(j.turnBudget)?{turnBudget:i(j.turnBudget)}:{},...j.turnBudgetExceeded===!0?{turnBudgetExceeded:!0}:{},...j.wrapUpRequested===!0?{wrapUpRequested:!0}:{},...O(j.error,1024)?{error:O(j.error,1024)}:{},...Q&&Q.length>0?{steps:Q}:{},...f<Q$&&Array.isArray(j.children)?{children:j.children.map((B)=>s(B,f+1)).filter((B)=>Boolean(B)).slice(0,c)}:{}}}function X$($,f){if(Buffer.byteLength($,"utf-8")>B$)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(!r(J.parentRunId))return;let Q=Y(J.ts);if(Q===void 0)return;let Z=s(J.child);if(!Z||Z.id===f.rootRunId)return;let X={...Z,controlInbox:f.controlInbox,capabilityToken:f.capabilityToken,ownerState:Z.ownerState??"unknown"};return{type:J.type,ts:Q,rootRunId:f.rootRunId,parentRunId:J.parentRunId,...Y(J.parentStepIndex)!==void 0?{parentStepIndex:Y(J.parentStepIndex)}:{},capabilityToken:f.capabilityToken,child:X}}function M0($,f){if(!$.includes(`
2
- `)){let j=X$($.trim(),f);return j?[j]:[]}return $.split(`
1
+ import*as o from"node:fs";import*as C from"node:path";import*as _ from"node:fs";import*as m from"node:path";var c=new Map;function J$($){return $ instanceof Error?$.message:String($)}function A$($){return typeof $==="object"&&$!==null&&"code"in $&&$.code==="ENOENT"}function F$($){let j=m.join($,"status.json"),f;try{f=_.statSync(j)}catch(q){if(A$(q))return null;throw Error(`Failed to inspect async status file '${j}': ${J$(q)}`,{cause:q instanceof Error?q:void 0})}let J=c.get(j);if(J&&J.mtime===f.mtimeMs)return J.status;let Q;try{Q=_.readFileSync(j,"utf-8")}catch(q){if(A$(q))return null;throw Error(`Failed to read async status file '${j}': ${J$(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 '${j}': ${J$(q)}`,{cause:q instanceof Error?q:void 0})}if(c.set(j,{mtime:f.mtimeMs,status:Z}),c.size>50){let q=c.keys().next().value;if(q)c.delete(q)}return Z}import*as D from"node:os";import*as P from"node:path";var T$="subagent:async-complete",_$="subagent:control-event",C$="subagent:control-intercom",b$="subagent:result-intercom";function u($){return $.trim().replace(/[^A-Za-z0-9._-]+/g,"-").replace(/^-+|-+$/g,"")||"unknown"}function t$($){let j=$?.env??process.env,f=$&&Object.hasOwn($,"getuid")?$.getuid:process.getuid?.bind(process);if(typeof f==="function")return`uid-${f()}`;for(let q of["USERNAME","USER","LOGNAME"]){let B=j[q];if(B)return`user-${u(B)}`}let J=$&&Object.hasOwn($,"userInfo")?$.userInfo:D.userInfo;try{let q=J?.().username;if(q)return`user-${u(q)}`}catch{}let Q=j.USERPROFILE??j.HOME;if(Q)return`home-${u(Q)}`;let Z=$&&Object.hasOwn($,"homedir")?$.homedir:D.homedir;try{let q=Z?.();if(q)return`home-${u(q)}`}catch{}return"shared"}var x=P.join(D.tmpdir(),`dm-subagents-${t$()}`),N=P.join(x,"async-subagent-results"),l=P.join(x,"async-subagent-runs"),$0=P.join(x,"chain-runs"),qj=P.join(x,"artifacts");function w($){if($<1000)return`${$}ms`;if($<60000)return`${($/1000).toFixed(1)}s`;return`${Math.floor($/60000)}m${Math.floor($%60000/1000)}s`}import{randomUUID as W0}from"node:crypto";import*as F from"node:fs";import*as V from"node:path";import*as y$ from"node:path";var j0=128,f0=4;function Z$($){return typeof $==="string"&&$.length>0&&$.length<=j0&&!y$.isAbsolute($)&&!$.includes("/")&&!$.includes("\\")&&!$.includes("..")}function E$($){return typeof $==="number"&&Number.isFinite($)?$:void 0}function S$($,j){return typeof $==="string"&&$.length>0?$.slice(0,j):void 0}function x$($){if(!Array.isArray($))return[];return $.map((j)=>{if(!j||typeof j!=="object")return;let f=j;if(!Z$(f.runId))return;return{runId:f.runId,...E$(f.stepIndex)!==void 0?{stepIndex:E$(f.stepIndex)}:{},...S$(f.agent,128)?{agent:S$(f.agent,128)}:{}}}).filter((j)=>Boolean(j)).slice(0,f0)}import*as k from"node:fs";import*as E from"node:path";import{fileURLToPath as Z0}from"node:url";import*as y from"node:os";import*as b from"node:path";var bj=b.join(y.homedir(),".config","mcp","mcp.json"),Ej={cursor:[b.join(y.homedir(),".cursor","mcp.json")],"claude-code":[b.join(y.homedir(),".claude","mcp.json"),b.join(y.homedir(),".claude.json"),b.join(y.homedir(),".claude","claude_desktop_config.json")],"claude-desktop":[b.join(y.homedir(),"Library","Application Support","Claude","claude_desktop_config.json")],codex:[b.join(y.homedir(),".codex","config.json")],windsurf:[b.join(y.homedir(),".windsurf","mcp.json")],vscode:[".vscode/mcp.json"]};import{Compile as xj}from"typebox/compile";function I$($,j){let f=Z0($),J=E.extname(f),Q=[".js",".mjs",".cjs",".ts",".mts",".cts"].includes(J)?J:".ts",Z=E.dirname(f);while(!k.existsSync(E.join(Z,"package.json"))){let q=E.dirname(Z);if(q===Z)throw Error(`Unable to resolve dm-subagents package root from ${f}`);Z=q}return E.join(Z,`${j}${Q}`)}var nj=I$(import.meta.url,E.join("src","runs","shared","subagent-prompt-runtime")),uj=I$(import.meta.url,E.join("src","extension","fanout-child"));import*as Q0 from"node:fs";import*as R from"node:path";var q0=[10,25,50,100,200,500,1000,2000,4000],X0=new Set(["EACCES","EBUSY","EPERM"]),N$=typeof SharedArrayBuffer<"u"?new SharedArrayBuffer(4):void 0,R$=N$?new Int32Array(N$):void 0;function B0($){if($<=0)return;if(R$)try{Atomics.wait(R$,0,0,$);return}catch{}let j=Date.now()+$;while(Date.now()<j);}function K0($){let j=$?.code;return typeof j==="string"&&X0.has(j)}function Y0($,j,f,J,Q){for(let Z=0;;Z++)try{$.renameSync(j,f);return}catch(q){let B=J[Z];if(B===void 0||!K0(q))throw q;Q(B)}}function H0($={}){let j=$.fs??Q0,f=$.now??Date.now,J=$.pid??process.pid,Q=$.random??Math.random,q=$.retryRenameErrors??process.platform==="win32"?$.retryDelaysMs??q0:[],B=$.wait??B0;return(K,H)=>{j.mkdirSync(R.dirname(K),{recursive:!0});let U=R.join(R.dirname(K),`.${R.basename(K)}.${J}.${f()}.${Q().toString(36).slice(2)}.tmp`);try{j.writeFileSync(U,JSON.stringify(H,null,2),"utf-8"),Y0(j,U,K,q,B)}finally{j.rmSync(U,{force:!0})}}}var g=H0();var r=V.join(x,"nested-subagent-events"),O0="route.json",G0="registry.json",K$=65536,Q$=12,h=16,q$=3;function i($){return Z$($)}function U0($,j){if(!i(j))throw Error(`${$} must be a non-empty safe id token.`)}function D$($,j){U0($,j)}function X$($,j){let f=V.resolve($),J=V.resolve(j);return J===f||J.startsWith(`${f}${V.sep}`)}function w$($){return V.dirname(V.resolve($.eventSink))}function s($){if(D$("rootRunId",$.rootRunId),D$("capabilityToken",$.capabilityToken),!X$(r,$.eventSink))throw Error("Nested event sink is outside the subagent nested event root.");if(!X$(r,$.controlInbox))throw Error("Nested control inbox is outside the subagent nested event root.");if(w$($)!==V.dirname(V.resolve($.controlInbox)))throw Error("Nested event sink and control inbox must share one route root.")}function k$($,j){if(!j.asyncDir)return;let f=V.resolve(j.asyncDir),J=V.resolve(x,"nested-subagent-runs",$,j.id),Q=V.relative(J,f);return f===J||!Q.startsWith("..")&&!V.isAbsolute(Q)?f:void 0}function Y($){return typeof $==="number"&&Number.isFinite($)?$:void 0}function O($,j=512){return typeof $==="string"&&$.length>0?$.slice(0,j):void 0}function V0($){if(!$||typeof $!=="object")return;let j=$,f=Y(j.input),J=Y(j.output),Q=Y(j.total);return f!==void 0&&J!==void 0&&Q!==void 0?{input:f,output:J,total:Q}:void 0}function L0($){if(!$||typeof $!=="object")return;let j=$,f=Y(j.inputTokens),J=Y(j.outputTokens),Q=Y(j.costUsd);return f!==void 0&&J!==void 0&&Q!==void 0?{inputTokens:f,outputTokens:J,costUsd:Q}:void 0}function a($){if(!$||typeof $!=="object")return;let j=$,f=Y(j.maxTurns),J=Y(j.graceTurns),Q=Y(j.turnCount),Z=j.outcome==="within-budget"||j.outcome==="wrap-up-requested"||j.outcome==="exceeded"?j.outcome:void 0;if(f===void 0||J===void 0||Q===void 0||!Z)return;return{maxTurns:f,graceTurns:J,turnCount:Q,outcome:Z,...Y(j.wrapUpRequestedAtTurn)!==void 0?{wrapUpRequestedAtTurn:Y(j.wrapUpRequestedAtTurn)}:{},...Y(j.exceededAtTurn)!==void 0?{exceededAtTurn:Y(j.exceededAtTurn)}:{}}}function M0($,j){return $==="queued"||$==="running"||$==="complete"||$==="failed"||$==="paused"?$:j}function z0($,j){if(!$||typeof $!=="object")return;let f=$,J=O(f.agent,128);if(!J)return;let Q=f.status==="pending"||f.status==="running"||f.status==="complete"||f.status==="completed"||f.status==="failed"||f.status==="paused"?f.status:"pending";return{agent:J,status:Q,...O(f.sessionFile,2048)?{sessionFile:O(f.sessionFile,2048)}:{},...f.activityState==="active_long_running"||f.activityState==="needs_attention"?{activityState:f.activityState}:{},...Y(f.lastActivityAt)!==void 0?{lastActivityAt:Y(f.lastActivityAt)}:{},...O(f.currentTool,128)?{currentTool:O(f.currentTool,128)}:{},...Y(f.currentToolStartedAt)!==void 0?{currentToolStartedAt:Y(f.currentToolStartedAt)}:{},...O(f.currentPath,2048)?{currentPath:O(f.currentPath,2048)}:{},...Y(f.turnCount)!==void 0?{turnCount:Y(f.turnCount)}:{},...Y(f.toolCount)!==void 0?{toolCount:Y(f.toolCount)}:{},...Y(f.startedAt)!==void 0?{startedAt:Y(f.startedAt)}:{},...Y(f.endedAt)!==void 0?{endedAt:Y(f.endedAt)}:{},...O(f.error,1024)?{error:O(f.error,1024)}:{},...f.timedOut===!0?{timedOut:!0}:{},...a(f.turnBudget)?{turnBudget:a(f.turnBudget)}:{},...f.turnBudgetExceeded===!0?{turnBudgetExceeded:!0}:{},...f.wrapUpRequested===!0?{wrapUpRequested:!0}:{},...j<q$&&Array.isArray(f.children)?{children:f.children.map((Z)=>e(Z,j+1)).filter((Z)=>Boolean(Z)).slice(0,h)}:{}}}function e($,j=0){if(!$||typeof $!=="object")return;let f=$;if(!i(f.id)||!i(f.parentRunId))return;let J=x$(f.path),Q=Array.isArray(f.steps)?f.steps.map((B)=>z0(B,j+1)).filter((B)=>Boolean(B)).slice(0,Q$):void 0,Z=V0(f.totalTokens),q=L0(f.totalCost);return{id:f.id,parentRunId:f.parentRunId,...Y(f.parentStepIndex)!==void 0?{parentStepIndex:Y(f.parentStepIndex)}:{},...O(f.parentAgent,128)?{parentAgent:O(f.parentAgent,128)}:{},depth:Math.min(Math.max(0,Y(f.depth)??0),q$),path:J,state:M0(f.state,"running"),...O(f.asyncDir,2048)?{asyncDir:O(f.asyncDir,2048)}:{},...Y(f.pid)!==void 0&&Y(f.pid)>0&&Number.isInteger(Y(f.pid))?{pid:Y(f.pid)}:{},...O(f.sessionId,256)?{sessionId:O(f.sessionId,256)}:{},...O(f.sessionFile,2048)?{sessionFile:O(f.sessionFile,2048)}:{},...O(f.intercomTarget,256)?{intercomTarget:O(f.intercomTarget,256)}:{},...O(f.ownerIntercomTarget,256)?{ownerIntercomTarget:O(f.ownerIntercomTarget,256)}:{},...O(f.leafIntercomTarget,256)?{leafIntercomTarget:O(f.leafIntercomTarget,256)}:{},...f.ownerState==="live"||f.ownerState==="gone"||f.ownerState==="unknown"?{ownerState:f.ownerState}:{},...O(f.controlInbox,2048)?{controlInbox:O(f.controlInbox,2048)}:{},...O(f.capabilityToken,128)?{capabilityToken:O(f.capabilityToken,128)}:{},...f.mode==="single"||f.mode==="parallel"||f.mode==="chain"?{mode:f.mode}:{},...O(f.agent,128)?{agent:O(f.agent,128)}:{},...Array.isArray(f.agents)?{agents:f.agents.map((B)=>O(B,128)).filter((B)=>Boolean(B)).slice(0,Q$)}:{},...Y(f.currentStep)!==void 0?{currentStep:Y(f.currentStep)}:{},...Y(f.chainStepCount)!==void 0?{chainStepCount:Y(f.chainStepCount)}:{},...f.activityState==="active_long_running"||f.activityState==="needs_attention"?{activityState:f.activityState}:{},...Y(f.lastActivityAt)!==void 0?{lastActivityAt:Y(f.lastActivityAt)}:{},...O(f.currentTool,128)?{currentTool:O(f.currentTool,128)}:{},...Y(f.currentToolStartedAt)!==void 0?{currentToolStartedAt:Y(f.currentToolStartedAt)}:{},...O(f.currentPath,2048)?{currentPath:O(f.currentPath,2048)}:{},...Y(f.turnCount)!==void 0?{turnCount:Y(f.turnCount)}:{},...Y(f.toolCount)!==void 0?{toolCount:Y(f.toolCount)}:{},...Z?{totalTokens:Z}:{},...q?{totalCost:q}:{},...Y(f.startedAt)!==void 0?{startedAt:Y(f.startedAt)}:{},...Y(f.endedAt)!==void 0?{endedAt:Y(f.endedAt)}:{},...Y(f.lastUpdate)!==void 0?{lastUpdate:Y(f.lastUpdate)}:{},...Y(f.timeoutMs)!==void 0?{timeoutMs:Y(f.timeoutMs)}:{},...Y(f.deadlineAt)!==void 0?{deadlineAt:Y(f.deadlineAt)}:{},...f.timedOut===!0?{timedOut:!0}:{},...a(f.turnBudget)?{turnBudget:a(f.turnBudget)}:{},...f.turnBudgetExceeded===!0?{turnBudgetExceeded:!0}:{},...f.wrapUpRequested===!0?{wrapUpRequested:!0}:{},...O(f.error,1024)?{error:O(f.error,1024)}:{},...Q&&Q.length>0?{steps:Q}:{},...j<q$&&Array.isArray(f.children)?{children:f.children.map((B)=>e(B,j+1)).filter((B)=>Boolean(B)).slice(0,h)}:{}}}function B$($,j){if(Buffer.byteLength($,"utf-8")>K$)return;let f;try{f=JSON.parse($)}catch{return}if(!f||typeof f!=="object")return;let J=f;if(J.type!=="subagent.nested.started"&&J.type!=="subagent.nested.updated"&&J.type!=="subagent.nested.completed")return;if(J.rootRunId!==j.rootRunId||J.capabilityToken!==j.capabilityToken)return;if(!i(J.parentRunId))return;let Q=Y(J.ts);if(Q===void 0)return;let Z=e(J.child);if(!Z||Z.id===j.rootRunId)return;let q={...Z,controlInbox:j.controlInbox,capabilityToken:j.capabilityToken,ownerState:Z.ownerState??"unknown"};return{type:J.type,ts:Q,rootRunId:j.rootRunId,parentRunId:J.parentRunId,...Y(J.parentStepIndex)!==void 0?{parentStepIndex:Y(J.parentStepIndex)}:{},capabilityToken:j.capabilityToken,child:q}}function A0($,j){if(!$.includes(`
2
+ `)){let f=B$($.trim(),j);return f?[f]:[]}return $.split(`
3
3
  `).slice(0,$.endsWith(`
4
- `)?void 0:-1).map((j)=>j.trim()?X$(j,f):void 0).filter((j)=>Boolean(j))}function l($){return $==="complete"||$==="failed"||$==="paused"}function D$($,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(l($.state)&&!l(J.state))return $;if(l($.state)&&l(J.state)&&Z===Q)return $;return{...$,...J,state:J.state,lastUpdate:Math.max(Q,Z)}}function z0($,f){let j=!1,J=(B)=>B.map((K)=>{if(K.id===f.parentRunId){let U=K.children??[],q=U.findIndex((L)=>L.id===f.child.id),z=D$(q>=0?U[q]:void 0,f),W=q>=0?U.map((L,E)=>E===q?z:L):[...U,z];return j=!0,{...K,children:W.slice(0,c),lastUpdate:Math.max(K.lastUpdate??0,f.ts)}}if(!K.children?.length)return K;let H=J(K.children);return H===K.children?K:{...K,children:H}}),Q=J($);if(j)return Q;let Z=Q.findIndex((B)=>B.id===f.child.id),X=D$(Z>=0?Q[Z]:void 0,f);return Z>=0?Q.map((B,K)=>K===Z?X:B):[...Q,X].slice(0,c)}function A0($,f){return{...$,updatedAt:Math.max($.updatedAt,f.ts),children:z0($.children,f)}}function k$($){return V.join(P$($),W0)}function g$(){let $;try{$=F.readdirSync(p)}catch(j){if(j.code==="ENOENT")return new Map;throw j}let f=new Map;for(let j of $){let J=V.join(p,j);try{let Q=JSON.parse(F.readFileSync(V.join(J,H0),"utf-8"));if(typeof Q.rootRunId!=="string"||typeof Q.capabilityToken!=="string")continue;if(f.has(Q.rootRunId))continue;let Z={rootRunId:Q.rootRunId,eventSink:V.join(J,"events"),controlInbox:V.join(J,"controls"),capabilityToken:Q.capabilityToken};a(Z),f.set(Q.rootRunId,Z)}catch{continue}}return f}function F0($){a($);try{let f=JSON.parse(F.readFileSync(k$($),"utf-8"));return{rootRunId:$.rootRunId,updatedAt:typeof f.updatedAt==="number"?f.updatedAt:0,children:Array.isArray(f.children)?f.children.map((j)=>s(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 e($){a($);let f=F0($),j=new Set(f.processedEvents),J=!1,Q=[];try{Q=F.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 X=V.join($.eventSink,Z);if(!q$($.eventSink,X))continue;let B;try{let K=F.statSync(X);if(!K.isFile()||K.size>B$)continue;B=F.readFileSync(X,"utf-8")}catch{continue}for(let K of M0(B,$))f=A0(f,K),J=!0;j.add(Z),J=!0}if(J)f={...f,processedEvents:[...j].slice(-1000)},k(k$($),f);return f}function T0($,f,j){let J=`${JSON.stringify(j)}
5
- `;if(Buffer.byteLength(J,"utf-8")>B$)throw Error("Nested route record exceeds the maximum size.");F.mkdirSync($,{recursive:!0,mode:448});let Q=`${String(f).padStart(13,"0")}-${Y0()}.json`,Z=V.join($,`.${Q}.tmp`),X=V.join($,Q);return F.writeFileSync(Z,J,{mode:384}),F.renameSync(Z,X),X}function v$($,f){a($);let j={...f,rootRunId:$.rootRunId,capabilityToken:$.capabilityToken},J=X$(JSON.stringify(j),$);if(!J)throw Error("Nested event record failed validation.");T0($.eventSink,J.ts,J)}function m$($,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,X)=>(Z.index??X)===J.parentStepIndex);if(!Q)continue;Q.children??=[],Q.children=[...Q.children.filter((Z)=>Z.id!==J.id),J].slice(0,c)}}function c$($,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,Z$)}:{}}}function E0($,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 t($,f,j){if(!Array.isArray($))return[];return $.filter((J)=>E0(J,f,j)).sort((J,Q)=>J.stepIndex-Q.stepIndex||J.start-Q.start)}import*as M from"node:fs";import*as T from"node:path";function K$($){return $ instanceof Error?$.message:String($)}function S0($){let f=T.join($,"runner.stderr.log"),j=65536,J;try{let Z=M.statSync(f);if(Z.size<=0)return;let X=M.openSync(f,"r");try{let B=Math.min(Z.size,65536),K=Math.max(0,Z.size-B),H=Buffer.alloc(B);M.readSync(X,H,0,B,K),J=H.toString("utf-8").trim()}finally{M.closeSync(X)}}catch{return}if(!J)return;let Q=J.split(/\r?\n/).slice(-30).join(`
4
+ `)?void 0:-1).map((f)=>f.trim()?B$(f,j):void 0).filter((f)=>Boolean(f))}function p($){return $==="complete"||$==="failed"||$==="paused"}function P$($,j){let f=j.type==="subagent.nested.completed"&&j.child.state==="running"?"complete":j.child.state,J={...j.child,state:f,lastUpdate:j.child.lastUpdate??j.ts};if(!$)return J;let Q=$.lastUpdate??0,Z=J.lastUpdate??j.ts;if(Z<Q)return $;if(p($.state)&&!p(J.state))return $;if(p($.state)&&p(J.state)&&Z===Q)return $;return{...$,...J,state:J.state,lastUpdate:Math.max(Q,Z)}}function F0($,j){let f=!1,J=(B)=>B.map((K)=>{if(K.id===j.parentRunId){let U=K.children??[],X=U.findIndex((L)=>L.id===j.child.id),z=P$(X>=0?U[X]:void 0,j),W=X>=0?U.map((L,S)=>S===X?z:L):[...U,z];return f=!0,{...K,children:W.slice(0,h),lastUpdate:Math.max(K.lastUpdate??0,j.ts)}}if(!K.children?.length)return K;let H=J(K.children);return H===K.children?K:{...K,children:H}}),Q=J($);if(f)return Q;let Z=Q.findIndex((B)=>B.id===j.child.id),q=P$(Z>=0?Q[Z]:void 0,j);return Z>=0?Q.map((B,K)=>K===Z?q:B):[...Q,q].slice(0,h)}function T0($,j){return{...$,updatedAt:Math.max($.updatedAt,j.ts),children:F0($.children,j)}}function g$($){return V.join(w$($),G0)}function v$(){let $;try{$=F.readdirSync(r)}catch(f){if(f.code==="ENOENT")return new Map;throw f}let j=new Map;for(let f of $){let J=V.join(r,f);try{let Q=JSON.parse(F.readFileSync(V.join(J,O0),"utf-8"));if(typeof Q.rootRunId!=="string"||typeof Q.capabilityToken!=="string")continue;if(j.has(Q.rootRunId))continue;let Z={rootRunId:Q.rootRunId,eventSink:V.join(J,"events"),controlInbox:V.join(J,"controls"),capabilityToken:Q.capabilityToken};s(Z),j.set(Q.rootRunId,Z)}catch{continue}}return j}function _0($){s($);try{let j=JSON.parse(F.readFileSync(g$($),"utf-8"));return{rootRunId:$.rootRunId,updatedAt:typeof j.updatedAt==="number"?j.updatedAt:0,children:Array.isArray(j.children)?j.children.map((f)=>e(f)).filter((f)=>Boolean(f)):[],processedEvents:Array.isArray(j.processedEvents)?j.processedEvents.filter((f)=>typeof f==="string"):[]}}catch(j){if(j.code!=="ENOENT")throw j;return{rootRunId:$.rootRunId,updatedAt:0,children:[],processedEvents:[]}}}function t($){s($);let j=_0($),f=new Set(j.processedEvents),J=!1,Q=[];try{Q=F.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(f.has(Z))continue;let q=V.join($.eventSink,Z);if(!X$($.eventSink,q))continue;let B;try{let K=F.statSync(q);if(!K.isFile()||K.size>K$)continue;B=F.readFileSync(q,"utf-8")}catch{continue}for(let K of A0(B,$))j=T0(j,K),J=!0;f.add(Z),J=!0}if(J)j={...j,processedEvents:[...f].slice(-1000)},g(g$($),j);return j}function C0($,j,f){let J=`${JSON.stringify(f)}
5
+ `;if(Buffer.byteLength(J,"utf-8")>K$)throw Error("Nested route record exceeds the maximum size.");F.mkdirSync($,{recursive:!0,mode:448});let Q=`${String(j).padStart(13,"0")}-${W0()}.json`,Z=V.join($,`.${Q}.tmp`),q=V.join($,Q);return F.writeFileSync(Z,J,{mode:384}),F.renameSync(Z,q),q}function c$($,j){s($);let f={...j,rootRunId:$.rootRunId,capabilityToken:$.capabilityToken},J=B$(JSON.stringify(f),$);if(!J)throw Error("Nested event record failed validation.");C0($.eventSink,J.ts,J)}function m$($,j,f){if(!j?.length)return;for(let J of j)J.children=void 0;if(!f?.length)return;for(let J of f){if(J.parentRunId!==$||J.parentStepIndex===void 0)continue;let Q=j.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,h)}}function h$($,j,f){return{id:$.runId||f.id,parentRunId:f.parentRunId,...f.parentStepIndex!==void 0?{parentStepIndex:f.parentStepIndex}:{},depth:f.depth,path:f.path??[{runId:f.parentRunId,...f.parentStepIndex!==void 0?{stepIndex:f.parentStepIndex}:{}}],asyncDir:j,...$.pid?{pid:$.pid}:{},...$.sessionId?{sessionId:$.sessionId}:{},mode:$.mode??f.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:f.ts},...$.endedAt!==void 0?{endedAt:$.endedAt}:{},lastUpdate:$.lastUpdate??f.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,Q$)}:{}}}function y0($,j,f){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<f&&J+Q<=j}function $$($,j,f){if(!Array.isArray($))return[];return $.filter((J)=>y0(J,j,f)).sort((J,Q)=>J.stepIndex-Q.stepIndex||J.start-Q.start)}import*as M from"node:fs";import*as T from"node:path";function Y$($){return $ instanceof Error?$.message:String($)}function x0($){let j=T.join($,"runner.stderr.log"),f=65536,J;try{let Z=M.statSync(j);if(Z.size<=0)return;let q=M.openSync(j,"r");try{let B=Math.min(Z.size,65536),K=Math.max(0,Z.size-B),H=Buffer.alloc(B);M.readSync(q,H,0,B,K),J=H.toString("utf-8").trim()}finally{M.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 o$($){return typeof $==="object"&&$!==null&&"code"in $&&$.code==="ENOENT"}function x0($,f){try{M.mkdirSync(T.dirname($),{recursive:!0}),M.appendFileSync($,`${JSON.stringify(f)}
8
- `,"utf-8")}catch{}}function y0($){let f=T.join($,"status.json"),j;try{j=M.readFileSync(f,"utf-8")}catch(J){if(o$(J))return null;throw Error(`Failed to read async status file '${f}': ${K$(J)}`,{cause:J instanceof Error?J:void 0})}try{return JSON.parse(j)}catch(J){throw Error(`Failed to parse async status file '${f}': ${K$(J)}`,{cause:J instanceof Error?J:void 0})}}function I0($){try{let f=JSON.parse(M.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(o$(f))return;throw Error(`Failed to read async result file '${$}': ${K$(f)}`,{cause:f instanceof Error?f:void 0})}}function N0($,f){if(f?.success===!0)return"complete";if(f?.success===!1)return"failed";return $}function R0($,f,j){let J=I0(f);if(!J)return;let Q=($.steps??[]).map((Z,X)=>{if(Z.status!=="running"&&Z.status!=="pending")return Z;let B=J.results?.[X],K=N0(J.state,B);return{...Z,status:K==="complete"?"complete":K,endedAt:Z.endedAt??j,durationMs:Z.startedAt!==void 0&&Z.durationMs===void 0?Math.max(0,j-Z.startedAt):Z.durationMs,exitCode:Z.exitCode??(K==="complete"||K==="paused"?0:1),error:K==="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 D0($,f,j){let J=f.startedAt??j,Q=f.agents?.length?f.agents:["subagent"],Z=f.chainStepCount,X=Z!==void 0?t(f.parallelGroups,Q.length,Z):[];return{runId:f.runId||T.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}:{},...X.length?{parallelGroups:X}:{},steps:Q.map((B)=>({agent:B,status:"running",startedAt:J})),...f.sessionFile?{sessionFile:f.sessionFile}:{}}}function P0($,f,j,J){let Q=$.runId||T.basename(f),Z=typeof $.pid==="number"?$.pid:"unknown",X=J??`Async runner process ${Z} exited or disappeared before writing a result. Marked run failed by stale-run reconciliation.`,B=S0(f),K=B?`${X}
7
+ [stderr tail truncated]`:Q}function n$($){return typeof $==="object"&&$!==null&&"code"in $&&$.code==="ENOENT"}function I0($,j){try{M.mkdirSync(T.dirname($),{recursive:!0}),M.appendFileSync($,`${JSON.stringify(j)}
8
+ `,"utf-8")}catch{}}function N0($){let j=T.join($,"status.json"),f;try{f=M.readFileSync(j,"utf-8")}catch(J){if(n$(J))return null;throw Error(`Failed to read async status file '${j}': ${Y$(J)}`,{cause:J instanceof Error?J:void 0})}try{return JSON.parse(f)}catch(J){throw Error(`Failed to parse async status file '${j}': ${Y$(J)}`,{cause:J instanceof Error?J:void 0})}}function R0($){try{let j=JSON.parse(M.readFileSync($,"utf-8"));return{state:j.success?"complete":j.state==="paused"||j.exitCode===0?"paused":"failed",...Array.isArray(j.results)?{results:j.results}:{}}}catch(j){if(n$(j))return;throw Error(`Failed to read async result file '${$}': ${Y$(j)}`,{cause:j instanceof Error?j:void 0})}}function D0($,j){if(j?.success===!0)return"complete";if(j?.success===!1)return"failed";return $}function P0($,j,f){let J=R0(j);if(!J)return;let Q=($.steps??[]).map((Z,q)=>{if(Z.status!=="running"&&Z.status!=="pending")return Z;let B=J.results?.[q],K=D0(J.state,B);return{...Z,status:K==="complete"?"complete":K,endedAt:Z.endedAt??f,durationMs:Z.startedAt!==void 0&&Z.durationMs===void 0?Math.max(0,f-Z.startedAt):Z.durationMs,exitCode:Z.exitCode??(K==="complete"||K==="paused"?0:1),error:K==="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:f,endedAt:$.endedAt??f,steps:Q}}function w0($,j,f){let J=j.startedAt??f,Q=j.agents?.length?j.agents:["subagent"],Z=j.chainStepCount,q=Z!==void 0?$$(j.parallelGroups,Q.length,Z):[];return{runId:j.runId||T.basename($),...j.sessionId?{sessionId:j.sessionId}:{},mode:j.mode??"single",state:"running",pid:j.pid,startedAt:J,lastUpdate:f,currentStep:0,...Z!==void 0?{chainStepCount:Z}:{},...q.length?{parallelGroups:q}:{},steps:Q.map((B)=>({agent:B,status:"running",startedAt:J})),...j.sessionFile?{sessionFile:j.sessionFile}:{}}}function k0($,j,f,J){let Q=$.runId||T.basename(j),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=x0(j),K=B?`${q}
9
9
 
10
10
  Runner stderr tail:
11
- ${B}`:X,U=(($.steps?.length)?$.steps:[{agent:"subagent",status:"running"}]).map((W)=>W.status==="running"||W.status==="pending"?{...W,status:"failed",activityState:void 0,endedAt:W.endedAt??j,durationMs:W.startedAt!==void 0&&W.durationMs===void 0?Math.max(0,j-W.startedAt):W.durationMs,exitCode:W.exitCode??1,error:W.error??K}:W),q={...$,state:"failed",activityState:void 0,lastUpdate:j,endedAt:j,steps:U},z=U[$.currentStep??0]?.agent??U[0]?.agent??"subagent";return{status:q,message:K,result:{id:Q,agent:z,mode:$.mode,success:!1,state:"failed",summary:K,results:U.map((W)=>({agent:W.agent,output:W.status==="complete"||W.status==="completed"?"":K,error:W.status==="complete"||W.status==="completed"?void 0:W.error??K,success:W.status==="complete"||W.status==="completed",model:W.model,attemptedModels:W.attemptedModels,modelAttempts:W.modelAttempts,sessionFile:W.sessionFile})),exitCode:1,timestamp:j,durationMs:Math.max(0,j-$.startedAt),asyncDir:f,sessionId:$.sessionId,sessionFile:$.sessionFile}}}function h$($,f,j,J,Q){let Z=P0(f,$,J,Q);return k(j,Z.result),k(T.join($,"status.json"),Z.status),x0(T.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 d$($){return $==="complete"||$==="failed"||$==="paused"}function*Y$($){for(let f of $??[])yield f,yield*Y$(f.children),yield*Y$(f.steps?.flatMap((j)=>j.children??[]))}function n$($,f={}){let j=e($);for(let J of Y$(j.children)){if(J.state!=="running"&&J.state!=="queued")continue;let Q=w$($.rootRunId,J);if(!Q)continue;let Z=H$(Q,{...f,resultsDir:T.join(f.resultsDir??I,"nested",$.rootRunId)}),X=Z.status;if(!X)continue;if(!Z.repaired&&!d$(X.state))continue;let B=f.now?.()??Date.now();v$($,{type:d$(X.state)?"subagent.nested.completed":"subagent.nested.updated",ts:B,parentRunId:J.parentRunId,parentStepIndex:J.parentStepIndex,child:c$(X,Q,{id:J.id,parentRunId:J.parentRunId,parentStepIndex:J.parentStepIndex,depth:J.depth,path:J.path,mode:J.mode,ts:B})})}}function w0($,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 H$($,f={}){let j=f.now?.()??Date.now(),J=y0($),Q=!J&&f.startedRun?D0($,f.startedRun,j):void 0,Z=J??Q;if(!Z)return{status:null,repaired:!1};let X=Z.runId||T.basename($),B=T.join(f.resultsDir??I,`${X}.json`);if(M.existsSync(B)){let H=Z.state==="running"||Z.state==="queued"?R0(Z,B,j):void 0;if(H)return k(T.join($,"status.json"),H),{status:H,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 H=f.startedRun?.startedAt??Z.startedAt;if(j-H<(f.missingStatusGraceMs??1000))return{status:null,repaired:!1,resultPath:B}}if(w0(Z.pid,f.kill)!=="dead"){let H=f.staleAlivePidMs??86400000,U=Z.lastUpdate??Z.startedAt;if(j-U<=H)return{status:J??null,repaired:!1,resultPath:B};let q=`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 h$($,Z,B,j,q)}return h$($,Z,B,j)}function h($){return $ instanceof Error?$.message:String($)}function W$($){return typeof $==="object"&&$!==null&&"code"in $&&$.code==="ENOENT"}function k0($,f){let j=C.join($,f);try{return d.statSync(j).isDirectory()}catch(J){if(W$(J))return!1;throw Error(`Failed to inspect async run path '${j}': ${h(J)}`,{cause:J instanceof Error?J:void 0})}}function g0($){if(!$)return;try{return d.statSync($).mtimeMs}catch(f){if(W$(f))return;throw Error(`Failed to inspect async output file '${$}': ${h(f)}`,{cause:f instanceof Error?f:void 0})}}function v0($,f){if(f.state!=="running")return{activityState:f.activityState,lastActivityAt:f.lastActivityAt};let j=f.outputFile?C.isAbsolute(f.outputFile)?f.outputFile:C.join($,f.outputFile):void 0,J=typeof f.currentStep==="number"?f.steps?.[f.currentStep]:void 0;return{activityState:f.activityState,lastActivityAt:f.lastActivityAt??g0(j)??J?.lastActivityAt??J?.startedAt??f.startedAt}}function m0($,f,j=[],J){if(f.sessionId!==void 0&&typeof f.sessionId!=="string")throw Error(`Invalid async status '${C.join($,"status.json")}': sessionId must be a string.`);let{activityState:Q,lastActivityAt:Z}=v0($,f),X=f.steps??[],B=f.chainStepCount??X.length,K=t(f.parallelGroups,X.length,B),H=[];if(j.length===0&&J)try{H=e(J)?.children??[]}catch(q){j.push(`Nested status unavailable: ${h(q)}`)}let U=X.map((q,z)=>{let{activityState:W,lastActivityAt:L}=q;return{index:z,agent:q.agent,...q.label?{label:q.label}:{},...q.phase?{phase:q.phase}:{},...q.outputName?{outputName:q.outputName}:{},...q.structured?{structured:q.structured}:{},status:q.status,...W?{activityState:W}:{},...L?{lastActivityAt:L}:{},...q.currentTool?{currentTool:q.currentTool}:{},...q.currentToolArgs?{currentToolArgs:q.currentToolArgs}:{},...q.currentToolStartedAt?{currentToolStartedAt:q.currentToolStartedAt}:{},...q.currentPath?{currentPath:q.currentPath}:{},...q.recentTools?{recentTools:q.recentTools.map((E)=>({...E}))}:{},...q.recentOutput?{recentOutput:[...q.recentOutput]}:{},...q.turnCount!==void 0?{turnCount:q.turnCount}:{},...q.toolCount!==void 0?{toolCount:q.toolCount}:{},...q.steerCount!==void 0?{steerCount:q.steerCount}:{},...q.lastSteerAt!==void 0?{lastSteerAt:q.lastSteerAt}:{},...q.durationMs!==void 0?{durationMs:q.durationMs}:{},...q.tokens?{tokens:q.tokens}:{},...q.totalCost?{totalCost:q.totalCost}:{},...q.skills?{skills:q.skills}:{},...q.model?{model:q.model}:{},...q.thinking?{thinking:q.thinking}:{},...q.attemptedModels?{attemptedModels:q.attemptedModels}:{},...q.error?{error:q.error}:{},...q.timedOut!==void 0?{timedOut:q.timedOut}:{},...q.turnBudget?{turnBudget:q.turnBudget}:{},...q.turnBudgetExceeded!==void 0?{turnBudgetExceeded:q.turnBudgetExceeded}:{},...q.wrapUpRequested!==void 0?{wrapUpRequested:q.wrapUpRequested}:{},...q.children?.length?{children:q.children}:{}}});return m$(f.runId||C.basename($),U,H),{id:f.runId||C.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}:{},...K.length?{parallelGroups:K}:{},steps:U,...H.length?{nestedChildren:H}:{},...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 c0($){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 O$($,f={}){let j;try{j=d.readdirSync($).filter((K)=>k0($,K))}catch(K){if(W$(K))return[];throw Error(`Failed to list async runs in '${$}': ${h(K)}`,{cause:K instanceof Error?K:void 0})}let J=f.states?new Set(f.states):void 0,Q=[],Z,X=(K)=>{if(!Z)Z=g$();return Z.get(K)};for(let K of j){let H=C.join($,K),q=(f.reconcile===!1?void 0:H$(H,{resultsDir:f.resultsDir,kill:f.kill,now:f.now}))?.status??A$(H);if(!q)continue;if(J&&!J.has(q.state))continue;if(f.sessionId&&q.sessionId!==f.sessionId)continue;let z=[],W;try{if(W=X(q.runId||C.basename(H)),W)n$(W,{resultsDir:f.resultsDir,kill:f.kill,now:f.now})}catch(E){z.push(`Nested status unavailable: ${h(E)}`)}let L=m0(H,q,z,W);Q.push(L)}let B=c0(Q);return f.limit!==void 0?B.slice(0,f.limit):B}var u$=["queued","running"],h0=1800000,d0=250,o0=1000,n0=[F$,T$,_$,C$];function u0($,f){return new Promise((j)=>{if(f?.aborted){j();return}let J=setTimeout(()=>{f?.removeEventListener("abort",Q),j()},$),Q=()=>{clearTimeout(J),j()};f?.addEventListener("abort",Q,{once:!0})})}function l0($,f,j){let J=j.sleep??u0,Q=j.events;if(!Q)return J($,f);return new Promise((Z)=>{let X=!1,B=[],K=new AbortController,H=()=>{if(X)return;X=!0,K.abort(),f?.removeEventListener("abort",H);for(let U of B)try{U()}catch{}Z()};if(f?.aborted){H();return}f?.addEventListener("abort",H,{once:!0});for(let U of n0)try{B.push(Q.on(U,H))}catch{}J($,K.signal).then(H)})}function l$($,f){return $.id===f||$.id.startsWith(f)}function $$($){return $.activityState==="needs_attention"}function G$($,f){let j=f.asyncDirRoot??u,J=f.resultsDir??I,Q=O$(j,{states:[...u$],sessionId:f.state.currentSessionId??void 0,resultsDir:J,kill:f.kill,now:f.now});return $.id?Q.filter((Z)=>l$(Z,$.id)):Q}function p0($,f,j){return G$($,f).filter((J)=>$$(J)&&j.has(J.id))}function r0($,f){let j=f.asyncDirRoot??u,J=f.resultsDir??I,Q=O$(j,{sessionId:f.state.currentSessionId??void 0,resultsDir:J,kill:f.kill,now:f.now});return $.id?Q.filter((Z)=>l$(Z,$.id)):Q}function i0($){if($.length===0)return"";let f={complete:0,failed:0,paused:0};for(let J of $)if(J.state in f)f[J.state]+=1;let j=[];if(f.complete)j.push(`${f.complete} complete`);if(f.failed)j.push(`${f.failed} failed`);if(f.paused)j.push(`${f.paused} paused`);return j.join(", ")}function y($,f=!1){return{content:[{type:"text",text:$}],...f?{isError:!0}:{},details:{mode:"management",results:[]}}}async function Nj($,f,j){let J=j.now??Date.now,Q=Math.max(d0,j.pollIntervalMs??o0),Z=$.timeoutMs!==void 0&&$.timeoutMs>0?$.timeoutMs:h0,X=J(),B=$.id?!0:$.all===!0,K;try{K=G$($,j)}catch(G){return y(G instanceof Error?G.message:String(G),!0)}if(K.length===0){let G=$.id?`No active run matched "${$.id}". Nothing to wait for.`:"No active async runs in this session. Nothing to wait for.";return y(G)}if($.id){let G=K.filter((A)=>A.id===$.id);if(G.length===1)K=G;else if(K.length>1)return y(`Ambiguous async run id prefix "${$.id}" matched ${K.length} active runs: ${K.map((A)=>A.id).join(", ")}. Pass a longer id.`,!0)}let H=$.id?{...$,id:K[0].id}:$,U=new Set(K.map((G)=>G.id)),q=U.size,z=K.filter((G)=>!$$(G)),W=(G,A)=>{if(A.length>0)return!0;if(B)return G.every((f$)=>!U.has(f$.id));return G.filter((f$)=>U.has(f$.id)).length<q},L=K.filter((G)=>$$(G));while(!W(z,L)){if(f?.aborted){let G=z.map((A)=>`${A.id} (${A.state})`).join(", ");return y(`Wait aborted after ${P(J()-X)}. Still active: ${G}.`,!0)}if(J()-X>=Z){let G=z.map((A)=>`${A.id} (${A.state})`).join(", ");return y(`Wait timed out after ${P(Z)} with ${z.length} run(s) still active: ${G}. The runs are detached and keep going; call wait again or inspect with subagent({ action: "status" }).`,!0)}await l0(Q,f,j);try{K=G$(H,j),z=K.filter((G)=>!$$(G)),L=p0(H,j,U)}catch(G){return y(G instanceof Error?G.message:String(G),!0)}}let E="",o=0;try{let A=r0(H,j).filter((g)=>!u$.includes(g.state)&&U.has(g.id));o=A.length,E=i0(A)}catch{}let U$=L.length>0?` ${L.length} run(s) need attention: ${L.map((G)=>G.id).join(", ")} — inspect with subagent({ action: "status" }) then nudge/resume/interrupt.`:"",V$=z.filter((G)=>U.has(G.id)).length,L$=P(J()-X),M$=E?` Outcome: ${E}.`:"";if(B){let G=$.id?`run "${$.id}"`:`${q} async run(s)`,A=L.length>0?"attention required":"done",g=L.length>0?"Relevant completion/control events have been observed; inspect status if the notification is not visible yet.":"Completion events have been observed; inspect status if the notification is not visible yet.";return y(`Waited ${L$} for ${G}; ${A}.${M$}${U$} ${g}`)}let p$=V$>0?` ${V$} run(s) still in flight — call wait again to catch the next one.`:L.length>0?" No other runs are waitable until attention is handled.":" No runs remain in flight.",r$=L.length>0&&o===0?`${L.length} of ${q} run(s) need attention`:`${o} of ${q} run(s) finished`,i$=o>0?" Completion events for the finished run(s) have been observed; inspect status if the notification is not visible yet.":" Relevant control events have been observed; inspect status if the notification is not visible yet.";return y(`Waited ${L$}; ${r$}.${M$}${U$}${p$}${i$}`)}export{Nj as waitForSubagents};
11
+ ${B}`:q,U=(($.steps?.length)?$.steps:[{agent:"subagent",status:"running"}]).map((W)=>W.status==="running"||W.status==="pending"?{...W,status:"failed",activityState:void 0,endedAt:W.endedAt??f,durationMs:W.startedAt!==void 0&&W.durationMs===void 0?Math.max(0,f-W.startedAt):W.durationMs,exitCode:W.exitCode??1,error:W.error??K}:W),X={...$,state:"failed",activityState:void 0,lastUpdate:f,endedAt:f,steps:U},z=U[$.currentStep??0]?.agent??U[0]?.agent??"subagent";return{status:X,message:K,result:{id:Q,agent:z,mode:$.mode,success:!1,state:"failed",summary:K,results:U.map((W)=>({agent:W.agent,output:W.status==="complete"||W.status==="completed"?"":K,error:W.status==="complete"||W.status==="completed"?void 0:W.error??K,success:W.status==="complete"||W.status==="completed",model:W.model,attemptedModels:W.attemptedModels,modelAttempts:W.modelAttempts,sessionFile:W.sessionFile})),exitCode:1,timestamp:f,durationMs:Math.max(0,f-$.startedAt),asyncDir:j,sessionId:$.sessionId,sessionFile:$.sessionFile}}}function d$($,j,f,J,Q){let Z=k0(j,$,J,Q);return g(f,Z.result),g(T.join($,"status.json"),Z.status),I0(T.join($,"events.jsonl"),{type:"subagent.run.repaired_stale",ts:J,runId:Z.status.runId,pid:j.pid,resultPath:f,message:Z.message}),{status:Z.status,repaired:!0,resultPath:f,message:Z.message}}function o$($){return $==="complete"||$==="failed"||$==="paused"}function*H$($){for(let j of $??[])yield j,yield*H$(j.children),yield*H$(j.steps?.flatMap((f)=>f.children??[]))}function u$($,j={}){let f=t($);for(let J of H$(f.children)){if(J.state!=="running"&&J.state!=="queued")continue;let Q=k$($.rootRunId,J);if(!Q)continue;let Z=W$(Q,{...j,resultsDir:T.join(j.resultsDir??N,"nested",$.rootRunId)}),q=Z.status;if(!q)continue;if(!Z.repaired&&!o$(q.state))continue;let B=j.now?.()??Date.now();c$($,{type:o$(q.state)?"subagent.nested.completed":"subagent.nested.updated",ts:B,parentRunId:J.parentRunId,parentStepIndex:J.parentStepIndex,child:h$(q,Q,{id:J.id,parentRunId:J.parentRunId,parentStepIndex:J.parentStepIndex,depth:J.depth,path:J.path,mode:J.mode,ts:B})})}}function g0($,j=process.kill){try{return j($,0),"alive"}catch(f){let J=typeof f==="object"&&f!==null&&"code"in f?f.code:void 0;if(J==="ESRCH")return"dead";if(J==="EPERM")return"unknown";return"unknown"}}function W$($,j={}){let f=j.now?.()??Date.now(),J=N0($),Q=!J&&j.startedRun?w0($,j.startedRun,f):void 0,Z=J??Q;if(!Z)return{status:null,repaired:!1};let q=Z.runId||T.basename($),B=T.join(j.resultsDir??N,`${q}.json`);if(M.existsSync(B)){let H=Z.state==="running"||Z.state==="queued"?P0(Z,B,f):void 0;if(H)return g(T.join($,"status.json"),H),{status:H,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 H=j.startedRun?.startedAt??Z.startedAt;if(f-H<(j.missingStatusGraceMs??1000))return{status:null,repaired:!1,resultPath:B}}if(g0(Z.pid,j.kill)!=="dead"){let H=j.staleAlivePidMs??86400000,U=Z.lastUpdate??Z.startedAt;if(f-U<=H)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 ${f-U}ms. Marked run failed by stale-run reconciliation because PID ownership cannot be verified.`;return d$($,Z,B,f,X)}return d$($,Z,B,f)}function d($){return $ instanceof Error?$.message:String($)}function O$($){return typeof $==="object"&&$!==null&&"code"in $&&$.code==="ENOENT"}function v0($,j){let f=C.join($,j);try{return o.statSync(f).isDirectory()}catch(J){if(O$(J))return!1;throw Error(`Failed to inspect async run path '${f}': ${d(J)}`,{cause:J instanceof Error?J:void 0})}}function c0($){if(!$)return;try{return o.statSync($).mtimeMs}catch(j){if(O$(j))return;throw Error(`Failed to inspect async output file '${$}': ${d(j)}`,{cause:j instanceof Error?j:void 0})}}function m0($,j){if(j.state!=="running")return{activityState:j.activityState,lastActivityAt:j.lastActivityAt};let f=j.outputFile?C.isAbsolute(j.outputFile)?j.outputFile:C.join($,j.outputFile):void 0,J=typeof j.currentStep==="number"?j.steps?.[j.currentStep]:void 0;return{activityState:j.activityState,lastActivityAt:j.lastActivityAt??c0(f)??J?.lastActivityAt??J?.startedAt??j.startedAt}}function h0($,j,f=[],J){if(j.sessionId!==void 0&&typeof j.sessionId!=="string")throw Error(`Invalid async status '${C.join($,"status.json")}': sessionId must be a string.`);let{activityState:Q,lastActivityAt:Z}=m0($,j),q=j.steps??[],B=j.chainStepCount??q.length,K=$$(j.parallelGroups,q.length,B),H=[];if(f.length===0&&J)try{H=t(J)?.children??[]}catch(X){f.push(`Nested status unavailable: ${d(X)}`)}let U=q.map((X,z)=>{let{activityState:W,lastActivityAt:L}=X;return{index:z,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,...W?{activityState:W}:{},...L?{lastActivityAt:L}:{},...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((S)=>({...S}))}:{},...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 m$(j.runId||C.basename($),U,H),{id:j.runId||C.basename($),asyncDir:$,...j.sessionId?{sessionId:j.sessionId}:{},state:j.state,...j.error?{error:j.error}:{},activityState:Q,lastActivityAt:Z,currentTool:j.currentTool,currentToolStartedAt:j.currentToolStartedAt,currentPath:j.currentPath,turnCount:j.turnCount,toolCount:j.toolCount,steerCount:j.steerCount,lastSteerAt:j.lastSteerAt,mode:j.mode,cwd:j.cwd,startedAt:j.startedAt,lastUpdate:j.lastUpdate,endedAt:j.endedAt,...j.timeoutMs!==void 0?{timeoutMs:j.timeoutMs}:{},...j.deadlineAt!==void 0?{deadlineAt:j.deadlineAt}:{},...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}:{},currentStep:j.currentStep,...j.chainStepCount!==void 0?{chainStepCount:j.chainStepCount}:{},...j.pendingAppends!==void 0?{pendingAppends:j.pendingAppends}:{},...K.length?{parallelGroups:K}:{},steps:U,...H.length?{nestedChildren:H}:{},...f.length?{nestedWarnings:f}:{},...j.sessionDir?{sessionDir:j.sessionDir}:{},...j.outputFile?{outputFile:j.outputFile}:{},...j.totalTokens?{totalTokens:j.totalTokens}:{},...j.totalCost?{totalCost:j.totalCost}:{},...j.sessionFile?{sessionFile:j.sessionFile}:{}}}function d0($){let j=(f)=>{switch(f){case"running":return 0;case"queued":return 1;case"failed":return 2;case"paused":return 2;case"complete":return 3}};return[...$].sort((f,J)=>{let Q=j(f.state)-j(J.state);if(Q!==0)return Q;let Z=f.lastUpdate??f.endedAt??f.startedAt;return(J.lastUpdate??J.endedAt??J.startedAt)-Z})}function G$($,j={}){let f;try{f=o.readdirSync($).filter((K)=>v0($,K))}catch(K){if(O$(K))return[];throw Error(`Failed to list async runs in '${$}': ${d(K)}`,{cause:K instanceof Error?K:void 0})}let J=j.states?new Set(j.states):void 0,Q=[],Z,q=(K)=>{if(!Z)Z=v$();return Z.get(K)};for(let K of f){let H=C.join($,K),X=(j.reconcile===!1?void 0:W$(H,{resultsDir:j.resultsDir,kill:j.kill,now:j.now}))?.status??F$(H);if(!X)continue;if(J&&!J.has(X.state))continue;if(j.sessionId&&X.sessionId!==j.sessionId)continue;let z=[],W;try{if(W=q(X.runId||C.basename(H)),W)u$(W,{resultsDir:j.resultsDir,kill:j.kill,now:j.now})}catch(S){z.push(`Nested status unavailable: ${d(S)}`)}let L=h0(H,X,z,W);Q.push(L)}let B=d0(Q);return j.limit!==void 0?B.slice(0,j.limit):B}var l$=["queued","running"],o0=1800000,n0=250,u0=1000,l0=[T$,_$,C$,b$];function p0($,j){return new Promise((f)=>{if(j?.aborted){f();return}let J=setTimeout(()=>{j?.removeEventListener("abort",Q),f()},$),Q=()=>{clearTimeout(J),f()};j?.addEventListener("abort",Q,{once:!0})})}function r0($,j,f){let J=f.sleep??p0,Q=f.events;if(!Q)return J($,j);return new Promise((Z)=>{let q=!1,B=[],K=new AbortController,H=()=>{if(q)return;q=!0,K.abort(),j?.removeEventListener("abort",H);for(let U of B)try{U()}catch{}Z()};if(j?.aborted){H();return}j?.addEventListener("abort",H,{once:!0});for(let U of l0)try{B.push(Q.on(U,H))}catch{}J($,K.signal).then(H)})}function p$($,j){return $.id===j||$.id.startsWith(j)}function j$($){return $.activityState==="needs_attention"}function U$($,j){let f=j.asyncDirRoot??l,J=j.resultsDir??N,Q=G$(f,{states:[...l$],sessionId:j.state.currentSessionId??void 0,resultsDir:J,kill:j.kill,now:j.now});return $.id?Q.filter((Z)=>p$(Z,$.id)):Q}function i0($,j,f){return U$($,j).filter((J)=>j$(J)&&f.has(J.id))}function a0($,j){let f=j.asyncDirRoot??l,J=j.resultsDir??N,Q=G$(f,{sessionId:j.state.currentSessionId??void 0,resultsDir:J,kill:j.kill,now:j.now});return $.id?Q.filter((Z)=>p$(Z,$.id)):Q}function s0($){if($.length===0)return"";let j={complete:0,failed:0,paused:0};for(let J of $)if(J.state in j)j[J.state]+=1;let f=[];if(j.complete)f.push(`${j.complete} complete`);if(j.failed)f.push(`${j.failed} failed`);if(j.paused)f.push(`${j.paused} paused`);return f.join(", ")}function I($,j=!1){return{content:[{type:"text",text:$}],...j?{isError:!0}:{},details:{mode:"management",results:[]}}}async function Rf($,j,f){let J=f.now??Date.now,Q=Math.max(n0,f.pollIntervalMs??u0),Z=$.timeoutMs!==void 0&&$.timeoutMs>0?$.timeoutMs:o0,q=J(),B=$.id?!0:$.all===!0,K;try{K=U$($,f)}catch(G){return I(G instanceof Error?G.message:String(G),!0)}if(K.length===0){let G=$.id?`No active run matched "${$.id}". Nothing to wait for.`:"No active async runs in this session. Nothing to wait for.";return I(G)}if($.id){let G=K.filter((A)=>A.id===$.id);if(G.length===1)K=G;else if(K.length>1)return I(`Ambiguous async run id prefix "${$.id}" matched ${K.length} active runs: ${K.map((A)=>A.id).join(", ")}. Pass a longer id.`,!0)}let H=$.id?{...$,id:K[0].id}:$,U=new Set(K.map((G)=>G.id)),X=U.size,z=K.filter((G)=>!j$(G)),W=(G,A)=>{if(A.length>0)return!0;if(B)return G.every((f$)=>!U.has(f$.id));return G.filter((f$)=>U.has(f$.id)).length<X},L=K.filter((G)=>j$(G));while(!W(z,L)){if(j?.aborted){let G=z.map((A)=>`${A.id} (${A.state})`).join(", ");return I(`Wait aborted after ${w(J()-q)}. Still active: ${G}.`,!0)}if(J()-q>=Z){let G=z.map((A)=>`${A.id} (${A.state})`).join(", ");return I(`Wait timed out after ${w(Z)} with ${z.length} run(s) still active: ${G}. The runs are detached and keep going; call wait again or inspect with subagent({ action: "status" }).`,!0)}await r0(Q,j,f);try{K=U$(H,f),z=K.filter((G)=>!j$(G)),L=i0(H,f,U)}catch(G){return I(G instanceof Error?G.message:String(G),!0)}}let S="",n=0;try{let A=a0(H,f).filter((v)=>!l$.includes(v.state)&&U.has(v.id));n=A.length,S=s0(A)}catch{}let V$=L.length>0?` ${L.length} run(s) need attention: ${L.map((G)=>G.id).join(", ")} — inspect with subagent({ action: "status" }) then nudge/resume/interrupt.`:"",L$=z.filter((G)=>U.has(G.id)).length,M$=w(J()-q),z$=S?` Outcome: ${S}.`:"";if(B){let G=$.id?`run "${$.id}"`:`${X} async run(s)`,A=L.length>0?"attention required":"done",v=L.length>0?"Relevant completion/control events have been observed; inspect status if the notification is not visible yet.":"Completion events have been observed; inspect status if the notification is not visible yet.";return I(`Waited ${M$} for ${G}; ${A}.${z$}${V$} ${v}`)}let r$=L$>0?` ${L$} run(s) still in flight — call wait again to catch the next one.`:L.length>0?" No other runs are waitable until attention is handled.":" No runs remain in flight.",i$=L.length>0&&n===0?`${L.length} of ${X} run(s) need attention`:`${n} of ${X} run(s) finished`,a$=n>0?" Completion events for the finished run(s) have been observed; inspect status if the notification is not visible yet.":" Relevant control events have been observed; inspect status if the notification is not visible yet.";return I(`Waited ${M$}; ${i$}.${z$}${V$}${r$}${a$}`)}export{Rf as waitForSubagents};