permdock 0.3.1 → 0.5.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 (552) hide show
  1. package/README.md +37 -35
  2. package/dist/{openapi-schema--ARjyfQr.js → 2020-C9VN-x8c.js} +5 -132
  3. package/dist/a2a/index.d.ts +8 -6
  4. package/dist/a2a/index.js +21 -31
  5. package/dist/{adapter-context-mlWsVGGg.js → adapter-context-CRhqyzCk.js} +1 -1
  6. package/dist/adoption-scan-B4R5fnMU.js +107 -0
  7. package/dist/agent/index.d.ts +3 -0
  8. package/dist/agent/index.js +1 -0
  9. package/dist/ai-sdk/index.d.ts +18 -23
  10. package/dist/ai-sdk/index.js +38 -21
  11. package/dist/app-data-MuyzVqX8.js +60 -0
  12. package/dist/approval-header-CJACtHkv.js +23 -0
  13. package/dist/approval-prompt-Dg5LeAcT.js +62 -0
  14. package/dist/approval-prompt-Djo_PyZc.d.ts +57 -0
  15. package/dist/approvals/index.d.ts +5 -3
  16. package/dist/approvals/index.js +8 -5
  17. package/dist/approvals-DJ6Yd5z1.js +995 -0
  18. package/dist/{approvers-DT4AVyIg.js → approvers-CqPOLD-o.js} +1 -1
  19. package/dist/arazzo-B6lebmiQ.js +36 -0
  20. package/dist/{arazzo-BAgw9ap6.js → arazzo-BWhNF-k0.js} +24 -17
  21. package/dist/args-IIolxxKA.js +197 -0
  22. package/dist/astro/index.d.ts +43 -0
  23. package/dist/astro/index.js +27 -0
  24. package/dist/audience-Dg8XsRaO.js +55 -0
  25. package/dist/auth-DRLEizbL.js +178 -0
  26. package/dist/authzen/index.d.ts +26 -6
  27. package/dist/authzen/index.js +228 -75
  28. package/dist/automation-BMZPIVUM.d.ts +114 -0
  29. package/dist/automation-DVjOckjV.js +157 -0
  30. package/dist/better-auth/index.d.ts +8 -6
  31. package/dist/better-auth/index.js +11 -23
  32. package/dist/better-supabase/index.d.ts +438 -86
  33. package/dist/better-supabase/index.js +1027 -184
  34. package/dist/bind--9EFVYWF.d.ts +38 -0
  35. package/dist/{bind-CuzGytRf.js → bind-CZzhx-Vj.js} +22 -10
  36. package/dist/body-CH5of8Ne.js +10 -0
  37. package/dist/body-text-QcXok_SI.js +52 -0
  38. package/dist/build-instance-BMnAudHn.js +52 -0
  39. package/dist/{canonical-json-DemiK4Vp.js → canonical-json-BC8_nMTw.js} +6 -6
  40. package/dist/{capability-2kYTMWDv.d.ts → capability-BSslw1QV.d.ts} +44 -25
  41. package/dist/{capability-4qPdO9gk.js → capability-N1K9IpqS.js} +69 -42
  42. package/dist/casbin-Cr7RLtA3.js +30 -0
  43. package/dist/casbin-Dyu2gnUD.js +234 -0
  44. package/dist/casl-64gpT-8x.js +24 -0
  45. package/dist/casl-DjEDhTCP.js +299 -0
  46. package/dist/catalog/index.d.ts +74 -2
  47. package/dist/catalog/index.js +51 -2
  48. package/dist/catalog-BECMPrwc.js +100 -0
  49. package/dist/catalog-DjhMYYCq.js +1 -0
  50. package/dist/catalog-R_A__RsH.js +52 -0
  51. package/dist/{catalog-doc-DdGm82XT.js → catalog-doc-C9wjsfNY.js} +54 -25
  52. package/dist/catalog-fingerprint-CCP0-yQS.js +153 -0
  53. package/dist/chat/index.d.ts +2 -0
  54. package/dist/chat/index.js +224 -0
  55. package/dist/chat-sdk/index.d.ts +87 -0
  56. package/dist/chat-sdk/index.js +197 -0
  57. package/dist/claims-map-7oQ3ue4X.js +13 -0
  58. package/dist/claims-map-Ca-QX8C6.d.ts +32 -0
  59. package/dist/claude-agent/index.d.ts +7 -14
  60. package/dist/claude-agent/index.js +26 -30
  61. package/dist/clerk/index.d.ts +9 -8
  62. package/dist/clerk/index.js +15 -45
  63. package/dist/cli/bin.js +36 -17
  64. package/dist/cli/index.d.ts +20 -6
  65. package/dist/cli/index.js +164 -4
  66. package/dist/cloud/index.d.ts +102 -63
  67. package/dist/cloud/index.js +240 -347
  68. package/dist/cloud-CIoHNevm.js +87 -0
  69. package/dist/codemod-Bmj9dWMH.js +37 -0
  70. package/dist/codemod-Cxvvc70T.js +2084 -0
  71. package/dist/{collect-DSTE3ml9.js → collect-CrZJJnEF.js} +79 -17
  72. package/dist/collect-DloHbDVa.js +55 -0
  73. package/dist/collect-FlXJlhus.js +1 -0
  74. package/dist/command-L8EstFNm.js +6 -0
  75. package/dist/{compact-y6vfu2_f.js → compact-CAf557ZB.js} +11 -1
  76. package/dist/compile/index.d.ts +1 -1
  77. package/dist/compile/index.js +1 -2
  78. package/dist/{compile-Ba4blROR.js → compile-CMqMx_IN.js} +13 -9
  79. package/dist/{compile-BkRyBDBw.d.ts → compile-Ckm2HqBZ.d.ts} +5 -3
  80. package/dist/completion-BqhRBJD8.js +143 -0
  81. package/dist/config-B46rm9sc.js +26 -0
  82. package/dist/{config-BJiM-xAm.js → config-bs_kZeYq.js} +15 -10
  83. package/dist/{config-report-CdCgbRnV.js → config-report-DUgj62Ai.js} +17 -8
  84. package/dist/{connection-CU8MQxRi.js → connection-DjhIJSs2.js} +8 -6
  85. package/dist/constants-DcJABbLW.js +20 -0
  86. package/dist/{context-Bcy85rGi.js → context-bbFHR-0D.js} +16 -5
  87. package/dist/convex/index.d.ts +11 -10
  88. package/dist/convex/index.js +18 -18
  89. package/dist/create-0VZ7Pdiu.d.ts +107 -0
  90. package/dist/create-BDS7wc3y.d.ts +138 -0
  91. package/dist/create-BFfm17UA.d.ts +110 -0
  92. package/dist/create-BWRSXgOF.js +403 -0
  93. package/dist/create-C3b4B5eF.js +130 -0
  94. package/dist/create-DnrmLnLW.js +323 -0
  95. package/dist/{credential-8P81ff4u.js → credential-DM2um3ha.js} +153 -32
  96. package/dist/credentials-DPyHmYz5.js +74 -0
  97. package/dist/deciding-columns-Sq12mEA6.js +123 -0
  98. package/dist/delegation-DaXVdDhM.js +286 -0
  99. package/dist/delegation-input-FTxMK3ji.js +19 -0
  100. package/dist/delivery/index.d.ts +5 -0
  101. package/dist/delivery/index.js +5 -0
  102. package/dist/delivery-DCAgNyCn.js +499 -0
  103. package/dist/delivery-event-xX4obB8F.js +40 -0
  104. package/dist/denied-text-D8jDHgsl.d.ts +19 -0
  105. package/dist/{describe-DMYiCjJV.d.ts → describe-BZUsixiL.d.ts} +11 -2
  106. package/dist/{describe-B_gVZEVi.js → describe-BybMRY7A.js} +10 -5
  107. package/dist/device-BARQ8eYG.js +193 -0
  108. package/dist/diff-CxZo9pTq.js +37 -0
  109. package/dist/{diff-2VaeChzX.js → diff-DCePiN6M.js} +61 -55
  110. package/dist/doctor-CxiwSfqH.js +44 -0
  111. package/dist/doctor-DFjUxf2f.js +2361 -0
  112. package/dist/drizzle/index.d.ts +5 -3
  113. package/dist/drizzle/index.js +6 -14
  114. package/dist/elysia/index.d.ts +16 -13
  115. package/dist/elysia/index.js +14 -13
  116. package/dist/env-DJZrPjRi.js +8 -0
  117. package/dist/errors-BDUwg2qC.js +27 -0
  118. package/dist/{errors-Cz5zn0mW.js → errors-BKy0EfhN.js} +6 -10
  119. package/dist/errors-BWXBMaKK.d.ts +11 -0
  120. package/dist/{errors-DPdqI50v.d.ts → errors-C2PXIv4c.d.ts} +2 -2
  121. package/dist/errors-CWTY6uih.js +143 -0
  122. package/dist/evaluate-_R8QkWaf.js +1732 -0
  123. package/dist/evaluations-16UqqQ6W.d.ts +32 -0
  124. package/dist/{evaluations-tz6D9A2G.js → evaluations-DZ2CbV5k.js} +181 -32
  125. package/dist/eve/index.d.ts +12 -16
  126. package/dist/eve/index.js +23 -29
  127. package/dist/event-time-CsegxXxB.js +23 -0
  128. package/dist/expiry-D4_YKRKD.js +52 -0
  129. package/dist/express/index.d.ts +13 -10
  130. package/dist/express/index.js +14 -12
  131. package/dist/fastify/index.d.ts +26 -13
  132. package/dist/fastify/index.js +17 -36
  133. package/dist/fetch-adapter-g0ypLkID.js +120 -0
  134. package/dist/fetch-adapter-qKJBuRqy.d.ts +31 -0
  135. package/dist/fields-D9tPVUUS.js +203 -0
  136. package/dist/files-C5ZI27eV.js +124 -0
  137. package/dist/{files-DWUN9PzI.js → files-D_JIzUrP.js} +12 -3
  138. package/dist/{fixtures-ht28Cplr.js → fixtures-B7XrLeY7.js} +12 -12
  139. package/dist/flags-C3DktBDY.js +86 -0
  140. package/dist/{from-snapshot-CTLijvdm.js → from-snapshot-D2lZt4Dd.js} +78 -65
  141. package/dist/{generate-CH7ThJ14.js → generate-CNU1pIOo.js} +1 -3
  142. package/dist/grantee-Cn1HyUsI.js +254 -0
  143. package/dist/grantee-conditions-CcXf8hMM.js +271 -0
  144. package/dist/grantee-match-DHArqY82.js +142 -0
  145. package/dist/h3/index.d.ts +37 -0
  146. package/dist/h3/index.js +35 -0
  147. package/dist/headers-BIjfMaoC.js +8 -0
  148. package/dist/headers-CIbDTUTK.d.ts +7 -0
  149. package/dist/{helpers-H_KARDVC.js → helpers-DTcZOzhF.js} +47 -39
  150. package/dist/hono/index.d.ts +12 -9
  151. package/dist/hono/index.js +14 -13
  152. package/dist/{hosted-DJQw46hn.js → hosted-BZIAYvon.js} +64 -15
  153. package/dist/hosted-DBDX0M-P.d.ts +78 -0
  154. package/dist/{http-SO7qGttf.js → http-BBoKefeS.js} +35 -2
  155. package/dist/{http-DPuDaChb.d.ts → http-B_LphE5Y.d.ts} +1 -2
  156. package/dist/http-DXJ37RDA.js +46 -0
  157. package/dist/{http-BIhmLfCc.js → http-ujKm0JXE.js} +3 -26
  158. package/dist/{openapi-import-cmwetbzw.js → import-CNV7I2Dw.js} +30 -26
  159. package/dist/{rls-import-4lLW_pbb.js → import-DMmOG27O.js} +271 -128
  160. package/dist/index-BcHcPyIo.d.ts +110 -0
  161. package/dist/index-CaxrMD1A.d.ts +1 -0
  162. package/dist/index-Chrs5fQ-.d.ts +210 -0
  163. package/dist/index-CxGUswIC.d.ts +431 -0
  164. package/dist/index-D8EovfsP.d.ts +91 -0
  165. package/dist/index-DOVf7RJv.d.ts +900 -0
  166. package/dist/{index-C8z4RjQV.d.ts → index-SGdIQyzc.d.ts} +34 -16
  167. package/dist/index.d.ts +20 -14
  168. package/dist/index.js +33 -23
  169. package/dist/init-DeMYsnYJ.js +96 -0
  170. package/dist/init-GG6Jh8HD.js +95 -0
  171. package/dist/{instance-options-jARdwfPN.d.ts → instance-options-Omfd793B.d.ts} +2 -2
  172. package/dist/instance-snapshot-Cxq4ygFc.js +600 -0
  173. package/dist/instant-BluqDvyS.js +19 -0
  174. package/dist/internals-Dk8A8fX3.js +17 -0
  175. package/dist/{json-schema-BsAflUGW.js → json-schema-B-vAwlde.js} +46 -9
  176. package/dist/json-schema-CN_iLFH2.d.ts +40 -0
  177. package/dist/jwt/index.d.ts +18 -11
  178. package/dist/jwt/index.js +166 -145
  179. package/dist/{kernel-_RRHmnMY.js → kernel-5JatXyND.js} +120 -43
  180. package/dist/kysely/index.d.ts +5 -3
  181. package/dist/kysely/index.js +6 -14
  182. package/dist/{live-options-H2eG8dfJ.js → live-options-BaAFCIiu.js} +16 -3
  183. package/dist/load-BxEtwlBS.js +1 -0
  184. package/dist/{load-DhWEB9P1.js → load-DFS_ry0W.js} +31 -7
  185. package/dist/{load-jose-BL6LH4bL.js → load-jose-DZ4dnjri.js} +1 -4
  186. package/dist/login-Dfe5RlYk.js +68 -0
  187. package/dist/login-imhuwvn3.js +254 -0
  188. package/dist/manifest-C8IzW3Do.js +42 -0
  189. package/dist/manifest-CtKR3GXL.js +370 -0
  190. package/dist/manifest-json-CAGzls-C.js +9 -0
  191. package/dist/{manifest-uDS9y5de.d.ts → manifest-mx5ghSFM.d.ts} +9 -2
  192. package/dist/manifest-schema-C0kK_8V0.js +399 -0
  193. package/dist/{map-claims-Z4QZOiFF.js → map-claims-D3oRmTk0.js} +19 -25
  194. package/dist/{map-error-pgUWNNtG.js → map-error-TCAdw-eW.js} +5 -5
  195. package/dist/{markers-B0hYLvMD.js → markers-C6joDI3o.js} +8 -3
  196. package/dist/mcp/index.d.ts +36 -9
  197. package/dist/mcp/index.js +476 -448
  198. package/dist/{rls-migrate-CN4TlJTO.js → migrate-BShP7Vf4.js} +119 -20
  199. package/dist/nest/index.d.ts +12 -9
  200. package/dist/nest/index.js +20 -20
  201. package/dist/next/index.d.ts +40 -20
  202. package/dist/next/index.js +37 -39
  203. package/dist/next/plugin.d.ts +1 -1
  204. package/dist/next/plugin.js +2 -2
  205. package/dist/node/index.d.ts +10 -10
  206. package/dist/node/index.js +7 -9
  207. package/dist/ocsf-BFp-PZZA.js +126 -0
  208. package/dist/openai/index.d.ts +9 -16
  209. package/dist/openai/index.js +18 -25
  210. package/dist/openapi/index.d.ts +3 -3
  211. package/dist/openapi/index.js +1 -1
  212. package/dist/{openapi-BqRBvAng.js → openapi-B7HZ0f-r.js} +9 -12
  213. package/dist/{openapi-CqqEbHsL.js → openapi-DTaEmTSW.js} +23 -26
  214. package/dist/openapi-ahr8rHu3.js +138 -0
  215. package/dist/operation-findings-DgATDpvh.js +36 -0
  216. package/dist/operations-CxybZErY.d.ts +59 -0
  217. package/dist/orpc/index.d.ts +13 -10
  218. package/dist/orpc/index.js +23 -20
  219. package/dist/otel/index.d.ts +3 -2
  220. package/dist/otel/index.js +53 -27
  221. package/dist/output-Dyw8fyPF.js +88 -0
  222. package/dist/output-files-B3IZJksC.js +1 -0
  223. package/dist/output-files-DhRBBE4n.js +138 -0
  224. package/dist/{rls-fields-CZOMlwHl.js → ownership-BatFgAA4.js} +2393 -2349
  225. package/dist/{package-root-zGkxO3oN.js → package-root-Dk_ETdkp.js} +4 -3
  226. package/dist/{parse-BuyjxhZV.js → parse-Cxq0WxrA.js} +3 -3
  227. package/dist/{parse-local-manifest-BrMozJCo.js → parse-local-manifest-CVSs6J9I.js} +2 -4
  228. package/dist/{parse-local-manifest-JLnaBH0S.d.ts → parse-local-manifest-DgqtruPn.d.ts} +1 -1
  229. package/dist/parse-request-D_tUXG6M.js +26 -0
  230. package/dist/paths-DXSHAMIa.js +42 -0
  231. package/dist/pdp/index.d.ts +7 -3
  232. package/dist/pdp/index.js +47 -29
  233. package/dist/{peer-BOr_kJE1.js → peer-C8swJ2GH.js} +23 -4
  234. package/dist/peer-CRvC7Hg1.js +1 -0
  235. package/dist/permdock-B9JxkBwC.js +868 -0
  236. package/dist/permdock-D7eeLJER.d.ts +502 -0
  237. package/dist/permission-registry-Br4jSNVi.js +385 -0
  238. package/dist/permissions-B-wCP5ZC.js +30 -0
  239. package/dist/{permissions-RJrovw98.js → permissions-CZKiUfFM.js} +4 -3
  240. package/dist/{permissions-CDgvKG5L.d.ts → permissions-oEWfl-kl.d.ts} +1 -2
  241. package/dist/policies-CO1oOymN.js +295 -0
  242. package/dist/{policy-D2W7uv19.d.ts → policy-Czo4n3Hs.d.ts} +2 -2
  243. package/dist/policy-DLZJ5gAp.js +399 -0
  244. package/dist/policy-from-catalog-DzhEc3Y9.js +450 -0
  245. package/dist/policy-module-CTlwMvLI.js +89 -0
  246. package/dist/{policy-IB6yxpC3.d.ts → policy-types-DzwivBgR.d.ts} +939 -1057
  247. package/dist/postgrest-CW0IqC-U.js +566 -0
  248. package/dist/postgrest-NUqZT-RB.d.ts +100 -0
  249. package/dist/powersync-BHfuehf3.js +62 -0
  250. package/dist/powersync-CbzkqL_M.js +1 -0
  251. package/dist/{powersync-Dv1_aWF7.js → powersync-bYUDLOAO.js} +30 -32
  252. package/dist/preset/index.d.ts +146 -0
  253. package/dist/preset/index.js +1 -0
  254. package/dist/preset-DZdU0tne.js +1768 -0
  255. package/dist/principal-source-pHneukrx.js +103 -0
  256. package/dist/prisma/index.d.ts +6 -3
  257. package/dist/prisma/index.js +6 -12
  258. package/dist/{problem-B43ztKIm.js → problem-CTviyH5L.js} +18 -27
  259. package/dist/{problem-details-DX075l9V.d.ts → problem-details-DXlt-vks.d.ts} +1 -1
  260. package/dist/{problem-details-_AMOYz-w.js → problem-details-cn5X30gZ.js} +45 -42
  261. package/dist/problem-types-CJ2325SZ.js +5 -0
  262. package/dist/{prompt-CXYhLfsS.js → prompt-DfZLJLIn.js} +2 -2
  263. package/dist/protected-DEPHc2xV.d.ts +38 -0
  264. package/dist/{protected-utU-SLuy.js → protected-DfjY5mLA.js} +37 -8
  265. package/dist/{provider-CSQd7m92.js → provider-CC-u3bYP.js} +23 -10
  266. package/dist/{provider-DZY281jO.d.ts → provider-DMVt6yYn.d.ts} +1 -1
  267. package/dist/{provider-store-Cfbvo4DE.js → provider-store-B5Yrkhzr.js} +6 -3
  268. package/dist/pull-BgIfno6w.js +256 -0
  269. package/dist/pull-ByOks_Tg.js +1 -0
  270. package/dist/push-CmFVBOeI.js +116 -0
  271. package/dist/pushed-policy-BImMTTIM.d.ts +57 -0
  272. package/dist/pushed-policy-DobP7AHI.js +238 -0
  273. package/dist/react/index.d.ts +8 -8
  274. package/dist/react/index.js +6 -6
  275. package/dist/react/provider-client.d.ts +1 -1
  276. package/dist/react/provider-client.js +1 -2
  277. package/dist/react-native/index.d.ts +24 -63
  278. package/dist/react-native/index.js +45 -27
  279. package/dist/{refs-KYb4ntaz.js → refs-K6eWUJ0H.js} +1 -1
  280. package/dist/relation-walk-3OyDBF0S.js +186 -0
  281. package/dist/relations-BnCWnJGI.js +163 -0
  282. package/dist/renames-CGj7YwcQ.js +175 -0
  283. package/dist/{replay-CYyiLiwO.d.ts → replay-D7iKcLFe.d.ts} +1 -1
  284. package/dist/{replay-BsOyTrdV.js → replay-Du1tJjG7.js} +2 -1
  285. package/dist/request-context-BTRTG7OT.js +71 -0
  286. package/dist/request-context-C2_1lchh.d.ts +5 -0
  287. package/dist/request-schema-CMreVuFM.js +148 -0
  288. package/dist/resend/index.d.ts +126 -0
  289. package/dist/resend/index.js +379 -0
  290. package/dist/resource-relations-D_jw0BFx.js +243 -0
  291. package/dist/retire-CALjIQ7e.js +240 -0
  292. package/dist/{revocations-Cy06JNx2.d.ts → revocations-R07lFBnX.d.ts} +2 -0
  293. package/dist/rls-BA8an5Ap.js +336 -0
  294. package/dist/{rls-DiinlRML.js → rls-j6t43t7n.js} +1066 -1068
  295. package/dist/role-builder-CXbis5-X.js +623 -0
  296. package/dist/{rpc-DL9Sqvb1.js → rpc-aPyNi6tA.js} +18 -8
  297. package/dist/run-CNsApDpd.js +1 -0
  298. package/dist/run-DOfMtc9V.js +723 -0
  299. package/dist/run-ticket-BjhTOi6u.d.ts +124 -0
  300. package/dist/run-ticket-sxFI6LAk.js +337 -0
  301. package/dist/{runtime-CB8gQFvS.js → runtime-D3VTAiCA.js} +1 -1
  302. package/dist/{saas-DhpJjnBA.js → saas-FO-Q8oj0.js} +18 -15
  303. package/dist/scan-BOI5tJ-6.js +29 -0
  304. package/dist/{schema-D3MnDMxa.js → schema-B4v0Qrac.js} +106 -10
  305. package/dist/schema-yLuBWWsh.js +130 -0
  306. package/dist/scim/index.d.ts +2 -2
  307. package/dist/scim/index.js +1 -2
  308. package/dist/{scim-BFGBBAqR.js → scim-ClHtpyV3.js} +213 -87
  309. package/dist/{scopes-CVdPrWN-.js → scopes-CUPSjo9q.js} +20 -7
  310. package/dist/server/index.d.ts +13 -134
  311. package/dist/server/index.js +13 -10
  312. package/dist/server-DqCT4CgZ.js +453 -0
  313. package/dist/{create-B1d519XK.d.ts → server-types-BLd4MnBX.d.ts} +89 -70
  314. package/dist/{sha256-BO0swRXL.js → sha256-D9ihqmvd.js} +8 -1
  315. package/dist/shared-CD11nBbC.js +304 -0
  316. package/dist/{shared-DRu8VFVM.js → shared-DvvFzYXe.js} +8 -9
  317. package/dist/signals-D3NcTKUS.js +32 -0
  318. package/dist/sink-BEZSlMS_.js +957 -0
  319. package/dist/sink-Bj_lDUDq.d.ts +225 -0
  320. package/dist/{skills-Biq5uup3.js → skills-B6lVdD_W.js} +16 -8
  321. package/dist/skills-CTYwkl44.js +51 -0
  322. package/dist/snapshot-CXUWfsNy.js +269 -0
  323. package/dist/{snapshot-cache-D6jLelln.js → snapshot-cache-DZHQ0KF6.js} +11 -5
  324. package/dist/{snapshot-cache-B-LxUahj.d.ts → snapshot-cache-DqK9eDmM.d.ts} +7 -5
  325. package/dist/solid/index.d.ts +24 -25
  326. package/dist/solid/index.js +41 -11
  327. package/dist/solid-start/index.d.ts +52 -0
  328. package/dist/solid-start/index.js +49 -0
  329. package/dist/{sources-BdOYLw9j.d.ts → sources-BV9j0DeZ.d.ts} +11 -13
  330. package/dist/{sources-4p0-4xQm.js → sources-vs5dGOsS.js} +147 -142
  331. package/dist/sql-B5T1IL83.js +55 -0
  332. package/dist/src-DLfUWFAI.js +1851 -0
  333. package/dist/ssf/index.d.ts +4 -4
  334. package/dist/ssf/index.js +440 -106
  335. package/dist/standard-webhooks-6lg8v_is.d.ts +88 -0
  336. package/dist/standard-webhooks-DgFFD-Ga.js +228 -0
  337. package/dist/storage-C2bWdvJH.js +132 -0
  338. package/dist/{store-DMAWwAJV.js → store-4u_hxjWa.js} +42 -55
  339. package/dist/{store-options-ByhZq1jV.js → store-options-BqEakYRa.js} +38 -24
  340. package/dist/{stores-BT2pSCub.js → stores-BbsD4fAR.js} +7 -3
  341. package/dist/stores-ClZUgeoP.d.ts +30 -0
  342. package/dist/{stream-D1RXubw2.d.ts → stream-7-xmnf3U.d.ts} +2 -2
  343. package/dist/{stream-DDpvynSB.js → stream-CvdUS9V1.js} +10 -2
  344. package/dist/style-DiKWnAvn.js +1 -0
  345. package/dist/{style-CTm1AXDT.js → style-Uao76wO7.js} +3 -2
  346. package/dist/subject-BGoM5o8B.js +17 -0
  347. package/dist/{subject-settings-BwBmCdTR.js → subject-settings-CkEwrw3W.js} +23 -5
  348. package/dist/supabase/index.d.ts +23 -106
  349. package/dist/supabase/index.js +5 -4
  350. package/dist/supabase/middleware.d.ts +13 -6
  351. package/dist/supabase/middleware.js +16 -11
  352. package/dist/supabase-9pqI57pW.js +92 -0
  353. package/dist/{supabase-C0qESOa-.js → supabase-Dxlp8A94.js} +124 -247
  354. package/dist/supabase-hook-CXcGpHqq.js +1 -0
  355. package/dist/{supabase-hook-ntETYCQu.js → supabase-hook-DdDQhMlw.js} +1659 -819
  356. package/dist/{supautils-u8jXTGrt.js → supautils-B6HYL9eL.js} +2 -2
  357. package/dist/support-session-C6xJQYut.js +158 -0
  358. package/dist/svelte/Protected.svelte +11 -4
  359. package/dist/svelte/index.d.ts +7 -7
  360. package/dist/svelte/index.js +26 -12
  361. package/dist/svelte/runtime.d.ts +10 -3
  362. package/dist/svelte/runtime.js +4 -3
  363. package/dist/svelte/source.d.ts +7 -7
  364. package/dist/svelte/source.js +5 -5
  365. package/dist/sveltekit/index.d.ts +51 -0
  366. package/dist/sveltekit/index.js +27 -0
  367. package/dist/tanstack-start/index.d.ts +51 -0
  368. package/dist/tanstack-start/index.js +40 -0
  369. package/dist/target-Bw37TFNA.js +51 -0
  370. package/dist/{validity-uOp8UpYn.js → tenancy-DN2QAx9z.js} +6 -42
  371. package/dist/terminal/index.d.ts +11 -9
  372. package/dist/terminal/index.js +36 -316
  373. package/dist/testing/index.d.ts +391 -106
  374. package/dist/testing/index.js +4574 -1286
  375. package/dist/testing/saas/index.d.ts +9 -8
  376. package/dist/testing/saas/index.js +2 -2
  377. package/dist/testing/saas/permissions.d.ts +1 -1
  378. package/dist/testing/saas/permissions.js +1 -2
  379. package/dist/text-BMFRfBqc.js +8 -0
  380. package/dist/{text-diff-BdkkYSbi.js → text-diff-BQcUapOb.js} +1 -1
  381. package/dist/thenable-yD7SabqG.js +31 -0
  382. package/dist/time-DkWjdL98.js +71 -0
  383. package/dist/{token-CIWxJOCh.js → token-BLZcjQgt.js} +15 -6
  384. package/dist/tool-refusal-CMLN5xhn.js +41 -0
  385. package/dist/trpc/index.d.ts +12 -9
  386. package/dist/trpc/index.js +18 -17
  387. package/dist/{types-DbjRN55U.d.ts → types-5Ut_pbKy.d.ts} +141 -13
  388. package/dist/types-BNORmDM8.d.ts +172 -0
  389. package/dist/types-BjV-fqcA.d.ts +57 -0
  390. package/dist/{types-QCuYJh4q.d.ts → types-BqAKcRNW.d.ts} +2 -1
  391. package/dist/types-C8-KNsFf.d.ts +107 -0
  392. package/dist/{types-aqOHTHcp.d.ts → types-CCpc2Dcv.d.ts} +77 -17
  393. package/dist/{types-Dnemwd77.d.ts → types-CZTnPFzM.d.ts} +50 -11
  394. package/dist/{types-C97IskBw.d.ts → types-CdlxsYQh.d.ts} +23 -11
  395. package/dist/{types-DxiCGmmd.d.ts → types-ClZaWzfb.d.ts} +9 -6
  396. package/dist/types-DX0LaKTb.d.ts +157 -0
  397. package/dist/types-DiQjupG2.d.ts +332 -0
  398. package/dist/types-DqzsnlSA.js +67 -0
  399. package/dist/types-_sHy8BQf.d.ts +65 -0
  400. package/dist/types-fbZ7JEXr.d.ts +89 -0
  401. package/dist/types-tIgIeIKJ.d.ts +66 -0
  402. package/dist/unplugin/index.d.ts +1 -1
  403. package/dist/unplugin/index.js +2 -2
  404. package/dist/usage-CHOtwL19.js +1 -0
  405. package/dist/usage-DHtE8j4E.js +32 -0
  406. package/dist/{usage-ItS7nLcl.js → usage-T5mXq98v.js} +56 -13
  407. package/dist/{validation-error-Ba264OaJ.d.ts → validation-error-Bg5Tpluk.d.ts} +1 -1
  408. package/dist/{validation-error-CnjZ4t92.js → validation-error-ZfUHbKvf.js} +1 -1
  409. package/dist/validity-CZ7-y0Cj.js +79 -0
  410. package/dist/{verifier-BxBo6I44.js → verifier-DHuh-okk.js} +68 -21
  411. package/dist/verify-DbCL9bnB.js +1770 -0
  412. package/dist/{version-BvacVTZR.js → version-CEbQ5UeM.js} +4 -3
  413. package/dist/version-DXkYUISx.js +1 -0
  414. package/dist/{views-Soe7bGSC.js → views-DTIIO-oQ.js} +41 -2
  415. package/dist/{permissions-DttnqqxC.d.ts → vocabulary-D6lPdb4Z.d.ts} +120 -29
  416. package/dist/vue/index.d.ts +25 -21
  417. package/dist/vue/index.js +25 -9
  418. package/dist/waiter-BGUtGYoU.js +67 -0
  419. package/dist/waiter-CKy4MQSY.d.ts +36 -0
  420. package/dist/watch-Cb-NcaUw.js +1 -0
  421. package/dist/{watch-DVBJ9cBq.js → watch-CszoTJMq.js} +47 -8
  422. package/dist/webmcp/index.d.ts +2 -2
  423. package/dist/webmcp/index.js +13 -37
  424. package/dist/where-scope-Dv-WTP-w.js +306 -0
  425. package/dist/who-can-D0QoYbEb.js +364 -0
  426. package/dist/wire-delegation-Cv3W2eaM.js +36 -0
  427. package/dist/wire-denial-C7PaVYEM.js +27 -0
  428. package/dist/workflow/index.d.ts +5 -0
  429. package/dist/workflow/index.js +223 -0
  430. package/dist/workflow-sdk/index.d.ts +56 -0
  431. package/dist/workflow-sdk/index.js +78 -0
  432. package/dist/wrap-Bd1Tejur.d.ts +15 -0
  433. package/dist/wrap-gX61EtpB.js +27 -0
  434. package/package.json +140 -41
  435. package/schemas/access-event-v1.json +118 -0
  436. package/schemas/approval-request-v1.json +34 -1
  437. package/schemas/approval-signature-v1.json +94 -0
  438. package/schemas/automation-event-v1.json +113 -0
  439. package/schemas/capability-v1.json +84 -0
  440. package/schemas/catalog-event-v1.json +87 -0
  441. package/schemas/catalog-v1.json +129 -12
  442. package/schemas/cli-commands-v1.json +164 -0
  443. package/schemas/cli-result-v1.json +96 -0
  444. package/schemas/cloud-api-v1.json +5407 -0
  445. package/schemas/connector-v1.json +408 -0
  446. package/schemas/credential-event-v1.json +81 -0
  447. package/schemas/credential-v1.json +134 -0
  448. package/schemas/decision-event-v1.json +288 -0
  449. package/schemas/delivery-event-v1.json +117 -0
  450. package/schemas/directory-event-v1.json +85 -0
  451. package/schemas/evidence-export-v1.json +54 -0
  452. package/schemas/membership-event-v1.json +93 -0
  453. package/schemas/policy-v1.json +68 -0
  454. package/schemas/pushed-policy-v1.json +236 -0
  455. package/schemas/run-v1.json +162 -0
  456. package/schemas/snapshot-v1.json +138 -0
  457. package/schemas/supabase-claims-v1.json +4 -4
  458. package/schemas/supabase-manifest-v1.json +5 -1
  459. package/schemas/support-session-v1.json +111 -0
  460. package/skills/permdock/SKILL.md +16 -12
  461. package/skills/permdock-agents/SKILL.md +40 -23
  462. package/skills/permdock-agents/references/operations-automations-chat.md +221 -0
  463. package/skills/permdock-agents/references/runtimes.md +22 -18
  464. package/skills/permdock-approvals/SKILL.md +29 -13
  465. package/skills/permdock-approvals/references/delivery-and-waiters.md +172 -0
  466. package/skills/permdock-approvals/references/stores-and-resume.md +21 -7
  467. package/skills/permdock-audit/SKILL.md +3 -3
  468. package/skills/permdock-credentials/SKILL.md +5 -5
  469. package/skills/permdock-credentials/references/tokens-keys-links.md +19 -10
  470. package/skills/permdock-data/SKILL.md +6 -6
  471. package/skills/permdock-data/references/queries-and-rls.md +13 -8
  472. package/skills/permdock-data/references/relationships.md +3 -3
  473. package/skills/permdock-tenancy/SKILL.md +20 -7
  474. package/skills/permdock-tenancy/references/contacts-and-support-sessions.md +122 -0
  475. package/skills/permdock-tenancy/references/ownership-and-custom-roles.md +6 -4
  476. package/skills/permdock-wire/SKILL.md +18 -12
  477. package/skills/permdock-wire/references/adapters.md +146 -50
  478. package/skills/permdock-wire/references/policy-options.md +15 -6
  479. package/skills/permdock-wire/references/presets-and-recipes.md +58 -0
  480. package/dist/approvals-DbYAuNkG.js +0 -224
  481. package/dist/arazzo-C9chp3ST.js +0 -54
  482. package/dist/bind-C_ob3LKa.d.ts +0 -25
  483. package/dist/catalog-CRW5Mx_B.js +0 -2
  484. package/dist/catalog-CYj-mX2O.js +0 -48
  485. package/dist/catalog-DWF5cYqB.js +0 -55
  486. package/dist/cloud-CfwZ39Rl.js +0 -50
  487. package/dist/cloud-DWLXO2af.js +0 -118
  488. package/dist/collect-CHB22Sx4.js +0 -83
  489. package/dist/collect-DSWOk19R.js +0 -2
  490. package/dist/commands-BeaGNj_o.js +0 -97
  491. package/dist/config-ir40y8m0.js +0 -36
  492. package/dist/create-CMwIl-w2.js +0 -253
  493. package/dist/delegation-D8pUEuce.js +0 -103
  494. package/dist/diff-C9RDjjhs.js +0 -48
  495. package/dist/doctor-Djh6JDEk.js +0 -53
  496. package/dist/doctor-DvH0IQff.js +0 -1194
  497. package/dist/doctor-collect-CjdO0wQX.js +0 -665
  498. package/dist/duration-xK2jGFVc.js +0 -25
  499. package/dist/errors-CWfoNg9N.js +0 -47
  500. package/dist/errors-DRnGZHzF.js +0 -30
  501. package/dist/evaluation-items-CfCCejQd.js +0 -40
  502. package/dist/expiry-BoBJ8Tvc.js +0 -7
  503. package/dist/fields-BMl1RxoX.js +0 -26
  504. package/dist/grantee-Cv5Sogfv.js +0 -602
  505. package/dist/headers-BZSDieNT.js +0 -6
  506. package/dist/headers-Cf-zWvsO.d.ts +0 -6
  507. package/dist/ids-DC4V4CFu.js +0 -18
  508. package/dist/index-0nNqHspG.d.ts +0 -6
  509. package/dist/index-BNc7Wer_.d.ts +0 -483
  510. package/dist/index-C7Tw7MaW.d.ts +0 -201
  511. package/dist/instance-options-Dhhcnm3y.js +0 -22
  512. package/dist/load-DwJUafYN.js +0 -2
  513. package/dist/manifest-iaoBXHKc.js +0 -783
  514. package/dist/map-AcxK9o_D.js +0 -147
  515. package/dist/may-use-DndQ5tQ-.js +0 -77
  516. package/dist/openapi-CQTsgKoB.js +0 -164
  517. package/dist/permdock-CbgvLnuo.js +0 -3479
  518. package/dist/permissions-DVoF6dMt.js +0 -662
  519. package/dist/policy-xyWg7QdR.js +0 -1122
  520. package/dist/powersync-CrBX8hY6.js +0 -2
  521. package/dist/powersync-DE19b9dT.js +0 -62
  522. package/dist/protected-BdnIEFkY.d.ts +0 -27
  523. package/dist/protected-xAr24FEC.d.ts +0 -40
  524. package/dist/relations-cjOL01hZ.js +0 -505
  525. package/dist/rls-P-BeBx0n.js +0 -238
  526. package/dist/rls-graph-CHwx0V8q.js +0 -435
  527. package/dist/rls-ownership-DcYlZ09B.js +0 -843
  528. package/dist/rls-shared-Cewd_-zI.js +0 -495
  529. package/dist/rls-verify-CMv9H3wV.js +0 -746
  530. package/dist/run-BWc9qqvE.js +0 -174
  531. package/dist/server-DlZ28Oz5.js +0 -268
  532. package/dist/sink-B1fZzIMf.d.ts +0 -104
  533. package/dist/sink-Bd9PSyfq.js +0 -141
  534. package/dist/skills-C5CbhhpG.js +0 -56
  535. package/dist/snapshot-Enxd0n-s.js +0 -975
  536. package/dist/sql-xdg5f4Fi.js +0 -27
  537. package/dist/src-BDwEZWrZ.js +0 -568
  538. package/dist/store-jOBYpiXC.d.ts +0 -36
  539. package/dist/stores-C0IMQrGI.d.ts +0 -52
  540. package/dist/subject-C6dLxqHU.js +0 -24
  541. package/dist/supabase-config-Bj3iDH2I.js +0 -472
  542. package/dist/supabase-hook-gd3s8bxB.js +0 -2
  543. package/dist/supabase-s4o9s1O1.js +0 -83
  544. package/dist/thenable-okc2xDsj.js +0 -10
  545. package/dist/types-BnIEz1sU.d.ts +0 -48
  546. package/dist/types-Bvc4oWT6.d.ts +0 -9
  547. package/dist/types-CKNSyIf_.d.ts +0 -52
  548. package/dist/types-Cq_H8N_X.d.ts +0 -197
  549. package/dist/usage-B0YuTQRO.js +0 -42
  550. package/dist/usage-DorAJiU_.js +0 -2
  551. package/dist/vocabulary-DA8a8zif.d.ts +0 -56
  552. package/dist/watch-BwxLTYMZ.js +0 -2
@@ -1,12 +1,28 @@
1
- import { t as compact } from "./compact-y6vfu2_f.js";
2
- import { t as describe } from "./describe-B_gVZEVi.js";
3
- import { a as deniedMessage } from "./errors-Cz5zn0mW.js";
4
- import { t as createPermDock } from "./permdock-CbgvLnuo.js";
1
+ import { t as compact } from "./compact-CAf557ZB.js";
2
+ import { t as describe } from "./describe-BybMRY7A.js";
3
+ import { a as deniedMessage } from "./errors-BKy0EfhN.js";
4
+ import { t as actorMayCallTool } from "./delegation-DaXVdDhM.js";
5
5
  import { n as resourceRef } from "./resource-ref-CaS9yVPi.js";
6
- import { t as mayUse } from "./may-use-DndQ5tQ-.js";
7
- import { l as storedApprovalToken, s as resumeDecision } from "./helpers-H_KARDVC.js";
8
- import { t as instanceOptions } from "./instance-options-Dhhcnm3y.js";
9
- import { n as tenantScope, t as actorFrom } from "./adapter-context-mlWsVGGg.js";
6
+ import { c as withApp } from "./permdock-B9JxkBwC.js";
7
+ import { l as storedApprovalToken, s as resumeDecision } from "./helpers-DTcZOzhF.js";
8
+ import { n as resolveOrNull } from "./build-instance-BMnAudHn.js";
9
+ import { n as tenantScope, t as actorFrom } from "./adapter-context-CRhqyzCk.js";
10
+ import { n as requestContext, t as buildReportingInstance } from "./request-context-BTRTG7OT.js";
11
+ //#region src/agent/denied-text.ts
12
+ /** The hook's text, or `event.text` when there is no hook or it throws or returns no string. */
13
+ function refusalText(hook, event, report) {
14
+ if (hook === void 0) return event.text;
15
+ try {
16
+ const text = hook(event);
17
+ if (text === void 0) return event.text;
18
+ if (typeof text !== "string" || text === "") throw new TypeError("PermDock: deniedText must return a non-empty string or undefined");
19
+ return text;
20
+ } catch (error) {
21
+ report(error);
22
+ return event.text;
23
+ }
24
+ }
25
+ //#endregion
10
26
  //#region src/agent/reason.ts
11
27
  function modelReason(decision, permission, subjectId) {
12
28
  if (decision.outcome === "denied") return deniedMessage(permission?.key ?? "unknown", subjectId, decision.denials, decision.alternatives.map((leaf) => leaf.key));
@@ -29,35 +45,43 @@ function approvalTokenOf(context) {
29
45
  function runDecide(permdock, permission, data, how) {
30
46
  return permdock.decide(permission, data, how);
31
47
  }
32
- function createAgentKernel(policy, options) {
48
+ function createAgentKernel(policy, given) {
49
+ const options = withApp(policy, given);
33
50
  const cache = /* @__PURE__ */ new WeakMap();
51
+ const reporters = /* @__PURE__ */ new WeakMap();
52
+ const report = (permdock, error) => {
53
+ if (permdock !== void 0) reporters.get(permdock)?.(error);
54
+ };
34
55
  const instance = (context) => {
35
56
  if (typeof context === "object" && context !== null) {
36
57
  const hit = cache.get(context);
37
58
  if (hit !== void 0) return hit;
38
59
  }
39
60
  const built = (async () => {
40
- let user = null;
41
- try {
42
- user = await options.subject(context);
43
- } catch {
44
- user = null;
45
- }
61
+ const user = await resolveOrNull(() => options.subject(context));
46
62
  const actor = await actorFrom(options.actor, context);
47
- let delegation;
48
- if (options.delegation !== void 0) try {
49
- delegation = await options.delegation(context);
50
- } catch {
51
- delegation = void 0;
52
- }
63
+ const delegate = options.delegation;
64
+ const delegation = delegate === void 0 ? void 0 : await resolveOrNull(() => delegate(context)) ?? void 0;
53
65
  const { tenant } = await tenantScope(options.tenant, context);
54
- const created = await createPermDock(policy, user, compact({
55
- tenant,
56
- actor,
57
- delegation,
58
- ...instanceOptions(options)
59
- }));
60
- return options.wrap?.(created) ?? created;
66
+ const errors = [];
67
+ const requestValues = await requestContext(options.context, context, errors);
68
+ const wrap = options.wrap;
69
+ const typedWrap = (created) => wrap === void 0 ? created : wrap(created);
70
+ const { permdock, report: reportTo } = await buildReportingInstance({
71
+ policy,
72
+ user,
73
+ sources: options,
74
+ scope: {
75
+ tenant,
76
+ actor,
77
+ delegation,
78
+ context: requestValues
79
+ },
80
+ errors,
81
+ wrap: typedWrap
82
+ });
83
+ reporters.set(permdock, reportTo);
84
+ return permdock;
61
85
  })();
62
86
  if (typeof context === "object" && context !== null) {
63
87
  cache.set(context, built);
@@ -74,6 +98,23 @@ function createAgentKernel(policy, options) {
74
98
  let permdock;
75
99
  try {
76
100
  permdock = await instance(context);
101
+ if (how.tool !== void 0 && !actorMayCallTool(permdock.subject.actor, how.tool)) {
102
+ const refused = {
103
+ outcome: "denied",
104
+ denials: [{
105
+ role: null,
106
+ reason: "agent-tool-not-delegated"
107
+ }],
108
+ alternatives: []
109
+ };
110
+ return {
111
+ ok: true,
112
+ permdock,
113
+ data: void 0,
114
+ raw: refused,
115
+ decision: refused
116
+ };
117
+ }
77
118
  let data;
78
119
  if (binding.data !== void 0) {
79
120
  try {
@@ -91,11 +132,16 @@ function createAgentKernel(policy, options) {
91
132
  permdock
92
133
  };
93
134
  }
94
- const raw = runDecide(permdock, binding.permission, data, {
135
+ const raw = runDecide(permdock, binding.permission, data, compact({
95
136
  adapter: options.adapter,
96
137
  boundary,
97
- source: how.source
98
- });
138
+ call: how.call,
139
+ args,
140
+ operation: binding.meta === void 0 ? void 0 : {
141
+ name: binding.name ?? "",
142
+ meta: binding.meta
143
+ }
144
+ }));
99
145
  const decision = how.resume ? await resumeDecision({
100
146
  decision: raw,
101
147
  permission: binding.permission,
@@ -120,13 +166,13 @@ function createAgentKernel(policy, options) {
120
166
  });
121
167
  }
122
168
  };
123
- const check = (binding, args, context, checkOptions = {}) => run(binding, args, context, {
169
+ const check = (binding, args, context, checkOptions = {}) => run(binding, args, context, compact({
124
170
  resume: checkOptions.simulate !== true,
125
- source: checkOptions.simulate === true ? "simulate" : "adapter",
126
- decideOptions: checkOptions
127
- });
128
- const evaluate = async (binding, toolName, args, context, decideOptions = {}) => {
129
- const checked = await check(binding, args, context, decideOptions);
171
+ call: checkOptions.simulate === true ? "simulate" : "adapter",
172
+ decideOptions: checkOptions,
173
+ tool: checkOptions.tool
174
+ }));
175
+ const verdictOf = (checked, binding, toolName) => {
130
176
  if (!checked.ok) {
131
177
  if (checked.failure !== "no-data" || checked.permdock === void 0) return {
132
178
  outcome: "denied",
@@ -171,28 +217,58 @@ function createAgentKernel(policy, options) {
171
217
  reason: modelReason(decision, binding.permission, permdock.subject.principal?.id)
172
218
  };
173
219
  };
220
+ const evaluate = async (binding, toolName, args, context, decideOptions = {}) => {
221
+ const checked = await check(binding, args, context, {
222
+ ...decideOptions,
223
+ tool: toolName
224
+ });
225
+ return relabel(verdictOf(checked, binding, toolName), checked.permdock);
226
+ };
227
+ const relabel = (verdict, permdock) => {
228
+ const hook = options.deniedText;
229
+ if (hook === void 0 || verdict.outcome === "granted") return verdict;
230
+ const onError = (error) => {
231
+ report(permdock, error);
232
+ };
233
+ if (verdict.outcome === "denied") return {
234
+ ...verdict,
235
+ reason: refusalText(hook, {
236
+ decision: verdict.decision,
237
+ permission: verdict.permission,
238
+ text: verdict.reason
239
+ }, onError)
240
+ };
241
+ return {
242
+ ...verdict,
243
+ summary: refusalText(hook, {
244
+ decision: verdict.decision,
245
+ permission: verdict.permission,
246
+ text: verdict.summary
247
+ }, onError)
248
+ };
249
+ };
174
250
  const tokenFor = async (binding, args, context) => {
175
251
  const checked = await run(binding, args, context, {
176
252
  resume: false,
177
- source: "adapter",
253
+ call: "adapter",
178
254
  decideOptions: {}
179
255
  });
180
256
  return checked.ok && checked.raw.outcome === "approval-required" ? checked.raw.token : void 0;
181
257
  };
182
258
  const decideTool = (toolName, args, context, decideOptions = {}) => {
183
259
  const binding = Object.hasOwn(tools, toolName) ? tools[toolName] : void 0;
184
- if (binding === void 0) return Promise.resolve({
260
+ if (binding === void 0) return Promise.resolve(relabel({
185
261
  outcome: "denied",
186
262
  decision: null,
187
263
  permission: void 0,
188
264
  reason: unmappedReason(toolName)
189
- });
265
+ }, void 0));
190
266
  return evaluate(binding, toolName, args, context, decideOptions);
191
267
  };
192
268
  const allowedToolNames = async (context) => {
193
269
  const permdock = await instance(context);
194
270
  const allowed = /* @__PURE__ */ new Set();
195
- for (const [name, binding] of Object.entries(tools)) if (mayUse(permdock, binding.permission)) allowed.add(name);
271
+ for (const [name, binding] of Object.entries(tools)) if (actorMayCallTool(permdock.subject.actor, name) && permdock.mayUse(binding.permission)) allowed.add(name);
196
272
  return allowed;
197
273
  };
198
274
  return {
@@ -201,8 +277,9 @@ function createAgentKernel(policy, options) {
201
277
  evaluate,
202
278
  check,
203
279
  tokenFor,
204
- allowedToolNames
280
+ allowedToolNames,
281
+ report
205
282
  };
206
283
  }
207
284
  //#endregion
208
- export { createAgentKernel as n, approvalTokenOf as t };
285
+ export { createAgentKernel as n, refusalText as r, approvalTokenOf as t };
@@ -1,6 +1,7 @@
1
- import { Ir as Condition, Pr as Subject, mn as WhereResult } from "../policy-IB6yxpC3.js";
1
+ import { Rt as Instant, ir as Subject, lr as Condition } from "../policy-types-DzwivBgR.js";
2
+ import { c as WhereResult } from "../permdock-D7eeLJER.js";
2
3
  import { r as RelationsMapping } from "../graph-sql-B-dsAT6j.js";
3
- import { s as MembershipsMapping } from "../compile-BkRyBDBw.js";
4
+ import { s as MembershipsMapping } from "../compile-Ckm2HqBZ.js";
4
5
  import { n as WithSubjectOptions, t as RowCheck } from "../row-check-Dt35czLy.js";
5
6
  //#region src/kysely/types.d.ts
6
7
  type KyselySelectQuery = {
@@ -33,7 +34,8 @@ type KyselyWhereOptions = {
33
34
  readonly memberships?: MembershipsMapping;
34
35
  /** Where the relation graph lives; graph grants compile to Postgres subqueries with it and are refused without. */
35
36
  readonly relations?: RelationsMapping;
36
- readonly now?: number;
37
+ /** The clock membership expiry is read at; a `Temporal.Instant` fits. Defaults to the current time. */
38
+ readonly now?: Instant;
37
39
  /** Kysely's `sql` tag, for graph subqueries on runtimes without `require`; loaded from the `kysely` peer by default. */
38
40
  readonly sql?: KyselySql;
39
41
  };
@@ -1,7 +1,7 @@
1
- import { t as compact } from "../compact-y6vfu2_f.js";
2
- import { w as assertSafeKey } from "../permissions-DVoF6dMt.js";
3
- import { n as escapeLike, t as compileWhere } from "../compile-Ba4blROR.js";
4
- import { i as rowCheckFrom, r as subjectStatements, t as statementTemplate } from "../subject-settings-BwBmCdTR.js";
1
+ import { t as compact } from "../compact-CAf557ZB.js";
2
+ import { t as assertSafeKey } from "../paths-DXSHAMIa.js";
3
+ import { n as escapeLike, t as compileWhere } from "../compile-CMqMx_IN.js";
4
+ import { a as rowCheckFrom, i as templateOf, r as subjectStatements, s as loadPeer, t as statementTemplate } from "../subject-settings-CkEwrw3W.js";
5
5
  //#region src/kysely/to-where.ts
6
6
  function ident(name) {
7
7
  assertSafeKey(name, "sql identifier");
@@ -34,13 +34,7 @@ function containsExpr(eb, column, field, value, options) {
34
34
  }
35
35
  function loadSql(injected) {
36
36
  if (injected !== void 0) return injected;
37
- const loader = globalThis.process?.getBuiltinModule?.("node:module");
38
- try {
39
- if (loader === void 0) throw new Error("no module loader");
40
- return loader.createRequire(import.meta.url)("kysely").sql;
41
- } catch {
42
- throw new Error("PermDock: graph grants and withSubject in permdock/kysely need the kysely peer; pass `sql` on runtimes without require");
43
- }
37
+ return loadPeer("kysely", "PermDock: graph grants and withSubject in permdock/kysely need the kysely peer; pass `sql` on runtimes without require").sql;
44
38
  }
45
39
  function graphExpr(node, table, options) {
46
40
  const sql = loadSql(options.sql);
@@ -54,9 +48,7 @@ function graphExpr(node, table, options) {
54
48
  values.push("column" in part ? sql.ref(col(table, part.column, options.columns)) : "subject" in part ? node.subject : part.value);
55
49
  strings.push("");
56
50
  }
57
- const template = strings;
58
- Object.defineProperty(template, "raw", { value: strings });
59
- return sql(template, ...values);
51
+ return sql(templateOf(strings), ...values);
60
52
  }
61
53
  function render(eb, node, table, options) {
62
54
  switch (node.kind) {
@@ -1,6 +1,7 @@
1
1
  import { createContext, useLayoutEffect, useRef, useState } from "react";
2
2
  //#region src/react/context.ts
3
3
  const PermDockStoreContext = createContext(null);
4
+ const PermDockUiContext = createContext({});
4
5
  const PermDockSnapshotPromiseContext = createContext(null);
5
6
  //#endregion
6
7
  //#region src/react/keyed.ts
@@ -34,7 +35,8 @@ function sameHeaders(a, b) {
34
35
  * Store options whose identity survives a re-render, so an inline `headers`
35
36
  * object or `fetch` arrow does not rebuild the store and drop its snapshot.
36
37
  * `headers` compare by value, unless `headersByValue` is `false` for a store
37
- * that only reads `readHeaders`; `fetch` and `verifier` call the latest prop.
38
+ * that only reads `readHeaders`; `fetch`, `verifier`, `onSnapshot` and
39
+ * `onClear` call the latest prop.
38
40
  */
39
41
  function useLiveOptions(props, headersByValue = true) {
40
42
  const latest = useRef(props);
@@ -49,12 +51,23 @@ function useLiveOptions(props, headersByValue = true) {
49
51
  const verifier = latest.current.verifier;
50
52
  return verifier === void 0 ? Promise.reject(/* @__PURE__ */ new Error("PermDock: the verifier prop was removed.")) : verifier.verify(token, expectations);
51
53
  } }));
54
+ const [liveOnSnapshot] = useState(() => {
55
+ const call = (snapshot, tenant, raw) => {
56
+ latest.current.onSnapshot?.(snapshot, tenant, raw);
57
+ };
58
+ return call;
59
+ });
60
+ const [liveOnClear] = useState(() => () => {
61
+ latest.current.onClear?.();
62
+ });
52
63
  return {
53
64
  headers,
54
65
  readHeaders,
55
66
  fetch: liveFetch,
56
- verifier: props.verifier === void 0 ? void 0 : liveVerifier
67
+ verifier: props.verifier === void 0 ? void 0 : liveVerifier,
68
+ onSnapshot: props.onSnapshot === void 0 ? void 0 : liveOnSnapshot,
69
+ onClear: props.onClear === void 0 ? void 0 : liveOnClear
57
70
  };
58
71
  }
59
72
  //#endregion
60
- export { PermDockStoreContext as i, useKeyed as n, PermDockSnapshotPromiseContext as r, useLiveOptions as t };
73
+ export { PermDockUiContext as a, PermDockStoreContext as i, useKeyed as n, PermDockSnapshotPromiseContext as r, useLiveOptions as t };
@@ -0,0 +1 @@
1
+ export { a as loadModule, s as pickNamed } from "./load-DFS_ry0W.js";
@@ -1,8 +1,16 @@
1
- import { _ as listPermissions } from "./permissions-DVoF6dMt.js";
1
+ import { c as listPermissions } from "./permission-registry-Br4jSNVi.js";
2
+ import { a as describeError, n as CliError } from "./errors-CWTY6uih.js";
2
3
  import { dirname, resolve } from "node:path";
3
4
  import { pathToFileURL } from "node:url";
4
5
  import { createJiti } from "jiti";
5
- //#region src/cli/load.ts
6
+ //#region src/cli/project/load.ts
7
+ /** A project module the CLI cannot use: the project's to fix, so a usage error. */
8
+ function invalidModule(message, cause) {
9
+ return new CliError("usage", message, {
10
+ code: "config_invalid",
11
+ ...cause === void 0 ? {} : { cause }
12
+ });
13
+ }
6
14
  /**
7
15
  * Errors Node raises while resolving or parsing a module graph, before any of
8
16
  * its code runs, so loading it again through jiti cannot repeat a side effect.
@@ -36,6 +44,14 @@ function importWithJiti(abs, fresh) {
36
44
  * returned as written; `default` is not merged into the namespace.
37
45
  */
38
46
  async function loadModule(abs, options) {
47
+ try {
48
+ return await importModule(abs, options);
49
+ } catch (error) {
50
+ if (error instanceof CliError) throw error;
51
+ throw invalidModule(describeError(error), error);
52
+ }
53
+ }
54
+ async function importModule(abs, options) {
39
55
  let loaded;
40
56
  if (options?.fresh === true) loaded = await importWithJiti(abs, true);
41
57
  else try {
@@ -44,7 +60,7 @@ async function loadModule(abs, options) {
44
60
  if (!loadsWithJiti(error)) throw error;
45
61
  loaded = await importWithJiti(abs, false);
46
62
  }
47
- if (loaded === null || typeof loaded !== "object") throw new Error(`PermDock CLI: module '${abs}' did not export an object`);
63
+ if (loaded === null || typeof loaded !== "object") throw invalidModule(`PermDock CLI: module '${abs}' did not export an object`);
48
64
  return loaded;
49
65
  }
50
66
  function pickNamed(mod, names) {
@@ -52,24 +68,32 @@ function pickNamed(mod, names) {
52
68
  return mod["default"];
53
69
  }
54
70
  function asPermissionTree(value) {
55
- if (value === null || typeof value !== "object") throw new Error("PermDock CLI: permissions export is not a permission tree");
71
+ if (value === null || typeof value !== "object") throw invalidModule("PermDock CLI: permissions export is not a permission tree");
56
72
  return value;
57
73
  }
58
74
  function asPolicy(value) {
59
- if (value === null || typeof value !== "object" || !("roles" in value) || !("permissions" in value)) throw new Error("PermDock CLI: policy export is not a Policy");
75
+ if (value === null || typeof value !== "object" || !("roles" in value) || !("permissions" in value)) throw invalidModule("PermDock CLI: policy export is not a Policy");
60
76
  return value;
61
77
  }
62
78
  function leavesOf(tree) {
63
79
  return listPermissions(tree);
64
80
  }
81
+ /** The `policy` export of the module at `path`. */
82
+ async function loadPolicyAt(cwd, path, options) {
83
+ return asPolicy(pickNamed(await loadModule(resolve(cwd, path), options), ["policy"]));
84
+ }
85
+ /** The `policy` export at `path`; without one, throws `PermDock CLI: <missing>`. */
86
+ function requirePolicy(cwd, path, missing) {
87
+ return path === void 0 ? Promise.reject(new CliError("usage", `PermDock CLI: ${missing}`, { code: "config_invalid" })) : loadPolicyAt(cwd, path);
88
+ }
65
89
  /** The configured policy export, or `undefined` when unset or unloadable. */
66
90
  async function loadConfiguredPolicy(cwd, path, options) {
67
91
  if (path === void 0) return;
68
92
  try {
69
- return asPolicy(pickNamed(await loadModule(resolve(cwd, path), options), ["policy"]));
93
+ return await loadPolicyAt(cwd, path, options);
70
94
  } catch {
71
95
  return;
72
96
  }
73
97
  }
74
98
  //#endregion
75
- export { loadModule as a, loadConfiguredPolicy as i, asPolicy as n, pickNamed as o, leavesOf as r, asPermissionTree as t };
99
+ export { loadModule as a, requirePolicy as c, loadConfiguredPolicy as i, asPolicy as n, loadPolicyAt as o, leavesOf as r, pickNamed as s, asPermissionTree as t };
@@ -1,11 +1,8 @@
1
1
  //#region src/jwt/load-jose.ts
2
- let cached;
3
2
  function loadJose() {
4
- cached ??= import("jose").catch((cause) => {
5
- cached = void 0;
3
+ return import("jose").catch((cause) => {
6
4
  throw new Error("PermDock: permdock/jwt requires the optional peer \"jose\".", { cause });
7
5
  });
8
- return cached;
9
6
  }
10
7
  //#endregion
11
8
  export { loadJose as t };
@@ -0,0 +1,68 @@
1
+ import { t as defineLeaf } from "./command-L8EstFNm.js";
2
+ import { c as given } from "./flags-C3DktBDY.js";
3
+ //#region src/cli/commands/login.ts
4
+ const urlFlag = { url: {
5
+ type: "string",
6
+ description: "Issuer URL (default PERMDOCK_CLOUD_URL, then https://permdock.com/api)",
7
+ valueHint: "url"
8
+ } };
9
+ const login = defineLeaf({
10
+ flags: {
11
+ ...urlFlag,
12
+ loopback: {
13
+ type: "boolean",
14
+ description: "Use a 127.0.0.1 redirect with PKCE instead of the device flow"
15
+ },
16
+ scope: {
17
+ type: "enum",
18
+ options: ["catalog:write"],
19
+ repeatable: true,
20
+ description: "Scopes beyond projects:read and policy:read; catalog:write for permdock cloud push"
21
+ },
22
+ open: {
23
+ type: "boolean",
24
+ default: true,
25
+ description: "Open the browser at the verification URL",
26
+ negativeDescription: "Print the URL only"
27
+ }
28
+ },
29
+ async run(ctx, { flags }) {
30
+ const { runLogin } = await import("./login-imhuwvn3.js");
31
+ return runLogin({
32
+ cwd: ctx.cwd,
33
+ url: given(flags.url),
34
+ loopback: flags.loopback,
35
+ scopes: flags.scope,
36
+ open: flags.open && ctx.interactive,
37
+ json: ctx.json,
38
+ env: ctx.env,
39
+ io: ctx.io
40
+ });
41
+ }
42
+ });
43
+ const logout = defineLeaf({
44
+ flags: { ...urlFlag },
45
+ async run(ctx, { flags }) {
46
+ const { runLogout } = await import("./login-imhuwvn3.js");
47
+ return runLogout({
48
+ url: given(flags.url),
49
+ json: ctx.json,
50
+ env: ctx.env,
51
+ io: ctx.io
52
+ });
53
+ }
54
+ });
55
+ const whoami = defineLeaf({
56
+ flags: { ...urlFlag },
57
+ async run(ctx, { flags }) {
58
+ const { runWhoami } = await import("./login-imhuwvn3.js");
59
+ return runWhoami({
60
+ url: given(flags.url),
61
+ json: ctx.json,
62
+ env: ctx.env,
63
+ io: ctx.io
64
+ });
65
+ }
66
+ });
67
+ //#endregion
68
+ export { login, logout, whoami };