@namzu/sdk 51.0.0 → 52.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (352) hide show
  1. package/CHANGELOG.md +110 -0
  2. package/dist/agents/QueryAgent.d.ts.map +1 -1
  3. package/dist/agents/QueryAgent.js +2 -0
  4. package/dist/agents/QueryAgent.js.map +1 -1
  5. package/dist/agents/SupervisorAgent.d.ts +1 -1
  6. package/dist/agents/SupervisorAgent.d.ts.map +1 -1
  7. package/dist/agents/SupervisorAgent.js.map +1 -1
  8. package/dist/agents/examples/SupervisorAgent.d.ts +42 -0
  9. package/dist/agents/examples/SupervisorAgent.d.ts.map +1 -1
  10. package/dist/agents/examples/SupervisorAgent.js +80 -4
  11. package/dist/agents/examples/SupervisorAgent.js.map +1 -1
  12. package/dist/agents/index.d.ts +1 -1
  13. package/dist/agents/index.d.ts.map +1 -1
  14. package/dist/agents/index.js.map +1 -1
  15. package/dist/authorization/protected-paths.d.ts +36 -0
  16. package/dist/authorization/protected-paths.d.ts.map +1 -0
  17. package/dist/authorization/protected-paths.js +107 -0
  18. package/dist/authorization/protected-paths.js.map +1 -0
  19. package/dist/authorization/readonly-commands.d.ts +39 -0
  20. package/dist/authorization/readonly-commands.d.ts.map +1 -0
  21. package/dist/authorization/readonly-commands.js +797 -0
  22. package/dist/authorization/readonly-commands.js.map +1 -0
  23. package/dist/authorization/readonly-flags.d.ts +19 -0
  24. package/dist/authorization/readonly-flags.d.ts.map +1 -0
  25. package/dist/authorization/readonly-flags.js +178 -0
  26. package/dist/authorization/readonly-flags.js.map +1 -0
  27. package/dist/authorization/removal.d.ts +52 -0
  28. package/dist/authorization/removal.d.ts.map +1 -0
  29. package/dist/authorization/removal.js +283 -0
  30. package/dist/authorization/removal.js.map +1 -0
  31. package/dist/authorization/shell-paths.d.ts +66 -0
  32. package/dist/authorization/shell-paths.d.ts.map +1 -0
  33. package/dist/authorization/shell-paths.js +697 -0
  34. package/dist/authorization/shell-paths.js.map +1 -0
  35. package/dist/bridge/acp/update.d.ts.map +1 -1
  36. package/dist/bridge/acp/update.js +1 -0
  37. package/dist/bridge/acp/update.js.map +1 -1
  38. package/dist/bridge/sse/mapper.d.ts.map +1 -1
  39. package/dist/bridge/sse/mapper.js +1 -0
  40. package/dist/bridge/sse/mapper.js.map +1 -1
  41. package/dist/compaction/context-window.d.ts +24 -0
  42. package/dist/compaction/context-window.d.ts.map +1 -1
  43. package/dist/compaction/context-window.js +34 -0
  44. package/dist/compaction/context-window.js.map +1 -1
  45. package/dist/compaction/manual.d.ts.map +1 -1
  46. package/dist/compaction/manual.js +10 -2
  47. package/dist/compaction/manual.js.map +1 -1
  48. package/dist/compaction/plan.d.ts +4 -0
  49. package/dist/compaction/plan.d.ts.map +1 -1
  50. package/dist/compaction/plan.js +6 -2
  51. package/dist/compaction/plan.js.map +1 -1
  52. package/dist/compaction/verifier.d.ts +11 -1
  53. package/dist/compaction/verifier.d.ts.map +1 -1
  54. package/dist/compaction/verifier.js +19 -7
  55. package/dist/compaction/verifier.js.map +1 -1
  56. package/dist/config/runtime.d.ts +55 -7
  57. package/dist/config/runtime.d.ts.map +1 -1
  58. package/dist/config/runtime.js +23 -2
  59. package/dist/config/runtime.js.map +1 -1
  60. package/dist/connector/web/guarded-fetch.d.ts.map +1 -1
  61. package/dist/connector/web/guarded-fetch.js +24 -0
  62. package/dist/connector/web/guarded-fetch.js.map +1 -1
  63. package/dist/connector/web/index.d.ts +1 -1
  64. package/dist/connector/web/index.d.ts.map +1 -1
  65. package/dist/connector/web/page.d.ts +59 -0
  66. package/dist/connector/web/page.d.ts.map +1 -0
  67. package/dist/connector/web/page.js +112 -0
  68. package/dist/connector/web/page.js.map +1 -0
  69. package/dist/connector/web/types.d.ts +47 -0
  70. package/dist/connector/web/types.d.ts.map +1 -1
  71. package/dist/connector/web/types.js.map +1 -1
  72. package/dist/constants/continuation.d.ts +8 -0
  73. package/dist/constants/continuation.d.ts.map +1 -1
  74. package/dist/constants/continuation.js +8 -0
  75. package/dist/constants/continuation.js.map +1 -1
  76. package/dist/constants/plugin/index.d.ts +1 -1
  77. package/dist/constants/plugin/index.d.ts.map +1 -1
  78. package/dist/constants/plugin/index.js +1 -1
  79. package/dist/constants/plugin/index.js.map +1 -1
  80. package/dist/manager/agent/lifecycle.d.ts +7 -0
  81. package/dist/manager/agent/lifecycle.d.ts.map +1 -1
  82. package/dist/manager/agent/lifecycle.js +11 -2
  83. package/dist/manager/agent/lifecycle.js.map +1 -1
  84. package/dist/manager/session/turn-recorder.d.ts.map +1 -1
  85. package/dist/manager/session/turn-recorder.js +4 -2
  86. package/dist/manager/session/turn-recorder.js.map +1 -1
  87. package/dist/plugin/index.d.ts +1 -1
  88. package/dist/plugin/index.d.ts.map +1 -1
  89. package/dist/plugin/index.js +1 -1
  90. package/dist/plugin/index.js.map +1 -1
  91. package/dist/plugin/lifecycle.d.ts +6 -0
  92. package/dist/plugin/lifecycle.d.ts.map +1 -1
  93. package/dist/plugin/lifecycle.js +98 -114
  94. package/dist/plugin/lifecycle.js.map +1 -1
  95. package/dist/plugin/shell-hook.d.ts +90 -22
  96. package/dist/plugin/shell-hook.d.ts.map +1 -1
  97. package/dist/plugin/shell-hook.js +434 -41
  98. package/dist/plugin/shell-hook.js.map +1 -1
  99. package/dist/provider/errors.d.ts +10 -0
  100. package/dist/provider/errors.d.ts.map +1 -1
  101. package/dist/provider/errors.js +16 -0
  102. package/dist/provider/errors.js.map +1 -1
  103. package/dist/provider/retry.d.ts +27 -0
  104. package/dist/provider/retry.d.ts.map +1 -1
  105. package/dist/provider/retry.js +19 -3
  106. package/dist/provider/retry.js.map +1 -1
  107. package/dist/public-runtime.d.ts +4 -1
  108. package/dist/public-runtime.d.ts.map +1 -1
  109. package/dist/public-runtime.js +4 -1
  110. package/dist/public-runtime.js.map +1 -1
  111. package/dist/public-types.d.ts +2 -2
  112. package/dist/public-types.d.ts.map +1 -1
  113. package/dist/runtime/jobs/registry.d.ts +21 -0
  114. package/dist/runtime/jobs/registry.d.ts.map +1 -1
  115. package/dist/runtime/jobs/registry.js +15 -2
  116. package/dist/runtime/jobs/registry.js.map +1 -1
  117. package/dist/runtime/query/executor/tool-call-admission.d.ts +10 -0
  118. package/dist/runtime/query/executor/tool-call-admission.d.ts.map +1 -1
  119. package/dist/runtime/query/executor/tool-call-admission.js +74 -13
  120. package/dist/runtime/query/executor/tool-call-admission.js.map +1 -1
  121. package/dist/runtime/query/executor.d.ts +41 -2
  122. package/dist/runtime/query/executor.d.ts.map +1 -1
  123. package/dist/runtime/query/executor.js +190 -6
  124. package/dist/runtime/query/executor.js.map +1 -1
  125. package/dist/runtime/query/finalize-turn.d.ts +6 -0
  126. package/dist/runtime/query/finalize-turn.d.ts.map +1 -1
  127. package/dist/runtime/query/finalize-turn.js +1 -1
  128. package/dist/runtime/query/finalize-turn.js.map +1 -1
  129. package/dist/runtime/query/index.d.ts +29 -0
  130. package/dist/runtime/query/index.d.ts.map +1 -1
  131. package/dist/runtime/query/index.js +15 -3
  132. package/dist/runtime/query/index.js.map +1 -1
  133. package/dist/runtime/query/iteration/index.d.ts +31 -0
  134. package/dist/runtime/query/iteration/index.d.ts.map +1 -1
  135. package/dist/runtime/query/iteration/index.js +216 -7
  136. package/dist/runtime/query/iteration/index.js.map +1 -1
  137. package/dist/runtime/query/iteration/phases/compaction-breaker.d.ts +58 -0
  138. package/dist/runtime/query/iteration/phases/compaction-breaker.d.ts.map +1 -0
  139. package/dist/runtime/query/iteration/phases/compaction-breaker.js +91 -0
  140. package/dist/runtime/query/iteration/phases/compaction-breaker.js.map +1 -0
  141. package/dist/runtime/query/iteration/phases/compaction.d.ts.map +1 -1
  142. package/dist/runtime/query/iteration/phases/compaction.js +89 -7
  143. package/dist/runtime/query/iteration/phases/compaction.js.map +1 -1
  144. package/dist/runtime/query/iteration/phases/context.d.ts +10 -0
  145. package/dist/runtime/query/iteration/phases/context.d.ts.map +1 -1
  146. package/dist/runtime/query/iteration/phases/context.js.map +1 -1
  147. package/dist/runtime/query/iteration/phases/tool-review.d.ts.map +1 -1
  148. package/dist/runtime/query/iteration/phases/tool-review.js +165 -2
  149. package/dist/runtime/query/iteration/phases/tool-review.js.map +1 -1
  150. package/dist/runtime/query/iteration/stream-turn.d.ts.map +1 -1
  151. package/dist/runtime/query/iteration/stream-turn.js +24 -1
  152. package/dist/runtime/query/iteration/stream-turn.js.map +1 -1
  153. package/dist/runtime/query/path-escalation.d.ts +36 -0
  154. package/dist/runtime/query/path-escalation.d.ts.map +1 -0
  155. package/dist/runtime/query/path-escalation.js +184 -0
  156. package/dist/runtime/query/path-escalation.js.map +1 -0
  157. package/dist/runtime/query/plugin-hooks.d.ts.map +1 -1
  158. package/dist/runtime/query/plugin-hooks.js +8 -0
  159. package/dist/runtime/query/plugin-hooks.js.map +1 -1
  160. package/dist/runtime/query/reminders.d.ts +35 -0
  161. package/dist/runtime/query/reminders.d.ts.map +1 -0
  162. package/dist/runtime/query/reminders.js +7 -0
  163. package/dist/runtime/query/reminders.js.map +1 -0
  164. package/dist/runtime/query/resume-pending.d.ts.map +1 -1
  165. package/dist/runtime/query/resume-pending.js +26 -0
  166. package/dist/runtime/query/resume-pending.js.map +1 -1
  167. package/dist/runtime/query/review-policy.d.ts +26 -0
  168. package/dist/runtime/query/review-policy.d.ts.map +1 -1
  169. package/dist/runtime/query/review-policy.js +79 -5
  170. package/dist/runtime/query/review-policy.js.map +1 -1
  171. package/dist/runtime/query/tool-output-budget.d.ts +46 -0
  172. package/dist/runtime/query/tool-output-budget.d.ts.map +1 -1
  173. package/dist/runtime/query/tool-output-budget.js +85 -1
  174. package/dist/runtime/query/tool-output-budget.js.map +1 -1
  175. package/dist/runtime/query/tooling.d.ts +1 -0
  176. package/dist/runtime/query/tooling.d.ts.map +1 -1
  177. package/dist/runtime/query/tooling.js +5 -0
  178. package/dist/runtime/query/tooling.js.map +1 -1
  179. package/dist/session/paths.d.ts +5 -1
  180. package/dist/session/paths.d.ts.map +1 -1
  181. package/dist/session/paths.js +8 -0
  182. package/dist/session/paths.js.map +1 -1
  183. package/dist/store/memory/disk.d.ts.map +1 -1
  184. package/dist/store/memory/disk.js +2 -2
  185. package/dist/store/memory/disk.js.map +1 -1
  186. package/dist/store/memory/markdown.d.ts.map +1 -1
  187. package/dist/store/memory/markdown.js +2 -2
  188. package/dist/store/memory/markdown.js.map +1 -1
  189. package/dist/store/memory/naming.d.ts +9 -0
  190. package/dist/store/memory/naming.d.ts.map +1 -1
  191. package/dist/store/memory/naming.js +12 -0
  192. package/dist/store/memory/naming.js.map +1 -1
  193. package/dist/tools/builtins/bash.d.ts +30 -1
  194. package/dist/tools/builtins/bash.d.ts.map +1 -1
  195. package/dist/tools/builtins/bash.js +170 -26
  196. package/dist/tools/builtins/bash.js.map +1 -1
  197. package/dist/tools/builtins/content-fingerprint.d.ts +2 -0
  198. package/dist/tools/builtins/content-fingerprint.d.ts.map +1 -1
  199. package/dist/tools/builtins/content-fingerprint.js +4 -0
  200. package/dist/tools/builtins/content-fingerprint.js.map +1 -1
  201. package/dist/tools/builtins/edit.d.ts.map +1 -1
  202. package/dist/tools/builtins/edit.js +60 -18
  203. package/dist/tools/builtins/edit.js.map +1 -1
  204. package/dist/tools/builtins/grep.d.ts +8 -1
  205. package/dist/tools/builtins/grep.d.ts.map +1 -1
  206. package/dist/tools/builtins/grep.js +152 -33
  207. package/dist/tools/builtins/grep.js.map +1 -1
  208. package/dist/tools/builtins/read-file.d.ts +1 -0
  209. package/dist/tools/builtins/read-file.d.ts.map +1 -1
  210. package/dist/tools/builtins/read-file.js +44 -5
  211. package/dist/tools/builtins/read-file.js.map +1 -1
  212. package/dist/tools/builtins/read-render.d.ts +52 -0
  213. package/dist/tools/builtins/read-render.d.ts.map +1 -1
  214. package/dist/tools/builtins/read-render.js +143 -0
  215. package/dist/tools/builtins/read-render.js.map +1 -1
  216. package/dist/tools/builtins/web.d.ts +13 -2
  217. package/dist/tools/builtins/web.d.ts.map +1 -1
  218. package/dist/tools/builtins/web.js +225 -32
  219. package/dist/tools/builtins/web.js.map +1 -1
  220. package/dist/tools/coordinator/ask-user-question.d.ts +2 -0
  221. package/dist/tools/coordinator/ask-user-question.d.ts.map +1 -1
  222. package/dist/tools/coordinator/ask-user-question.js +256 -92
  223. package/dist/tools/coordinator/ask-user-question.js.map +1 -1
  224. package/dist/tools/coordinator/question-options.d.ts +1 -0
  225. package/dist/tools/coordinator/question-options.d.ts.map +1 -1
  226. package/dist/tools/coordinator/question-options.js +6 -1
  227. package/dist/tools/coordinator/question-options.js.map +1 -1
  228. package/dist/tools/defineTool.d.ts +4 -1
  229. package/dist/tools/defineTool.d.ts.map +1 -1
  230. package/dist/tools/defineTool.js +6 -1
  231. package/dist/tools/defineTool.js.map +1 -1
  232. package/dist/tools/paths.d.ts +6 -0
  233. package/dist/tools/paths.d.ts.map +1 -1
  234. package/dist/tools/paths.js +1 -1
  235. package/dist/tools/paths.js.map +1 -1
  236. package/dist/types/agent/query.d.ts +3 -0
  237. package/dist/types/agent/query.d.ts.map +1 -1
  238. package/dist/types/errors/catalog.js +1 -1
  239. package/dist/types/errors/catalog.js.map +1 -1
  240. package/dist/types/hitl/index.d.ts +104 -0
  241. package/dist/types/hitl/index.d.ts.map +1 -1
  242. package/dist/types/hitl/index.js.map +1 -1
  243. package/dist/types/message/index.d.ts +1 -1
  244. package/dist/types/message/index.d.ts.map +1 -1
  245. package/dist/types/message/index.js +2 -0
  246. package/dist/types/message/index.js.map +1 -1
  247. package/dist/types/plugin/index.d.ts +93 -19
  248. package/dist/types/plugin/index.d.ts.map +1 -1
  249. package/dist/types/plugin/index.js +3 -0
  250. package/dist/types/plugin/index.js.map +1 -1
  251. package/dist/types/provider/error.d.ts +6 -0
  252. package/dist/types/provider/error.d.ts.map +1 -1
  253. package/dist/types/provider/errors.d.ts +19 -0
  254. package/dist/types/provider/errors.d.ts.map +1 -1
  255. package/dist/types/provider/errors.js +39 -1
  256. package/dist/types/provider/errors.js.map +1 -1
  257. package/dist/types/provider/stream.d.ts +6 -0
  258. package/dist/types/provider/stream.d.ts.map +1 -1
  259. package/dist/types/session/events.d.ts +15 -2
  260. package/dist/types/session/events.d.ts.map +1 -1
  261. package/dist/types/session/events.js.map +1 -1
  262. package/dist/types/session/records.d.ts +9 -9
  263. package/dist/types/session/records.d.ts.map +1 -1
  264. package/dist/types/session/records.js +1 -0
  265. package/dist/types/session/records.js.map +1 -1
  266. package/dist/types/session/stop-reason.d.ts +5 -0
  267. package/dist/types/session/stop-reason.d.ts.map +1 -1
  268. package/dist/types/tool/index.d.ts +52 -0
  269. package/dist/types/tool/index.d.ts.map +1 -1
  270. package/dist/types/tool/index.js.map +1 -1
  271. package/dist/utils/backoff.d.ts +12 -0
  272. package/dist/utils/backoff.d.ts.map +1 -1
  273. package/dist/utils/backoff.js +15 -0
  274. package/dist/utils/backoff.js.map +1 -1
  275. package/package.json +4 -2
  276. package/src/agents/QueryAgent.ts +5 -1
  277. package/src/agents/SupervisorAgent.ts +1 -1
  278. package/src/agents/examples/SupervisorAgent.ts +217 -106
  279. package/src/agents/index.ts +1 -1
  280. package/src/authorization/protected-paths.ts +110 -0
  281. package/src/authorization/readonly-commands.ts +771 -0
  282. package/src/authorization/readonly-flags.ts +196 -0
  283. package/src/authorization/removal.ts +326 -0
  284. package/src/authorization/shell-paths.ts +927 -0
  285. package/src/bridge/acp/update.ts +1 -0
  286. package/src/bridge/sse/mapper.ts +1 -0
  287. package/src/compaction/context-window.ts +41 -0
  288. package/src/compaction/manual.ts +10 -2
  289. package/src/compaction/plan.ts +11 -2
  290. package/src/compaction/verifier.ts +28 -3
  291. package/src/config/runtime.ts +23 -2
  292. package/src/connector/web/guarded-fetch.ts +26 -0
  293. package/src/connector/web/index.ts +3 -0
  294. package/src/connector/web/page.ts +130 -0
  295. package/src/connector/web/types.ts +47 -0
  296. package/src/constants/continuation.ts +10 -0
  297. package/src/constants/plugin/index.ts +1 -1
  298. package/src/manager/agent/lifecycle.ts +12 -4
  299. package/src/manager/session/turn-recorder.ts +10 -2
  300. package/src/plugin/index.ts +1 -0
  301. package/src/plugin/lifecycle.ts +107 -119
  302. package/src/plugin/shell-hook.ts +477 -43
  303. package/src/provider/errors.ts +18 -0
  304. package/src/provider/retry.ts +53 -3
  305. package/src/public-runtime.ts +8 -0
  306. package/src/public-types.ts +4 -0
  307. package/src/runtime/jobs/registry.ts +39 -2
  308. package/src/runtime/query/executor/tool-call-admission.ts +79 -13
  309. package/src/runtime/query/executor.ts +242 -8
  310. package/src/runtime/query/finalize-turn.ts +7 -1
  311. package/src/runtime/query/index.ts +45 -3
  312. package/src/runtime/query/iteration/index.ts +251 -12
  313. package/src/runtime/query/iteration/phases/compaction-breaker.ts +106 -0
  314. package/src/runtime/query/iteration/phases/compaction.ts +99 -12
  315. package/src/runtime/query/iteration/phases/context.ts +11 -0
  316. package/src/runtime/query/iteration/phases/tool-review.ts +177 -2
  317. package/src/runtime/query/iteration/stream-turn.ts +24 -1
  318. package/src/runtime/query/path-escalation.ts +204 -0
  319. package/src/runtime/query/plugin-hooks.ts +8 -0
  320. package/src/runtime/query/reminders.ts +45 -0
  321. package/src/runtime/query/resume-pending.ts +27 -0
  322. package/src/runtime/query/review-policy.ts +106 -5
  323. package/src/runtime/query/tool-output-budget.ts +115 -1
  324. package/src/runtime/query/tooling.ts +6 -0
  325. package/src/session/paths.ts +11 -1
  326. package/src/store/memory/disk.ts +2 -1
  327. package/src/store/memory/markdown.ts +2 -1
  328. package/src/store/memory/naming.ts +13 -0
  329. package/src/tools/builtins/bash.ts +203 -34
  330. package/src/tools/builtins/content-fingerprint.ts +5 -0
  331. package/src/tools/builtins/edit.ts +69 -19
  332. package/src/tools/builtins/grep.ts +159 -38
  333. package/src/tools/builtins/read-file.ts +48 -5
  334. package/src/tools/builtins/read-render.ts +193 -0
  335. package/src/tools/builtins/web.ts +258 -33
  336. package/src/tools/coordinator/ask-user-question.ts +309 -103
  337. package/src/tools/coordinator/question-options.ts +8 -1
  338. package/src/tools/defineTool.ts +11 -2
  339. package/src/tools/paths.ts +1 -1
  340. package/src/types/agent/query.ts +3 -0
  341. package/src/types/errors/catalog.ts +1 -1
  342. package/src/types/hitl/index.ts +104 -0
  343. package/src/types/message/index.ts +2 -0
  344. package/src/types/plugin/index.ts +101 -18
  345. package/src/types/provider/error.ts +6 -0
  346. package/src/types/provider/errors.ts +49 -1
  347. package/src/types/provider/stream.ts +6 -0
  348. package/src/types/session/events.ts +15 -2
  349. package/src/types/session/records.ts +1 -0
  350. package/src/types/session/stop-reason.ts +5 -0
  351. package/src/types/tool/index.ts +53 -2
  352. package/src/utils/backoff.ts +21 -0
@@ -0,0 +1,184 @@
1
+ /**
2
+ * What a call writes or removes that no mode may approve in advance.
3
+ *
4
+ * Three questions the kernel answers about a prepared call before it runs, all
5
+ * of them about the call's own arguments and none about the model's intent:
6
+ *
7
+ * - does it write a protected path (a git hook, a shell rc file, editor or
8
+ * tool configuration, the project's `.namzu` directory)?
9
+ * - does its shell line remove something catastrophic?
10
+ * - does its shell line reach a path outside the turn's roots, through a
11
+ * command whose operands are paths or through a redirection?
12
+ *
13
+ * The first two are floors: they hold in every mode, the way a sandbox escape
14
+ * does. The third is the existing outside-root boundary, extended from the
15
+ * file tools' one declared argument to the paths a shell line names.
16
+ */
17
+ import { homedir } from 'node:os';
18
+ import { isAbsolute, relative, resolve } from 'node:path';
19
+ import { isProtectedPath } from '../../authorization/protected-paths.js';
20
+ import { dangerousRemoval } from '../../authorization/removal.js';
21
+ import { readShellLine, shellPathAccess } from '../../authorization/shell-paths.js';
22
+ import { canonicalize, pathOutsideRoots } from '../../tools/paths.js';
23
+ /**
24
+ * The part of `absolute` that protected names are looked for in.
25
+ *
26
+ * Inside a root (the working directory or an added directory) that is the part
27
+ * below the root, not the whole path: the root is where the turn was put, and
28
+ * a root that itself sits under a protected name is not a reason to ask about
29
+ * every file in it. The case that matters is the managed worktree a sub-agent
30
+ * runs in, `~/.namzu/projects/<slug>/worktrees/<name>`, which lies under
31
+ * `.namzu` by construction; the reference terminal makes the same exception
32
+ * for its own worktrees directory. A path in no root is looked at whole.
33
+ */
34
+ function protectedScope(absolute, roots) {
35
+ let best;
36
+ for (const root of roots) {
37
+ const base = resolve(root);
38
+ const below = relative(base, absolute);
39
+ if (below === '' || below.startsWith('..') || isAbsolute(below))
40
+ continue;
41
+ if (best === undefined || below.length < best.length)
42
+ best = below;
43
+ }
44
+ return best ?? absolute;
45
+ }
46
+ /** A write is protected when its spelling, or the place a link leads to, is. */
47
+ async function isProtectedWrite(spelled, absolute, roots) {
48
+ if (isProtectedPath(isAbsolute(spelled) ? protectedScope(absolute, roots) : spelled))
49
+ return true;
50
+ if (isProtectedPath(protectedScope(absolute, roots)))
51
+ return true;
52
+ const real = await canonicalize(absolute);
53
+ const realRoots = await Promise.all(roots.map((root) => canonicalize(resolve(root))));
54
+ return isProtectedPath(protectedScope(real, [...roots, ...realRoots]));
55
+ }
56
+ /** `{a,b}` with plain comma lists, one level at a time, bounded. */
57
+ export function expandBraces(value, limit = 16) {
58
+ const open = value.indexOf('{');
59
+ if (open < 0)
60
+ return [value];
61
+ let depth = 0;
62
+ let close = -1;
63
+ const commas = [];
64
+ for (let i = open; i < value.length; i += 1) {
65
+ const c = value[i];
66
+ if (c === '{')
67
+ depth += 1;
68
+ else if (c === '}') {
69
+ depth -= 1;
70
+ if (depth === 0) {
71
+ close = i;
72
+ break;
73
+ }
74
+ }
75
+ else if (c === ',' && depth === 1)
76
+ commas.push(i);
77
+ }
78
+ if (close < 0 || commas.length === 0)
79
+ return [value];
80
+ const head = value.slice(0, open);
81
+ const tail = value.slice(close + 1);
82
+ const parts = [];
83
+ let start = open + 1;
84
+ for (const comma of [...commas, close]) {
85
+ parts.push(value.slice(start, comma));
86
+ start = comma + 1;
87
+ }
88
+ const out = [];
89
+ for (const part of parts) {
90
+ for (const rest of expandBraces(head + part + tail, limit)) {
91
+ out.push(rest);
92
+ if (out.length >= limit)
93
+ return out;
94
+ }
95
+ }
96
+ return out;
97
+ }
98
+ /** The path a use names with `~` and `$HOME` read as the home directory, or why it cannot be. */
99
+ function settle(value, home) {
100
+ if (value === '~')
101
+ return { path: home };
102
+ if (value.startsWith('~/'))
103
+ return { path: resolve(home, value.slice(2)) };
104
+ if (value.startsWith('~'))
105
+ return { unresolved: true };
106
+ const variable = /^\$(?:\{HOME\}|HOME)(?=\/|$)/.exec(value);
107
+ if (variable !== null)
108
+ return { path: resolve(home, `.${value.slice(variable[0].length)}`) };
109
+ if (/[$`]/.test(value))
110
+ return { unresolved: true };
111
+ return { path: value };
112
+ }
113
+ /** The part of a glob path before the first segment that holds a glob character. */
114
+ function beforeGlob(path) {
115
+ const at = path.search(/[*?[]/);
116
+ if (at < 0)
117
+ return path;
118
+ const cut = path.lastIndexOf('/', at);
119
+ return cut <= 0 ? '/' : path.slice(0, cut);
120
+ }
121
+ /** A write the file tool's own declared path argument names. */
122
+ export async function declaredWriteEscalation(roots, value) {
123
+ const [first] = roots;
124
+ if (first === undefined || value === '')
125
+ return undefined;
126
+ const absolute = resolve(resolve(first), value);
127
+ return (await isProtectedWrite(value, absolute, roots)) ? absolute : undefined;
128
+ }
129
+ /** What a shell line reaches. */
130
+ export async function shellEscalations(line, dialect, context) {
131
+ const reading = readShellLine(line, dialect);
132
+ const access = shellPathAccess(reading);
133
+ const [cwd, ...added] = context.roots;
134
+ const outside = new Set();
135
+ const protectedPaths = new Set();
136
+ const home = homedir();
137
+ if (cwd !== undefined) {
138
+ for (const use of access.uses) {
139
+ for (const spelled of expandBraces(use.path)) {
140
+ const settled = settle(spelled, home);
141
+ const unresolved = use.unresolved || 'unresolved' in settled;
142
+ const base = 'path' in settled ? settled.path : spelled;
143
+ const absolute = isAbsolute(base) ? resolve(base) : resolve(cwd, base);
144
+ if (use.access === 'write' && (await isProtectedWrite(spelled, absolute, context.roots))) {
145
+ protectedPaths.add(absolute);
146
+ }
147
+ if (!context.reviewOutside)
148
+ continue;
149
+ if (unresolved) {
150
+ // A write whose target is decided at runtime cannot be checked; a
151
+ // read of one is left, as the reference leaves it.
152
+ if (use.access === 'write')
153
+ outside.add(spelled);
154
+ continue;
155
+ }
156
+ if (access.changesDirectory &&
157
+ use.access === 'write' &&
158
+ !isAbsolute(base) &&
159
+ !spelled.startsWith('~')) {
160
+ // A `cd` earlier in the line moves a relative target somewhere the
161
+ // roots cannot be compared with.
162
+ outside.add(spelled);
163
+ continue;
164
+ }
165
+ const reached = await pathOutsideRoots(context.roots, beforeGlob(absolute));
166
+ if (reached !== undefined)
167
+ outside.add(reached);
168
+ }
169
+ }
170
+ }
171
+ const removal = cwd === undefined
172
+ ? undefined
173
+ : dangerousRemoval(reading, access.changesDirectory, {
174
+ cwd,
175
+ additionalDirectories: added,
176
+ home,
177
+ });
178
+ return {
179
+ outsidePaths: [...outside],
180
+ protectedPaths: [...protectedPaths],
181
+ ...(removal !== undefined ? { dangerousRemoval: removal } : {}),
182
+ };
183
+ }
184
+ //# sourceMappingURL=path-escalation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"path-escalation.js","sourceRoot":"","sources":["../../../src/runtime/query/path-escalation.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"plugin-hooks.d.ts","sourceRoot":"","sources":["../../../src/runtime/query/plugin-hooks.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAA;AAEpF;;;;;;;GAOG;AACH,wBAAgB,yBAAyB,CACxC,KAAK,EAAE,eAAe,EACtB,OAAO,EAAE,SAAS,gBAAgB,EAAE,GAClC,MAAM,EAAE,CA8CV;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAE9E;AAED,4FAA4F;AAC5F,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAE9E"}
1
+ {"version":3,"file":"plugin-hooks.d.ts","sourceRoot":"","sources":["../../../src/runtime/query/plugin-hooks.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAA;AAEpF;;;;;;;GAOG;AACH,wBAAgB,yBAAyB,CACxC,KAAK,EAAE,eAAe,EACtB,OAAO,EAAE,SAAS,gBAAgB,EAAE,GAClC,MAAM,EAAE,CAsDV;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAE9E;AAED,4FAA4F;AAC5F,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAE9E"}
@@ -21,6 +21,14 @@ export function applyLifecycleHookResults(event, results) {
21
21
  annotations.push(result.text.trim());
22
22
  continue;
23
23
  case 'skip':
24
+ // `turn_end`, `subagent_stop` and `pre_compact` answer with `skip`
25
+ // to keep the turn going or to cancel a pass. The sites that can act
26
+ // on that read the results themselves; a site that cannot (the
27
+ // final `turn_end` of a turn that already ended) has nothing to
28
+ // refuse and carries on.
29
+ if (event === 'turn_end' || event === 'subagent_stop' || event === 'pre_compact') {
30
+ continue;
31
+ }
24
32
  // The one lifecycle event with a verdict: a hook may refuse the
25
33
  // prompt before the model sees it, and the turn ends there.
26
34
  if (event === 'user_prompt_submit') {
@@ -1 +1 @@
1
- {"version":3,"file":"plugin-hooks.js","sourceRoot":"","sources":["../../../src/runtime/query/plugin-hooks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAA;AAGxD;;;;;;;GAOG;AACH,MAAM,UAAU,yBAAyB,CACxC,KAAsB,EACtB,OAAoC;IAEpC,MAAM,WAAW,GAAa,EAAE,CAAA;IAChC,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC9B,QAAQ,MAAM,CAAC,MAAM,EAAE,CAAC;YACvB,KAAK,UAAU;gBACd,SAAQ;YACT,KAAK,UAAU;gBACd,IAAI,KAAK,KAAK,oBAAoB,EAAE,CAAC;oBACpC,MAAM,IAAI,KAAK,CACd,eAAe,KAAK,6DAA6D,CACjF,CAAA;gBACF,CAAC;gBACD,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC;oBAAE,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAA;gBACvE,SAAQ;YACT,KAAK,MAAM;gBACV,gEAAgE;gBAChE,4DAA4D;gBAC5D,IAAI,KAAK,KAAK,oBAAoB,EAAE,CAAC;oBACpC,MAAM,IAAI,UAAU,CAAC;wBACpB,IAAI,EAAE,cAAc;wBACpB,OAAO,EAAE,2BAA2B,MAAM,CAAC,MAAM,EAAE;wBACnD,OAAO,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE;qBACxD,CAAC,CAAA;gBACH,CAAC;gBACD,MAAM,IAAI,KAAK,CACd,eAAe,KAAK,2DAA2D,CAC/E,CAAA;YACF,KAAK,OAAO;gBACX,MAAM,IAAI,UAAU,CAAC;oBACpB,IAAI,EAAE,cAAc;oBACpB,OAAO,EAAE,eAAe,KAAK,oBAAoB,MAAM,CAAC,OAAO,EAAE;oBACjE,OAAO,EAAE,EAAE,KAAK,EAAE;iBAClB,CAAC,CAAA;YACH,KAAK,QAAQ,CAAC;YACd,KAAK,OAAO,CAAC;YACb,KAAK,SAAS;gBACb,MAAM,IAAI,KAAK,CACd,eAAe,KAAK,iCAAiC,MAAM,CAAC,MAAM,yBAAyB,CAC3F,CAAA;YACF,OAAO,CAAC,CAAC,CAAC;gBACT,MAAM,WAAW,GAAU,MAAM,CAAA;gBACjC,MAAM,IAAI,KAAK,CAAC,6BAA6B,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE,CAAC,CAAA;YAC5E,CAAC;QACF,CAAC;IACF,CAAC;IACD,OAAO,WAAW,CAAA;AACnB,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,qBAAqB,CAAC,QAAgB,EAAE,MAAc;IACrE,OAAO,QAAQ,QAAQ,uBAAuB,MAAM,EAAE,CAAA;AACvD,CAAC;AAED,4FAA4F;AAC5F,MAAM,UAAU,mBAAmB,CAAC,QAAgB,EAAE,OAAe;IACpE,OAAO,OAAO,CAAC,UAAU,CAAC,qBAAqB,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAA;AAC/D,CAAC"}
1
+ {"version":3,"file":"plugin-hooks.js","sourceRoot":"","sources":["../../../src/runtime/query/plugin-hooks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAA;AAGxD;;;;;;;GAOG;AACH,MAAM,UAAU,yBAAyB,CACxC,KAAsB,EACtB,OAAoC;IAEpC,MAAM,WAAW,GAAa,EAAE,CAAA;IAChC,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC9B,QAAQ,MAAM,CAAC,MAAM,EAAE,CAAC;YACvB,KAAK,UAAU;gBACd,SAAQ;YACT,KAAK,UAAU;gBACd,IAAI,KAAK,KAAK,oBAAoB,EAAE,CAAC;oBACpC,MAAM,IAAI,KAAK,CACd,eAAe,KAAK,6DAA6D,CACjF,CAAA;gBACF,CAAC;gBACD,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC;oBAAE,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAA;gBACvE,SAAQ;YACT,KAAK,MAAM;gBACV,mEAAmE;gBACnE,qEAAqE;gBACrE,+DAA+D;gBAC/D,gEAAgE;gBAChE,yBAAyB;gBACzB,IAAI,KAAK,KAAK,UAAU,IAAI,KAAK,KAAK,eAAe,IAAI,KAAK,KAAK,aAAa,EAAE,CAAC;oBAClF,SAAQ;gBACT,CAAC;gBACD,gEAAgE;gBAChE,4DAA4D;gBAC5D,IAAI,KAAK,KAAK,oBAAoB,EAAE,CAAC;oBACpC,MAAM,IAAI,UAAU,CAAC;wBACpB,IAAI,EAAE,cAAc;wBACpB,OAAO,EAAE,2BAA2B,MAAM,CAAC,MAAM,EAAE;wBACnD,OAAO,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE;qBACxD,CAAC,CAAA;gBACH,CAAC;gBACD,MAAM,IAAI,KAAK,CACd,eAAe,KAAK,2DAA2D,CAC/E,CAAA;YACF,KAAK,OAAO;gBACX,MAAM,IAAI,UAAU,CAAC;oBACpB,IAAI,EAAE,cAAc;oBACpB,OAAO,EAAE,eAAe,KAAK,oBAAoB,MAAM,CAAC,OAAO,EAAE;oBACjE,OAAO,EAAE,EAAE,KAAK,EAAE;iBAClB,CAAC,CAAA;YACH,KAAK,QAAQ,CAAC;YACd,KAAK,OAAO,CAAC;YACb,KAAK,SAAS;gBACb,MAAM,IAAI,KAAK,CACd,eAAe,KAAK,iCAAiC,MAAM,CAAC,MAAM,yBAAyB,CAC3F,CAAA;YACF,OAAO,CAAC,CAAC,CAAC;gBACT,MAAM,WAAW,GAAU,MAAM,CAAA;gBACjC,MAAM,IAAI,KAAK,CAAC,6BAA6B,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE,CAAC,CAAA;YAC5E,CAAC;QACF,CAAC;IACF,CAAC;IACD,OAAO,WAAW,CAAA;AACnB,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,qBAAqB,CAAC,QAAgB,EAAE,MAAc;IACrE,OAAO,QAAQ,QAAQ,uBAAuB,MAAM,EAAE,CAAA;AACvD,CAAC;AAED,4FAA4F;AAC5F,MAAM,UAAU,mBAAmB,CAAC,QAAgB,EAAE,OAAe;IACpE,OAAO,OAAO,CAAC,UAAU,CAAC,qBAAqB,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAA;AAC/D,CAAC"}
@@ -0,0 +1,35 @@
1
+ import type { SessionId, TurnId } from '../../types/ids/index.js';
2
+ import type { Message } from '../../types/message/index.js';
3
+ /**
4
+ * What a reminder source is told when the kernel asks it for hidden reminders.
5
+ */
6
+ export interface ReminderContext {
7
+ readonly sessionId: SessionId;
8
+ readonly turnId: TurnId;
9
+ /** The model request about to be made; 1 for the first of the turn. */
10
+ readonly iteration: number;
11
+ /**
12
+ * The conversation as it stands, reminders included. Read-only: a source
13
+ * derives its cadence from this (how many assistant turns since it last
14
+ * spoke), so a resumed or compacted conversation needs no counter of its own.
15
+ */
16
+ readonly messages: readonly Message[];
17
+ }
18
+ /**
19
+ * A host's hidden reminders for the next model request.
20
+ *
21
+ * The kernel calls it once at the start of every model request of a turn
22
+ * (never the closing one) and appends each returned text to the conversation
23
+ * as a user-role message with provenance `{ type: 'runtime-context', kind:
24
+ * 'reminder' }`. The message is part of the durable history, so it is not
25
+ * operator input, never counts as the latest user request, and is not shown as
26
+ * something the operator typed. The channel is opt-in
27
+ * (`QueryParams.reminders`): a turn without a source behaves as before.
28
+ *
29
+ * A source that throws is treated as having nothing to say; a reminder is
30
+ * context, and a fault in one must not end a turn.
31
+ */
32
+ export type ReminderSource = (context: ReminderContext) => readonly string[] | undefined | Promise<readonly string[] | undefined>;
33
+ /** Whether a message is a reminder the kernel appended for a {@link ReminderSource}. */
34
+ export declare function isReminderMessage(message: Message): boolean;
35
+ //# sourceMappingURL=reminders.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reminders.d.ts","sourceRoot":"","sources":["../../../src/runtime/query/reminders.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAA;AACjE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,8BAA8B,CAAA;AAE3D;;GAEG;AACH,MAAM,WAAW,eAAe;IAC/B,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAA;IAC7B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,uEAAuE;IACvE,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B;;;;OAIG;IACH,QAAQ,CAAC,QAAQ,EAAE,SAAS,OAAO,EAAE,CAAA;CACrC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,MAAM,cAAc,GAAG,CAC5B,OAAO,EAAE,eAAe,KACpB,SAAS,MAAM,EAAE,GAAG,SAAS,GAAG,OAAO,CAAC,SAAS,MAAM,EAAE,GAAG,SAAS,CAAC,CAAA;AAE3E,wFAAwF;AACxF,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAM3D"}
@@ -0,0 +1,7 @@
1
+ /** Whether a message is a reminder the kernel appended for a {@link ReminderSource}. */
2
+ export function isReminderMessage(message) {
3
+ return (message.role === 'user' &&
4
+ message.source?.type === 'runtime-context' &&
5
+ message.source.kind === 'reminder');
6
+ }
7
+ //# sourceMappingURL=reminders.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reminders.js","sourceRoot":"","sources":["../../../src/runtime/query/reminders.ts"],"names":[],"mappings":"AAqCA,wFAAwF;AACxF,MAAM,UAAU,iBAAiB,CAAC,OAAgB;IACjD,OAAO,CACN,OAAO,CAAC,IAAI,KAAK,MAAM;QACvB,OAAO,CAAC,MAAM,EAAE,IAAI,KAAK,iBAAiB;QAC1C,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,UAAU,CAClC,CAAA;AACF,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"resume-pending.d.ts","sourceRoot":"","sources":["../../../src/runtime/query/resume-pending.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"resume-pending.d.ts","sourceRoot":"","sources":["../../../src/runtime/query/resume-pending.ts"],"names":[],"mappings":"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"}
@@ -380,6 +380,24 @@ export async function applyPendingResume(plan, recorder, executor, prior, assist
380
380
  reason: "the turn's review approved this call, answered across a restart",
381
381
  });
382
382
  }
383
+ for (const path of call.escalation?.protectedPaths ?? []) {
384
+ await recorder.recordAudit({
385
+ what: { action: 'protected_path_write', tool: call.name, resource: path },
386
+ outcome: 'approved',
387
+ reason: "the turn's review approved this call, answered across a restart",
388
+ });
389
+ }
390
+ if (call.escalation?.dangerousRemoval !== undefined) {
391
+ await recorder.recordAudit({
392
+ what: {
393
+ action: 'dangerous_removal',
394
+ tool: call.name,
395
+ resource: call.escalation.dangerousRemoval,
396
+ },
397
+ outcome: 'approved',
398
+ reason: "the turn's review approved this call, answered across a restart",
399
+ });
400
+ }
383
401
  }
384
402
  // The parked assistant message is already in the log: it goes back into
385
403
  // the context under its own record id, never as a second copy.
@@ -413,6 +431,14 @@ export function escalationRefusal(escalation, reviewed, wasModified, confirmed,
413
431
  if (!shown?.outsidePaths?.includes(path))
414
432
  return refusal;
415
433
  }
434
+ for (const path of escalation.protectedPaths ?? []) {
435
+ if (!shown?.protectedPaths?.includes(path))
436
+ return refusal;
437
+ }
438
+ if (escalation.dangerousRemoval !== undefined &&
439
+ shown?.dangerousRemoval !== escalation.dangerousRemoval) {
440
+ return refusal;
441
+ }
416
442
  if (escalation.sandboxEscape && (!shown?.sandboxEscape || !confirmed?.includes(id))) {
417
443
  return 'Refused after resume: running this command outside the sandbox needs a person to confirm it for this call, and the durable approval did not.';
418
444
  }
@@ -1 +1 @@
1
- {"version":3,"file":"resume-pending.js","sourceRoot":"","sources":["../../../src/runtime/query/resume-pending.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAA;AAgB7C,OAAO,EAAE,2BAA2B,EAAE,MAAM,eAAe,CAAA;AAS3D,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAyDhD;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,iBAAiB,CAChC,UAA8B,EAC9B,QAA4B,EAC5B,GAAW;IAEX,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,CAAA;IAClC,IAAI,CAAC,OAAO;QAAE,OAAO,IAAI,CAAA;IAEzB,qEAAqE;IACrE,uEAAuE;IACvE,uEAAuE;IACvE,sEAAsE;IACtE,uEAAuE;IACvE,mEAAmE;IACnE,mEAAmE;IACnE,gDAAgD;IAChD,IAAI,OAAO,CAAC,OAAO,CAAC,IAAI,KAAK,eAAe,EAAE,CAAC;QAC9C,OAAO,kBAAkB,CAAC,UAAU,EAAE,QAAQ,EAAE,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,EAAE,GAAG,CAAC,CAAA;IAC1F,CAAC;IAED,IAAI,OAAO,CAAC,OAAO,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;QAC5C,GAAG,CAAC,IAAI,CAAC,+EAA+E,EAAE;YACzF,qBAAqB,EAAE,UAAU,CAAC,EAAE;YACpC,4BAA4B,EAAE,OAAO,CAAC,OAAO,CAAC,IAAI;YAClD,wBAAwB,EAAE,QAAQ,CAAC,MAAM;SACzC,CAAC,CAAA;QACF,OAAO,IAAI,CAAA;IACZ,CAAC;IAED,MAAM,SAAS,GAAG,mBAAmB,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAA;IACrE,IAAI,CAAC,SAAS,EAAE,SAAS,IAAI,SAAS,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC/D,GAAG,CAAC,IAAI,CAAC,wEAAwE,EAAE;YAClF,qBAAqB,EAAE,UAAU,CAAC,EAAE;SACpC,CAAC,CAAA;QACF,OAAO,IAAI,CAAA;IACZ,CAAC;IAED,oEAAoE;IACpE,oEAAoE;IACpE,uEAAuE;IACvE,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;IACzE,MAAM,SAAS,GAAG,SAAS,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAA;IACxD,MAAM,UAAU,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAA;IACjE,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,IAAI,WAAW,CAAC,IAAI,KAAK,SAAS,CAAC,MAAM,EAAE,CAAC;QACpE,GAAG,CAAC,KAAK,CAAC,gFAAgF,EAAE;YAC3F,qBAAqB,EAAE,UAAU,CAAC,EAAE;YACpC,wBAAwB,EAAE,CAAC,GAAG,WAAW,CAAC;YAC1C,sBAAsB,EAAE,SAAS;SACjC,CAAC,CAAA;QACF,OAAO,IAAI,CAAA;IACZ,CAAC;IAED,MAAM,OAAO,GAAG,cAAc,CAAC,SAAS,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAA;IAC7D,IAAI,CAAC,OAAO;QAAE,OAAO,IAAI,CAAA;IACzB,MAAM,QAAQ,GAAG,eAAe,CAAC,SAAS,CAAC,SAAS,EAAE,QAAQ,EAAE,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;IAE1F,OAAO;QACN,MAAM,EAAE,UAAU;QAClB,YAAY,EAAE,UAAU,CAAC,EAAE;QAC3B,SAAS;QACT,QAAQ,EAAE,kBAAkB,CAAC,SAAS,CAAC;QACvC,OAAO;QACP,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACjC,aAAa,EAAE,OAAO,CAAC,OAAO,CAAC,SAAS;QACxC,eAAe,EAAE,eAAe,CAAC,QAAQ,CAAC;QAC1C,GAAG,CAAC,CAAC,QAAQ,CAAC,MAAM,KAAK,eAAe,IAAI,QAAQ,CAAC,MAAM,KAAK,cAAc,CAAC;YAC/E,QAAQ,CAAC,oBAAoB;YAC5B,CAAC,CAAC,EAAE,oBAAoB,EAAE,QAAQ,CAAC,oBAAoB,EAAE;YACzD,CAAC,CAAC,EAAE,CAAC;KACN,CAAA;AACF,CAAC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,2BAA2B,CAAA;AAEtE,iFAAiF;AACjF,MAAM,UAAU,sBAAsB,CAAC,QAAwC;IAC9E,OAAO,CACN,QAAQ,EAAE,MAAM,KAAK,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,UAAU,CAAC,2BAA2B,CAAC,CAC/F,CAAA;AACF,CAAC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,oBAAoB,CAAC,QAA4B;IAChE,OAAO;QACN,MAAM,EAAE,OAAO;QACf,MAAM,EAAE,GAAG,2BAA2B,mGAAmG,QAAQ,CAAC,MAAM,oBAAoB;KAC5K,CAAA;AACF,CAAC;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,UAAU,sBAAsB,CAAC,QAA4B;IAClE,QAAQ,QAAQ,CAAC,MAAM,EAAE,CAAC;QACzB,KAAK,UAAU,CAAC;QAChB,KAAK,eAAe,CAAC;QACrB,KAAK,cAAc,CAAC;QACpB,KAAK,cAAc,CAAC;QACpB,KAAK,iBAAiB;YACrB,OAAO,IAAI,CAAA;QACZ;YACC,OAAO,KAAK,CAAA;IACd,CAAC;AACF,CAAC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,aAAa,CAAC,QAA4B;IACzD,OAAO,QAAQ,CAAC,MAAM,KAAK,cAAc,IAAI,QAAQ,CAAC,MAAM,KAAK,aAAa,CAAA;AAC/E,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,aAAa,CAC5B,QAAiD,EACjD,QAA4B;IAE5B,QAAQ,QAAQ,EAAE,CAAC;QAClB,KAAK,sBAAsB;YAC1B,OAAO,sBAAsB,CAAC,QAAQ,CAAC,CAAA;QACxC,KAAK,eAAe;YACnB,OAAO,aAAa,CAAC,QAAQ,CAAC,CAAA;QAC/B;YACC,OAAO,KAAK,CAAA;IACd,CAAC;AACF,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,SAAS,kBAAkB,CAC1B,UAA8B,EAC9B,QAA4B,EAC5B,UAAkB,EAClB,GAAW;IAEX,MAAM,SAAS,GAAG,mBAAmB,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAA;IACrE,IAAI,CAAC,SAAS,EAAE,SAAS,IAAI,SAAS,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC/D,GAAG,CAAC,IAAI,CAAC,qEAAqE,EAAE;YAC/E,qBAAqB,EAAE,UAAU,CAAC,EAAE;SACpC,CAAC,CAAA;QACF,OAAO,IAAI,CAAA;IACZ,CAAC;IAED,oEAAoE;IACpE,+DAA+D;IAC/D,sEAAsE;IACtE,mEAAmE;IACnE,uEAAuE;IACvE,EAAE;IACF,qEAAqE;IACrE,kEAAkE;IAClE,kDAAkD;IAClD,sEAAsE;IACtE,oEAAoE;IACpE,oEAAoE;IACpE,8BAA8B;IAC9B,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,cAAc,CAAC,UAAU,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;QAC1E,GAAG,CAAC,KAAK,CAAC,yEAAyE,EAAE;YACpF,qBAAqB,EAAE,UAAU,CAAC,EAAE;YACpC,2BAA2B,EAAE,UAAU;SACvC,CAAC,CAAA;QACF,OAAO,IAAI,CAAA;IACZ,CAAC;IAED,OAAO;QACN,MAAM,EAAE,UAAU;QAClB,YAAY,EAAE,UAAU,CAAC,EAAE;QAC3B,SAAS;QACT,QAAQ,EAAE,kBAAkB,CAAC,SAAS,CAAC;QACvC,+DAA+D;QAC/D,kDAAkD;QAClD,OAAO,EAAE,IAAI,GAAG,EAAE;QAClB,OAAO,EAAE,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC;KACtC,CAAA;AACF,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,eAAe,CAC9B,UAA8B,EAC9B,SAAuC,EACvC,GAAW;IAEX,MAAM,SAAS,GAAG,mBAAmB,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAA;IACrE,MAAM,KAAK,GAAG,SAAS,EAAE,SAAS,CAAA;IAClC,IAAI,CAAC,SAAS,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAA;IAC3D,qEAAqE;IACrE,yEAAyE;IACzE,uEAAuE;IACvE,MAAM,UAAU,GAAG,UAAU,CAAC,QAAQ,CAAC,WAAW,CAAC,SAAS,CAAC,CAAA;IAC7D,IAAI,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,KAAK,MAAM,CAAC;QACvF,OAAO,IAAI,CAAA;IAEZ,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;IACvD,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAA;IAElC,GAAG,CAAC,IAAI,CAAC,mEAAmE,EAAE;QAC7E,qBAAqB,EAAE,UAAU,CAAC,EAAE;QACpC,yBAAyB,EAAE,IAAI,CAAC,MAAM;QACtC,qBAAqB,EAAE,KAAK,CAAC,MAAM;QACnC,yBAAyB,EAAE,KAAK;aAC9B,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;aACrC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC;KAC/B,CAAC,CAAA;IAEF,OAAO;QACN,sEAAsE;QACtE,sEAAsE;QACtE,2DAA2D;QAC3D,MAAM,EAAE,UAAU;QAClB,YAAY,EAAE,UAAU,CAAC,EAAE;QAC3B,SAAS;QACT,QAAQ,EAAE,kBAAkB,CAAC,SAAS,CAAC;QACvC,yDAAyD;QACzD,OAAO,EAAE,IAAI,GAAG,EAAE;KAClB,CAAA;AACF,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACvC,IAAuB,EACvB,QAAsB,EACtB,QAAsB,EACtB,KAAwB,EACxB,kBAA8B;IAE9B,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IACrC,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,CAAA;IAEhF,6EAA6E;IAC7E,wEAAwE;IACxE,+BAA+B;IAC/B,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,aAAa,IAAI,EAAE,EAAE,CAAC;QAC7C,IAAI,IAAI,CAAC,aAAa,EAAE,QAAQ,KAAK,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YAAE,SAAQ;QAC7E,OAAO,CAAC,GAAG,CACV,IAAI,CAAC,EAAE,EACP,sCAAsC,IAAI,CAAC,aAAa,CAAC,MAAM,IAAI,gDAAgD,EAAE,CACrH,CAAA;IACF,CAAC;IAED,MAAM,cAAc,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,MAAM,CACpE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CACvD,CAAA;IACD,MAAM,iBAAiB,GAA2B;QACjD,GAAG,IAAI,CAAC,QAAQ;QAChB,OAAO,EAAE,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE;KAChE,CAAA;IACD,MAAM,aAAa,GAAG,MAAM,QAAQ,CAAC,qBAAqB,CACzD,iBAAiB,EACjB,IAAI,CAAC,eAAe,CACpB,CAAA;IAED,KAAK,MAAM,IAAI,IAAI,aAAa,CAAC,WAAW,EAAE,CAAC;QAC9C,MAAM,QAAQ,GAAG,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QAC1C,MAAM,WAAW,GAAG,IAAI,CAAC,eAAe,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,IAAI,CAAA;QAC/D,IAAI,QAAQ,IAAI,CAAC,WAAW,EAAE,CAAC;YAC9B,MAAM,SAAS,GAAG,QAAQ,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,IAAI,iBAAiB,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAA;YAC9F,IAAI,CAAC,SAAS,EAAE,CAAC;gBAChB,MAAM,MAAM,GACX,yFAAyF,CAAA;gBAC1F,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,CAAC,CAAA;gBAC5B,MAAM,QAAQ,CAAC,WAAW,CAAC;oBAC1B,IAAI,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE;oBAC9C,OAAO,EAAE,SAAS;oBAClB,MAAM;iBACN,CAAC,CAAA;gBACF,SAAQ;YACT,CAAC;QACF,CAAC;QAED,MAAM,OAAO,GAAG,QAAQ,CAAC,6BAA6B,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAA;QAC7E,IAAI,MAA0B,CAAA;QAC9B,IAAI,OAAO,EAAE,QAAQ,KAAK,MAAM,EAAE,CAAC;YAClC,MAAM,GAAG,mDAAmD,OAAO,CAAC,MAAM,EAAE,CAAA;QAC7E,CAAC;aAAM,IAAI,OAAO,EAAE,QAAQ,KAAK,QAAQ,IAAI,CAAC,WAAW,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;YACzE,MAAM,GAAG,WAAW;gBACnB,CAAC,CAAC,iHAAiH,OAAO,CAAC,MAAM,EAAE;gBACnI,CAAC,CAAC,iGAAiG,OAAO,CAAC,MAAM,EAAE,CAAA;QACrH,CAAC;aAAM,IAAI,CAAC,OAAO,IAAI,QAAQ,IAAI,QAAQ,CAAC,aAAa,KAAK,SAAS,EAAE,CAAC;YACzE,MAAM;gBACL,oGAAoG,CAAA;QACtG,CAAC;QAED,MAAM,KAAK,iBAAiB,CAC3B,IAAI,CAAC,UAAU,EACf,QAAQ,EACR,WAAW,EACX,IAAI,CAAC,oBAAoB,EACzB,IAAI,CAAC,EAAE,CACP,CAAA;QAED,IAAI,MAAM,EAAE,CAAC;YACZ,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,CAAC,CAAA;YAC5B,MAAM,QAAQ,CAAC,WAAW,CAAC;gBAC1B,IAAI,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE;gBACnF,OAAO,EAAE,SAAS;gBAClB,MAAM;aACN,CAAC,CAAA;YACF,SAAQ;QACT,CAAC;QACD,IAAI,IAAI,CAAC,UAAU,EAAE,aAAa,EAAE,CAAC;YACpC,MAAM,QAAQ,CAAC,WAAW,CAAC;gBAC1B,IAAI,EAAE,EAAE,MAAM,EAAE,gBAAgB,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE;gBACnD,OAAO,EAAE,UAAU;gBACnB,MAAM,EAAE,mEAAmE;aAC3E,CAAC,CAAA;QACH,CAAC;QACD,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,UAAU,EAAE,YAAY,IAAI,EAAE,EAAE,CAAC;YACxD,MAAM,QAAQ,CAAC,WAAW,CAAC;gBAC1B,IAAI,EAAE,EAAE,MAAM,EAAE,qBAAqB,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE;gBACxE,OAAO,EAAE,UAAU;gBACnB,MAAM,EAAE,iEAAiE;aACzE,CAAC,CAAA;QACH,CAAC;IACF,CAAC;IAED,wEAAwE;IACxE,+DAA+D;IAC/D,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,EAAE,kBAAkB,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,kBAAkB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;IACjG,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,YAAY,CACxC,IAAI,CAAC,QAAQ,EACb,OAAO,EACP,KAAK,EACL,aAAa,EACb,IAAI,CAAC,QAAQ,CACb,CAAA;IACD,KAAK,MAAM,GAAG,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;QAClC,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,CAAA;IAC1B,CAAC;IACD,OAAO,KAAK,CAAA;AACb,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,iBAAiB,CAChC,UAA0C,EAC1C,QAAqC,EACrC,WAAoB,EACpB,SAAwC,EACxC,EAAU;IAEV,IAAI,CAAC,UAAU;QAAE,OAAO,SAAS,CAAA;IACjC,MAAM,OAAO,GACZ,4JAA4J,CAAA;IAC7J,IAAI,CAAC,QAAQ,IAAI,WAAW;QAAE,OAAO,OAAO,CAAA;IAC5C,MAAM,KAAK,GAAG,QAAQ,CAAC,UAAU,CAAA;IACjC,KAAK,MAAM,IAAI,IAAI,UAAU,CAAC,YAAY,IAAI,EAAE,EAAE,CAAC;QAClD,IAAI,CAAC,KAAK,EAAE,YAAY,EAAE,QAAQ,CAAC,IAAI,CAAC;YAAE,OAAO,OAAO,CAAA;IACzD,CAAC;IACD,IAAI,UAAU,CAAC,aAAa,IAAI,CAAC,CAAC,KAAK,EAAE,aAAa,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;QACrF,OAAO,8IAA8I,CAAA;IACtJ,CAAC;IACD,OAAO,SAAS,CAAA;AACjB,CAAC;AAED,SAAS,eAAe,CAAC,QAA4B;IACpD,IAAI,QAAQ,CAAC,MAAM,KAAK,cAAc;QAAE,OAAO,IAAI,GAAG,EAAE,CAAA;IACxD,OAAO,IAAI,GAAG,CACb,QAAQ,CAAC,aAAa;SACpB,MAAM,CAAC,CAAC,YAAY,EAAE,EAAE,CAAC,YAAY,CAAC,MAAM,KAAK,QAAQ,CAAC;SAC1D,GAAG,CAAC,CAAC,YAAY,EAAE,EAAE,CAAC,YAAY,CAAC,UAAU,CAAC,CAChD,CAAA;AACF,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAC1C,QAAsB,EACtB,SAA8B,EAC9B,GAAW,EACX,UAA8D,EAAE;IAEhE,MAAM,SAAS,GAAG,IAAI,GAAG,EAA2B,CAAA;IACpD,IAAI,QAA2C,CAAA;IAC/C,IAAI,CAAC;QACJ,MAAM,QAAQ,CAAC,KAAK,EAAE,CAAA;QACtB,QAAQ,GAAG,MAAM,kBAAkB,CAClC,QAAQ,CAAC,GAAG,EACZ,QAAQ,CAAC,MAAM,EACf,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAChC,OAAO,CAAC,MAAM,CACd,CAAA;IACF,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,IAAI,OAAO,CAAC,MAAM,EAAE,OAAO;YAAE,MAAM,KAAK,CAAA;QACxC,GAAG,CAAC,IAAI,CAAC,+DAA+D,EAAE;YACzE,mBAAmB,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;SAC3E,CAAC,CAAA;IACH,CAAC;IACD,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;QAC9B,MAAM,MAAM,GAAG,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QAC7C,IACC,QAAQ,EAAE,QAAQ;YAClB,CAAC,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,KAAK,IAAI,CAAC,QAAQ,CAAC,IAAI,IAAI,MAAM,CAAC,SAAS,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,EACpF,CAAC;YACF,IAAI,CAAC,MAAM;gBAAE,SAAQ,CAAC,4DAA4D;YAClF,IAAI,MAAM,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;gBACnC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE;oBACtB,MAAM,EAAE,MAAM,CAAC,MAAM;oBACrB,OAAO,EAAE,MAAM,CAAC,OAAO;oBACvB,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBACrE,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBACrD,GAAG,CAAC,MAAM,CAAC,oBAAoB,KAAK,SAAS;wBAC5C,CAAC,CAAC,EAAE,oBAAoB,EAAE,MAAM,CAAC,oBAAoB,EAAE;wBACvD,CAAC,CAAC,EAAE,CAAC;iBACN,CAAC,CAAA;gBACF,SAAQ;YACT,CAAC;QACF,CAAC;QACD,sEAAsE;QACtE,qEAAqE;QACrE,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,cAAc,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;YACtF,SAAQ;QACT,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE;YACtB,MAAM,EAAE,mFAAmF,IAAI,CAAC,QAAQ,CAAC,IAAI,sMAAsM;YACnT,OAAO,EAAE,IAAI;SACb,CAAC,CAAA;IACH,CAAC;IAED,IAAI,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;QACxB,GAAG,CAAC,IAAI,CAAC,iEAAiE,EAAE;YAC3E,yBAAyB,EAAE,SAAS,CAAC,IAAI;YACzC,wBAAwB,EAAE,SAAS,CAAC,MAAM;SAC1C,CAAC,CAAA;IACH,CAAC;IACD,OAAO,SAAS,CAAA;AACjB,CAAC;AAED,uFAAuF;AACvF,SAAS,eAAe,CACvB,SAA8B,EAC9B,QAA4B,EAC5B,WAAuC,EAAE;IAEzC,6DAA6D;IAC7D,MAAM,UAAU,GAAG,IAAI,GAAG,CACzB,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,EAAE,QAAQ,KAAK,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CACzF,CAAA;IACD,IAAI,QAAQ,CAAC,MAAM,KAAK,cAAc,IAAI,QAAQ,CAAC,QAAQ,EAAE,CAAC;QAC7D,MAAM,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAA;QAClC,MAAM,KAAK,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;QAC9D,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;IACpF,CAAC;IACD,IAAI,QAAQ,CAAC,MAAM,KAAK,cAAc,EAAE,CAAC;QACxC,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAC3C,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,KAAK,MAAM,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,CACjE,CAAA;QACD,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,IAAI,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,CAAC,CAAA;IACjF,CAAC;IACD,OAAO,SAAS,CAAA;AACjB,CAAC;AAED;;;;;;GAMG;AACH,SAAS,cAAc,CACtB,SAA8B,EAC9B,QAA4B;IAE5B,QAAQ,QAAQ,CAAC,MAAM,EAAE,CAAC;QACzB,KAAK,eAAe;YACnB,OAAO,IAAI,GAAG,EAAE,CAAA;QAEjB,KAAK,cAAc,CAAC,CAAC,CAAC;YACrB,MAAM,MAAM,GAAG,QAAQ,CAAC,QAAQ,IAAI,2BAA2B,CAAA;YAC/D,OAAO,IAAI,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,CAAA;QACvD,CAAC;QAED,KAAK,cAAc,CAAC,CAAC,CAAC;YACrB,6DAA6D;YAC7D,+DAA+D;YAC/D,iEAAiE;YACjE,0CAA0C;YAC1C,MAAM,OAAO,GAAG,IAAI,GAAG,EAAkB,CAAA;YACzC,KAAK,MAAM,GAAG,IAAI,QAAQ,CAAC,aAAa,EAAE,CAAC;gBAC1C,IAAI,GAAG,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;oBAC3B,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,UAAU,EAAE,2BAA2B,CAAC,CAAA;gBACzD,CAAC;YACF,CAAC;YACD,KAAK,MAAM,GAAG,IAAI,QAAQ,CAAC,aAAa,EAAE,CAAC;gBAC1C,IAAI,GAAG,CAAC,MAAM,KAAK,QAAQ,IAAI,GAAG,CAAC,aAAa,KAAK,SAAS,EAAE,CAAC;oBAChE,MAAM,EAAE,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,UAAU,CAAC,CAAA;oBACzD,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;wBAC/B,EAAE,CAAC,QAAQ,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,aAAa,CAAC,CAAA;oBAC1D,CAAC;gBACF,CAAC;YACF,CAAC;YACD,OAAO,OAAO,CAAA;QACf,CAAC;QAED;YACC,iEAAiE;YACjE,kEAAkE;YAClE,2CAA2C;YAC3C,OAAO,IAAI,CAAA;IACb,CAAC;AACF,CAAC;AAED;;;;;;GAMG;AACH,SAAS,kBAAkB,CAAC,SAA2B;IACtD,OAAO;QACN,EAAE,EAAE,UAAU,SAAS,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,SAAS,EAAE;QACzD,KAAK,EAAE,yBAAyB;QAChC,OAAO,EAAE;YACR,IAAI,EAAE,WAAW;YACjB,OAAO,EAAE,SAAS,CAAC,OAAO;YAC1B,SAAS,EAAE,SAAS,CAAC,SAAS;SAC9B;QACD,YAAY,EAAE,YAAY;QAC1B,KAAK,EAAE;YACN,YAAY,EAAE,CAAC;YACf,gBAAgB,EAAE,CAAC;YACnB,WAAW,EAAE,CAAC;YACd,YAAY,EAAE,CAAC;YACf,gBAAgB,EAAE,CAAC;SACnB;KACD,CAAA;AACF,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,oBAAoB,CAAC,QAA4B;IAChE,OAAO,mBAAmB,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAC,SAAS,IAAI,EAAE,CAAA;AAChE,CAAC;AAED,SAAS,mBAAmB,CAC3B,QAA4B;IAE5B,KAAK,IAAI,CAAC,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC/C,MAAM,GAAG,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAA;QACvB,IAAI,GAAG,EAAE,IAAI,KAAK,WAAW;YAAE,SAAQ;QACvC,MAAM,SAAS,GAAG,GAAuB,CAAA;QACzC,MAAM,KAAK,GAAG,SAAS,CAAC,SAAS,CAAA;QACjC,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,SAAQ;QAE1C,uEAAuE;QACvE,wEAAwE;QACxE,yEAAyE;QACzE,6DAA6D;QAC7D,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAU,CAAA;QAClC,KAAK,IAAI,WAAW,GAAG,CAAC,GAAG,CAAC,EAAE,WAAW,GAAG,QAAQ,CAAC,MAAM,EAAE,WAAW,EAAE,EAAE,CAAC;YAC5E,MAAM,MAAM,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAA;YACpC,IAAI,MAAM,EAAE,IAAI,KAAK,MAAM;gBAAE,MAAK;YAClC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;QAChC,CAAC;QACD,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAA;QACjE,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,CAAA;QAC3D,OAAO,IAAI,CAAA;IACZ,CAAC;IACD,OAAO,IAAI,CAAA;AACZ,CAAC"}
1
+ {"version":3,"file":"resume-pending.js","sourceRoot":"","sources":["../../../src/runtime/query/resume-pending.ts"],"names":[],"mappings":"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"}
@@ -147,6 +147,22 @@ export declare const REQUIRES_APPROVAL_UNATTENDED_REFUSAL = "Refused: a call in
147
147
  * "unattended allow" for this.
148
148
  */
149
149
  export declare const UNKNOWN_PROGRAM_UNATTENDED_REFUSAL = "Refused: a call in this batch runs a command whose own program name is decided at runtime (a substitution or a variable stands for it), which needs a person to approve it each time, and nobody can be asked in this session. Nothing in this batch ran. Write the program name literally; compute what needs computing in the arguments instead.";
150
+ /**
151
+ * What the model is told when a batch writes a protected path (a git hook, a
152
+ * shell rc file, editor or tool configuration, the project's `.namzu`
153
+ * directory) and nobody can be asked.
154
+ *
155
+ * Refused in every mode, `auto` included: a write there runs later, outside
156
+ * the turn, with the operator's rights, so an answer given before the call
157
+ * existed (a mode, a rule, "approve all") is not an answer about it.
158
+ */
159
+ export declare const PROTECTED_PATH_UNATTENDED_REFUSAL = "Refused: a call in this batch writes a protected path (a git hook or config, a shell startup file, editor or tool configuration, or the project's .namzu directory), which needs a person to approve it each time, and nobody can be asked in this session. Nothing in this batch ran. Leave those files alone, or tell the user what change you need so they can make it.";
160
+ /**
161
+ * What the model is told when a batch removes something catastrophic (the
162
+ * root, the home directory, the working directory or a parent of it, a glob
163
+ * across directories, a target a variable may empty) and nobody can be asked.
164
+ */
165
+ export declare const DANGEROUS_REMOVAL_UNATTENDED_REFUSAL = "Refused: a call in this batch removes something this check treats as catastrophic (the file system root, a top-level or home directory, the working directory or a parent of it, a glob across directories, or a target a variable or substitution may leave empty), which needs a person to approve it each time, and nobody can be asked in this session. Nothing in this batch ran. Name the exact directory to remove with a literal path.";
150
166
  /**
151
167
  * What the model is told when a batch would show it the operator's screen for
152
168
  * the first time in a session and nobody can be asked.
@@ -254,6 +270,16 @@ export interface ReviewPolicyOptions {
254
270
  * `capturesScreen` declaration, read from `registry`; nothing without one.
255
271
  */
256
272
  readonly capturesScreen?: (name: string, input: unknown) => boolean;
273
+ /**
274
+ * The one write `plan` mode lets through: a host that gives plan mode a plan
275
+ * file says here which call writes it. In `plan`, a call this accepts is not
276
+ * a change — it is neither refused nor asked about — unless a rule asked to
277
+ * review it, in which case it is put to the person like a read outside the
278
+ * roots. Every other write stays refused. Omitted (the default), `plan`
279
+ * refuses every change, as it always has; the option does nothing in any
280
+ * other mode.
281
+ */
282
+ readonly planModeWrite?: (call: ToolCallSummary) => boolean;
257
283
  }
258
284
  /** The handler behind `createReviewPolicy`, for a host that wants only the function. */
259
285
  export declare function createReviewHandler(options?: ReviewPolicyOptions): ResumeHandler;
@@ -1 +1 @@
1
- {"version":3,"file":"review-policy.d.ts","sourceRoot":"","sources":["../../../src/runtime/query/review-policy.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"review-policy.d.ts","sourceRoot":"","sources":["../../../src/runtime/query/review-policy.ts"],"names":[],"mappings":"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"}
@@ -148,6 +148,22 @@ export const REQUIRES_APPROVAL_UNATTENDED_REFUSAL = "Refused: a call in this bat
148
148
  * "unattended allow" for this.
149
149
  */
150
150
  export const UNKNOWN_PROGRAM_UNATTENDED_REFUSAL = 'Refused: a call in this batch runs a command whose own program name is decided at runtime (a substitution or a variable stands for it), which needs a person to approve it each time, and nobody can be asked in this session. Nothing in this batch ran. Write the program name literally; compute what needs computing in the arguments instead.';
151
+ /**
152
+ * What the model is told when a batch writes a protected path (a git hook, a
153
+ * shell rc file, editor or tool configuration, the project's `.namzu`
154
+ * directory) and nobody can be asked.
155
+ *
156
+ * Refused in every mode, `auto` included: a write there runs later, outside
157
+ * the turn, with the operator's rights, so an answer given before the call
158
+ * existed (a mode, a rule, "approve all") is not an answer about it.
159
+ */
160
+ export const PROTECTED_PATH_UNATTENDED_REFUSAL = "Refused: a call in this batch writes a protected path (a git hook or config, a shell startup file, editor or tool configuration, or the project's .namzu directory), which needs a person to approve it each time, and nobody can be asked in this session. Nothing in this batch ran. Leave those files alone, or tell the user what change you need so they can make it.";
161
+ /**
162
+ * What the model is told when a batch removes something catastrophic (the
163
+ * root, the home directory, the working directory or a parent of it, a glob
164
+ * across directories, a target a variable may empty) and nobody can be asked.
165
+ */
166
+ export const DANGEROUS_REMOVAL_UNATTENDED_REFUSAL = 'Refused: a call in this batch removes something this check treats as catastrophic (the file system root, a top-level or home directory, the working directory or a parent of it, a glob across directories, or a target a variable or substitution may leave empty), which needs a person to approve it each time, and nobody can be asked in this session. Nothing in this batch ran. Name the exact directory to remove with a literal path.';
151
167
  /**
152
168
  * What the model is told when a batch would show it the operator's screen for
153
169
  * the first time in a session and nobody can be asked.
@@ -155,6 +171,17 @@ export const UNKNOWN_PROGRAM_UNATTENDED_REFUSAL = 'Refused: a call in this batch
155
171
  export const SCREEN_CONSENT_UNATTENDED_REFUSAL = "Refused: this call would send what is on the user's screen to the model provider, which a person agrees to once per session, and nobody can be asked in this session. Nothing in this batch ran. Tell the user computer use needs their consent in an interactive session.";
156
172
  /** What the model is told when the operator declines to share the screen. */
157
173
  export const SCREEN_CONSENT_DECLINED_FEEDBACK = 'The user declined to share their screen in this session. Nothing in this batch ran. Do not take screenshots or read windows again; ask the user how they want to proceed.';
174
+ /** Whether the call writes a protected path or removes something catastrophic. */
175
+ function reachesAFloor(tc) {
176
+ return ((tc.escalation?.protectedPaths?.length ?? 0) > 0 ||
177
+ tc.escalation?.dangerousRemoval !== undefined);
178
+ }
179
+ /** The refusal for a batch that reaches a floor and cannot be asked about it. */
180
+ function floorRefusal(toolCalls) {
181
+ return toolCalls.some((tc) => (tc.escalation?.protectedPaths?.length ?? 0) > 0)
182
+ ? PROTECTED_PATH_UNATTENDED_REFUSAL
183
+ : DANGEROUS_REMOVAL_UNATTENDED_REFUSAL;
184
+ }
158
185
  /**
159
186
  * Whether a skill's `allowed-tools` grant may stand in for a person on this
160
187
  * call: the kernel marked it, and nothing that outranks a skill is present.
@@ -169,6 +196,20 @@ function isSkillGranted(tc) {
169
196
  tc.escalation === undefined &&
170
197
  tc.requiresApproval !== true);
171
198
  }
199
+ /**
200
+ * Whether a `pre_tool_use` hook's `allow` may stand in for a person on this
201
+ * call. The same bar as a skill's grant, repeated here so that a mark on a
202
+ * persisted or host-built summary cannot carry more than the kernel gave it.
203
+ */
204
+ function isHookGranted(tc) {
205
+ return (tc.hookGrant !== undefined &&
206
+ tc.hookPermission?.decision !== 'ask' &&
207
+ !tc.authorization?.explicitReview &&
208
+ tc.authorization?.decision !== 'deny' &&
209
+ !tc.isDestructive &&
210
+ tc.escalation === undefined &&
211
+ tc.requiresApproval !== true);
212
+ }
172
213
  /** The handler behind `createReviewPolicy`, for a host that wants only the function. */
173
214
  export function createReviewHandler(options = {}) {
174
215
  const { prompt, registry } = options;
@@ -228,7 +269,13 @@ export function createReviewHandler(options = {}) {
228
269
  remembered.all = true;
229
270
  answered = answer;
230
271
  }
231
- if (!batchNeedsReview(request.toolCalls, exempt)) {
272
+ // The plan file, in `plan`: the one write that is not a change. A rule
273
+ // that asked for review keeps the call in the batch, so it is asked.
274
+ const isPlanFileWrite = (tc) => mode === 'plan' &&
275
+ options.planModeWrite?.(tc) === true &&
276
+ tc.authorization?.decision !== 'deny';
277
+ const reviewable = request.toolCalls.filter((tc) => !(isPlanFileWrite(tc) && !tc.authorization?.explicitReview));
278
+ if (!batchNeedsReview(reviewable, exempt)) {
232
279
  return { action: 'approve_tools' };
233
280
  }
234
281
  // A batch of nothing but non-destructive file edits is the case
@@ -251,7 +298,8 @@ export function createReviewHandler(options = {}) {
251
298
  // to do, and the question such a path gets is the same in every mode that
252
299
  // lets reads run. It goes on to that question below; `strict` still
253
300
  // refuses it, since no rule can approve a path outside the roots.
254
- if (mode === 'plan' && !onlyReadsOutsideRoots(request.toolCalls, exempt)) {
301
+ if (mode === 'plan' &&
302
+ !onlyReadsOutsideRoots(reviewable.filter((tc) => !isPlanFileWrite(tc)), exempt)) {
255
303
  return { action: 'reject_tools', feedback: PLAN_MODE_REFUSAL };
256
304
  }
257
305
  if (mode === 'strict')
@@ -273,6 +321,9 @@ export function createReviewHandler(options = {}) {
273
321
  // This opt-in confirms only the sandbox escape. A different call in
274
322
  // the batch, or another boundary on this same call, still needs a
275
323
  // person; the early return must not approve that boundary too.
324
+ if (request.toolCalls.some(reachesAFloor)) {
325
+ return { action: 'reject_tools', feedback: floorRefusal(request.toolCalls) };
326
+ }
276
327
  if (request.toolCalls.some((tc) => (tc.escalation?.outsidePaths?.length ?? 0) > 0)) {
277
328
  return { action: 'reject_tools', feedback: OUTSIDE_ROOTS_UNATTENDED_REFUSAL };
278
329
  }
@@ -298,6 +349,26 @@ export function createReviewHandler(options = {}) {
298
349
  remembered.all = true;
299
350
  return { action: 'approve_tools', confirmedEscalations: escapes };
300
351
  }
352
+ // A write to a protected path, or a removal of something catastrophic,
353
+ // is a question for a person, every time, in every mode that got this
354
+ // far: `auto` and a remembered "approve all" were answers given before
355
+ // the call existed. With nobody to ask it is refused, not approved.
356
+ if (request.toolCalls.some(reachesAFloor)) {
357
+ if (!prompt)
358
+ return { action: 'reject_tools', feedback: floorRefusal(request.toolCalls) };
359
+ const answer = await ask();
360
+ if (answer.kind === 'reject') {
361
+ return {
362
+ action: 'reject_tools',
363
+ feedback: answer.feedback ?? DECLINED_TOOL_CALL_FEEDBACK,
364
+ ...(answer.declined ? { declined: answer.declined } : {}),
365
+ };
366
+ }
367
+ // Latches for the ordinary calls that follow, never for the next floor.
368
+ if (answer.kind === 'approve-all')
369
+ remembered.all = true;
370
+ return { action: 'approve_tools' };
371
+ }
301
372
  // A path outside the roots is a question for a person, every time,
302
373
  // like an escape: `auto` and a remembered "approve all" were answers
303
374
  // given about tools, before this path was named, and neither saw it.
@@ -375,13 +446,16 @@ export function createReviewHandler(options = {}) {
375
446
  tc.escalation !== undefined ||
376
447
  !(exempt(tc.name, tc.input) ||
377
448
  (mode === 'accept-edits' && ACCEPT_EDITS_TOOLS.has(tc.name))));
449
+ const skillsHonoured = options.skillGrants !== 'ignore';
378
450
  if (answered === undefined &&
379
- options.skillGrants !== 'ignore' &&
380
451
  needsPerson.length > 0 &&
381
- needsPerson.every(isSkillGranted)) {
452
+ needsPerson.every((tc) => isHookGranted(tc) || (skillsHonoured && isSkillGranted(tc)))) {
453
+ const byHook = needsPerson.filter(isHookGranted).map((tc) => tc.id);
454
+ const bySkill = needsPerson.filter((tc) => !isHookGranted(tc)).map((tc) => tc.id);
382
455
  return {
383
456
  action: 'approve_tools',
384
- skillGranted: needsPerson.map((tc) => tc.id),
457
+ ...(bySkill.length > 0 ? { skillGranted: bySkill } : {}),
458
+ ...(byHook.length > 0 ? { hookGranted: byHook } : {}),
385
459
  };
386
460
  }
387
461
  const answer = await ask();