@namzu/sdk 51.1.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 (323) hide show
  1. package/CHANGELOG.md +100 -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/compaction/context-window.d.ts +24 -0
  39. package/dist/compaction/context-window.d.ts.map +1 -1
  40. package/dist/compaction/context-window.js +34 -0
  41. package/dist/compaction/context-window.js.map +1 -1
  42. package/dist/compaction/manual.d.ts.map +1 -1
  43. package/dist/compaction/manual.js +10 -2
  44. package/dist/compaction/manual.js.map +1 -1
  45. package/dist/compaction/plan.d.ts +4 -0
  46. package/dist/compaction/plan.d.ts.map +1 -1
  47. package/dist/compaction/plan.js +6 -2
  48. package/dist/compaction/plan.js.map +1 -1
  49. package/dist/compaction/verifier.d.ts +11 -1
  50. package/dist/compaction/verifier.d.ts.map +1 -1
  51. package/dist/compaction/verifier.js +19 -7
  52. package/dist/compaction/verifier.js.map +1 -1
  53. package/dist/config/runtime.d.ts +55 -7
  54. package/dist/config/runtime.d.ts.map +1 -1
  55. package/dist/config/runtime.js +23 -2
  56. package/dist/config/runtime.js.map +1 -1
  57. package/dist/connector/web/guarded-fetch.d.ts.map +1 -1
  58. package/dist/connector/web/guarded-fetch.js +24 -0
  59. package/dist/connector/web/guarded-fetch.js.map +1 -1
  60. package/dist/connector/web/index.d.ts +1 -1
  61. package/dist/connector/web/index.d.ts.map +1 -1
  62. package/dist/connector/web/page.d.ts +59 -0
  63. package/dist/connector/web/page.d.ts.map +1 -0
  64. package/dist/connector/web/page.js +112 -0
  65. package/dist/connector/web/page.js.map +1 -0
  66. package/dist/connector/web/types.d.ts +47 -0
  67. package/dist/connector/web/types.d.ts.map +1 -1
  68. package/dist/connector/web/types.js.map +1 -1
  69. package/dist/constants/continuation.d.ts +8 -0
  70. package/dist/constants/continuation.d.ts.map +1 -1
  71. package/dist/constants/continuation.js +8 -0
  72. package/dist/constants/continuation.js.map +1 -1
  73. package/dist/constants/plugin/index.d.ts +1 -1
  74. package/dist/constants/plugin/index.d.ts.map +1 -1
  75. package/dist/constants/plugin/index.js +1 -1
  76. package/dist/constants/plugin/index.js.map +1 -1
  77. package/dist/manager/agent/lifecycle.d.ts +7 -0
  78. package/dist/manager/agent/lifecycle.d.ts.map +1 -1
  79. package/dist/manager/agent/lifecycle.js +11 -2
  80. package/dist/manager/agent/lifecycle.js.map +1 -1
  81. package/dist/manager/session/turn-recorder.d.ts.map +1 -1
  82. package/dist/manager/session/turn-recorder.js +4 -2
  83. package/dist/manager/session/turn-recorder.js.map +1 -1
  84. package/dist/plugin/index.d.ts +1 -1
  85. package/dist/plugin/index.d.ts.map +1 -1
  86. package/dist/plugin/index.js +1 -1
  87. package/dist/plugin/index.js.map +1 -1
  88. package/dist/plugin/lifecycle.d.ts +6 -0
  89. package/dist/plugin/lifecycle.d.ts.map +1 -1
  90. package/dist/plugin/lifecycle.js +98 -114
  91. package/dist/plugin/lifecycle.js.map +1 -1
  92. package/dist/plugin/shell-hook.d.ts +90 -22
  93. package/dist/plugin/shell-hook.d.ts.map +1 -1
  94. package/dist/plugin/shell-hook.js +434 -41
  95. package/dist/plugin/shell-hook.js.map +1 -1
  96. package/dist/public-runtime.d.ts +4 -1
  97. package/dist/public-runtime.d.ts.map +1 -1
  98. package/dist/public-runtime.js +4 -1
  99. package/dist/public-runtime.js.map +1 -1
  100. package/dist/public-types.d.ts +2 -2
  101. package/dist/public-types.d.ts.map +1 -1
  102. package/dist/runtime/jobs/registry.d.ts +21 -0
  103. package/dist/runtime/jobs/registry.d.ts.map +1 -1
  104. package/dist/runtime/jobs/registry.js +15 -2
  105. package/dist/runtime/jobs/registry.js.map +1 -1
  106. package/dist/runtime/query/executor/tool-call-admission.d.ts +10 -0
  107. package/dist/runtime/query/executor/tool-call-admission.d.ts.map +1 -1
  108. package/dist/runtime/query/executor/tool-call-admission.js +74 -13
  109. package/dist/runtime/query/executor/tool-call-admission.js.map +1 -1
  110. package/dist/runtime/query/executor.d.ts +41 -2
  111. package/dist/runtime/query/executor.d.ts.map +1 -1
  112. package/dist/runtime/query/executor.js +190 -6
  113. package/dist/runtime/query/executor.js.map +1 -1
  114. package/dist/runtime/query/finalize-turn.d.ts +6 -0
  115. package/dist/runtime/query/finalize-turn.d.ts.map +1 -1
  116. package/dist/runtime/query/finalize-turn.js +1 -1
  117. package/dist/runtime/query/finalize-turn.js.map +1 -1
  118. package/dist/runtime/query/index.d.ts +29 -0
  119. package/dist/runtime/query/index.d.ts.map +1 -1
  120. package/dist/runtime/query/index.js +15 -3
  121. package/dist/runtime/query/index.js.map +1 -1
  122. package/dist/runtime/query/iteration/index.d.ts +31 -0
  123. package/dist/runtime/query/iteration/index.d.ts.map +1 -1
  124. package/dist/runtime/query/iteration/index.js +216 -7
  125. package/dist/runtime/query/iteration/index.js.map +1 -1
  126. package/dist/runtime/query/iteration/phases/compaction-breaker.d.ts +58 -0
  127. package/dist/runtime/query/iteration/phases/compaction-breaker.d.ts.map +1 -0
  128. package/dist/runtime/query/iteration/phases/compaction-breaker.js +91 -0
  129. package/dist/runtime/query/iteration/phases/compaction-breaker.js.map +1 -0
  130. package/dist/runtime/query/iteration/phases/compaction.d.ts.map +1 -1
  131. package/dist/runtime/query/iteration/phases/compaction.js +89 -7
  132. package/dist/runtime/query/iteration/phases/compaction.js.map +1 -1
  133. package/dist/runtime/query/iteration/phases/context.d.ts +10 -0
  134. package/dist/runtime/query/iteration/phases/context.d.ts.map +1 -1
  135. package/dist/runtime/query/iteration/phases/context.js.map +1 -1
  136. package/dist/runtime/query/iteration/phases/tool-review.d.ts.map +1 -1
  137. package/dist/runtime/query/iteration/phases/tool-review.js +165 -2
  138. package/dist/runtime/query/iteration/phases/tool-review.js.map +1 -1
  139. package/dist/runtime/query/path-escalation.d.ts +36 -0
  140. package/dist/runtime/query/path-escalation.d.ts.map +1 -0
  141. package/dist/runtime/query/path-escalation.js +184 -0
  142. package/dist/runtime/query/path-escalation.js.map +1 -0
  143. package/dist/runtime/query/plugin-hooks.d.ts.map +1 -1
  144. package/dist/runtime/query/plugin-hooks.js +8 -0
  145. package/dist/runtime/query/plugin-hooks.js.map +1 -1
  146. package/dist/runtime/query/reminders.d.ts +35 -0
  147. package/dist/runtime/query/reminders.d.ts.map +1 -0
  148. package/dist/runtime/query/reminders.js +7 -0
  149. package/dist/runtime/query/reminders.js.map +1 -0
  150. package/dist/runtime/query/resume-pending.d.ts.map +1 -1
  151. package/dist/runtime/query/resume-pending.js +26 -0
  152. package/dist/runtime/query/resume-pending.js.map +1 -1
  153. package/dist/runtime/query/review-policy.d.ts +26 -0
  154. package/dist/runtime/query/review-policy.d.ts.map +1 -1
  155. package/dist/runtime/query/review-policy.js +79 -5
  156. package/dist/runtime/query/review-policy.js.map +1 -1
  157. package/dist/runtime/query/tool-output-budget.d.ts +46 -0
  158. package/dist/runtime/query/tool-output-budget.d.ts.map +1 -1
  159. package/dist/runtime/query/tool-output-budget.js +85 -1
  160. package/dist/runtime/query/tool-output-budget.js.map +1 -1
  161. package/dist/runtime/query/tooling.d.ts +1 -0
  162. package/dist/runtime/query/tooling.d.ts.map +1 -1
  163. package/dist/runtime/query/tooling.js +5 -0
  164. package/dist/runtime/query/tooling.js.map +1 -1
  165. package/dist/session/paths.d.ts +5 -1
  166. package/dist/session/paths.d.ts.map +1 -1
  167. package/dist/session/paths.js +8 -0
  168. package/dist/session/paths.js.map +1 -1
  169. package/dist/store/memory/disk.d.ts.map +1 -1
  170. package/dist/store/memory/disk.js +2 -2
  171. package/dist/store/memory/disk.js.map +1 -1
  172. package/dist/store/memory/markdown.d.ts.map +1 -1
  173. package/dist/store/memory/markdown.js +2 -2
  174. package/dist/store/memory/markdown.js.map +1 -1
  175. package/dist/store/memory/naming.d.ts +9 -0
  176. package/dist/store/memory/naming.d.ts.map +1 -1
  177. package/dist/store/memory/naming.js +12 -0
  178. package/dist/store/memory/naming.js.map +1 -1
  179. package/dist/tools/builtins/bash.d.ts +30 -1
  180. package/dist/tools/builtins/bash.d.ts.map +1 -1
  181. package/dist/tools/builtins/bash.js +170 -26
  182. package/dist/tools/builtins/bash.js.map +1 -1
  183. package/dist/tools/builtins/content-fingerprint.d.ts +2 -0
  184. package/dist/tools/builtins/content-fingerprint.d.ts.map +1 -1
  185. package/dist/tools/builtins/content-fingerprint.js +4 -0
  186. package/dist/tools/builtins/content-fingerprint.js.map +1 -1
  187. package/dist/tools/builtins/edit.d.ts.map +1 -1
  188. package/dist/tools/builtins/edit.js +60 -18
  189. package/dist/tools/builtins/edit.js.map +1 -1
  190. package/dist/tools/builtins/grep.d.ts +8 -1
  191. package/dist/tools/builtins/grep.d.ts.map +1 -1
  192. package/dist/tools/builtins/grep.js +152 -33
  193. package/dist/tools/builtins/grep.js.map +1 -1
  194. package/dist/tools/builtins/read-file.d.ts +1 -0
  195. package/dist/tools/builtins/read-file.d.ts.map +1 -1
  196. package/dist/tools/builtins/read-file.js +44 -5
  197. package/dist/tools/builtins/read-file.js.map +1 -1
  198. package/dist/tools/builtins/read-render.d.ts +52 -0
  199. package/dist/tools/builtins/read-render.d.ts.map +1 -1
  200. package/dist/tools/builtins/read-render.js +143 -0
  201. package/dist/tools/builtins/read-render.js.map +1 -1
  202. package/dist/tools/builtins/web.d.ts +13 -2
  203. package/dist/tools/builtins/web.d.ts.map +1 -1
  204. package/dist/tools/builtins/web.js +225 -32
  205. package/dist/tools/builtins/web.js.map +1 -1
  206. package/dist/tools/coordinator/ask-user-question.d.ts +2 -0
  207. package/dist/tools/coordinator/ask-user-question.d.ts.map +1 -1
  208. package/dist/tools/coordinator/ask-user-question.js +256 -92
  209. package/dist/tools/coordinator/ask-user-question.js.map +1 -1
  210. package/dist/tools/coordinator/question-options.d.ts +1 -0
  211. package/dist/tools/coordinator/question-options.d.ts.map +1 -1
  212. package/dist/tools/coordinator/question-options.js +6 -1
  213. package/dist/tools/coordinator/question-options.js.map +1 -1
  214. package/dist/tools/defineTool.d.ts +4 -1
  215. package/dist/tools/defineTool.d.ts.map +1 -1
  216. package/dist/tools/defineTool.js +6 -1
  217. package/dist/tools/defineTool.js.map +1 -1
  218. package/dist/tools/paths.d.ts +6 -0
  219. package/dist/tools/paths.d.ts.map +1 -1
  220. package/dist/tools/paths.js +1 -1
  221. package/dist/tools/paths.js.map +1 -1
  222. package/dist/types/agent/query.d.ts +3 -0
  223. package/dist/types/agent/query.d.ts.map +1 -1
  224. package/dist/types/errors/catalog.js +1 -1
  225. package/dist/types/errors/catalog.js.map +1 -1
  226. package/dist/types/hitl/index.d.ts +104 -0
  227. package/dist/types/hitl/index.d.ts.map +1 -1
  228. package/dist/types/hitl/index.js.map +1 -1
  229. package/dist/types/message/index.d.ts +1 -1
  230. package/dist/types/message/index.d.ts.map +1 -1
  231. package/dist/types/message/index.js +2 -0
  232. package/dist/types/message/index.js.map +1 -1
  233. package/dist/types/plugin/index.d.ts +93 -19
  234. package/dist/types/plugin/index.d.ts.map +1 -1
  235. package/dist/types/plugin/index.js +3 -0
  236. package/dist/types/plugin/index.js.map +1 -1
  237. package/dist/types/provider/errors.d.ts +19 -0
  238. package/dist/types/provider/errors.d.ts.map +1 -1
  239. package/dist/types/provider/errors.js +24 -0
  240. package/dist/types/provider/errors.js.map +1 -1
  241. package/dist/types/session/events.d.ts +10 -2
  242. package/dist/types/session/events.d.ts.map +1 -1
  243. package/dist/types/session/events.js.map +1 -1
  244. package/dist/types/session/records.d.ts +9 -9
  245. package/dist/types/session/records.d.ts.map +1 -1
  246. package/dist/types/session/records.js +1 -0
  247. package/dist/types/session/records.js.map +1 -1
  248. package/dist/types/session/stop-reason.d.ts +5 -0
  249. package/dist/types/session/stop-reason.d.ts.map +1 -1
  250. package/dist/types/tool/index.d.ts +52 -0
  251. package/dist/types/tool/index.d.ts.map +1 -1
  252. package/dist/types/tool/index.js.map +1 -1
  253. package/package.json +4 -2
  254. package/src/agents/QueryAgent.ts +5 -1
  255. package/src/agents/SupervisorAgent.ts +1 -1
  256. package/src/agents/examples/SupervisorAgent.ts +217 -106
  257. package/src/agents/index.ts +1 -1
  258. package/src/authorization/protected-paths.ts +110 -0
  259. package/src/authorization/readonly-commands.ts +771 -0
  260. package/src/authorization/readonly-flags.ts +196 -0
  261. package/src/authorization/removal.ts +326 -0
  262. package/src/authorization/shell-paths.ts +927 -0
  263. package/src/bridge/acp/update.ts +1 -0
  264. package/src/compaction/context-window.ts +41 -0
  265. package/src/compaction/manual.ts +10 -2
  266. package/src/compaction/plan.ts +11 -2
  267. package/src/compaction/verifier.ts +28 -3
  268. package/src/config/runtime.ts +23 -2
  269. package/src/connector/web/guarded-fetch.ts +26 -0
  270. package/src/connector/web/index.ts +3 -0
  271. package/src/connector/web/page.ts +130 -0
  272. package/src/connector/web/types.ts +47 -0
  273. package/src/constants/continuation.ts +10 -0
  274. package/src/constants/plugin/index.ts +1 -1
  275. package/src/manager/agent/lifecycle.ts +12 -4
  276. package/src/manager/session/turn-recorder.ts +10 -2
  277. package/src/plugin/index.ts +1 -0
  278. package/src/plugin/lifecycle.ts +107 -119
  279. package/src/plugin/shell-hook.ts +477 -43
  280. package/src/public-runtime.ts +8 -0
  281. package/src/public-types.ts +4 -0
  282. package/src/runtime/jobs/registry.ts +39 -2
  283. package/src/runtime/query/executor/tool-call-admission.ts +79 -13
  284. package/src/runtime/query/executor.ts +242 -8
  285. package/src/runtime/query/finalize-turn.ts +7 -1
  286. package/src/runtime/query/index.ts +45 -3
  287. package/src/runtime/query/iteration/index.ts +251 -12
  288. package/src/runtime/query/iteration/phases/compaction-breaker.ts +106 -0
  289. package/src/runtime/query/iteration/phases/compaction.ts +99 -12
  290. package/src/runtime/query/iteration/phases/context.ts +11 -0
  291. package/src/runtime/query/iteration/phases/tool-review.ts +177 -2
  292. package/src/runtime/query/path-escalation.ts +204 -0
  293. package/src/runtime/query/plugin-hooks.ts +8 -0
  294. package/src/runtime/query/reminders.ts +45 -0
  295. package/src/runtime/query/resume-pending.ts +27 -0
  296. package/src/runtime/query/review-policy.ts +106 -5
  297. package/src/runtime/query/tool-output-budget.ts +115 -1
  298. package/src/runtime/query/tooling.ts +6 -0
  299. package/src/session/paths.ts +11 -1
  300. package/src/store/memory/disk.ts +2 -1
  301. package/src/store/memory/markdown.ts +2 -1
  302. package/src/store/memory/naming.ts +13 -0
  303. package/src/tools/builtins/bash.ts +203 -34
  304. package/src/tools/builtins/content-fingerprint.ts +5 -0
  305. package/src/tools/builtins/edit.ts +69 -19
  306. package/src/tools/builtins/grep.ts +159 -38
  307. package/src/tools/builtins/read-file.ts +48 -5
  308. package/src/tools/builtins/read-render.ts +193 -0
  309. package/src/tools/builtins/web.ts +258 -33
  310. package/src/tools/coordinator/ask-user-question.ts +309 -103
  311. package/src/tools/coordinator/question-options.ts +8 -1
  312. package/src/tools/defineTool.ts +11 -2
  313. package/src/tools/paths.ts +1 -1
  314. package/src/types/agent/query.ts +3 -0
  315. package/src/types/errors/catalog.ts +1 -1
  316. package/src/types/hitl/index.ts +104 -0
  317. package/src/types/message/index.ts +2 -0
  318. package/src/types/plugin/index.ts +101 -18
  319. package/src/types/provider/errors.ts +33 -0
  320. package/src/types/session/events.ts +10 -2
  321. package/src/types/session/records.ts +1 -0
  322. package/src/types/session/stop-reason.ts +5 -0
  323. package/src/types/tool/index.ts +53 -2
@@ -2,6 +2,7 @@ import { isTrustedReadOnly } from '../../../../tools/trusted-read-only.js';
2
2
  import { DECLINED_TOOL_CALL_FEEDBACK } from '../../declined.js';
3
3
  import { awaitProjectInstructionCallback, replaceProjectInstructionSnapshot, } from '../../project-instructions.js';
4
4
  import { attachRepeatNotice } from '../../repeat-call.js';
5
+ import { isReviewExempt } from '../../review-policy.js';
5
6
  import { attachNotice, attachSteering, formatJobNote } from '../../steering.js';
6
7
  import { awaitDecisionDurably } from './context.js';
7
8
  /** Why an escalated call cannot be waved through by the rule that would otherwise allow it. */
@@ -11,10 +12,21 @@ function escalationReason(escalation) {
11
12
  }
12
13
  if (escalation?.sandboxEscape)
13
14
  return "this call asks to run outside the turn's sandbox";
15
+ if (escalation?.dangerousRemoval !== undefined) {
16
+ return `this call removes something catastrophic (${escalation.dangerousRemoval})`;
17
+ }
18
+ if (escalation?.protectedPaths?.length) {
19
+ return `this call writes a protected ${escalation.protectedPaths.length === 1 ? 'path' : 'paths'} (${escalation.protectedPaths.join(', ')})`;
20
+ }
14
21
  if (escalation?.outsidePaths?.length)
15
22
  return `this call reaches ${escalation.outsidePaths.length === 1 ? 'a path' : 'paths'} outside the turn's boundary`;
16
23
  return "this call reaches past the turn's boundary, which a rule cannot approve on its own";
17
24
  }
25
+ function hookAskedReason(reason) {
26
+ return reason
27
+ ? `a hook asked that a person approve this call: ${reason}`
28
+ : 'a hook asked that a person approve this call';
29
+ }
18
30
  /**
19
31
  * Run every tool call in `response` through the gate and (when the gate is
20
32
  * inconclusive) a human, then hand the whole batch — approved and refused
@@ -82,14 +94,25 @@ export async function* runToolReview(ctx, response, iterationNum) {
82
94
  const isDestructive = tool?.isDestructive ? tool.isDestructive(tc.input) : false;
83
95
  const requiresApproval = tool?.requiresApproval ? tool.requiresApproval(tc.input) : false;
84
96
  const escalation = 'escalation' in tc ? tc.escalation : undefined;
97
+ const hookPermission = 'hookPermission' in tc ? tc.hookPermission : undefined;
85
98
  return {
86
99
  id: tc.id,
87
100
  name: tc.name,
88
101
  input: tc.input,
89
102
  isDestructive,
90
- authorization: { decision: 'review' },
103
+ // A hook that asked for a person is an explicit review: a call the
104
+ // tool declares read-only, or one a rule would allow, is still put
105
+ // to one.
106
+ authorization: hookPermission?.decision === 'ask'
107
+ ? {
108
+ decision: 'review',
109
+ reason: hookAskedReason(hookPermission.reason),
110
+ explicitReview: true,
111
+ }
112
+ : { decision: 'review' },
91
113
  ...(requiresApproval ? { requiresApproval: true } : {}),
92
114
  ...(escalation ? { escalation } : {}),
115
+ ...(hookPermission ? { hookPermission } : {}),
93
116
  };
94
117
  });
95
118
  };
@@ -278,6 +301,24 @@ export async function* runToolReview(ctx, response, iterationNum) {
278
301
  reason,
279
302
  });
280
303
  }
304
+ for (const path of tc.escalation?.protectedPaths ?? []) {
305
+ await ctx.recorder.recordAudit({
306
+ what: { action: 'protected_path_write', tool: tc.name, resource: path },
307
+ outcome: 'refused',
308
+ reason,
309
+ });
310
+ }
311
+ if (tc.escalation?.dangerousRemoval !== undefined) {
312
+ await ctx.recorder.recordAudit({
313
+ what: {
314
+ action: 'dangerous_removal',
315
+ tool: tc.name,
316
+ resource: tc.escalation.dangerousRemoval,
317
+ },
318
+ outcome: 'refused',
319
+ reason,
320
+ });
321
+ }
281
322
  };
282
323
  // Gate-denied ids survive the whole function: a later human approval
283
324
  // must not be able to release them.
@@ -339,11 +380,21 @@ export async function* runToolReview(ctx, response, iterationNum) {
339
380
  reason: `${gr.gateResult.reason}; but the tool itself declares this call always needs a person's approval, which a rule cannot waive`,
340
381
  };
341
382
  }
383
+ // A hook that asked for a person can only ADD a review, like the two
384
+ // overrides above: a `deny` stays a denial.
385
+ const hookAsked = gr.toolCall.hookPermission?.decision === 'ask';
386
+ if (hookAsked && gr.gateResult.decision === 'allow') {
387
+ gr.gateResult = {
388
+ decision: 'review',
389
+ matchedRule: gr.gateResult.matchedRule,
390
+ reason: `${gr.gateResult.reason}; but ${hookAskedReason(gr.toolCall.hookPermission?.reason)}`,
391
+ };
392
+ }
342
393
  const { toolCall, gateResult } = gr;
343
394
  toolCall.authorization = {
344
395
  decision: gateResult.decision,
345
396
  ...(gateResult.reason ? { reason: gateResult.reason } : {}),
346
- ...(gateResult.decision === 'review' && gateResult.matchedRule
397
+ ...(gateResult.decision === 'review' && (gateResult.matchedRule || hookAsked)
347
398
  ? { explicitReview: true }
348
399
  : {}),
349
400
  };
@@ -416,6 +467,26 @@ export async function* runToolReview(ctx, response, iterationNum) {
416
467
  tc.skillGrant = { skill };
417
468
  }
418
469
  }
470
+ // A `pre_tool_use` hook's `allow`, marked on the calls it covers on the
471
+ // same terms as a skill's grant above and honoured by the review policy,
472
+ // never decided here. A deny, an explicit review (a rule's, or a hook's own
473
+ // `ask`), a destructive call, a path outside the roots, a sandbox escape and
474
+ // a tool's own `requiresApproval` all leave the call unmarked, so it is
475
+ // reviewed as though no hook had spoken.
476
+ /** Whether a hook's `allow` may stand in for a person on this call. */
477
+ const hookMayAllow = (tc) => !gateDenied.has(tc.id) &&
478
+ tc.authorization?.decision !== 'deny' &&
479
+ !tc.authorization?.explicitReview &&
480
+ !tc.isDestructive &&
481
+ tc.escalation === undefined &&
482
+ !tc.requiresApproval;
483
+ for (const tc of toolCallSummaries) {
484
+ if (tc.hookPermission?.decision !== 'allow' || !hookMayAllow(tc))
485
+ continue;
486
+ tc.hookGrant = {
487
+ ...(tc.hookPermission.reason ? { reason: tc.hookPermission.reason } : {}),
488
+ };
489
+ }
419
490
  // Already approved, at a scope the approver chose — and nothing the
420
491
  // operator's policy denied, because `gateDenied` is checked first.
421
492
  // Re-asking about a call somebody has already said yes to is how an
@@ -440,6 +511,67 @@ export async function* runToolReview(ctx, response, iterationNum) {
440
511
  yield* ctx.drainPending();
441
512
  return finish('executed');
442
513
  }
514
+ // A person is about to be asked. `permission_request` hooks may answer
515
+ // first, per call: `skip` refuses it (and always wins), `allow` approves it
516
+ // on the same terms as a `pre_tool_use` allow. A read the review policy
517
+ // would not have asked about is not a question and is not offered.
518
+ if (ctx.pluginManager) {
519
+ const questions = toolCallSummaries.filter((tc) => !gateDenied.has(tc.id) &&
520
+ tc.authorization?.decision !== 'deny' &&
521
+ tc.authorization?.decision !== 'allow' &&
522
+ (tc.authorization?.explicitReview === true ||
523
+ tc.escalation !== undefined ||
524
+ tc.requiresApproval === true ||
525
+ tc.isDestructive ||
526
+ !isReviewExempt(ctx.tools, tc.name, tc.input)));
527
+ for (const tc of questions) {
528
+ const answers = await ctx.pluginManager.executeHooks('permission_request', {
529
+ sessionId: ctx.recorder.sessionId,
530
+ turnId: ctx.recorder.turnId,
531
+ toolName: tc.name,
532
+ toolInput: tc.input,
533
+ signal: ctx.abortController.signal,
534
+ }, ctx.emitEvent);
535
+ // The hooks answered side by side: a refusal from any of them stands,
536
+ // whatever the others allowed.
537
+ const refusal = answers.find((answer) => answer.action === 'skip');
538
+ for (const answer of answers) {
539
+ if ((answer.action === 'continue' || answer.action === 'skip') && answer.halt) {
540
+ ctx.toolExecutor.requestHalt?.(answer.halt.reason);
541
+ }
542
+ }
543
+ if (refusal?.action === 'skip') {
544
+ const reason = `Blocked by a permission_request hook: ${refusal.reason}`;
545
+ gateDenied.set(tc.id, reason);
546
+ tc.authorization = { decision: 'deny', reason };
547
+ await ctx.recorder.recordAudit({
548
+ what: { action: 'tool_call', tool: tc.name },
549
+ outcome: 'refused',
550
+ reason,
551
+ });
552
+ continue;
553
+ }
554
+ for (const answer of answers) {
555
+ if (answer.action === 'continue' &&
556
+ answer.permission?.decision === 'allow' &&
557
+ hookMayAllow(tc)) {
558
+ tc.hookGrant = {
559
+ ...(answer.permission.reason ? { reason: answer.permission.reason } : {}),
560
+ };
561
+ }
562
+ }
563
+ }
564
+ if (toolCallSummaries.every((tc) => gateDenied.has(tc.id))) {
565
+ for (const tc of escalated()) {
566
+ const reason = gateDenied.get(tc.id);
567
+ if (reason !== undefined)
568
+ await recordRefusedEscalation(tc, reason);
569
+ }
570
+ yield* settle(gateDenied);
571
+ yield* ctx.drainPending();
572
+ return finish('rejected');
573
+ }
574
+ }
443
575
  const reviewCheckpoint = await ctx.checkpointMgr.create(ctx.recorder, iterationNum);
444
576
  await ctx.emitEvent({
445
577
  type: 'tool_review_requested',
@@ -515,6 +647,24 @@ export async function* runToolReview(ctx, response, iterationNum) {
515
647
  reason: "the turn's review approved this call",
516
648
  });
517
649
  }
650
+ for (const path of tc.escalation?.protectedPaths ?? []) {
651
+ await ctx.recorder.recordAudit({
652
+ what: { action: 'protected_path_write', tool: tc.name, resource: path },
653
+ outcome: 'approved',
654
+ reason: "the turn's review approved this call",
655
+ });
656
+ }
657
+ if (tc.escalation?.dangerousRemoval !== undefined) {
658
+ await ctx.recorder.recordAudit({
659
+ what: {
660
+ action: 'dangerous_removal',
661
+ tool: tc.name,
662
+ resource: tc.escalation.dangerousRemoval,
663
+ },
664
+ outcome: 'approved',
665
+ reason: "the turn's review approved this call",
666
+ });
667
+ }
518
668
  }
519
669
  };
520
670
  switch (reviewDecision.action) {
@@ -661,6 +811,19 @@ export async function* runToolReview(ctx, response, iterationNum) {
661
811
  });
662
812
  }
663
813
  }
814
+ // The same for a call a hook's `allow` approved.
815
+ if (reviewDecision.action === 'approve_tools' && reviewDecision.hookGranted) {
816
+ const listed = new Set(reviewDecision.hookGranted);
817
+ for (const tc of toolCallSummaries) {
818
+ if (!listed.has(tc.id) || !tc.hookGrant || gateDenied.has(tc.id))
819
+ continue;
820
+ await ctx.recorder.recordAudit({
821
+ what: { action: 'tool_call', tool: tc.name },
822
+ outcome: 'approved',
823
+ reason: `pre-approved by a pre_tool_use hook${tc.hookGrant.reason ? ` (${tc.hookGrant.reason})` : ''}; nobody was asked`,
824
+ });
825
+ }
826
+ }
664
827
  await ctx.emitEvent({
665
828
  type: 'tool_review_completed',
666
829
  turnId: ctx.recorder.turnId,
@@ -1 +1 @@
1
- {"version":3,"file":"tool-review.js","sourceRoot":"","sources":["../../../../../src/runtime/query/iteration/phases/tool-review.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tool-review.js","sourceRoot":"","sources":["../../../../../src/runtime/query/iteration/phases/tool-review.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,36 @@
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 type { ShellDialect } from '../../authorization/shell-lexer.js';
18
+ /** What the escalation records carry. */
19
+ export interface PathEscalations {
20
+ readonly outsidePaths: readonly string[];
21
+ readonly protectedPaths: readonly string[];
22
+ readonly dangerousRemoval?: string;
23
+ }
24
+ export interface PathEscalationContext {
25
+ /** The working directory first, then the added directories. */
26
+ readonly roots: readonly string[];
27
+ /** Whether to report paths outside the roots (`outsideRootAccess: 'review'`, no sandbox). */
28
+ readonly reviewOutside: boolean;
29
+ }
30
+ /** `{a,b}` with plain comma lists, one level at a time, bounded. */
31
+ export declare function expandBraces(value: string, limit?: number): string[];
32
+ /** A write the file tool's own declared path argument names. */
33
+ export declare function declaredWriteEscalation(roots: readonly string[], value: string): Promise<string | undefined>;
34
+ /** What a shell line reaches. */
35
+ export declare function shellEscalations(line: string, dialect: ShellDialect, context: PathEscalationContext): Promise<PathEscalations>;
36
+ //# sourceMappingURL=path-escalation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"path-escalation.d.ts","sourceRoot":"","sources":["../../../src/runtime/query/path-escalation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAOH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAA;AAItE,yCAAyC;AACzC,MAAM,WAAW,eAAe;IAC/B,QAAQ,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAA;IACxC,QAAQ,CAAC,cAAc,EAAE,SAAS,MAAM,EAAE,CAAA;IAC1C,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAA;CAClC;AAED,MAAM,WAAW,qBAAqB;IACrC,+DAA+D;IAC/D,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAA;IACjC,6FAA6F;IAC7F,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAA;CAC/B;AAqCD,oEAAoE;AACpE,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,SAAK,GAAG,MAAM,EAAE,CAkChE;AAwBD,gEAAgE;AAChE,wBAAsB,uBAAuB,CAC5C,KAAK,EAAE,SAAS,MAAM,EAAE,EACxB,KAAK,EAAE,MAAM,GACX,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAK7B;AAED,iCAAiC;AACjC,wBAAsB,gBAAgB,CACrC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,YAAY,EACrB,OAAO,EAAE,qBAAqB,GAC5B,OAAO,CAAC,eAAe,CAAC,CAqD1B"}
@@ -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"}