@qduc/term2 0.29.1 → 0.30.0

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 (284) hide show
  1. package/dist/agent.d.ts +13 -0
  2. package/dist/agent.d.ts.map +1 -1
  3. package/dist/agent.js +73 -2
  4. package/dist/agent.js.map +1 -1
  5. package/dist/build-info.json +2 -2
  6. package/dist/cli.js +17 -0
  7. package/dist/cli.js.map +1 -1
  8. package/dist/components/message/SubagentActivityMessage.d.ts +2 -2
  9. package/dist/components/message/SubagentActivityMessage.d.ts.map +1 -1
  10. package/dist/components/message/SubagentActivityMessage.js +2 -13
  11. package/dist/components/message/SubagentActivityMessage.js.map +1 -1
  12. package/dist/components/message/command-message-helpers.d.ts +2 -2
  13. package/dist/components/message/command-message-helpers.d.ts.map +1 -1
  14. package/dist/core/index.d.ts +2 -3
  15. package/dist/core/index.d.ts.map +1 -1
  16. package/dist/core/index.js +1 -7
  17. package/dist/core/index.js.map +1 -1
  18. package/dist/core/session-runtime.d.ts +72 -0
  19. package/dist/core/session-runtime.d.ts.map +1 -1
  20. package/dist/gateway/contracts.d.ts +1 -1
  21. package/dist/gateway/contracts.d.ts.map +1 -1
  22. package/dist/gateway/gateway.d.ts +32 -0
  23. package/dist/gateway/gateway.d.ts.map +1 -1
  24. package/dist/gateway/gateway.js +36 -1
  25. package/dist/gateway/gateway.js.map +1 -1
  26. package/dist/gateway/persistence/contracts.d.ts +3 -10
  27. package/dist/gateway/persistence/contracts.d.ts.map +1 -1
  28. package/dist/gateway/persistence/contracts.js +2 -31
  29. package/dist/gateway/persistence/contracts.js.map +1 -1
  30. package/dist/gateway/runtime-factory.d.ts.map +1 -1
  31. package/dist/gateway/runtime-factory.js +4 -0
  32. package/dist/gateway/runtime-factory.js.map +1 -1
  33. package/dist/gateway/server-session.d.ts +3 -0
  34. package/dist/gateway/server-session.d.ts.map +1 -1
  35. package/dist/gateway/server-session.js +17 -20
  36. package/dist/gateway/server-session.js.map +1 -1
  37. package/dist/gateway/settings-rpc.d.ts +1 -1
  38. package/dist/gateway/settings-rpc.d.ts.map +1 -1
  39. package/dist/gateway/settings-rpc.js +4 -1
  40. package/dist/gateway/settings-rpc.js.map +1 -1
  41. package/dist/lib/agent-client.d.ts +8 -0
  42. package/dist/lib/agent-client.d.ts.map +1 -1
  43. package/dist/lib/agent-client.js +5 -1
  44. package/dist/lib/agent-client.js.map +1 -1
  45. package/dist/lib/agent-configuration.d.ts +9 -0
  46. package/dist/lib/agent-configuration.d.ts.map +1 -1
  47. package/dist/lib/agent-configuration.js +14 -0
  48. package/dist/lib/agent-configuration.js.map +1 -1
  49. package/dist/lib/agent-factory.d.ts +25 -4
  50. package/dist/lib/agent-factory.d.ts.map +1 -1
  51. package/dist/lib/agent-factory.js +6 -0
  52. package/dist/lib/agent-factory.js.map +1 -1
  53. package/dist/lib/subagent-bridge.d.ts +47 -5
  54. package/dist/lib/subagent-bridge.d.ts.map +1 -1
  55. package/dist/lib/subagent-bridge.js +112 -4
  56. package/dist/lib/subagent-bridge.js.map +1 -1
  57. package/dist/node_modules/@qduc/agent-wire/index.d.ts +73 -0
  58. package/dist/node_modules/@qduc/agent-wire/index.js +212 -0
  59. package/dist/node_modules/@qduc/agent-wire/package.json +1 -0
  60. package/dist/prompts/orchestrator-prompt.test.ts +9 -0
  61. package/dist/prompts/orchestrator.md +2 -0
  62. package/dist/prompts/subagent-delegation.d.ts.map +1 -1
  63. package/dist/prompts/subagent-delegation.js +3 -2
  64. package/dist/prompts/subagent-delegation.js.map +1 -1
  65. package/dist/prompts/subagent-delegation.test.ts +1 -0
  66. package/dist/prompts/subagent-delegation.ts +6 -2
  67. package/dist/providers/codex.provider.d.ts +3 -0
  68. package/dist/providers/codex.provider.d.ts.map +1 -1
  69. package/dist/providers/codex.provider.js +6 -4
  70. package/dist/providers/codex.provider.js.map +1 -1
  71. package/dist/providers/grok-auth.d.ts +3 -0
  72. package/dist/providers/grok-auth.d.ts.map +1 -1
  73. package/dist/providers/grok-auth.js +3 -1
  74. package/dist/providers/grok-auth.js.map +1 -1
  75. package/dist/providers/grok.provider.js +3 -3
  76. package/dist/providers/grok.provider.js.map +1 -1
  77. package/dist/providers/index.d.ts +1 -1
  78. package/dist/providers/index.d.ts.map +1 -1
  79. package/dist/providers/index.js +1 -1
  80. package/dist/providers/index.js.map +1 -1
  81. package/dist/providers/oauth-session-account.d.ts +16 -2
  82. package/dist/providers/oauth-session-account.d.ts.map +1 -1
  83. package/dist/providers/oauth-session-account.js +8 -17
  84. package/dist/providers/oauth-session-account.js.map +1 -1
  85. package/dist/providers/openai.provider.js +1 -1
  86. package/dist/providers/openai.provider.js.map +1 -1
  87. package/dist/providers/openrouter.provider.js +1 -1
  88. package/dist/providers/openrouter.provider.js.map +1 -1
  89. package/dist/providers/registry.d.ts +20 -1
  90. package/dist/providers/registry.d.ts.map +1 -1
  91. package/dist/providers/registry.js +33 -16
  92. package/dist/providers/registry.js.map +1 -1
  93. package/dist/providers/web-search/exa.provider.d.ts.map +1 -1
  94. package/dist/providers/web-search/exa.provider.js +6 -3
  95. package/dist/providers/web-search/exa.provider.js.map +1 -1
  96. package/dist/providers/web-search/firecrawl.provider.d.ts +8 -0
  97. package/dist/providers/web-search/firecrawl.provider.d.ts.map +1 -0
  98. package/dist/providers/web-search/firecrawl.provider.js +59 -0
  99. package/dist/providers/web-search/firecrawl.provider.js.map +1 -0
  100. package/dist/providers/web-search/index.d.ts +5 -2
  101. package/dist/providers/web-search/index.d.ts.map +1 -1
  102. package/dist/providers/web-search/index.js +3 -1
  103. package/dist/providers/web-search/index.js.map +1 -1
  104. package/dist/providers/web-search/registry.d.ts +14 -0
  105. package/dist/providers/web-search/registry.d.ts.map +1 -1
  106. package/dist/providers/web-search/registry.js +45 -15
  107. package/dist/providers/web-search/registry.js.map +1 -1
  108. package/dist/providers/web-search/searxng.provider.d.ts +8 -0
  109. package/dist/providers/web-search/searxng.provider.d.ts.map +1 -0
  110. package/dist/providers/web-search/searxng.provider.js +56 -0
  111. package/dist/providers/web-search/searxng.provider.js.map +1 -0
  112. package/dist/providers/web-search/tavily.provider.d.ts.map +1 -1
  113. package/dist/providers/web-search/tavily.provider.js +8 -3
  114. package/dist/providers/web-search/tavily.provider.js.map +1 -1
  115. package/dist/providers/web-search/types.d.ts +14 -1
  116. package/dist/providers/web-search/types.d.ts.map +1 -1
  117. package/dist/services/agent-runtime/agent-resolver.d.ts.map +1 -1
  118. package/dist/services/agent-runtime/agent-resolver.js +1 -0
  119. package/dist/services/agent-runtime/agent-resolver.js.map +1 -1
  120. package/dist/services/agent-runtime/agent-runtime.d.ts +6 -1
  121. package/dist/services/agent-runtime/agent-runtime.d.ts.map +1 -1
  122. package/dist/services/agent-runtime/agent-runtime.js +11 -2
  123. package/dist/services/agent-runtime/agent-runtime.js.map +1 -1
  124. package/dist/services/agent-runtime/agent-spec.d.ts +14 -0
  125. package/dist/services/agent-runtime/agent-spec.d.ts.map +1 -0
  126. package/dist/services/agent-runtime/agent-spec.js +49 -0
  127. package/dist/services/agent-runtime/agent-spec.js.map +1 -0
  128. package/dist/services/agent-runtime/index.d.ts +3 -1
  129. package/dist/services/agent-runtime/index.d.ts.map +1 -1
  130. package/dist/services/agent-runtime/index.js +2 -0
  131. package/dist/services/agent-runtime/index.js.map +1 -1
  132. package/dist/services/agent-runtime/legacy-adapter.d.ts.map +1 -1
  133. package/dist/services/agent-runtime/legacy-adapter.js +5 -1
  134. package/dist/services/agent-runtime/legacy-adapter.js.map +1 -1
  135. package/dist/services/agent-runtime/permission-boundary.d.ts +95 -0
  136. package/dist/services/agent-runtime/permission-boundary.d.ts.map +1 -0
  137. package/dist/services/agent-runtime/permission-boundary.js +538 -0
  138. package/dist/services/agent-runtime/permission-boundary.js.map +1 -0
  139. package/dist/services/agent-runtime/resolved-agent.d.ts +2 -0
  140. package/dist/services/agent-runtime/resolved-agent.d.ts.map +1 -1
  141. package/dist/services/agent-runtime/types.d.ts +22 -1
  142. package/dist/services/agent-runtime/types.d.ts.map +1 -1
  143. package/dist/services/approval/non-interactive-approval-policy.d.ts.map +1 -1
  144. package/dist/services/approval/non-interactive-approval-policy.js +10 -0
  145. package/dist/services/approval/non-interactive-approval-policy.js.map +1 -1
  146. package/dist/services/approval/shell-auto-approval-resolver.d.ts +2 -0
  147. package/dist/services/approval/shell-auto-approval-resolver.d.ts.map +1 -1
  148. package/dist/services/approval/shell-auto-approval-resolver.js +4 -2
  149. package/dist/services/approval/shell-auto-approval-resolver.js.map +1 -1
  150. package/dist/services/conversation/conversation-adapter-factory.d.ts +1 -1
  151. package/dist/services/conversation/conversation-adapter-factory.d.ts.map +1 -1
  152. package/dist/services/conversation/conversation-adapter.d.ts +1 -1
  153. package/dist/services/conversation/conversation-adapter.d.ts.map +1 -1
  154. package/dist/services/conversation/conversation-runtime-factory.d.ts +1 -1
  155. package/dist/services/conversation/conversation-runtime-factory.d.ts.map +1 -1
  156. package/dist/services/conversation/conversation-runtime-factory.js +1 -1
  157. package/dist/services/conversation/conversation-runtime-factory.js.map +1 -1
  158. package/dist/services/conversation/conversation-service.d.ts +4 -1
  159. package/dist/services/conversation/conversation-service.d.ts.map +1 -1
  160. package/dist/services/conversation/conversation-service.js +25 -0
  161. package/dist/services/conversation/conversation-service.js.map +1 -1
  162. package/dist/services/conversation/session-index/session-index-service.d.ts +1 -1
  163. package/dist/services/conversation/session-index/session-index-service.d.ts.map +1 -1
  164. package/dist/services/conversation/session-index/session-index-service.js +1 -1
  165. package/dist/services/conversation/session-index/session-index-service.js.map +1 -1
  166. package/dist/services/retry/provider-failure-classification.d.ts +2 -0
  167. package/dist/services/retry/provider-failure-classification.d.ts.map +1 -1
  168. package/dist/services/retry/provider-failure-classification.js +43 -0
  169. package/dist/services/retry/provider-failure-classification.js.map +1 -1
  170. package/dist/services/sandboxed-code-host/host-worker.d.ts.map +1 -1
  171. package/dist/services/sandboxed-code-host/host-worker.js +3 -1
  172. package/dist/services/sandboxed-code-host/host-worker.js.map +1 -1
  173. package/dist/services/session/session-composition.d.ts +3 -0
  174. package/dist/services/session/session-composition.d.ts.map +1 -1
  175. package/dist/services/session/session-composition.js +2 -1
  176. package/dist/services/session/session-composition.js.map +1 -1
  177. package/dist/services/session/session-input-planner.d.ts +2 -0
  178. package/dist/services/session/session-input-planner.d.ts.map +1 -1
  179. package/dist/services/session/session-input-planner.js +4 -6
  180. package/dist/services/session/session-input-planner.js.map +1 -1
  181. package/dist/services/settings/settings-env.d.ts.map +1 -1
  182. package/dist/services/settings/settings-env.js +9 -0
  183. package/dist/services/settings/settings-env.js.map +1 -1
  184. package/dist/services/settings/settings-schema.d.ts +24 -0
  185. package/dist/services/settings/settings-schema.d.ts.map +1 -1
  186. package/dist/services/settings/settings-schema.js +16 -0
  187. package/dist/services/settings/settings-schema.js.map +1 -1
  188. package/dist/services/settings/settings-sources.d.ts +2 -0
  189. package/dist/services/settings/settings-sources.d.ts.map +1 -1
  190. package/dist/services/settings/settings-sources.js +2 -0
  191. package/dist/services/settings/settings-sources.js.map +1 -1
  192. package/dist/services/settings/settings-ui-metadata.d.ts.map +1 -1
  193. package/dist/services/settings/settings-ui-metadata.js +4 -1
  194. package/dist/services/settings/settings-ui-metadata.js.map +1 -1
  195. package/dist/services/settings/test-helpers/settings-consumer-inventory.d.ts +1 -1
  196. package/dist/services/settings/test-helpers/settings-consumer-inventory.d.ts.map +1 -1
  197. package/dist/services/settings/test-helpers/settings-consumer-inventory.js +3 -0
  198. package/dist/services/settings/test-helpers/settings-consumer-inventory.js.map +1 -1
  199. package/dist/services/subagents/execution-runner.d.ts.map +1 -1
  200. package/dist/services/subagents/execution-runner.js +2 -1
  201. package/dist/services/subagents/execution-runner.js.map +1 -1
  202. package/dist/services/subagents/foreground-subagent-lease.d.ts +15 -0
  203. package/dist/services/subagents/foreground-subagent-lease.d.ts.map +1 -1
  204. package/dist/services/subagents/foreground-subagent-lease.js +42 -2
  205. package/dist/services/subagents/foreground-subagent-lease.js.map +1 -1
  206. package/dist/services/subagents/nested-runner.d.ts +1 -1
  207. package/dist/services/subagents/nested-runner.d.ts.map +1 -1
  208. package/dist/services/subagents/nested-runner.js +89 -22
  209. package/dist/services/subagents/nested-runner.js.map +1 -1
  210. package/dist/services/subagents/runtime.d.ts.map +1 -1
  211. package/dist/services/subagents/runtime.js +30 -4
  212. package/dist/services/subagents/runtime.js.map +1 -1
  213. package/dist/services/subagents/subagent-async-registry.d.ts +3 -0
  214. package/dist/services/subagents/subagent-async-registry.d.ts.map +1 -1
  215. package/dist/services/subagents/subagent-async-registry.js +53 -8
  216. package/dist/services/subagents/subagent-async-registry.js.map +1 -1
  217. package/dist/services/subagents/subagent-manager.d.ts.map +1 -1
  218. package/dist/services/subagents/subagent-manager.js +65 -3
  219. package/dist/services/subagents/subagent-manager.js.map +1 -1
  220. package/dist/services/subagents/subagent-role-pool-selector.d.ts +5 -1
  221. package/dist/services/subagents/subagent-role-pool-selector.d.ts.map +1 -1
  222. package/dist/services/subagents/subagent-role-pool-selector.js +24 -5
  223. package/dist/services/subagents/subagent-role-pool-selector.js.map +1 -1
  224. package/dist/services/subagents/tool-policy.d.ts +2 -2
  225. package/dist/services/subagents/tool-policy.d.ts.map +1 -1
  226. package/dist/services/subagents/tool-policy.js +8 -2
  227. package/dist/services/subagents/tool-policy.js.map +1 -1
  228. package/dist/services/subagents/types.d.ts +15 -2
  229. package/dist/services/subagents/types.d.ts.map +1 -1
  230. package/dist/services/subagents/types.js.map +1 -1
  231. package/dist/services/subagents/worker-worktree.d.ts +19 -1
  232. package/dist/services/subagents/worker-worktree.d.ts.map +1 -1
  233. package/dist/services/subagents/worker-worktree.js +128 -4
  234. package/dist/services/subagents/worker-worktree.js.map +1 -1
  235. package/dist/services/workspace/worktree-inventory.d.ts +6 -0
  236. package/dist/services/workspace/worktree-inventory.d.ts.map +1 -1
  237. package/dist/services/workspace/worktree-inventory.js +29 -1
  238. package/dist/services/workspace/worktree-inventory.js.map +1 -1
  239. package/dist/tools/agent/propose-goal.d.ts +17 -0
  240. package/dist/tools/agent/propose-goal.d.ts.map +1 -0
  241. package/dist/tools/agent/propose-goal.js +64 -0
  242. package/dist/tools/agent/propose-goal.js.map +1 -0
  243. package/dist/tools/agent/run-subagent-async.d.ts +61 -3
  244. package/dist/tools/agent/run-subagent-async.d.ts.map +1 -1
  245. package/dist/tools/agent/run-subagent-async.js +13 -4
  246. package/dist/tools/agent/run-subagent-async.js.map +1 -1
  247. package/dist/tools/agent/run-subagent.d.ts +73 -7
  248. package/dist/tools/agent/run-subagent.d.ts.map +1 -1
  249. package/dist/tools/agent/run-subagent.js +84 -22
  250. package/dist/tools/agent/run-subagent.js.map +1 -1
  251. package/dist/tools/system/run-code/index.d.ts +1 -1
  252. package/dist/tools/system/run-code/index.d.ts.map +1 -1
  253. package/dist/tools/system/run-code/index.js +1 -1
  254. package/dist/tools/system/run-code/index.js.map +1 -1
  255. package/dist/tools/system/run-code/run-code-agent-capability.d.ts +99 -0
  256. package/dist/tools/system/run-code/run-code-agent-capability.d.ts.map +1 -0
  257. package/dist/tools/system/run-code/run-code-agent-capability.js +384 -0
  258. package/dist/tools/system/run-code/run-code-agent-capability.js.map +1 -0
  259. package/dist/tools/system/run-code/run-code-runtime.d.ts +9 -0
  260. package/dist/tools/system/run-code/run-code-runtime.d.ts.map +1 -1
  261. package/dist/tools/system/run-code/run-code-runtime.js +54 -1
  262. package/dist/tools/system/run-code/run-code-runtime.js.map +1 -1
  263. package/dist/tools/system/run-code/run-code.d.ts +12 -1
  264. package/dist/tools/system/run-code/run-code.d.ts.map +1 -1
  265. package/dist/tools/system/run-code/run-code.js +48 -1
  266. package/dist/tools/system/run-code/run-code.js.map +1 -1
  267. package/dist/tools/tool-names.d.ts +1 -0
  268. package/dist/tools/tool-names.d.ts.map +1 -1
  269. package/dist/tools/tool-names.js +1 -0
  270. package/dist/tools/tool-names.js.map +1 -1
  271. package/dist/tools/web/web-search.d.ts +18 -0
  272. package/dist/tools/web/web-search.d.ts.map +1 -1
  273. package/dist/tools/web/web-search.js +29 -4
  274. package/dist/tools/web/web-search.js.map +1 -1
  275. package/dist/types/message.d.ts +1 -0
  276. package/dist/types/message.d.ts.map +1 -1
  277. package/dist/types/message.js +13 -0
  278. package/dist/types/message.js.map +1 -1
  279. package/dist/utils/conversation/conversation-event-handler.js +1 -1
  280. package/dist/utils/conversation/conversation-event-handler.js.map +1 -1
  281. package/dist/utils/value-suggestions.d.ts.map +1 -1
  282. package/dist/utils/value-suggestions.js +2 -0
  283. package/dist/utils/value-suggestions.js.map +1 -1
  284. package/package.json +4 -2
@@ -4,13 +4,17 @@ import type { ILoggingService, ISettingsService, ISessionContextService } from '
4
4
  import type { ExecutionContext } from '../services/execution-context.js';
5
5
  import type { NestedSubagentResult, SubagentCancelAcknowledgement, SubagentResult, SubagentRunStatus, SubagentSteerAcknowledgement } from '../services/subagents/types.js';
6
6
  import type { AgentRuntime } from '../services/agent-runtime/agent-runtime.js';
7
+ import type { AgentSpec } from '../services/agent-runtime/types.js';
8
+ import type { AgentSpecBoundaryResult } from '../services/agent-runtime/permission-boundary.js';
9
+ import type { ResolvedAgentDefinition } from '../services/agent-runtime/resolved-agent.js';
7
10
  import type { SkillsService } from '../services/skills/skills-service.js';
8
11
  import type { SubagentRunHandle } from '../services/subagents/types.js';
9
12
  import type { ToolOwnershipRegistry } from '../services/approval/tool-ownership-registry.js';
10
- import type { BackgroundSubagentApprovalPauseSink } from '../services/subagents/foreground-subagent-lease.js';
13
+ import type { BackgroundSubagentApprovalPauseSink, ForegroundSubagentApprovalCallback } from '../services/subagents/foreground-subagent-lease.js';
11
14
  import type { ForegroundSubagentCandidate } from '../services/subagents/nested-runner.js';
12
15
  import type { NestedToolCompatibilityState } from '../services/session/nested-tool-compatibility-state.js';
13
16
  import type { SessionBrowser } from '../services/conversation/session-browser.js';
17
+ import type { SubagentDefinition } from '../services/subagents/types.js';
14
18
  export interface SubagentBridgeDeps {
15
19
  logger: ILoggingService;
16
20
  settings: ISettingsService;
@@ -38,6 +42,28 @@ export interface SubagentBridgeDeps {
38
42
  /** Root session transcript browser, lent to the librarian subagent. */
39
43
  sessionBrowser?: SessionBrowser;
40
44
  }
45
+ /**
46
+ * Host-owned launch input for a resolved generic agent.
47
+ *
48
+ * This is intentionally separate from the raw `runSubagent` entry point. A
49
+ * caller must resolve and attenuate the AgentSpec before it can reach this
50
+ * seam; no VM-facing tool accepts this shape.
51
+ */
52
+ export interface ResolvedSubagentLaunch {
53
+ /** A successful host boundary result, a new runtime definition, or a legacy
54
+ * manager-ready definition retained by compatibility callers. */
55
+ resolvedDefinition: AgentSpecBoundaryResult | ResolvedAgentDefinition | SubagentDefinition;
56
+ /** Boundary results carry their task in `spec.goal`; other definitions need
57
+ * an explicit task. */
58
+ task?: string;
59
+ /** A boundary result's validated worktree is used when this is omitted. */
60
+ worktree?: string;
61
+ authorizedWorktreePath?: string;
62
+ name?: string;
63
+ continue_run_id?: string;
64
+ /** Host-only approval owner for pauses in this awaited foreground child. */
65
+ foregroundChildApproval?: ForegroundSubagentApprovalCallback;
66
+ }
41
67
  export declare class SubagentBridge {
42
68
  #private;
43
69
  constructor(deps: SubagentBridgeDeps);
@@ -93,14 +119,30 @@ export declare class SubagentBridge {
93
119
  */
94
120
  cancelBackgroundRuns(): void;
95
121
  createMentor: (question: string) => Promise<string>;
122
+ /**
123
+ * Run a host-resolved generic agent through the normal foreground tool
124
+ * lifecycle. The definition is deliberately handed to SubagentManager as
125
+ * `resolvedDefinition`; the manager therefore skips raw AgentSpec
126
+ * resolution while retaining nested approvals, the turn signal, worktree
127
+ * pinning, and traffic scoping.
128
+ */
129
+ runResolvedSubagent: (params: ResolvedSubagentLaunch, _context?: unknown, details?: unknown) => Promise<NestedSubagentResult>;
130
+ /**
131
+ * Start a host-resolved generic agent in the conversation-scoped async
132
+ * registry. Unlike the foreground method, this uses `backgroundSignal`, so
133
+ * an ordinary turn abort cannot cancel the retained run.
134
+ */
135
+ runResolvedSubagentAsync: (params: ResolvedSubagentLaunch) => Promise<SubagentRunHandle>;
96
136
  runSubagent: (params: {
97
- role: string;
98
- task: string;
137
+ role?: string;
138
+ task?: string;
139
+ agent_spec?: AgentSpec;
99
140
  worktree?: string;
100
141
  }, _context?: unknown, details?: unknown) => Promise<NestedSubagentResult>;
101
142
  runSubagentAsync: (params: {
102
- role: string;
103
- task: string;
143
+ role?: string;
144
+ task?: string;
145
+ agent_spec?: AgentSpec;
104
146
  name?: string;
105
147
  continue_run_id?: string;
106
148
  worktree?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"subagent-bridge.d.ts","sourceRoot":"","sources":["../../source/lib/subagent-bridge.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"subagent-bridge.d.ts","sourceRoot":"","sources":["../../source/lib/subagent-bridge.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,56 @@
1
1
  import { randomUUID } from 'node:crypto';
2
2
  import { SubagentManager } from '../services/subagents/subagent-manager.js';
3
+ import { adaptLegacyDefinition } from '../services/agent-runtime/legacy-adapter.js';
4
+ import { createRootBudget } from '../services/agent-runtime/execution-budget.js';
3
5
  import { createAbortError } from '../services/subagents/utils.js';
6
+ function isBoundaryResult(value) {
7
+ return typeof value === 'object' && value !== null && 'ok' in value;
8
+ }
9
+ function toManagerDefinition(value) {
10
+ // A legacy definition is already the manager's immutable launch contract.
11
+ // Preserve its identity so host callers can verify that no second
12
+ // resolution or widening occurred in the bridge.
13
+ if (isLegacyDefinition(value))
14
+ return value;
15
+ const budget = createRootBudget({
16
+ maxChildren: value.limits.maxChildren,
17
+ maxDepth: value.limits.maxDepth,
18
+ maxConcurrency: value.limits.maxConcurrency,
19
+ maxTokens: value.limits.maxTokens,
20
+ });
21
+ return {
22
+ ...adaptLegacyDefinition(value, budget),
23
+ isRootExecution: true,
24
+ };
25
+ }
26
+ function isLegacyDefinition(value) {
27
+ return typeof value.model === 'string';
28
+ }
29
+ function normalizeResolvedLaunch(params) {
30
+ let definitionInput = params.resolvedDefinition;
31
+ let task = params.task;
32
+ let worktree = params.worktree;
33
+ let authorizedWorktreePath = params.authorizedWorktreePath;
34
+ if (isBoundaryResult(definitionInput)) {
35
+ if (!definitionInput.ok) {
36
+ throw new Error(`Agent specification rejected: ${definitionInput.errors.map((error) => error.message).join('; ')}`);
37
+ }
38
+ const successfulResult = definitionInput;
39
+ definitionInput = successfulResult.definition;
40
+ task ??= successfulResult.spec.goal;
41
+ worktree ??= successfulResult.worktree;
42
+ authorizedWorktreePath ??= successfulResult.authorizedWorktreePath;
43
+ }
44
+ if (!task) {
45
+ throw new Error('Resolved subagent launches require a non-empty task.');
46
+ }
47
+ return {
48
+ definition: toManagerDefinition(definitionInput),
49
+ task,
50
+ ...(worktree ? { worktree } : {}),
51
+ ...(authorizedWorktreePath ? { authorizedWorktreePath } : {}),
52
+ };
53
+ }
4
54
  export class SubagentBridge {
5
55
  #subagentManager;
6
56
  #isDisposed = false;
@@ -251,14 +301,71 @@ export class SubagentBridge {
251
301
  endRun();
252
302
  }
253
303
  };
304
+ /**
305
+ * Run a host-resolved generic agent through the normal foreground tool
306
+ * lifecycle. The definition is deliberately handed to SubagentManager as
307
+ * `resolvedDefinition`; the manager therefore skips raw AgentSpec
308
+ * resolution while retaining nested approvals, the turn signal, worktree
309
+ * pinning, and traffic scoping.
310
+ */
311
+ runResolvedSubagent = async (params, _context, details) => {
312
+ if (!this.#subagentManager) {
313
+ throw new Error('Transient agent clients cannot spawn subagents.');
314
+ }
315
+ const launch = normalizeResolvedLaunch(params);
316
+ const detailsRecord = details;
317
+ const request = {
318
+ role: 'agent',
319
+ task: launch.task,
320
+ resolvedDefinition: launch.definition,
321
+ ...(launch.worktree ? { worktree: launch.worktree } : {}),
322
+ ...(launch.authorizedWorktreePath ? { authorizedWorktreePath: launch.authorizedWorktreePath } : {}),
323
+ parentTool: 'run_subagent',
324
+ ...(detailsRecord?.resumeState ? { resumeState: detailsRecord.resumeState } : {}),
325
+ signal: this.signal,
326
+ };
327
+ const endRun = this.#beginSubagentRun();
328
+ try {
329
+ return await this.#withSubagentTrafficContext(detailsRecord?.toolCall?.callId, () => this.#subagentManager.runAsTool(request, _context, params.foregroundChildApproval
330
+ ? { ...detailsRecord, foregroundChildApproval: params.foregroundChildApproval }
331
+ : details));
332
+ }
333
+ finally {
334
+ endRun();
335
+ }
336
+ };
337
+ /**
338
+ * Start a host-resolved generic agent in the conversation-scoped async
339
+ * registry. Unlike the foreground method, this uses `backgroundSignal`, so
340
+ * an ordinary turn abort cannot cancel the retained run.
341
+ */
342
+ runResolvedSubagentAsync = async (params) => {
343
+ if (!this.#subagentManager) {
344
+ throw new Error('Transient agent clients cannot spawn subagents.');
345
+ }
346
+ const launch = normalizeResolvedLaunch(params);
347
+ const request = {
348
+ role: 'agent',
349
+ task: launch.task,
350
+ resolvedDefinition: launch.definition,
351
+ ...(params.name ? { name: params.name } : {}),
352
+ ...(params.continue_run_id ? { continueRunId: params.continue_run_id } : {}),
353
+ ...(launch.worktree ? { worktree: launch.worktree } : {}),
354
+ ...(launch.authorizedWorktreePath ? { authorizedWorktreePath: launch.authorizedWorktreePath } : {}),
355
+ parentTool: 'run_subagent',
356
+ signal: this.backgroundSignal,
357
+ };
358
+ return this.#subagentManager.startRunAsync(request);
359
+ };
254
360
  runSubagent = async (params, _context, details) => {
255
361
  if (!this.#subagentManager) {
256
362
  throw new Error('Transient agent clients cannot spawn subagents.');
257
363
  }
258
364
  const detailsRecord = details;
259
365
  const request = {
260
- role: params.role,
261
- task: params.task,
366
+ role: params.agent_spec ? 'agent' : params.role,
367
+ task: params.agent_spec?.goal ?? params.task,
368
+ ...(params.agent_spec ? { agentSpec: params.agent_spec } : {}),
262
369
  ...(params.worktree ? { worktree: params.worktree } : {}),
263
370
  parentTool: 'run_subagent',
264
371
  ...(detailsRecord?.resumeState ? { resumeState: detailsRecord.resumeState } : {}),
@@ -277,8 +384,9 @@ export class SubagentBridge {
277
384
  throw new Error('Transient agent clients cannot spawn subagents.');
278
385
  }
279
386
  const request = {
280
- role: params.role,
281
- task: params.task,
387
+ role: params.agent_spec ? 'agent' : params.role,
388
+ task: params.agent_spec?.goal ?? params.task,
389
+ ...(params.agent_spec ? { agentSpec: params.agent_spec } : {}),
282
390
  ...(params.name ? { name: params.name } : {}),
283
391
  ...(params.continue_run_id ? { continueRunId: params.continue_run_id } : {}),
284
392
  ...(params.worktree ? { worktree: params.worktree } : {}),
@@ -1 +1 @@
1
- {"version":3,"file":"subagent-bridge.js","sourceRoot":"","sources":["../../source/lib/subagent-bridge.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"subagent-bridge.js","sourceRoot":"","sources":["../../source/lib/subagent-bridge.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,73 @@
1
+ export declare const AGENT_EVENT_TYPES: readonly ['session_created', 'user_message_accepted', 'user_message_rejected', 'assistant_started', 'text_delta', 'reasoning_delta', 'tool_started', 'command_message', 'approval_required', 'interaction_updated', 'interaction_resolved', 'interaction_recovered', 'usage_update', 'retry', 'retry_exhausted', 'subagent_started', 'subagent_tool_started', 'subagent_text_turn', 'subagent_command_message', 'subagent_approval_required', 'subagent_completed', 'subagent_interrupted', 'subagent_question', 'context_compaction_started', 'context_compaction_completed', 'context_compaction_failed', 'turn_completed', 'turn_failed', 'turn_aborted'];
2
+ export type AgentEventType = (typeof AGENT_EVENT_TYPES)[number];
3
+ export declare const FROZEN_AGENT_EVENT_TYPES: readonly ["session_created", "user_message_accepted", "user_message_rejected", "assistant_started", "text_delta", "reasoning_delta", "tool_started", "command_message", "approval_required", "interaction_updated", "interaction_resolved", "interaction_recovered", "usage_update", "retry", "retry_exhausted", "subagent_started", "subagent_tool_started", "subagent_text_turn", "subagent_command_message", "subagent_approval_required", "subagent_completed", "subagent_interrupted", "subagent_question", "context_compaction_started", "context_compaction_completed", "context_compaction_failed", "turn_completed", "turn_failed", "turn_aborted"];
4
+ export type AgentEventEnvelope = {
5
+ readonly schemaVersion: 1;
6
+ readonly id: number;
7
+ readonly sessionId: string;
8
+ readonly type: AgentEventType;
9
+ readonly occurredAt: string;
10
+ readonly payload: Readonly<Record<string, unknown>>;
11
+ };
12
+ export declare class AgentWireError extends Error {
13
+ constructor(message?: string);
14
+ }
15
+ export declare function parseAgentEventEnvelope(value: unknown, expectedSessionId?: string): AgentEventEnvelope;
16
+ export declare const parseEventEnvelope: typeof parseAgentEventEnvelope;
17
+ export declare const InteractionProtocolError: typeof AgentWireError;
18
+ export type InteractionKind = 'tool_approval' | 'ask_user' | 'check_in';
19
+ export type InteractionVariant = 'ordinary_tool' | 'folder_read' | 'outside_workspace_edit' | 'denied_read' | 'docker_host_control' | 'sandbox_network_access' | 'post_execute' | 'max_turns' | 'run_budget' | 'ask_user';
20
+ export type SafeChoice = {
21
+ id: string;
22
+ label: string;
23
+ description?: string;
24
+ destructive?: boolean;
25
+ };
26
+ export type AskUserQuestionDto = {
27
+ index: number;
28
+ question: string;
29
+ options: Array<{
30
+ label: string;
31
+ description?: string;
32
+ }>;
33
+ multiSelect: boolean;
34
+ };
35
+ export type PendingInteractionDto = {
36
+ version: 1;
37
+ interactionId: string;
38
+ kind: InteractionKind;
39
+ variant: InteractionVariant;
40
+ descriptor: {
41
+ agentName: string;
42
+ toolName: string;
43
+ callId?: string;
44
+ argumentsText: string;
45
+ display?: {
46
+ command?: string;
47
+ target?: string;
48
+ scope?: string;
49
+ warning?: string;
50
+ };
51
+ llmAdvisory?: {
52
+ reasoning: string;
53
+ approved: boolean;
54
+ model: string;
55
+ riskLevel?: string;
56
+ };
57
+ checkIn?: 'max_turns' | 'run_budget';
58
+ deniedRead?: {
59
+ displayPath: string;
60
+ displayParent: string;
61
+ sensitive: boolean;
62
+ };
63
+ runBudgetEvidence?: Record<string, number>;
64
+ };
65
+ choices: SafeChoice[];
66
+ askUser?: {
67
+ questions: AskUserQuestionDto[];
68
+ answers: Array<string | string[]>;
69
+ currentQuestionIndex: number;
70
+ };
71
+ revision: number;
72
+ };
73
+ export declare function validatePendingInteractionDto(value: unknown): PendingInteractionDto;
@@ -0,0 +1,212 @@
1
+ export const AGENT_EVENT_TYPES = [
2
+ 'session_created',
3
+ 'user_message_accepted',
4
+ 'user_message_rejected',
5
+ 'assistant_started',
6
+ 'text_delta',
7
+ 'reasoning_delta',
8
+ 'tool_started',
9
+ 'command_message',
10
+ 'approval_required',
11
+ 'interaction_updated',
12
+ 'interaction_resolved',
13
+ 'interaction_recovered',
14
+ 'usage_update',
15
+ 'retry',
16
+ 'retry_exhausted',
17
+ 'subagent_started',
18
+ 'subagent_tool_started',
19
+ 'subagent_text_turn',
20
+ 'subagent_command_message',
21
+ 'subagent_approval_required',
22
+ 'subagent_completed',
23
+ 'subagent_interrupted',
24
+ 'subagent_question',
25
+ 'context_compaction_started',
26
+ 'context_compaction_completed',
27
+ 'context_compaction_failed',
28
+ 'turn_completed',
29
+ 'turn_failed',
30
+ 'turn_aborted',
31
+ ];
32
+ export const FROZEN_AGENT_EVENT_TYPES = AGENT_EVENT_TYPES;
33
+ export class AgentWireError extends Error {
34
+ constructor(message = 'invalid agent wire value') {
35
+ super(message);
36
+ this.name = 'AgentWireError';
37
+ }
38
+ }
39
+ const EVENT_SET = new Set(AGENT_EVENT_TYPES);
40
+ const ID = /^[A-Za-z0-9_-]{1,256}$/;
41
+ function object(value) {
42
+ if (!value || typeof value !== 'object' || Array.isArray(value))
43
+ throw new AgentWireError();
44
+ return value;
45
+ }
46
+ function text(value, max) {
47
+ if (typeof value !== 'string' || value.length > max || /[\u0000-\u001f\u007f]/.test(value))
48
+ throw new AgentWireError();
49
+ return value;
50
+ }
51
+ function keys(value, allowed, required = allowed) {
52
+ const present = new Set(Object.keys(value));
53
+ if (Object.keys(value).some((key) => !allowed.includes(key)) || required.some((key) => !present.has(key)))
54
+ throw new AgentWireError();
55
+ }
56
+ export function parseAgentEventEnvelope(value, expectedSessionId) {
57
+ const input = object(value);
58
+ keys(input, ['schemaVersion', 'id', 'sessionId', 'type', 'occurredAt', 'payload']);
59
+ if (input.schemaVersion !== 1 ||
60
+ typeof input.id !== 'number' ||
61
+ !Number.isSafeInteger(input.id) ||
62
+ input.id < 1 ||
63
+ typeof input.type !== 'string' ||
64
+ !EVENT_SET.has(input.type))
65
+ throw new AgentWireError('unsupported agent event');
66
+ const sessionId = text(input.sessionId, 256);
67
+ if (!ID.test(sessionId) || (expectedSessionId && sessionId !== expectedSessionId))
68
+ throw new AgentWireError('event identity mismatch');
69
+ return {
70
+ schemaVersion: 1,
71
+ id: input.id,
72
+ sessionId,
73
+ type: input.type,
74
+ occurredAt: text(input.occurredAt, 128),
75
+ payload: object(input.payload),
76
+ };
77
+ }
78
+ export const parseEventEnvelope = parseAgentEventEnvelope;
79
+ export const InteractionProtocolError = AgentWireError;
80
+ const VARIANTS = [
81
+ 'ordinary_tool',
82
+ 'folder_read',
83
+ 'outside_workspace_edit',
84
+ 'denied_read',
85
+ 'docker_host_control',
86
+ 'sandbox_network_access',
87
+ 'post_execute',
88
+ 'max_turns',
89
+ 'run_budget',
90
+ 'ask_user',
91
+ ];
92
+ export function validatePendingInteractionDto(value) {
93
+ const dto = object(value);
94
+ keys(dto, ['version', 'interactionId', 'kind', 'variant', 'descriptor', 'choices', 'askUser', 'revision'], ['version', 'interactionId', 'kind', 'variant', 'descriptor', 'choices', 'revision']);
95
+ if (dto.version !== 1 ||
96
+ typeof dto.interactionId !== 'string' ||
97
+ !ID.test(dto.interactionId) ||
98
+ typeof dto.kind !== 'string' ||
99
+ !['tool_approval', 'ask_user', 'check_in'].includes(dto.kind) ||
100
+ typeof dto.variant !== 'string' ||
101
+ !VARIANTS.includes(dto.variant) ||
102
+ typeof dto.revision !== 'number' ||
103
+ !Number.isSafeInteger(dto.revision) ||
104
+ dto.revision < 1)
105
+ throw new AgentWireError();
106
+ if ((dto.kind === 'ask_user' && dto.variant !== 'ask_user') ||
107
+ (dto.kind === 'check_in' && !['max_turns', 'run_budget'].includes(dto.variant)) ||
108
+ (dto.kind === 'tool_approval' && ['ask_user', 'max_turns', 'run_budget'].includes(dto.variant)))
109
+ throw new AgentWireError();
110
+ const descriptor = object(dto.descriptor);
111
+ keys(descriptor, [
112
+ 'agentName',
113
+ 'toolName',
114
+ 'callId',
115
+ 'argumentsText',
116
+ 'display',
117
+ 'llmAdvisory',
118
+ 'checkIn',
119
+ 'deniedRead',
120
+ 'runBudgetEvidence',
121
+ ], ['agentName', 'toolName', 'argumentsText']);
122
+ text(descriptor.agentName, 256);
123
+ text(descriptor.toolName, 256);
124
+ text(descriptor.argumentsText, 8192);
125
+ if (descriptor.callId !== undefined && (typeof descriptor.callId !== 'string' || !ID.test(descriptor.callId)))
126
+ throw new AgentWireError();
127
+ if (descriptor.display !== undefined) {
128
+ const display = object(descriptor.display);
129
+ keys(display, ['command', 'target', 'scope', 'warning'], []);
130
+ for (const v of Object.values(display))
131
+ text(v, 2048);
132
+ }
133
+ if (descriptor.llmAdvisory !== undefined) {
134
+ const a = object(descriptor.llmAdvisory);
135
+ keys(a, ['reasoning', 'approved', 'model', 'riskLevel'], ['reasoning', 'approved', 'model']);
136
+ text(a.reasoning, 2048);
137
+ text(a.model, 256);
138
+ if (typeof a.approved !== 'boolean' || (a.riskLevel !== undefined && typeof a.riskLevel !== 'string'))
139
+ throw new AgentWireError();
140
+ }
141
+ if (descriptor.deniedRead !== undefined) {
142
+ const d = object(descriptor.deniedRead);
143
+ keys(d, ['displayPath', 'displayParent', 'sensitive']);
144
+ text(d.displayPath, 256);
145
+ text(d.displayParent, 256);
146
+ if (typeof d.sensitive !== 'boolean')
147
+ throw new AgentWireError();
148
+ }
149
+ if (descriptor.runBudgetEvidence !== undefined) {
150
+ const e = object(descriptor.runBudgetEvidence);
151
+ for (const v of Object.values(e))
152
+ if (typeof v !== 'number' || !Number.isFinite(v) || v < 0)
153
+ throw new AgentWireError();
154
+ }
155
+ if (!Array.isArray(dto.choices) || dto.choices.length === 0 || dto.choices.length > 32)
156
+ throw new AgentWireError();
157
+ for (const raw of dto.choices) {
158
+ const c = object(raw);
159
+ keys(c, ['id', 'label', 'description', 'destructive'], ['id', 'label']);
160
+ if (typeof c.id !== 'string' || !/^[A-Za-z0-9:_-]{1,128}$/.test(c.id))
161
+ throw new AgentWireError();
162
+ text(c.label, 2048);
163
+ if (c.description !== undefined)
164
+ text(c.description, 2048);
165
+ if (c.destructive !== undefined && typeof c.destructive !== 'boolean')
166
+ throw new AgentWireError();
167
+ }
168
+ if (dto.askUser !== undefined) {
169
+ if (dto.kind !== 'ask_user')
170
+ throw new AgentWireError();
171
+ const ask = object(dto.askUser);
172
+ keys(ask, ['questions', 'answers', 'currentQuestionIndex']);
173
+ if (!Array.isArray(ask.questions) ||
174
+ !Array.isArray(ask.answers) ||
175
+ ask.questions.length === 0 ||
176
+ ask.questions.length > 32)
177
+ throw new AgentWireError();
178
+ ask.questions.forEach((raw, index) => {
179
+ const q = object(raw);
180
+ keys(q, ['index', 'question', 'options', 'multiSelect']);
181
+ if (q.index !== index ||
182
+ typeof q.question !== 'string' ||
183
+ !Array.isArray(q.options) ||
184
+ typeof q.multiSelect !== 'boolean')
185
+ throw new AgentWireError();
186
+ text(q.question, 4096);
187
+ if (q.options.length > 32)
188
+ throw new AgentWireError();
189
+ q.options.forEach((rawOption) => {
190
+ const option = object(rawOption);
191
+ keys(option, ['label', 'description'], ['label']);
192
+ text(option.label, 512);
193
+ if (option.description !== undefined)
194
+ text(option.description, 2048);
195
+ });
196
+ });
197
+ ask.answers.forEach((answer) => {
198
+ if (typeof answer === 'string')
199
+ text(answer, 16384);
200
+ else if (Array.isArray(answer))
201
+ answer.forEach((item) => text(item, 512));
202
+ else
203
+ throw new AgentWireError();
204
+ });
205
+ if (typeof ask.currentQuestionIndex !== 'number' ||
206
+ !Number.isSafeInteger(ask.currentQuestionIndex) ||
207
+ ask.currentQuestionIndex < 0 ||
208
+ ask.currentQuestionIndex >= ask.questions.length)
209
+ throw new AgentWireError();
210
+ }
211
+ return dto;
212
+ }
@@ -0,0 +1 @@
1
+ {"name":"@qduc/agent-wire","type":"module","exports":"./index.js"}
@@ -14,6 +14,15 @@ it('orchestrator prompt does not encourage continued or direct work while delega
14
14
  expect(orchestratorPrompt).not.toContain('Directly inspect, edit, run commands, and test small or clear work');
15
15
  });
16
16
 
17
+ it('orchestrator prompt prefers the generic agent spec for diverse tasks and states its limits', () => {
18
+ expect(orchestratorPrompt).toContain('generic agent_spec interface');
19
+ expect(orchestratorPrompt).toContain('safe read-only workspace defaults');
20
+ expect(orchestratorPrompt).toContain('not yet supported by plan-mode interception');
21
+ expect(orchestratorPrompt).toContain('writable generic runs cannot be continued');
22
+ expect(orchestratorPrompt).toContain('agent.run({ spec, worktree? })');
23
+ expect(orchestratorPrompt).toContain('without one, interrupted children reject');
24
+ });
25
+
17
26
  it('orchestrator prompt gives the orchestrator standing to overrule a subagent recommendation', () => {
18
27
  const lower = orchestratorPrompt.toLowerCase();
19
28
 
@@ -6,6 +6,8 @@ Choose investigation, planning, delegation, implementation, review, and validati
6
6
 
7
7
  Get the work done with the least delegation that fully and safely covers it. Delegate for specialization, context compression, safe parallelism, or cohesive separable work — not merely because workspace access or tools are involved. Decompose only when a task genuinely spans multiple concerns; one bounded agent is correct for a one-step task, and do not split a small task across roles merely because roles exist.
8
8
 
9
+ For diverse tasks, prefer the generic agent_spec interface: make the goal, context, constraints, completion condition, and required tool allowlist explicit. When `run_code` advertises its script-only `agent` capability, compose bounded agent executions with `agent.run({ spec, worktree? })` or start a background run with `agent.start({ spec, name? })`; status, result, and cancellation use `agent.status/result/cancel`. Omitted tools use safe read-only workspace defaults. A bound session approval owner presents child tool approval pauses through the same user surface; without one, interrupted children reject. Use named role presets when their specialized behavior or continuation contract is a better fit; generic invocations are not yet supported by plan-mode interception. A generic agent may have write access and use a worktree, but writable generic runs cannot be continued, and the script capability rejects `continue_run_id`.
10
+
9
11
  Preserve orchestrator attention for investigation, decisions, review, and integration judgement by delegating bounded mechanical follow-through when it forms a clean execution unit. Routine formatting and validation, focused commits, merges, diff collection, and branch or worktree cleanup are appropriate worker tasks when they can proceed with explicit acceptance criteria. Do not delegate merely to avoid one trivial command when coordination costs more than direct execution, and take over a blocked mechanical operation rather than stalling the outcome.
10
12
 
11
13
  Delegation transfers execution, never outcome ownership. Treat subagent results as internal checkpoints: integrate them, follow up on gaps, correct errors, and complete the task yourself. Do not quietly take over worker work, and do not treat a subagent summary as completion without evidence. Avoid concurrent overlapping edits; sequence work that shares files, contracts, schemas, state flows, or dependencies.
@@ -1 +1 @@
1
- {"version":3,"file":"subagent-delegation.d.ts","sourceRoot":"","sources":["../../source/prompts/subagent-delegation.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,wBAAgB,6BAA6B,CAAC,EAC5C,gBAAwB,EACxB,aAAoB,EACpB,eAAuB,EACvB,iBAAwB,EACxB,iBAAyB,EACzB,eAAuB,GACxB,GAAE;IACD,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,eAAe,CAAC,EAAE,OAAO,CAAC;CACtB,GAAG,MAAM,CAkEd"}
1
+ {"version":3,"file":"subagent-delegation.d.ts","sourceRoot":"","sources":["../../source/prompts/subagent-delegation.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,wBAAgB,6BAA6B,CAAC,EAC5C,gBAAwB,EACxB,aAAoB,EACpB,eAAuB,EACvB,iBAAwB,EACxB,iBAAyB,EACzB,eAAuB,GACxB,GAAE;IACD,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,eAAe,CAAC,EAAE,OAAO,CAAC;CACtB,GAAG,MAAM,CAsEd"}