permdock 0.8.0 → 0.10.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 (277) hide show
  1. package/dist/a2a/index.d.ts +4 -4
  2. package/dist/a2a/index.js +3 -3
  3. package/dist/{action-result-CL-QCITA.d.ts → action-result-BcudBQOF.d.ts} +1 -1
  4. package/dist/active-tenant-DVee32-T.js +39 -0
  5. package/dist/{adoption-scan-BLs67P1l.js → adoption-scan-0oFt2RD5.js} +1 -1
  6. package/dist/agent/index.d.ts +2 -2
  7. package/dist/agent/index.js +1 -1
  8. package/dist/ai-sdk/index.d.ts +3 -3
  9. package/dist/ai-sdk/index.js +3 -3
  10. package/dist/{approval-prompt-PYagyQUj.d.ts → approval-prompt-3BqWczTt.d.ts} +1 -1
  11. package/dist/approvals/index.d.ts +3 -3
  12. package/dist/{arazzo-3RhGfkAK.js → arazzo-DA9PCXew.js} +1 -1
  13. package/dist/{arazzo-B5-ulWif.js → arazzo-DhxDfYt-.js} +2 -2
  14. package/dist/astro/index.d.ts +4 -4
  15. package/dist/astro/index.js +1 -1
  16. package/dist/{audience-BAkBDMqn.js → audience-DTjR8xet.js} +1 -1
  17. package/dist/authzen/index.d.ts +5 -5
  18. package/dist/authzen/index.js +1 -1
  19. package/dist/{automation-DqEoWHBc.d.ts → automation-C6Jg75xq.d.ts} +1 -1
  20. package/dist/better-auth/index.d.ts +1 -1
  21. package/dist/better-supabase/index.d.ts +192 -27
  22. package/dist/better-supabase/index.js +248 -64
  23. package/dist/{bind-D_sZSVA3.js → bind-BNQA9JK9.js} +7 -3
  24. package/dist/{bind-Cp2hBHzP.d.ts → bind-YYjvfpB9.d.ts} +12 -7
  25. package/dist/{build-instance-CNWaYJyr.js → build-instance-BWXqwQYU.js} +1 -1
  26. package/dist/{capability-ChuiONQU.d.ts → capability-Di9tiUvi.d.ts} +1 -1
  27. package/dist/{casbin-H0rKxBx2.js → casbin-BJu2liqU.js} +1 -1
  28. package/dist/{casbin-cbSbhT_k.js → casbin-BkhqGh2z.js} +1 -1
  29. package/dist/catalog/index.d.ts +4 -4
  30. package/dist/catalog/index.js +2 -2
  31. package/dist/{catalog-BFpz2EmT.js → catalog-CGlSwU6j.js} +2 -2
  32. package/dist/catalog-D3oS2GH3.js +1 -0
  33. package/dist/{catalog-DCspHDc8.js → catalog-amPDr0JQ.js} +1 -1
  34. package/dist/{catalog-operations-Dadrl7Z-.js → catalog-operations-DeHTrJSV.js} +1 -1
  35. package/dist/chat/index.d.ts +1 -1
  36. package/dist/chat/index.js +1 -1
  37. package/dist/chat-sdk/index.d.ts +3 -3
  38. package/dist/claude-agent/index.d.ts +3 -3
  39. package/dist/claude-agent/index.js +2 -2
  40. package/dist/clerk/index.d.ts +2 -2
  41. package/dist/cli/bin.js +1 -1
  42. package/dist/cli/index.d.ts +9 -4
  43. package/dist/cli/index.js +11 -3
  44. package/dist/cloud/index.d.ts +8 -8
  45. package/dist/{cloud-BFlGMaak.js → cloud-3RIuS4E9.js} +2 -2
  46. package/dist/{codemod-DLQ9Zpo4.js → codemod-DLcp-B6v.js} +2 -2
  47. package/dist/{codemod-DWSN2erG.js → codemod-DRl_w-bY.js} +1 -1
  48. package/dist/collect-D-eroIfV.js +1 -0
  49. package/dist/{collect-Bzv3le0A.js → collect-D9Tt0Bcx.js} +2 -2
  50. package/dist/{collect-B7ZFAJU3.js → collect-WCl8cJQV.js} +1 -1
  51. package/dist/compile/index.d.ts +1 -1
  52. package/dist/{compile-BFzysW3o.d.ts → compile-BEklRUYo.d.ts} +2 -2
  53. package/dist/{completion-saoYiRFO.js → completion-VSWvaaPO.js} +1 -1
  54. package/dist/{config-BwPBfN0t.js → config-BR23fL8m.js} +2 -2
  55. package/dist/{config-DBeXXmBF.js → config-kL36AxkE.js} +1 -1
  56. package/dist/{config-report-BipSWA6V.js → config-report-osnfUNg5.js} +3 -3
  57. package/dist/{config-shape-ykV0Vm2n.js → config-shape-tsxHx71E.js} +2 -1
  58. package/dist/convex/index.d.ts +4 -4
  59. package/dist/convex/index.js +2 -2
  60. package/dist/{core-hWIARPDz.d.ts → core-CFepFiDP.d.ts} +2 -2
  61. package/dist/{core-H-mbhpZc.js → core-DzVINFbU.js} +3 -3
  62. package/dist/{create-Cq4Uox0f.js → create-6EwRQlig.js} +3 -3
  63. package/dist/{create-_noSrY1T.js → create-BLPKnJKa.js} +23 -7
  64. package/dist/{create-BSNrVuxh.d.ts → create-BPUopdfL.d.ts} +7 -7
  65. package/dist/{create-CM1FciYG.d.ts → create-CDd9c22W.d.ts} +15 -6
  66. package/dist/{create-BVq1lNQE.d.ts → create-DBvUsgzK.d.ts} +4 -4
  67. package/dist/delivery/index.d.ts +4 -4
  68. package/dist/delivery/index.js +1 -1
  69. package/dist/{denied-text-CHNlVInN.d.ts → denied-text-DHldhVUv.d.ts} +1 -1
  70. package/dist/{describe-ByS9LgHK.d.ts → describe-BbFPBSms.d.ts} +1 -1
  71. package/dist/{diff-CN8IYhC_.js → diff-BwR1JdP2.js} +1 -1
  72. package/dist/{diff-iZWV65nC.js → diff-CQegtBAo.js} +2 -2
  73. package/dist/{doctor-D3wo-yuz.js → doctor-B9FY9H0F.js} +2 -2
  74. package/dist/{doctor-CHD1M9R5.js → doctor-DfTnMaUt.js} +144 -16
  75. package/dist/drizzle/index.d.ts +3 -3
  76. package/dist/elysia/index.d.ts +4 -4
  77. package/dist/elysia/index.js +1 -1
  78. package/dist/{errors-zi_4T-rx.d.ts → errors-BIM4MFsJ.d.ts} +1 -1
  79. package/dist/{evaluate-Dd8Ta0Ie.js → evaluate-BAmf_AQd.js} +13 -4
  80. package/dist/{evaluations-z8dQFDaN.d.ts → evaluations-DOWuBpWv.d.ts} +3 -3
  81. package/dist/eve/index.d.ts +4 -4
  82. package/dist/eve/index.js +2 -2
  83. package/dist/express/index.d.ts +4 -4
  84. package/dist/express/index.js +1 -1
  85. package/dist/fastify/index.d.ts +4 -4
  86. package/dist/fastify/index.js +1 -1
  87. package/dist/{fetch-adapter-C1DCvpqV.d.ts → fetch-adapter-BIbBAtPZ.d.ts} +2 -2
  88. package/dist/{fetch-adapter-JL43jD3E.js → fetch-adapter-dPTgJVHd.js} +1 -1
  89. package/dist/{fields-D0vUI6dq.js → fields-DI8s3cPl.js} +1 -1
  90. package/dist/{gen-DWCYcMQM.js → gen-DuAhghDw.js} +2 -2
  91. package/dist/{gen-B5kvbAoZ.js → gen-DwgCSC6V.js} +1 -1
  92. package/dist/h3/index.d.ts +4 -4
  93. package/dist/h3/index.js +2 -2
  94. package/dist/hono/index.d.ts +4 -4
  95. package/dist/hono/index.js +1 -1
  96. package/dist/{hosted-Cmtxogd0.d.ts → hosted-DVxlLZMe.d.ts} +1 -1
  97. package/dist/{import-CST57XLp.js → import-CNBF96hB.js} +2 -2
  98. package/dist/{import-_YqhhwvX.js → import-Iuk9mx8A.js} +1 -1
  99. package/dist/{index-BhxEUY9J.d.ts → index-BinlXeU-.d.ts} +2 -2
  100. package/dist/{index-B8s204GL.d.ts → index-CV-7DWeD.d.ts} +4 -4
  101. package/dist/{index-BW_0MZOS.d.ts → index-Cay5-Kvx.d.ts} +13 -8
  102. package/dist/{index-_9UiQIkt.d.ts → index-DJwEgYzA.d.ts} +4 -4
  103. package/dist/{index-BT5-1VsX.d.ts → index-Dj2qF9VC.d.ts} +1 -1
  104. package/dist/{index-Bv5iXPqU.d.ts → index-ymept53A.d.ts} +4 -4
  105. package/dist/index.d.ts +16 -15
  106. package/dist/index.js +6 -6
  107. package/dist/{init-cE3A8aXq.js → init-DeoSvkh2.js} +1 -1
  108. package/dist/{init-Dz_PsHdv.js → init-fNF_XmTa.js} +3 -3
  109. package/dist/{instance-options-B0KXqTrJ.d.ts → instance-options-CoHn-0e8.d.ts} +1 -1
  110. package/dist/{instance-snapshot--JWiTrvO.js → instance-snapshot-DuWf1cT3.js} +13 -8
  111. package/dist/jwt/index.d.ts +4 -4
  112. package/dist/jwt/index.js +1 -1
  113. package/dist/{kernel-C-fYydV2.js → kernel-qv4cr9w8.js} +4 -4
  114. package/dist/kysely/index.d.ts +3 -3
  115. package/dist/{login-DplQ0s84.js → login-CutVtcmQ.js} +1 -1
  116. package/dist/{login-D-8tMqzo.js → login-DYazeWc9.js} +3 -3
  117. package/dist/{manifest-Cgiq5oqc.js → manifest-B4ENCp2I.js} +35 -35
  118. package/dist/{manifest-CzzWtnAb.d.ts → manifest-B5yF3CIq.d.ts} +19 -0
  119. package/dist/{manifest-wg8WkkpD.js → manifest-BXTbHNIV.js} +1 -1
  120. package/dist/{manifest-schema-2r37XRhD.js → manifest-schema-DQkBK2Mr.js} +28 -1
  121. package/dist/{map-claims-BNWCJtmP.js → map-claims-C-nv08_n.js} +2 -1
  122. package/dist/mcp/index.d.ts +8 -8
  123. package/dist/mcp/index.js +4 -4
  124. package/dist/{migrate-B7oP_sQU.js → migrate-BJHxQqT5.js} +2 -2
  125. package/dist/{module-values-BJTBdo6y.js → module-values-B1EVTkHP.js} +1 -1
  126. package/dist/nest/index.d.ts +4 -4
  127. package/dist/nest/index.js +1 -1
  128. package/dist/next/index.d.ts +32 -12
  129. package/dist/next/index.js +15 -8
  130. package/dist/next/plugin.d.ts +1 -1
  131. package/dist/next/plugin.js +1 -1
  132. package/dist/node/index.d.ts +4 -4
  133. package/dist/node/index.js +1 -1
  134. package/dist/openai/index.d.ts +4 -4
  135. package/dist/openai/index.js +3 -3
  136. package/dist/openapi/index.d.ts +2 -2
  137. package/dist/{openapi-VeHHU2l9.js → openapi-C-ADypaY.js} +1 -1
  138. package/dist/{openapi-CBZUhA3l.js → openapi-DFj0cirS.js} +2 -2
  139. package/dist/orpc/index.d.ts +5 -5
  140. package/dist/orpc/index.js +2 -2
  141. package/dist/otel/index.d.ts +3 -3
  142. package/dist/{output-tkju6U7R.js → output-LsbLe41I.js} +1 -1
  143. package/dist/{ownership-B4L59T9u.js → ownership-qqBuGJXr.js} +11 -6
  144. package/dist/{parse-local-manifest-BQhTlLQS.d.ts → parse-local-manifest-CCmbhnxP.d.ts} +1 -1
  145. package/dist/pdp/index.d.ts +3 -3
  146. package/dist/pdp/index.js +1 -1
  147. package/dist/{permdock-L-_I_3zP.js → permdock-BvjivVb9.js} +143 -107
  148. package/dist/{permdock-B6Sf4T_S.d.ts → permdock-CprAPN3w.d.ts} +9 -2
  149. package/dist/{permissions-mDcTWoBs.js → permissions-CYcHj_w7.js} +1 -1
  150. package/dist/{policy-Ba4bDhaj.d.ts → policy-BycVKnXv.d.ts} +1 -1
  151. package/dist/{policy-from-catalog-CJgOm6aq.js → policy-from-catalog-CU3An8uP.js} +1 -1
  152. package/dist/{policy-types-CCiDRZBH.d.ts → policy-types-DGIO_gxq.d.ts} +54 -18
  153. package/dist/{postgrest-DicQyqm-.d.ts → postgrest-D5nUGm-c.d.ts} +4 -3
  154. package/dist/{postgrest-D4nuPXIQ.js → postgrest-DAxFltvO.js} +35 -56
  155. package/dist/{powersync-DXqGuq9A.js → powersync-B_8uwz7f.js} +2 -2
  156. package/dist/powersync-CSzDCHRu.js +1 -0
  157. package/dist/{powersync-DHNQX06W.js → powersync-DUT-UKgw.js} +190 -38
  158. package/dist/prisma/index.d.ts +2 -2
  159. package/dist/{protected-action-BE7N_Luo.d.ts → protected-action-D8x73IGm.d.ts} +6 -6
  160. package/dist/{provider-DXfq5c2d.d.ts → provider-DfLeek9O.d.ts} +1 -1
  161. package/dist/{pull-CwpGaQSi.js → pull-DQCgvJSC.js} +2 -2
  162. package/dist/pull-DYbyod1f.js +1 -0
  163. package/dist/{push-DgssgzkK.js → push-Dq_ca4-j.js} +3 -3
  164. package/dist/{pushed-policy-ITwYKvvH.js → pushed-policy-CDuOL2de.js} +1 -1
  165. package/dist/{pushed-policy-D1Eoi6NM.d.ts → pushed-policy-CryQheKq.d.ts} +1 -1
  166. package/dist/react/index.d.ts +7 -7
  167. package/dist/react/provider-client.d.ts +1 -1
  168. package/dist/react-native/index.d.ts +9 -9
  169. package/dist/{replay-DNftIb_R.d.ts → replay-Bs9Df2fQ.d.ts} +1 -1
  170. package/dist/{request-context-C25ilqiJ.js → request-context-Duzdf0cd.js} +1 -1
  171. package/dist/resend/index.d.ts +4 -4
  172. package/dist/{resolve-names-CF7xXLSG.js → resolve-names-Y1Cb22cp.js} +4 -4
  173. package/dist/{rls-CNEH2_BG.js → rls-B57mIeVq.js} +34 -20
  174. package/dist/{rls-Ca8Jz9b5.js → rls-j0YrFPpW.js} +1 -1
  175. package/dist/{rpc-fNqAIqQk.js → rpc-vHIwyXCp.js} +1 -1
  176. package/dist/run-BATawNVH.js +1 -0
  177. package/dist/{run-Bz26OTfO.js → run-CLP_fQUF.js} +3 -3
  178. package/dist/{run-ticket-Dv7aF7Dk.js → run-ticket-DfnZCh-u.js} +19 -6
  179. package/dist/{run-ticket-DbWI9f99.d.ts → run-ticket-ylovhyFQ.d.ts} +18 -3
  180. package/dist/{saas-iWnUdwCt.js → saas-DK4V-3Is.js} +2 -2
  181. package/dist/{scan-DCj1KQfn.js → scan-B7xrAvRm.js} +1 -1
  182. package/dist/{schema-Dst9I9Gs.js → schema-3PJ8wAeL.js} +1 -1
  183. package/dist/scim/index.d.ts +1 -1
  184. package/dist/server/index.d.ts +11 -11
  185. package/dist/server/index.js +2 -2
  186. package/dist/{server-types-CIlpSA2G.d.ts → server-types-CyRN0-Cd.d.ts} +15 -8
  187. package/dist/{shared-Afctg7B0.js → shared-DrGLwM3s.js} +1 -1
  188. package/dist/{sink-Dvi7YZG_.d.ts → sink-B5zoUW_O.d.ts} +2 -2
  189. package/dist/{skills-OuoMR49L.js → skills-BUI8DMqy.js} +1 -1
  190. package/dist/{skills-Bjj7BNEQ.js → skills-iwbRxavw.js} +1 -1
  191. package/dist/{snapshot-cache-BAXZ0KOp.d.ts → snapshot-cache-BjAWkchD.d.ts} +1 -1
  192. package/dist/solid/index.d.ts +6 -6
  193. package/dist/solid-start/index.d.ts +4 -4
  194. package/dist/solid-start/index.js +2 -2
  195. package/dist/{sources-CMAM-2A3.js → sources-C4vkzZJV.js} +12 -7
  196. package/dist/{types-ah9NlU6j.d.ts → sources-oB1Hg1Fm.d.ts} +316 -2
  197. package/dist/{src-DZ0l9UAg.js → src-C_pi2Rnh.js} +106 -5
  198. package/dist/ssf/index.d.ts +3 -3
  199. package/dist/{standard-webhooks-C-qX4mJW.d.ts → standard-webhooks-DOYEuOLx.d.ts} +2 -2
  200. package/dist/{stores-C0Kta5Ft.d.ts → stores-DZJvxFIZ.d.ts} +6 -6
  201. package/dist/{stream-ltuLdtTG.d.ts → stream-9y9qw51m.d.ts} +1 -1
  202. package/dist/supabase/index.d.ts +5 -6
  203. package/dist/supabase/index.js +4 -4
  204. package/dist/supabase/middleware.d.ts +5 -5
  205. package/dist/supabase/middleware.js +4 -4
  206. package/dist/{supabase-BL1qJzzY.js → supabase-B1EfuD47.js} +2 -2
  207. package/dist/{supabase-D39cuGPt.js → supabase-BaizG0n7.js} +2 -2
  208. package/dist/{supabase-hook-B-yXnzUl.js → supabase-hook-BT2P9wah.js} +110 -47
  209. package/dist/supabase-hook-CbvGAutK.js +1 -0
  210. package/dist/{supautils-BU-pAEpf.js → supautils-DBKOoyjn.js} +247 -200
  211. package/dist/svelte/index.d.ts +6 -6
  212. package/dist/svelte/runtime.d.ts +3 -3
  213. package/dist/svelte/source.d.ts +6 -6
  214. package/dist/sveltekit/index.d.ts +4 -4
  215. package/dist/sveltekit/index.js +1 -1
  216. package/dist/{tables-DeMNEy6V.js → tables-DimBcVWY.js} +3 -3
  217. package/dist/tanstack-start/index.d.ts +4 -4
  218. package/dist/tanstack-start/index.js +1 -1
  219. package/dist/terminal/index.d.ts +5 -5
  220. package/dist/terminal/index.js +2 -2
  221. package/dist/testing/core.d.ts +1 -1
  222. package/dist/testing/core.js +1 -1
  223. package/dist/testing/fixtures/index.d.ts +1 -1
  224. package/dist/testing/fixtures/index.js +26 -28
  225. package/dist/testing/index.d.ts +23 -21
  226. package/dist/testing/index.js +64 -10
  227. package/dist/testing/saas/index.d.ts +3 -3
  228. package/dist/testing/saas/index.js +2 -2
  229. package/dist/testing/saas/permissions.js +1 -1
  230. package/dist/trpc/index.d.ts +5 -5
  231. package/dist/trpc/index.js +2 -2
  232. package/dist/{type-helpers-BIPIDa6a.d.ts → type-helpers-c7Xo_2Cu.d.ts} +1 -1
  233. package/dist/{types-B2mlGuhW.d.ts → types-B2efzoSX.d.ts} +1 -1
  234. package/dist/{types-DHKPcqzr.d.ts → types-B6ExllNo.d.ts} +2 -2
  235. package/dist/{types-AMJ5qoU_.d.ts → types-BB-zWDcR.d.ts} +4 -4
  236. package/dist/{types-djVzLlIV.d.ts → types-CEinc15V.d.ts} +4 -4
  237. package/dist/{types-yUuPR5Hy.d.ts → types-CN0LsqbK.d.ts} +3 -3
  238. package/dist/{types-HzqOtvsJ.d.ts → types-CWBsAwqn.d.ts} +4 -4
  239. package/dist/{types-DC1Loeh3.d.ts → types-Cklw5hJo.d.ts} +26 -3
  240. package/dist/{types-B_tiYvk8.d.ts → types-DLvhVm1r.d.ts} +1 -1
  241. package/dist/{types-B4uqKDnp.d.ts → types-DlelvQk4.d.ts} +2 -2
  242. package/dist/{types-DjuMBNF9.d.ts → types-DsHGPtkR.d.ts} +2 -2
  243. package/dist/{types-BJk0BKRX.d.ts → types-rCRV4Ge-.d.ts} +4 -4
  244. package/dist/{types-B_d_g7T3.d.ts → types-tQB2CEnY.d.ts} +4 -4
  245. package/dist/unplugin/index.d.ts +1 -1
  246. package/dist/unplugin/index.js +1 -1
  247. package/dist/{usage-ab0PdusX.js → usage-B1ZJOUdr.js} +1 -1
  248. package/dist/{usage-CxEzS4ey.js → usage-t_nXnwCW.js} +3 -3
  249. package/dist/usage-weohzv2f.js +1 -0
  250. package/dist/{validation-error-YGg2mXyH.d.ts → validation-error-uvp-kyfO.d.ts} +1 -1
  251. package/dist/{verify-DZeqoWu5.js → verify-jHrbmn-E.js} +9 -9
  252. package/dist/version-cache-Df11C2Qp.d.ts +51 -0
  253. package/dist/vue/index.d.ts +6 -6
  254. package/dist/{waiter-Bu9zAlE0.d.ts → waiter-CqUKX6CY.d.ts} +2 -2
  255. package/dist/{watch-Cx_WciLE.js → watch-Bpci3hBY.js} +2 -2
  256. package/dist/watch-COuvly20.js +1 -0
  257. package/dist/webmcp/index.d.ts +1 -1
  258. package/dist/{who-can-rI7dCR9Q.js → who-can-BoDJm0Nc.js} +1 -1
  259. package/dist/workflow/index.d.ts +3 -3
  260. package/dist/workflow/index.js +23 -7
  261. package/dist/workflow-sdk/index.d.ts +4 -4
  262. package/dist/{wrap-DlJE3gS_.d.ts → wrap-DxXB54Wu.d.ts} +2 -2
  263. package/package.json +3 -3
  264. package/schemas/run-v1.json +16 -0
  265. package/schemas/supabase-manifest-v1.json +28 -0
  266. package/skills/permdock-agents/references/operations-automations-chat.md +1 -0
  267. package/skills/permdock-data/references/queries-and-rls.md +1 -1
  268. package/skills/permdock-wire/references/adapters.md +4 -3
  269. package/dist/catalog-mRQQQhNK.js +0 -1
  270. package/dist/collect-B5BL3klN.js +0 -1
  271. package/dist/powersync-Djf-zCpB.js +0 -1
  272. package/dist/pull-B65ndFNZ.js +0 -1
  273. package/dist/run-D-JE8QWb.js +0 -1
  274. package/dist/sources-B1Os_YUu.d.ts +0 -312
  275. package/dist/supabase-hook-H-MtE9Wd.js +0 -1
  276. package/dist/usage-CYeXek0p.js +0 -1
  277. package/dist/watch-DB42U1ib.js +0 -1
@@ -2,8 +2,8 @@ import { r as isRecord } from "./compact-CAf557ZB.js";
2
2
  import { r as listSourceFiles, t as defaultSrcPath } from "./files-BSjrtIHw.js";
3
3
  import { a as catalogSchemaDocument, n as catalogForCompare, o as formatCatalogJson, r as catalogForDrift, s as formatCatalogMarkdown, t as buildCatalog } from "./catalog-doc-DjMKzJp9.js";
4
4
  import { a as loadModule, i as loadConfiguredPolicy, r as leavesOf, s as pickNamed, t as asPermissionTree } from "./load-DjSU5KXO.js";
5
- import { t as loadConfiguredOperations } from "./catalog-operations-Dadrl7Z-.js";
6
- import { i as scanSources, r as runCollect } from "./collect-B7ZFAJU3.js";
5
+ import { t as loadConfiguredOperations } from "./catalog-operations-DeHTrJSV.js";
6
+ import { i as scanSources, r as runCollect } from "./collect-WCl8cJQV.js";
7
7
  import { n as fileSummary, t as applyFiles } from "./files-B3AA05f1.js";
8
8
  import { existsSync, readFileSync } from "node:fs";
9
9
  import { resolve } from "node:path";
@@ -0,0 +1 @@
1
+ export { t as catalogFile, n as runCatalog } from "./catalog-CGlSwU6j.js";
@@ -30,7 +30,7 @@ const catalog = defineLeaf({
30
30
  ...checkFlag
31
31
  },
32
32
  async run(ctx, { flags }) {
33
- const { catalogFile, runCatalog } = await import("./catalog-mRQQQhNK.js");
33
+ const { catalogFile, runCatalog } = await import("./catalog-D3oS2GH3.js");
34
34
  const result = await runCatalog({
35
35
  cwd: ctx.cwd,
36
36
  config: ctx.config,
@@ -1,5 +1,5 @@
1
1
  import { r as isRecord } from "./compact-CAf557ZB.js";
2
- import { k as isOperationEffect } from "./src-DZ0l9UAg.js";
2
+ import { A as isOperationEffect } from "./src-C_pi2Rnh.js";
3
3
  import { o as isPermission } from "./permission-registry-B8tYxPIt.js";
4
4
  import { r as isOperationRisk } from "./permissions-CVXmRILq.js";
5
5
  import { i as configError } from "./errors-Vpu6rKHl.js";
@@ -1,2 +1,2 @@
1
- import { a as ChatCommandResult, c as createPermDock, d as SubjectFromChatOptions, f as isChatAuthor, i as ChatCommandContext, l as ChatAuthor, n as ChatActionResult, o as ChatPermDock, p as subjectFromChat, r as ChatCommand, s as ChatPermDockOptions, t as ChatAction, u as ChatPrincipal } from "../create-BVq1lNQE.js";
1
+ import { a as ChatCommandResult, c as createPermDock, d as SubjectFromChatOptions, f as isChatAuthor, i as ChatCommandContext, l as ChatAuthor, n as ChatActionResult, o as ChatPermDock, p as subjectFromChat, r as ChatCommand, s as ChatPermDockOptions, t as ChatAction, u as ChatPrincipal } from "../create-DBvUsgzK.js";
2
2
  export { type ChatAction, type ChatActionResult, type ChatAuthor, type ChatCommand, type ChatCommandContext, type ChatCommandResult, type ChatPermDock, type ChatPermDockOptions, type ChatPrincipal, type SubjectFromChatOptions, createPermDock, isChatAuthor, subjectFromChat };
@@ -2,7 +2,7 @@ import { t as compact } from "../compact-CAf557ZB.js";
2
2
  import { n as freezeDeep } from "../freeze-jjan0lCv.js";
3
3
  import { n as loadPrincipalByIdentity } from "../principal-source-C6N60GtM.js";
4
4
  import { f as nowMillis } from "../time-nR1JesoH.js";
5
- import { l as withApp, t as getPermDock } from "../permdock-L-_I_3zP.js";
5
+ import { l as withApp, t as getPermDock } from "../permdock-BvjivVb9.js";
6
6
  import { c as isApprovalError } from "../types-CcUXciSj.js";
7
7
  import { a as requestApproval, o as resolveApproval, s as resumeDecision } from "../helpers-DJicaG6f.js";
8
8
  import { t as approvalPrompt } from "../approval-prompt-B8hQY69x.js";
@@ -1,6 +1,6 @@
1
- import { n as ApprovalUrl, t as ApprovalPrompt } from "../approval-prompt-PYagyQUj.js";
2
- import { l as ChatAuthor, n as ChatActionResult, o as ChatPermDock } from "../create-BVq1lNQE.js";
3
- import { n as ChatTransport } from "../types-yUuPR5Hy.js";
1
+ import { n as ApprovalUrl, t as ApprovalPrompt } from "../approval-prompt-3BqWczTt.js";
2
+ import { l as ChatAuthor, n as ChatActionResult, o as ChatPermDock } from "../create-DBvUsgzK.js";
3
+ import { n as ChatTransport } from "../types-CN0LsqbK.js";
4
4
  import { ActionEvent, Author, CardElement } from "chat";
5
5
  //#region src/chat-sdk/author.d.ts
6
6
  type ChatSdkAuthorOptions = {
@@ -1,6 +1,6 @@
1
- import { T as Policy, j as PolicyVocabulary, sr as Principal } from "../policy-types-CCiDRZBH.js";
2
- import { a as PermDock } from "../permdock-B6Sf4T_S.js";
3
- import { o as AgentAdapterOptions, t as AgentPermDock } from "../create-BSNrVuxh.js";
1
+ import { T as Policy, j as PolicyVocabulary, pr as Principal } from "../policy-types-DGIO_gxq.js";
2
+ import { a as PermDock } from "../permdock-CprAPN3w.js";
3
+ import { o as AgentAdapterOptions, t as AgentPermDock } from "../create-BPUopdfL.js";
4
4
  //#region src/claude-agent/create.d.ts
5
5
  /** Structural `McpServerProvenance` from `@anthropic-ai/claude-agent-sdk`. */
6
6
  type ClaudeMcpServer = {
@@ -1,6 +1,6 @@
1
1
  import { r as isRecord, t as compact } from "../compact-CAf557ZB.js";
2
- import { l as withApp } from "../permdock-L-_I_3zP.js";
3
- import { t as agentRuntime } from "../create-Cq4Uox0f.js";
2
+ import { l as withApp } from "../permdock-BvjivVb9.js";
3
+ import { t as agentRuntime } from "../create-6EwRQlig.js";
4
4
  //#region src/claude-agent/create.ts
5
5
  const MCP_PREFIX = "mcp__";
6
6
  function asInput(input) {
@@ -1,6 +1,6 @@
1
- import { W as CustomRoleSource, lr as Subject, sr as Principal } from "../policy-types-CCiDRZBH.js";
1
+ import { G as CustomRoleSource, hr as Subject, pr as Principal } from "../policy-types-DGIO_gxq.js";
2
2
  import { u as Permission } from "../permission-types-CAY-GU7e.js";
3
- import { s as RemotePdpCache } from "../types-B4uqKDnp.js";
3
+ import { s as RemotePdpCache } from "../types-DlelvQk4.js";
4
4
  import { t as ClaimsMap } from "../claims-map-D1Pb5oRq.js";
5
5
  import { StandardSchemaV1 } from "@standard-schema/spec";
6
6
  //#region src/clerk/types.d.ts
package/dist/cli/bin.js CHANGED
@@ -11,7 +11,7 @@ if (argv.length === 1 && (argv[0] === "--version" || argv[0] === "-v")) {
11
11
  const [{ isCi }, { trapSignals }, { run }, { streamHasColors }] = await Promise.all([
12
12
  import("../env-DJZrPjRi.js"),
13
13
  import("../signals-B1vHR3fN.js"),
14
- import("../run-D-JE8QWb.js"),
14
+ import("../run-BATawNVH.js"),
15
15
  import("../style-DblOtSga.js")
16
16
  ]);
17
17
  const signals = trapSignals();
@@ -1,10 +1,10 @@
1
- import { T as Policy } from "../policy-types-CCiDRZBH.js";
1
+ import { T as Policy } from "../policy-types-DGIO_gxq.js";
2
2
  import { f as PermissionTree } from "../permission-types-CAY-GU7e.js";
3
3
  import { o as OperationMap } from "../operations-Ci_rT6Uo.js";
4
4
  import { a as CatalogDocument, d as CatalogRole, f as CatalogScope, l as CatalogPermission, m as CatalogUsage, n as CatalogApproval, p as CatalogSupportAccess, r as CatalogBreakGlass, t as CatalogActivation, u as CatalogResource } from "../types-ZzRGoViD.js";
5
- import { a as pushedPolicy, i as parsePushedPolicy, n as PushedGrant, r as PushedPolicy, t as PUSHED_POLICY_SCHEMA } from "../pushed-policy-D1Eoi6NM.js";
6
- import { _ as RlsSuspension, a as GenKind, c as RlsActiveRow, d as RlsDialect, f as RlsFunctionMapping, g as RlsSuspendedScope, h as RlsSuspendedMembership, i as GenConfig, l as RlsApiKeys, m as RlsMemberships, n as CliIo, o as PermDockConfig, p as RlsMembershipTable, r as CollectConfig, t as CatalogConfig, u as RlsConfig, v as RlsTarget, y as RunResult } from "../types-DC1Loeh3.js";
7
- import { o as ResourceNameOf, r as PermissionKeyOf, s as ScopeNameOf, t as ActionNameOf } from "../type-helpers-BIPIDa6a.js";
5
+ import { a as pushedPolicy, i as parsePushedPolicy, n as PushedGrant, r as PushedPolicy, t as PUSHED_POLICY_SCHEMA } from "../pushed-policy-CryQheKq.js";
6
+ import { _ as RlsSuspension, a as GenKind, c as RlsActiveRow, d as RlsDialect, f as RlsFunctionMapping, g as RlsSuspendedScope, h as RlsSuspendedMembership, i as GenConfig, l as RlsApiKeys, m as RlsMemberships, n as CliIo, o as PermDockConfig, p as RlsMembershipTable, r as CollectConfig, t as CatalogConfig, u as RlsConfig, v as RlsTarget, y as RunResult } from "../types-Cklw5hJo.js";
7
+ import { o as ResourceNameOf, r as PermissionKeyOf, s as ScopeNameOf, t as ActionNameOf } from "../type-helpers-c7Xo_2Cu.js";
8
8
  //#region src/cli/catalog-path.d.ts
9
9
  /**
10
10
  * The absolute path `permdock collect` writes the catalog to: `collect.out`,
@@ -76,6 +76,11 @@ type ConfigChecks<C> = [PolicyOf<C>] extends [never] ? unknown : {
76
76
  readonly powersync?: {
77
77
  readonly resources?: readonly ResourceNameOf<PolicyOf<C>>[];
78
78
  readonly action?: ActionNameOf<PolicyOf<C>>;
79
+ readonly tables?: Readonly<Record<string, {
80
+ readonly follow?: readonly {
81
+ readonly resource: ResourceNameOf<PolicyOf<C>>;
82
+ }[];
83
+ }>>;
79
84
  };
80
85
  };
81
86
  //#endregion
package/dist/cli/index.js CHANGED
@@ -1,8 +1,8 @@
1
1
  import { t as catalogPath } from "../catalog-path-CnI0XTFK.js";
2
- import { t as defineConfig } from "../config-BwPBfN0t.js";
3
- import { n as parsePushedPolicy, r as pushedPolicy, t as PUSHED_POLICY_SCHEMA } from "../pushed-policy-ITwYKvvH.js";
2
+ import { t as defineConfig } from "../config-BR23fL8m.js";
3
+ import { n as parsePushedPolicy, r as pushedPolicy, t as PUSHED_POLICY_SCHEMA } from "../pushed-policy-CDuOL2de.js";
4
4
  import { c as parseGrantsMarker, l as parseHookMarker } from "../markers-BeHZ4x9Q.js";
5
- import { t as run } from "../run-Bz26OTfO.js";
5
+ import { t as run } from "../run-CLP_fQUF.js";
6
6
  //#region src/cli/token-schemas.ts
7
7
  const ID = {
8
8
  type: "string",
@@ -85,6 +85,14 @@ const RUN_TICKET_SCHEMA = {
85
85
  maxItems: 64
86
86
  }
87
87
  }
88
+ },
89
+ resource: {
90
+ type: "object",
91
+ required: ["type", "id"],
92
+ properties: {
93
+ type: ID,
94
+ id: ID
95
+ }
88
96
  }
89
97
  },
90
98
  anyOf: [{
@@ -1,11 +1,11 @@
1
- import { $t as CredentialEvent, Qt as AutomationEvent, Rt as Instant, Xt as AccessEvent, en as DecisionEvent, in as DirectoryEvent, nn as DeliveryEvent, on as MembershipEvent, tn as DeliveryChannel, ut as TokenSigner } from "../policy-types-CCiDRZBH.js";
2
- import { m as ApprovalStore } from "../types-B_tiYvk8.js";
3
- import { i as CatalogEventData, l as CloudEventType, r as CLOUD_EVENT_TYPES, s as CloudEvent } from "../sink-Dvi7YZG_.js";
4
- import { c as DeliveryTransport } from "../types-yUuPR5Hy.js";
5
- import { a as CloudConnectionOptions, c as CloudOptions, i as CloudClient, l as CloudSignerOptions, n as CloudCatalog, o as CloudEndpointOptions, r as CloudCatalogPush, s as CloudEndpoints, t as CloudApproverOptions } from "../types-AMJ5qoU_.js";
6
- import { n as ApprovalWaiter } from "../waiter-Bu9zAlE0.js";
7
- import { l as ReplayStore } from "../types-DjuMBNF9.js";
8
- import { f as WebhookVerifier, r as WebhookFailureCause$1, s as WebhookJwks } from "../standard-webhooks-C-qX4mJW.js";
1
+ import { Wt as Instant, an as CredentialEvent, cn as DeliveryEvent, fn as MembershipEvent, in as AutomationEvent, mt as TokenSigner, nn as AccessEvent, on as DecisionEvent, sn as DeliveryChannel, un as DirectoryEvent } from "../policy-types-DGIO_gxq.js";
2
+ import { m as ApprovalStore } from "../types-DLvhVm1r.js";
3
+ import { i as CatalogEventData, l as CloudEventType, r as CLOUD_EVENT_TYPES, s as CloudEvent } from "../sink-B5zoUW_O.js";
4
+ import { c as DeliveryTransport } from "../types-CN0LsqbK.js";
5
+ import { a as CloudConnectionOptions, c as CloudOptions, i as CloudClient, l as CloudSignerOptions, n as CloudCatalog, o as CloudEndpointOptions, r as CloudCatalogPush, s as CloudEndpoints, t as CloudApproverOptions } from "../types-BB-zWDcR.js";
6
+ import { n as ApprovalWaiter } from "../waiter-CqUKX6CY.js";
7
+ import { l as ReplayStore } from "../types-DsHGPtkR.js";
8
+ import { f as WebhookVerifier, r as WebhookFailureCause$1, s as WebhookJwks } from "../standard-webhooks-DOYEuOLx.js";
9
9
  //#region src/cloud/base-url.d.ts
10
10
  /**
11
11
  * The one base URL of PermDock Cloud. The platform issuer is this URL; its
@@ -41,7 +41,7 @@ const push = defineLeaf({
41
41
  },
42
42
  async run(ctx, { flags }) {
43
43
  const env = await withStdinSecret(ctx, "key", flags["key-stdin"], "PERMDOCK_CLOUD_KEY");
44
- return (await import("./push-DgssgzkK.js")).runCloud({
44
+ return (await import("./push-Dq_ca4-j.js")).runCloud({
45
45
  cwd: ctx.cwd,
46
46
  config: ctx.config,
47
47
  url: given(flags.url),
@@ -70,7 +70,7 @@ const pull = defineLeaf({
70
70
  },
71
71
  async run(ctx, { flags }) {
72
72
  const env = await withStdinSecret(ctx, "token", flags["token-stdin"], "PERMDOCK_CLOUD_TOKEN");
73
- return (await import("./pull-B65ndFNZ.js")).runCloudPull({
73
+ return (await import("./pull-DYbyod1f.js")).runCloudPull({
74
74
  cwd: ctx.cwd,
75
75
  config: ctx.config,
76
76
  url: given(flags.url),
@@ -7,7 +7,7 @@ const codemod = defineLeaf({
7
7
  description: "The release to migrate to (0.5)",
8
8
  required: true,
9
9
  async complete() {
10
- return (await import("./codemod-DWSN2erG.js")).codemodVersions();
10
+ return (await import("./codemod-DRl_w-bY.js")).codemodVersions();
11
11
  }
12
12
  }, {
13
13
  name: "paths",
@@ -22,7 +22,7 @@ const codemod = defineLeaf({
22
22
  }
23
23
  },
24
24
  async run(ctx, { flags, args, rest }) {
25
- return (await import("./codemod-DWSN2erG.js")).runCodemod({
25
+ return (await import("./codemod-DRl_w-bY.js")).runCodemod({
26
26
  cwd: ctx.cwd,
27
27
  version: args["version"],
28
28
  paths: rest,
@@ -1,7 +1,7 @@
1
1
  import { n as CliError } from "./errors-Vpu6rKHl.js";
2
2
  import { a as rel } from "./files-BSjrtIHw.js";
3
3
  import { t as beforeFirst } from "./text-BMFRfBqc.js";
4
- import { n as ROOT } from "./manifest-Cgiq5oqc.js";
4
+ import { n as ROOT } from "./manifest-B4ENCp2I.js";
5
5
  import { i as renameMessage, n as DEFAULT_CHANGES, r as flagRename, t as COMMAND_MOVES } from "./renames-CGj7YwcQ.js";
6
6
  import { i as refuseDirty, t as applyFiles } from "./files-B3AA05f1.js";
7
7
  import { readFileSync, readdirSync, statSync } from "node:fs";
@@ -0,0 +1 @@
1
+ export { r as runCollect } from "./collect-WCl8cJQV.js";
@@ -29,9 +29,9 @@ const collect = defineLeaf({
29
29
  };
30
30
  if (flags.watch) {
31
31
  if (flags.check) throw new CliError("usage", "collect: --watch writes the catalog; drop --check", { code: "invalid_value" });
32
- return (await import("./watch-DB42U1ib.js")).watchCollect(ctx, overrides);
32
+ return (await import("./watch-COuvly20.js")).watchCollect(ctx, overrides);
33
33
  }
34
- const result = await (await import("./collect-B5BL3klN.js")).runCollect({
34
+ const result = await (await import("./collect-D-eroIfV.js")).runCollect({
35
35
  cwd: ctx.cwd,
36
36
  config: ctx.config,
37
37
  collect: overrides,
@@ -2,7 +2,7 @@ import { a as describeError } from "./errors-Vpu6rKHl.js";
2
2
  import { a as rel, r as listSourceFiles, s as writeFileEnsuringDir, t as defaultSrcPath } from "./files-BSjrtIHw.js";
3
3
  import { n as catalogForCompare, o as formatCatalogJson, r as catalogForDrift, t as buildCatalog } from "./catalog-doc-DjMKzJp9.js";
4
4
  import { a as loadModule, i as loadConfiguredPolicy, r as leavesOf, s as pickNamed, t as asPermissionTree } from "./load-DjSU5KXO.js";
5
- import { t as loadConfiguredOperations } from "./catalog-operations-Dadrl7Z-.js";
5
+ import { t as loadConfiguredOperations } from "./catalog-operations-DeHTrJSV.js";
6
6
  import { t as catalogPath } from "./catalog-path-CnI0XTFK.js";
7
7
  import { t as shortDiff } from "./text-diff-BtfSmdUo.js";
8
8
  import { existsSync, readFileSync } from "node:fs";
@@ -1,3 +1,3 @@
1
1
  import { n as GraphSqlPart, r as RelationsMapping, t as GraphSql } from "../graph-sql-BwFC4Qjs.js";
2
- import { a as CompiledWhere, c as compileWhere, i as CompiledSql, l as escapeLike, n as CompiledCompare, o as MembershipTable, r as CompiledExists, s as MembershipsMapping, t as CompileWhereOptions } from "../compile-BFzysW3o.js";
2
+ import { a as CompiledWhere, c as compileWhere, i as CompiledSql, l as escapeLike, n as CompiledCompare, o as MembershipTable, r as CompiledExists, s as MembershipsMapping, t as CompileWhereOptions } from "../compile-BEklRUYo.js";
3
3
  export { type CompileWhereOptions, type CompiledCompare, type CompiledExists, type CompiledSql, type CompiledWhere, type GraphSql, type GraphSqlPart, type MembershipTable, type MembershipsMapping, type RelationsMapping, compileWhere, escapeLike };
@@ -1,6 +1,6 @@
1
- import { Rt as Instant, fn as Scope, lr as Subject, mr as Condition } from "./policy-types-CCiDRZBH.js";
1
+ import { Wt as Instant, br as Condition, hr as Subject, vn as Scope } from "./policy-types-DGIO_gxq.js";
2
2
  import { b as ResourceNode } from "./permission-types-CAY-GU7e.js";
3
- import { f as WhereResult } from "./permdock-B6Sf4T_S.js";
3
+ import { f as WhereResult } from "./permdock-CprAPN3w.js";
4
4
  import { r as RelationsMapping, t as GraphSql } from "./graph-sql-BwFC4Qjs.js";
5
5
  //#region src/conditions/compile.d.ts
6
6
  type MembershipTable = {
@@ -1,6 +1,6 @@
1
1
  import { n as CliError } from "./errors-Vpu6rKHl.js";
2
2
  import { a as suggestion, o as GLOBAL_FLAGS } from "./args-0FrVs5EH.js";
3
- import { a as resolve } from "./manifest-Cgiq5oqc.js";
3
+ import { a as resolve } from "./manifest-B4ENCp2I.js";
4
4
  import { t as defineLeaf } from "./command-L8EstFNm.js";
5
5
  //#region src/cli/core/completion.ts
6
6
  const SHELLS = [
@@ -1,6 +1,6 @@
1
1
  import { r as isRecord } from "./compact-CAf557ZB.js";
2
2
  import { i as configError, n as CliError } from "./errors-Vpu6rKHl.js";
3
- import { a as isSection, i as isModuleKey, n as MODULE_KEYS, o as kindOf, r as describeKinds, t as CONFIG_SHAPE } from "./config-shape-ykV0Vm2n.js";
3
+ import { a as isSection, i as isModuleKey, n as MODULE_KEYS, o as kindOf, r as describeKinds, t as CONFIG_SHAPE } from "./config-shape-tsxHx71E.js";
4
4
  import { existsSync } from "node:fs";
5
5
  import { relative, resolve } from "node:path";
6
6
  //#region src/cli/project/config-schema.ts
@@ -89,7 +89,7 @@ function hasModuleValue(raw) {
89
89
  return isRecord(raw) && Object.keys(MODULE_KEYS).some((key) => isRecord(raw[key]));
90
90
  }
91
91
  async function traceValues(cwd, file, display, config, options) {
92
- const { traceModuleValues } = await import("./module-values-BJTBdo6y.js");
92
+ const { traceModuleValues } = await import("./module-values-B1EVTkHP.js");
93
93
  return traceModuleValues({
94
94
  cwd,
95
95
  file,
@@ -10,7 +10,7 @@ const config = defineLeaf({
10
10
  ...failOnFlag
11
11
  },
12
12
  async run(ctx, { flags }) {
13
- const { runConfig } = await import("./config-report-BipSWA6V.js");
13
+ const { runConfig } = await import("./config-report-osnfUNg5.js");
14
14
  return runConfig({
15
15
  cwd: ctx.cwd,
16
16
  config: ctx.config,
@@ -1,9 +1,9 @@
1
1
  import { a as rel, t as defaultSrcPath } from "./files-BSjrtIHw.js";
2
2
  import { r as CONFIG_REPORT_SCHEMA } from "./version-DMQ0dnN5.js";
3
3
  import { t as catalogPath } from "./catalog-path-CnI0XTFK.js";
4
- import { n as guessPermissions, t as barrelFile } from "./collect-B7ZFAJU3.js";
5
- import "./sources-CMAM-2A3.js";
6
- import { t as DOCS_BASE } from "./manifest-Cgiq5oqc.js";
4
+ import { n as guessPermissions, t as barrelFile } from "./collect-WCl8cJQV.js";
5
+ import "./sources-C4vkzZJV.js";
6
+ import { t as DOCS_BASE } from "./manifest-B4ENCp2I.js";
7
7
  import { n as MIGRATION_DIRS, t as DEFAULT_SENSITIVE_ACTIONS } from "./constants-DcJABbLW.js";
8
8
  //#region src/cli/config-report.ts
9
9
  function configReport(input) {
@@ -81,7 +81,8 @@ const CONFIG_SHAPE = {
81
81
  out: STRING,
82
82
  resources: ARRAY,
83
83
  action: STRING,
84
- manifest: STRING
84
+ manifest: STRING,
85
+ tables: OBJECT
85
86
  },
86
87
  doctor: {
87
88
  sensitiveActions: ARRAY,
@@ -1,8 +1,8 @@
1
- import { T as Policy, j as PolicyVocabulary, sr as Principal } from "../policy-types-CCiDRZBH.js";
1
+ import { T as Policy, j as PolicyVocabulary, pr as Principal } from "../policy-types-DGIO_gxq.js";
2
2
  import { u as Permission } from "../permission-types-CAY-GU7e.js";
3
- import { a as PermDock } from "../permdock-B6Sf4T_S.js";
4
- import { a as ProblemDetails, r as PermDockDeniedError } from "../errors-zi_4T-rx.js";
5
- import { t as InstanceOptions } from "../instance-options-B0KXqTrJ.js";
3
+ import { a as PermDock } from "../permdock-CprAPN3w.js";
4
+ import { a as ProblemDetails, r as PermDockDeniedError } from "../errors-BIM4MFsJ.js";
5
+ import { t as InstanceOptions } from "../instance-options-CoHn-0e8.js";
6
6
  //#region src/convex/types.d.ts
7
7
  type ConvexContextLike = {
8
8
  readonly auth?: {
@@ -1,8 +1,8 @@
1
1
  import { t as compact } from "../compact-CAf557ZB.js";
2
2
  import { n as PermDockValidationError } from "../validation-error-CYg2kJEw.js";
3
3
  import { n as PermDockDeniedError, t as PermDockApprovalRequiredError } from "../errors-B6R_lg2a.js";
4
- import { l as withApp } from "../permdock-L-_I_3zP.js";
5
- import { n as resolveOrNull, t as buildInstance } from "../build-instance-CNWaYJyr.js";
4
+ import { l as withApp } from "../permdock-BvjivVb9.js";
5
+ import { n as resolveOrNull, t as buildInstance } from "../build-instance-BWXqwQYU.js";
6
6
  import { n as tenantScope, t as actorFrom } from "../adapter-context-CIQpQxbE.js";
7
7
  //#region src/convex/create.ts
8
8
  /**
@@ -1,6 +1,6 @@
1
- import { Ln as Decision, T as Policy, or as Membership, tr as CustomRole } from "./policy-types-CCiDRZBH.js";
1
+ import { T as Policy, Un as Decision, fr as Membership, sr as CustomRole } from "./policy-types-DGIO_gxq.js";
2
2
  import { u as Permission } from "./permission-types-CAY-GU7e.js";
3
- import { f as WhereResult, o as PermDockOptions } from "./permdock-B6Sf4T_S.js";
3
+ import { f as WhereResult, o as PermDockOptions } from "./permdock-CprAPN3w.js";
4
4
  //#region src/testing/policy-matrix.d.ts
5
5
  type MatrixOutcome = "granted" | "denied" | "approval-required";
6
6
  type MatrixCell = MatrixOutcome | {
@@ -1,10 +1,10 @@
1
- import { A as memoryCustomRoleSource } from "./src-DZ0l9UAg.js";
1
+ import { j as memoryCustomRoleSource } from "./src-C_pi2Rnh.js";
2
2
  import { c as listPermissions } from "./permission-registry-B8tYxPIt.js";
3
3
  import { f as scopeList } from "./scopes-0Up_UA2t.js";
4
- import { y as membershipsClaim } from "./evaluate-Dd8Ta0Ie.js";
4
+ import { y as membershipsClaim } from "./evaluate-BAmf_AQd.js";
5
5
  import { n as parseSnapshot } from "./snapshot-CXlzi69u.js";
6
6
  import { n as fromSnapshot } from "./from-snapshot-DCakWRsr.js";
7
- import { t as getPermDock } from "./permdock-L-_I_3zP.js";
7
+ import { t as getPermDock } from "./permdock-BvjivVb9.js";
8
8
  import { c as quoteSqlTable, n as defaultSqlCommand, o as quoteSqlIdent, t as SQL_IDENT } from "./sql-0WjxIp9g.js";
9
9
  import "./budget-BELja5A9.js";
10
10
  //#region src/testing/policy-matrix.ts
@@ -1,10 +1,10 @@
1
1
  import { t as compact } from "./compact-CAf557ZB.js";
2
2
  import { n as freezeDeep } from "./freeze-jjan0lCv.js";
3
3
  import { o as deniedFor } from "./where-scope-DlCdCM_8.js";
4
- import { l as withApp } from "./permdock-L-_I_3zP.js";
4
+ import { l as withApp } from "./permdock-BvjivVb9.js";
5
5
  import { t as composeWraps } from "./wrap-B2wziJI_.js";
6
- import { r as instanceOptions } from "./build-instance-CNWaYJyr.js";
7
- import { n as createAgentKernel } from "./kernel-C-fYydV2.js";
6
+ import { r as instanceOptions } from "./build-instance-BWXqwQYU.js";
7
+ import { n as createAgentKernel } from "./kernel-qv4cr9w8.js";
8
8
  //#region src/agent/create.ts
9
9
  function modelRow(modelId) {
10
10
  return { id: modelId };
@@ -3,13 +3,13 @@ import { n as freezeDeep } from "./freeze-jjan0lCv.js";
3
3
  import { n as problemDetails } from "./problem-details-CLDgX1KV.js";
4
4
  import { c as listPermissions } from "./permission-registry-B8tYxPIt.js";
5
5
  import { n as resourceRef } from "./resource-ref-CaS9yVPi.js";
6
- import { i as challengeScope, l as withApp } from "./permdock-L-_I_3zP.js";
6
+ import { i as challengeScope, l as withApp } from "./permdock-BvjivVb9.js";
7
7
  import { r as hasCredentials } from "./http-DKLXrFGk.js";
8
8
  import { a as decisionResponse, c as problemFromDecision, d as unauthenticatedProblem, s as notFoundProblem, t as ANONYMOUS } from "./problem-BVLHFK33.js";
9
- import { n as resolveOrNull } from "./build-instance-CNWaYJyr.js";
9
+ import { n as resolveOrNull } from "./build-instance-BWXqwQYU.js";
10
10
  import { _ as LOAD_FAILED, l as InvalidSignatureError, n as applyApprovalResume, o as evaluationsHandler } from "./evaluations-IBceAeKT.js";
11
11
  import { n as tenantScope, t as actorFrom } from "./adapter-context-CIQpQxbE.js";
12
- import { n as requestContext, t as buildReportingInstance } from "./request-context-C25ilqiJ.js";
12
+ import { n as requestContext, t as buildReportingInstance } from "./request-context-Duzdf0cd.js";
13
13
  //#region src/server/kernel-problems.ts
14
14
  const NOT_DELEGATED = freezeDeep({
15
15
  outcome: "denied",
@@ -170,6 +170,11 @@ async function resolveActor(request, options) {
170
170
  return (options.webBotAuth === void 0 ? void 0 : await options.webBotAuth.verify(request)) ?? actorFrom(options.actor, request);
171
171
  }
172
172
  const NO_TENANT = "\0";
173
+ const READ_METHODS = /* @__PURE__ */ new Set([
174
+ "GET",
175
+ "HEAD",
176
+ "OPTIONS"
177
+ ]);
173
178
  /**
174
179
  * The Fetch factory behind every HTTP adapter. The subject and actor are
175
180
  * resolved once per `Request`; one instance is cached per `(Request, tenant)`,
@@ -200,7 +205,17 @@ function createPermDock(policy, given) {
200
205
  return resolved;
201
206
  };
202
207
  const reporters = /* @__PURE__ */ new WeakMap();
203
- const instanceFor = async ({ user, actor, context, errors }, tenant) => {
208
+ const intentOf = (request) => {
209
+ let chosen;
210
+ try {
211
+ chosen = options.intent?.(request);
212
+ } catch {
213
+ return "write";
214
+ }
215
+ if (chosen === void 0) return READ_METHODS.has(request.method) ? "read" : "write";
216
+ return chosen === "read" ? "read" : "write";
217
+ };
218
+ const instanceFor = async ({ user, actor, context, errors }, tenant, intent) => {
204
219
  const built = await buildReportingInstance({
205
220
  policy,
206
221
  user,
@@ -208,7 +223,8 @@ function createPermDock(policy, given) {
208
223
  scope: {
209
224
  tenant,
210
225
  actor,
211
- context
226
+ context,
227
+ intent
212
228
  },
213
229
  errors,
214
230
  wrap: (created) => options.wrap === void 0 ? created : options.wrap(created)
@@ -231,7 +247,7 @@ function createPermDock(policy, given) {
231
247
  const key = tenant ?? NO_TENANT;
232
248
  const hit = byTenant.get(key);
233
249
  if (hit !== void 0) return hit;
234
- const built = (async () => instanceFor(await resolveSubject(request), tenant))();
250
+ const built = (async () => instanceFor(await resolveSubject(request), tenant, intentOf(request)))();
235
251
  byTenant.set(key, built);
236
252
  return built;
237
253
  };
@@ -239,7 +255,7 @@ function createPermDock(policy, given) {
239
255
  const { tenant } = scope ?? await tenantScope(options.tenant, request);
240
256
  return (await import("./connection-B72dg5Q2.js")).openConnection({
241
257
  open: async () => (await build(request, { tenant })).permdock,
242
- rebuild: async () => (await instanceFor(await freshSubject(request), tenant)).permdock,
258
+ rebuild: async () => (await instanceFor(await freshSubject(request), tenant, "write")).permdock,
243
259
  tenant,
244
260
  ...options.revocations === void 0 ? {} : { feed: options.revocations },
245
261
  adapter,
@@ -1,13 +1,13 @@
1
- import { Ln as Decision, T as Policy, j as PolicyVocabulary, lr as Subject, rr as Delegation, sr as Principal } from "./policy-types-CCiDRZBH.js";
1
+ import { T as Policy, Un as Decision, hr as Subject, j as PolicyVocabulary, lr as Delegation, pr as Principal } from "./policy-types-DGIO_gxq.js";
2
2
  import { u as Permission } from "./permission-types-CAY-GU7e.js";
3
3
  import { t as Operation } from "./operations-Ci_rT6Uo.js";
4
- import { a as PermDock } from "./permdock-B6Sf4T_S.js";
5
- import { m as ApprovalStore } from "./types-B_tiYvk8.js";
6
- import { t as InstanceOptions } from "./instance-options-B0KXqTrJ.js";
4
+ import { a as PermDock } from "./permdock-CprAPN3w.js";
5
+ import { m as ApprovalStore } from "./types-DLvhVm1r.js";
6
+ import { t as InstanceOptions } from "./instance-options-CoHn-0e8.js";
7
7
  import { t as RequestContext } from "./request-context-C2_1lchh.js";
8
- import { n as PermDockWrap } from "./wrap-DlJE3gS_.js";
9
- import { o as OtelWrap } from "./types-DHKPcqzr.js";
10
- import { t as DeniedText } from "./denied-text-CHNlVInN.js";
8
+ import { n as PermDockWrap } from "./wrap-DxXB54Wu.js";
9
+ import { o as OtelWrap } from "./types-B6ExllNo.js";
10
+ import { t as DeniedText } from "./denied-text-DHldhVUv.js";
11
11
  //#region src/agent/step-up.d.ts
12
12
  /**
13
13
  * What the user can do to lift a denial: authenticate again with the `acr` and
@@ -1,10 +1,10 @@
1
- import { Ln as Decision, Rn as Denial, Rt as Instant, T as Policy, Zt as AuthEvent, dt as TokenVerifier, j as PolicyVocabulary, sr as Principal, ut as TokenSigner } from "./policy-types-CCiDRZBH.js";
1
+ import { T as Policy, Un as Decision, Wn as Denial, Wt as Instant, ht as TokenVerifier, j as PolicyVocabulary, mt as TokenSigner, pr as Principal, rn as AuthEvent } from "./policy-types-DGIO_gxq.js";
2
2
  import { u as Permission } from "./permission-types-CAY-GU7e.js";
3
- import { _ as PrincipalSource, a as PermDock, n as DecideOptions, o as PermDockOptions } from "./permdock-B6Sf4T_S.js";
4
- import { m as ApprovalStore } from "./types-B_tiYvk8.js";
5
- import { a as AutomationSource } from "./automation-DqEoWHBc.js";
6
- import { n as ApprovalWaiter } from "./waiter-Bu9zAlE0.js";
7
- import { i as RunBinding, r as RunAutomation } from "./run-ticket-DbWI9f99.js";
3
+ import { _ as PrincipalSource, a as PermDock, n as DecideOptions, o as PermDockOptions } from "./permdock-CprAPN3w.js";
4
+ import { m as ApprovalStore } from "./types-DLvhVm1r.js";
5
+ import { a as AutomationSource } from "./automation-C6Jg75xq.js";
6
+ import { n as ApprovalWaiter } from "./waiter-CqUKX6CY.js";
7
+ import { c as RunResource, i as RunBinding, r as RunAutomation } from "./run-ticket-ylovhyFQ.js";
8
8
  //#region src/workflow/create.d.ts
9
9
  type WorkflowPermDockOptions = PermDockOptions & {
10
10
  /** Signs the run tickets `start` mints. */
@@ -47,6 +47,14 @@ type AutomationOptions = {
47
47
  /** The run id (`jti`); a fresh UUID when absent. */
48
48
  readonly id?: string;
49
49
  readonly binding?: RunBinding;
50
+ /**
51
+ * The record the run is bound to. The automation's permissions on
52
+ * `resource.type` then hold on that id only, through an
53
+ * `authorization_details` `identifier`; a check on another id, or with no
54
+ * row, denies. Its other permissions are unchanged. A type none of its
55
+ * permissions is on denies the start.
56
+ */
57
+ readonly resource?: RunResource;
50
58
  readonly now?: Instant;
51
59
  };
52
60
  type StartAutomationResult = {
@@ -55,6 +63,7 @@ type StartAutomationResult = {
55
63
  readonly run: {
56
64
  readonly id: string;
57
65
  readonly automation: RunAutomation;
66
+ readonly resource?: RunResource;
58
67
  };
59
68
  } | {
60
69
  readonly outcome: "denied";
@@ -1,9 +1,9 @@
1
- import { In as ApprovalRequiredDecision, T as Policy, Un as GrantedDecision, Vn as DeniedDecision, j as PolicyVocabulary, lr as Subject, sr as Principal } from "./policy-types-CCiDRZBH.js";
1
+ import { Hn as ApprovalRequiredDecision, T as Policy, Yn as GrantedDecision, hr as Subject, j as PolicyVocabulary, pr as Principal, qn as DeniedDecision } from "./policy-types-DGIO_gxq.js";
2
2
  import { t as Operation } from "./operations-Ci_rT6Uo.js";
3
- import { _ as PrincipalSource, a as PermDock, o as PermDockOptions } from "./permdock-B6Sf4T_S.js";
4
- import { m as ApprovalStore, p as ApprovalStatus } from "./types-B_tiYvk8.js";
3
+ import { _ as PrincipalSource, a as PermDock, o as PermDockOptions } from "./permdock-CprAPN3w.js";
4
+ import { m as ApprovalStore, p as ApprovalStatus } from "./types-DLvhVm1r.js";
5
5
  import { n as ApprovalErrorCode } from "./errors-CHwoRRpB.js";
6
- import { t as ApprovalPrompt } from "./approval-prompt-PYagyQUj.js";
6
+ import { t as ApprovalPrompt } from "./approval-prompt-3BqWczTt.js";
7
7
  //#region src/chat/subject.d.ts
8
8
  /**
9
9
  * The platform user behind a chat message or action. Fill it only from an event
@@ -1,5 +1,5 @@
1
- import { an as EmailCategory, rn as DeliveryFailureCause, tn as DeliveryChannel } from "../policy-types-CCiDRZBH.js";
2
- import { i as approvalUrlFor, n as ApprovalUrl, r as approvalPrompt, t as ApprovalPrompt } from "../approval-prompt-PYagyQUj.js";
3
- import { _ as TransportOptions, a as DeliveryReport, c as DeliveryTransport, d as EmailTransport, f as EmailUnsubscribe, g as TransportMessages, h as TransportItem, i as DeliveryMessages, l as DeliveryTransports, m as Recipient, n as ChatTransport, o as DeliveryResult, p as OutgoingEmail, r as DeliverOptions, s as DeliveryTarget, t as ChatMessage, u as EmailMessage, v as WebhookMessage, y as WebhookTransport } from "../types-yUuPR5Hy.js";
4
- import { C as audience, S as SubscriberEvent, _ as ParseConnectorResult, a as DeliveryPermDock, b as Audience, c as MemoryDelivery, d as memoryDeliveryTransport, f as CONNECTOR_SCHEMA, g as ConnectorKind, h as ConnectorIssue, i as isDeliveryTarget, l as MemoryDeliveryTransport, m as Connector, n as webhookTransport, o as DeliveryPermDockOptions, p as CONNECTOR_KINDS, r as isAddrSpec, s as createPermDock, t as WebhookTransportOptions, u as MemoryDeliveryTransportOptions, v as SiemDestination, w as subscribersFor, x as AudienceOptions, y as parseConnector } from "../index-Bv5iXPqU.js";
1
+ import { dn as EmailCategory, ln as DeliveryFailureCause, sn as DeliveryChannel } from "../policy-types-DGIO_gxq.js";
2
+ import { i as approvalUrlFor, n as ApprovalUrl, r as approvalPrompt, t as ApprovalPrompt } from "../approval-prompt-3BqWczTt.js";
3
+ import { _ as TransportOptions, a as DeliveryReport, c as DeliveryTransport, d as EmailTransport, f as EmailUnsubscribe, g as TransportMessages, h as TransportItem, i as DeliveryMessages, l as DeliveryTransports, m as Recipient, n as ChatTransport, o as DeliveryResult, p as OutgoingEmail, r as DeliverOptions, s as DeliveryTarget, t as ChatMessage, u as EmailMessage, v as WebhookMessage, y as WebhookTransport } from "../types-CN0LsqbK.js";
4
+ import { C as audience, S as SubscriberEvent, _ as ParseConnectorResult, a as DeliveryPermDock, b as Audience, c as MemoryDelivery, d as memoryDeliveryTransport, f as CONNECTOR_SCHEMA, g as ConnectorKind, h as ConnectorIssue, i as isDeliveryTarget, l as MemoryDeliveryTransport, m as Connector, n as webhookTransport, o as DeliveryPermDockOptions, p as CONNECTOR_KINDS, r as isAddrSpec, s as createPermDock, t as WebhookTransportOptions, u as MemoryDeliveryTransportOptions, v as SiemDestination, w as subscribersFor, x as AudienceOptions, y as parseConnector } from "../index-ymept53A.js";
5
5
  export { type ApprovalPrompt, type ApprovalUrl, type Audience, type AudienceOptions, CONNECTOR_KINDS, CONNECTOR_SCHEMA, type ChatMessage, type ChatTransport, type Connector, type ConnectorIssue, type ConnectorKind, type DeliverOptions, type DeliveryChannel, type DeliveryFailureCause, type DeliveryMessages, type DeliveryPermDock, type DeliveryPermDockOptions, type DeliveryReport, type DeliveryResult, type DeliveryTarget, type DeliveryTransport, type DeliveryTransports, type EmailCategory, type EmailMessage, type EmailTransport, type EmailUnsubscribe, type MemoryDelivery, type MemoryDeliveryTransport, type MemoryDeliveryTransportOptions, type OutgoingEmail, type ParseConnectorResult, type Recipient, type SiemDestination, type SubscriberEvent, type TransportItem, type TransportMessages, type TransportOptions, type WebhookMessage, type WebhookTransport, type WebhookTransportOptions, approvalPrompt, approvalUrlFor, audience, createPermDock, isAddrSpec, isDeliveryTarget, memoryDeliveryTransport, parseConnector, subscribersFor, webhookTransport };
@@ -1,5 +1,5 @@
1
1
  import { n as approvalUrlFor, t as approvalPrompt } from "../approval-prompt-B8hQY69x.js";
2
- import { n as subscribersFor, t as audience } from "../audience-BAkBDMqn.js";
2
+ import { n as subscribersFor, t as audience } from "../audience-DTjR8xet.js";
3
3
  import { t as CONNECTOR_SCHEMA } from "../connector-schema-CYLQNMYq.js";
4
4
  import { a as parseConnector, i as CONNECTOR_KINDS, n as createPermDock, r as memoryDeliveryTransport, t as webhookTransport } from "../delivery-BupfvJIV.js";
5
5
  import { i as isDeliveryTarget, n as isAddrSpec } from "../target-qdEAnnhU.js";
@@ -1,4 +1,4 @@
1
- import { Ln as Decision } from "./policy-types-CCiDRZBH.js";
1
+ import { Un as Decision } from "./policy-types-DGIO_gxq.js";
2
2
  import { u as Permission } from "./permission-types-CAY-GU7e.js";
3
3
  //#region src/agent/denied-text.d.ts
4
4
  /**
@@ -1,4 +1,4 @@
1
- import { Bn as DenialReason, Ln as Decision, Vn as DeniedDecision } from "./policy-types-CCiDRZBH.js";
1
+ import { Kn as DenialReason, Un as Decision, qn as DeniedDecision } from "./policy-types-DGIO_gxq.js";
2
2
  import { u as Permission } from "./permission-types-CAY-GU7e.js";
3
3
  //#region src/core/describe.d.ts
4
4
  type DecisionDescription = {