permdock 0.4.0 → 0.6.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.
- package/README.md +37 -35
- package/dist/{schema-Bol6gqXA.js → 2020-C9VN-x8c.js} +5 -130
- package/dist/a2a/index.d.ts +6 -6
- package/dist/a2a/index.js +14 -17
- package/dist/{adapter-context-mlWsVGGg.js → adapter-context-CRhqyzCk.js} +1 -1
- package/dist/adoption-scan-DCYe60Pi.js +107 -0
- package/dist/agent/index.d.ts +3 -0
- package/dist/agent/index.js +1 -0
- package/dist/ai-sdk/index.d.ts +18 -35
- package/dist/ai-sdk/index.js +37 -23
- package/dist/{app-data-CV8pqqMi.js → app-data-MuyzVqX8.js} +2 -1
- package/dist/approval-header-CJACtHkv.js +23 -0
- package/dist/approval-prompt-Dg5LeAcT.js +62 -0
- package/dist/approval-prompt-DvSSPQJX.d.ts +57 -0
- package/dist/approvals/index.d.ts +5 -3
- package/dist/approvals/index.js +8 -5
- package/dist/approvals-p1PGoVjb.js +995 -0
- package/dist/arazzo-41WuzHou.js +36 -0
- package/dist/{arazzo-C4BcskbX.js → arazzo-CaUVBn7D.js} +20 -14
- package/dist/args-IIolxxKA.js +197 -0
- package/dist/astro/index.d.ts +43 -0
- package/dist/astro/index.js +27 -0
- package/dist/audience-DabClFLQ.js +55 -0
- package/dist/auth-DRLEizbL.js +178 -0
- package/dist/authzen/index.d.ts +26 -6
- package/dist/authzen/index.js +94 -79
- package/dist/automation-BNM3TtDo.d.ts +114 -0
- package/dist/automation-DVjOckjV.js +157 -0
- package/dist/better-auth/index.d.ts +8 -6
- package/dist/better-auth/index.js +9 -8
- package/dist/better-supabase/index.d.ts +357 -30
- package/dist/better-supabase/index.js +936 -194
- package/dist/{bind-kk-uyCwH.js → bind-CAvgUuKs.js} +14 -10
- package/dist/{bind-BzqG8SMb.d.ts → bind-DOyrv6zi.d.ts} +12 -10
- package/dist/body-CH5of8Ne.js +10 -0
- package/dist/body-text-QcXok_SI.js +52 -0
- package/dist/{build-instance-DIIV9DbC.js → build-instance-Bu_eDqYw.js} +4 -3
- package/dist/{canonical-json-CFKyFOke.js → canonical-json-BC8_nMTw.js} +5 -3
- package/dist/{capability-CksyCWDH.d.ts → capability-Drg-1YhL.d.ts} +44 -25
- package/dist/{capability-txATtKV4.js → capability-N1K9IpqS.js} +68 -42
- package/dist/casbin-Cr7RLtA3.js +30 -0
- package/dist/casbin-Dyu2gnUD.js +234 -0
- package/dist/casl-64gpT-8x.js +24 -0
- package/dist/casl-DjEDhTCP.js +299 -0
- package/dist/catalog/index.d.ts +74 -2
- package/dist/catalog/index.js +51 -2
- package/dist/catalog-BoWglDPI.js +1 -0
- package/dist/catalog-DZVbrF-z.js +52 -0
- package/dist/{catalog-tZUyOfOv.js → catalog-HD2gf5mY.js} +51 -6
- package/dist/{catalog-doc-DWtg0gGR.js → catalog-doc-Cdn7-0pQ.js} +45 -23
- package/dist/catalog-fingerprint-CCP0-yQS.js +153 -0
- package/dist/chat/index.d.ts +2 -0
- package/dist/chat/index.js +224 -0
- package/dist/chat-sdk/index.d.ts +87 -0
- package/dist/chat-sdk/index.js +197 -0
- package/dist/claims-map-7oQ3ue4X.js +13 -0
- package/dist/claims-map-Ca-QX8C6.d.ts +32 -0
- package/dist/claude-agent/index.d.ts +7 -14
- package/dist/claude-agent/index.js +24 -27
- package/dist/clerk/index.d.ts +9 -8
- package/dist/clerk/index.js +9 -14
- package/dist/cli/bin.js +36 -17
- package/dist/cli/index.d.ts +19 -5
- package/dist/cli/index.js +164 -4
- package/dist/cloud/index.d.ts +102 -63
- package/dist/cloud/index.js +239 -340
- package/dist/cloud-ytQ3uviA.js +87 -0
- package/dist/codemod-5mpSpnUY.js +37 -0
- package/dist/codemod-ua2hHy7w.js +2084 -0
- package/dist/collect-Ci6akVwH.js +55 -0
- package/dist/collect-D7eQDffE.js +1 -0
- package/dist/{collect-2SrB7lfk.js → collect-mLTY4nwb.js} +75 -11
- package/dist/command-L8EstFNm.js +6 -0
- package/dist/compile/index.d.ts +1 -1
- package/dist/compile/index.js +1 -2
- package/dist/{compile-CtTP7eur.d.ts → compile-1bsAezL0.d.ts} +5 -3
- package/dist/{compile-CcEu2ZQ1.js → compile-CMqMx_IN.js} +11 -8
- package/dist/completion-BTFrHZhX.js +143 -0
- package/dist/config-Bj2Ixq3d.js +26 -0
- package/dist/{config-BIjREpyE.js → config-bs_kZeYq.js} +12 -7
- package/dist/{config-report--Xb9APJS.js → config-report-DSpsLpCE.js} +15 -5
- package/dist/{connection-DUsczpB5.js → connection-DjhIJSs2.js} +6 -5
- package/dist/{context-DieZVJXu.js → context-B_u3_bDJ.js} +2 -2
- package/dist/convex/index.d.ts +11 -10
- package/dist/convex/index.js +6 -4
- package/dist/create-B30OMUOJ.d.ts +107 -0
- package/dist/create-CBMmFie-.d.ts +138 -0
- package/dist/create-CGm28gyI.js +130 -0
- package/dist/create-CQWIpUG-.js +403 -0
- package/dist/{create-BBO24vj6.js → create-DCF2SvoT.js} +31 -32
- package/dist/create-D_NmPOdH.d.ts +110 -0
- package/dist/{credential-kue0qpbm.js → credential-BcoiejpY.js} +152 -31
- package/dist/credentials-DPyHmYz5.js +74 -0
- package/dist/delegation-j6-rc37o.js +286 -0
- package/dist/delivery/index.d.ts +5 -0
- package/dist/delivery/index.js +5 -0
- package/dist/delivery-DCAgNyCn.js +499 -0
- package/dist/delivery-event-xX4obB8F.js +40 -0
- package/dist/{denied-text-DfRk15uw.d.ts → denied-text-CiFQNuMV.d.ts} +5 -5
- package/dist/{describe-C3ldA9os.d.ts → describe-B5qgDvEW.d.ts} +2 -2
- package/dist/{describe-Cgkp7eP0.js → describe-BybMRY7A.js} +6 -2
- package/dist/device-BARQ8eYG.js +193 -0
- package/dist/{diff-rpqoe7Ag.js → diff-3jbx6Rm4.js} +60 -54
- package/dist/diff-CmuSD3vc.js +37 -0
- package/dist/doctor-3ZqNHX_G.js +44 -0
- package/dist/{doctor-owlv6ddh.js → doctor-BdZw53-k.js} +245 -50
- package/dist/drizzle/index.d.ts +5 -3
- package/dist/drizzle/index.js +2 -2
- package/dist/elysia/index.d.ts +16 -13
- package/dist/elysia/index.js +13 -12
- package/dist/env-DJZrPjRi.js +8 -0
- package/dist/errors-BDUwg2qC.js +27 -0
- package/dist/{errors-drnfxYtm.js → errors-BKy0EfhN.js} +5 -9
- package/dist/errors-BWXBMaKK.d.ts +11 -0
- package/dist/errors-CWTY6uih.js +143 -0
- package/dist/{errors-OD_4c__H.d.ts → errors-DH5QEGXh.d.ts} +2 -2
- package/dist/evaluate-CNClBvcj.js +1785 -0
- package/dist/evaluations-C_1vdSZc.d.ts +32 -0
- package/dist/{evaluations-C9YJsv3H.js → evaluations-beAooV0n.js} +145 -34
- package/dist/eve/index.d.ts +12 -16
- package/dist/eve/index.js +22 -28
- package/dist/event-time-CsegxXxB.js +23 -0
- package/dist/expiry-D4_YKRKD.js +52 -0
- package/dist/express/index.d.ts +13 -10
- package/dist/express/index.js +12 -11
- package/dist/fastify/index.d.ts +25 -22
- package/dist/fastify/index.js +13 -12
- package/dist/fetch-adapter-DD_gfmrC.js +120 -0
- package/dist/fetch-adapter-Dw0MTS3D.d.ts +31 -0
- package/dist/fields-OYG_JR78.js +203 -0
- package/dist/files-C5ZI27eV.js +124 -0
- package/dist/{fixtures-h2eG2OZV.js → fixtures-B7XrLeY7.js} +8 -7
- package/dist/flags-C3DktBDY.js +86 -0
- package/dist/{from-snapshot-7REQZe0H.js → from-snapshot-CTCMsFZk.js} +55 -52
- package/dist/{grantee-conditions-MQs5NIuX.js → grantee-conditions-CcXf8hMM.js} +4 -3
- package/dist/{grantee-CXY-0C87.js → grantee-hxrUsbpM.js} +16 -6
- package/dist/{grantee-match-fxYp9Nmt.js → grantee-match-DbENBHLB.js} +5 -4
- package/dist/h3/index.d.ts +37 -0
- package/dist/h3/index.js +35 -0
- package/dist/headers-BIjfMaoC.js +8 -0
- package/dist/headers-CIbDTUTK.d.ts +7 -0
- package/dist/{helpers-C9YmyBIa.js → helpers-CBYVMjwh.js} +45 -38
- package/dist/hono/index.d.ts +12 -9
- package/dist/hono/index.js +13 -12
- package/dist/hosted-B46-5LYE.js +315 -0
- package/dist/hosted-BPk51-kX.d.ts +78 -0
- package/dist/{http-DPuDaChb.d.ts → http-B_LphE5Y.d.ts} +1 -2
- package/dist/http-DXJ37RDA.js +46 -0
- package/dist/{http-BEbdMZ05.js → http-ujKm0JXE.js} +1 -2
- package/dist/{import-UHk1N7vH.js → import-CNV7I2Dw.js} +25 -20
- package/dist/{import-BFIlhetD.js → import-wyqXUyjm.js} +190 -53
- package/dist/index-B8YjkEZ4.d.ts +210 -0
- package/dist/index-C-6Letxg.d.ts +431 -0
- package/dist/index-CaxrMD1A.d.ts +1 -0
- package/dist/{index-BwMe94Xq.d.ts → index-Ch8LpNDp.d.ts} +34 -16
- package/dist/index-Cp_ilKi1.d.ts +91 -0
- package/dist/index-CueFnxQc.d.ts +110 -0
- package/dist/index-DuWxc5dt.d.ts +909 -0
- package/dist/index.d.ts +19 -15
- package/dist/index.js +31 -21
- package/dist/init-DeMYsnYJ.js +96 -0
- package/dist/init-GG6Jh8HD.js +95 -0
- package/dist/{instance-options-plkrsAog.d.ts → instance-options-BsVpyGIk.d.ts} +2 -2
- package/dist/instance-snapshot-BOEhcqIF.js +601 -0
- package/dist/instant-BluqDvyS.js +19 -0
- package/dist/internals-Dk8A8fX3.js +17 -0
- package/dist/{json-schema-DBkdUuCO.js → json-schema-B-vAwlde.js} +45 -6
- package/dist/json-schema-CN_iLFH2.d.ts +40 -0
- package/dist/jwt/index.d.ts +18 -11
- package/dist/jwt/index.js +156 -135
- package/dist/{kernel-CB3LrIJM.js → kernel-D0NVb1cK.js} +52 -24
- package/dist/kysely/index.d.ts +5 -3
- package/dist/kysely/index.js +2 -2
- package/dist/load-BxEtwlBS.js +1 -0
- package/dist/{load-C3_oTHyO.js → load-DFS_ry0W.js} +22 -6
- package/dist/{load-jose-BL6LH4bL.js → load-jose-DZ4dnjri.js} +1 -4
- package/dist/login-Dfe5RlYk.js +68 -0
- package/dist/login-imhuwvn3.js +254 -0
- package/dist/manifest-C8IzW3Do.js +42 -0
- package/dist/manifest-dvL2XEe1.js +370 -0
- package/dist/manifest-json-CAGzls-C.js +9 -0
- package/dist/{manifest-uDS9y5de.d.ts → manifest-mx5ghSFM.d.ts} +9 -2
- package/dist/manifest-schema-C0kK_8V0.js +399 -0
- package/dist/{map-claims-AVlBaJoa.js → map-claims-D3oRmTk0.js} +13 -10
- package/dist/{map-error-BE27PYkE.js → map-error-Dr70oA_3.js} +3 -3
- package/dist/{markers-CiwAOZtO.js → markers-C6joDI3o.js} +2 -1
- package/dist/mcp/index.d.ts +22 -12
- package/dist/mcp/index.js +57 -39
- package/dist/{migrate-BwlB5-Wk.js → migrate-CIq4-E9F.js} +53 -14
- package/dist/nest/index.d.ts +12 -9
- package/dist/nest/index.js +15 -14
- package/dist/next/index.d.ts +18 -21
- package/dist/next/index.js +13 -11
- package/dist/next/plugin.d.ts +1 -1
- package/dist/next/plugin.js +2 -2
- package/dist/node/index.d.ts +10 -10
- package/dist/node/index.js +7 -9
- package/dist/{ocsf-uYFXGVw2.js → ocsf-BFp-PZZA.js} +22 -11
- package/dist/openai/index.d.ts +9 -16
- package/dist/openai/index.js +17 -24
- package/dist/openapi/index.d.ts +3 -3
- package/dist/openapi/index.js +1 -1
- package/dist/{openapi-DBzHQbov.js → openapi-B7HZ0f-r.js} +8 -8
- package/dist/openapi-C4dDTVEd.js +138 -0
- package/dist/{openapi-BJdBmYDG.js → openapi-DD1SV-5-.js} +10 -9
- package/dist/operation-findings-DgATDpvh.js +36 -0
- package/dist/operations-X0VM7F3m.d.ts +59 -0
- package/dist/orpc/index.d.ts +13 -10
- package/dist/orpc/index.js +20 -15
- package/dist/otel/index.d.ts +3 -2
- package/dist/otel/index.js +30 -7
- package/dist/output-1im__-08.js +88 -0
- package/dist/output-files-B3IZJksC.js +1 -0
- package/dist/{output-files-CgIsvdSa.js → output-files-DhRBBE4n.js} +24 -26
- package/dist/{permission-keys-B26jeyUv.js → ownership-DqaJNJPn.js} +1045 -153
- package/dist/{package-root-DtNnpmUd.js → package-root-Dk_ETdkp.js} +1 -1
- package/dist/{parse-CVFQHk6c.js → parse-Cxq0WxrA.js} +2 -2
- package/dist/{parse-local-manifest-DvYUR0QL.d.ts → parse-local-manifest-5ODwqu8b.d.ts} +1 -1
- package/dist/{parse-local-manifest-C-q02Pal.js → parse-local-manifest-CVSs6J9I.js} +1 -1
- package/dist/parse-request-D_tUXG6M.js +26 -0
- package/dist/paths-DXSHAMIa.js +42 -0
- package/dist/pdp/index.d.ts +7 -3
- package/dist/pdp/index.js +45 -26
- package/dist/{peer-BOr_kJE1.js → peer-C8swJ2GH.js} +23 -4
- package/dist/peer-CRvC7Hg1.js +1 -0
- package/dist/permdock-BrAscV28.js +868 -0
- package/dist/permdock-SV8ZINYT.d.ts +502 -0
- package/dist/{permission-registry-BsblpB-z.js → permission-registry-Br4jSNVi.js} +3 -3
- package/dist/permissions-B-wCP5ZC.js +30 -0
- package/dist/{permissions-CCJ6lmxB.js → permissions-BPxlwVhN.js} +4 -3
- package/dist/{permissions-COH-KRgT.d.ts → permissions-u_KHg-sN.d.ts} +1 -2
- package/dist/policies-DP2nqRoF.js +295 -0
- package/dist/{policy-ur0BBK_e.d.ts → policy-77FSAq_V.d.ts} +2 -2
- package/dist/{hosted-CBHgkzDl.js → policy-DbM5YYtV.js} +17 -273
- package/dist/policy-from-catalog-C2gMa2Dj.js +450 -0
- package/dist/policy-module-CTlwMvLI.js +89 -0
- package/dist/{policy-types-sp9P1iIV.d.ts → policy-types-n0uRTsW8.d.ts} +460 -632
- package/dist/postgrest-CEgRbefE.d.ts +100 -0
- package/dist/postgrest-DAjUkF9w.js +575 -0
- package/dist/{powersync-cZe4kzhL.js → powersync-BkWWCS1K.js} +23 -24
- package/dist/powersync-DISt6SUe.js +62 -0
- package/dist/powersync-MMJ2mI2q.js +1 -0
- package/dist/preset/index.d.ts +146 -0
- package/dist/preset/index.js +1 -0
- package/dist/preset-DZdU0tne.js +1768 -0
- package/dist/principal-source-pHneukrx.js +103 -0
- package/dist/prisma/index.d.ts +6 -3
- package/dist/prisma/index.js +2 -2
- package/dist/{problem-CnWraVhC.js → problem-CTviyH5L.js} +13 -23
- package/dist/{problem-details-rIIo8B2C.d.ts → problem-details-B45V5d2b.d.ts} +1 -1
- package/dist/{problem-details-DECUnXAn.js → problem-details-cn5X30gZ.js} +43 -40
- package/dist/problem-types-CJ2325SZ.js +5 -0
- package/dist/{prompt-CXYhLfsS.js → prompt-DfZLJLIn.js} +2 -2
- package/dist/{protected-BN7BUdY1.js → protected-BlF0F6wL.js} +21 -4
- package/dist/{protected-B3_P7xuw.d.ts → protected-RFGpakN9.d.ts} +16 -8
- package/dist/{provider-Bi-0HNL3.js → provider-B1al-AZz.js} +2 -2
- package/dist/{provider-kwHC9CZD.d.ts → provider-DILL9oPK.d.ts} +1 -1
- package/dist/{provider-store-Ctt-81Ni.js → provider-store-DM6DNcta.js} +2 -2
- package/dist/pull-CvpINcMK.js +1 -0
- package/dist/pull-jEwbf80J.js +256 -0
- package/dist/push-BD4f15co.js +116 -0
- package/dist/pushed-policy-CqtxkV4G.js +238 -0
- package/dist/pushed-policy-DCW91KQU.d.ts +57 -0
- package/dist/react/index.d.ts +8 -8
- package/dist/react/index.js +6 -6
- package/dist/react/provider-client.d.ts +1 -1
- package/dist/react/provider-client.js +1 -2
- package/dist/react-native/index.d.ts +24 -72
- package/dist/react-native/index.js +29 -25
- package/dist/{refs-f3imMjNW.js → refs-K6eWUJ0H.js} +1 -1
- package/dist/{relation-walk-BXnlLtg2.js → relation-walk-3OyDBF0S.js} +2 -2
- package/dist/{relations-CvmSpG67.js → relations-BnCWnJGI.js} +3 -3
- package/dist/renames-CGj7YwcQ.js +175 -0
- package/dist/{replay-COpmZUfx.d.ts → replay-Bkm-Ne4l.d.ts} +1 -1
- package/dist/{replay-BsOyTrdV.js → replay-Du1tJjG7.js} +2 -1
- package/dist/{request-context-BVM7aWNs.js → request-context-C81Pip9n.js} +3 -3
- package/dist/request-schema-CMreVuFM.js +148 -0
- package/dist/resend/index.d.ts +126 -0
- package/dist/resend/index.js +379 -0
- package/dist/{resource-relations-D1Un3pcz.js → resource-relations-D_jw0BFx.js} +1 -1
- package/dist/{retire-BFcxL6un.js → retire-CALjIQ7e.js} +2 -2
- package/dist/{revocations-Cy06JNx2.d.ts → revocations-R07lFBnX.d.ts} +2 -0
- package/dist/rls-BAqP4q66.js +336 -0
- package/dist/{rls-BEktUaqg.js → rls-DTvYd-lI.js} +288 -690
- package/dist/{role-builder-B4GbKM-i.js → role-builder-uWQZ4v84.js} +14 -207
- package/dist/{rpc-nYC3cR_u.js → rpc-VSl5ylaQ.js} +7 -7
- package/dist/run-CUKuz0A8.js +723 -0
- package/dist/run-DDwUaJDU.js +1 -0
- package/dist/run-ticket-DocwaTKn.d.ts +124 -0
- package/dist/run-ticket-sxFI6LAk.js +337 -0
- package/dist/{runtime-D_tMXnsq.js → runtime-D3VTAiCA.js} +1 -1
- package/dist/{saas-DtaA4JuW.js → saas-BCXRuXca.js} +16 -14
- package/dist/scan-qvOe0hS3.js +29 -0
- package/dist/{schema-DjQBcAP9.js → schema-B4v0Qrac.js} +102 -8
- package/dist/schema-yLuBWWsh.js +130 -0
- package/dist/scim/index.d.ts +2 -2
- package/dist/scim/index.js +1 -2
- package/dist/{scim-vFR1O5oG.js → scim-ClHtpyV3.js} +208 -76
- package/dist/{scopes-tvpa34ep.js → scopes-CUPSjo9q.js} +12 -7
- package/dist/server/index.d.ts +12 -143
- package/dist/server/index.js +12 -9
- package/dist/server-C3WXAHZj.js +453 -0
- package/dist/{server-types-DdqBwZN_.d.ts → server-types-CKQiCnON.d.ts} +51 -68
- package/dist/{sha256-BO0swRXL.js → sha256-D9ihqmvd.js} +8 -1
- package/dist/{shared-1uhI-e-b.js → shared-BAK8t4Uo.js} +20 -9
- package/dist/{shared-JhMeOsDF.js → shared-DvvFzYXe.js} +8 -9
- package/dist/signals-D3NcTKUS.js +32 -0
- package/dist/sink-4-eQIRWf.d.ts +225 -0
- package/dist/sink-BEZSlMS_.js +957 -0
- package/dist/{skills-BZdRQkxs.js → skills-B6lVdD_W.js} +13 -6
- package/dist/skills-CTYwkl44.js +51 -0
- package/dist/snapshot-B7DkYg6g.js +269 -0
- package/dist/{snapshot-cache-Cod40D-X.js → snapshot-cache-DZHQ0KF6.js} +11 -5
- package/dist/{snapshot-cache-J5T7t_vD.d.ts → snapshot-cache-PXI-vGpY.d.ts} +7 -5
- package/dist/solid/index.d.ts +11 -12
- package/dist/solid/index.js +7 -7
- package/dist/solid-start/index.d.ts +52 -0
- package/dist/solid-start/index.js +49 -0
- package/dist/{sources-Dljy06zL.d.ts → sources-Xc4zkszI.d.ts} +7 -13
- package/dist/{sources-B1-b-R0t.js → sources-vs5dGOsS.js} +125 -119
- package/dist/{sql-t8teWOfo.js → sql-B5T1IL83.js} +13 -1
- package/dist/src-Cu2m75uo.js +1860 -0
- package/dist/ssf/index.d.ts +4 -4
- package/dist/ssf/index.js +384 -47
- package/dist/standard-webhooks-DgFFD-Ga.js +228 -0
- package/dist/standard-webhooks-rbD7LS6h.d.ts +88 -0
- package/dist/storage-C2bWdvJH.js +132 -0
- package/dist/{store-ILkLUj_o.js → store-BDutJkDL.js} +40 -53
- package/dist/{store-options-CbUHDoSe.js → store-options-u0ycEe8s.js} +26 -21
- package/dist/{stores-Cxz_80g-.d.ts → stores-BUGNbJTt.d.ts} +7 -8
- package/dist/{stores-BHXdSbw9.js → stores-CGhM8BN_.js} +2 -2
- package/dist/{stream-Dwsg6WwE.d.ts → stream-CeCMJmBB.d.ts} +2 -2
- package/dist/{stream-BMui98KK.js → stream-CvdUS9V1.js} +9 -2
- package/dist/style-DiKWnAvn.js +1 -0
- package/dist/{style-CTm1AXDT.js → style-Uao76wO7.js} +3 -2
- package/dist/subject-BGoM5o8B.js +17 -0
- package/dist/supabase/index.d.ts +23 -106
- package/dist/supabase/index.js +5 -4
- package/dist/supabase/middleware.d.ts +7 -6
- package/dist/supabase/middleware.js +13 -11
- package/dist/supabase-By_frk3U.js +92 -0
- package/dist/{supabase-hook-Cva3ikXz.js → supabase-hook-BMoEhZir.js} +960 -64
- package/dist/supabase-hook-CCw5m35C.js +1 -0
- package/dist/{supabase-C1TWlnYt.js → supabase-x5JtR2tc.js} +99 -206
- package/dist/support-session-C6xJQYut.js +158 -0
- package/dist/svelte/Protected.svelte +4 -4
- package/dist/svelte/index.d.ts +7 -7
- package/dist/svelte/index.js +10 -10
- package/dist/svelte/runtime.d.ts +3 -3
- package/dist/svelte/runtime.js +3 -3
- package/dist/svelte/source.d.ts +7 -7
- package/dist/svelte/source.js +4 -4
- package/dist/sveltekit/index.d.ts +51 -0
- package/dist/sveltekit/index.js +27 -0
- package/dist/tanstack-start/index.d.ts +51 -0
- package/dist/tanstack-start/index.js +40 -0
- package/dist/target-Bw37TFNA.js +51 -0
- package/dist/{tenancy-DshjqY0n.js → tenancy-DN2QAx9z.js} +5 -5
- package/dist/terminal/index.d.ts +11 -9
- package/dist/terminal/index.js +23 -287
- package/dist/testing/index.d.ts +311 -38
- package/dist/testing/index.js +3475 -201
- package/dist/testing/saas/index.d.ts +9 -8
- package/dist/testing/saas/index.js +2 -2
- package/dist/testing/saas/permissions.d.ts +1 -1
- package/dist/testing/saas/permissions.js +1 -2
- package/dist/text-BMFRfBqc.js +8 -0
- package/dist/{text-diff-BdkkYSbi.js → text-diff-BQcUapOb.js} +1 -1
- package/dist/thenable-yD7SabqG.js +31 -0
- package/dist/time-DkWjdL98.js +71 -0
- package/dist/{token-Bx9qy30p.js → token-BLZcjQgt.js} +15 -6
- package/dist/{tool-refusal-CQ7OEia9.js → tool-refusal-CMLN5xhn.js} +2 -2
- package/dist/trpc/index.d.ts +12 -9
- package/dist/trpc/index.js +16 -14
- package/dist/types-8RnwUAvE.d.ts +107 -0
- package/dist/{store-9KO4BlkB.d.ts → types-B3_ooZgZ.d.ts} +100 -75
- package/dist/{types-Br9IXUBG.d.ts → types-BdtSDbBO.d.ts} +77 -17
- package/dist/types-BtHtcKMr.d.ts +157 -0
- package/dist/{types-CqrjB9o6.d.ts → types-BzzaHxt3.d.ts} +23 -11
- package/dist/types-C791HFu9.d.ts +332 -0
- package/dist/types-C863OQiR.d.ts +57 -0
- package/dist/{types-ByUo56un.d.ts → types-CVZSNocA.d.ts} +23 -22
- package/dist/{types-DHrmBJLH.d.ts → types-CX7AvRqP.d.ts} +7 -7
- package/dist/types-C_IiEs64.d.ts +65 -0
- package/dist/{types-7rJVLWe5.d.ts → types-Dfv0aTER.d.ts} +63 -11
- package/dist/types-DqzsnlSA.js +67 -0
- package/dist/{types-DpWfQdSh.d.ts → types-Druu9wLM.d.ts} +46 -11
- package/dist/{types-CIlTojhq.d.ts → types-_WhUP7ud.d.ts} +9 -6
- package/dist/{types-CUcFZfpU.d.ts → types-lUlG3TVd.d.ts} +2 -1
- package/dist/unplugin/index.d.ts +1 -1
- package/dist/unplugin/index.js +2 -2
- package/dist/usage-CRVl9V3t.js +32 -0
- package/dist/usage-CZpSQP6L.js +1 -0
- package/dist/{usage-CG9nOYZw.js → usage-SveTRTyr.js} +54 -11
- package/dist/{validation-error-BSSw0l_8.d.ts → validation-error-DHUrAkku.d.ts} +1 -1
- package/dist/{validity-dVrUEPJt.js → validity-CZ7-y0Cj.js} +32 -15
- package/dist/{verifier-DMr_Zmb_.js → verifier-DHuh-okk.js} +18 -7
- package/dist/{verify-BztUB3GX.js → verify-BaAKx7t6.js} +645 -50
- package/dist/{version-BEogC-rB.js → version-CEbQ5UeM.js} +4 -3
- package/dist/version-DXkYUISx.js +1 -0
- package/dist/{views-CJsrBS1f.js → views-DTIIO-oQ.js} +22 -5
- package/dist/{permission-types-Dg39z9Kv.d.ts → vocabulary-CN8H_9UF.d.ts} +67 -2
- package/dist/vue/index.d.ts +9 -10
- package/dist/vue/index.js +8 -8
- package/dist/waiter-B986w1oK.d.ts +36 -0
- package/dist/waiter-BGUtGYoU.js +67 -0
- package/dist/watch--ovlPOc0.js +1 -0
- package/dist/{watch-zeucB7eF.js → watch-vea54PRw.js} +44 -5
- package/dist/webmcp/index.d.ts +2 -2
- package/dist/webmcp/index.js +3 -3
- package/dist/where-scope-C9vfEphl.js +306 -0
- package/dist/who-can-DWBAcaCQ.js +364 -0
- package/dist/wire-delegation-Cv3W2eaM.js +36 -0
- package/dist/wire-denial-C7PaVYEM.js +27 -0
- package/dist/workflow/index.d.ts +5 -0
- package/dist/workflow/index.js +223 -0
- package/dist/workflow-sdk/index.d.ts +56 -0
- package/dist/workflow-sdk/index.js +78 -0
- package/dist/{wrap-Cr93qqdP.d.ts → wrap-C5jC6sKI.d.ts} +2 -1
- package/dist/{wrap-DWsU_5Bd.js → wrap-gX61EtpB.js} +7 -6
- package/package.json +136 -37
- package/schemas/access-event-v1.json +118 -0
- package/schemas/approval-request-v1.json +34 -1
- package/schemas/approval-signature-v1.json +94 -0
- package/schemas/automation-event-v1.json +113 -0
- package/schemas/capability-v1.json +84 -0
- package/schemas/catalog-event-v1.json +87 -0
- package/schemas/catalog-v1.json +123 -12
- package/schemas/cli-commands-v1.json +164 -0
- package/schemas/cli-result-v1.json +96 -0
- package/schemas/cloud-api-v1.json +5407 -0
- package/schemas/connector-v1.json +408 -0
- package/schemas/credential-event-v1.json +81 -0
- package/schemas/credential-v1.json +134 -0
- package/schemas/decision-event-v1.json +288 -0
- package/schemas/delivery-event-v1.json +117 -0
- package/schemas/directory-event-v1.json +85 -0
- package/schemas/evidence-export-v1.json +54 -0
- package/schemas/membership-event-v1.json +93 -0
- package/schemas/policy-v1.json +68 -0
- package/schemas/pushed-policy-v1.json +236 -0
- package/schemas/run-v1.json +162 -0
- package/schemas/snapshot-v1.json +138 -0
- package/schemas/supabase-claims-v1.json +4 -4
- package/schemas/supabase-manifest-v1.json +5 -1
- package/schemas/support-session-v1.json +111 -0
- package/skills/permdock/SKILL.md +16 -12
- package/skills/permdock-agents/SKILL.md +40 -23
- package/skills/permdock-agents/references/operations-automations-chat.md +221 -0
- package/skills/permdock-agents/references/runtimes.md +22 -18
- package/skills/permdock-approvals/SKILL.md +29 -13
- package/skills/permdock-approvals/references/delivery-and-waiters.md +172 -0
- package/skills/permdock-approvals/references/stores-and-resume.md +21 -7
- package/skills/permdock-audit/SKILL.md +3 -3
- package/skills/permdock-credentials/SKILL.md +5 -5
- package/skills/permdock-credentials/references/tokens-keys-links.md +14 -10
- package/skills/permdock-data/SKILL.md +6 -6
- package/skills/permdock-data/references/queries-and-rls.md +10 -9
- package/skills/permdock-data/references/relationships.md +3 -3
- package/skills/permdock-tenancy/SKILL.md +20 -7
- package/skills/permdock-tenancy/references/contacts-and-support-sessions.md +122 -0
- package/skills/permdock-tenancy/references/ownership-and-custom-roles.md +6 -4
- package/skills/permdock-wire/SKILL.md +17 -11
- package/skills/permdock-wire/references/adapters.md +139 -51
- package/skills/permdock-wire/references/policy-options.md +5 -5
- package/skills/permdock-wire/references/presets-and-recipes.md +58 -0
- package/dist/approvals-DZL76lKW.js +0 -240
- package/dist/arazzo-CD8d0WLb.js +0 -54
- package/dist/catalog-6yWAX6Ps.js +0 -2
- package/dist/catalog-WHG4kBq7.js +0 -48
- package/dist/cloud-C7bSDgX4.js +0 -50
- package/dist/cloud-PeBN3IEn.js +0 -118
- package/dist/collect-Bw2Jdq1q.js +0 -2
- package/dist/collect-CQx4hX4N.js +0 -83
- package/dist/commands-Cpip4ULx.js +0 -97
- package/dist/config-DLt6BvV7.js +0 -36
- package/dist/diff-Cnghh_Ip.js +0 -48
- package/dist/doctor-CuVJvhV_.js +0 -53
- package/dist/duration-xK2jGFVc.js +0 -25
- package/dist/errors-CWfoNg9N.js +0 -47
- package/dist/errors-DRnGZHzF.js +0 -30
- package/dist/expiry-BoBJ8Tvc.js +0 -7
- package/dist/fields-fwfXN01n.js +0 -1016
- package/dist/headers-BZSDieNT.js +0 -6
- package/dist/headers-Cf-zWvsO.d.ts +0 -6
- package/dist/ids-DC4V4CFu.js +0 -18
- package/dist/index-DgM7w96K.d.ts +0 -6
- package/dist/index-Dz7didpC.d.ts +0 -201
- package/dist/index-UdVQgq48.d.ts +0 -550
- package/dist/load-B_shHrmd.js +0 -2
- package/dist/manifest-BngWKryL.js +0 -770
- package/dist/may-use-BOn_dR_w.js +0 -78
- package/dist/openapi-DcQ1Kg40.js +0 -164
- package/dist/ownership-BgnbOJFT.js +0 -851
- package/dist/permdock-L26udHSk.js +0 -3646
- package/dist/powersync-BFSbSElQ.js +0 -62
- package/dist/powersync-DCDgZgfZ.js +0 -2
- package/dist/rls-55DQTuf5.js +0 -250
- package/dist/run-DMcNW_8T.js +0 -174
- package/dist/server-ZYEHtNHS.js +0 -268
- package/dist/sink-BTtmfPnE.js +0 -141
- package/dist/sink-CPN4zLfs.d.ts +0 -104
- package/dist/skills-Dle4ZoLF.js +0 -56
- package/dist/snapshot-Dc9CHPME.js +0 -1078
- package/dist/src-Bb7no-hS.js +0 -639
- package/dist/subject-C6dLxqHU.js +0 -24
- package/dist/supabase-Dbqr141s.js +0 -83
- package/dist/supabase-hook-BULg7Ut_.js +0 -2
- package/dist/thenable-QSmvt-vZ.js +0 -65
- package/dist/types-C0dee0Qf.d.ts +0 -197
- package/dist/types-DvupZE0w.d.ts +0 -9
- package/dist/usage-4G6t643F.js +0 -42
- package/dist/usage-iFLJ0-rr.js +0 -2
- package/dist/vocabulary-hhEFLFoL.d.ts +0 -65
- package/dist/watch-C8TpsAl4.js +0 -2
package/dist/convex/index.js
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { t as compact } from "../compact-CAf557ZB.js";
|
|
2
2
|
import { n as PermDockValidationError } from "../validation-error-ZfUHbKvf.js";
|
|
3
|
-
import { n as PermDockDeniedError, t as PermDockApprovalRequiredError } from "../errors-
|
|
4
|
-
import {
|
|
5
|
-
import { n as
|
|
3
|
+
import { n as PermDockDeniedError, t as PermDockApprovalRequiredError } from "../errors-BKy0EfhN.js";
|
|
4
|
+
import { c as withApp } from "../permdock-BrAscV28.js";
|
|
5
|
+
import { n as resolveOrNull, t as buildInstance } from "../build-instance-Bu_eDqYw.js";
|
|
6
|
+
import { n as tenantScope, t as actorFrom } from "../adapter-context-CRhqyzCk.js";
|
|
6
7
|
//#region src/convex/create.ts
|
|
7
8
|
/** Convex's runtime sends `data` to the client only for an error carrying this symbol. */
|
|
8
9
|
const CONVEX_ERROR = Symbol.for("ConvexError");
|
|
@@ -19,7 +20,8 @@ function toConvexError(error) {
|
|
|
19
20
|
if (error instanceof PermDockDeniedError || error instanceof PermDockApprovalRequiredError || error instanceof PermDockValidationError) return new ConvexError(error.toProblemDetails());
|
|
20
21
|
return error;
|
|
21
22
|
}
|
|
22
|
-
function createPermDock(policy,
|
|
23
|
+
function createPermDock(policy, given) {
|
|
24
|
+
const options = withApp(policy, given);
|
|
23
25
|
const withPermDock = (handler) => {
|
|
24
26
|
return async (ctx, args) => {
|
|
25
27
|
const user = await resolveOrNull(() => options.subject(ctx));
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
import { Ln as DeniedDecision, Mn as ApprovalRequiredDecision, T as Policy, ar as Subject, j as PolicyVocabulary, rr as Principal, zn as GrantedDecision } from "./policy-types-n0uRTsW8.js";
|
|
2
|
+
import { t as Operation } from "./operations-X0VM7F3m.js";
|
|
3
|
+
import { i as PermDockOptions, p as PrincipalSource, r as PermDock } from "./permdock-SV8ZINYT.js";
|
|
4
|
+
import { m as ApprovalStore, p as ApprovalStatus } from "./types-BdtSDbBO.js";
|
|
5
|
+
import { n as ApprovalErrorCode } from "./errors-BWXBMaKK.js";
|
|
6
|
+
import { t as ApprovalPrompt } from "./approval-prompt-DvSSPQJX.js";
|
|
7
|
+
//#region src/chat/subject.d.ts
|
|
8
|
+
/**
|
|
9
|
+
* The platform user behind a chat message or action. Fill it only from an
|
|
10
|
+
* event whose platform signature the transport verified; a body field or a
|
|
11
|
+
* model argument is never an author.
|
|
12
|
+
*/
|
|
13
|
+
type ChatAuthor = {
|
|
14
|
+
/** The chat platform (`slack`, `teams`, `discord`, …). */
|
|
15
|
+
readonly provider: string;
|
|
16
|
+
/** The platform's user id, never a display name. */
|
|
17
|
+
readonly userId: string;
|
|
18
|
+
/** The workspace, team or tenant id on the platform. */
|
|
19
|
+
readonly workspace?: string;
|
|
20
|
+
};
|
|
21
|
+
/** The principal a chat author's identity link names, as the `PrincipalSource` returns it. */
|
|
22
|
+
type ChatPrincipal = Principal;
|
|
23
|
+
type SubjectFromChatOptions = {
|
|
24
|
+
/** Resolves the author through `principalByIdentity({ kind: 'chat', … })`. */
|
|
25
|
+
readonly principals: PrincipalSource;
|
|
26
|
+
};
|
|
27
|
+
declare function isChatAuthor(value: unknown): value is ChatAuthor;
|
|
28
|
+
/**
|
|
29
|
+
* The subject a chat author acts as: the principal its identity link
|
|
30
|
+
* names, or anonymous when there is no link. Never throws.
|
|
31
|
+
*/
|
|
32
|
+
declare function subjectFromChat(author: ChatAuthor | null | undefined, options: SubjectFromChatOptions): Promise<Subject>;
|
|
33
|
+
//#endregion
|
|
34
|
+
//#region src/chat/create.d.ts
|
|
35
|
+
type ChatPermDockOptions = PermDockOptions & {
|
|
36
|
+
/** Resolves chat authors through `principalByIdentity`; also the instance's principal source. */
|
|
37
|
+
readonly principals: PrincipalSource;
|
|
38
|
+
/** Where approval requests open and resolve. Without it an approval-required command only reports the decision. */
|
|
39
|
+
readonly store?: ApprovalStore;
|
|
40
|
+
};
|
|
41
|
+
/** What a protected command's handler receives once the author is granted. */
|
|
42
|
+
type ChatCommandContext<TInput, V extends PolicyVocabulary> = {
|
|
43
|
+
readonly author: ChatAuthor;
|
|
44
|
+
readonly input: TInput;
|
|
45
|
+
/** The row the operation's `data` loaded, `undefined` without `data`. */
|
|
46
|
+
readonly row: unknown;
|
|
47
|
+
readonly permdock: PermDock<V>;
|
|
48
|
+
readonly decision: GrantedDecision;
|
|
49
|
+
};
|
|
50
|
+
type ChatCommandResult<T> = {
|
|
51
|
+
readonly outcome: "granted";
|
|
52
|
+
readonly value: T;
|
|
53
|
+
} | {
|
|
54
|
+
readonly outcome: "denied";
|
|
55
|
+
readonly decision: DeniedDecision;
|
|
56
|
+
} | {
|
|
57
|
+
readonly outcome: "approval-required";
|
|
58
|
+
readonly decision: ApprovalRequiredDecision;
|
|
59
|
+
/** The open request to deliver to approvers; `null` without an approval store. */
|
|
60
|
+
readonly prompt: ApprovalPrompt | null;
|
|
61
|
+
};
|
|
62
|
+
/** A command guarded by `protect`. Never throws for a refusal; the handler's own errors propagate. */
|
|
63
|
+
type ChatCommand<TInput, T> = (author: ChatAuthor | null | undefined, input: TInput) => Promise<ChatCommandResult<T>>;
|
|
64
|
+
/** A verdict from a chat button or reaction, by approval request `id`; the token never leaves the server. */
|
|
65
|
+
type ChatAction = {
|
|
66
|
+
readonly approval: string;
|
|
67
|
+
readonly status: "approved" | "rejected";
|
|
68
|
+
readonly note?: string;
|
|
69
|
+
};
|
|
70
|
+
type ChatActionResult = {
|
|
71
|
+
readonly ok: true;
|
|
72
|
+
readonly id: string;
|
|
73
|
+
readonly status: ApprovalStatus;
|
|
74
|
+
} | {
|
|
75
|
+
readonly ok: false;
|
|
76
|
+
readonly cause: ApprovalErrorCode | "invalid-action";
|
|
77
|
+
};
|
|
78
|
+
/**
|
|
79
|
+
* The runtime-neutral chat contract: commands decided as the linked
|
|
80
|
+
* principal of a verified chat author, and approval verdicts from chat
|
|
81
|
+
* actions. `permdock/chat-sdk` implements it for Chat SDK bots.
|
|
82
|
+
*/
|
|
83
|
+
type ChatPermDock<V extends PolicyVocabulary = PolicyVocabulary> = {
|
|
84
|
+
/** The instance for `author`; anonymous, and so denying, when the author is unlinked. */
|
|
85
|
+
readonly getPermDock: (author: ChatAuthor | null | undefined) => Promise<PermDock<V>>;
|
|
86
|
+
/**
|
|
87
|
+
* Guards `handler` with `operation`: loads the row through the
|
|
88
|
+
* operation's `data`, decides as the author, and on `approval-required`
|
|
89
|
+
* opens one request per author, permission and row. The handler runs only
|
|
90
|
+
* when granted; an approved request runs it once.
|
|
91
|
+
*/
|
|
92
|
+
readonly protect: <TInput, T>(operation: Operation<TInput>, handler: (context: ChatCommandContext<TInput, V>) => T | Promise<T>) => ChatCommand<TInput, T>;
|
|
93
|
+
/**
|
|
94
|
+
* Resolves approval request `action.approval` as `author`. The author must
|
|
95
|
+
* be linked and an eligible, distinct approver; the request's requester
|
|
96
|
+
* never approves their own request.
|
|
97
|
+
*/
|
|
98
|
+
readonly resolveAction: (author: ChatAuthor | null | undefined, action: ChatAction) => Promise<ChatActionResult>;
|
|
99
|
+
};
|
|
100
|
+
/**
|
|
101
|
+
* Creates the chat PermDock. Every command and action is decided as the
|
|
102
|
+
* principal the author's chat identity links to, loaded live; an unlinked
|
|
103
|
+
* author is anonymous and denied.
|
|
104
|
+
*/
|
|
105
|
+
declare function createPermDock<TUser, TPrincipal extends Principal = Principal, V extends PolicyVocabulary = PolicyVocabulary>(policy: Policy<TUser, TPrincipal, V>, given: ChatPermDockOptions): ChatPermDock<V>;
|
|
106
|
+
//#endregion
|
|
107
|
+
export { ChatCommandResult as a, createPermDock as c, SubjectFromChatOptions as d, isChatAuthor as f, ChatCommandContext as i, ChatAuthor as l, ChatActionResult as n, ChatPermDock as o, subjectFromChat as p, ChatCommand as r, ChatPermDockOptions as s, ChatAction as t, ChatPrincipal as u };
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
import { $n as Delegation, Nn as Decision, T as Policy, ar as Subject, j as PolicyVocabulary, rr as Principal } from "./policy-types-n0uRTsW8.js";
|
|
2
|
+
import { w as Permission } from "./vocabulary-CN8H_9UF.js";
|
|
3
|
+
import { t as Operation } from "./operations-X0VM7F3m.js";
|
|
4
|
+
import { r as PermDock } from "./permdock-SV8ZINYT.js";
|
|
5
|
+
import { m as ApprovalStore } from "./types-BdtSDbBO.js";
|
|
6
|
+
import { t as InstanceOptions } from "./instance-options-BsVpyGIk.js";
|
|
7
|
+
import { t as RequestContext } from "./request-context-C2_1lchh.js";
|
|
8
|
+
import { n as PermDockWrap } from "./wrap-C5jC6sKI.js";
|
|
9
|
+
import { o as OtelWrap } from "./types-lUlG3TVd.js";
|
|
10
|
+
import { t as DeniedText } from "./denied-text-CiFQNuMV.js";
|
|
11
|
+
//#region src/agent/types.d.ts
|
|
12
|
+
/** The part of an operation a tool decision reads; an `OperationMap` entry is one. */
|
|
13
|
+
type ToolBinding = Pick<Operation, "permission" | "data" | "results"> & Partial<Pick<Operation, "name" | "meta">>;
|
|
14
|
+
type ToolMap = Readonly<Record<string, ToolBinding>>;
|
|
15
|
+
/**
|
|
16
|
+
* The models an agent may call, by model id (`'openai/gpt-5'`), each bound to
|
|
17
|
+
* the permission that grants it. An instance permission is decided on the
|
|
18
|
+
* row `{ id }`.
|
|
19
|
+
*/
|
|
20
|
+
type ModelMap = Readonly<Record<string, Permission>>;
|
|
21
|
+
/** The options `permdock/ai-sdk`, `permdock/openai`, `permdock/claude-agent` and `permdock/eve` share. */
|
|
22
|
+
type AgentAdapterOptions<TContext, TUser = unknown> = InstanceOptions & {
|
|
23
|
+
/** The user, or a full `Subject` (core then skips `policy.subject`). */
|
|
24
|
+
readonly subject: (context: TContext) => TUser | Subject | Promise<TUser | Subject>;
|
|
25
|
+
readonly actor?: (context: TContext) => unknown;
|
|
26
|
+
readonly delegation?: (context: TContext) => Delegation | undefined | Promise<Delegation | undefined>;
|
|
27
|
+
readonly tenant?: string | ((context: TContext) => string | undefined | Promise<string | undefined>);
|
|
28
|
+
/** The tools the agent may call, by tool name: the map `defineOperations` returns. */
|
|
29
|
+
readonly operations: ToolMap;
|
|
30
|
+
/**
|
|
31
|
+
* The model gate. Absent: the adapter never checks a model. Present: a
|
|
32
|
+
* model id it does not name is denied.
|
|
33
|
+
*/
|
|
34
|
+
readonly models?: ModelMap;
|
|
35
|
+
readonly store?: ApprovalStore;
|
|
36
|
+
/**
|
|
37
|
+
* Tools `operations` does not name. `'deny'` (default) denies them.
|
|
38
|
+
* `'allow'` leaves them to the runtime's own approval.
|
|
39
|
+
*/
|
|
40
|
+
readonly unmapped?: "deny" | "allow";
|
|
41
|
+
/**
|
|
42
|
+
* Request values merged into `subject.context`, under `policy.context`.
|
|
43
|
+
* Only values the server derived belong here, never model output.
|
|
44
|
+
*/
|
|
45
|
+
readonly context?: (context: TContext) => RequestContext | undefined | Promise<RequestContext | undefined>;
|
|
46
|
+
/** `(permdock) => withOtel(permdock, options)` from `permdock/otel`. */
|
|
47
|
+
readonly otel?: OtelWrap;
|
|
48
|
+
/** Wraps each instance after `otel`; build it with `wrapPermDock` to cover derived instances. */
|
|
49
|
+
readonly wrap?: PermDockWrap;
|
|
50
|
+
/** Replaces the denial reason or approval summary text; nothing else. */
|
|
51
|
+
readonly deniedText?: DeniedText;
|
|
52
|
+
};
|
|
53
|
+
type ToolVerdict = {
|
|
54
|
+
readonly outcome: "granted";
|
|
55
|
+
readonly decision: Extract<Decision, {
|
|
56
|
+
readonly outcome: "granted";
|
|
57
|
+
}>;
|
|
58
|
+
readonly permission: Permission;
|
|
59
|
+
readonly data: unknown;
|
|
60
|
+
} | {
|
|
61
|
+
readonly outcome: "denied";
|
|
62
|
+
readonly decision: Extract<Decision, {
|
|
63
|
+
readonly outcome: "denied";
|
|
64
|
+
}> | null;
|
|
65
|
+
readonly permission: Permission | undefined;
|
|
66
|
+
readonly reason: string;
|
|
67
|
+
} | {
|
|
68
|
+
readonly outcome: "approval-required";
|
|
69
|
+
readonly decision: Extract<Decision, {
|
|
70
|
+
readonly outcome: "approval-required";
|
|
71
|
+
}>;
|
|
72
|
+
readonly permission: Permission;
|
|
73
|
+
readonly data: unknown;
|
|
74
|
+
readonly token: string;
|
|
75
|
+
readonly summary: string;
|
|
76
|
+
};
|
|
77
|
+
type DecideToolOptions = {
|
|
78
|
+
readonly resumeToken?: string;
|
|
79
|
+
/**
|
|
80
|
+
* Treat an existing pending record as a re-check of a call that already
|
|
81
|
+
* asked: deny with `approval-pending` instead of asking again. For runtimes
|
|
82
|
+
* that re-run the approval hook after a human answers and run the tool on
|
|
83
|
+
* anything but a denial.
|
|
84
|
+
*/
|
|
85
|
+
readonly denyPending?: boolean;
|
|
86
|
+
};
|
|
87
|
+
//#endregion
|
|
88
|
+
//#region src/agent/create.d.ts
|
|
89
|
+
type AgentPermDockOptions<TContext, TUser = unknown> = AgentAdapterOptions<TContext, TUser>;
|
|
90
|
+
/** What one operation call decides: granted with the loaded row, denied with the text a model reads, or parked for approval. */
|
|
91
|
+
type OperationVerdict = ToolVerdict;
|
|
92
|
+
/** `providerOptions` for the Vercel AI Gateway: spend and usage attributed to the caller. */
|
|
93
|
+
type GatewayOptions = {
|
|
94
|
+
readonly gateway: {
|
|
95
|
+
readonly user?: string;
|
|
96
|
+
readonly tags?: readonly string[];
|
|
97
|
+
};
|
|
98
|
+
};
|
|
99
|
+
/**
|
|
100
|
+
* The runtime-neutral agent contract: operations decided by name, the model
|
|
101
|
+
* gate and the results filter. `permdock/ai-sdk`, `permdock/openai`,
|
|
102
|
+
* `permdock/claude-agent` and `permdock/eve` each return one, plus the hooks
|
|
103
|
+
* their runtime calls.
|
|
104
|
+
*/
|
|
105
|
+
type AgentPermDock<TContext, V extends PolicyVocabulary = PolicyVocabulary> = {
|
|
106
|
+
/** One instance per context object while a call is in flight; later calls re-read the subject. */
|
|
107
|
+
readonly getPermDock: (context: TContext) => Promise<PermDock<V>>;
|
|
108
|
+
/**
|
|
109
|
+
* Decides operation `name` on `input`: loads the row through the
|
|
110
|
+
* operation's `data`, validates it, decides and resumes an approval. Never
|
|
111
|
+
* throws; an operation `operations` does not name is denied.
|
|
112
|
+
*/
|
|
113
|
+
readonly decideOperation: (name: string, input: unknown, context: TContext, options?: DecideToolOptions) => Promise<OperationVerdict>;
|
|
114
|
+
/** Operation names the subject could be granted for some row; a listing hint, never a decision. */
|
|
115
|
+
readonly allowedOperations: (context: TContext) => Promise<ReadonlySet<string>>;
|
|
116
|
+
/** The approval token a call would park under, without touching the store. */
|
|
117
|
+
readonly tokenFor: (name: string, input: unknown, context: TContext) => Promise<string | undefined>;
|
|
118
|
+
/** Decides whether the subject may call model `modelId`. A model `models` does not name is denied. */
|
|
119
|
+
readonly decideModel: (modelId: string, context: TContext) => Promise<Decision>;
|
|
120
|
+
/** The ids in `models` the subject is granted, in declaration order. */
|
|
121
|
+
readonly permittedModels: (context: TContext) => Promise<readonly string[]>;
|
|
122
|
+
/**
|
|
123
|
+
* The rows of an operation's output the subject may see, by the
|
|
124
|
+
* operation's `results` permission. Without `results` the rows come back
|
|
125
|
+
* unchanged; an operation `operations` does not name returns none.
|
|
126
|
+
*/
|
|
127
|
+
readonly filterResults: <T>(name: string, rows: readonly T[], context: TContext) => Promise<T[]>;
|
|
128
|
+
/** `providerOptions.gateway` with the principal as `user` and the tenant and actor as tags. */
|
|
129
|
+
readonly gatewayOptions: (context: TContext) => Promise<GatewayOptions>;
|
|
130
|
+
};
|
|
131
|
+
/**
|
|
132
|
+
* The agent contract for a runtime PermDock has no adapter for: decide
|
|
133
|
+
* operations by name, gate models and filter results. The subject comes from
|
|
134
|
+
* `subject(context)` on the server, never from model output.
|
|
135
|
+
*/
|
|
136
|
+
declare function createPermDock<TContext, TUser, TPrincipal extends Principal = Principal, V extends PolicyVocabulary = PolicyVocabulary>(policy: Policy<TUser, TPrincipal, V>, given: AgentPermDockOptions<TContext, TUser>): AgentPermDock<TContext, V>;
|
|
137
|
+
//#endregion
|
|
138
|
+
export { createPermDock as a, ModelMap as c, OperationVerdict as i, ToolBinding as l, AgentPermDockOptions as n, AgentAdapterOptions as o, GatewayOptions as r, DecideToolOptions as s, AgentPermDock as t, ToolMap as u };
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
import { t as compact } from "./compact-CAf557ZB.js";
|
|
2
|
+
import { n as freezeDeep } from "./freeze-CrU8nQeX.js";
|
|
3
|
+
import { a as deniedFor } from "./where-scope-C9vfEphl.js";
|
|
4
|
+
import { c as withApp } from "./permdock-BrAscV28.js";
|
|
5
|
+
import { t as composeWraps } from "./wrap-gX61EtpB.js";
|
|
6
|
+
import { r as instanceOptions } from "./build-instance-Bu_eDqYw.js";
|
|
7
|
+
import { n as createAgentKernel } from "./kernel-D0NVb1cK.js";
|
|
8
|
+
//#region src/agent/create.ts
|
|
9
|
+
function modelRow(modelId) {
|
|
10
|
+
return { id: modelId };
|
|
11
|
+
}
|
|
12
|
+
function unlistedModel(modelId) {
|
|
13
|
+
return freezeDeep({
|
|
14
|
+
outcome: "denied",
|
|
15
|
+
denials: [{
|
|
16
|
+
role: null,
|
|
17
|
+
reason: "no-grant",
|
|
18
|
+
detail: { model: modelId }
|
|
19
|
+
}],
|
|
20
|
+
alternatives: []
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
function decideModelOn(permdock, models, modelId, adapter) {
|
|
24
|
+
const permission = models !== void 0 && Object.hasOwn(models, modelId) ? models[modelId] : void 0;
|
|
25
|
+
if (permission === void 0) return unlistedModel(modelId);
|
|
26
|
+
try {
|
|
27
|
+
return permdock.decide(permission, permission.kind === "instance" ? modelRow(modelId) : void 0, {
|
|
28
|
+
trusted: true,
|
|
29
|
+
adapter,
|
|
30
|
+
call: "adapter",
|
|
31
|
+
model: modelId
|
|
32
|
+
});
|
|
33
|
+
} catch {
|
|
34
|
+
return deniedFor(permission, "closure-error");
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
/** Builds the agent contract and its kernel for an adapter named `adapter`. */
|
|
38
|
+
function agentRuntime(policy, options, adapter) {
|
|
39
|
+
const kernel = createAgentKernel(policy, {
|
|
40
|
+
...compact({
|
|
41
|
+
actor: options.actor,
|
|
42
|
+
delegation: options.delegation,
|
|
43
|
+
tenant: options.tenant,
|
|
44
|
+
store: options.store,
|
|
45
|
+
context: options.context,
|
|
46
|
+
wrap: composeWraps(options.otel, options.wrap),
|
|
47
|
+
deniedText: options.deniedText
|
|
48
|
+
}),
|
|
49
|
+
...instanceOptions(options),
|
|
50
|
+
subject: options.subject,
|
|
51
|
+
tools: options.operations,
|
|
52
|
+
adapter
|
|
53
|
+
});
|
|
54
|
+
const operations = options.operations;
|
|
55
|
+
const bindingOf = (name) => Object.hasOwn(operations, name) ? operations[name] : void 0;
|
|
56
|
+
const decideModel = async (modelId, context) => {
|
|
57
|
+
try {
|
|
58
|
+
return decideModelOn(await kernel.instance(context), options.models, modelId, adapter);
|
|
59
|
+
} catch {
|
|
60
|
+
return unlistedModel(modelId);
|
|
61
|
+
}
|
|
62
|
+
};
|
|
63
|
+
const permittedModels = async (context) => {
|
|
64
|
+
if (options.models === void 0) return [];
|
|
65
|
+
let permdock;
|
|
66
|
+
try {
|
|
67
|
+
permdock = await kernel.instance(context);
|
|
68
|
+
} catch {
|
|
69
|
+
return [];
|
|
70
|
+
}
|
|
71
|
+
return Object.keys(options.models).filter((modelId) => decideModelOn(permdock, options.models, modelId, adapter).outcome === "granted");
|
|
72
|
+
};
|
|
73
|
+
const filterResults = async (name, rows, context) => {
|
|
74
|
+
const binding = bindingOf(name);
|
|
75
|
+
if (binding === void 0) return [];
|
|
76
|
+
if (binding.results === void 0) return [...rows];
|
|
77
|
+
try {
|
|
78
|
+
const permdock = await kernel.instance(context);
|
|
79
|
+
const results = binding.results;
|
|
80
|
+
if (results.kind !== "instance") return permdock.can(results, void 0) ? [...rows] : [];
|
|
81
|
+
await permdock.prefetchRelations(results, rows);
|
|
82
|
+
return permdock.filter(results, rows, {
|
|
83
|
+
adapter,
|
|
84
|
+
call: "filter"
|
|
85
|
+
});
|
|
86
|
+
} catch {
|
|
87
|
+
return [];
|
|
88
|
+
}
|
|
89
|
+
};
|
|
90
|
+
const gatewayOptions = async (context) => {
|
|
91
|
+
let permdock;
|
|
92
|
+
try {
|
|
93
|
+
permdock = await kernel.instance(context);
|
|
94
|
+
} catch {
|
|
95
|
+
return { gateway: {} };
|
|
96
|
+
}
|
|
97
|
+
const { principal, actor } = permdock.subject;
|
|
98
|
+
const tags = [...principal?.tenant === void 0 ? [] : [`tenant:${principal.tenant}`], ...actor === void 0 ? [] : [`actor:${actor.kind}`]];
|
|
99
|
+
return { gateway: compact({
|
|
100
|
+
user: principal?.id,
|
|
101
|
+
tags: tags.length > 0 ? tags : void 0
|
|
102
|
+
}) };
|
|
103
|
+
};
|
|
104
|
+
return {
|
|
105
|
+
agent: Object.freeze({
|
|
106
|
+
getPermDock: (context) => kernel.instance(context),
|
|
107
|
+
decideOperation: (name, input, context, decideOptions) => kernel.decideTool(name, input, context, decideOptions),
|
|
108
|
+
allowedOperations: (context) => kernel.allowedToolNames(context),
|
|
109
|
+
tokenFor: (name, input, context) => {
|
|
110
|
+
const binding = bindingOf(name);
|
|
111
|
+
return binding === void 0 ? Promise.resolve(void 0) : kernel.tokenFor(binding, input, context);
|
|
112
|
+
},
|
|
113
|
+
decideModel,
|
|
114
|
+
permittedModels,
|
|
115
|
+
filterResults,
|
|
116
|
+
gatewayOptions
|
|
117
|
+
}),
|
|
118
|
+
kernel
|
|
119
|
+
};
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* The agent contract for a runtime PermDock has no adapter for: decide
|
|
123
|
+
* operations by name, gate models and filter results. The subject comes from
|
|
124
|
+
* `subject(context)` on the server, never from model output.
|
|
125
|
+
*/
|
|
126
|
+
function createPermDock(policy, given) {
|
|
127
|
+
return agentRuntime(policy, withApp(policy, given), "agent").agent;
|
|
128
|
+
}
|
|
129
|
+
//#endregion
|
|
130
|
+
export { createPermDock as n, agentRuntime as t };
|