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
@@ -0,0 +1,224 @@
1
+ import { t as compact } from "../compact-CAf557ZB.js";
2
+ import { n as freezeDeep } from "../freeze-CrU8nQeX.js";
3
+ import { n as loadPrincipalByIdentity } from "../principal-source-pHneukrx.js";
4
+ import { f as nowMillis } from "../time-DkWjdL98.js";
5
+ import { c as withApp, t as getPermDock } from "../permdock-B9JxkBwC.js";
6
+ import { c as isApprovalError } from "../types-DqzsnlSA.js";
7
+ import { a as requestApproval, o as resolveApproval, s as resumeDecision } from "../helpers-DTcZOzhF.js";
8
+ import { t as approvalPrompt } from "../approval-prompt-Dg5LeAcT.js";
9
+ //#region src/chat/subject.ts
10
+ function nonEmpty(value) {
11
+ return typeof value === "string" && value !== "";
12
+ }
13
+ function isChatAuthor(value) {
14
+ if (typeof value !== "object" || value === null) return false;
15
+ const provider = Reflect.get(value, "provider");
16
+ const userId = Reflect.get(value, "userId");
17
+ const workspace = Reflect.get(value, "workspace");
18
+ return nonEmpty(provider) && nonEmpty(userId) && (workspace === void 0 || nonEmpty(workspace));
19
+ }
20
+ /** The principal linked to `author`, or `null` for an unlinked or malformed author. Never throws. */
21
+ function principalFromChat(author, principals) {
22
+ if (!isChatAuthor(author)) return Promise.resolve(null);
23
+ return loadPrincipalByIdentity(principals, compact({
24
+ kind: "chat",
25
+ provider: author.provider,
26
+ value: author.userId,
27
+ workspace: author.workspace
28
+ }));
29
+ }
30
+ /**
31
+ * The subject a chat author acts as: the principal its identity link
32
+ * names, or anonymous when there is no link. Never throws.
33
+ */
34
+ async function subjectFromChat(author, options) {
35
+ return {
36
+ principal: await principalFromChat(author, options.principals),
37
+ context: {}
38
+ };
39
+ }
40
+ //#endregion
41
+ //#region src/chat/create.ts
42
+ const ADAPTER = "chat";
43
+ function denied(reason, permission) {
44
+ return freezeDeep({
45
+ outcome: "denied",
46
+ denials: [{
47
+ role: null,
48
+ reason,
49
+ detail: { permission: permission.key }
50
+ }],
51
+ alternatives: []
52
+ });
53
+ }
54
+ function idOf(row) {
55
+ if (row === null || typeof row !== "object") return;
56
+ const id = Reflect.get(row, "id");
57
+ return typeof id === "string" || typeof id === "number" ? String(id) : void 0;
58
+ }
59
+ function isLive(request, now) {
60
+ return request.status !== "expired" && Date.parse(request.expiresAt) > now;
61
+ }
62
+ async function findRequest(store, id) {
63
+ if (store.getById !== void 0) return store.getById(id);
64
+ let cursor;
65
+ do {
66
+ const page = await store.list(compact({ cursor }));
67
+ const found = page.items.find((request) => request.id === id);
68
+ if (found !== void 0) return found;
69
+ cursor = page.next;
70
+ } while (cursor !== void 0);
71
+ return null;
72
+ }
73
+ /**
74
+ * Creates the chat PermDock. Every command and action is decided as the
75
+ * principal the author's chat identity links to, loaded live; an unlinked
76
+ * author is anonymous and denied.
77
+ */
78
+ function createPermDock(policy, given) {
79
+ const options = withApp(policy, given);
80
+ const { store: approvals, ...permdockOptions } = options;
81
+ const instanceFor = (subject) => getPermDock(policy, subject, permdockOptions);
82
+ const getPermDock$1 = async (author) => instanceFor(await subjectFromChat(author, { principals: options.principals }));
83
+ const parked = async (operation, decision, permdock, row) => {
84
+ if (approvals === void 0) return null;
85
+ const resource = compact({
86
+ type: operation.permission.resource,
87
+ id: idOf(row)
88
+ });
89
+ const current = await approvals.get(decision.token);
90
+ if (current !== null && isLive(current, nowMillis())) {
91
+ if (current.status === "pending") return approvalPrompt(current, { operation });
92
+ return resumeDecision({
93
+ decision,
94
+ permission: operation.permission,
95
+ subject: permdock.subject,
96
+ store: approvals,
97
+ resource,
98
+ adapter: ADAPTER,
99
+ token: decision.token
100
+ });
101
+ }
102
+ const request = await requestApproval(approvals, decision, {
103
+ permission: operation.permission,
104
+ resource,
105
+ subject: permdock.subject,
106
+ adapter: ADAPTER
107
+ });
108
+ return approvalPrompt(request, { operation });
109
+ };
110
+ const protect = (operation, handler) => {
111
+ const { permission } = operation;
112
+ return async (author, input) => {
113
+ const permdock = await getPermDock$1(author);
114
+ let row;
115
+ if (operation.data !== void 0) {
116
+ try {
117
+ row = await operation.data(input);
118
+ } catch {
119
+ return {
120
+ outcome: "denied",
121
+ decision: denied("closure-error", permission)
122
+ };
123
+ }
124
+ if (permission.kind === "instance" && (row === null || row === void 0)) return {
125
+ outcome: "denied",
126
+ decision: denied("validation", permission)
127
+ };
128
+ }
129
+ let decision = permdock.decide(permission, row, {
130
+ adapter: ADAPTER,
131
+ call: "adapter",
132
+ operation: {
133
+ name: operation.name,
134
+ meta: operation.meta
135
+ }
136
+ });
137
+ if (decision.outcome === "approval-required") {
138
+ const resolved = await parked(operation, decision, permdock, row);
139
+ if (resolved === null || "v" in resolved) return {
140
+ outcome: "approval-required",
141
+ decision,
142
+ prompt: resolved
143
+ };
144
+ decision = resolved;
145
+ }
146
+ switch (decision.outcome) {
147
+ case "granted": break;
148
+ case "denied": return {
149
+ outcome: "denied",
150
+ decision
151
+ };
152
+ case "approval-required": return {
153
+ outcome: "approval-required",
154
+ decision,
155
+ prompt: null
156
+ };
157
+ default: return decision;
158
+ }
159
+ if (!isChatAuthor(author)) return {
160
+ outcome: "denied",
161
+ decision: denied("validation", permission)
162
+ };
163
+ return {
164
+ outcome: "granted",
165
+ value: await handler({
166
+ author,
167
+ input,
168
+ row,
169
+ permdock,
170
+ decision
171
+ })
172
+ };
173
+ };
174
+ };
175
+ const resolveAction = async (author, action) => {
176
+ const status = action.status;
177
+ if (status !== "approved" && status !== "rejected" || typeof action.approval !== "string" || action.approval === "") return {
178
+ ok: false,
179
+ cause: "invalid-action"
180
+ };
181
+ const subject = await subjectFromChat(author, { principals: options.principals });
182
+ if (subject.principal === null) return {
183
+ ok: false,
184
+ cause: "approver-unauthenticated"
185
+ };
186
+ if (approvals === void 0) return {
187
+ ok: false,
188
+ cause: "approval-not-found"
189
+ };
190
+ try {
191
+ const request = await findRequest(approvals, action.approval);
192
+ if (request === null) return {
193
+ ok: false,
194
+ cause: "approval-not-found"
195
+ };
196
+ const resolved = await resolveApproval(approvals, request.token, compact({
197
+ status,
198
+ by: subject,
199
+ note: action.note
200
+ }), compact({
201
+ relations: permdockOptions.relations,
202
+ requireDistinctApprover: true,
203
+ permdockFor: (approver) => instanceFor(approver)
204
+ }));
205
+ return {
206
+ ok: true,
207
+ id: resolved.id,
208
+ status: resolved.status
209
+ };
210
+ } catch (error) {
211
+ return {
212
+ ok: false,
213
+ cause: isApprovalError(error) ? error.code : "approval-not-found"
214
+ };
215
+ }
216
+ };
217
+ return Object.freeze({
218
+ getPermDock: getPermDock$1,
219
+ protect,
220
+ resolveAction
221
+ });
222
+ }
223
+ //#endregion
224
+ export { createPermDock, isChatAuthor, subjectFromChat };
@@ -0,0 +1,87 @@
1
+ import { n as ApprovalUrl, t as ApprovalPrompt } from "../approval-prompt-Djo_PyZc.js";
2
+ import { l as ChatAuthor, n as ChatActionResult, o as ChatPermDock } from "../create-0VZ7Pdiu.js";
3
+ import { n as ChatTransport } from "../types-DX0LaKTb.js";
4
+ import { ActionEvent, Author, CardElement } from "chat";
5
+ //#region src/chat-sdk/author.d.ts
6
+ type ChatSdkAuthorOptions = {
7
+ /** The platform workspace the bot is installed in, matched against identity links. */
8
+ readonly workspace?: string;
9
+ };
10
+ /**
11
+ * The `ChatAuthor` of a Chat SDK message or action, named by its adapter
12
+ * (`adapter.name`, such as `slack`). `null` for a bot, this bot, the
13
+ * platform itself or an empty id. Reads only `userId`: the email and display
14
+ * name never identify anyone.
15
+ */
16
+ export declare function chatSdkAuthor(user: Pick<Author, "userId" | "isBot" | "isMe" | "isSystem">, adapter: {
17
+ readonly name: string;
18
+ } | string, options?: ChatSdkAuthorOptions): ChatAuthor | null;
19
+ //#endregion
20
+ //#region src/chat-sdk/card.d.ts
21
+ /** The `actionId` of the card's approve button; its `value` is the request id. */
22
+ export declare const APPROVE_ACTION = "permdock:approve";
23
+ /** The `actionId` of the card's reject button; its `value` is the request id. */
24
+ export declare const REJECT_ACTION = "permdock:reject";
25
+ type ApprovalCardOptions = {
26
+ /** The app's approval page: a base URL the request id is appended to, or a function of the prompt. Must be https. */
27
+ readonly approvalUrl: ApprovalUrl;
28
+ /** `false` leaves out the approve and reject buttons, so the page is the only place to decide. Defaults to `true`. */
29
+ readonly buttons?: boolean;
30
+ };
31
+ /**
32
+ * A Chat SDK card for an approval prompt: the detail, who asked, the
33
+ * permission and the expiry, a link to the approval page, and approve and
34
+ * reject buttons that carry the request id, never its token. A click is
35
+ * applied by `approvalActions` as the verified clicking user. Throws a
36
+ * `TypeError` for an approval page that is not https.
37
+ */
38
+ export declare function approvalCard(prompt: ApprovalPrompt, options: ApprovalCardOptions): CardElement;
39
+ //#endregion
40
+ //#region src/chat-sdk/actions.d.ts
41
+ type ApprovalActionsOptions = ChatSdkAuthorOptions & {
42
+ /**
43
+ * Receives every verdict instead of the default replies: the outcome posted
44
+ * to the thread, a refusal shown only to the clicking user.
45
+ */
46
+ readonly onResult?: (result: ChatActionResult, event: ActionEvent) => void | Promise<void>;
47
+ };
48
+ type ApprovalActions = {
49
+ /** The action ids to register: `chat.onAction(actions.actionIds, actions.onAction)`. */
50
+ readonly actionIds: readonly [typeof APPROVE_ACTION, typeof REJECT_ACTION];
51
+ readonly onAction: (event: ActionEvent) => Promise<void>;
52
+ };
53
+ /**
54
+ * Applies the approve and reject buttons of `approvalCard`. The clicking
55
+ * user, as the Chat SDK adapter verified them, is resolved through
56
+ * `ChatPermDock.resolveAction`; the button value names the request by id.
57
+ * A click from an unlinked user, the requester or a bot records nothing.
58
+ */
59
+ export declare function approvalActions(permdock: ChatPermDock, options?: ApprovalActionsOptions): ApprovalActions;
60
+ //#endregion
61
+ //#region src/chat-sdk/transport.d.ts
62
+ /** The part of a Chat SDK `Chat` the transport calls; a `new Chat(...)` fits. */
63
+ type ChatSdkClient = {
64
+ openDM(user: string): Promise<{
65
+ post(message: string | CardElement): Promise<{
66
+ readonly id: string;
67
+ }>;
68
+ }>;
69
+ };
70
+ type ChatSdkTransportOptions = {
71
+ /** The adapter name recipients are on (`slack`, `teams`, …); a target for another provider is rejected. */
72
+ readonly provider: string;
73
+ /** The workspace the bot is installed in; a target for another workspace is rejected. */
74
+ readonly workspace?: string;
75
+ /** Keys this transport remembers to skip a repeat post. Defaults to 1000. */
76
+ readonly remember?: number;
77
+ };
78
+ /**
79
+ * The chat channel of `permdock/delivery` over the Chat SDK: opens a direct
80
+ * message with the target's platform user id and posts the text, or the
81
+ * approval card when the message carries an approval prompt. The Chat SDK
82
+ * takes no idempotency key, so the transport skips a key it already sent,
83
+ * per instance and in memory only.
84
+ */
85
+ export declare function chatSdkTransport(chat: ChatSdkClient, options: ChatSdkTransportOptions): ChatTransport;
86
+ //#endregion
87
+ export type { ApprovalActions, ApprovalActionsOptions, ApprovalCardOptions, ChatSdkAuthorOptions, ChatSdkClient, ChatSdkTransportOptions };
@@ -0,0 +1,197 @@
1
+ import { t as compact } from "../compact-CAf557ZB.js";
2
+ import { n as approvalUrlFor } from "../approval-prompt-Dg5LeAcT.js";
3
+ import { i as isDeliveryTarget } from "../target-Bw37TFNA.js";
4
+ import { Actions, Button, Card, CardText, Field, Fields, LinkButton } from "chat";
5
+ //#region src/chat-sdk/author.ts
6
+ /**
7
+ * The `ChatAuthor` of a Chat SDK message or action, named by its adapter
8
+ * (`adapter.name`, such as `slack`). `null` for a bot, this bot, the
9
+ * platform itself or an empty id. Reads only `userId`: the email and display
10
+ * name never identify anyone.
11
+ */
12
+ function chatSdkAuthor(user, adapter, options = {}) {
13
+ const provider = typeof adapter === "string" ? adapter : adapter.name;
14
+ if (typeof provider !== "string" || provider === "" || typeof user.userId !== "string" || user.userId === "" || user.isBot === true || user.isMe || user.isSystem === true) return null;
15
+ return compact({
16
+ provider,
17
+ userId: user.userId,
18
+ workspace: options.workspace === void 0 || options.workspace === "" ? void 0 : options.workspace
19
+ });
20
+ }
21
+ //#endregion
22
+ //#region src/chat-sdk/card.ts
23
+ /** The `actionId` of the card's approve button; its `value` is the request id. */
24
+ const APPROVE_ACTION = "permdock:approve";
25
+ /** The `actionId` of the card's reject button; its `value` is the request id. */
26
+ const REJECT_ACTION = "permdock:reject";
27
+ function oneLine(value) {
28
+ return value.replaceAll(/\s+/gu, " ").trim();
29
+ }
30
+ /**
31
+ * A Chat SDK card for an approval prompt: the detail, who asked, the
32
+ * permission and the expiry, a link to the approval page, and approve and
33
+ * reject buttons that carry the request id, never its token. A click is
34
+ * applied by `approvalActions` as the verified clicking user. Throws a
35
+ * `TypeError` for an approval page that is not https.
36
+ */
37
+ function approvalCard(prompt, options) {
38
+ const url = approvalUrlFor(prompt, options.approvalUrl);
39
+ const requester = prompt.requester.principal?.id ?? "an anonymous caller";
40
+ const actor = prompt.requester.actor;
41
+ const fields = [
42
+ Field({
43
+ label: "Requested by",
44
+ value: actor === void 0 ? requester : `${requester} through ${actor.kind} ${actor.id}`
45
+ }),
46
+ Field({
47
+ label: "Permission",
48
+ value: prompt.permission
49
+ }),
50
+ Field({
51
+ label: "Resource",
52
+ value: prompt.resource.id === void 0 ? prompt.resource.type : `${prompt.resource.type} ${prompt.resource.id}`
53
+ }),
54
+ ...prompt.operation?.risk === void 0 ? [] : [Field({
55
+ label: "Risk",
56
+ value: prompt.operation.risk
57
+ })],
58
+ Field({
59
+ label: "Expires",
60
+ value: prompt.expiresAt
61
+ })
62
+ ];
63
+ const review = LinkButton({
64
+ url,
65
+ label: "Review"
66
+ });
67
+ const children = [
68
+ CardText(oneLine(prompt.detail)),
69
+ Fields(fields),
70
+ Actions(options.buttons === false ? [review] : [
71
+ Button({
72
+ id: APPROVE_ACTION,
73
+ label: "Approve",
74
+ style: "primary",
75
+ value: prompt.id
76
+ }),
77
+ Button({
78
+ id: REJECT_ACTION,
79
+ label: "Reject",
80
+ style: "danger",
81
+ value: prompt.id
82
+ }),
83
+ review
84
+ ])
85
+ ];
86
+ return Card({
87
+ title: `Approval needed: ${oneLine(prompt.operation?.title ?? prompt.detail)}`,
88
+ children
89
+ });
90
+ }
91
+ //#endregion
92
+ //#region src/chat-sdk/actions.ts
93
+ async function reply(result, event) {
94
+ const { thread } = event;
95
+ if (thread === null) return;
96
+ if (result.ok) {
97
+ const verdict = result.status === "approved" ? "Approved" : "Rejected";
98
+ await thread.post(`${verdict} by ${event.user.userName}.`);
99
+ return;
100
+ }
101
+ await thread.postEphemeral(event.user, `The approval was not recorded: ${result.cause}.`, { fallbackToDM: false });
102
+ }
103
+ /**
104
+ * Applies the approve and reject buttons of `approvalCard`. The clicking
105
+ * user, as the Chat SDK adapter verified them, is resolved through
106
+ * `ChatPermDock.resolveAction`; the button value names the request by id.
107
+ * A click from an unlinked user, the requester or a bot records nothing.
108
+ */
109
+ function approvalActions(permdock, options = {}) {
110
+ const onAction = async (event) => {
111
+ if (event.actionId !== "permdock:approve" && event.actionId !== "permdock:reject") return;
112
+ const author = chatSdkAuthor(event.user, event.adapter, options);
113
+ const result = await permdock.resolveAction(author, {
114
+ approval: event.value ?? "",
115
+ status: event.actionId === "permdock:approve" ? "approved" : "rejected"
116
+ });
117
+ await (options.onResult ?? reply)(result, event);
118
+ };
119
+ return Object.freeze({
120
+ actionIds: [APPROVE_ACTION, REJECT_ACTION],
121
+ onAction
122
+ });
123
+ }
124
+ //#endregion
125
+ //#region src/chat-sdk/transport.ts
126
+ const DEFAULT_REMEMBER = 1e3;
127
+ function failed(cause, retryable, reason) {
128
+ return reason === void 0 ? {
129
+ status: "failed",
130
+ cause,
131
+ retryable
132
+ } : {
133
+ status: "failed",
134
+ cause,
135
+ retryable,
136
+ reason
137
+ };
138
+ }
139
+ /** Maps a Chat SDK throw by its `ChatError` code; anything else is retryable. */
140
+ function chatSdkFailure(error) {
141
+ switch (typeof error === "object" && error !== null ? Reflect.get(error, "code") : void 0) {
142
+ case "RATE_LIMITED": return failed("rate-limited", true);
143
+ case "NOT_IMPLEMENTED": return failed("rejected", false, "the adapter cannot open a direct message");
144
+ default: return failed("unavailable", true);
145
+ }
146
+ }
147
+ /**
148
+ * The chat channel of `permdock/delivery` over the Chat SDK: opens a direct
149
+ * message with the target's platform user id and posts the text, or the
150
+ * approval card when the message carries an approval prompt. The Chat SDK
151
+ * takes no idempotency key, so the transport skips a key it already sent,
152
+ * per instance and in memory only.
153
+ */
154
+ function chatSdkTransport(chat, options) {
155
+ const remember = options.remember ?? DEFAULT_REMEMBER;
156
+ const sent = /* @__PURE__ */ new Map();
157
+ const record = (key, result) => {
158
+ sent.set(key, result);
159
+ if (sent.size > remember) {
160
+ const oldest = sent.keys().next();
161
+ if (oldest.done !== true) sent.delete(oldest.value);
162
+ }
163
+ };
164
+ const deliver = async (target, message, deliveryOptions) => {
165
+ if (!isDeliveryTarget(target, "chat")) return failed("invalid-recipient", false);
166
+ if (target.provider !== void 0 && target.provider !== options.provider || target.workspace !== void 0 && options.workspace !== void 0 && target.workspace !== options.workspace) return failed("rejected", false, "the target is on another platform or workspace");
167
+ const previous = sent.get(deliveryOptions.idempotencyKey);
168
+ if (previous !== void 0) return previous;
169
+ let body;
170
+ try {
171
+ body = message.approval === void 0 ? message.text : approvalCard(message.approval.prompt, { approvalUrl: message.approval.url });
172
+ } catch {
173
+ return {
174
+ status: "failed",
175
+ cause: "invalid-message",
176
+ retryable: false
177
+ };
178
+ }
179
+ try {
180
+ const result = {
181
+ status: "sent",
182
+ providerId: (await (await chat.openDM(target.address)).post(body)).id
183
+ };
184
+ record(deliveryOptions.idempotencyKey, result);
185
+ return result;
186
+ } catch (error) {
187
+ return chatSdkFailure(error);
188
+ }
189
+ };
190
+ return Object.freeze({
191
+ channel: "chat",
192
+ name: "chat-sdk",
193
+ deliver
194
+ });
195
+ }
196
+ //#endregion
197
+ export { APPROVE_ACTION, REJECT_ACTION, approvalActions, approvalCard, chatSdkAuthor, chatSdkTransport };
@@ -0,0 +1,13 @@
1
+ import { o as readPath } from "./paths-DXSHAMIa.js";
2
+ //#region src/core/claims-map.ts
3
+ /** The value at `path`; a function that throws reads as absent, so a bad mapping fails closed. */
4
+ function readClaim(claims, path) {
5
+ if (typeof path === "string") return readPath(claims, path);
6
+ try {
7
+ return path(claims);
8
+ } catch {
9
+ return;
10
+ }
11
+ }
12
+ //#endregion
13
+ export { readClaim as t };
@@ -0,0 +1,32 @@
1
+ //#region src/core/claims-map.d.ts
2
+ /** Where a value lives in verified claims: a dotted path (`app_metadata.roles`), or a function over the claims. */
3
+ type ClaimPath = string | ((claims: Readonly<Record<string, unknown>>) => unknown);
4
+ /**
5
+ * How one provider's verified claims map to a principal. Every subject
6
+ * provider takes it as `claims`; each field it leaves out keeps that
7
+ * provider's default. Mapping only: core never verifies a token, and a claim
8
+ * becomes a principal field only after the provider verified the token.
9
+ */
10
+ type ClaimsMap = {
11
+ readonly id?: ClaimPath;
12
+ readonly roles?: ClaimPath;
13
+ readonly groups?: ClaimPath;
14
+ readonly entitlements?: ClaimPath;
15
+ readonly plans?: ClaimPath;
16
+ /** The active tenant. */
17
+ readonly tenant?: ClaimPath;
18
+ /** `[{ scope, id, within?, roles }]` carried in the token. */
19
+ readonly memberships?: ClaimPath;
20
+ /** `'user'`, `'service'` or `'workload'`, or the path that holds one. */
21
+ readonly kind?: string;
22
+ readonly assurance?: string | {
23
+ readonly acr?: string;
24
+ readonly amr?: string;
25
+ readonly authTime?: string;
26
+ /** OpenID Connect for Identity Assurance; default `verified_claims`. */
27
+ readonly verified?: string;
28
+ };
29
+ readonly session?: ClaimPath;
30
+ };
31
+ //#endregion
32
+ export { ClaimsMap as t };
@@ -1,7 +1,6 @@
1
- import { C as Policy, D as PolicyVocabulary, Nr as Principal, kr as Delegation, ln as PermDock } from "../policy-IB6yxpC3.js";
2
- import { f as ApprovalStore } from "../types-aqOHTHcp.js";
3
- import { t as InstanceOptions } from "../instance-options-jARdwfPN.js";
4
- import { t as ToolMap } from "../types-Bvc4oWT6.js";
1
+ import { T as Policy, j as PolicyVocabulary, rr as Principal } from "../policy-types-DzwivBgR.js";
2
+ import { r as PermDock } from "../permdock-D7eeLJER.js";
3
+ import { o as AgentAdapterOptions, t as AgentPermDock } from "../create-BDS7wc3y.js";
5
4
  //#region src/claude-agent/create.d.ts
6
5
  /** Structural `McpServerProvenance` from `@anthropic-ai/claude-agent-sdk`. */
7
6
  type ClaudeMcpServer = {
@@ -19,15 +18,9 @@ type ClaudeAgentContext = {
19
18
  readonly sessionId?: string;
20
19
  readonly agentId?: string;
21
20
  };
22
- type ClaudeAgentPermDockOptions<TUser = unknown> = InstanceOptions & {
23
- readonly subject: (context: ClaudeAgentContext) => TUser | Promise<TUser>;
24
- readonly actor?: (context: ClaudeAgentContext) => unknown;
25
- readonly delegation?: (context: ClaudeAgentContext) => Delegation | undefined | Promise<Delegation | undefined>;
26
- readonly tenant?: string | ((context: ClaudeAgentContext) => string | undefined | Promise<string | undefined>);
27
- readonly tools: ToolMap;
21
+ type ClaudeAgentPermDockOptions<TUser = unknown> = AgentAdapterOptions<ClaudeAgentContext, TUser> & {
28
22
  /** MCP server sources whose `mcp__*` tools may be decided; default `['sdk']`. */
29
23
  readonly mcpSources?: readonly string[];
30
- readonly store?: ApprovalStore;
31
24
  };
32
25
  type PermissionResult = {
33
26
  readonly behavior: "allow";
@@ -58,15 +51,15 @@ type PermissionRequestHookOutput = {
58
51
  readonly decision: PermissionResult;
59
52
  };
60
53
  } | Record<string, never>;
61
- type ClaudeAgentPermDock<V extends PolicyVocabulary = PolicyVocabulary> = {
54
+ type ClaudeAgentPermDock<V extends PolicyVocabulary = PolicyVocabulary> = AgentPermDock<ClaudeAgentContext, V> & {
62
55
  /** A `CanUseTool`: pass it as the query's `canUseTool` option. */
63
56
  readonly canUseTool: (toolName: string, input: Record<string, unknown>, options?: CanUseToolOptions) => Promise<PermissionResult>;
64
57
  /** A `HookCallback` for the `PermissionRequest` event. */
65
58
  readonly permissionRequestHook: (input: PermissionRequestHookInput, toolUseID?: string, options?: {
66
59
  readonly signal?: AbortSignal;
67
60
  }) => Promise<PermissionRequestHookOutput>;
68
- readonly permdock: (context: ClaudeAgentContext) => Promise<PermDock<V>>;
61
+ readonly getPermDock: (context: ClaudeAgentContext) => Promise<PermDock<V>>;
69
62
  };
70
- export declare function createPermDock<TUser, TPrincipal extends Principal = Principal, V extends PolicyVocabulary = PolicyVocabulary>(policy: Policy<TUser, TPrincipal, V>, options: ClaudeAgentPermDockOptions<TUser>): ClaudeAgentPermDock<V>;
63
+ export declare function createPermDock<TUser, TPrincipal extends Principal = Principal, V extends PolicyVocabulary = PolicyVocabulary>(policy: Policy<TUser, TPrincipal, V>, given: ClaudeAgentPermDockOptions<TUser>): ClaudeAgentPermDock<V>;
71
64
  //#endregion
72
65
  export type { CanUseToolOptions, ClaudeAgentContext, ClaudeAgentPermDock, ClaudeAgentPermDockOptions, ClaudeMcpServer, PermissionRequestHookInput, PermissionRequestHookOutput, PermissionResult };