@orion-agents/orion-code 0.1.1 → 0.1.2

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 (602) hide show
  1. package/README.md +93 -68
  2. package/README.zh-CN.md +181 -216
  3. package/dist/cli.js +13 -17
  4. package/dist/cli.js.map +1 -1
  5. package/dist/commands/index.d.ts.map +1 -1
  6. package/dist/commands/index.js +213 -114
  7. package/dist/commands/index.js.map +1 -1
  8. package/dist/commands/target-command.d.ts.map +1 -1
  9. package/dist/commands/target-command.js +42 -8
  10. package/dist/commands/target-command.js.map +1 -1
  11. package/dist/core/agent.d.ts.map +1 -1
  12. package/dist/core/agent.js +2 -2
  13. package/dist/core/agent.js.map +1 -1
  14. package/dist/framework/external-assertion.d.ts +65 -0
  15. package/dist/framework/external-assertion.d.ts.map +1 -0
  16. package/dist/framework/external-assertion.js +571 -0
  17. package/dist/framework/external-assertion.js.map +1 -0
  18. package/dist/framework/index.d.ts +6 -4
  19. package/dist/framework/index.d.ts.map +1 -1
  20. package/dist/framework/index.js +4 -1
  21. package/dist/framework/index.js.map +1 -1
  22. package/dist/framework/query.d.ts +15 -1
  23. package/dist/framework/query.d.ts.map +1 -1
  24. package/dist/framework/query.js +42 -23
  25. package/dist/framework/query.js.map +1 -1
  26. package/dist/framework/tool-scheduler.d.ts +2 -0
  27. package/dist/framework/tool-scheduler.d.ts.map +1 -1
  28. package/dist/framework/tool-scheduler.js +23 -9
  29. package/dist/framework/tool-scheduler.js.map +1 -1
  30. package/dist/framework/tool-serializer.d.ts.map +1 -1
  31. package/dist/framework/tool-serializer.js +20 -4
  32. package/dist/framework/tool-serializer.js.map +1 -1
  33. package/dist/framework/tool.d.ts +11 -5
  34. package/dist/framework/tool.d.ts.map +1 -1
  35. package/dist/framework/tool.js.map +1 -1
  36. package/dist/harness/safety.d.ts.map +1 -1
  37. package/dist/harness/safety.js +19 -3
  38. package/dist/harness/safety.js.map +1 -1
  39. package/dist/init.d.ts +1 -1
  40. package/dist/init.d.ts.map +1 -1
  41. package/dist/init.js +115 -34
  42. package/dist/init.js.map +1 -1
  43. package/dist/memory/storage.d.ts.map +1 -1
  44. package/dist/memory/storage.js +1 -0
  45. package/dist/memory/storage.js.map +1 -1
  46. package/dist/memory/store.d.ts.map +1 -1
  47. package/dist/memory/store.js +11 -5
  48. package/dist/memory/store.js.map +1 -1
  49. package/dist/print-ui/launch.d.ts +4 -0
  50. package/dist/print-ui/launch.d.ts.map +1 -1
  51. package/dist/print-ui/launch.js +102 -9
  52. package/dist/print-ui/launch.js.map +1 -1
  53. package/dist/product/identity.d.ts +2 -2
  54. package/dist/product/identity.d.ts.map +1 -1
  55. package/dist/product/identity.js +2 -2
  56. package/dist/product/identity.js.map +1 -1
  57. package/dist/product/index.d.ts +2 -1
  58. package/dist/product/index.d.ts.map +1 -1
  59. package/dist/product/index.js +5 -1
  60. package/dist/product/index.js.map +1 -1
  61. package/dist/product/version.d.ts +12 -0
  62. package/dist/product/version.d.ts.map +1 -0
  63. package/dist/product/version.js +31 -0
  64. package/dist/product/version.js.map +1 -0
  65. package/dist/runtime/agent-runtime-controller.d.ts +34 -0
  66. package/dist/runtime/agent-runtime-controller.d.ts.map +1 -1
  67. package/dist/runtime/agent-runtime-controller.js +953 -148
  68. package/dist/runtime/agent-runtime-controller.js.map +1 -1
  69. package/dist/runtime/agent-runtime-protocol.d.ts +7 -2
  70. package/dist/runtime/agent-runtime-protocol.d.ts.map +1 -1
  71. package/dist/runtime/agent-runtime-protocol.js +6 -0
  72. package/dist/runtime/agent-runtime-protocol.js.map +1 -1
  73. package/dist/runtime/chat-controller.d.ts +6 -0
  74. package/dist/runtime/chat-controller.d.ts.map +1 -1
  75. package/dist/runtime/chat-controller.js +200 -19
  76. package/dist/runtime/chat-controller.js.map +1 -1
  77. package/dist/runtime/goals/accounting.d.ts +28 -0
  78. package/dist/runtime/goals/accounting.d.ts.map +1 -1
  79. package/dist/runtime/goals/accounting.js +69 -0
  80. package/dist/runtime/goals/accounting.js.map +1 -1
  81. package/dist/runtime/goals/completion-audit.d.ts +13 -8
  82. package/dist/runtime/goals/completion-audit.d.ts.map +1 -1
  83. package/dist/runtime/goals/completion-audit.js +598 -16
  84. package/dist/runtime/goals/completion-audit.js.map +1 -1
  85. package/dist/runtime/goals/coordinator.d.ts +44 -5
  86. package/dist/runtime/goals/coordinator.d.ts.map +1 -1
  87. package/dist/runtime/goals/coordinator.js +1124 -58
  88. package/dist/runtime/goals/coordinator.js.map +1 -1
  89. package/dist/runtime/goals/evidence.d.ts +37 -0
  90. package/dist/runtime/goals/evidence.d.ts.map +1 -0
  91. package/dist/runtime/goals/evidence.js +300 -0
  92. package/dist/runtime/goals/evidence.js.map +1 -0
  93. package/dist/runtime/goals/presentation.d.ts +4 -0
  94. package/dist/runtime/goals/presentation.d.ts.map +1 -0
  95. package/dist/runtime/goals/presentation.js +50 -0
  96. package/dist/runtime/goals/presentation.js.map +1 -0
  97. package/dist/runtime/goals/prompt.d.ts.map +1 -1
  98. package/dist/runtime/goals/prompt.js +38 -8
  99. package/dist/runtime/goals/prompt.js.map +1 -1
  100. package/dist/runtime/goals/tools.d.ts +18 -1
  101. package/dist/runtime/goals/tools.d.ts.map +1 -1
  102. package/dist/runtime/goals/tools.js +308 -28
  103. package/dist/runtime/goals/tools.js.map +1 -1
  104. package/dist/runtime/goals/types.d.ts +241 -7
  105. package/dist/runtime/goals/types.d.ts.map +1 -1
  106. package/dist/runtime/goals/types.js +8 -2
  107. package/dist/runtime/goals/types.js.map +1 -1
  108. package/dist/runtime/subagents/child-executor-guard.d.ts +12 -4
  109. package/dist/runtime/subagents/child-executor-guard.d.ts.map +1 -1
  110. package/dist/runtime/subagents/child-executor-guard.js +397 -61
  111. package/dist/runtime/subagents/child-executor-guard.js.map +1 -1
  112. package/dist/runtime/subagents/presets.d.ts +4 -5
  113. package/dist/runtime/subagents/presets.d.ts.map +1 -1
  114. package/dist/runtime/subagents/presets.js +18 -33
  115. package/dist/runtime/subagents/presets.js.map +1 -1
  116. package/dist/runtime/subagents/production.d.ts +3 -1
  117. package/dist/runtime/subagents/production.d.ts.map +1 -1
  118. package/dist/runtime/subagents/production.js +37 -7
  119. package/dist/runtime/subagents/production.js.map +1 -1
  120. package/dist/runtime/subagents/runner.d.ts.map +1 -1
  121. package/dist/runtime/subagents/runner.js +24 -3
  122. package/dist/runtime/subagents/runner.js.map +1 -1
  123. package/dist/runtime/subagents/runtime-integration.d.ts +3 -0
  124. package/dist/runtime/subagents/runtime-integration.d.ts.map +1 -1
  125. package/dist/runtime/subagents/runtime-integration.js +18 -7
  126. package/dist/runtime/subagents/runtime-integration.js.map +1 -1
  127. package/dist/runtime/subagents/supervisor.d.ts +4 -4
  128. package/dist/runtime/subagents/supervisor.d.ts.map +1 -1
  129. package/dist/runtime/subagents/supervisor.js +39 -19
  130. package/dist/runtime/subagents/supervisor.js.map +1 -1
  131. package/dist/runtime/subagents/types.d.ts +7 -0
  132. package/dist/runtime/subagents/types.d.ts.map +1 -1
  133. package/dist/runtime/subagents/types.js +12 -1
  134. package/dist/runtime/subagents/types.js.map +1 -1
  135. package/dist/runtime/ui-events.d.ts +6 -0
  136. package/dist/runtime/ui-events.d.ts.map +1 -1
  137. package/dist/runtime/ui-events.js +5 -5
  138. package/dist/runtime/ui-events.js.map +1 -1
  139. package/dist/services/config.d.ts +1 -1
  140. package/dist/services/config.d.ts.map +1 -1
  141. package/dist/services/config.js +53 -48
  142. package/dist/services/config.js.map +1 -1
  143. package/dist/services/doctor.d.ts.map +1 -1
  144. package/dist/services/doctor.js +163 -17
  145. package/dist/services/doctor.js.map +1 -1
  146. package/dist/services/goal-storage.d.ts +9 -4
  147. package/dist/services/goal-storage.d.ts.map +1 -1
  148. package/dist/services/goal-storage.js +1113 -75
  149. package/dist/services/goal-storage.js.map +1 -1
  150. package/dist/services/llm.d.ts +19 -0
  151. package/dist/services/llm.d.ts.map +1 -1
  152. package/dist/services/llm.js +153 -20
  153. package/dist/services/llm.js.map +1 -1
  154. package/dist/services/model-registry.d.ts +1 -1
  155. package/dist/services/model-registry.d.ts.map +1 -1
  156. package/dist/services/model-registry.js +69 -19
  157. package/dist/services/model-registry.js.map +1 -1
  158. package/dist/services/provider-resilience/coordinator.d.ts +2 -1
  159. package/dist/services/provider-resilience/coordinator.d.ts.map +1 -1
  160. package/dist/services/provider-resilience/coordinator.js +7 -6
  161. package/dist/services/provider-resilience/coordinator.js.map +1 -1
  162. package/dist/services/provider-resilience/error-classifier.d.ts.map +1 -1
  163. package/dist/services/provider-resilience/error-classifier.js +67 -17
  164. package/dist/services/provider-resilience/error-classifier.js.map +1 -1
  165. package/dist/services/provider-resilience/types.d.ts +1 -1
  166. package/dist/services/provider-resilience/types.d.ts.map +1 -1
  167. package/dist/services/provider-resilience/types.js.map +1 -1
  168. package/dist/services/redaction.d.ts.map +1 -1
  169. package/dist/services/redaction.js +9 -1
  170. package/dist/services/redaction.js.map +1 -1
  171. package/dist/services/session-storage.d.ts +12 -1
  172. package/dist/services/session-storage.d.ts.map +1 -1
  173. package/dist/services/session-storage.js +23 -7
  174. package/dist/services/session-storage.js.map +1 -1
  175. package/dist/services/storage-maintenance.d.ts +73 -3
  176. package/dist/services/storage-maintenance.d.ts.map +1 -1
  177. package/dist/services/storage-maintenance.js +771 -104
  178. package/dist/services/storage-maintenance.js.map +1 -1
  179. package/dist/services/task-manager.d.ts.map +1 -1
  180. package/dist/services/task-manager.js +2 -2
  181. package/dist/services/task-manager.js.map +1 -1
  182. package/dist/services/web-search-adapters.d.ts.map +1 -1
  183. package/dist/services/web-search-adapters.js +89 -49
  184. package/dist/services/web-search-adapters.js.map +1 -1
  185. package/dist/services/web-search-mcp.d.ts.map +1 -1
  186. package/dist/services/web-search-mcp.js +34 -37
  187. package/dist/services/web-search-mcp.js.map +1 -1
  188. package/dist/services/workspace-state.d.ts +4 -0
  189. package/dist/services/workspace-state.d.ts.map +1 -1
  190. package/dist/services/workspace-state.js +30 -9
  191. package/dist/services/workspace-state.js.map +1 -1
  192. package/dist/terminal-ui/launch.d.ts +2 -0
  193. package/dist/terminal-ui/launch.d.ts.map +1 -1
  194. package/dist/terminal-ui/launch.js +21 -7
  195. package/dist/terminal-ui/launch.js.map +1 -1
  196. package/dist/tools/git.d.ts.map +1 -1
  197. package/dist/tools/git.js +275 -27
  198. package/dist/tools/git.js.map +1 -1
  199. package/dist/tools/index.d.ts.map +1 -1
  200. package/dist/tools/index.js +23 -4
  201. package/dist/tools/index.js.map +1 -1
  202. package/dist/tools/mcp.d.ts.map +1 -1
  203. package/dist/tools/mcp.js +20 -12
  204. package/dist/tools/mcp.js.map +1 -1
  205. package/dist/tools/web.d.ts.map +1 -1
  206. package/dist/tools/web.js +38 -14
  207. package/dist/tools/web.js.map +1 -1
  208. package/dist/tui-ui/layout.d.ts.map +1 -1
  209. package/dist/tui-ui/layout.js +36 -23
  210. package/dist/tui-ui/layout.js.map +1 -1
  211. package/dist/tui-ui/pickers.d.ts.map +1 -1
  212. package/dist/tui-ui/pickers.js +4 -3
  213. package/dist/tui-ui/pickers.js.map +1 -1
  214. package/dist/tui-ui/runner.d.ts +1 -0
  215. package/dist/tui-ui/runner.d.ts.map +1 -1
  216. package/dist/tui-ui/runner.js +14 -0
  217. package/dist/tui-ui/runner.js.map +1 -1
  218. package/dist/tui-ui/state.d.ts +6 -0
  219. package/dist/tui-ui/state.d.ts.map +1 -1
  220. package/dist/tui-ui/state.js +60 -30
  221. package/dist/tui-ui/state.js.map +1 -1
  222. package/package.json +13 -9
  223. package/dist/core/state.d.ts +0 -94
  224. package/dist/core/state.d.ts.map +0 -1
  225. package/dist/core/state.js +0 -178
  226. package/dist/core/state.js.map +0 -1
  227. package/dist/ink/bidi.d.ts +0 -16
  228. package/dist/ink/bidi.d.ts.map +0 -1
  229. package/dist/ink/bidi.js +0 -124
  230. package/dist/ink/bidi.js.map +0 -1
  231. package/dist/ink/clearTerminal.d.ts +0 -14
  232. package/dist/ink/clearTerminal.d.ts.map +0 -1
  233. package/dist/ink/clearTerminal.js +0 -63
  234. package/dist/ink/clearTerminal.js.map +0 -1
  235. package/dist/ink/colorize.d.ts +0 -17
  236. package/dist/ink/colorize.d.ts.map +0 -1
  237. package/dist/ink/colorize.js +0 -208
  238. package/dist/ink/colorize.js.map +0 -1
  239. package/dist/ink/components/App.d.ts +0 -73
  240. package/dist/ink/components/App.d.ts.map +0 -1
  241. package/dist/ink/components/App.js +0 -646
  242. package/dist/ink/components/App.js.map +0 -1
  243. package/dist/ink/components/AppContext.d.ts +0 -12
  244. package/dist/ink/components/AppContext.d.ts.map +0 -1
  245. package/dist/ink/components/AppContext.js +0 -14
  246. package/dist/ink/components/AppContext.js.map +0 -1
  247. package/dist/ink/components/Box.d.ts +0 -44
  248. package/dist/ink/components/Box.d.ts.map +0 -1
  249. package/dist/ink/components/Box.js +0 -191
  250. package/dist/ink/components/Box.js.map +0 -1
  251. package/dist/ink/components/ClockContext.d.ts +0 -9
  252. package/dist/ink/components/ClockContext.d.ts.map +0 -1
  253. package/dist/ink/components/ClockContext.js +0 -146
  254. package/dist/ink/components/ClockContext.js.map +0 -1
  255. package/dist/ink/components/CursorDeclarationContext.d.ts +0 -23
  256. package/dist/ink/components/CursorDeclarationContext.d.ts.map +0 -1
  257. package/dist/ink/components/CursorDeclarationContext.js +0 -6
  258. package/dist/ink/components/CursorDeclarationContext.js.map +0 -1
  259. package/dist/ink/components/ErrorOverview.d.ts +0 -6
  260. package/dist/ink/components/ErrorOverview.d.ts.map +0 -1
  261. package/dist/ink/components/ErrorOverview.js +0 -27
  262. package/dist/ink/components/ErrorOverview.js.map +0 -1
  263. package/dist/ink/components/Newline.d.ts +0 -13
  264. package/dist/ink/components/Newline.d.ts.map +0 -1
  265. package/dist/ink/components/Newline.js +0 -36
  266. package/dist/ink/components/Newline.js.map +0 -1
  267. package/dist/ink/components/NoSelect.d.ts +0 -20
  268. package/dist/ink/components/NoSelect.d.ts.map +0 -1
  269. package/dist/ink/components/NoSelect.js +0 -63
  270. package/dist/ink/components/NoSelect.js.map +0 -1
  271. package/dist/ink/components/RawAnsi.d.ts +0 -17
  272. package/dist/ink/components/RawAnsi.d.ts.map +0 -1
  273. package/dist/ink/components/RawAnsi.js +0 -52
  274. package/dist/ink/components/RawAnsi.js.map +0 -1
  275. package/dist/ink/components/Spacer.d.ts +0 -6
  276. package/dist/ink/components/Spacer.d.ts.map +0 -1
  277. package/dist/ink/components/Spacer.js +0 -26
  278. package/dist/ink/components/Spacer.js.map +0 -1
  279. package/dist/ink/components/StdinContext.d.ts +0 -28
  280. package/dist/ink/components/StdinContext.d.ts.map +0 -1
  281. package/dist/ink/components/StdinContext.js +0 -19
  282. package/dist/ink/components/StdinContext.js.map +0 -1
  283. package/dist/ink/components/TerminalFocusContext.d.ts +0 -10
  284. package/dist/ink/components/TerminalFocusContext.d.ts.map +0 -1
  285. package/dist/ink/components/TerminalFocusContext.js +0 -81
  286. package/dist/ink/components/TerminalFocusContext.js.map +0 -1
  287. package/dist/ink/components/TerminalSizeContext.d.ts +0 -6
  288. package/dist/ink/components/TerminalSizeContext.d.ts.map +0 -1
  289. package/dist/ink/components/TerminalSizeContext.js +0 -6
  290. package/dist/ink/components/TerminalSizeContext.js.map +0 -1
  291. package/dist/ink/components/Text.d.ts +0 -56
  292. package/dist/ink/components/Text.d.ts.map +0 -1
  293. package/dist/ink/components/Text.js +0 -201
  294. package/dist/ink/components/Text.js.map +0 -1
  295. package/dist/ink/constants.d.ts +0 -2
  296. package/dist/ink/constants.d.ts.map +0 -1
  297. package/dist/ink/constants.js +0 -6
  298. package/dist/ink/constants.js.map +0 -1
  299. package/dist/ink/devtools.d.ts +0 -3
  300. package/dist/ink/devtools.d.ts.map +0 -1
  301. package/dist/ink/devtools.js +0 -5
  302. package/dist/ink/devtools.js.map +0 -1
  303. package/dist/ink/dom.d.ts +0 -77
  304. package/dist/ink/dom.d.ts.map +0 -1
  305. package/dist/ink/dom.js +0 -322
  306. package/dist/ink/dom.js.map +0 -1
  307. package/dist/ink/events/click-event.d.ts +0 -32
  308. package/dist/ink/events/click-event.d.ts.map +0 -1
  309. package/dist/ink/events/click-event.js +0 -30
  310. package/dist/ink/events/click-event.js.map +0 -1
  311. package/dist/ink/events/dispatcher.d.ts +0 -41
  312. package/dist/ink/events/dispatcher.d.ts.map +0 -1
  313. package/dist/ink/events/dispatcher.js +0 -181
  314. package/dist/ink/events/dispatcher.js.map +0 -1
  315. package/dist/ink/events/emitter.d.ts +0 -6
  316. package/dist/ink/events/emitter.d.ts.map +0 -1
  317. package/dist/ink/events/emitter.js +0 -36
  318. package/dist/ink/events/emitter.js.map +0 -1
  319. package/dist/ink/events/event-handlers.d.ts +0 -47
  320. package/dist/ink/events/event-handlers.d.ts.map +0 -1
  321. package/dist/ink/events/event-handlers.js +0 -34
  322. package/dist/ink/events/event-handlers.js.map +0 -1
  323. package/dist/ink/events/event.d.ts +0 -6
  324. package/dist/ink/events/event.d.ts.map +0 -1
  325. package/dist/ink/events/event.js +0 -16
  326. package/dist/ink/events/event.js.map +0 -1
  327. package/dist/ink/events/focus-event.d.ts +0 -14
  328. package/dist/ink/events/focus-event.d.ts.map +0 -1
  329. package/dist/ink/events/focus-event.js +0 -20
  330. package/dist/ink/events/focus-event.js.map +0 -1
  331. package/dist/ink/events/input-event.d.ts +0 -31
  332. package/dist/ink/events/input-event.d.ts.map +0 -1
  333. package/dist/ink/events/input-event.js +0 -163
  334. package/dist/ink/events/input-event.js.map +0 -1
  335. package/dist/ink/events/keyboard-event.d.ts +0 -20
  336. package/dist/ink/events/keyboard-event.d.ts.map +0 -1
  337. package/dist/ink/events/keyboard-event.js +0 -44
  338. package/dist/ink/events/keyboard-event.js.map +0 -1
  339. package/dist/ink/events/terminal-event.d.ts +0 -55
  340. package/dist/ink/events/terminal-event.d.ts.map +0 -1
  341. package/dist/ink/events/terminal-event.js +0 -79
  342. package/dist/ink/events/terminal-event.js.map +0 -1
  343. package/dist/ink/events/terminal-focus-event.d.ts +0 -14
  344. package/dist/ink/events/terminal-focus-event.d.ts.map +0 -1
  345. package/dist/ink/events/terminal-focus-event.js +0 -19
  346. package/dist/ink/events/terminal-focus-event.js.map +0 -1
  347. package/dist/ink/focus.d.ts +0 -44
  348. package/dist/ink/focus.d.ts.map +0 -1
  349. package/dist/ink/focus.js +0 -164
  350. package/dist/ink/focus.js.map +0 -1
  351. package/dist/ink/frame.d.ts +0 -95
  352. package/dist/ink/frame.d.ts.map +0 -1
  353. package/dist/ink/frame.js +0 -35
  354. package/dist/ink/frame.js.map +0 -1
  355. package/dist/ink/get-max-width.d.ts +0 -18
  356. package/dist/ink/get-max-width.d.ts.map +0 -1
  357. package/dist/ink/get-max-width.js +0 -26
  358. package/dist/ink/get-max-width.js.map +0 -1
  359. package/dist/ink/hit-test.d.ts +0 -34
  360. package/dist/ink/hit-test.d.ts.map +0 -1
  361. package/dist/ink/hit-test.js +0 -119
  362. package/dist/ink/hit-test.js.map +0 -1
  363. package/dist/ink/hooks/use-animation-frame.d.ts +0 -27
  364. package/dist/ink/hooks/use-animation-frame.d.ts.map +0 -1
  365. package/dist/ink/hooks/use-animation-frame.js +0 -52
  366. package/dist/ink/hooks/use-animation-frame.js.map +0 -1
  367. package/dist/ink/hooks/use-app.d.ts +0 -6
  368. package/dist/ink/hooks/use-app.d.ts.map +0 -1
  369. package/dist/ink/hooks/use-app.js +0 -13
  370. package/dist/ink/hooks/use-app.js.map +0 -1
  371. package/dist/ink/hooks/use-declared-cursor.d.ts +0 -27
  372. package/dist/ink/hooks/use-declared-cursor.d.ts.map +0 -1
  373. package/dist/ink/hooks/use-declared-cursor.js +0 -67
  374. package/dist/ink/hooks/use-declared-cursor.js.map +0 -1
  375. package/dist/ink/hooks/use-input.d.ts +0 -38
  376. package/dist/ink/hooks/use-input.d.ts.map +0 -1
  377. package/dist/ink/hooks/use-input.js +0 -86
  378. package/dist/ink/hooks/use-input.js.map +0 -1
  379. package/dist/ink/hooks/use-interval.d.ts +0 -19
  380. package/dist/ink/hooks/use-interval.d.ts.map +0 -1
  381. package/dist/ink/hooks/use-interval.js +0 -59
  382. package/dist/ink/hooks/use-interval.js.map +0 -1
  383. package/dist/ink/hooks/use-search-highlight.d.ts +0 -31
  384. package/dist/ink/hooks/use-search-highlight.d.ts.map +0 -1
  385. package/dist/ink/hooks/use-search-highlight.js +0 -39
  386. package/dist/ink/hooks/use-search-highlight.js.map +0 -1
  387. package/dist/ink/hooks/use-selection.d.ts +0 -40
  388. package/dist/ink/hooks/use-selection.d.ts.map +0 -1
  389. package/dist/ink/hooks/use-selection.js +0 -68
  390. package/dist/ink/hooks/use-selection.js.map +0 -1
  391. package/dist/ink/hooks/use-stdin.d.ts +0 -6
  392. package/dist/ink/hooks/use-stdin.d.ts.map +0 -1
  393. package/dist/ink/hooks/use-stdin.js +0 -13
  394. package/dist/ink/hooks/use-stdin.js.map +0 -1
  395. package/dist/ink/hooks/use-tab-status.d.ts +0 -14
  396. package/dist/ink/hooks/use-tab-status.d.ts.map +0 -1
  397. package/dist/ink/hooks/use-tab-status.js +0 -61
  398. package/dist/ink/hooks/use-tab-status.js.map +0 -1
  399. package/dist/ink/hooks/use-terminal-focus.d.ts +0 -11
  400. package/dist/ink/hooks/use-terminal-focus.d.ts.map +0 -1
  401. package/dist/ink/hooks/use-terminal-focus.js +0 -22
  402. package/dist/ink/hooks/use-terminal-focus.js.map +0 -1
  403. package/dist/ink/hooks/use-terminal-title.d.ts +0 -13
  404. package/dist/ink/hooks/use-terminal-title.d.ts.map +0 -1
  405. package/dist/ink/hooks/use-terminal-title.js +0 -36
  406. package/dist/ink/hooks/use-terminal-title.js.map +0 -1
  407. package/dist/ink/hooks/use-terminal-viewport.d.ts +0 -30
  408. package/dist/ink/hooks/use-terminal-viewport.d.ts.map +0 -1
  409. package/dist/ink/hooks/use-terminal-viewport.js +0 -81
  410. package/dist/ink/hooks/use-terminal-viewport.js.map +0 -1
  411. package/dist/ink/ink.d.ts +0 -371
  412. package/dist/ink/ink.d.ts.map +0 -1
  413. package/dist/ink/ink.js +0 -1686
  414. package/dist/ink/ink.js.map +0 -1
  415. package/dist/ink/instances.d.ts +0 -4
  416. package/dist/ink/instances.d.ts.map +0 -1
  417. package/dist/ink/instances.js +0 -10
  418. package/dist/ink/instances.js.map +0 -1
  419. package/dist/ink/line-width-cache.d.ts +0 -2
  420. package/dist/ink/line-width-cache.d.ts.map +0 -1
  421. package/dist/ink/line-width-cache.js +0 -23
  422. package/dist/ink/line-width-cache.js.map +0 -1
  423. package/dist/ink/log-update.d.ts +0 -18
  424. package/dist/ink/log-update.d.ts.map +0 -1
  425. package/dist/ink/log-update.js +0 -637
  426. package/dist/ink/log-update.js.map +0 -1
  427. package/dist/ink/measure-element.d.ts +0 -17
  428. package/dist/ink/measure-element.d.ts.map +0 -1
  429. package/dist/ink/measure-element.js +0 -11
  430. package/dist/ink/measure-element.js.map +0 -1
  431. package/dist/ink/measure-text.d.ts +0 -7
  432. package/dist/ink/measure-text.d.ts.map +0 -1
  433. package/dist/ink/measure-text.js +0 -38
  434. package/dist/ink/measure-text.js.map +0 -1
  435. package/dist/ink/node-cache.d.ts +0 -21
  436. package/dist/ink/node-cache.d.ts.map +0 -1
  437. package/dist/ink/node-cache.js +0 -36
  438. package/dist/ink/node-cache.js.map +0 -1
  439. package/dist/ink/optimizer.d.ts +0 -16
  440. package/dist/ink/optimizer.d.ts.map +0 -1
  441. package/dist/ink/optimizer.js +0 -85
  442. package/dist/ink/optimizer.js.map +0 -1
  443. package/dist/ink/output.d.ts +0 -120
  444. package/dist/ink/output.d.ts.map +0 -1
  445. package/dist/ink/output.js +0 -559
  446. package/dist/ink/output.js.map +0 -1
  447. package/dist/ink/parse-keypress.d.ts +0 -112
  448. package/dist/ink/parse-keypress.d.ts.map +0 -1
  449. package/dist/ink/parse-keypress.js +0 -719
  450. package/dist/ink/parse-keypress.js.map +0 -1
  451. package/dist/ink/parse-keypress.test.d.ts +0 -2
  452. package/dist/ink/parse-keypress.test.d.ts.map +0 -1
  453. package/dist/ink/parse-keypress.test.js +0 -37
  454. package/dist/ink/parse-keypress.test.js.map +0 -1
  455. package/dist/ink/reconciler.d.ts +0 -12
  456. package/dist/ink/reconciler.d.ts.map +0 -1
  457. package/dist/ink/reconciler.js +0 -456
  458. package/dist/ink/reconciler.js.map +0 -1
  459. package/dist/ink/render-border.d.ts +0 -25
  460. package/dist/ink/render-border.d.ts.map +0 -1
  461. package/dist/ink/render-border.js +0 -141
  462. package/dist/ink/render-border.js.map +0 -1
  463. package/dist/ink/render-node-to-output.d.ts +0 -46
  464. package/dist/ink/render-node-to-output.d.ts.map +0 -1
  465. package/dist/ink/render-node-to-output.js +0 -1257
  466. package/dist/ink/render-node-to-output.js.map +0 -1
  467. package/dist/ink/render-to-screen.d.ts +0 -47
  468. package/dist/ink/render-to-screen.d.ts.map +0 -1
  469. package/dist/ink/render-to-screen.js +0 -213
  470. package/dist/ink/render-to-screen.js.map +0 -1
  471. package/dist/ink/renderer.d.ts +0 -15
  472. package/dist/ink/renderer.d.ts.map +0 -1
  473. package/dist/ink/renderer.js +0 -169
  474. package/dist/ink/renderer.js.map +0 -1
  475. package/dist/ink/root.d.ts +0 -75
  476. package/dist/ink/root.d.ts.map +0 -1
  477. package/dist/ink/root.js +0 -89
  478. package/dist/ink/root.js.map +0 -1
  479. package/dist/ink/screen.d.ts +0 -270
  480. package/dist/ink/screen.d.ts.map +0 -1
  481. package/dist/ink/screen.js +0 -1194
  482. package/dist/ink/screen.js.map +0 -1
  483. package/dist/ink/searchHighlight.d.ts +0 -21
  484. package/dist/ink/searchHighlight.d.ts.map +0 -1
  485. package/dist/ink/searchHighlight.js +0 -82
  486. package/dist/ink/searchHighlight.js.map +0 -1
  487. package/dist/ink/selection.d.ts +0 -230
  488. package/dist/ink/selection.d.ts.map +0 -1
  489. package/dist/ink/selection.js +0 -814
  490. package/dist/ink/selection.js.map +0 -1
  491. package/dist/ink/squash-text-nodes.d.ts +0 -23
  492. package/dist/ink/squash-text-nodes.d.ts.map +0 -1
  493. package/dist/ink/squash-text-nodes.js +0 -60
  494. package/dist/ink/squash-text-nodes.js.map +0 -1
  495. package/dist/ink/stringWidth.d.ts +0 -2
  496. package/dist/ink/stringWidth.d.ts.map +0 -1
  497. package/dist/ink/stringWidth.js +0 -207
  498. package/dist/ink/stringWidth.js.map +0 -1
  499. package/dist/ink/styles.d.ts +0 -307
  500. package/dist/ink/styles.d.ts.map +0 -1
  501. package/dist/ink/styles.js +0 -302
  502. package/dist/ink/styles.js.map +0 -1
  503. package/dist/ink/supports-hyperlinks.d.ts +0 -14
  504. package/dist/ink/supports-hyperlinks.d.ts.map +0 -1
  505. package/dist/ink/supports-hyperlinks.js +0 -48
  506. package/dist/ink/supports-hyperlinks.js.map +0 -1
  507. package/dist/ink/tabstops.d.ts +0 -2
  508. package/dist/ink/tabstops.d.ts.map +0 -1
  509. package/dist/ink/tabstops.js +0 -43
  510. package/dist/ink/tabstops.js.map +0 -1
  511. package/dist/ink/terminal-focus-state.d.ts +0 -7
  512. package/dist/ink/terminal-focus-state.d.ts.map +0 -1
  513. package/dist/ink/terminal-focus-state.js +0 -43
  514. package/dist/ink/terminal-focus-state.js.map +0 -1
  515. package/dist/ink/terminal-querier.d.ts +0 -130
  516. package/dist/ink/terminal-querier.d.ts.map +0 -1
  517. package/dist/ink/terminal-querier.js +0 -184
  518. package/dist/ink/terminal-querier.js.map +0 -1
  519. package/dist/ink/terminal.d.ts +0 -56
  520. package/dist/ink/terminal.d.ts.map +0 -1
  521. package/dist/ink/terminal.js +0 -249
  522. package/dist/ink/terminal.js.map +0 -1
  523. package/dist/ink/termio/csi.d.ts +0 -166
  524. package/dist/ink/termio/csi.d.ts.map +0 -1
  525. package/dist/ink/termio/csi.js +0 -285
  526. package/dist/ink/termio/csi.js.map +0 -1
  527. package/dist/ink/termio/dec.d.ts +0 -38
  528. package/dist/ink/termio/dec.d.ts.map +0 -1
  529. package/dist/ink/termio/dec.js +0 -59
  530. package/dist/ink/termio/dec.js.map +0 -1
  531. package/dist/ink/termio.d.ts +0 -25
  532. package/dist/ink/termio.d.ts.map +0 -1
  533. package/dist/ink/termio.js +0 -32
  534. package/dist/ink/termio.js.map +0 -1
  535. package/dist/ink/useTerminalNotification.d.ts +0 -27
  536. package/dist/ink/useTerminalNotification.d.ts.map +0 -1
  537. package/dist/ink/useTerminalNotification.js +0 -62
  538. package/dist/ink/useTerminalNotification.js.map +0 -1
  539. package/dist/ink/warn.d.ts +0 -2
  540. package/dist/ink/warn.d.ts.map +0 -1
  541. package/dist/ink/warn.js +0 -14
  542. package/dist/ink/warn.js.map +0 -1
  543. package/dist/ink/widest-line.d.ts +0 -2
  544. package/dist/ink/widest-line.d.ts.map +0 -1
  545. package/dist/ink/widest-line.js +0 -18
  546. package/dist/ink/widest-line.js.map +0 -1
  547. package/dist/ink/wrap-text.d.ts +0 -3
  548. package/dist/ink/wrap-text.d.ts.map +0 -1
  549. package/dist/ink/wrap-text.js +0 -61
  550. package/dist/ink/wrap-text.js.map +0 -1
  551. package/dist/ink/wrapAnsi.d.ts +0 -8
  552. package/dist/ink/wrapAnsi.d.ts.map +0 -1
  553. package/dist/ink/wrapAnsi.js +0 -13
  554. package/dist/ink/wrapAnsi.js.map +0 -1
  555. package/dist/ink-ui/components/TerminalCursor.d.ts +0 -15
  556. package/dist/ink-ui/components/TerminalCursor.d.ts.map +0 -1
  557. package/dist/ink-ui/components/TerminalCursor.js +0 -49
  558. package/dist/ink-ui/components/TerminalCursor.js.map +0 -1
  559. package/dist/ink-ui/runtime/stdout.d.ts +0 -11
  560. package/dist/ink-ui/runtime/stdout.d.ts.map +0 -1
  561. package/dist/ink-ui/runtime/stdout.js +0 -82
  562. package/dist/ink-ui/runtime/stdout.js.map +0 -1
  563. package/dist/runtime/goal-coordinator.d.ts +0 -66
  564. package/dist/runtime/goal-coordinator.d.ts.map +0 -1
  565. package/dist/runtime/goal-coordinator.js +0 -200
  566. package/dist/runtime/goal-coordinator.js.map +0 -1
  567. package/dist/screens/REPL.d.ts +0 -21
  568. package/dist/screens/REPL.d.ts.map +0 -1
  569. package/dist/screens/REPL.js +0 -139
  570. package/dist/screens/REPL.js.map +0 -1
  571. package/dist/services/goal-sidecar.d.ts +0 -96
  572. package/dist/services/goal-sidecar.d.ts.map +0 -1
  573. package/dist/services/goal-sidecar.js +0 -145
  574. package/dist/services/goal-sidecar.js.map +0 -1
  575. package/dist/tools/goal.d.ts +0 -17
  576. package/dist/tools/goal.d.ts.map +0 -1
  577. package/dist/tools/goal.js +0 -191
  578. package/dist/tools/goal.js.map +0 -1
  579. package/dist/ui/ink/components/App.d.ts +0 -6
  580. package/dist/ui/ink/components/App.d.ts.map +0 -1
  581. package/dist/ui/ink/components/App.js +0 -38
  582. package/dist/ui/ink/components/App.js.map +0 -1
  583. package/dist/ui/ink/components/CommandPanel.d.ts +0 -13
  584. package/dist/ui/ink/components/CommandPanel.d.ts.map +0 -1
  585. package/dist/ui/ink/components/CommandPanel.js +0 -41
  586. package/dist/ui/ink/components/CommandPanel.js.map +0 -1
  587. package/dist/ui/ink/components/InputLine.d.ts +0 -8
  588. package/dist/ui/ink/components/InputLine.d.ts.map +0 -1
  589. package/dist/ui/ink/components/InputLine.js +0 -15
  590. package/dist/ui/ink/components/InputLine.js.map +0 -1
  591. package/dist/ui/ink/components/StatusBar.d.ts +0 -9
  592. package/dist/ui/ink/components/StatusBar.d.ts.map +0 -1
  593. package/dist/ui/ink/components/StatusBar.js +0 -18
  594. package/dist/ui/ink/components/StatusBar.js.map +0 -1
  595. package/dist/ui/ink/components/index.d.ts +0 -5
  596. package/dist/ui/ink/components/index.d.ts.map +0 -1
  597. package/dist/ui/ink/components/index.js +0 -5
  598. package/dist/ui/ink/components/index.js.map +0 -1
  599. package/dist/utils/chalk.d.ts +0 -9
  600. package/dist/utils/chalk.d.ts.map +0 -1
  601. package/dist/utils/chalk.js +0 -16
  602. package/dist/utils/chalk.js.map +0 -1
@@ -24,14 +24,21 @@ exports.evaluateToolCall = evaluateToolCall;
24
24
  exports.createChildToolExecutorGuard = createChildToolExecutorGuard;
25
25
  const path_1 = require("path");
26
26
  const fs_1 = require("fs");
27
+ const async_hooks_1 = require("async_hooks");
27
28
  /** Tools whose arguments carry a single primary path under key `path`. */
28
29
  const PATH_TOOLS = new Set(['read_file', 'list_files']);
29
30
  /** Tools whose arguments carry a base/glob root under `path`. */
30
31
  const BASE_PATH_TOOLS = new Set(['glob']);
31
32
  /** Tools whose arguments carry a search base under `path`. */
32
33
  const SEARCH_PATH_TOOLS = new Set(['grep']);
34
+ /** Known tools constrained by ToolContext.cwd but not by a narrower packet scope. */
35
+ const ROOT_BOUND_TOOLS = new Set(['git_status']);
33
36
  /** batch_read nests step args; each step has { tool, args }. */
34
37
  const BATCH_TOOL = 'batch_read';
38
+ const BATCH_READ_MAX_STEPS = 8;
39
+ const BATCH_READ_ALLOWED_TOOLS = new Set(['git_status', 'list_files', 'glob', 'grep', 'read_file']);
40
+ /** Built-ins whose contract is explicitly independent of repository paths. */
41
+ const DEFAULT_SCOPE_AGNOSTIC_TOOLS = new Set(['time', 'web_search', 'web_fetch']);
35
42
  /**
36
43
  * Return the realpath of the nearest existing ancestor of `p`.
37
44
  *
@@ -73,6 +80,32 @@ function nearestExistingAncestorRealpath(p) {
73
80
  }
74
81
  return undefined; // loop exhausted, no existing ancestor found
75
82
  }
83
+ /**
84
+ * Resolve an existing or not-yet-created target without dropping its missing
85
+ * suffix. For example, `<root>/src/not-created` canonicalizes to that exact
86
+ * target rather than widening to the existing `<root>/src` ancestor.
87
+ */
88
+ function canonicalTargetRealpath(p) {
89
+ let current = p;
90
+ for (let i = 0; i < 64; i++) {
91
+ if ((0, fs_1.existsSync)(current)) {
92
+ try {
93
+ const ancestorReal = (0, fs_1.realpathSync)(current);
94
+ return (0, path_1.resolve)(ancestorReal, (0, path_1.relative)(current, p));
95
+ }
96
+ catch (err) {
97
+ const code = err?.code;
98
+ if (code !== 'ENOENT')
99
+ return undefined;
100
+ }
101
+ }
102
+ const parent = (0, path_1.resolve)(current, '..');
103
+ if (parent === current)
104
+ return undefined;
105
+ current = parent;
106
+ }
107
+ return undefined;
108
+ }
76
109
  /** True if `candidate` is `ancestor` or inside it (both realpaths). */
77
110
  function isInsideOrEqual(candidate, ancestor) {
78
111
  if (candidate === ancestor)
@@ -83,77 +116,320 @@ function isInsideOrEqual(candidate, ancestor) {
83
116
  /**
84
117
  * Check that a path stays inside root (and inside a scope if scopes given).
85
118
  *
86
- * Strategy: resolve the path against root, then take the realpath of its
87
- * nearest existing ancestor. If that ancestor is outside root, the path
88
- * escapes (via `..`, absolute outside root, or symlinked parent). If scopes
89
- * are specified, the ancestor must also be inside a scope OR the path must
90
- * descend into a scope from the root (ancestor is root itself, remaining
91
- * suffix enters a scope).
119
+ * Strategy: resolve the path against root, canonicalize its nearest existing
120
+ * ancestor, then append the unresolved suffix. Keeping that suffix is
121
+ * important for missing scope paths: `src/not-created` must not widen to
122
+ * `src`. Existing symlink ancestors are resolved before containment checks.
92
123
  */
93
124
  function checkContainment(rawPath, rootReal, scopeReals) {
94
125
  if (typeof rawPath !== 'string' || rawPath.trim() === '') {
95
126
  return { contained: false, reason: 'empty path' };
96
127
  }
97
128
  const resolved = (0, path_1.resolve)(rootReal, rawPath);
98
- const ancestorReal = nearestExistingAncestorRealpath(resolved);
129
+ const targetReal = canonicalTargetRealpath(resolved);
99
130
  // If no existing ancestor could be resolved (e.g. EACCES on realpathSync),
100
131
  // containment cannot be verified — reject the path.
101
- if (ancestorReal === undefined) {
132
+ if (targetReal === undefined) {
102
133
  return { contained: false, reason: `cannot verify path containment: ${rawPath}` };
103
134
  }
104
135
  // Boundary 1: must be inside root.
105
- if (!isInsideOrEqual(ancestorReal, rootReal)) {
136
+ if (!isInsideOrEqual(targetReal, rootReal)) {
106
137
  return { contained: false, reason: `path escapes project root: ${rawPath}` };
107
138
  }
108
139
  // Boundary 2: if scopes specified, the target must be inside a scope.
109
140
  if (scopeReals.length > 0) {
110
- // If the ancestor is already inside a scope, ok.
111
- const ancestorInScope = scopeReals.some(s => isInsideOrEqual(ancestorReal, s));
112
- if (!ancestorInScope) {
113
- // Ancestor is root (or above scope) but target may descend into a
114
- // scope. Re-resolve the full target's nearest-existing-ancestor
115
- // against each scope: the resolved path relative to root must, when
116
- // joined, fall inside a scope realpath.
117
- const targetInScope = scopeReals.some(s => {
118
- // Compute where the target would resolve to relative to root, then
119
- // check containment against the scope realpath.
120
- const targetResolved = (0, path_1.resolve)(rootReal, rawPath);
121
- const targetAncestor = nearestExistingAncestorRealpath(targetResolved);
122
- return targetAncestor !== undefined && isInsideOrEqual(targetAncestor, s);
123
- });
124
- if (!targetInScope) {
125
- return { contained: false, reason: `path outside packet scope: ${rawPath}` };
126
- }
141
+ const targetInScope = scopeReals.some(scope => isInsideOrEqual(targetReal, scope));
142
+ if (!targetInScope) {
143
+ return { contained: false, reason: `path outside packet scope: ${rawPath}` };
127
144
  }
128
145
  }
129
146
  return { contained: true };
130
147
  }
131
- /** Extract path-bearing arguments from a tool call. */
132
- function extractPathArgs(tool, args) {
133
- const paths = [];
134
- if (PATH_TOOLS.has(tool) ||
135
- BASE_PATH_TOOLS.has(tool) ||
136
- SEARCH_PATH_TOOLS.has(tool)) {
137
- const p = args.path;
138
- if (typeof p === 'string') {
139
- paths.push(p);
140
- }
141
- // glob/grep with no path default to cwd (inside root) - no check needed.
148
+ function isRecord(value) {
149
+ return typeof value === 'object' && value !== null && !Array.isArray(value);
150
+ }
151
+ /** Keep known-tool containment identical to the path accepted by the executor. */
152
+ function normalizeKnownToolPath(input) {
153
+ let value = input.trim();
154
+ const markdownLink = value.match(/^!?\[[^\]]*\]\(([\s\S]+)\)$/u);
155
+ if (markdownLink) {
156
+ value = markdownLink[1].trim();
157
+ if (value.startsWith('<')) {
158
+ const end = value.indexOf('>');
159
+ if (end >= 0)
160
+ value = value.slice(1, end);
161
+ }
162
+ else {
163
+ value = value.replace(/\s+["'][\s\S]*["']$/u, '');
164
+ }
165
+ }
166
+ if ((value.startsWith('`') && value.endsWith('`')) ||
167
+ (value.startsWith('"') && value.endsWith('"')) ||
168
+ (value.startsWith("'") && value.endsWith("'"))) {
169
+ value = value.slice(1, -1);
170
+ }
171
+ if (value.startsWith('file://')) {
172
+ try {
173
+ return decodeURIComponent(new URL(value).pathname);
174
+ }
175
+ catch {
176
+ return value.replace(/^file:\/\//u, '');
177
+ }
178
+ }
179
+ return value;
180
+ }
181
+ /** Parse batch_read input exactly like the real executor before guarding it. */
182
+ function parseBatchReadSteps(rawSteps) {
183
+ let value = rawSteps;
184
+ if (typeof value === 'string') {
185
+ try {
186
+ value = JSON.parse(value);
187
+ }
188
+ catch {
189
+ return { error: 'steps must be an array or a valid JSON array string' };
190
+ }
191
+ }
192
+ if (!Array.isArray(value))
193
+ return { error: 'steps must be an array' };
194
+ if (value.length === 0)
195
+ return { error: 'steps must not be empty' };
196
+ if (value.length > BATCH_READ_MAX_STEPS) {
197
+ return { error: `steps exceed the ${BATCH_READ_MAX_STEPS}-step limit` };
198
+ }
199
+ const steps = [];
200
+ for (let index = 0; index < value.length; index += 1) {
201
+ const step = value[index];
202
+ if (!isRecord(step) || typeof step.tool !== 'string' || !step.tool) {
203
+ return { error: `step ${index + 1} requires an object with a tool string` };
204
+ }
205
+ let stepArgs = step.args;
206
+ if (typeof stepArgs === 'string') {
207
+ try {
208
+ stepArgs = JSON.parse(stepArgs);
209
+ }
210
+ catch {
211
+ return { error: `step ${index + 1} args must be a valid JSON object string` };
212
+ }
213
+ }
214
+ if (!isRecord(stepArgs))
215
+ return { error: `step ${index + 1} args must be an object` };
216
+ steps.push({ tool: step.tool, args: stepArgs });
217
+ }
218
+ return { steps };
219
+ }
220
+ const PATH_LIKE_ARG_KEY = /(?:^|_)(?:path|paths|file|files|filepath|filename|directory|directories|dir|cwd|root|base|location|locations|source|sources|destination|destinations|target|targets|uri|uris)(?:$|_)/iu;
221
+ /** Detect nested path/file/location/resourceUri shapes without trusting MCP schemas. */
222
+ function hasUnknownPathArgs(value, key = '', inheritedPathContext = false) {
223
+ const normalizedKey = key.replace(/([a-z0-9])([A-Z])/g, '$1_$2').replace(/[-.]/g, '_');
224
+ const pathContext = inheritedPathContext || PATH_LIKE_ARG_KEY.test(normalizedKey);
225
+ if (typeof value === 'string') {
226
+ if (value.trim().startsWith('file://'))
227
+ return true;
228
+ if (!pathContext)
229
+ return false;
230
+ const uriKey = /(?:^|_)(?:uri|uris)(?:$|_)/iu.test(normalizedKey);
231
+ return !uriKey;
232
+ }
233
+ if (Array.isArray(value)) {
234
+ return value.some(item => hasUnknownPathArgs(item, key, pathContext));
235
+ }
236
+ if (!isRecord(value))
237
+ return pathContext;
238
+ if (pathContext)
239
+ return true;
240
+ return Object.entries(value).some(([nestedKey, nestedValue]) => hasUnknownPathArgs(nestedValue, nestedKey, false));
241
+ }
242
+ /** Match grep's basename-only `glob` filter exactly as the real executor does. */
243
+ function matchesGrepGlob(name, pattern) {
244
+ const escaped = pattern.replace(/[.+^${}()|[\]\\]/g, '\\$&');
245
+ const regex = escaped.replace(/\*/g, '.*').replace(/\?/g, '.');
246
+ return new RegExp(`^${regex}$`).test(name);
247
+ }
248
+ function checkGrepDescendantSymlinks(rawBasePath, rootReal, scopeReals, globPattern) {
249
+ const base = (0, path_1.resolve)(rootReal, rawBasePath);
250
+ try {
251
+ if (!(0, fs_1.existsSync)(base) || !(0, fs_1.statSync)(base).isDirectory())
252
+ return { contained: true };
253
+ }
254
+ catch {
255
+ return { contained: false, reason: `cannot inspect search path: ${rawBasePath}` };
256
+ }
257
+ const pending = [base];
258
+ while (pending.length > 0) {
259
+ const directory = pending.pop();
260
+ let entries;
261
+ try {
262
+ entries = (0, fs_1.readdirSync)(directory, { withFileTypes: true });
263
+ }
264
+ catch {
265
+ // Real grep skips unreadable directories rather than searching them.
266
+ continue;
267
+ }
268
+ for (const entry of entries) {
269
+ if (entry.name.startsWith('.'))
270
+ continue;
271
+ const entryPath = (0, path_1.join)(directory, entry.name);
272
+ if (entry.isDirectory()) {
273
+ pending.push(entryPath);
274
+ continue;
275
+ }
276
+ if (globPattern && !matchesGrepGlob(entry.name, globPattern))
277
+ continue;
278
+ if (!entry.isSymbolicLink())
279
+ continue;
280
+ try {
281
+ // Real grep checks isFile() immediately before streaming. Directory,
282
+ // dangling and other non-file symlink targets are therefore skipped.
283
+ if (!(0, fs_1.statSync)(entryPath).isFile())
284
+ continue;
285
+ }
286
+ catch {
287
+ continue;
288
+ }
289
+ let targetReal;
290
+ try {
291
+ targetReal = (0, fs_1.realpathSync)(entryPath);
292
+ }
293
+ catch {
294
+ return {
295
+ contained: false,
296
+ reason: `cannot verify search descendant symlink: ${entryPath}`,
297
+ path: entryPath,
298
+ };
299
+ }
300
+ if (!isInsideOrEqual(targetReal, rootReal)) {
301
+ return {
302
+ contained: false,
303
+ reason: `search descendant symlink escapes project root: ${entryPath}`,
304
+ path: entryPath,
305
+ };
306
+ }
307
+ if (scopeReals.length > 0 && !scopeReals.some(scope => isInsideOrEqual(targetReal, scope))) {
308
+ return {
309
+ contained: false,
310
+ reason: `search descendant symlink escapes packet scope: ${entryPath}`,
311
+ path: entryPath,
312
+ };
313
+ }
314
+ }
142
315
  }
316
+ return { contained: true };
317
+ }
318
+ function evaluateResolvedToolCall(tool, args, rootReal, scopeReals, scopeAgnosticTools) {
143
319
  if (tool === BATCH_TOOL) {
144
- const steps = args.steps;
145
- if (Array.isArray(steps)) {
146
- for (const step of steps) {
147
- if (step && typeof step === 'object' && typeof step.tool === 'string') {
148
- const stepArgs = step.args && typeof step.args === 'object'
149
- ? step.args
150
- : {};
151
- paths.push(...extractPathArgs(step.tool, stepArgs));
320
+ const parsed = parseBatchReadSteps(args.steps);
321
+ if (parsed.error || !parsed.steps) {
322
+ return {
323
+ ok: false,
324
+ tool,
325
+ reason: `invalid batch_read: ${parsed.error ?? 'steps are required'}`,
326
+ };
327
+ }
328
+ for (const step of parsed.steps) {
329
+ if (!BATCH_READ_ALLOWED_TOOLS.has(step.tool)) {
330
+ return {
331
+ ok: false,
332
+ tool,
333
+ reason: `tool ${step.tool} is not allowed in batch_read`,
334
+ };
335
+ }
336
+ const verdict = evaluateResolvedToolCall(step.tool, step.args, rootReal, scopeReals, scopeAgnosticTools);
337
+ if (!verdict.ok)
338
+ return verdict;
339
+ }
340
+ return { ok: true };
341
+ }
342
+ if (ROOT_BOUND_TOOLS.has(tool)) {
343
+ if (scopeReals.length > 0) {
344
+ return {
345
+ ok: false,
346
+ tool,
347
+ reason: `${tool} is root-bound and unavailable under packet scope`,
348
+ };
349
+ }
350
+ // git_status's published schema has one optional filesystem argument:
351
+ // `cwd`. Other path/workdir-like aliases are ignored by the real tool.
352
+ const rawCwd = args.cwd;
353
+ if (rawCwd === undefined || rawCwd === '')
354
+ return { ok: true };
355
+ if (typeof rawCwd !== 'string') {
356
+ return { ok: false, tool, reason: `${tool} cwd must be a string` };
357
+ }
358
+ const normalizedCwd = normalizeKnownToolPath(rawCwd);
359
+ const containment = checkContainment(normalizedCwd, rootReal, []);
360
+ if (!containment.contained) {
361
+ return {
362
+ ok: false,
363
+ tool,
364
+ reason: containment.reason ?? 'cwd rejected',
365
+ path: normalizedCwd,
366
+ };
367
+ }
368
+ return { ok: true };
369
+ }
370
+ const knownPathTool = PATH_TOOLS.has(tool) || BASE_PATH_TOOLS.has(tool) || SEARCH_PATH_TOOLS.has(tool);
371
+ if (knownPathTool) {
372
+ const rawPath = args.path;
373
+ if (scopeReals.length > 0 &&
374
+ (BASE_PATH_TOOLS.has(tool) || SEARCH_PATH_TOOLS.has(tool)) &&
375
+ (typeof rawPath !== 'string' || rawPath.trim() === '')) {
376
+ return {
377
+ ok: false,
378
+ tool,
379
+ reason: `${tool} requires explicit path under packet scope`,
380
+ };
381
+ }
382
+ if (typeof rawPath === 'string') {
383
+ const normalizedPath = normalizeKnownToolPath(rawPath);
384
+ const containment = checkContainment(normalizedPath, rootReal, scopeReals);
385
+ if (!containment.contained) {
386
+ return {
387
+ ok: false,
388
+ tool,
389
+ reason: containment.reason ?? 'path rejected',
390
+ path: normalizedPath,
391
+ };
392
+ }
393
+ if (SEARCH_PATH_TOOLS.has(tool)) {
394
+ const descendants = checkGrepDescendantSymlinks(normalizedPath, rootReal, scopeReals, typeof args.glob === 'string' ? args.glob : undefined);
395
+ if (!descendants.contained) {
396
+ return {
397
+ ok: false,
398
+ tool,
399
+ reason: descendants.reason ?? 'search descendant symlink rejected',
400
+ path: descendants.path ?? normalizedPath,
401
+ };
152
402
  }
153
403
  }
154
404
  }
405
+ else if (SEARCH_PATH_TOOLS.has(tool) && scopeReals.length === 0) {
406
+ const descendants = checkGrepDescendantSymlinks('.', rootReal, scopeReals, typeof args.glob === 'string' ? args.glob : undefined);
407
+ if (!descendants.contained) {
408
+ return {
409
+ ok: false,
410
+ tool,
411
+ reason: descendants.reason ?? 'search descendant symlink rejected',
412
+ path: descendants.path ?? rootReal,
413
+ };
414
+ }
415
+ }
416
+ return { ok: true };
155
417
  }
156
- return paths;
418
+ if (!scopeAgnosticTools.has(tool)) {
419
+ return {
420
+ ok: false,
421
+ tool,
422
+ reason: `${tool} is not certified scope-agnostic`,
423
+ };
424
+ }
425
+ if (hasUnknownPathArgs(args)) {
426
+ return {
427
+ ok: false,
428
+ tool,
429
+ reason: `${tool} scope-agnostic certification requires pathless arguments`,
430
+ };
431
+ }
432
+ return { ok: true };
157
433
  }
158
434
  /**
159
435
  * Evaluate whether a tool call is allowed under the guard's boundaries.
@@ -164,36 +440,84 @@ function evaluateToolCall(tool, args, options) {
164
440
  if (rootReal === undefined) {
165
441
  return { ok: false, tool, reason: 'cannot resolve project root realpath' };
166
442
  }
167
- const scopeReals = (options.scopePaths ?? []).map(p => nearestExistingAncestorRealpath((0, path_1.resolve)(rootReal, p))).filter((s) => s !== undefined);
168
- const pathArgs = extractPathArgs(tool, args);
169
- for (const path of pathArgs) {
170
- const verdict = checkContainment(path, rootReal, scopeReals);
171
- if (!verdict.contained) {
172
- return { ok: false, tool, reason: verdict.reason ?? 'path rejected', path };
443
+ const requestedScopes = options.scopePaths ?? [];
444
+ const scopeReals = [];
445
+ for (const scopePath of requestedScopes) {
446
+ if (typeof scopePath !== 'string' || scopePath.trim() === '') {
447
+ return { ok: false, tool, reason: 'cannot verify packet scope: empty path' };
173
448
  }
449
+ const scopeReal = canonicalTargetRealpath((0, path_1.resolve)(rootReal, scopePath));
450
+ if (scopeReal === undefined || !isInsideOrEqual(scopeReal, rootReal)) {
451
+ return {
452
+ ok: false,
453
+ tool,
454
+ reason: `cannot verify packet scope: ${scopePath}`,
455
+ path: scopePath,
456
+ };
457
+ }
458
+ scopeReals.push(scopeReal);
174
459
  }
175
- return { ok: true };
460
+ const scopeAgnosticTools = new Set([
461
+ ...DEFAULT_SCOPE_AGNOSTIC_TOOLS,
462
+ ...(options.scopeAgnosticTools ?? []),
463
+ ]);
464
+ return evaluateResolvedToolCall(tool, args, rootReal, scopeReals, scopeAgnosticTools);
176
465
  }
177
466
  /**
178
- * A mutable scope holder: the supervisor sets the current packet's scope
179
- * before running it, so the turn-level guard can enforce per-packet scope
180
- * containment without rebuilding the executor per packet.
467
+ * An async-context scope holder. Every parallel child gets its own packet
468
+ * scope, while callers outside a child context retain the legacy root-only
469
+ * behavior (or a scope explicitly entered for that async context).
470
+ *
471
+ * A process-wide mutable `current` value is unsafe here: parallel children
472
+ * overwrite each other's scope, and one child's cleanup can remove another
473
+ * still-running child's boundary. AsyncLocalStorage is available in Node 20
474
+ * and follows the promise/callback chain used by each child run.
181
475
  */
182
476
  class ScopeHolder {
183
477
  constructor() {
184
- this.current = [];
478
+ this.storage = new async_hooks_1.AsyncLocalStorage();
479
+ }
480
+ runWithScope(paths, operation) {
481
+ return this.storage.run([...paths], operation);
185
482
  }
186
483
  setScope(paths) {
187
- this.current = paths;
484
+ this.storage.enterWith([...paths]);
188
485
  }
189
486
  clear() {
190
- this.current = [];
487
+ this.storage.enterWith([]);
191
488
  }
192
489
  getScope() {
193
- return this.current;
490
+ return this.storage.getStore() ?? [];
194
491
  }
195
492
  }
196
493
  exports.ScopeHolder = ScopeHolder;
494
+ /**
495
+ * Rewrite approved root-bound cwd arguments to canonical absolute paths before
496
+ * delegation. The git tool passes cwd directly to child_process, where a
497
+ * relative value would otherwise resolve against process.cwd() instead of the
498
+ * guarded project root. batch_read is normalized to its parsed array form so
499
+ * nested git_status calls receive the same protection.
500
+ */
501
+ function canonicalizeApprovedArgs(tool, args, rootReal) {
502
+ if (ROOT_BOUND_TOOLS.has(tool)) {
503
+ const rawCwd = args.cwd;
504
+ const normalizedCwd = typeof rawCwd === 'string' && rawCwd !== '' ? normalizeKnownToolPath(rawCwd) : '.';
505
+ return { ...args, cwd: (0, path_1.resolve)(rootReal, normalizedCwd) };
506
+ }
507
+ if (tool === BATCH_TOOL) {
508
+ const parsed = parseBatchReadSteps(args.steps);
509
+ if (parsed.steps) {
510
+ return {
511
+ ...args,
512
+ steps: parsed.steps.map(step => ({
513
+ tool: step.tool,
514
+ args: canonicalizeApprovedArgs(step.tool, step.args, rootReal),
515
+ })),
516
+ };
517
+ }
518
+ }
519
+ return args;
520
+ }
197
521
  /**
198
522
  * Wrap a child tool executor with containment enforcement. The returned
199
523
  * executor delegates to `inner` only when all path-bearing args are inside
@@ -205,6 +529,7 @@ function createChildToolExecutorGuard(inner, options) {
205
529
  const verdict = evaluateToolCall(name, args, {
206
530
  rootCwd: options.rootCwd,
207
531
  scopePaths,
532
+ scopeAgnosticTools: options.scopeAgnosticTools,
208
533
  });
209
534
  if (!verdict.ok) {
210
535
  return JSON.stringify({
@@ -213,7 +538,18 @@ function createChildToolExecutorGuard(inner, options) {
213
538
  error: `Subagent scope guard rejected ${verdict.tool}: ${verdict.reason}`,
214
539
  });
215
540
  }
216
- return inner(name, args, abortSignal);
541
+ if (!ROOT_BOUND_TOOLS.has(name) && name !== BATCH_TOOL) {
542
+ return inner(name, args, abortSignal);
543
+ }
544
+ const rootReal = nearestExistingAncestorRealpath(options.rootCwd);
545
+ if (rootReal === undefined) {
546
+ return JSON.stringify({
547
+ success: false,
548
+ output: '',
549
+ error: `Subagent scope guard rejected ${name}: cannot resolve project root realpath`,
550
+ });
551
+ }
552
+ return inner(name, canonicalizeApprovedArgs(name, args, rootReal), abortSignal);
217
553
  };
218
554
  }
219
555
  //# sourceMappingURL=child-executor-guard.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"child-executor-guard.js","sourceRoot":"","sources":["../../../src/runtime/subagents/child-executor-guard.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"child-executor-guard.js","sourceRoot":"","sources":["../../../src/runtime/subagents/child-executor-guard.ts"],"names":[],"mappings":"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"}
@@ -30,15 +30,14 @@ export declare function toolsForRole(role: SubagentRole): readonly string[];
30
30
  export declare function systemPromptForRole(role: SubagentRole): string;
31
31
  /**
32
32
  * Filter an upstream tool list to a role's allowlist, removing any forbidden
33
- * tool and the recursive `subtask` capability. Also includes first-class MCP
34
- * tools (mcp__<server>__<tool>) that declare `readOnlyHint === true` via
35
- * their `isReadOnly()` method these are safe for children because they
36
- * cannot invoke arbitrary MCP actions.
33
+ * tool, every dynamic first-class MCP tool, and the recursive `subtask`
34
+ * capability. `readOnlyHint` is not a path-containment capability, so it must
35
+ * not make an MCP tool child-visible.
37
36
  *
38
37
  * Returns the names the child may receive; the caller is responsible for
39
38
  * resolving them to tool definitions.
40
39
  */
41
- export declare function filterToolsForRole(availableToolNames: readonly string[], role: SubagentRole, runtimeTools?: readonly OpenHorseTool[]): string[];
40
+ export declare function filterToolsForRole(availableToolNames: readonly string[], role: SubagentRole, _runtimeTools?: readonly OpenHorseTool[]): string[];
42
41
  /** Assert a filtered tool list contains no forbidden tool. Used by the runner. */
43
42
  export declare function assertNoForbiddenTools(toolNames: readonly string[]): void;
44
43
  //# sourceMappingURL=presets.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"presets.d.ts","sourceRoot":"","sources":["../../../src/runtime/subagents/presets.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAE1D,sEAAsE;AACtE,eAAO,MAAM,6BAA6B,oEAYhC,CAAC;AAEX;;;;GAIG;AACH,eAAO,MAAM,wBAAwB,0KAgB3B,CAAC;AAEX,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,YAAY,CAAC;IACnB,oCAAoC;IACpC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IACzB,0EAA0E;IAC1E,YAAY,EAAE,MAAM,CAAC;CACtB;AAqBD,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,YAAY,EAAE,UAAU,CAwBzD,CAAC;AAEF,8EAA8E;AAC9E,wBAAgB,YAAY,CAAC,IAAI,EAAE,YAAY,GAAG,SAAS,MAAM,EAAE,CAElE;AAED,4CAA4C;AAC5C,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,YAAY,GAAG,MAAM,CAE9D;AAED;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAChC,kBAAkB,EAAE,SAAS,MAAM,EAAE,EACrC,IAAI,EAAE,YAAY,EAClB,YAAY,CAAC,EAAE,SAAS,aAAa,EAAE,GACtC,MAAM,EAAE,CA4BV;AAED,kFAAkF;AAClF,wBAAgB,sBAAsB,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,GAAG,IAAI,CAMzE"}
1
+ {"version":3,"file":"presets.d.ts","sourceRoot":"","sources":["../../../src/runtime/subagents/presets.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAE1D,sEAAsE;AACtE,eAAO,MAAM,6BAA6B,oEAUhC,CAAC;AAEX;;;;GAIG;AACH,eAAO,MAAM,wBAAwB,0KAgB3B,CAAC;AAEX,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,YAAY,CAAC;IACnB,oCAAoC;IACpC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IACzB,0EAA0E;IAC1E,YAAY,EAAE,MAAM,CAAC;CACtB;AAqBD,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,YAAY,EAAE,UAAU,CAwBzD,CAAC;AAEF,8EAA8E;AAC9E,wBAAgB,YAAY,CAAC,IAAI,EAAE,YAAY,GAAG,SAAS,MAAM,EAAE,CAElE;AAED,4CAA4C;AAC5C,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,YAAY,GAAG,MAAM,CAE9D;AAED;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAChC,kBAAkB,EAAE,SAAS,MAAM,EAAE,EACrC,IAAI,EAAE,YAAY,EAClB,aAAa,CAAC,EAAE,SAAS,aAAa,EAAE,GACvC,MAAM,EAAE,CAeV;AAED,kFAAkF;AAClF,wBAAgB,sBAAsB,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,GAAG,IAAI,CAMzE"}