permdock 0.7.0 → 0.9.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 (483) hide show
  1. package/README.md +1 -3
  2. package/dist/a2a/index.d.ts +7 -7
  3. package/dist/a2a/index.js +8 -8
  4. package/dist/action-result-BcudBQOF.d.ts +19 -0
  5. package/dist/{adapter-context-CRhqyzCk.js → adapter-context-CIQpQxbE.js} +8 -2
  6. package/dist/{adoption-scan-D-feE7BE.js → adoption-scan-Ch07MdxN.js} +5 -5
  7. package/dist/agent/index.d.ts +2 -2
  8. package/dist/agent/index.js +1 -1
  9. package/dist/ai-sdk/index.d.ts +19 -13
  10. package/dist/ai-sdk/index.js +6 -6
  11. package/dist/{app-data-MuyzVqX8.js → app-data-UNNm07jV.js} +10 -7
  12. package/dist/{approval-header-CJACtHkv.js → approval-header-8QV6MU4H.js} +6 -3
  13. package/dist/{approval-prompt-K0faOLFp.d.ts → approval-prompt-3BqWczTt.d.ts} +13 -11
  14. package/dist/{approval-prompt-Dg5LeAcT.js → approval-prompt-B8hQY69x.js} +5 -6
  15. package/dist/approvals/index.d.ts +4 -4
  16. package/dist/approvals/index.js +6 -6
  17. package/dist/{approvals-CMRfsbBh.js → approvals-DnIBTuXE.js} +66 -42
  18. package/dist/{approvers-CqPOLD-o.js → approvers-B4r0N_Uz.js} +8 -2
  19. package/dist/{arazzo-ClrF3PVb.js → arazzo-BpS7LnV0.js} +2 -2
  20. package/dist/{arazzo-rdeJ8n1J.js → arazzo-CmQaGPkM.js} +6 -6
  21. package/dist/{args-CC3OwyHW.js → args-0FrVs5EH.js} +14 -7
  22. package/dist/astro/index.d.ts +30 -12
  23. package/dist/astro/index.js +2 -2
  24. package/dist/{audience-BrMs8c4o.js → audience-DTjR8xet.js} +8 -8
  25. package/dist/{auth-CscUX8Sy.js → auth--yPyZNgr.js} +19 -7
  26. package/dist/authzen/index.d.ts +34 -28
  27. package/dist/authzen/index.js +23 -20
  28. package/dist/{automation-DOtAFWdy.d.ts → automation-C6Jg75xq.d.ts} +42 -32
  29. package/dist/{automation-ySsxp_Yp.js → automation-x3KEUusw.js} +22 -21
  30. package/dist/better-auth/index.d.ts +2 -2
  31. package/dist/better-auth/index.js +13 -7
  32. package/dist/better-supabase/index.d.ts +357 -227
  33. package/dist/better-supabase/index.js +219 -140
  34. package/dist/{bind-D1nO6fiC.js → bind-BNQA9JK9.js} +26 -10
  35. package/dist/{bind-JDuvxjuW.d.ts → bind-YYjvfpB9.d.ts} +32 -12
  36. package/dist/{body-CH5of8Ne.js → body-CJQwYVa8.js} +3 -3
  37. package/dist/{body-text-QcXok_SI.js → body-text-DQhcmqdY.js} +8 -4
  38. package/dist/{boundary-BM8a_P6E.js → boundary-BV3O1eud.js} +8 -2
  39. package/dist/{boundary-BmHxVH1J.d.ts → boundary-C9ck-3uK.d.ts} +13 -4
  40. package/dist/{budget-NbEtbJC_.js → budget-BELja5A9.js} +6 -3
  41. package/dist/{budget-JqcRqyhK.d.ts → budget-hYsPz_yE.d.ts} +6 -3
  42. package/dist/{build-instance-DxE7czo9.js → build-instance-BWXqwQYU.js} +3 -3
  43. package/dist/{capability-L7NnfhiE.js → capability-BqX94r07.js} +31 -25
  44. package/dist/{capability-D4UC9TTW.d.ts → capability-Di9tiUvi.d.ts} +41 -29
  45. package/dist/{casbin-BHijLuHY.js → casbin-B7_yS-oo.js} +2 -2
  46. package/dist/{casbin-BW9pS47J.js → casbin-bHyIxTNQ.js} +16 -8
  47. package/dist/{casl-CmJlgziS.js → casl-C4OINZHI.js} +2 -2
  48. package/dist/{casl-UbI8v-Wq.js → casl-CHHoCldP.js} +19 -10
  49. package/dist/catalog/index.d.ts +51 -30
  50. package/dist/catalog/index.js +18 -15
  51. package/dist/{catalog-D69WhFii.js → catalog-CGlSwU6j.js} +20 -19
  52. package/dist/catalog-D3oS2GH3.js +1 -0
  53. package/dist/{catalog-BaMQfQ6Y.js → catalog-amPDr0JQ.js} +3 -3
  54. package/dist/{catalog-doc-CV9s6B1S.js → catalog-doc-DjMKzJp9.js} +28 -14
  55. package/dist/{catalog-fingerprint-C144oW4M.js → catalog-fingerprint-e6aCWosn.js} +18 -14
  56. package/dist/catalog-operations-DeHTrJSV.js +60 -0
  57. package/dist/{challenge-nGWma08S.js → challenge-DImNcR7B.js} +48 -27
  58. package/dist/chat/index.d.ts +1 -1
  59. package/dist/chat/index.js +13 -10
  60. package/dist/chat-sdk/index.d.ts +44 -26
  61. package/dist/chat-sdk/index.js +17 -17
  62. package/dist/{checks-BC_0mPIq.js → checks-CGkP3Z7A.js} +4 -1
  63. package/dist/{claims-map-7oQ3ue4X.js → claims-map-CKkoAAYF.js} +5 -2
  64. package/dist/{claims-map-Ca-QX8C6.d.ts → claims-map-D1Pb5oRq.d.ts} +8 -5
  65. package/dist/claude-agent/index.d.ts +6 -6
  66. package/dist/claude-agent/index.js +6 -3
  67. package/dist/clerk/index.d.ts +11 -7
  68. package/dist/clerk/index.js +6 -6
  69. package/dist/cli/bin.js +4 -4
  70. package/dist/cli/index.d.ts +82 -7
  71. package/dist/cli/index.js +6 -6
  72. package/dist/{clients-C7zLFuWT.d.ts → clients-C_NOET3z.d.ts} +5 -5
  73. package/dist/{clients-DjU5ABMy.js → clients-DYr3U86j.js} +3 -3
  74. package/dist/cloud/index.d.ts +84 -52
  75. package/dist/cloud/index.js +53 -39
  76. package/dist/{cloud-CO8pYtwr.js → cloud-3kWfjnYy.js} +4 -5
  77. package/dist/{codemod-BP6n8N9L.js → codemod-Bv5i-Mzo.js} +523 -201
  78. package/dist/{codemod-i4N2BhDc.js → codemod-D9Aiii1r.js} +3 -4
  79. package/dist/{collect-DNm3oKOk.js → collect-B80GYEot.js} +4 -5
  80. package/dist/collect-D-eroIfV.js +1 -0
  81. package/dist/{collect-BaWeMjwV.js → collect-WCl8cJQV.js} +26 -63
  82. package/dist/{compare-pfyVnBjE.js → compare-DTfyUunF.js} +2 -2
  83. package/dist/compile/index.d.ts +2 -2
  84. package/dist/compile/index.js +1 -1
  85. package/dist/{compile-COM2VKuN.d.ts → compile-BEklRUYo.d.ts} +36 -12
  86. package/dist/{compile-BAEO5bOk.js → compile-EzEMB-7v.js} +77 -33
  87. package/dist/{completion-BNdVf7X2.js → completion-_bc0OUQ-.js} +17 -8
  88. package/dist/config-BwPBfN0t.js +108 -0
  89. package/dist/{config-DGZzMV1B.js → config-D5XrLWpk.js} +2 -2
  90. package/dist/{config-report-Cm7UITNA.js → config-report-BmWIskD7.js} +9 -6
  91. package/dist/config-shape-ykV0Vm2n.js +134 -0
  92. package/dist/{connection-DjhIJSs2.js → connection-B72dg5Q2.js} +23 -22
  93. package/dist/{connector-schema-_VCSsdtD.js → connector-schema-CYLQNMYq.js} +3 -2
  94. package/dist/{context--uM9V3Ui.js → context-BnIzxTNE.js} +4 -3
  95. package/dist/convex/index.d.ts +13 -7
  96. package/dist/convex/index.js +9 -6
  97. package/dist/{core-CQkE8Esr.d.ts → core-CFepFiDP.d.ts} +49 -22
  98. package/dist/{core-B5-w6Kw9.js → core-DzVINFbU.js} +26 -20
  99. package/dist/{create-Cb86Z8Im.js → create-6EwRQlig.js} +10 -7
  100. package/dist/{create-DJrlhEp9.js → create-BLPKnJKa.js} +35 -25
  101. package/dist/{create-UTnUVETj.d.ts → create-BPUopdfL.d.ts} +70 -37
  102. package/dist/{create-QHuuPw3q.d.ts → create-BamXmeob.d.ts} +37 -29
  103. package/dist/{create-B2-CQqCI.d.ts → create-DBvUsgzK.d.ts} +49 -28
  104. package/dist/{credential-CIM7wHwA.js → credential-CyyyvCsL.js} +41 -38
  105. package/dist/{credentials-BpuTwd7a.js → credentials-CdDxp7jN.js} +6 -6
  106. package/dist/{deciding-columns-DRo2QM6E.js → deciding-columns-NB4wcyBf.js} +2 -2
  107. package/dist/{delegation-C5rOdTp5.js → delegation-CDB6_keF.js} +31 -22
  108. package/dist/delivery/index.d.ts +4 -4
  109. package/dist/delivery/index.js +5 -5
  110. package/dist/{delivery-rwOKLWRm.js → delivery-BupfvJIV.js} +34 -22
  111. package/dist/{delivery-event-xX4obB8F.js → delivery-event-JioK5YbS.js} +6 -6
  112. package/dist/denied-text-DHldhVUv.d.ts +22 -0
  113. package/dist/{describe-DZlnEtLy.js → describe-Bb4hGK5d.js} +5 -5
  114. package/dist/{describe-O0SwYIK8.d.ts → describe-BbFPBSms.d.ts} +5 -5
  115. package/dist/{device-BARQ8eYG.js → device-BwbJNmb2.js} +11 -8
  116. package/dist/{diff-Btr1c1Ow.js → diff-BwR1JdP2.js} +2 -2
  117. package/dist/{diff-DzT-xD13.js → diff-CQegtBAo.js} +22 -13
  118. package/dist/{digest-B3kc_PgQ.d.ts → digest-8Yx2CchM.d.ts} +3 -3
  119. package/dist/{doctor-BU1szn63.js → doctor-ClRVAtXQ.js} +287 -135
  120. package/dist/{doctor-BoK_y0KO.js → doctor-LPMYjSqO.js} +4 -4
  121. package/dist/drizzle/index.d.ts +33 -19
  122. package/dist/drizzle/index.js +17 -9
  123. package/dist/elysia/index.d.ts +17 -11
  124. package/dist/elysia/index.js +5 -5
  125. package/dist/{errors-BKy0EfhN.js → errors-B6R_lg2a.js} +13 -4
  126. package/dist/{errors-B_Qg9D3e.d.ts → errors-BIM4MFsJ.d.ts} +22 -6
  127. package/dist/{errors-BWXBMaKK.d.ts → errors-CHwoRRpB.d.ts} +4 -1
  128. package/dist/{errors-DpP_U6Bf.js → errors-Vpu6rKHl.js} +13 -10
  129. package/dist/{evaluate-B_oqFbWC.js → evaluate-BAmf_AQd.js} +153 -82
  130. package/dist/{evaluations-BCddEOfO.d.ts → evaluations-DOWuBpWv.d.ts} +11 -5
  131. package/dist/{evaluations-DReoiVBw.js → evaluations-IBceAeKT.js} +40 -19
  132. package/dist/eve/index.d.ts +9 -6
  133. package/dist/eve/index.js +4 -4
  134. package/dist/{event-time-CsegxXxB.js → event-time-BGy48400.js} +8 -4
  135. package/dist/{expiry-D4_YKRKD.js → expiry-6XByK0dm.js} +8 -5
  136. package/dist/express/index.d.ts +9 -6
  137. package/dist/express/index.js +9 -6
  138. package/dist/fastify/index.d.ts +16 -10
  139. package/dist/fastify/index.js +8 -5
  140. package/dist/{fetch-adapter-CuhyYwC1.d.ts → fetch-adapter-BIbBAtPZ.d.ts} +9 -6
  141. package/dist/{fetch-adapter-De-u6vhJ.js → fetch-adapter-dPTgJVHd.js} +14 -11
  142. package/dist/fields-D0vUI6dq.js +498 -0
  143. package/dist/{files-acUbNwWt.js → files-B3AA05f1.js} +8 -5
  144. package/dist/{files-D_JIzUrP.js → files-BSjrtIHw.js} +11 -4
  145. package/dist/{fixtures-BTMW6zgU.js → fixtures-A1_sp_tR.js} +15 -6
  146. package/dist/{flags-aaeRAdiD.js → flags-DXjoTVbS.js} +2 -2
  147. package/dist/{freeze-CrU8nQeX.js → freeze-jjan0lCv.js} +4 -1
  148. package/dist/{from-snapshot-Bz469dIh.js → from-snapshot-DCakWRsr.js} +18 -15
  149. package/dist/gen-BFfzZSLH.js +58 -0
  150. package/dist/gen-BtfFWGbz.js +827 -0
  151. package/dist/{generate-3FNO5P5Q.js → generate-CRVV5V7l.js} +14 -8
  152. package/dist/generate-CezbCaTI.js +275 -0
  153. package/dist/{grantee-BrRANrpT.js → grantee-Dke-9rd1.js} +4 -4
  154. package/dist/{grantee-conditions-C6P1Tvol.js → grantee-conditions-BrYPe-w0.js} +12 -12
  155. package/dist/{grantee-match-0RtHWQDx.js → grantee-match-7RZZvoT_.js} +12 -6
  156. package/dist/{graph-sql-B-dsAT6j.d.ts → graph-sql-BwFC4Qjs.d.ts} +3 -3
  157. package/dist/h3/index.d.ts +10 -7
  158. package/dist/h3/index.js +3 -3
  159. package/dist/headers-B9jQxjtW.d.ts +10 -0
  160. package/dist/{helpers-DY3vXuGs.js → helpers-DJicaG6f.js} +40 -28
  161. package/dist/hono/index.d.ts +16 -10
  162. package/dist/hono/index.js +5 -5
  163. package/dist/{hosted-XBgU6RGT.js → hosted-D0IzESu_.js} +42 -21
  164. package/dist/{hosted-BmjzxQhp.d.ts → hosted-DVxlLZMe.d.ts} +33 -21
  165. package/dist/{http-ujKm0JXE.js → http-DH94eh6f.js} +4 -4
  166. package/dist/{http-BBoKefeS.js → http-DKLXrFGk.js} +13 -7
  167. package/dist/{http-Ca3Sr5x1.js → http-DOL33cO0.js} +11 -8
  168. package/dist/{import-DB2EG_iy.js → import-ACkOrv6g.js} +6 -6
  169. package/dist/{import-Bz0GefWg.js → import-CST57XLp.js} +64 -51
  170. package/dist/{index-CMiPH2Tv.d.ts → index-BinlXeU-.d.ts} +64 -37
  171. package/dist/{index-BSfRl0hZ.d.ts → index-CV-7DWeD.d.ts} +64 -52
  172. package/dist/{index-BE8y3moU.d.ts → index-DJwEgYzA.d.ts} +127 -82
  173. package/dist/{index-DH9DUDEM.d.ts → index-Dj2qF9VC.d.ts} +54 -30
  174. package/dist/{index-BTkwrK7v.d.ts → index-vYjMrXyK.d.ts} +336 -173
  175. package/dist/{index-DLwcuCN_.d.ts → index-ymept53A.d.ts} +51 -30
  176. package/dist/index.d.ts +22 -22
  177. package/dist/index.js +34 -34
  178. package/dist/{init-B-4t1NzC.js → init-BjuFDYT1.js} +10 -10
  179. package/dist/{init-5TXNji88.js → init-txYTuW9u.js} +5 -5
  180. package/dist/{instance-options-CU0YQCLH.d.ts → instance-options-CoHn-0e8.d.ts} +4 -4
  181. package/dist/{instance-snapshot-CjcwnEiV.js → instance-snapshot-DuWf1cT3.js} +86 -61
  182. package/dist/{instant-BluqDvyS.js → instant-DK3Iz83e.js} +2 -2
  183. package/dist/{internals-Dk8A8fX3.js → internals-B3IgHrvo.js} +6 -3
  184. package/dist/{json-schema-B-vAwlde.js → json-schema-BPGa-RjQ.js} +9 -3
  185. package/dist/{json-schema-CN_iLFH2.d.ts → json-schema-BfXgnRNT.d.ts} +4 -4
  186. package/dist/jwt/index.d.ts +57 -27
  187. package/dist/jwt/index.js +24 -21
  188. package/dist/{kernel-DVExUwkp.js → kernel-qv4cr9w8.js} +32 -23
  189. package/dist/kysely/index.d.ts +49 -33
  190. package/dist/kysely/index.js +9 -7
  191. package/dist/{live-options-BaAFCIiu.js → live-options-BBIT68le.js} +2 -2
  192. package/dist/{load-DxroEzH1.js → load-DjSU5KXO.js} +6 -6
  193. package/dist/load-Dm0pSYH3.js +1 -0
  194. package/dist/{login-ClSJh5t5.js → login-CfImTJGb.js} +4 -4
  195. package/dist/{login-WC9HPJpU.js → login-CgfCTO3F.js} +16 -9
  196. package/dist/{manifest-Dv6q4i5s.js → manifest-B2QPh19C.js} +49 -38
  197. package/dist/{manifest-BVhExYhw.d.ts → manifest-CzzWtnAb.d.ts} +126 -31
  198. package/dist/{manifest-schema-Cv492Qev.js → manifest-schema-2r37XRhD.js} +44 -3
  199. package/dist/{manifest-B79YuF2T.js → manifest-wg8WkkpD.js} +6 -6
  200. package/dist/{map-claims-etGIS_Dv.js → map-claims-C-nv08_n.js} +16 -9
  201. package/dist/{map-error-BQGyDm_M.js → map-error-pasIGqMT.js} +7 -7
  202. package/dist/{markers-C6joDI3o.js → markers-BeHZ4x9Q.js} +20 -5
  203. package/dist/mcp/index.d.ts +114 -61
  204. package/dist/mcp/index.js +70 -40
  205. package/dist/{migrate-Dodel0IJ.js → migrate-B7oP_sQU.js} +35 -17
  206. package/dist/module-values-BJTBdo6y.js +107 -0
  207. package/dist/nest/index.d.ts +23 -13
  208. package/dist/nest/index.js +18 -11
  209. package/dist/next/client.d.ts +5 -2
  210. package/dist/next/client.js +1 -1
  211. package/dist/next/index.d.ts +79 -26
  212. package/dist/next/index.js +121 -10
  213. package/dist/next/plugin.d.ts +1 -1
  214. package/dist/next/plugin.js +4 -3
  215. package/dist/node/index.d.ts +5 -5
  216. package/dist/node/index.js +3 -3
  217. package/dist/{ocsf-BFp-PZZA.js → ocsf-TcjRBgIs.js} +15 -5
  218. package/dist/openai/index.d.ts +13 -7
  219. package/dist/openai/index.js +3 -3
  220. package/dist/openapi/index.d.ts +51 -30
  221. package/dist/openapi/index.js +2 -2
  222. package/dist/{openapi-ztVaux6j.js → openapi-BGeuunWC.js} +23 -14
  223. package/dist/{openapi-DMocl1bh.js → openapi-BIpw3Mb7.js} +4 -5
  224. package/dist/{openapi-Ddb4628T.js → openapi-BOsx0xn9.js} +33 -18
  225. package/dist/{operation-findings-kRcEp8lE.js → operation-findings-CXtFzlKJ.js} +3 -3
  226. package/dist/{operations-BNLes61x.d.ts → operations-Ci_rT6Uo.d.ts} +10 -7
  227. package/dist/orpc/index.d.ts +68 -14
  228. package/dist/orpc/index.js +62 -13
  229. package/dist/otel/index.d.ts +7 -4
  230. package/dist/otel/index.js +8 -5
  231. package/dist/{output-DgSDLrta.js → output-DV5dwOTs.js} +9 -5
  232. package/dist/output-files-BHOIlrfD.js +1 -0
  233. package/dist/{output-files-CCMdcFWb.js → output-files-BIQ_9pIs.js} +29 -17
  234. package/dist/ownership-DA5YdYTm.js +1059 -0
  235. package/dist/{parse-Ddhz2xf4.js → parse-1_ZheTW5.js} +16 -13
  236. package/dist/parse-local-manifest-CCmbhnxP.d.ts +10 -0
  237. package/dist/{parse-local-manifest-T1Q8X3A2.js → parse-local-manifest-DEiCF4ah.js} +19 -7
  238. package/dist/{parse-request-D_tUXG6M.js → parse-request-CwCZpyjV.js} +7 -8
  239. package/dist/{paths-DXSHAMIa.js → paths-CUvURzHp.js} +4 -1
  240. package/dist/pdp/index.d.ts +9 -6
  241. package/dist/pdp/index.js +20 -13
  242. package/dist/{peer-DOzzMfZL.js → peer-C9LvBCcb.js} +1 -1
  243. package/dist/{peer-12Q5I_RH.js → peer-Q0fuZ6hx.js} +9 -3
  244. package/dist/{permdock-BfWEeMqk.js → permdock-BvjivVb9.js} +200 -140
  245. package/dist/{permdock-Dco6dyCK.d.ts → permdock-CprAPN3w.d.ts} +260 -129
  246. package/dist/{permission-registry-DpPtSKNZ.js → permission-registry-B8tYxPIt.js} +23 -10
  247. package/dist/{permission-types-DhNEmoRG.d.ts → permission-types-CAY-GU7e.d.ts} +127 -41
  248. package/dist/{permissions-CoqCOfJ3.d.ts → permissions-Bx6UI8n1.d.ts} +6 -3
  249. package/dist/{permissions-CyH2MV_B.js → permissions-CVXmRILq.js} +3 -3
  250. package/dist/{permissions-DArULThq.js → permissions-CYcHj_w7.js} +8 -5
  251. package/dist/pg-DQTqRrou.js +60 -0
  252. package/dist/{pins-8ILTftC9.js → pins-nqarl3oE.js} +4 -1
  253. package/dist/{pkce-5h8NgMQJ.js → pkce-CnmmYqUZ.js} +1 -1
  254. package/dist/{policy-B7dg_yzu.d.ts → policy-BycVKnXv.d.ts} +5 -5
  255. package/dist/{policy-DaJy4nK4.js → policy-CLQ8__GF.js} +43 -23
  256. package/dist/{policy-from-catalog-DFWYkNdu.js → policy-from-catalog-CU3An8uP.js} +28 -25
  257. package/dist/{policy-module-CTlwMvLI.js → policy-module-xym9fnSq.js} +12 -6
  258. package/dist/{policy-types-B-F-qAZk.d.ts → policy-types-DGIO_gxq.d.ts} +782 -357
  259. package/dist/{postgres-store-BL9M_CA1.js → postgres-store-DcyrPS-r.js} +43 -16
  260. package/dist/{postgrest-r5faDIzD.js → postgrest-5Dr3W64L.js} +84 -86
  261. package/dist/{postgrest-CYacM_u7.d.ts → postgrest-D5nUGm-c.d.ts} +55 -35
  262. package/dist/powersync-B701tvhE.js +1 -0
  263. package/dist/{powersync-13odBwiM.js → powersync-Bg8u-JcR.js} +3 -3
  264. package/dist/{powersync-53ryOZip.js → powersync-CJrT1DSc.js} +127 -69
  265. package/dist/preset/index.d.ts +38 -28
  266. package/dist/preset/index.js +1 -1
  267. package/dist/{preset-CHTbd-DQ.js → preset-BjLzeFpp.js} +56 -32
  268. package/dist/{principal-source-pHneukrx.js → principal-source-C6N60GtM.js} +10 -10
  269. package/dist/prisma/index.d.ts +69 -41
  270. package/dist/prisma/index.js +21 -17
  271. package/dist/{problem-CTviyH5L.js → problem-BVLHFK33.js} +41 -21
  272. package/dist/{problem-details-cn5X30gZ.js → problem-details-CLDgX1KV.js} +13 -4
  273. package/dist/{problem-types-CJ2325SZ.js → problem-types-DSsRfONQ.js} +4 -1
  274. package/dist/{prompt-DwtVemER.js → prompt-BYc6drYW.js} +4 -1
  275. package/dist/protected-action-D8x73IGm.d.ts +58 -0
  276. package/dist/protected-action-DUYqb-Ma.js +80 -0
  277. package/dist/{protected-DXE3cQYg.js → protected-action-QEA8arRB.js} +48 -14
  278. package/dist/{provider-BQsTYYy0.js → provider-C55OGXJ7.js} +5 -4
  279. package/dist/{provider-Csk-THAn.d.ts → provider-DfLeek9O.d.ts} +1 -1
  280. package/dist/{provider-store-IgqQipCO.js → provider-store-CaTv00tr.js} +13 -9
  281. package/dist/{pull-CN5OLxrF.js → pull-2nJr0qg_.js} +12 -11
  282. package/dist/pull-C3EEGzSw.js +1 -0
  283. package/dist/{push-tVdG8dUL.js → push-Bn-lMEmI.js} +19 -13
  284. package/dist/{pushed-policy-CmYeSQqq.js → pushed-policy-CDuOL2de.js} +10 -7
  285. package/dist/{pushed-policy-BbcY9r_4.d.ts → pushed-policy-CryQheKq.d.ts} +12 -6
  286. package/dist/react/index.d.ts +9 -8
  287. package/dist/react/index.js +7 -6
  288. package/dist/react/provider-client.d.ts +1 -1
  289. package/dist/react/provider-client.js +1 -1
  290. package/dist/react-native/index.d.ts +94 -55
  291. package/dist/react-native/index.js +200 -61
  292. package/dist/{refs-CNJBiTFo.js → refs-C8BKxc_e.js} +2 -2
  293. package/dist/{relation-walk-3OyDBF0S.js → relation-walk-DK_gkgL7.js} +12 -9
  294. package/dist/{relations-BnCWnJGI.js → relations-BxvRvDHK.js} +3 -3
  295. package/dist/{replay-Du1tJjG7.js → replay-BU09ad4L.js} +1 -1
  296. package/dist/{replay-DCDD_ZfL.d.ts → replay-Bs9Df2fQ.d.ts} +1 -1
  297. package/dist/{request-context-BykKLmyE.js → request-context-Duzdf0cd.js} +8 -8
  298. package/dist/{request-schema-CMreVuFM.js → request-schema-DhX7UbfQ.js} +4 -1
  299. package/dist/resend/index.d.ts +34 -28
  300. package/dist/resend/index.js +29 -29
  301. package/dist/resolve-names-ConCSj1y.js +201 -0
  302. package/dist/{resource-relations-D_jw0BFx.js → resource-relations-8-pCScBO.js} +18 -9
  303. package/dist/{retire-Wj6dkyDE.js → retire-B2xffQgY.js} +15 -6
  304. package/dist/{revocations-R07lFBnX.d.ts → revocations-BaUXHM1N.d.ts} +6 -3
  305. package/dist/{rls-Ck_PocSp.js → rls-Ba9wN0SP.js} +13 -6
  306. package/dist/{rls-CxBZb4rZ.js → rls-Cx0dtsB7.js} +310 -128
  307. package/dist/{role-builder-C1VJzvcr.js → role-builder-BK2-T6oD.js} +41 -20
  308. package/dist/{row-conditions-h2HythXQ.js → row-conditions-BAGHOmVq.js} +4 -3
  309. package/dist/{rpc-Bk1bE-ch.js → rpc-vHIwyXCp.js} +8 -5
  310. package/dist/run-Ck22anC2.js +1 -0
  311. package/dist/{run-uLD2aWuO.js → run-PbRlXTfh.js} +26 -23
  312. package/dist/{run-ticket-BpNi7BCi.d.ts → run-ticket-B2o2Kxz8.d.ts} +29 -14
  313. package/dist/{run-ticket-B5d_63Ma.js → run-ticket-Dv7aF7Dk.js} +9 -9
  314. package/dist/{runtime-Vif3_-zf.js → runtime-BGnrOkVH.js} +5 -2
  315. package/dist/{saas-Az_Kz-4D.js → saas-DK4V-3Is.js} +42 -29
  316. package/dist/{scan-DSljDE1Y.js → scan-CRTj6fke.js} +1 -1
  317. package/dist/{schema-B4v0Qrac.js → schema-BOJjqlWL.js} +3 -2
  318. package/dist/{schema-gIcCx7zM.js → schema-BTsE1WRT.js} +8 -4
  319. package/dist/scim/index.d.ts +2 -2
  320. package/dist/scim/index.js +2 -2
  321. package/dist/{scim-C7JYhySg.js → scim-D8YupzX1.js} +2 -2
  322. package/dist/{scim-YNieBO1U.js → scim-jJBJ7g1Z.js} +33 -15
  323. package/dist/{scopes-BHsc-wp-.js → scopes-0Up_UA2t.js} +41 -23
  324. package/dist/server/index.d.ts +11 -11
  325. package/dist/server/index.js +12 -12
  326. package/dist/{server-Bnga6I50.js → server-3cVlTLde.js} +31 -31
  327. package/dist/{server-types-C4gZUEZy.d.ts → server-types-CyRN0-Cd.d.ts} +88 -46
  328. package/dist/{sha256-D9ihqmvd.js → sha256-C-4WXKIu.js} +4 -3
  329. package/dist/{shared-fMKOv8hP.js → shared-Afctg7B0.js} +65 -32
  330. package/dist/{shared-C8LjUdVU.js → shared-l0oGGetg.js} +9 -6
  331. package/dist/{signals-D3NcTKUS.js → signals-B1vHR3fN.js} +2 -2
  332. package/dist/{sink-Cp_Eot9W.d.ts → sink-B5zoUW_O.d.ts} +44 -20
  333. package/dist/{sink-BEZSlMS_.js → sink-D9_vh372.js} +32 -21
  334. package/dist/{skills-g_3BS9NC.js → skills-C9uKfSF5.js} +3 -3
  335. package/dist/{skills-Dcjw9_1C.js → skills-CQQcuGBi.js} +12 -8
  336. package/dist/{snapshot-CbGmYiJx.js → snapshot-CXlzi69u.js} +21 -18
  337. package/dist/{snapshot-cache-Pahd3IYJ.d.ts → snapshot-cache-BjAWkchD.d.ts} +21 -12
  338. package/dist/{snapshot-cache-DT2Kx1F8.js → snapshot-cache-Bx_4xC_6.js} +14 -11
  339. package/dist/solid/index.d.ts +55 -16
  340. package/dist/solid/index.js +46 -12
  341. package/dist/solid-start/index.d.ts +30 -12
  342. package/dist/solid-start/index.js +3 -3
  343. package/dist/{sources-B-zYB4GS.js → sources-CMAM-2A3.js} +46 -27
  344. package/dist/{sources-DEEuGb8S.d.ts → sources-CWG32C0G.d.ts} +126 -53
  345. package/dist/{sql-B96movIM.js → sql-0WjxIp9g.js} +28 -7
  346. package/dist/{sql-CDEPCA0g.d.ts → sql-B80DFdpG.d.ts} +2 -2
  347. package/dist/{src-DLFrtrrC.js → src-C_pi2Rnh.js} +292 -101
  348. package/dist/ssf/index.d.ts +3 -3
  349. package/dist/ssf/index.js +47 -35
  350. package/dist/{standard-webhooks-DgFFD-Ga.js → standard-webhooks-D67a3nzk.js} +5 -5
  351. package/dist/{standard-webhooks-B_qRg0ws.d.ts → standard-webhooks-DOYEuOLx.d.ts} +7 -7
  352. package/dist/{store-DSP9oGvh.js → store-RNFvaJJv.js} +32 -26
  353. package/dist/{store-options-B_poyYvg.js → store-options-Dil3lraY.js} +105 -15
  354. package/dist/stores-DZJvxFIZ.d.ts +59 -0
  355. package/dist/{stores-BqEuHC05.js → stores-DxZWDXCs.js} +42 -5
  356. package/dist/{stream-2Vwhl7Er.d.ts → stream-9y9qw51m.d.ts} +4 -3
  357. package/dist/{stream-CvdUS9V1.js → stream-CDvF0sJm.js} +5 -5
  358. package/dist/{style-Ds1gNm77.js → style-DblOtSga.js} +1 -1
  359. package/dist/{style-Cqo7-73x.js → style-Ds11Hmk4.js} +2 -1
  360. package/dist/{subject-settings-CkEwrw3W.js → subject-settings-8sH5HlII.js} +8 -4
  361. package/dist/{row-check-Dt35czLy.d.ts → subject-settings-vNW8qmUH.d.ts} +30 -18
  362. package/dist/supabase/index.d.ts +48 -38
  363. package/dist/supabase/index.js +5 -5
  364. package/dist/supabase/middleware.d.ts +19 -13
  365. package/dist/supabase/middleware.js +7 -7
  366. package/dist/{supabase--0aJdLEd.js → supabase-DnMMg5Fn.js} +79 -35
  367. package/dist/{supabase-Bqp7iIY2.js → supabase-SBs3MYUE.js} +3 -3
  368. package/dist/supabase-hook-C0FyEACZ.js +1 -0
  369. package/dist/{supabase-hook-Dg0SrQWR.js → supabase-hook-CrgU06WH.js} +175 -196
  370. package/dist/{supautils-MESd81bF.js → supautils-ByezN3b8.js} +385 -219
  371. package/dist/{support-session-Cna49-3f.js → support-session-BsmPCbz8.js} +21 -21
  372. package/dist/svelte/PermissionBoundary.svelte +2 -6
  373. package/dist/svelte/Protected.svelte +2 -8
  374. package/dist/svelte/index.d.ts +9 -8
  375. package/dist/svelte/index.js +10 -9
  376. package/dist/svelte/runtime.d.ts +4 -4
  377. package/dist/svelte/runtime.js +4 -4
  378. package/dist/svelte/source.d.ts +9 -8
  379. package/dist/svelte/source.js +6 -5
  380. package/dist/sveltekit/index.d.ts +30 -12
  381. package/dist/sveltekit/index.js +2 -2
  382. package/dist/{ownership-Z2LpxsGa.js → tables-BqrxBCir.js} +641 -1104
  383. package/dist/tanstack-start/index.d.ts +22 -10
  384. package/dist/tanstack-start/index.js +2 -2
  385. package/dist/{target-Bw37TFNA.js → target-qdEAnnhU.js} +6 -6
  386. package/dist/{tenancy-CmeBQ6Nv.js → tenancy-5d1zVBvK.js} +25 -19
  387. package/dist/terminal/index.d.ts +23 -14
  388. package/dist/terminal/index.js +17 -20
  389. package/dist/testing/core.d.ts +1 -1
  390. package/dist/testing/core.js +1 -1
  391. package/dist/testing/fixtures/index.d.ts +8 -5
  392. package/dist/testing/fixtures/index.js +78 -17
  393. package/dist/testing/index.d.ts +225 -141
  394. package/dist/testing/index.js +352 -234
  395. package/dist/testing/saas/index.d.ts +43 -27
  396. package/dist/testing/saas/index.js +2 -2
  397. package/dist/testing/saas/permissions.d.ts +1 -1
  398. package/dist/testing/saas/permissions.js +1 -1
  399. package/dist/{text-diff-DhITNCnD.js → text-diff-BtfSmdUo.js} +2 -2
  400. package/dist/{thenable-yD7SabqG.js → thenable-BNSM1U2R.js} +12 -3
  401. package/dist/{time-DkWjdL98.js → time-nR1JesoH.js} +32 -8
  402. package/dist/{token-2qYDvXz2.js → token-DC9EQiet.js} +14 -12
  403. package/dist/{tool-refusal-reAhIzdl.js → tool-refusal-Qpjs_W6M.js} +5 -2
  404. package/dist/trpc/index.d.ts +11 -8
  405. package/dist/trpc/index.js +15 -9
  406. package/dist/type-helpers-c7Xo_2Cu.d.ts +50 -0
  407. package/dist/{types-CfiKC5aN.d.ts → types-B2efzoSX.d.ts} +14 -11
  408. package/dist/{types-CIeZcG8v.d.ts → types-B6ExllNo.d.ts} +2 -2
  409. package/dist/{types-DBHftjgS.d.ts → types-BB-zWDcR.d.ts} +45 -33
  410. package/dist/{types-BfVmNJO5.d.ts → types-BMVDHvI0.d.ts} +128 -50
  411. package/dist/{types-DXmwu78Z.d.ts → types-CEinc15V.d.ts} +31 -14
  412. package/dist/{types-g7Oy6Zg4.d.ts → types-CN0LsqbK.d.ts} +47 -24
  413. package/dist/{types-CeIscIKp.d.ts → types-CWBsAwqn.d.ts} +23 -12
  414. package/dist/{types-DqzsnlSA.js → types-CcUXciSj.js} +17 -5
  415. package/dist/{types-BWZybqs9.d.ts → types-CzOeVvcC.d.ts} +384 -203
  416. package/dist/{types-DC44-hqb.d.ts → types-DLvhVm1r.d.ts} +59 -32
  417. package/dist/{types-D3A19w4A.d.ts → types-DlelvQk4.d.ts} +22 -13
  418. package/dist/{types-cTos-H7p.d.ts → types-DsHGPtkR.d.ts} +68 -32
  419. package/dist/{types-BXMYB7BY.d.ts → types-ZzRGoViD.d.ts} +77 -24
  420. package/dist/{types-CQVEQawv.d.ts → types-rCRV4Ge-.d.ts} +24 -14
  421. package/dist/types-tQB2CEnY.d.ts +262 -0
  422. package/dist/unplugin/index.d.ts +1 -1
  423. package/dist/unplugin/index.js +2 -2
  424. package/dist/usage-0hjZPIRX.js +1 -0
  425. package/dist/{usage-Bybmck7f.js → usage-B9EtHWLa.js} +50 -26
  426. package/dist/{usage-CDaLXCfL.js → usage-CBzgwfIs.js} +2 -2
  427. package/dist/{validation-error-ZfUHbKvf.js → validation-error-CYg2kJEw.js} +4 -1
  428. package/dist/{validation-error-CQpoquwj.d.ts → validation-error-uvp-kyfO.d.ts} +5 -2
  429. package/dist/{validity-CZ7-y0Cj.js → validity-Buc7w8E9.js} +13 -10
  430. package/dist/{verifier-DHuh-okk.js → verifier-DUV6pLqZ.js} +10 -4
  431. package/dist/{verify-pe8rL_Qw.js → verify-DlUcTDBz.js} +148 -487
  432. package/dist/version-DMQ0dnN5.js +48 -0
  433. package/dist/version-DizhmD72.js +1 -0
  434. package/dist/{views-BB8E9dTP.js → views-CD8wuL4Z.js} +19 -6
  435. package/dist/{vocabulary-Bg3eeT2H.d.ts → vocabulary-DEJ5j4mR.d.ts} +7 -4
  436. package/dist/vue/index.d.ts +71 -22
  437. package/dist/vue/index.js +50 -13
  438. package/dist/{waiter-DwEyouan.d.ts → waiter-CqUKX6CY.d.ts} +13 -10
  439. package/dist/{waiter-BGUtGYoU.js → waiter-aBLM63_f.js} +1 -1
  440. package/dist/{watch-C-4VmFlL.js → watch-BFDKqmUa.js} +8 -8
  441. package/dist/watch-ClLuO2TL.js +1 -0
  442. package/dist/webmcp/index.d.ts +11 -11
  443. package/dist/webmcp/index.js +8 -5
  444. package/dist/{where-scope-wq2coopv.js → where-scope-DlCdCM_8.js} +24 -18
  445. package/dist/{who-can-BwNsI_Js.js → who-can-BoDJm0Nc.js} +23 -20
  446. package/dist/workflow/index.d.ts +3 -3
  447. package/dist/workflow/index.js +13 -13
  448. package/dist/workflow-sdk/index.d.ts +19 -13
  449. package/dist/workflow-sdk/index.js +6 -6
  450. package/dist/{wrap-CiSc_KCq.js → wrap-B2wziJI_.js} +4 -4
  451. package/dist/{wrap-B6R0cMRL.d.ts → wrap-DxXB54Wu.d.ts} +8 -5
  452. package/package.json +8 -8
  453. package/schemas/catalog-v1.json +3 -0
  454. package/schemas/supabase-manifest-v1.json +33 -1
  455. package/skills/permdock-credentials/references/tokens-keys-links.md +8 -6
  456. package/skills/permdock-data/references/queries-and-rls.md +2 -1
  457. package/skills/permdock-tenancy/references/ownership-and-custom-roles.md +2 -2
  458. package/skills/permdock-wire/references/adapters.md +16 -23
  459. package/dist/catalog-BCCjSAdH.js +0 -1
  460. package/dist/collect-k_Dulxr5.js +0 -1
  461. package/dist/config-CoQHDrDi.js +0 -166
  462. package/dist/denied-text-D4qkEtFz.d.ts +0 -19
  463. package/dist/fields-ClcQLrVc.js +0 -238
  464. package/dist/generate-CNU1pIOo.js +0 -171
  465. package/dist/headers-BIjfMaoC.js +0 -8
  466. package/dist/headers-CIbDTUTK.d.ts +0 -7
  467. package/dist/load-DrMHXzgN.js +0 -1
  468. package/dist/output-files-DPAY7-GX.js +0 -1
  469. package/dist/package-root-Dk_ETdkp.js +0 -31
  470. package/dist/parse-local-manifest-e4mdwAKd.d.ts +0 -10
  471. package/dist/policies-B2lZIurj.js +0 -295
  472. package/dist/powersync-CExtTLyA.js +0 -1
  473. package/dist/problem-details-Tcfmj3bV.d.ts +0 -7
  474. package/dist/protected-BwZYL1X_.d.ts +0 -39
  475. package/dist/pull-Cty6Ovyu.js +0 -1
  476. package/dist/run-Bz7DXGEv.js +0 -1
  477. package/dist/stores-BAZwSYZA.d.ts +0 -31
  478. package/dist/supabase-hook-DJxC4PoP.js +0 -1
  479. package/dist/types-CKV71kKh.d.ts +0 -172
  480. package/dist/usage-y-kBNdqs.js +0 -1
  481. package/dist/version-CEbQ5UeM.js +0 -18
  482. package/dist/version-DXkYUISx.js +0 -1
  483. package/dist/watch-Bd9mx3rd.js +0 -1
@@ -1,10 +1,10 @@
1
1
  import { t as compact } from "./compact-CAf557ZB.js";
2
- import { n as freezeDeep } from "./freeze-CrU8nQeX.js";
3
- import { o as deniedFor } from "./where-scope-wq2coopv.js";
4
- import { l as withApp } from "./permdock-BfWEeMqk.js";
5
- import { t as composeWraps } from "./wrap-CiSc_KCq.js";
6
- import { r as instanceOptions } from "./build-instance-DxE7czo9.js";
7
- import { n as createAgentKernel } from "./kernel-DVExUwkp.js";
2
+ import { n as freezeDeep } from "./freeze-jjan0lCv.js";
3
+ import { o as deniedFor } from "./where-scope-DlCdCM_8.js";
4
+ import { l as withApp } from "./permdock-BvjivVb9.js";
5
+ import { t as composeWraps } from "./wrap-B2wziJI_.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 };
@@ -34,7 +34,10 @@ function decideModelOn(permdock, models, modelId, adapter) {
34
34
  return deniedFor(permission, "closure-error");
35
35
  }
36
36
  }
37
- /** Builds the agent contract and its kernel for an adapter named `adapter`; `runtime.stepUp` sets `stepUp` on denied verdicts. */
37
+ /**
38
+ * Builds the agent contract and its kernel for an adapter named `adapter`;
39
+ * `runtime.stepUp` sets `stepUp` on denied verdicts.
40
+ */
38
41
  function agentRuntime(policy, options, adapter, runtime = {}) {
39
42
  const kernel = createAgentKernel(policy, {
40
43
  ...compact({
@@ -1,15 +1,15 @@
1
1
  import { t as compact } from "./compact-CAf557ZB.js";
2
- import { n as freezeDeep } from "./freeze-CrU8nQeX.js";
3
- import { n as problemDetails } from "./problem-details-cn5X30gZ.js";
4
- import { c as listPermissions } from "./permission-registry-DpPtSKNZ.js";
2
+ import { n as freezeDeep } from "./freeze-jjan0lCv.js";
3
+ import { n as problemDetails } from "./problem-details-CLDgX1KV.js";
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-BfWEeMqk.js";
7
- import { r as hasCredentials } from "./http-BBoKefeS.js";
8
- import { i as decisionResponse, o as notFoundProblem, s as problemFromDecision, t as ANONYMOUS, u as unauthenticatedProblem } from "./problem-CTviyH5L.js";
9
- import { n as resolveOrNull } from "./build-instance-DxE7czo9.js";
10
- import { l as InvalidSignatureError, n as applyApprovalResume, o as evaluationsHandler } from "./evaluations-DReoiVBw.js";
11
- import { n as tenantScope, t as actorFrom } from "./adapter-context-CRhqyzCk.js";
12
- import { n as requestContext, t as buildReportingInstance } from "./request-context-BykKLmyE.js";
6
+ import { i as challengeScope, l as withApp } from "./permdock-BvjivVb9.js";
7
+ import { r as hasCredentials } from "./http-DKLXrFGk.js";
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-BWXqwQYU.js";
10
+ import { _ as LOAD_FAILED, l as InvalidSignatureError, n as applyApprovalResume, o as evaluationsHandler } from "./evaluations-IBceAeKT.js";
11
+ import { n as tenantScope, t as actorFrom } from "./adapter-context-CIQpQxbE.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",
@@ -19,14 +19,6 @@ const NOT_DELEGATED = freezeDeep({
19
19
  }],
20
20
  alternatives: []
21
21
  });
22
- const LOAD_FAILED = freezeDeep({
23
- outcome: "denied",
24
- denials: [{
25
- role: null,
26
- reason: "validation"
27
- }],
28
- alternatives: []
29
- });
30
22
  /** The `403` for a loader that threw: the check fails closed, as on MCP. */
31
23
  function loadFailedProblem(permission) {
32
24
  const key = permission?.key ?? "the route";
@@ -36,7 +28,10 @@ function loadFailedProblem(permission) {
36
28
  permission: permission?.key
37
29
  })), LOAD_FAILED);
38
30
  }
39
- /** The `403` `insufficient_scope` for a token that holds none of a route's OAuth scopes. */
31
+ /**
32
+ * The `403` `insufficient_scope` for a token that holds none of a route's OAuth
33
+ * scopes.
34
+ */
40
35
  function scopeProblem(permission, subject, credentials, scope) {
41
36
  return permission === null ? decisionResponse(problemDetails(compact({
42
37
  decision: NOT_DELEGATED,
@@ -175,6 +170,11 @@ async function resolveActor(request, options) {
175
170
  return (options.webBotAuth === void 0 ? void 0 : await options.webBotAuth.verify(request)) ?? actorFrom(options.actor, request);
176
171
  }
177
172
  const NO_TENANT = "\0";
173
+ const READ_METHODS = /* @__PURE__ */ new Set([
174
+ "GET",
175
+ "HEAD",
176
+ "OPTIONS"
177
+ ]);
178
178
  /**
179
179
  * The Fetch factory behind every HTTP adapter. The subject and actor are
180
180
  * resolved once per `Request`; one instance is cached per `(Request, tenant)`,
@@ -205,7 +205,17 @@ function createPermDock(policy, given) {
205
205
  return resolved;
206
206
  };
207
207
  const reporters = /* @__PURE__ */ new WeakMap();
208
- 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) => {
209
219
  const built = await buildReportingInstance({
210
220
  policy,
211
221
  user,
@@ -213,7 +223,8 @@ function createPermDock(policy, given) {
213
223
  scope: {
214
224
  tenant,
215
225
  actor,
216
- context
226
+ context,
227
+ intent
217
228
  },
218
229
  errors,
219
230
  wrap: (created) => options.wrap === void 0 ? created : options.wrap(created)
@@ -236,16 +247,15 @@ function createPermDock(policy, given) {
236
247
  const key = tenant ?? NO_TENANT;
237
248
  const hit = byTenant.get(key);
238
249
  if (hit !== void 0) return hit;
239
- const built = (async () => instanceFor(await resolveSubject(request), tenant))();
250
+ const built = (async () => instanceFor(await resolveSubject(request), tenant, intentOf(request)))();
240
251
  byTenant.set(key, built);
241
252
  return built;
242
253
  };
243
254
  const connection = async (request, connectionOptions = {}, scope) => {
244
255
  const { tenant } = scope ?? await tenantScope(options.tenant, request);
245
- const { openConnection } = await import("./connection-DjhIJSs2.js");
246
- return openConnection({
256
+ return (await import("./connection-B72dg5Q2.js")).openConnection({
247
257
  open: async () => (await build(request, { tenant })).permdock,
248
- rebuild: async () => (await instanceFor(await freshSubject(request), tenant)).permdock,
258
+ rebuild: async () => (await instanceFor(await freshSubject(request), tenant, "write")).permdock,
249
259
  tenant,
250
260
  ...options.revocations === void 0 ? {} : { feed: options.revocations },
251
261
  adapter,
@@ -1,18 +1,18 @@
1
- import { Ln as Decision, T as Policy, j as PolicyVocabulary, lr as Subject, rr as Delegation, sr as Principal } from "./policy-types-B-F-qAZk.js";
2
- import { u as Permission } from "./permission-types-DhNEmoRG.js";
3
- import { t as Operation } from "./operations-BNLes61x.js";
4
- import { a as PermDock } from "./permdock-Dco6dyCK.js";
5
- import { m as ApprovalStore } from "./types-DC44-hqb.js";
6
- import { t as InstanceOptions } from "./instance-options-CU0YQCLH.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
+ import { u as Permission } from "./permission-types-CAY-GU7e.js";
3
+ import { t as Operation } from "./operations-Ci_rT6Uo.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-B6R0cMRL.js";
9
- import { o as OtelWrap } from "./types-CIeZcG8v.js";
10
- import { t as DeniedText } from "./denied-text-D4qkEtFz.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
- * What the user can do to lift a denial: authenticate again with the `acr`
14
- * and `maxAge` the failing grants ask for, or activate a role they are
15
- * eligible for. A hint for the user; the call is decided again afterwards.
13
+ * What the user can do to lift a denial: authenticate again with the `acr` and
14
+ * `maxAge` the failing grants ask for, or activate a role they are eligible
15
+ * for. A hint for the user; the call is decided again afterwards.
16
16
  */
17
17
  type StepUp = {
18
18
  readonly kind: "authentication";
@@ -27,43 +27,55 @@ type StepUp = {
27
27
  };
28
28
  //#endregion
29
29
  //#region src/agent/types.d.ts
30
- /** The part of an operation a tool decision reads; an `OperationMap` entry is one. */
30
+ /**
31
+ * The part of an operation a tool decision reads; an `OperationMap` entry is
32
+ * one.
33
+ */
31
34
  type ToolBinding = Pick<Operation, "permission" | "data" | "results"> & Partial<Pick<Operation, "name" | "meta">>;
32
35
  type ToolMap = Readonly<Record<string, ToolBinding>>;
33
36
  /**
34
37
  * The models an agent may call, by model id (`'openai/gpt-5'`), each bound to
35
- * the permission that grants it. An instance permission is decided on the
36
- * row `{ id }`.
38
+ * the permission that grants it. An instance permission is decided on the row
39
+ * `{ id }`.
37
40
  */
38
41
  type ModelMap = Readonly<Record<string, Permission>>;
39
- /** The options `permdock/ai-sdk`, `permdock/openai`, `permdock/claude-agent` and `permdock/eve` share. */
42
+ /**
43
+ * The options `permdock/ai-sdk`, `permdock/openai`, `permdock/claude-agent` and
44
+ * `permdock/eve` share.
45
+ */
40
46
  type AgentAdapterOptions<TContext, TUser = unknown> = InstanceOptions & {
41
47
  /** The user, or a full `Subject` (core then skips `policy.subject`). */
42
48
  readonly subject: (context: TContext) => TUser | Subject | Promise<TUser | Subject>;
43
49
  readonly actor?: (context: TContext) => unknown;
44
50
  readonly delegation?: (context: TContext) => Delegation | undefined | Promise<Delegation | undefined>;
45
51
  readonly tenant?: string | ((context: TContext) => string | undefined | Promise<string | undefined>);
46
- /** The tools the agent may call, by tool name: the map `defineOperations` returns. */
52
+ /**
53
+ * The tools the agent may call, by tool name: the map `defineOperations`
54
+ * returns.
55
+ */
47
56
  readonly operations: ToolMap;
48
57
  /**
49
- * The model gate. Absent: the adapter never checks a model. Present: a
50
- * model id it does not name is denied.
58
+ * The model gate. Absent: the adapter never checks a model. Present: a model
59
+ * id it does not name is denied.
51
60
  */
52
61
  readonly models?: ModelMap;
53
62
  readonly store?: ApprovalStore;
54
63
  /**
55
- * Tools `operations` does not name. `'deny'` (default) denies them.
56
- * `'allow'` leaves them to the runtime's own approval.
64
+ * Tools `operations` does not name. `'deny'` (default) denies them. `'allow'`
65
+ * leaves them to the runtime's own approval.
57
66
  */
58
67
  readonly unmapped?: "deny" | "allow";
59
68
  /**
60
- * Request values merged into `subject.context`, under `policy.context`.
61
- * Only values the server derived belong here, never model output.
69
+ * Request values merged into `subject.context`, under `policy.context`. Only
70
+ * values the server derived belong here, never model output.
62
71
  */
63
72
  readonly context?: (context: TContext) => RequestContext | undefined | Promise<RequestContext | undefined>;
64
73
  /** `(permdock) => withOtel(permdock, options)` from `permdock/otel`. */
65
74
  readonly otel?: OtelWrap;
66
- /** Wraps each instance after `otel`; build it with `wrapPermDock` to cover derived instances. */
75
+ /**
76
+ * Wraps each instance after `otel`; build it with `wrapPermDock` to cover
77
+ * derived instances.
78
+ */
67
79
  readonly wrap?: PermDockWrap;
68
80
  /** Replaces the denial reason or approval summary text; nothing else. */
69
81
  readonly deniedText?: DeniedText;
@@ -82,7 +94,10 @@ type ToolVerdict = {
82
94
  }> | null;
83
95
  readonly permission: Permission | undefined;
84
96
  readonly reason: string;
85
- /** What the user can do to lift the denial; set only by an adapter with step-ups on (`permdock/ai-sdk` `stepUp`). */
97
+ /**
98
+ * What the user can do to lift the denial; set only by an adapter with
99
+ * step-ups on (`permdock/ai-sdk` `stepUp`).
100
+ */
86
101
  readonly stepUp?: StepUp;
87
102
  } | {
88
103
  readonly outcome: "approval-required";
@@ -107,9 +122,15 @@ type DecideToolOptions = {
107
122
  //#endregion
108
123
  //#region src/agent/create.d.ts
109
124
  type AgentPermDockOptions<TContext, TUser = unknown> = AgentAdapterOptions<TContext, TUser>;
110
- /** What one operation call decides: granted with the loaded row, denied with the text a model reads, or parked for approval. */
125
+ /**
126
+ * What one operation call decides: granted with the loaded row, denied with the
127
+ * text a model reads, or parked for approval.
128
+ */
111
129
  type OperationVerdict = ToolVerdict;
112
- /** `providerOptions` for the Vercel AI Gateway: spend and usage attributed to the caller. */
130
+ /**
131
+ * `providerOptions` for the Vercel AI Gateway: spend and usage attributed to
132
+ * the caller.
133
+ */
113
134
  type GatewayOptions = {
114
135
  readonly gateway: {
115
136
  readonly user?: string;
@@ -123,29 +144,41 @@ type GatewayOptions = {
123
144
  * their runtime calls.
124
145
  */
125
146
  type AgentPermDock<TContext, V extends PolicyVocabulary = PolicyVocabulary> = {
126
- /** One instance per context object while a call is in flight; later calls re-read the subject. */
147
+ /**
148
+ * One instance per context object while a call is in flight; later calls
149
+ * re-read the subject.
150
+ */
127
151
  readonly getPermDock: (context: TContext) => Promise<PermDock<V>>;
128
152
  /**
129
- * Decides operation `name` on `input`: loads the row through the
130
- * operation's `data`, validates it, decides and resumes an approval. Never
131
- * throws; an operation `operations` does not name is denied.
153
+ * Decides operation `name` on `input`: loads the row through the operation's
154
+ * `data`, validates it, decides and resumes an approval. Never throws; an
155
+ * operation `operations` does not name is denied.
132
156
  */
133
157
  readonly decideOperation: (name: string, input: unknown, context: TContext, options?: DecideToolOptions) => Promise<OperationVerdict>;
134
- /** Operation names the subject could be granted for some row; a listing hint, never a decision. */
158
+ /**
159
+ * Operation names the subject could be granted for some row; a listing hint,
160
+ * never a decision.
161
+ */
135
162
  readonly allowedOperations: (context: TContext) => Promise<ReadonlySet<string>>;
136
163
  /** The approval token a call would park under, without touching the store. */
137
164
  readonly tokenFor: (name: string, input: unknown, context: TContext) => Promise<string | undefined>;
138
- /** Decides whether the subject may call model `modelId`. A model `models` does not name is denied. */
165
+ /**
166
+ * Decides whether the subject may call model `modelId`. A model `models` does
167
+ * not name is denied.
168
+ */
139
169
  readonly decideModel: (modelId: string, context: TContext) => Promise<Decision>;
140
170
  /** The ids in `models` the subject is granted, in declaration order. */
141
171
  readonly permittedModels: (context: TContext) => Promise<readonly string[]>;
142
172
  /**
143
- * The rows of an operation's output the subject may see, by the
144
- * operation's `results` permission. Without `results` the rows come back
145
- * unchanged; an operation `operations` does not name returns none.
173
+ * The rows of an operation's output the subject may see, by the operation's
174
+ * `results` permission. Without `results` the rows come back unchanged; an
175
+ * operation `operations` does not name returns none.
146
176
  */
147
177
  readonly filterResults: <T>(name: string, rows: readonly T[], context: TContext) => Promise<T[]>;
148
- /** `providerOptions.gateway` with the principal as `user` and the tenant and actor as tags. */
178
+ /**
179
+ * `providerOptions.gateway` with the principal as `user` and the tenant and
180
+ * actor as tags.
181
+ */
149
182
  readonly gatewayOptions: (context: TContext) => Promise<GatewayOptions>;
150
183
  };
151
184
  /**
@@ -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-B-F-qAZk.js";
2
- import { u as Permission } from "./permission-types-DhNEmoRG.js";
3
- import { a as PermDock, h as PrincipalSource, n as DecideOptions, o as PermDockOptions } from "./permdock-Dco6dyCK.js";
4
- import { m as ApprovalStore } from "./types-DC44-hqb.js";
5
- import { a as AutomationSource } from "./automation-DOtAFWdy.js";
6
- import { n as ApprovalWaiter } from "./waiter-DwEyouan.js";
7
- import { i as RunBinding, r as RunAutomation } from "./run-ticket-BpNi7BCi.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
+ 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-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 { i as RunBinding, r as RunAutomation } from "./run-ticket-B2o2Kxz8.js";
8
8
  //#region src/workflow/create.d.ts
9
9
  type WorkflowPermDockOptions = PermDockOptions & {
10
10
  /** Signs the run tickets `start` mints. */
@@ -15,7 +15,10 @@ type WorkflowPermDockOptions = PermDockOptions & {
15
15
  readonly principals: PrincipalSource;
16
16
  /** The live automation records, read by `start` and on every `getPermDock`. */
17
17
  readonly automations: AutomationSource;
18
- /** Where `awaitApproval` opens and resumes requests; the same option name as every other adapter. */
18
+ /**
19
+ * Where `awaitApproval` opens and resumes requests; the same option name as
20
+ * every other adapter.
21
+ */
19
22
  readonly store?: ApprovalStore;
20
23
  /** Suspends `awaitApproval` until a request is decided. */
21
24
  readonly waiter?: ApprovalWaiter;
@@ -36,7 +39,10 @@ type AutomationOptions = {
36
39
  readonly caller?: PermDock;
37
40
  /** The row `run` is decided on, when it is an instance permission. */
38
41
  readonly row?: unknown;
39
- /** The event that started the run, as JSON. Kept in `subject.context.trigger`; never a grant. */
42
+ /**
43
+ * The event that started the run, as JSON. Kept in `subject.context.trigger`;
44
+ * never a grant.
45
+ */
40
46
  readonly trigger?: Readonly<Record<string, unknown>>;
41
47
  /** The run id (`jti`); a fresh UUID when absent. */
42
48
  readonly id?: string;
@@ -55,7 +61,10 @@ type StartAutomationResult = {
55
61
  readonly denials: readonly Denial[];
56
62
  };
57
63
  type AwaitApprovalOptions = DecideOptions & {
58
- /** The resource the approval request names; defaults to the permission's resource and the row's `id`. */
64
+ /**
65
+ * The resource the approval request names; defaults to the permission's
66
+ * resource and the row's `id`.
67
+ */
59
68
  readonly resource?: {
60
69
  readonly type: string;
61
70
  readonly id?: string;
@@ -66,30 +75,29 @@ type AwaitApprovalOptions = DecideOptions & {
66
75
  };
67
76
  type WorkflowPermDock<V extends PolicyVocabulary = PolicyVocabulary> = {
68
77
  /**
69
- * Starts a run of the automation `id` and returns its run ticket. Denied
70
- * when the automation is unknown or revoked (`validation`) or when the
71
- * caller is not granted its `run` permission.
78
+ * Starts a run of the automation `id` and returns its run ticket. Denied when
79
+ * the automation is unknown or revoked (`validation`) or when the caller is
80
+ * not granted its `run` permission.
72
81
  */
73
82
  readonly start: (id: string, options?: AutomationOptions) => Promise<StartAutomationResult>;
74
83
  /**
75
- * The PermDock of a run, rebuilt from its ticket: the principal loaded
76
- * live, narrowed to the automation's permissions and to any policy
77
- * delegation to `actor('automation')`. A changed, revoked or unknown
78
- * automation, or a publisher who is gone, gives an anonymous instance
79
- * that denies everything.
84
+ * The PermDock of a run, rebuilt from its ticket: the principal loaded live,
85
+ * narrowed to the automation's permissions and to any policy delegation to
86
+ * `actor('automation')`. A changed, revoked or unknown automation, or a
87
+ * publisher who is gone, gives an anonymous instance that denies everything.
80
88
  */
81
89
  readonly getPermDock: (ticket: string) => Promise<PermDock<V>>;
82
90
  /**
83
- * Decides `permission`; on `approval-required` opens a request, waits on
84
- * the `waiter`, then rebuilds the run from its ticket and decides again
85
- * with the token. The second decision reads the publisher's rights as of
86
- * then, so a demotion while waiting denies.
91
+ * Decides `permission`; on `approval-required` opens a request, waits on the
92
+ * `waiter`, then rebuilds the run from its ticket and decides again with the
93
+ * token. The second decision reads the publisher's rights as of then, so a
94
+ * demotion while waiting denies.
87
95
  */
88
96
  readonly awaitApproval: (ticket: string, permission: Permission, data?: unknown, options?: AwaitApprovalOptions) => Promise<Decision>;
89
97
  /**
90
- * The first half of `awaitApproval`, for runners that wait outside the
91
- * call: decides, and on `approval-required` opens the request and returns
92
- * the decision with its token.
98
+ * The first half of `awaitApproval`, for runners that wait outside the call:
99
+ * decides, and on `approval-required` opens the request and returns the
100
+ * decision with its token.
93
101
  */
94
102
  readonly openApproval: (ticket: string, permission: Permission, data?: unknown, options?: AwaitApprovalOptions) => Promise<Decision>;
95
103
  /**
@@ -100,10 +108,10 @@ type WorkflowPermDock<V extends PolicyVocabulary = PolicyVocabulary> = {
100
108
  readonly resumeApproval: (ticket: string, permission: Permission, token: string, data?: unknown, options?: AwaitApprovalOptions) => Promise<Decision>;
101
109
  };
102
110
  /**
103
- * Creates the PermDock for durable runs of published automations. A run
104
- * acts as the automation's principal with that principal's rights at each
105
- * step, narrowed to the automation's operations; the trigger is recorded
106
- * and never grants.
111
+ * Creates the PermDock for durable runs of published automations. A run acts as
112
+ * the automation's principal with that principal's rights at each step,
113
+ * narrowed to the automation's operations; the trigger is recorded and never
114
+ * grants.
107
115
  */
108
116
  declare function createPermDock<TUser, TPrincipal extends Principal = Principal, V extends PolicyVocabulary = PolicyVocabulary>(policy: Policy<TUser, TPrincipal, V>, given: WorkflowPermDockOptions): WorkflowPermDock<V>;
109
117
  //#endregion
@@ -1,14 +1,14 @@
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-B-F-qAZk.js";
2
- import { t as Operation } from "./operations-BNLes61x.js";
3
- import { a as PermDock, h as PrincipalSource, o as PermDockOptions } from "./permdock-Dco6dyCK.js";
4
- import { m as ApprovalStore, p as ApprovalStatus } from "./types-DC44-hqb.js";
5
- import { n as ApprovalErrorCode } from "./errors-BWXBMaKK.js";
6
- import { t as ApprovalPrompt } from "./approval-prompt-K0faOLFp.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
+ import { t as Operation } from "./operations-Ci_rT6Uo.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
+ import { n as ApprovalErrorCode } from "./errors-CHwoRRpB.js";
6
+ import { t as ApprovalPrompt } from "./approval-prompt-3BqWczTt.js";
7
7
  //#region src/chat/subject.d.ts
8
8
  /**
9
- * The platform user behind a chat message or action. Fill it only from an
10
- * event whose platform signature the transport verified; a body field or a
11
- * model argument is never an author.
9
+ * The platform user behind a chat message or action. Fill it only from an event
10
+ * whose platform signature the transport verified; a body field or a model
11
+ * argument is never an author.
12
12
  */
13
13
  type ChatAuthor = {
14
14
  /** The chat platform (`slack`, `teams`, `discord`, …). */
@@ -18,7 +18,10 @@ type ChatAuthor = {
18
18
  /** The workspace, team or tenant id on the platform. */
19
19
  readonly workspace?: string;
20
20
  };
21
- /** The principal a chat author's identity link names, as the `PrincipalSource` returns it. */
21
+ /**
22
+ * The principal a chat author's identity link names, as the `PrincipalSource`
23
+ * returns it.
24
+ */
22
25
  type ChatPrincipal = Principal;
23
26
  type SubjectFromChatOptions = {
24
27
  /** Resolves the author through `principalByIdentity({ kind: 'chat', … })`. */
@@ -26,16 +29,22 @@ type SubjectFromChatOptions = {
26
29
  };
27
30
  declare function isChatAuthor(value: unknown): value is ChatAuthor;
28
31
  /**
29
- * The subject a chat author acts as: the principal its identity link
30
- * names, or anonymous when there is no link. Never throws.
32
+ * The subject a chat author acts as: the principal its identity link names, or
33
+ * anonymous when there is no link. Never throws.
31
34
  */
32
35
  declare function subjectFromChat(author: ChatAuthor | null | undefined, options: SubjectFromChatOptions): Promise<Subject>;
33
36
  //#endregion
34
37
  //#region src/chat/create.d.ts
35
38
  type ChatPermDockOptions = PermDockOptions & {
36
- /** Resolves chat authors through `principalByIdentity`; also the instance's principal source. */
39
+ /**
40
+ * Resolves chat authors through `principalByIdentity`; also the instance's
41
+ * principal source.
42
+ */
37
43
  readonly principals: PrincipalSource;
38
- /** Where approval requests open and resolve. Without it an approval-required command only reports the decision. */
44
+ /**
45
+ * Where approval requests open and resolve. Without it an approval-required
46
+ * command only reports the decision.
47
+ */
39
48
  readonly store?: ApprovalStore;
40
49
  };
41
50
  /** What a protected command's handler receives once the author is granted. */
@@ -56,12 +65,21 @@ type ChatCommandResult<T> = {
56
65
  } | {
57
66
  readonly outcome: "approval-required";
58
67
  readonly decision: ApprovalRequiredDecision;
59
- /** The open request to deliver to approvers; `null` without an approval store. */
68
+ /**
69
+ * The open request to deliver to approvers; `null` without an approval
70
+ * store.
71
+ */
60
72
  readonly prompt: ApprovalPrompt | null;
61
73
  };
62
- /** A command guarded by `protect`. Never throws for a refusal; the handler's own errors propagate. */
74
+ /**
75
+ * A command guarded by `protect`. Never throws for a refusal; the handler's own
76
+ * errors propagate.
77
+ */
63
78
  type ChatCommand<TInput, T> = (author: ChatAuthor | null | undefined, input: TInput) => Promise<ChatCommandResult<T>>;
64
- /** A verdict from a chat button or reaction, by approval request `id`; the token never leaves the server. */
79
+ /**
80
+ * A verdict from a chat button or reaction, by approval request `id`; the token
81
+ * never leaves the server.
82
+ */
65
83
  type ChatAction = {
66
84
  readonly approval: string;
67
85
  readonly status: "approved" | "rejected";
@@ -76,24 +94,27 @@ type ChatActionResult = {
76
94
  readonly cause: ApprovalErrorCode | "invalid-action";
77
95
  };
78
96
  /**
79
- * The runtime-neutral chat contract: commands decided as the linked
80
- * principal of a verified chat author, and approval verdicts from chat
81
- * actions. `permdock/chat-sdk` implements it for Chat SDK bots.
97
+ * The runtime-neutral chat contract: commands decided as the linked principal
98
+ * of a verified chat author, and approval verdicts from chat actions.
99
+ * `permdock/chat-sdk` implements it for Chat SDK bots.
82
100
  */
83
101
  type ChatPermDock<V extends PolicyVocabulary = PolicyVocabulary> = {
84
- /** The instance for `author`; anonymous, and so denying, when the author is unlinked. */
102
+ /**
103
+ * The instance for `author`; anonymous, and so denying, when the author is
104
+ * unlinked.
105
+ */
85
106
  readonly getPermDock: (author: ChatAuthor | null | undefined) => Promise<PermDock<V>>;
86
107
  /**
87
- * Guards `handler` with `operation`: loads the row through the
88
- * operation's `data`, decides as the author, and on `approval-required`
89
- * opens one request per author, permission and row. The handler runs only
90
- * when granted; an approved request runs it once.
108
+ * Guards `handler` with `operation`: loads the row through the operation's
109
+ * `data`, decides as the author, and on `approval-required` opens one request
110
+ * per author, permission and row. The handler runs only when granted; an
111
+ * approved request runs it once.
91
112
  */
92
113
  readonly protect: <TInput, T>(operation: Operation<TInput>, handler: (context: ChatCommandContext<TInput, V>) => T | Promise<T>) => ChatCommand<TInput, T>;
93
114
  /**
94
- * Resolves approval request `action.approval` as `author`. The author must
95
- * be linked and an eligible, distinct approver; the request's requester
96
- * never approves their own request.
115
+ * Resolves approval request `action.approval` as `author`. The author must be
116
+ * linked and an eligible, distinct approver; the request's requester never
117
+ * approves their own request.
97
118
  */
98
119
  readonly resolveAction: (author: ChatAuthor | null | undefined, action: ChatAction) => Promise<ChatActionResult>;
99
120
  };