openhorse 0.2.19 → 0.2.22

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 (423) hide show
  1. package/dist/agents/coordinator.d.ts.map +1 -1
  2. package/dist/agents/fork.d.ts.map +1 -1
  3. package/dist/agents/fork.js +0 -1
  4. package/dist/agents/fork.js.map +1 -1
  5. package/dist/agents/worker-pool.d.ts.map +1 -1
  6. package/dist/agents/worker-pool.js +3 -1
  7. package/dist/agents/worker-pool.js.map +1 -1
  8. package/dist/cli.js +28 -3
  9. package/dist/cli.js.map +1 -1
  10. package/dist/commands/index.d.ts.map +1 -1
  11. package/dist/commands/index.js +202 -77
  12. package/dist/commands/index.js.map +1 -1
  13. package/dist/commands/parser.d.ts.map +1 -1
  14. package/dist/commands/parser.js +8 -3
  15. package/dist/commands/parser.js.map +1 -1
  16. package/dist/commands/types.d.ts +2 -0
  17. package/dist/commands/types.d.ts.map +1 -1
  18. package/dist/commands/types.js.map +1 -1
  19. package/dist/core/checkpoint.d.ts.map +1 -1
  20. package/dist/core/checkpoint.js +3 -0
  21. package/dist/core/checkpoint.js.map +1 -1
  22. package/dist/core/cost-tracker.d.ts +45 -5
  23. package/dist/core/cost-tracker.d.ts.map +1 -1
  24. package/dist/core/cost-tracker.js +78 -13
  25. package/dist/core/cost-tracker.js.map +1 -1
  26. package/dist/framework/index.d.ts +1 -1
  27. package/dist/framework/index.d.ts.map +1 -1
  28. package/dist/framework/index.js.map +1 -1
  29. package/dist/framework/prompt.d.ts.map +1 -1
  30. package/dist/framework/prompt.js +16 -0
  31. package/dist/framework/prompt.js.map +1 -1
  32. package/dist/framework/query.d.ts +25 -0
  33. package/dist/framework/query.d.ts.map +1 -1
  34. package/dist/framework/query.js +196 -56
  35. package/dist/framework/query.js.map +1 -1
  36. package/dist/framework/store.d.ts +6 -1
  37. package/dist/framework/store.d.ts.map +1 -1
  38. package/dist/framework/store.js +10 -1
  39. package/dist/framework/store.js.map +1 -1
  40. package/dist/harness/context-harness.d.ts.map +1 -1
  41. package/dist/harness/context-harness.js +6 -1
  42. package/dist/harness/context-harness.js.map +1 -1
  43. package/dist/harness/ledger.d.ts +1 -0
  44. package/dist/harness/ledger.d.ts.map +1 -1
  45. package/dist/harness/ledger.js +12 -0
  46. package/dist/harness/ledger.js.map +1 -1
  47. package/dist/harness/safety.d.ts +2 -0
  48. package/dist/harness/safety.d.ts.map +1 -1
  49. package/dist/harness/safety.js +27 -3
  50. package/dist/harness/safety.js.map +1 -1
  51. package/dist/index.d.ts +2 -1
  52. package/dist/index.d.ts.map +1 -1
  53. package/dist/init.d.ts +1 -1
  54. package/dist/init.d.ts.map +1 -1
  55. package/dist/init.js +1 -1
  56. package/dist/init.js.map +1 -1
  57. package/dist/ink-ui/components/Markdown.d.ts +1 -1
  58. package/dist/ink-ui/components/Markdown.d.ts.map +1 -1
  59. package/dist/ink-ui/components/Markdown.js +1 -1
  60. package/dist/ink-ui/components/Markdown.js.map +1 -1
  61. package/dist/ink-ui/components/StatusLine.d.ts.map +1 -1
  62. package/dist/ink-ui/components/StatusLine.js +0 -2
  63. package/dist/ink-ui/components/StatusLine.js.map +1 -1
  64. package/dist/ink-ui/runtime/grapheme.d.ts +9 -8
  65. package/dist/ink-ui/runtime/grapheme.d.ts.map +1 -1
  66. package/dist/ink-ui/runtime/grapheme.js +14 -60
  67. package/dist/ink-ui/runtime/grapheme.js.map +1 -1
  68. package/dist/ink-ui/runtime/input-buffer.d.ts +9 -31
  69. package/dist/ink-ui/runtime/input-buffer.d.ts.map +1 -1
  70. package/dist/ink-ui/runtime/input-buffer.js +15 -162
  71. package/dist/ink-ui/runtime/input-buffer.js.map +1 -1
  72. package/dist/ink-ui/runtime/native-cursor.js +0 -25
  73. package/dist/ink-ui/runtime/native-cursor.js.map +1 -1
  74. package/dist/ink-ui/runtime/prompt-layout.d.ts +9 -29
  75. package/dist/ink-ui/runtime/prompt-layout.d.ts.map +1 -1
  76. package/dist/ink-ui/runtime/prompt-layout.js +18 -166
  77. package/dist/ink-ui/runtime/prompt-layout.js.map +1 -1
  78. package/dist/ink-ui/runtime/transcript-state.d.ts.map +1 -1
  79. package/dist/ink-ui/runtime/transcript-state.js +2 -0
  80. package/dist/ink-ui/runtime/transcript-state.js.map +1 -1
  81. package/dist/ink-ui/screens/ReplScreen.d.ts.map +1 -1
  82. package/dist/ink-ui/screens/ReplScreen.js +23 -5
  83. package/dist/ink-ui/screens/ReplScreen.js.map +1 -1
  84. package/dist/memory/entrypoint.js +1 -1
  85. package/dist/memory/entrypoint.js.map +1 -1
  86. package/dist/memory/storage.js +1 -1
  87. package/dist/memory/storage.js.map +1 -1
  88. package/dist/memory/store.d.ts +1 -0
  89. package/dist/memory/store.d.ts.map +1 -1
  90. package/dist/memory/store.js +9 -0
  91. package/dist/memory/store.js.map +1 -1
  92. package/dist/runtime/agent-runtime-controller.d.ts.map +1 -1
  93. package/dist/runtime/agent-runtime-controller.js +25 -0
  94. package/dist/runtime/agent-runtime-controller.js.map +1 -1
  95. package/dist/runtime/agent-runtime-protocol.d.ts +4 -1
  96. package/dist/runtime/agent-runtime-protocol.d.ts.map +1 -1
  97. package/dist/runtime/agent-runtime-protocol.js +6 -0
  98. package/dist/runtime/agent-runtime-protocol.js.map +1 -1
  99. package/dist/runtime/chat-controller.d.ts +27 -0
  100. package/dist/runtime/chat-controller.d.ts.map +1 -1
  101. package/dist/runtime/chat-controller.js +374 -88
  102. package/dist/runtime/chat-controller.js.map +1 -1
  103. package/dist/runtime/composer/buffer.d.ts +43 -0
  104. package/dist/runtime/composer/buffer.d.ts.map +1 -0
  105. package/dist/runtime/composer/buffer.js +176 -0
  106. package/dist/runtime/composer/buffer.js.map +1 -0
  107. package/dist/runtime/composer/grapheme.d.ts +19 -0
  108. package/dist/runtime/composer/grapheme.d.ts.map +1 -0
  109. package/dist/runtime/composer/grapheme.js +73 -0
  110. package/dist/runtime/composer/grapheme.js.map +1 -0
  111. package/dist/runtime/composer/history.d.ts +39 -0
  112. package/dist/runtime/composer/history.d.ts.map +1 -0
  113. package/dist/runtime/composer/history.js +91 -0
  114. package/dist/runtime/composer/history.js.map +1 -0
  115. package/dist/runtime/composer/layout.d.ts +40 -0
  116. package/dist/runtime/composer/layout.d.ts.map +1 -0
  117. package/dist/runtime/composer/layout.js +174 -0
  118. package/dist/runtime/composer/layout.js.map +1 -0
  119. package/dist/runtime/rich-text/ansi-parser.d.ts +31 -0
  120. package/dist/runtime/rich-text/ansi-parser.d.ts.map +1 -0
  121. package/dist/runtime/rich-text/ansi-parser.js +310 -0
  122. package/dist/runtime/rich-text/ansi-parser.js.map +1 -0
  123. package/dist/runtime/rich-text/layout.d.ts +12 -0
  124. package/dist/runtime/rich-text/layout.d.ts.map +1 -0
  125. package/dist/runtime/rich-text/layout.js +362 -0
  126. package/dist/runtime/rich-text/layout.js.map +1 -0
  127. package/dist/runtime/rich-text/markdown-parser.d.ts +17 -0
  128. package/dist/runtime/rich-text/markdown-parser.d.ts.map +1 -0
  129. package/dist/runtime/rich-text/markdown-parser.js +218 -0
  130. package/dist/runtime/rich-text/markdown-parser.js.map +1 -0
  131. package/dist/runtime/rich-text/sanitizer.d.ts +18 -0
  132. package/dist/runtime/rich-text/sanitizer.d.ts.map +1 -0
  133. package/dist/runtime/rich-text/sanitizer.js +32 -0
  134. package/dist/runtime/rich-text/sanitizer.js.map +1 -0
  135. package/dist/runtime/rich-text/types.d.ts +59 -0
  136. package/dist/runtime/rich-text/types.d.ts.map +1 -0
  137. package/dist/runtime/rich-text/types.js +17 -0
  138. package/dist/runtime/rich-text/types.js.map +1 -0
  139. package/dist/runtime/subagents/budget.d.ts +118 -0
  140. package/dist/runtime/subagents/budget.d.ts.map +1 -0
  141. package/dist/runtime/subagents/budget.js +173 -0
  142. package/dist/runtime/subagents/budget.js.map +1 -0
  143. package/dist/runtime/subagents/child-executor-guard.d.ts +60 -0
  144. package/dist/runtime/subagents/child-executor-guard.d.ts.map +1 -0
  145. package/dist/runtime/subagents/child-executor-guard.js +219 -0
  146. package/dist/runtime/subagents/child-executor-guard.js.map +1 -0
  147. package/dist/runtime/subagents/context-builder.d.ts +34 -0
  148. package/dist/runtime/subagents/context-builder.d.ts.map +1 -0
  149. package/dist/runtime/subagents/context-builder.js +99 -0
  150. package/dist/runtime/subagents/context-builder.js.map +1 -0
  151. package/dist/runtime/subagents/index.d.ts +21 -0
  152. package/dist/runtime/subagents/index.d.ts.map +1 -0
  153. package/dist/runtime/subagents/index.js +62 -0
  154. package/dist/runtime/subagents/index.js.map +1 -0
  155. package/dist/runtime/subagents/policy.d.ts +68 -0
  156. package/dist/runtime/subagents/policy.d.ts.map +1 -0
  157. package/dist/runtime/subagents/policy.js +230 -0
  158. package/dist/runtime/subagents/policy.js.map +1 -0
  159. package/dist/runtime/subagents/presets.d.ts +44 -0
  160. package/dist/runtime/subagents/presets.d.ts.map +1 -0
  161. package/dist/runtime/subagents/presets.js +148 -0
  162. package/dist/runtime/subagents/presets.js.map +1 -0
  163. package/dist/runtime/subagents/production.d.ts +44 -0
  164. package/dist/runtime/subagents/production.d.ts.map +1 -0
  165. package/dist/runtime/subagents/production.js +143 -0
  166. package/dist/runtime/subagents/production.js.map +1 -0
  167. package/dist/runtime/subagents/provider-gate.d.ts +99 -0
  168. package/dist/runtime/subagents/provider-gate.d.ts.map +1 -0
  169. package/dist/runtime/subagents/provider-gate.js +186 -0
  170. package/dist/runtime/subagents/provider-gate.js.map +1 -0
  171. package/dist/runtime/subagents/result-parser.d.ts +40 -0
  172. package/dist/runtime/subagents/result-parser.d.ts.map +1 -0
  173. package/dist/runtime/subagents/result-parser.js +240 -0
  174. package/dist/runtime/subagents/result-parser.js.map +1 -0
  175. package/dist/runtime/subagents/runner.d.ts +53 -0
  176. package/dist/runtime/subagents/runner.d.ts.map +1 -0
  177. package/dist/runtime/subagents/runner.js +172 -0
  178. package/dist/runtime/subagents/runner.js.map +1 -0
  179. package/dist/runtime/subagents/runtime-integration.d.ts +73 -0
  180. package/dist/runtime/subagents/runtime-integration.d.ts.map +1 -0
  181. package/dist/runtime/subagents/runtime-integration.js +148 -0
  182. package/dist/runtime/subagents/runtime-integration.js.map +1 -0
  183. package/dist/runtime/subagents/supervisor.d.ts +79 -0
  184. package/dist/runtime/subagents/supervisor.d.ts.map +1 -0
  185. package/dist/runtime/subagents/supervisor.js +301 -0
  186. package/dist/runtime/subagents/supervisor.js.map +1 -0
  187. package/dist/runtime/subagents/tool.d.ts +38 -0
  188. package/dist/runtime/subagents/tool.d.ts.map +1 -0
  189. package/dist/runtime/subagents/tool.js +171 -0
  190. package/dist/runtime/subagents/tool.js.map +1 -0
  191. package/dist/runtime/subagents/types.d.ts +152 -0
  192. package/dist/runtime/subagents/types.d.ts.map +1 -0
  193. package/dist/runtime/subagents/types.js +56 -0
  194. package/dist/runtime/subagents/types.js.map +1 -0
  195. package/dist/runtime/ui-events.d.ts +18 -0
  196. package/dist/runtime/ui-events.d.ts.map +1 -1
  197. package/dist/runtime/ui-events.js.map +1 -1
  198. package/dist/runtime/ui-view-model.d.ts +44 -1
  199. package/dist/runtime/ui-view-model.d.ts.map +1 -1
  200. package/dist/runtime/ui-view-model.js +90 -37
  201. package/dist/runtime/ui-view-model.js.map +1 -1
  202. package/dist/sdk/query.d.ts.map +1 -1
  203. package/dist/sdk/query.js +0 -1
  204. package/dist/sdk/query.js.map +1 -1
  205. package/dist/services/auto-fix/autoFixHook.d.ts.map +1 -1
  206. package/dist/services/auto-fix/autoFixHook.js +3 -2
  207. package/dist/services/auto-fix/autoFixHook.js.map +1 -1
  208. package/dist/services/auto-fix/autoFixRunner.d.ts +2 -2
  209. package/dist/services/auto-fix/autoFixRunner.d.ts.map +1 -1
  210. package/dist/services/auto-fix/autoFixRunner.js +2 -2
  211. package/dist/services/auto-fix/autoFixRunner.js.map +1 -1
  212. package/dist/services/compact/auto-compact.d.ts +15 -2
  213. package/dist/services/compact/auto-compact.d.ts.map +1 -1
  214. package/dist/services/compact/auto-compact.js +59 -27
  215. package/dist/services/compact/auto-compact.js.map +1 -1
  216. package/dist/services/compact/compact.d.ts +2 -0
  217. package/dist/services/compact/compact.d.ts.map +1 -1
  218. package/dist/services/compact/compact.js +22 -5
  219. package/dist/services/compact/compact.js.map +1 -1
  220. package/dist/services/compact/coordinator.d.ts +26 -0
  221. package/dist/services/compact/coordinator.d.ts.map +1 -0
  222. package/dist/services/compact/coordinator.js +44 -0
  223. package/dist/services/compact/coordinator.js.map +1 -0
  224. package/dist/services/compact/index.d.ts +1 -0
  225. package/dist/services/compact/index.d.ts.map +1 -1
  226. package/dist/services/compact/index.js +3 -1
  227. package/dist/services/compact/index.js.map +1 -1
  228. package/dist/services/compact/summary-generator.d.ts +6 -2
  229. package/dist/services/compact/summary-generator.d.ts.map +1 -1
  230. package/dist/services/compact/summary-generator.js +73 -32
  231. package/dist/services/compact/summary-generator.js.map +1 -1
  232. package/dist/services/concurrent-sessions.d.ts.map +1 -1
  233. package/dist/services/concurrent-sessions.js +3 -0
  234. package/dist/services/concurrent-sessions.js.map +1 -1
  235. package/dist/services/config-dir.d.ts +11 -1
  236. package/dist/services/config-dir.d.ts.map +1 -1
  237. package/dist/services/config-dir.js +19 -2
  238. package/dist/services/config-dir.js.map +1 -1
  239. package/dist/services/config.d.ts +13 -4
  240. package/dist/services/config.d.ts.map +1 -1
  241. package/dist/services/config.js +85 -4
  242. package/dist/services/config.js.map +1 -1
  243. package/dist/services/doctor.d.ts +2 -0
  244. package/dist/services/doctor.d.ts.map +1 -1
  245. package/dist/services/doctor.js +9 -2
  246. package/dist/services/doctor.js.map +1 -1
  247. package/dist/services/global-config.d.ts +33 -1
  248. package/dist/services/global-config.d.ts.map +1 -1
  249. package/dist/services/global-config.js +3 -0
  250. package/dist/services/global-config.js.map +1 -1
  251. package/dist/services/llm.d.ts +21 -4
  252. package/dist/services/llm.d.ts.map +1 -1
  253. package/dist/services/llm.js +75 -9
  254. package/dist/services/llm.js.map +1 -1
  255. package/dist/services/mcp/transports.d.ts +2 -0
  256. package/dist/services/mcp/transports.d.ts.map +1 -1
  257. package/dist/services/mcp/transports.js +23 -2
  258. package/dist/services/mcp/transports.js.map +1 -1
  259. package/dist/services/memory.d.ts.map +1 -1
  260. package/dist/services/memory.js.map +1 -1
  261. package/dist/services/model-context.d.ts +36 -0
  262. package/dist/services/model-context.d.ts.map +1 -1
  263. package/dist/services/model-context.js +243 -31
  264. package/dist/services/model-context.js.map +1 -1
  265. package/dist/services/redaction.js +1 -1
  266. package/dist/services/redaction.js.map +1 -1
  267. package/dist/services/session-memory/sessionMemory.js +1 -1
  268. package/dist/services/session-memory/sessionMemory.js.map +1 -1
  269. package/dist/services/session-storage.d.ts +39 -1
  270. package/dist/services/session-storage.d.ts.map +1 -1
  271. package/dist/services/session-storage.js +156 -28
  272. package/dist/services/session-storage.js.map +1 -1
  273. package/dist/services/task-manager.d.ts +2 -0
  274. package/dist/services/task-manager.d.ts.map +1 -1
  275. package/dist/services/task-manager.js +13 -0
  276. package/dist/services/task-manager.js.map +1 -1
  277. package/dist/services/usage-state.d.ts +55 -5
  278. package/dist/services/usage-state.d.ts.map +1 -1
  279. package/dist/services/usage-state.js +188 -59
  280. package/dist/services/usage-state.js.map +1 -1
  281. package/dist/services/verification-profile.d.ts.map +1 -1
  282. package/dist/services/verification-profile.js +3 -2
  283. package/dist/services/verification-profile.js.map +1 -1
  284. package/dist/services/workspace-diff.d.ts.map +1 -1
  285. package/dist/services/workspace-diff.js +34 -3
  286. package/dist/services/workspace-diff.js.map +1 -1
  287. package/dist/services/yaml-config.js +1 -1
  288. package/dist/skills/loader.d.ts +1 -1
  289. package/dist/skills/loader.d.ts.map +1 -1
  290. package/dist/skills/loader.js +1 -1
  291. package/dist/skills/loader.js.map +1 -1
  292. package/dist/skills/registry.d.ts +1 -1
  293. package/dist/skills/registry.d.ts.map +1 -1
  294. package/dist/skills/registry.js +1 -1
  295. package/dist/skills/registry.js.map +1 -1
  296. package/dist/skills/runtime.d.ts +9 -5
  297. package/dist/skills/runtime.d.ts.map +1 -1
  298. package/dist/skills/runtime.js +157 -12
  299. package/dist/skills/runtime.js.map +1 -1
  300. package/dist/terminal-ui/launch.d.ts +20 -3
  301. package/dist/terminal-ui/launch.d.ts.map +1 -1
  302. package/dist/terminal-ui/launch.js +86 -25
  303. package/dist/terminal-ui/launch.js.map +1 -1
  304. package/dist/terminal-ui/raw-editor.d.ts +9 -0
  305. package/dist/terminal-ui/raw-editor.d.ts.map +1 -1
  306. package/dist/terminal-ui/raw-editor.js +207 -30
  307. package/dist/terminal-ui/raw-editor.js.map +1 -1
  308. package/dist/tools/bash_security.d.ts.map +1 -1
  309. package/dist/tools/bash_security.js +14 -5
  310. package/dist/tools/bash_security.js.map +1 -1
  311. package/dist/tools/index.d.ts.map +1 -1
  312. package/dist/tools/index.js +51 -24
  313. package/dist/tools/index.js.map +1 -1
  314. package/dist/tools/lsp.js.map +1 -1
  315. package/dist/tools/plan.d.ts.map +1 -1
  316. package/dist/tools/plan.js +7 -0
  317. package/dist/tools/plan.js.map +1 -1
  318. package/dist/tools/web.d.ts +10 -0
  319. package/dist/tools/web.d.ts.map +1 -1
  320. package/dist/tools/web.js +84 -4
  321. package/dist/tools/web.js.map +1 -1
  322. package/dist/tui-core/frame.d.ts +13 -1
  323. package/dist/tui-core/frame.d.ts.map +1 -1
  324. package/dist/tui-core/frame.js +61 -8
  325. package/dist/tui-core/frame.js.map +1 -1
  326. package/dist/tui-core/input-parser.d.ts +1 -1
  327. package/dist/tui-core/input-parser.d.ts.map +1 -1
  328. package/dist/tui-core/input-parser.js +20 -1
  329. package/dist/tui-core/input-parser.js.map +1 -1
  330. package/dist/tui-core/style.d.ts +103 -0
  331. package/dist/tui-core/style.d.ts.map +1 -0
  332. package/dist/tui-core/style.js +269 -0
  333. package/dist/tui-core/style.js.map +1 -0
  334. package/dist/tui-core/terminal-writer.d.ts.map +1 -1
  335. package/dist/tui-core/terminal-writer.js +16 -3
  336. package/dist/tui-core/terminal-writer.js.map +1 -1
  337. package/dist/tui-ui/inline-surface.d.ts +185 -0
  338. package/dist/tui-ui/inline-surface.d.ts.map +1 -0
  339. package/dist/tui-ui/inline-surface.js +615 -0
  340. package/dist/tui-ui/inline-surface.js.map +1 -0
  341. package/dist/tui-ui/launch.d.ts +1 -0
  342. package/dist/tui-ui/launch.d.ts.map +1 -1
  343. package/dist/tui-ui/launch.js +398 -69
  344. package/dist/tui-ui/launch.js.map +1 -1
  345. package/dist/tui-ui/layout.d.ts +51 -2
  346. package/dist/tui-ui/layout.d.ts.map +1 -1
  347. package/dist/tui-ui/layout.js +240 -77
  348. package/dist/tui-ui/layout.js.map +1 -1
  349. package/dist/tui-ui/render-scheduler.d.ts +37 -0
  350. package/dist/tui-ui/render-scheduler.d.ts.map +1 -0
  351. package/dist/tui-ui/render-scheduler.js +118 -0
  352. package/dist/tui-ui/render-scheduler.js.map +1 -0
  353. package/dist/tui-ui/runner.d.ts +78 -5
  354. package/dist/tui-ui/runner.d.ts.map +1 -1
  355. package/dist/tui-ui/runner.js +317 -22
  356. package/dist/tui-ui/runner.js.map +1 -1
  357. package/dist/tui-ui/state.d.ts +38 -7
  358. package/dist/tui-ui/state.d.ts.map +1 -1
  359. package/dist/tui-ui/state.js +199 -40
  360. package/dist/tui-ui/state.js.map +1 -1
  361. package/dist/tui-ui/theme.d.ts +13 -0
  362. package/dist/tui-ui/theme.d.ts.map +1 -0
  363. package/dist/tui-ui/theme.js +20 -0
  364. package/dist/tui-ui/theme.js.map +1 -0
  365. package/dist/tui-ui/transcript-cache.d.ts +35 -0
  366. package/dist/tui-ui/transcript-cache.d.ts.map +1 -0
  367. package/dist/tui-ui/transcript-cache.js +74 -0
  368. package/dist/tui-ui/transcript-cache.js.map +1 -0
  369. package/dist/tui-ui/transcript-layout.d.ts +21 -0
  370. package/dist/tui-ui/transcript-layout.d.ts.map +1 -0
  371. package/dist/tui-ui/transcript-layout.js +398 -0
  372. package/dist/tui-ui/transcript-layout.js.map +1 -0
  373. package/dist/ui/box.d.ts.map +1 -1
  374. package/dist/ui/box.js +0 -11
  375. package/dist/ui/box.js.map +1 -1
  376. package/dist/ui/command-panel.d.ts.map +1 -1
  377. package/dist/ui/command-panel.js +1 -3
  378. package/dist/ui/command-panel.js.map +1 -1
  379. package/dist/ui/file-completion.js +1 -1
  380. package/dist/ui/file-completion.js.map +1 -1
  381. package/dist/ui/markdown.d.ts.map +1 -1
  382. package/dist/ui/markdown.js +1 -2
  383. package/dist/ui/markdown.js.map +1 -1
  384. package/dist/ui/multiline-input.d.ts.map +1 -1
  385. package/dist/ui/multiline-input.js +1 -2
  386. package/dist/ui/multiline-input.js.map +1 -1
  387. package/dist/ui/progress.d.ts.map +1 -1
  388. package/dist/ui/progress.js +0 -3
  389. package/dist/ui/progress.js.map +1 -1
  390. package/dist/ui/status-bar.d.ts +1 -1
  391. package/dist/ui/status-bar.d.ts.map +1 -1
  392. package/dist/ui/status-bar.js +2 -16
  393. package/dist/ui/status-bar.js.map +1 -1
  394. package/dist/ui/stream-markdown.d.ts +3 -0
  395. package/dist/ui/stream-markdown.d.ts.map +1 -1
  396. package/dist/ui/stream-markdown.js +0 -6
  397. package/dist/ui/stream-markdown.js.map +1 -1
  398. package/dist/ui/tool-preview.d.ts.map +1 -1
  399. package/dist/ui/tool-preview.js +0 -1
  400. package/dist/ui/tool-preview.js.map +1 -1
  401. package/dist/ui-v2/components/shell.d.ts.map +1 -1
  402. package/dist/ui-v2/components/shell.js +0 -8
  403. package/dist/ui-v2/components/shell.js.map +1 -1
  404. package/package.json +1 -1
  405. package/dist/cli-dbg.js +0 -717
  406. package/dist/cli-debug.d.ts +0 -7
  407. package/dist/cli-debug.d.ts.map +0 -1
  408. package/dist/cli-debug.js +0 -717
  409. package/dist/cli-debug.js.map +0 -1
  410. package/dist/cli-debug2.d.ts +0 -7
  411. package/dist/cli-debug2.d.ts.map +0 -1
  412. package/dist/cli-debug2.js +0 -717
  413. package/dist/cli-debug2.js.map +0 -1
  414. package/dist/cli-debug3.d.ts +0 -7
  415. package/dist/cli-debug3.d.ts.map +0 -1
  416. package/dist/cli-debug3.js +0 -719
  417. package/dist/cli-debug3.js.map +0 -1
  418. package/dist/cli-ink.d.ts +0 -8
  419. package/dist/cli-ink.d.ts.map +0 -1
  420. package/dist/cli-ink.js +0 -32
  421. package/dist/cli-ink.js.map +0 -1
  422. package/dist/cli-patch.js +0 -716
  423. package/dist/cli-test.js +0 -726
@@ -0,0 +1,172 @@
1
+ "use strict";
2
+ /**
3
+ * SubagentRunner: runs a single child agent to completion and parses its result.
4
+ *
5
+ * The runner is the boundary between the Supervisor and the shared `query()`
6
+ * loop. It is deliberately thin: it derives a child abort signal from the
7
+ * parent, applies a per-child timeout, invokes an injectable `executeQuery`,
8
+ * and normalizes the outcome through {@link parseSubtaskResult}.
9
+ *
10
+ * `executeQuery` is injected so the runner can be tested without a live LLM;
11
+ * the production binding wraps `query()` with a per-child LLMService.
12
+ */
13
+ Object.defineProperty(exports, "__esModule", { value: true });
14
+ exports.runSubtask = runSubtask;
15
+ const context_builder_1 = require("./context-builder");
16
+ const result_parser_1 = require("./result-parser");
17
+ const types_1 = require("./types");
18
+ /**
19
+ * R5: bounded grace period to let a child query settle after it was aborted
20
+ * (timeout or parent cancel). The abort signal has fired; a cooperative
21
+ * executor stops promptly. An uncooperative executor is abandoned after this
22
+ * window so a stuck child cannot hold the provider slot indefinitely. The
23
+ * abandon is observable: the promise is caught and the (now unobserved)
24
+ * late resolution cannot flip the already-decided terminal status.
25
+ */
26
+ const CHILD_SHUTDOWN_GRACE_MS = 2000;
27
+ async function settleWithGrace(queryPromise, graceMs) {
28
+ let timer;
29
+ try {
30
+ await Promise.race([
31
+ queryPromise.catch(() => undefined),
32
+ new Promise(resolve => {
33
+ timer = setTimeout(() => resolve(), graceMs);
34
+ timer.unref?.();
35
+ }),
36
+ ]);
37
+ }
38
+ finally {
39
+ if (timer)
40
+ clearTimeout(timer);
41
+ }
42
+ }
43
+ /**
44
+ * Run one child subtask to a terminal state. Never throws: every failure mode
45
+ * (timeout, cancel, error, non-JSON output) is normalized into a SubtaskResult.
46
+ */
47
+ async function runSubtask(packet, deps, taskId) {
48
+ const messages = (0, context_builder_1.buildChildMessages)({
49
+ cwd: deps.cwd,
50
+ packet,
51
+ canonicalScopePaths: deps.canonicalScopePaths,
52
+ rootObjectiveSummary: deps.rootObjectiveSummary,
53
+ modelLabel: deps.modelLabel,
54
+ });
55
+ const childController = new AbortController();
56
+ let parentAborted = false;
57
+ const onParentAbort = () => {
58
+ parentAborted = true;
59
+ childController.abort();
60
+ };
61
+ if (deps.parentAbortSignal) {
62
+ if (deps.parentAbortSignal.aborted) {
63
+ parentAborted = true;
64
+ childController.abort();
65
+ }
66
+ else {
67
+ deps.parentAbortSignal.addEventListener('abort', onParentAbort, { once: true });
68
+ }
69
+ }
70
+ let timeoutHandle;
71
+ let timedOut = false;
72
+ const timeoutPromise = new Promise(resolve => {
73
+ timeoutHandle = setTimeout(() => {
74
+ timedOut = true;
75
+ childController.abort();
76
+ resolve({ kind: 'timeout' });
77
+ }, deps.timeoutMs);
78
+ });
79
+ // R5: parent abort is a distinct terminal outcome that wins the race even
80
+ // if the query subsequently resolves. Without this, a query that resolves
81
+ // just after the abort fires would flip the result to 'completed'.
82
+ // N15: store reference to the second abort listener so it can be cleaned up
83
+ // in the finally block alongside the first.
84
+ let onParentAbortForRace;
85
+ const parentAbortPromise = new Promise(resolve => {
86
+ if (parentAborted) {
87
+ resolve({ kind: 'parent_abort' });
88
+ return;
89
+ }
90
+ if (deps.parentAbortSignal) {
91
+ const handler = () => resolve({ kind: 'parent_abort' });
92
+ onParentAbortForRace = handler;
93
+ deps.parentAbortSignal.addEventListener('abort', handler, { once: true });
94
+ }
95
+ });
96
+ const queryPromise = deps
97
+ .executeQuery(messages, deps.toolSet, childController.signal)
98
+ .then(content => ({ kind: 'done', content }))
99
+ .catch(err => ({
100
+ kind: 'error',
101
+ message: err instanceof Error ? err.message : String(err),
102
+ }));
103
+ let status;
104
+ let content = '';
105
+ let usage = types_1.EMPTY_SUBTASK_USAGE;
106
+ let parentCancelled = false;
107
+ try {
108
+ const outcome = await Promise.race([parentAbortPromise, queryPromise, timeoutPromise]);
109
+ if (outcome.kind === 'parent_abort') {
110
+ // Parent abort wins regardless of whether the query resolves later.
111
+ status = 'cancelled';
112
+ parentCancelled = true;
113
+ }
114
+ else if (outcome.kind === 'timeout') {
115
+ status = 'timed_out';
116
+ }
117
+ else if (outcome.kind === 'error') {
118
+ // If the parent aborted, treat as cancel; otherwise a failure.
119
+ if (parentAborted && !timedOut) {
120
+ status = 'cancelled';
121
+ parentCancelled = true;
122
+ }
123
+ else {
124
+ status = 'failed';
125
+ content = outcome.message;
126
+ }
127
+ }
128
+ else {
129
+ // R5: even on 'done', if the parent aborted before this resolved, the
130
+ // terminal state must remain cancelled - a late resolve cannot flip it.
131
+ if (parentAborted && !timedOut) {
132
+ status = 'cancelled';
133
+ parentCancelled = true;
134
+ }
135
+ else {
136
+ status = 'completed';
137
+ content = outcome.content.content;
138
+ usage = outcome.content.usage;
139
+ }
140
+ }
141
+ }
142
+ finally {
143
+ if (timeoutHandle)
144
+ clearTimeout(timeoutHandle);
145
+ if (deps.parentAbortSignal) {
146
+ deps.parentAbortSignal.removeEventListener('abort', onParentAbort);
147
+ if (onParentAbortForRace) {
148
+ deps.parentAbortSignal.removeEventListener('abort', onParentAbortForRace);
149
+ }
150
+ }
151
+ }
152
+ // R5: on timeout/abort the query promise may still be running in the
153
+ // background (model request or tool call in flight). The provider slot
154
+ // must not be released while the child can still issue requests, and we
155
+ // must not leave an unobserved promise that could fire late side effects.
156
+ // Wait a bounded grace period for the query to settle after the abort
157
+ // signal fired. An uncooperative executor that ignores the signal is
158
+ // logged via the result; the slot is still released after the grace so a
159
+ // stuck child cannot hang the whole turn forever.
160
+ if (status === 'timed_out' || status === 'cancelled') {
161
+ await settleWithGrace(queryPromise, CHILD_SHUTDOWN_GRACE_MS);
162
+ }
163
+ const result = (0, result_parser_1.parseSubtaskResult)({
164
+ id: taskId,
165
+ role: packet.role,
166
+ content,
167
+ status,
168
+ usage,
169
+ });
170
+ return { result, parentCancelled };
171
+ }
172
+ //# sourceMappingURL=runner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runner.js","sourceRoot":"","sources":["../../../src/runtime/subagents/runner.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,73 @@
1
+ /**
2
+ * Turn-level integration: build the runtime-bound `subtask` tool for a root turn.
3
+ *
4
+ * This is the bridge between {@link AgentChatController} and the subagent
5
+ * runtime. It resolves the child tool set from the global runtime tools, builds
6
+ * the production executeQuery, the budget ledger, the provider gate and the
7
+ * Supervisor, and returns the `subtask` OpenHorseTool to merge into the root
8
+ * turn's tool list. Returns null when subagents are off or the LLM is absent,
9
+ * so the root loop is unchanged.
10
+ */
11
+ import type { OpenHorseTool } from '../../framework/tool';
12
+ import { runSubtaskBatch } from './supervisor';
13
+ import type { RuntimeSubtaskEvent, SubagentConfig, SubtaskUsage } from './types';
14
+ import type { LLMConfig } from '../../services/llm';
15
+ import type { OpenHorseCLIConfig } from '../../services/config';
16
+ export interface SubagentTurnInputs {
17
+ /** Resolved subagent config (from runtime.config.subagents). */
18
+ config: SubagentConfig;
19
+ /** Canonical project root. */
20
+ cwd: string;
21
+ /** Root LLM config derived from runtime config (apiKey, baseUrl, model, ...). */
22
+ rootLlmConfig: Pick<LLMConfig, 'apiKey' | 'baseUrl' | 'model' | 'fallbackModel'>;
23
+ /** Model label shown to children. */
24
+ modelLabel?: string;
25
+ /** Root objective summary forwarded to children. */
26
+ rootObjectiveSummary?: string;
27
+ /** Root turn abort signal; propagated to every child. */
28
+ abortSignal?: AbortSignal;
29
+ /** Lifecycle event sink (runtime event + trace). */
30
+ onSubtaskEvent?: (event: RuntimeSubtaskEvent) => void;
31
+ /** Called once per finished task with its structured result, for artifact persistence. */
32
+ onSubtaskResult?: (result: import('./types').SubtaskResult, batchId: string) => void;
33
+ /**
34
+ * R6: live permission state from the root runtime. Returns true when a
35
+ * permission request is awaiting user decision. When provided, the policy
36
+ * gate uses it instead of a hardcoded false, preventing background
37
+ * delegation while the user is deciding a permission.
38
+ */
39
+ hasPendingPermission?: () => boolean;
40
+ /**
41
+ * R6: called with each child's observed usage so the root loop can record
42
+ * it into its shared CostTracker. The observed values are never clamped;
43
+ * `/cost` and telemetry must reflect the truth.
44
+ */
45
+ onChildUsage?: (taskId: string, role: import('./types').SubagentRole, usage: import('./types').SubtaskUsage, modelLabel?: string) => void;
46
+ }
47
+ /**
48
+ * Build the `subtask` tool for a root turn, or null if disabled.
49
+ *
50
+ * Returns a bundle: the tool to merge into the root turn's tool list, plus an
51
+ * accessor for the aggregate child usage so the root loop can fold child cost
52
+ * into its loop stats and `/cost`. The bundle is null when subagents are off.
53
+ */
54
+ export declare function createSubagentBundleForTurn(inputs: SubagentTurnInputs): SubagentTurnBundle | null;
55
+ /**
56
+ * Backwards-compatible wrapper returning only the tool. Prefer
57
+ * {@link createSubagentBundleForTurn} when the root loop needs to fold child
58
+ * usage into its stats.
59
+ */
60
+ export declare function createSubagentToolForTurn(inputs: SubagentTurnInputs): OpenHorseTool | null;
61
+ /** A subtask turn bundle: the tool plus usage accessors for the root loop. */
62
+ export interface SubagentTurnBundle {
63
+ tool: OpenHorseTool;
64
+ /** Reconciled aggregate usage across all children that ran this turn. */
65
+ getAggregateUsage: () => SubtaskUsage;
66
+ /** Best-effort count of subtasks that ran this turn. */
67
+ getSubtaskCount: () => number;
68
+ }
69
+ /** Derive the root LLM config slice from the runtime config. */
70
+ export declare function deriveRootLlmConfig(config: OpenHorseCLIConfig): Pick<LLMConfig, 'apiKey' | 'baseUrl' | 'model' | 'fallbackModel'>;
71
+ /** Re-exported for the root loop to read aggregate usage after a turn. */
72
+ export { runSubtaskBatch };
73
+ //# sourceMappingURL=runtime-integration.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime-integration.d.ts","sourceRoot":"","sources":["../../../src/runtime/subagents/runtime-integration.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAe,MAAM,sBAAsB,CAAC;AAIvE,OAAO,EAAE,eAAe,EAA+B,MAAM,cAAc,CAAC;AAI5E,OAAO,KAAK,EAAE,mBAAmB,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACjF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAiBhE,MAAM,WAAW,kBAAkB;IACjC,gEAAgE;IAChE,MAAM,EAAE,cAAc,CAAC;IACvB,8BAA8B;IAC9B,GAAG,EAAE,MAAM,CAAC;IACZ,iFAAiF;IACjF,aAAa,EAAE,IAAI,CAAC,SAAS,EAAE,QAAQ,GAAG,SAAS,GAAG,OAAO,GAAG,eAAe,CAAC,CAAC;IACjF,qCAAqC;IACrC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,oDAAoD;IACpD,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,yDAAyD;IACzD,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,oDAAoD;IACpD,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,mBAAmB,KAAK,IAAI,CAAC;IACtD,0FAA0F;IAC1F,eAAe,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,SAAS,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACrF;;;;;OAKG;IACH,oBAAoB,CAAC,EAAE,MAAM,OAAO,CAAC;IACrC;;;;OAIG;IACH,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,SAAS,EAAE,YAAY,EAAE,KAAK,EAAE,OAAO,SAAS,EAAE,YAAY,EAAE,UAAU,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;CAC3I;AAED;;;;;;GAMG;AACH,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,kBAAkB,GAAG,kBAAkB,GAAG,IAAI,CAyFjG;AAED;;;;GAIG;AACH,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,kBAAkB,GAAG,aAAa,GAAG,IAAI,CAG1F;AAED,8EAA8E;AAC9E,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,aAAa,CAAC;IACpB,yEAAyE;IACzE,iBAAiB,EAAE,MAAM,YAAY,CAAC;IACtC,wDAAwD;IACxD,eAAe,EAAE,MAAM,MAAM,CAAC;CAC/B;AAED,gEAAgE;AAChE,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,kBAAkB,GAAG,IAAI,CAAC,SAAS,EAAE,QAAQ,GAAG,SAAS,GAAG,OAAO,GAAG,eAAe,CAAC,CAOjI;AAED,0EAA0E;AAC1E,OAAO,EAAE,eAAe,EAAE,CAAC"}
@@ -0,0 +1,148 @@
1
+ "use strict";
2
+ /**
3
+ * Turn-level integration: build the runtime-bound `subtask` tool for a root turn.
4
+ *
5
+ * This is the bridge between {@link AgentChatController} and the subagent
6
+ * runtime. It resolves the child tool set from the global runtime tools, builds
7
+ * the production executeQuery, the budget ledger, the provider gate and the
8
+ * Supervisor, and returns the `subtask` OpenHorseTool to merge into the root
9
+ * turn's tool list. Returns null when subagents are off or the LLM is absent,
10
+ * so the root loop is unchanged.
11
+ */
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ exports.runSubtaskBatch = void 0;
14
+ exports.createSubagentBundleForTurn = createSubagentBundleForTurn;
15
+ exports.createSubagentToolForTurn = createSubagentToolForTurn;
16
+ exports.deriveRootLlmConfig = deriveRootLlmConfig;
17
+ const budget_1 = require("./budget");
18
+ const provider_gate_1 = require("./provider-gate");
19
+ const production_1 = require("./production");
20
+ const supervisor_1 = require("./supervisor");
21
+ Object.defineProperty(exports, "runSubtaskBatch", { enumerable: true, get: function () { return supervisor_1.runSubtaskBatch; } });
22
+ const tool_1 = require("./tool");
23
+ const presets_1 = require("./presets");
24
+ const child_executor_guard_1 = require("./child-executor-guard");
25
+ /**
26
+ * Lazy accessor for the runtime tool pool.
27
+ *
28
+ * Importing `../../tools` at module top-level creates a circular dependency:
29
+ * subagents barrel → runtime-integration → tools/index → web → config → subagents/types
30
+ * When `tools/index` loads before `web.ts` finishes, `WEB_TOOLS` is still
31
+ * `undefined` and `...WEB_TOOLS` throws "not iterable". Deferring the import
32
+ * to call-time breaks the cycle because by then all modules have initialized.
33
+ */
34
+ function lazyRuntimeTools() {
35
+ // eslint-disable-next-line @typescript-eslint/no-require-imports
36
+ const tools = require('../../tools');
37
+ return { executeTool: tools.executeTool, getRuntimeTools: tools.getRuntimeTools };
38
+ }
39
+ /**
40
+ * Build the `subtask` tool for a root turn, or null if disabled.
41
+ *
42
+ * Returns a bundle: the tool to merge into the root turn's tool list, plus an
43
+ * accessor for the aggregate child usage so the root loop can fold child cost
44
+ * into its loop stats and `/cost`. The bundle is null when subagents are off.
45
+ */
46
+ function createSubagentBundleForTurn(inputs) {
47
+ const { config, cwd, rootLlmConfig, abortSignal, onSubtaskEvent } = inputs;
48
+ if (config.mode === 'off')
49
+ return null;
50
+ if (!rootLlmConfig.apiKey)
51
+ return null;
52
+ // Resolve child tools: all v0.2.20 roles share the read-only allowlist, so
53
+ // filter once for 'research'. Assert no forbidden tool slips in as a
54
+ // defense-in-depth check (the allowlist already excludes them, but this
55
+ // catches future regressions).
56
+ const { executeTool, getRuntimeTools } = lazyRuntimeTools();
57
+ const runtimeTools = getRuntimeTools();
58
+ const availableNames = runtimeTools.map(t => t.name);
59
+ const allowedNames = new Set((0, presets_1.filterToolsForRole)(availableNames, 'research', runtimeTools));
60
+ const childTools = runtimeTools.filter(t => allowedNames.has(t.name));
61
+ (0, presets_1.assertNoForbiddenTools)(childTools.map(t => t.name));
62
+ // Defense-in-depth: map tool name -> definition so the executor can re-verify
63
+ // isReadOnly() on every call. A tool that is not read-only must never execute
64
+ // in a child context, regardless of what the allowlist says at construction.
65
+ const childToolByName = new Map();
66
+ for (const t of childTools)
67
+ childToolByName.set(t.name, t);
68
+ // R3: scope holder lets the supervisor set the current packet's scope
69
+ // before each child runs, so the turn-level guard enforces per-packet
70
+ // containment without rebuilding the executor.
71
+ const scopeHolder = new child_executor_guard_1.ScopeHolder();
72
+ const unguardedExecutor = async (name, args, signal) => {
73
+ if (!allowedNames.has(name)) {
74
+ return JSON.stringify({ success: false, error: `Tool ${name} is not available to subagents.` });
75
+ }
76
+ // Re-verify read-only at execution time: catches tools whose isReadOnly()
77
+ // returns false (mutating MCP actions, future regressions).
78
+ const tool = childToolByName.get(name);
79
+ if (!tool || tool.isReadOnly?.(args) !== true) {
80
+ return JSON.stringify({ success: false, error: `Tool ${name} is not read-only and cannot run in a subagent.` });
81
+ }
82
+ const toolContext = { cwd, config: { name: 'openhorse-subagent', mode: 'subagent' }, abortSignal: signal };
83
+ return executeTool(name, args, signal, toolContext);
84
+ };
85
+ const childToolExecutor = (0, child_executor_guard_1.createChildToolExecutorGuard)(unguardedExecutor, {
86
+ rootCwd: cwd,
87
+ scopeHolder,
88
+ });
89
+ const providerGate = new provider_gate_1.SubagentProviderGate({ maxConcurrent: config.maxParallel });
90
+ const budget = new budget_1.SubagentBudgetLedger((0, budget_1.budgetLimitsFromConfig)({
91
+ maxModelRequestsPerTurn: config.maxModelRequestsPerTurn,
92
+ maxModelRequestsPerTask: config.maxModelRequestsPerTask,
93
+ maxToolCallsPerTask: config.maxToolCallsPerTask,
94
+ timeoutMs: config.timeoutMs,
95
+ }));
96
+ // R6: turn-level task counter persists across `subtask` calls so multiple
97
+ // calls in one root turn cannot exceed `maxTasksPerTurn`.
98
+ const turnTaskState = new budget_1.TurnTaskState();
99
+ const executeQuery = (0, production_1.createProductionExecuteQuery)({
100
+ rootConfig: rootLlmConfig,
101
+ providerGate,
102
+ maxTurnsPerTask: config.maxTurnsPerTask,
103
+ });
104
+ const supervisorDeps = {
105
+ config,
106
+ cwd,
107
+ budget,
108
+ providerGate,
109
+ executeQuery,
110
+ toolSet: { tools: childTools, toolExecutor: childToolExecutor },
111
+ scopeHolder,
112
+ turnTaskState,
113
+ hasPendingPermission: inputs.hasPendingPermission,
114
+ onChildUsage: inputs.onChildUsage,
115
+ parentAbortSignal: abortSignal,
116
+ rootObjectiveSummary: inputs.rootObjectiveSummary,
117
+ modelLabel: inputs.modelLabel,
118
+ onEvent: onSubtaskEvent,
119
+ onSubtaskResult: inputs.onSubtaskResult,
120
+ };
121
+ const tool = (0, tool_1.createSubtaskTool)(supervisorDeps);
122
+ return {
123
+ tool,
124
+ /** Read-only accessor for the reconciled aggregate child usage this turn. */
125
+ getAggregateUsage: () => budget.aggregateUsage(),
126
+ /** Number of subtasks that ran (reconciled) this turn. */
127
+ getSubtaskCount: () => budget.reconciledTaskCount(),
128
+ };
129
+ }
130
+ /**
131
+ * Backwards-compatible wrapper returning only the tool. Prefer
132
+ * {@link createSubagentBundleForTurn} when the root loop needs to fold child
133
+ * usage into its stats.
134
+ */
135
+ function createSubagentToolForTurn(inputs) {
136
+ const bundle = createSubagentBundleForTurn(inputs);
137
+ return bundle ? bundle.tool : null;
138
+ }
139
+ /** Derive the root LLM config slice from the runtime config. */
140
+ function deriveRootLlmConfig(config) {
141
+ return {
142
+ apiKey: config.apiKey,
143
+ baseUrl: config.apiBaseUrl,
144
+ model: config.model,
145
+ fallbackModel: config.fallbackModel,
146
+ };
147
+ }
148
+ //# sourceMappingURL=runtime-integration.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime-integration.js","sourceRoot":"","sources":["../../../src/runtime/subagents/runtime-integration.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,79 @@
1
+ /**
2
+ * SubagentSupervisor: orchestrates a batch of child subtasks.
3
+ *
4
+ * Owns the task/batch ID space, the state machine, the concurrency queue and
5
+ * ordered aggregation. It is the single place that decides when children start,
6
+ * how they are bounded, and how their results are folded back to the root.
7
+ *
8
+ * The supervisor does NOT own LLM state, tool execution, permission policy or
9
+ * transcript storage. It composes the policy gate, the budget ledger, the
10
+ * provider gate and the runner, and emits renderer-independent lifecycle
11
+ * events that the root loop forwards to terminal/Ink/TUI.
12
+ */
13
+ import { SubagentBudgetLedger, TurnTaskState } from './budget';
14
+ import { type PolicyRejectReason } from './policy';
15
+ import { SubagentProviderGate } from './provider-gate';
16
+ import { type ExecuteChildQuery, type ChildToolSet } from './runner';
17
+ import type { ScopeHolder } from './child-executor-guard';
18
+ import { type RuntimeSubtaskEvent, type SubagentConfig, type SubtaskBatchResult, type SubtaskRequest, type SubtaskResult } from './types';
19
+ export interface SubagentSupervisorDeps {
20
+ config: SubagentConfig;
21
+ cwd: string;
22
+ budget: SubagentBudgetLedger;
23
+ providerGate: SubagentProviderGate;
24
+ /** Injectable query binding shared with the runner (tests mock this). */
25
+ executeQuery: ExecuteChildQuery;
26
+ /** Filtered, child-safe tool set (already passed through presets). */
27
+ toolSet: ChildToolSet;
28
+ /**
29
+ * R3: mutable scope holder. The supervisor sets the current packet's
30
+ * canonical scope before running it, so the turn-level executor guard can
31
+ * enforce per-packet containment. Optional: when absent, only root
32
+ * containment is enforced.
33
+ */
34
+ scopeHolder?: ScopeHolder;
35
+ /**
36
+ * R6: turn-level task counter. Persists across `subtask` calls so multiple
37
+ * calls in one root turn cannot exceed `maxTasksPerTurn`. When absent, the
38
+ * supervisor falls back to a per-batch counter (weaker; logged).
39
+ */
40
+ turnTaskState?: TurnTaskState;
41
+ /**
42
+ * R6: live permission state from the root runtime. Returns true when a
43
+ * permission request is awaiting user decision. When absent, defaults to
44
+ * false (no pending permission) - the root loop should inject the real
45
+ * state to prevent background auto-approval bypass.
46
+ */
47
+ hasPendingPermission?: () => boolean;
48
+ /**
49
+ * R6: called with each child's observed usage (never clamped) so the root
50
+ * loop can record it into its shared CostTracker. Fires for every terminal
51
+ * state (completed/failed/cancelled/timed_out), so partial usage before a
52
+ * failure is still accounted.
53
+ */
54
+ onChildUsage?: (taskId: string, role: import('./types').SubagentRole, usage: import('./types').SubtaskUsage, modelLabel?: string) => void;
55
+ /** Parent turn abort signal; propagated to every child. */
56
+ parentAbortSignal?: AbortSignal;
57
+ /** Read-only context forwarded to each child. */
58
+ rootObjectiveSummary?: string;
59
+ modelLabel?: string;
60
+ /** Lifecycle event sink (runtime event + trace). */
61
+ onEvent?: (event: RuntimeSubtaskEvent) => void;
62
+ /** Called once per task with its final SubtaskResult (for artifact persistence). */
63
+ onSubtaskResult?: (result: SubtaskResult, batchId: string) => void;
64
+ }
65
+ export interface RunBatchOutcome {
66
+ result: SubtaskBatchResult;
67
+ /** Whether policy rejected the entire batch before any child ran. */
68
+ rejected: boolean;
69
+ rejectReason?: PolicyRejectReason;
70
+ }
71
+ /**
72
+ * Run a batch of subtasks. Returns a {@link SubtaskBatchResult} whose results
73
+ * are always in request order, regardless of completion order.
74
+ *
75
+ * Never throws: policy rejection, child failures, timeouts and cancels are
76
+ * all normalized into result entries.
77
+ */
78
+ export declare function runSubtaskBatch(request: SubtaskRequest, deps: SubagentSupervisorDeps): Promise<RunBatchOutcome>;
79
+ //# sourceMappingURL=supervisor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"supervisor.d.ts","sourceRoot":"","sources":["../../../src/runtime/subagents/supervisor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAC/D,OAAO,EAA6C,KAAK,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAC9F,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAc,KAAK,iBAAiB,EAAE,KAAK,YAAY,EAA2B,MAAM,UAAU,CAAC;AAC1G,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAEL,KAAK,mBAAmB,EACxB,KAAK,cAAc,EACnB,KAAK,kBAAkB,EAEvB,KAAK,cAAc,EACnB,KAAK,aAAa,EACnB,MAAM,SAAS,CAAC;AAEjB,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,cAAc,CAAC;IACvB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,oBAAoB,CAAC;IAC7B,YAAY,EAAE,oBAAoB,CAAC;IACnC,yEAAyE;IACzE,YAAY,EAAE,iBAAiB,CAAC;IAChC,sEAAsE;IACtE,OAAO,EAAE,YAAY,CAAC;IACtB;;;;;OAKG;IACH,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B;;;;OAIG;IACH,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B;;;;;OAKG;IACH,oBAAoB,CAAC,EAAE,MAAM,OAAO,CAAC;IACrC;;;;;OAKG;IACH,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,SAAS,EAAE,YAAY,EAAE,KAAK,EAAE,OAAO,SAAS,EAAE,YAAY,EAAE,UAAU,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1I,2DAA2D;IAC3D,iBAAiB,CAAC,EAAE,WAAW,CAAC;IAChC,iDAAiD;IACjD,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,oDAAoD;IACpD,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,mBAAmB,KAAK,IAAI,CAAC;IAC/C,oFAAoF;IACpF,eAAe,CAAC,EAAE,CAAC,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CACpE;AAeD,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,kBAAkB,CAAC;IAC3B,qEAAqE;IACrE,QAAQ,EAAE,OAAO,CAAC;IAClB,YAAY,CAAC,EAAE,kBAAkB,CAAC;CACnC;AAED;;;;;;GAMG;AACH,wBAAsB,eAAe,CACnC,OAAO,EAAE,cAAc,EACvB,IAAI,EAAE,sBAAsB,GAC3B,OAAO,CAAC,eAAe,CAAC,CAyG1B"}