permdock 0.1.0 → 0.2.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 (349) hide show
  1. package/README.md +106 -47
  2. package/dist/a2a/index.d.ts +7 -16
  3. package/dist/a2a/index.js +59 -98
  4. package/dist/adapter-context-mlWsVGGg.js +23 -0
  5. package/dist/ai-sdk/index.d.ts +37 -16
  6. package/dist/ai-sdk/index.js +30 -13
  7. package/dist/approvals/index.d.ts +3 -3
  8. package/dist/approvals/index.js +5 -4
  9. package/dist/{approvals-DaxY-Bdg.js → approvals-DbYAuNkG.js} +17 -11
  10. package/dist/approvers-DT4AVyIg.js +52 -0
  11. package/dist/{arazzo-CTeVuXr5.js → arazzo-BAgw9ap6.js} +2 -2
  12. package/dist/{arazzo-aoTkqYsJ.js → arazzo-cmvX2jDe.js} +2 -2
  13. package/dist/authzen/index.d.ts +4 -13
  14. package/dist/authzen/index.js +16 -50
  15. package/dist/better-auth/index.d.ts +20 -3
  16. package/dist/better-auth/index.js +27 -7
  17. package/dist/better-supabase/index.d.ts +206 -0
  18. package/dist/better-supabase/index.js +620 -0
  19. package/dist/bind-CVy3Espv.d.ts +25 -0
  20. package/dist/bind-VnYn2HKq.js +97 -0
  21. package/dist/boundary-BM8a_P6E.js +13 -0
  22. package/dist/boundary-BmHxVH1J.d.ts +15 -0
  23. package/dist/canonical-json-DemiK4Vp.js +26 -0
  24. package/dist/{capability-B68OFnZx.js → capability-4qPdO9gk.js} +7 -5
  25. package/dist/{capability-BDG_nkxt.d.ts → capability-Dq43tT1u.d.ts} +2 -2
  26. package/dist/catalog/index.d.ts +1 -1
  27. package/dist/catalog/index.js +1 -1
  28. package/dist/catalog-BjZSovXQ.js +2 -0
  29. package/dist/{catalog-doc-BSo_Q_-6.js → catalog-doc-Dsc9y7sd.js} +23 -12
  30. package/dist/{catalog-B0E6bggc.js → catalog-h2tlKFkq.js} +2 -2
  31. package/dist/{catalog-H-vFGwWK.js → catalog-z8q6bi_r.js} +4 -4
  32. package/dist/claude-agent/index.d.ts +5 -14
  33. package/dist/claude-agent/index.js +4 -10
  34. package/dist/clerk/index.d.ts +12 -3
  35. package/dist/clerk/index.js +26 -5
  36. package/dist/cli/bin.js +1 -1
  37. package/dist/cli/index.d.ts +3 -3
  38. package/dist/cli/index.js +2 -2
  39. package/dist/clients-C7zLFuWT.d.ts +12 -0
  40. package/dist/clients-DjU5ABMy.js +23 -0
  41. package/dist/cloud/index.d.ts +4 -5
  42. package/dist/cloud/index.js +20 -6
  43. package/dist/{cloud-BNQTrmrr.js → cloud-BGhHS-lY.js} +2 -2
  44. package/dist/{cloud-Cuxr6Czw.js → cloud-Bo3e9Ak3.js} +7 -6
  45. package/dist/{collect-O-tOtbnk.js → collect-DDDv_ESs.js} +194 -42
  46. package/dist/collect-DLlujdHC.js +83 -0
  47. package/dist/collect-rG2IQ3t0.js +2 -0
  48. package/dist/{commands-BMh_Etm2.js → commands-DWOrSQic.js} +16 -12
  49. package/dist/compile/index.d.ts +3 -0
  50. package/dist/compile/index.js +2 -0
  51. package/dist/{compile-D22iwvuV.js → compile-Ba4blROR.js} +85 -30
  52. package/dist/compile-CNnl6uIt.d.ts +94 -0
  53. package/dist/config-BJiM-xAm.js +157 -0
  54. package/dist/config-Bn00Z3ks.js +36 -0
  55. package/dist/config-report-Dw_JcUqT.js +44 -0
  56. package/dist/{connection-JvqwHODC.js → connection-CU8MQxRi.js} +1 -1
  57. package/dist/{context-CKEAabd7.js → context-Ttp0ekMT.js} +36 -27
  58. package/dist/convex/index.d.ts +9 -4
  59. package/dist/convex/index.js +14 -4
  60. package/dist/create-BWyx3jua.d.ts +245 -0
  61. package/dist/create-CPhDL6qx.js +253 -0
  62. package/dist/{credential-B_rkUNlY.js → credential-8P81ff4u.js} +26 -46
  63. package/dist/delegation-D8pUEuce.js +103 -0
  64. package/dist/{describe-Bt1YD5uS.js → describe-B_gVZEVi.js} +10 -15
  65. package/dist/{describe-DernyItf.d.ts → describe-PdoqESvg.d.ts} +9 -10
  66. package/dist/{diff-x5Il8LVa.js → diff-B8Tunc3o.js} +44 -11
  67. package/dist/{diff-BUzf5Poi.js → diff-CzqLxZ77.js} +2 -2
  68. package/dist/doctor-WpvG6p4k.js +1194 -0
  69. package/dist/doctor-collect-ByfYlNv1.js +664 -0
  70. package/dist/{doctor-Bqo6FwUa.js → doctor-rOr-4ZfS.js} +2 -2
  71. package/dist/drizzle/index.d.ts +4 -3
  72. package/dist/drizzle/index.js +3 -3
  73. package/dist/elysia/index.d.ts +6 -28
  74. package/dist/elysia/index.js +16 -60
  75. package/dist/{errors-DSMnAVNa.js → errors-CWfoNg9N.js} +8 -4
  76. package/dist/{errors-Iy71s7Oj.js → errors-Cz5zn0mW.js} +17 -71
  77. package/dist/{errors-DbZ1YOnb.d.ts → errors-DAqevpNk.d.ts} +8 -21
  78. package/dist/{errors-m3u9TmDu.js → errors-DRnGZHzF.js} +4 -1
  79. package/dist/evaluation-items-CfCCejQd.js +40 -0
  80. package/dist/{evaluations-DsAU9ppl.js → evaluations-tz6D9A2G.js} +28 -46
  81. package/dist/eve/index.d.ts +6 -15
  82. package/dist/eve/index.js +7 -12
  83. package/dist/expiry-BoBJ8Tvc.js +7 -0
  84. package/dist/express/index.d.ts +6 -29
  85. package/dist/express/index.js +28 -58
  86. package/dist/fastify/index.d.ts +6 -29
  87. package/dist/fastify/index.js +16 -65
  88. package/dist/fields-BMl1RxoX.js +26 -0
  89. package/dist/{files-B_wAGYmt.js → files-DWUN9PzI.js} +5 -1
  90. package/dist/{fixtures-Cvaw0gDG.js → fixtures-ht28Cplr.js} +5 -2
  91. package/dist/{freeze-y1_jQL4v.js → freeze-CrU8nQeX.js} +31 -2
  92. package/dist/{from-snapshot-BMGnhmgv.js → from-snapshot-C3sHpZNS.js} +65 -48
  93. package/dist/{grantee-Bv04_Vzf.js → grantee-Cv5Sogfv.js} +88 -7
  94. package/dist/graph-sql-B-dsAT6j.d.ts +29 -0
  95. package/dist/{headers-B5RRv3Xm.js → headers-BZSDieNT.js} +1 -1
  96. package/dist/{headers-C8SHQccD.d.ts → headers-Cf-zWvsO.d.ts} +1 -1
  97. package/dist/helpers-H_KARDVC.js +421 -0
  98. package/dist/hono/index.d.ts +6 -28
  99. package/dist/hono/index.js +11 -43
  100. package/dist/{hosted-BwKQ1BTA.js → hosted-DJQw46hn.js} +6 -5
  101. package/dist/{http-GgVApX1k.js → http-BIhmLfCc.js} +4 -20
  102. package/dist/http-SO7qGttf.js +44 -0
  103. package/dist/ids-DC4V4CFu.js +18 -0
  104. package/dist/{index-LF_hS-yn.d.ts → index-A0YNL8jZ.d.ts} +1 -1
  105. package/dist/index-CtE07CBF.d.ts +6 -0
  106. package/dist/{index-xIxJLwOQ.d.ts → index-D3vbkoSI.d.ts} +75 -7
  107. package/dist/{index-CltcQ4Bf.d.ts → index-D6_cSa1z.d.ts} +68 -5
  108. package/dist/index.d.ts +14 -9
  109. package/dist/index.js +22 -17
  110. package/dist/instance-options-BK_rNOSC.d.ts +11 -0
  111. package/dist/instance-options-Dhhcnm3y.js +22 -0
  112. package/dist/{parse-DPfIvFMU.js → json-schema-BsAflUGW.js} +28 -57
  113. package/dist/jwt/index.d.ts +10 -6
  114. package/dist/jwt/index.js +32 -13
  115. package/dist/kernel-GSQnMz3O.js +208 -0
  116. package/dist/kysely/index.d.ts +4 -3
  117. package/dist/kysely/index.js +3 -3
  118. package/dist/live-options-H2eG8dfJ.js +60 -0
  119. package/dist/{load-BZ24CpZP.js → load-DhWEB9P1.js} +16 -10
  120. package/dist/load-DwJUafYN.js +2 -0
  121. package/dist/manifest-iaoBXHKc.js +783 -0
  122. package/dist/manifest-uDS9y5de.d.ts +206 -0
  123. package/dist/{map-DowSO96j.js → map-AcxK9o_D.js} +4 -15
  124. package/dist/{map-claims-B_6I1Rn-.js → map-claims-Z4QZOiFF.js} +13 -4
  125. package/dist/map-error-pgUWNNtG.js +23 -0
  126. package/dist/may-use-DndQ5tQ-.js +77 -0
  127. package/dist/mcp/index.d.ts +54 -22
  128. package/dist/mcp/index.js +218 -178
  129. package/dist/nest/index.d.ts +26 -31
  130. package/dist/nest/index.js +75 -84
  131. package/dist/next/client.d.ts +7 -8
  132. package/dist/next/client.js +11 -9
  133. package/dist/next/index.d.ts +30 -47
  134. package/dist/next/index.js +45 -60
  135. package/dist/next/plugin.d.ts +1 -1
  136. package/dist/next/plugin.js +32 -1
  137. package/dist/node/index.d.ts +9 -28
  138. package/dist/node/index.js +11 -43
  139. package/dist/openai/index.d.ts +6 -15
  140. package/dist/openai/index.js +7 -20
  141. package/dist/openapi/index.d.ts +87 -4
  142. package/dist/openapi/index.js +3 -3
  143. package/dist/{openapi-CwePaF7C.js → openapi-Bbg4wGVL.js} +3 -3
  144. package/dist/{openapi-DcqM8nU7.js → openapi-BqRBvAng.js} +237 -5
  145. package/dist/{openapi-DWD0Uc_4.js → openapi-CqqEbHsL.js} +5 -5
  146. package/dist/{openapi-import-BWRUNNeW.js → openapi-import-cmwetbzw.js} +1 -1
  147. package/dist/{openapi-schema-D8j_T9tO.js → openapi-schema--ARjyfQr.js} +2 -2
  148. package/dist/orpc/index.d.ts +15 -28
  149. package/dist/orpc/index.js +74 -117
  150. package/dist/otel/index.d.ts +2 -2
  151. package/dist/parse-BuyjxhZV.js +53 -0
  152. package/dist/parse-local-manifest-BkGQNzAh.d.ts +10 -0
  153. package/dist/parse-local-manifest-BrMozJCo.js +36 -0
  154. package/dist/pdp/index.d.ts +2 -2
  155. package/dist/pdp/index.js +14 -127
  156. package/dist/{permdock-yoZ7EjxX.js → permdock-CzqXjCpU.js} +641 -126
  157. package/dist/{permissions-B8vCg_bI.d.ts → permissions-CDgvKG5L.d.ts} +2 -2
  158. package/dist/{permissions-CofRqesP.js → permissions-CpZrivYv.js} +3 -3
  159. package/dist/{permissions-DC7GROPA.js → permissions-DVoF6dMt.js} +77 -15
  160. package/dist/{permissions-B4apnahQ.d.ts → permissions-DttnqqxC.d.ts} +34 -5
  161. package/dist/{pins-CqE1jZuF.js → pins-8ILTftC9.js} +2 -2
  162. package/dist/{policy-CInmNGkM.d.ts → policy-CFZAr_Al.d.ts} +330 -37
  163. package/dist/{policy-Cq2fB8Q5.d.ts → policy-D8UFyERw.d.ts} +2 -2
  164. package/dist/{policy-ANp36PnI.js → policy-xyWg7QdR.js} +173 -22
  165. package/dist/powersync-A8x_Yyvh.js +2 -0
  166. package/dist/powersync-C7kLglqX.js +540 -0
  167. package/dist/powersync-yW1UUFzp.js +62 -0
  168. package/dist/prisma/index.d.ts +3 -2
  169. package/dist/prisma/index.js +45 -20
  170. package/dist/{problem-Cgp9-KZA.js → problem-B43ztKIm.js} +74 -109
  171. package/dist/problem-details-CkL50EEf.d.ts +7 -0
  172. package/dist/problem-details-_AMOYz-w.js +144 -0
  173. package/dist/{protected-BuPAycJT.d.ts → protected-CNsMzrVd.d.ts} +5 -4
  174. package/dist/protected-Cs6kTaHo.js +100 -0
  175. package/dist/protected-bZs6rbT1.d.ts +40 -0
  176. package/dist/{provider-wTAUda2v.d.ts → provider-Cjr62YMV.d.ts} +1 -1
  177. package/dist/provider-DLzpb2Xz.js +52 -0
  178. package/dist/provider-store-DNyC1y48.js +43 -0
  179. package/dist/react/index.d.ts +7 -5
  180. package/dist/react/index.js +5 -4
  181. package/dist/react/provider-client.d.ts +1 -1
  182. package/dist/react/provider-client.js +1 -1
  183. package/dist/react-native/index.d.ts +166 -10
  184. package/dist/react-native/index.js +607 -85
  185. package/dist/{refs-ChLSxbST.js → refs-KYb4ntaz.js} +4 -3
  186. package/dist/{relations-r4soIFZB.js → relations-cjOL01hZ.js} +110 -31
  187. package/dist/replay-BsOyTrdV.js +28 -0
  188. package/dist/replay-sqBGMnNs.d.ts +5 -0
  189. package/dist/resource-ref-CaS9yVPi.js +20 -0
  190. package/dist/revocations-Bhr0aMIC.js +27 -0
  191. package/dist/rls-BMNydpHk.js +2521 -0
  192. package/dist/{rls-BOFU3chG.js → rls-CEvs64Kj.js} +8 -3
  193. package/dist/rls-fields-BMasREhR.js +3502 -0
  194. package/dist/{rls-graph-DxQ39PJj.js → rls-graph-pc9fuXYm.js} +100 -36
  195. package/dist/{rls-import-CXV6LBlS.js → rls-import-D8F7j35Q.js} +7 -6
  196. package/dist/{rls-migrate-DrFPbf8p.js → rls-migrate-7wikfrVI.js} +6 -5
  197. package/dist/rls-ownership-B5Lkq62W.js +843 -0
  198. package/dist/rls-shared-aOQ4hGTO.js +493 -0
  199. package/dist/rls-verify-D8B7dOTh.js +745 -0
  200. package/dist/{row-check-BajTgQZ-.d.ts → row-check-Dt35czLy.d.ts} +12 -15
  201. package/dist/rpc-DOK54_CS.js +89 -0
  202. package/dist/{run-CJ6UvS3a.js → run-YXCJDNYk.js} +31 -12
  203. package/dist/runtime-CB8gQFvS.js +11 -0
  204. package/dist/{saas-BRrZzJkM.js → saas-Bj_FFkjN.js} +17 -7
  205. package/dist/{schema-P8yoma__.js → schema-D3MnDMxa.js} +8 -4
  206. package/dist/scim/index.d.ts +1 -1
  207. package/dist/scim/index.js +1 -1
  208. package/dist/{scim-9NFa0XVZ.js → scim-BFGBBAqR.js} +1 -1
  209. package/dist/{scopes-cKVp_WTw.js → scopes-CVdPrWN-.js} +35 -8
  210. package/dist/server/index.d.ts +22 -11
  211. package/dist/server/index.js +11 -8
  212. package/dist/{credentials-BgRX3WEg.js → server-DlZ28Oz5.js} +1 -1
  213. package/dist/shared-DRu8VFVM.js +123 -0
  214. package/dist/{sink-Cfr9-7YC.d.ts → sink-Gs6TTVa-.d.ts} +1 -1
  215. package/dist/skills-Biq5uup3.js +192 -0
  216. package/dist/{skills-C_lpV4Jx.js → skills-JaymNCdK.js} +10 -4
  217. package/dist/{snapshot-DE8dE_hz.js → snapshot-Enxd0n-s.js} +138 -214
  218. package/dist/snapshot-cache-D6jLelln.js +44 -0
  219. package/dist/snapshot-cache-DwQH8ufx.d.ts +45 -0
  220. package/dist/solid/index.d.ts +39 -9
  221. package/dist/solid/index.js +76 -85
  222. package/dist/sources-B0UvrJ21.js +534 -0
  223. package/dist/sources-BcJgw0lt.d.ts +192 -0
  224. package/dist/{sql-Bll1d7y0.js → sql-xdg5f4Fi.js} +6 -1
  225. package/dist/{src-CTNT-PBW.js → src-CSbUiozF.js} +149 -11
  226. package/dist/ssf/index.d.ts +3 -2
  227. package/dist/ssf/index.js +3 -29
  228. package/dist/store-DMAWwAJV.js +371 -0
  229. package/dist/{store-Bq90395i.d.ts → store-D_pjn91-.d.ts} +13 -4
  230. package/dist/store-options-yO0V6gRn.js +716 -0
  231. package/dist/{stores-CkG2HrSg.js → stores-4_sqiOA1.js} +10 -63
  232. package/dist/{stores-CvOnu_2T.d.ts → stores-DVR5NHLE.d.ts} +20 -9
  233. package/dist/{stream-Q_xlB6Ko.js → stream-DDpvynSB.js} +16 -2
  234. package/dist/{stream-BhMfZOwr.d.ts → stream-DlvG2hs-.d.ts} +2 -2
  235. package/dist/subject-settings-BwBmCdTR.js +128 -0
  236. package/dist/supabase/index.d.ts +122 -6
  237. package/dist/supabase/index.js +4 -3
  238. package/dist/supabase/middleware.d.ts +32 -27
  239. package/dist/supabase/middleware.js +56 -22
  240. package/dist/{supabase-D8UlBA7Z.js → supabase-CwafwxxF.js} +3 -3
  241. package/dist/{supabase-DTxGtYdi.js → supabase-DTBaC20O.js} +345 -367
  242. package/dist/supabase-config-Bs44dare.js +472 -0
  243. package/dist/{supabase-hook-D_OqGb_V.js → supabase-hook-BuxLQLpU.js} +994 -708
  244. package/dist/supabase-hook-D5qVd_D8.js +2 -0
  245. package/dist/supautils-DYZnzRWV.js +91 -0
  246. package/dist/svelte/PermissionBoundary.svelte +37 -0
  247. package/dist/svelte/Protected.svelte +8 -2
  248. package/dist/svelte/index.d.ts +9 -6
  249. package/dist/svelte/index.js +61 -7
  250. package/dist/svelte/runtime.d.ts +4 -3
  251. package/dist/svelte/runtime.js +4 -3
  252. package/dist/svelte/source.d.ts +9 -6
  253. package/dist/svelte/source.js +7 -4
  254. package/dist/terminal/index.d.ts +6 -14
  255. package/dist/terminal/index.js +44 -32
  256. package/dist/testing/index.d.ts +105 -16
  257. package/dist/testing/index.js +504 -40
  258. package/dist/testing/saas/index.d.ts +4 -4
  259. package/dist/testing/saas/index.js +2 -2
  260. package/dist/testing/saas/permissions.d.ts +1 -1
  261. package/dist/testing/saas/permissions.js +1 -1
  262. package/dist/token-CIWxJOCh.js +50 -0
  263. package/dist/trpc/index.d.ts +7 -26
  264. package/dist/trpc/index.js +17 -100
  265. package/dist/types-9AWO9EGt.d.ts +197 -0
  266. package/dist/{types-D6Z6-rKJ.d.ts → types-BPxgszlT.d.ts} +260 -22
  267. package/dist/{types-BvBk1wgn.d.ts → types-BVyImy5I.d.ts} +5 -3
  268. package/dist/{types-CxquUByI.d.ts → types-Bvc4oWT6.d.ts} +1 -1
  269. package/dist/types-C3s9xVJG.d.ts +48 -0
  270. package/dist/{types-BBK-exvJ.d.ts → types-Dnemwd77.d.ts} +7 -1
  271. package/dist/types-kxznc7cn.d.ts +52 -0
  272. package/dist/{types-B8w5PFtS.d.ts → types-vKyAMtcX.d.ts} +17 -1
  273. package/dist/{types-B9dmiiab.d.ts → types-vNSDF7Dq.d.ts} +1 -1
  274. package/dist/{sources-DOpW5Ila.d.ts → types-yF5LmQVD.d.ts} +86 -127
  275. package/dist/unplugin/index.d.ts +1 -1
  276. package/dist/unplugin/index.js +10 -9
  277. package/dist/{usage-1ozMubLY.js → usage-D07N9QJ3.js} +2 -2
  278. package/dist/usage-D82l1CwK.js +2 -0
  279. package/dist/{usage-CUnK6Ou9.js → usage-DG1oeCca.js} +225 -62
  280. package/dist/validation-error-CnjZ4t92.js +33 -0
  281. package/dist/validation-error-CtF23SrC.d.ts +26 -0
  282. package/dist/{validity-D0uRmJKJ.js → validity-uOp8UpYn.js} +57 -36
  283. package/dist/{verifier-B90agnhl.js → verifier-BxBo6I44.js} +10 -5
  284. package/dist/version-BvacVTZR.js +17 -0
  285. package/dist/views-Soe7bGSC.js +95 -0
  286. package/dist/{vocabulary-Dk0fs-Jk.d.ts → vocabulary-DA8a8zif.d.ts} +1 -1
  287. package/dist/vue/index.d.ts +35 -13
  288. package/dist/vue/index.js +86 -93
  289. package/dist/watch-Etoa_Mvr.js +2 -0
  290. package/dist/watch-UihESpsJ.js +128 -0
  291. package/dist/webmcp/index.d.ts +2 -2
  292. package/dist/webmcp/index.js +7 -13
  293. package/package.json +62 -36
  294. package/schemas/approval-request-v1.json +175 -0
  295. package/schemas/catalog-v1.json +29 -1
  296. package/schemas/supabase-claims-v1.json +6 -1
  297. package/schemas/supabase-manifest-v1.json +150 -6
  298. package/skills/permdock/SKILL.md +7 -7
  299. package/skills/permdock-agents/SKILL.md +5 -5
  300. package/skills/permdock-agents/references/runtimes.md +12 -10
  301. package/skills/permdock-approvals/SKILL.md +4 -4
  302. package/skills/permdock-approvals/references/stores-and-resume.md +15 -4
  303. package/skills/permdock-audit/SKILL.md +3 -3
  304. package/skills/permdock-credentials/SKILL.md +4 -4
  305. package/skills/permdock-credentials/references/tokens-keys-links.md +7 -2
  306. package/skills/permdock-data/SKILL.md +4 -4
  307. package/skills/permdock-data/references/queries-and-rls.md +14 -6
  308. package/skills/permdock-data/references/relationships.md +5 -3
  309. package/skills/permdock-tenancy/SKILL.md +9 -6
  310. package/skills/permdock-tenancy/references/ownership-and-custom-roles.md +14 -8
  311. package/skills/permdock-wire/SKILL.md +4 -4
  312. package/skills/permdock-wire/references/adapters.md +42 -30
  313. package/skills/permdock-wire/references/policy-options.md +5 -3
  314. package/dist/approvers-aH0PJkmf.js +0 -20
  315. package/dist/catalog-idsHc0vo.js +0 -2
  316. package/dist/collect-B7_TIfmg.js +0 -49
  317. package/dist/collect-fRPAQIWb.js +0 -2
  318. package/dist/compile-CQbvyIBr.d.ts +0 -30
  319. package/dist/config-BPYmjTOp.js +0 -26
  320. package/dist/context-gtAwAILx.js +0 -6
  321. package/dist/create-BKF3dgFk.d.ts +0 -162
  322. package/dist/create-CSkhDU9T.js +0 -222
  323. package/dist/doctor-BGle8Gqi.js +0 -1314
  324. package/dist/helpers-DnSOrhB9.js +0 -682
  325. package/dist/index-fG6NSXlc.d.ts +0 -9
  326. package/dist/kernel-YOGCWNLf.js +0 -211
  327. package/dist/load-QOOm1z70.js +0 -2
  328. package/dist/manifest-DDQbC6K0.d.ts +0 -118
  329. package/dist/map-error-RJ3ZsUyA.js +0 -16
  330. package/dist/may-use-CnFEjVEp.js +0 -37
  331. package/dist/pg-4GJWDUxG.js +0 -953
  332. package/dist/plugin-4gr7IxFJ.js +0 -65
  333. package/dist/protected-B4K3BKoX.js +0 -138
  334. package/dist/protected-wY7nXhY9.d.ts +0 -23
  335. package/dist/provider-_wx46HpB.js +0 -48
  336. package/dist/rls-CJVja9Ww.js +0 -2119
  337. package/dist/rls-helpers-BxRuif0l.js +0 -1346
  338. package/dist/runtime-DP9ttFh1.js +0 -27
  339. package/dist/skills-Dx3QLnMY.js +0 -110
  340. package/dist/source-DoBBYJi2.js +0 -6
  341. package/dist/sources-DVHM3Mwq.js +0 -284
  342. package/dist/store-C6hFW6ta.js +0 -508
  343. package/dist/subject-settings-xt7V845g.js +0 -82
  344. package/dist/supabase-hook-DW-xP4hU.js +0 -2
  345. package/dist/types-DbWdEfcm.d.ts +0 -87
  346. package/dist/types-bva3i4Gf.d.ts +0 -98
  347. package/dist/types-i4BAOvdb.d.ts +0 -97
  348. package/dist/usage-PyEor6GA.js +0 -2
  349. package/dist/version-CnSh33Fj.js +0 -16
@@ -0,0 +1,123 @@
1
+ import { t as decisionToken } from "./token-CIWxJOCh.js";
2
+ //#region src/pdp/shared.ts
3
+ const MAX_CACHE_TTL_MS = 3e4;
4
+ const CACHE_MAX = 1e3;
5
+ /** Milliseconds, clamped to `[0, 30s]`; anything unparseable disables the cache. */
6
+ function ttlMs(cache) {
7
+ if (cache === void 0) return 0;
8
+ const raw = typeof cache.ttl === "number" ? cache.ttl : cache.ttl.endsWith("ms") ? Number(cache.ttl.slice(0, -2)) : Number(cache.ttl.slice(0, -1)) * 1e3;
9
+ if (!Number.isFinite(raw) || raw <= 0) return 0;
10
+ return Math.min(raw, MAX_CACHE_TTL_MS);
11
+ }
12
+ function denied(reason) {
13
+ return {
14
+ outcome: "denied",
15
+ denials: [{
16
+ role: null,
17
+ reason
18
+ }],
19
+ alternatives: []
20
+ };
21
+ }
22
+ function resourceIdOf(data, field = "id") {
23
+ if (data === null || typeof data !== "object") return "*";
24
+ const id = Object.hasOwn(data, field) ? data[field] : void 0;
25
+ if (typeof id === "string" || typeof id === "number") return String(id);
26
+ return "*";
27
+ }
28
+ function granted(provider, permission, subject, data) {
29
+ const principal = subject.principal;
30
+ if (principal === null) return denied("anonymous");
31
+ return {
32
+ outcome: "granted",
33
+ subject: {
34
+ ...subject,
35
+ principal
36
+ },
37
+ matched: {
38
+ role: provider,
39
+ permission: permission.key,
40
+ provider
41
+ },
42
+ token: decisionToken({
43
+ key: permission.key,
44
+ resourceId: resourceIdOf(data),
45
+ principal,
46
+ actor: subject.actor,
47
+ fingerprint: provider
48
+ })
49
+ };
50
+ }
51
+ /**
52
+ * The request that would be sent, plus what a custom mapping may drop
53
+ * (issuer, tenant, actor): a tenant switch or a changed row never reuses a
54
+ * cached answer.
55
+ */
56
+ function cacheKey(subject, permission, body) {
57
+ return JSON.stringify([
58
+ permission.key,
59
+ subject.principal?.issuer ?? null,
60
+ subject.principal?.tenant ?? null,
61
+ subject.actor === void 0 ? null : [subject.actor.id, subject.actor.kind],
62
+ body
63
+ ]);
64
+ }
65
+ function ttlCache(ttl) {
66
+ const entries = /* @__PURE__ */ new Map();
67
+ return {
68
+ get(key) {
69
+ if (ttl <= 0) return;
70
+ const hit = entries.get(key);
71
+ if (hit !== void 0 && Date.now() - hit.at < ttl) return hit.value;
72
+ entries.delete(key);
73
+ },
74
+ set(key, value) {
75
+ if (ttl <= 0) return;
76
+ entries.set(key, {
77
+ at: Date.now(),
78
+ value
79
+ });
80
+ if (entries.size > CACHE_MAX) {
81
+ const oldest = entries.keys().next();
82
+ if (oldest.done !== true) entries.delete(oldest.value);
83
+ }
84
+ }
85
+ };
86
+ }
87
+ async function bearerOf(auth) {
88
+ if (auth === void 0) return null;
89
+ try {
90
+ const token = typeof auth.bearer === "function" ? await auth.bearer() : auth.bearer;
91
+ return token === "" ? null : token;
92
+ } catch {
93
+ return null;
94
+ }
95
+ }
96
+ async function postJson(fetcher, url, body, options) {
97
+ const token = await bearerOf(options.auth);
98
+ const headers = {
99
+ "content-type": "application/json",
100
+ accept: "application/json"
101
+ };
102
+ if (token !== null) headers["authorization"] = `Bearer ${token}`;
103
+ try {
104
+ const response = await fetcher(url, {
105
+ method: "POST",
106
+ headers,
107
+ body: JSON.stringify(body),
108
+ signal: AbortSignal.timeout(options.timeout)
109
+ });
110
+ return response.ok ? {
111
+ ok: true,
112
+ response
113
+ } : { ok: false };
114
+ } catch {
115
+ return { ok: false };
116
+ }
117
+ }
118
+ function joinUrl(base, path) {
119
+ if (path.startsWith("http://") || path.startsWith("https://")) return path;
120
+ return `${base.endsWith("/") ? base.slice(0, -1) : base}${path.startsWith("/") ? path : `/${path}`}`;
121
+ }
122
+ //#endregion
123
+ export { postJson as a, ttlMs as c, joinUrl as i, denied as n, resourceIdOf as o, granted as r, ttlCache as s, cacheKey as t };
@@ -1,4 +1,4 @@
1
- import { $ as DecisionSink, Ft as Credential, Tt as TokenSigner, Y as CredentialEvent, ht as SinkEvent, q as AccessEvent, st as MembershipEvent } from "./policy-CInmNGkM.js";
1
+ import { $ as AccessEvent, Kt as Credential, Pt as TokenSigner, at as DecisionSink, ht as MembershipEvent, tt as CredentialEvent, wt as SinkEvent } from "./policy-CFZAr_Al.js";
2
2
  //#region src/core/sink.d.ts
3
3
  /** The closed list of CloudEvents `type` values PermDock emits. */
4
4
  declare const CLOUD_EVENT_TYPES: {
@@ -0,0 +1,192 @@
1
+ import { t as byCodePoint } from "./compare-pfyVnBjE.js";
2
+ import { t as packageRoot } from "./package-root-zGkxO3oN.js";
3
+ import { cpSync, existsSync, lstatSync, mkdirSync, readFileSync, readdirSync, readlinkSync, realpathSync, writeFileSync } from "node:fs";
4
+ import { basename, dirname, join, relative, resolve } from "node:path";
5
+ import { createRequire } from "node:module";
6
+ //#region src/cli/skills.ts
7
+ const SKILL_NAMES = [
8
+ "permdock",
9
+ "permdock-wire",
10
+ "permdock-audit",
11
+ "permdock-agents",
12
+ "permdock-approvals",
13
+ "permdock-tenancy",
14
+ "permdock-data",
15
+ "permdock-credentials"
16
+ ];
17
+ const AGENT_FOLDERS = {
18
+ agents: ".agents/skills",
19
+ claude: ".claude/skills",
20
+ cursor: ".cursor/skills"
21
+ };
22
+ /** The `--agent` names `skills install` knows, with the folder each writes. */
23
+ const SKILL_AGENTS = AGENT_FOLDERS;
24
+ /** Agents whose config folder (`.claude`, `.cursor`, `.agents`) the project already has. */
25
+ function detectedAgents(cwd) {
26
+ return Object.entries(AGENT_FOLDERS).filter(([, folder]) => existsSync(join(cwd, dirname(folder)))).map(([agent]) => agent);
27
+ }
28
+ function runSkills(input) {
29
+ switch (input.action) {
30
+ case void 0:
31
+ case "install":
32
+ case "update": return input.check === true ? runSkillsCheck({
33
+ cwd: input.cwd,
34
+ agents: input.agents
35
+ }) : runSkillsInstall({
36
+ cwd: input.cwd,
37
+ agents: input.agents
38
+ });
39
+ case "list": return listSkills(input.cwd);
40
+ default: return {
41
+ code: 2,
42
+ output: `unknown skills command '${input.action}'. Use install, list or update.`
43
+ };
44
+ }
45
+ }
46
+ function runSkillsInstall(input) {
47
+ const source = resolveSkillsRoot(input.cwd, input.bundled ?? join(packageRoot(), "skills"));
48
+ if (source === void 0) return {
49
+ code: 2,
50
+ output: "PermDock CLI: permdock package with skills/ not found. Add permdock as a dependency."
51
+ };
52
+ const version = readPermdockVersion(source);
53
+ const copied = [];
54
+ const linked = [];
55
+ for (const target of destinations(input.cwd, source, input.agents)) {
56
+ if (target.sameAs !== void 0) {
57
+ linked.push(`${target.shown} to ${target.sameAs}`);
58
+ continue;
59
+ }
60
+ cpSync(target.from, target.real, { recursive: true });
61
+ copied.push(target.shown);
62
+ }
63
+ mkdirSync(join(input.cwd, ".permdock"), { recursive: true });
64
+ writeFileSync(join(input.cwd, ".permdock/skills-lock.json"), `${JSON.stringify({
65
+ version,
66
+ skills: [...SKILL_NAMES]
67
+ }, null, 2)}\n`);
68
+ const links = linked.length === 0 ? "" : `; linked ${linked.join(", ")}`;
69
+ return {
70
+ code: 0,
71
+ output: `installed ${copied.join(", ") || "no skills"}${links} (permdock@${version})`
72
+ };
73
+ }
74
+ /**
75
+ * Compares the installed skills with the ones this version ships and writes
76
+ * nothing: exit 1 lists every file that is missing or differs. Without
77
+ * agents it checks the agent folders the project has, else every folder.
78
+ */
79
+ function runSkillsCheck(input) {
80
+ const source = resolveSkillsRoot(input.cwd, input.bundled ?? join(packageRoot(), "skills"));
81
+ if (source === void 0) return {
82
+ code: 2,
83
+ output: "PermDock CLI: permdock package with skills/ not found. Add permdock as a dependency."
84
+ };
85
+ const version = readPermdockVersion(source);
86
+ const detected = detectedAgents(input.cwd);
87
+ const agents = input.agents.length > 0 ? input.agents : detected.length > 0 ? detected : Object.keys(AGENT_FOLDERS);
88
+ const stale = [];
89
+ for (const target of destinations(input.cwd, source, agents)) {
90
+ if (target.sameAs !== void 0) continue;
91
+ for (const file of filesOf(target.from)) {
92
+ const installed = join(target.real, file);
93
+ if (!existsSync(installed) || !readFileSync(installed).equals(readFileSync(join(target.from, file)))) stale.push(`${target.shown}/${file}`);
94
+ }
95
+ }
96
+ return stale.length === 0 ? {
97
+ code: 0,
98
+ output: `skills match permdock@${version}`
99
+ } : {
100
+ code: 1,
101
+ output: `skills differ from permdock@${version}: ${stale.join(", ")}. Run permdock skills install.`
102
+ };
103
+ }
104
+ function destinations(cwd, source, agents) {
105
+ const seen = /* @__PURE__ */ new Map();
106
+ const list = [];
107
+ for (const folder of resolveTargets(agents)) for (const name of SKILL_NAMES) {
108
+ const from = join(source, name);
109
+ if (!existsSync(from)) continue;
110
+ const shown = `${folder}/${name}`;
111
+ const real = followLinks(join(cwd, folder, name));
112
+ const sameAs = seen.get(real);
113
+ list.push(sameAs === void 0 ? {
114
+ from,
115
+ shown,
116
+ real
117
+ } : {
118
+ from,
119
+ shown,
120
+ real,
121
+ sameAs
122
+ });
123
+ if (sameAs === void 0) seen.set(real, shown);
124
+ }
125
+ return list;
126
+ }
127
+ /**
128
+ * The path with every symlink on it followed, including a link whose target
129
+ * does not exist yet, so a skill folder linked to another agent's folder is
130
+ * written through the link instead of over it.
131
+ */
132
+ function followLinks(path, depth = 0) {
133
+ if (depth > 32) throw new Error(`PermDock CLI: too many symlinks at ${path}`);
134
+ let link;
135
+ try {
136
+ link = lstatSync(path).isSymbolicLink();
137
+ } catch {
138
+ const parent = dirname(path);
139
+ return parent === path ? path : join(followLinks(parent, depth + 1), basename(path));
140
+ }
141
+ if (!link) return realpathSync(path);
142
+ try {
143
+ return realpathSync(path);
144
+ } catch {
145
+ return followLinks(resolve(dirname(path), readlinkSync(path)), depth + 1);
146
+ }
147
+ }
148
+ function filesOf(root, folder = root) {
149
+ return readdirSync(folder, { withFileTypes: true }).toSorted((a, b) => byCodePoint(a.name, b.name)).flatMap((entry) => {
150
+ const path = join(folder, entry.name);
151
+ if (entry.isDirectory()) return filesOf(root, path);
152
+ return entry.isFile() ? [relative(root, path).split("\\").join("/")] : [];
153
+ });
154
+ }
155
+ function listSkills(cwd) {
156
+ const lockPath = join(cwd, ".permdock/skills-lock.json");
157
+ const lock = existsSync(lockPath) ? JSON.parse(readFileSync(lockPath, "utf8")) : {};
158
+ const lines = ["permdock skills", ""];
159
+ for (const name of SKILL_NAMES) {
160
+ const places = Object.values(AGENT_FOLDERS).filter((folder) => existsSync(join(cwd, folder, name, "SKILL.md")));
161
+ lines.push(` ${name} ${places.length > 0 ? places.join(", ") : "not installed"}`);
162
+ }
163
+ if (lock.version !== void 0) lines.push("", ` lock ${lock.version}`);
164
+ return {
165
+ code: 0,
166
+ output: `${lines.join("\n")}\n`
167
+ };
168
+ }
169
+ function resolveTargets(agents) {
170
+ if (agents.length === 0) return Object.values(AGENT_FOLDERS);
171
+ return agents.map((agent) => {
172
+ const key = agent === "agent" ? "agents" : agent;
173
+ return AGENT_FOLDERS[key] ?? `.${key}/skills`;
174
+ });
175
+ }
176
+ function resolveSkillsRoot(cwd, bundled) {
177
+ try {
178
+ const pkg = createRequire(resolve(cwd, "package.json")).resolve("permdock/package.json");
179
+ const root = join(dirname(pkg), "skills");
180
+ if (existsSync(root)) return root;
181
+ } catch {}
182
+ const local = join(cwd, "node_modules/permdock/skills");
183
+ if (existsSync(local)) return local;
184
+ return existsSync(bundled) ? bundled : void 0;
185
+ }
186
+ function readPermdockVersion(skillsRoot) {
187
+ const pkg = join(dirname(skillsRoot), "package.json");
188
+ if (!existsSync(pkg)) return "0.0.0";
189
+ return JSON.parse(readFileSync(pkg, "utf8")).version;
190
+ }
191
+ //#endregion
192
+ export { runSkillsInstall as i, detectedAgents as n, runSkills as r, SKILL_AGENTS as t };
@@ -1,6 +1,6 @@
1
- import { a as listArg, i as globalArgs, t as COMMAND_DESCRIPTIONS } from "./commands-BMh_Etm2.js";
1
+ import { a as listArg, i as globalArgs, t as COMMAND_DESCRIPTIONS } from "./commands-DWOrSQic.js";
2
2
  import { r as pick, t as CANCELLED } from "./prompt-CXYhLfsS.js";
3
- import { n as detectedAgents, r as runSkills, t as SKILL_AGENTS } from "./skills-Dx3QLnMY.js";
3
+ import { n as detectedAgents, r as runSkills, t as SKILL_AGENTS } from "./skills-Biq5uup3.js";
4
4
  import { defineCommand } from "citty";
5
5
  //#region src/cli/commands/skills.ts
6
6
  function skills(ctx) {
@@ -20,13 +20,18 @@ function skills(ctx) {
20
20
  type: "string",
21
21
  description: "Agent skill folders to write, repeatable",
22
22
  valueHint: "name"
23
+ },
24
+ check: {
25
+ type: "boolean",
26
+ description: "Fail when the installed skills differ from this version; write nothing"
23
27
  }
24
28
  },
25
29
  async run({ args: parsed, rawArgs }) {
26
30
  const action = parsed._[0];
27
31
  let agents = listArg(rawArgs, "agent");
28
32
  const installs = action === void 0 || action === "install" || action === "update";
29
- if (ctx.interactive && installs && agents.length === 0) {
33
+ const check = parsed.check === true;
34
+ if (ctx.interactive && installs && !check && agents.length === 0) {
30
35
  const detected = detectedAgents(ctx.cwd);
31
36
  const picked = await pick("Which agents should get the PermDock skills?", Object.entries(SKILL_AGENTS).map(([value, hint]) => ({
32
37
  value,
@@ -41,7 +46,8 @@ function skills(ctx) {
41
46
  ctx.report(runSkills({
42
47
  cwd: ctx.cwd,
43
48
  action,
44
- agents
49
+ agents,
50
+ check
45
51
  }));
46
52
  }
47
53
  });