permdock 0.7.0 → 0.8.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 +1 -3
- package/dist/a2a/index.d.ts +7 -7
- package/dist/a2a/index.js +8 -8
- package/dist/action-result-CL-QCITA.d.ts +19 -0
- package/dist/{adapter-context-CRhqyzCk.js → adapter-context-CIQpQxbE.js} +8 -2
- package/dist/{adoption-scan-D-feE7BE.js → adoption-scan-BLs67P1l.js} +5 -5
- package/dist/agent/index.d.ts +2 -2
- package/dist/agent/index.js +1 -1
- package/dist/ai-sdk/index.d.ts +19 -13
- package/dist/ai-sdk/index.js +6 -6
- package/dist/{app-data-MuyzVqX8.js → app-data-UNNm07jV.js} +10 -7
- package/dist/{approval-header-CJACtHkv.js → approval-header-8QV6MU4H.js} +6 -3
- package/dist/{approval-prompt-Dg5LeAcT.js → approval-prompt-B8hQY69x.js} +5 -6
- package/dist/{approval-prompt-K0faOLFp.d.ts → approval-prompt-PYagyQUj.d.ts} +13 -11
- package/dist/approvals/index.d.ts +4 -4
- package/dist/approvals/index.js +6 -6
- package/dist/{approvals-CMRfsbBh.js → approvals-DnIBTuXE.js} +66 -42
- package/dist/{approvers-CqPOLD-o.js → approvers-B4r0N_Uz.js} +8 -2
- package/dist/{arazzo-ClrF3PVb.js → arazzo-3RhGfkAK.js} +2 -2
- package/dist/{arazzo-rdeJ8n1J.js → arazzo-B5-ulWif.js} +6 -6
- package/dist/{args-CC3OwyHW.js → args-0FrVs5EH.js} +14 -7
- package/dist/astro/index.d.ts +30 -12
- package/dist/astro/index.js +2 -2
- package/dist/{audience-BrMs8c4o.js → audience-BAkBDMqn.js} +8 -8
- package/dist/{auth-CscUX8Sy.js → auth--yPyZNgr.js} +19 -7
- package/dist/authzen/index.d.ts +34 -28
- package/dist/authzen/index.js +23 -20
- package/dist/{automation-DOtAFWdy.d.ts → automation-DqEoWHBc.d.ts} +42 -32
- package/dist/{automation-ySsxp_Yp.js → automation-x3KEUusw.js} +22 -21
- package/dist/better-auth/index.d.ts +2 -2
- package/dist/better-auth/index.js +13 -7
- package/dist/better-supabase/index.d.ts +357 -227
- package/dist/better-supabase/index.js +219 -140
- package/dist/{bind-JDuvxjuW.d.ts → bind-Cp2hBHzP.d.ts} +27 -12
- package/dist/{bind-D1nO6fiC.js → bind-D_sZSVA3.js} +22 -10
- package/dist/{body-CH5of8Ne.js → body-CJQwYVa8.js} +3 -3
- package/dist/{body-text-QcXok_SI.js → body-text-DQhcmqdY.js} +8 -4
- package/dist/{boundary-BM8a_P6E.js → boundary-BV3O1eud.js} +8 -2
- package/dist/{boundary-BmHxVH1J.d.ts → boundary-C9ck-3uK.d.ts} +13 -4
- package/dist/{budget-NbEtbJC_.js → budget-BELja5A9.js} +6 -3
- package/dist/{budget-JqcRqyhK.d.ts → budget-hYsPz_yE.d.ts} +6 -3
- package/dist/{build-instance-DxE7czo9.js → build-instance-CNWaYJyr.js} +3 -3
- package/dist/{capability-L7NnfhiE.js → capability-BqX94r07.js} +31 -25
- package/dist/{capability-D4UC9TTW.d.ts → capability-ChuiONQU.d.ts} +41 -29
- package/dist/{casbin-BW9pS47J.js → casbin-H0rKxBx2.js} +16 -8
- package/dist/{casbin-BHijLuHY.js → casbin-cbSbhT_k.js} +2 -2
- package/dist/{casl-CmJlgziS.js → casl-C4OINZHI.js} +2 -2
- package/dist/{casl-UbI8v-Wq.js → casl-CHHoCldP.js} +19 -10
- package/dist/catalog/index.d.ts +51 -30
- package/dist/catalog/index.js +18 -15
- package/dist/{catalog-D69WhFii.js → catalog-BFpz2EmT.js} +20 -19
- package/dist/{catalog-BaMQfQ6Y.js → catalog-DCspHDc8.js} +3 -3
- package/dist/{catalog-doc-CV9s6B1S.js → catalog-doc-DjMKzJp9.js} +28 -14
- package/dist/{catalog-fingerprint-C144oW4M.js → catalog-fingerprint-e6aCWosn.js} +18 -14
- package/dist/catalog-mRQQQhNK.js +1 -0
- package/dist/catalog-operations-Dadrl7Z-.js +60 -0
- package/dist/{challenge-nGWma08S.js → challenge-DImNcR7B.js} +48 -27
- package/dist/chat/index.d.ts +1 -1
- package/dist/chat/index.js +13 -10
- package/dist/chat-sdk/index.d.ts +44 -26
- package/dist/chat-sdk/index.js +17 -17
- package/dist/{checks-BC_0mPIq.js → checks-CGkP3Z7A.js} +4 -1
- package/dist/{claims-map-7oQ3ue4X.js → claims-map-CKkoAAYF.js} +5 -2
- package/dist/{claims-map-Ca-QX8C6.d.ts → claims-map-D1Pb5oRq.d.ts} +8 -5
- package/dist/claude-agent/index.d.ts +6 -6
- package/dist/claude-agent/index.js +6 -3
- package/dist/clerk/index.d.ts +11 -7
- package/dist/clerk/index.js +6 -6
- package/dist/cli/bin.js +4 -4
- package/dist/cli/index.d.ts +82 -7
- package/dist/cli/index.js +6 -6
- package/dist/{clients-C7zLFuWT.d.ts → clients-C_NOET3z.d.ts} +5 -5
- package/dist/{clients-DjU5ABMy.js → clients-DYr3U86j.js} +3 -3
- package/dist/cloud/index.d.ts +84 -52
- package/dist/cloud/index.js +53 -39
- package/dist/{cloud-CO8pYtwr.js → cloud-BFlGMaak.js} +4 -5
- package/dist/{codemod-i4N2BhDc.js → codemod-DLQ9Zpo4.js} +3 -4
- package/dist/{codemod-BP6n8N9L.js → codemod-DWSN2erG.js} +523 -201
- package/dist/collect-B5BL3klN.js +1 -0
- package/dist/{collect-BaWeMjwV.js → collect-B7ZFAJU3.js} +26 -63
- package/dist/{collect-DNm3oKOk.js → collect-Bzv3le0A.js} +4 -5
- package/dist/{compare-pfyVnBjE.js → compare-DTfyUunF.js} +2 -2
- package/dist/compile/index.d.ts +2 -2
- package/dist/compile/index.js +1 -1
- package/dist/{compile-COM2VKuN.d.ts → compile-BFzysW3o.d.ts} +36 -12
- package/dist/{compile-BAEO5bOk.js → compile-EzEMB-7v.js} +77 -33
- package/dist/{completion-BNdVf7X2.js → completion-saoYiRFO.js} +17 -8
- package/dist/config-BwPBfN0t.js +108 -0
- package/dist/{config-DGZzMV1B.js → config-DBeXXmBF.js} +2 -2
- package/dist/{config-report-Cm7UITNA.js → config-report-BipSWA6V.js} +9 -6
- package/dist/config-shape-ykV0Vm2n.js +134 -0
- package/dist/{connection-DjhIJSs2.js → connection-B72dg5Q2.js} +23 -22
- package/dist/{connector-schema-_VCSsdtD.js → connector-schema-CYLQNMYq.js} +3 -2
- package/dist/{context--uM9V3Ui.js → context-BnIzxTNE.js} +4 -3
- package/dist/convex/index.d.ts +13 -7
- package/dist/convex/index.js +9 -6
- package/dist/{core-B5-w6Kw9.js → core-H-mbhpZc.js} +26 -20
- package/dist/{core-CQkE8Esr.d.ts → core-hWIARPDz.d.ts} +49 -22
- package/dist/{create-UTnUVETj.d.ts → create-BSNrVuxh.d.ts} +70 -37
- package/dist/{create-B2-CQqCI.d.ts → create-BVq1lNQE.d.ts} +49 -28
- package/dist/{create-QHuuPw3q.d.ts → create-CM1FciYG.d.ts} +37 -29
- package/dist/{create-Cb86Z8Im.js → create-Cq4Uox0f.js} +10 -7
- package/dist/{create-DJrlhEp9.js → create-_noSrY1T.js} +15 -21
- package/dist/{credential-CIM7wHwA.js → credential-CyyyvCsL.js} +41 -38
- package/dist/{credentials-BpuTwd7a.js → credentials-CdDxp7jN.js} +6 -6
- package/dist/{deciding-columns-DRo2QM6E.js → deciding-columns-NB4wcyBf.js} +2 -2
- package/dist/{delegation-C5rOdTp5.js → delegation-CDB6_keF.js} +31 -22
- package/dist/delivery/index.d.ts +4 -4
- package/dist/delivery/index.js +5 -5
- package/dist/{delivery-rwOKLWRm.js → delivery-BupfvJIV.js} +34 -22
- package/dist/{delivery-event-xX4obB8F.js → delivery-event-JioK5YbS.js} +6 -6
- package/dist/denied-text-CHNlVInN.d.ts +22 -0
- package/dist/{describe-DZlnEtLy.js → describe-Bb4hGK5d.js} +5 -5
- package/dist/{describe-O0SwYIK8.d.ts → describe-ByS9LgHK.d.ts} +5 -5
- package/dist/{device-BARQ8eYG.js → device-BwbJNmb2.js} +11 -8
- package/dist/{diff-Btr1c1Ow.js → diff-CN8IYhC_.js} +2 -2
- package/dist/{diff-DzT-xD13.js → diff-iZWV65nC.js} +22 -13
- package/dist/{digest-B3kc_PgQ.d.ts → digest-8Yx2CchM.d.ts} +3 -3
- package/dist/{doctor-BU1szn63.js → doctor-CHD1M9R5.js} +287 -135
- package/dist/{doctor-BoK_y0KO.js → doctor-D3wo-yuz.js} +4 -4
- package/dist/drizzle/index.d.ts +33 -19
- package/dist/drizzle/index.js +17 -9
- package/dist/elysia/index.d.ts +17 -11
- package/dist/elysia/index.js +5 -5
- package/dist/{errors-BKy0EfhN.js → errors-B6R_lg2a.js} +13 -4
- package/dist/{errors-BWXBMaKK.d.ts → errors-CHwoRRpB.d.ts} +4 -1
- package/dist/{errors-DpP_U6Bf.js → errors-Vpu6rKHl.js} +13 -10
- package/dist/{errors-B_Qg9D3e.d.ts → errors-zi_4T-rx.d.ts} +22 -6
- package/dist/{evaluate-B_oqFbWC.js → evaluate-Dd8Ta0Ie.js} +140 -78
- package/dist/{evaluations-DReoiVBw.js → evaluations-IBceAeKT.js} +40 -19
- package/dist/{evaluations-BCddEOfO.d.ts → evaluations-z8dQFDaN.d.ts} +11 -5
- package/dist/eve/index.d.ts +9 -6
- package/dist/eve/index.js +4 -4
- package/dist/{event-time-CsegxXxB.js → event-time-BGy48400.js} +8 -4
- package/dist/{expiry-D4_YKRKD.js → expiry-6XByK0dm.js} +8 -5
- package/dist/express/index.d.ts +9 -6
- package/dist/express/index.js +9 -6
- package/dist/fastify/index.d.ts +16 -10
- package/dist/fastify/index.js +8 -5
- package/dist/{fetch-adapter-CuhyYwC1.d.ts → fetch-adapter-C1DCvpqV.d.ts} +9 -6
- package/dist/{fetch-adapter-De-u6vhJ.js → fetch-adapter-JL43jD3E.js} +14 -11
- package/dist/fields-D0vUI6dq.js +498 -0
- package/dist/{files-acUbNwWt.js → files-B3AA05f1.js} +8 -5
- package/dist/{files-D_JIzUrP.js → files-BSjrtIHw.js} +11 -4
- package/dist/{fixtures-BTMW6zgU.js → fixtures-A1_sp_tR.js} +15 -6
- package/dist/{flags-aaeRAdiD.js → flags-DXjoTVbS.js} +2 -2
- package/dist/{freeze-CrU8nQeX.js → freeze-jjan0lCv.js} +4 -1
- package/dist/{from-snapshot-Bz469dIh.js → from-snapshot-DCakWRsr.js} +18 -15
- package/dist/gen-B5kvbAoZ.js +58 -0
- package/dist/gen-DWCYcMQM.js +827 -0
- package/dist/{generate-3FNO5P5Q.js → generate-CRVV5V7l.js} +14 -8
- package/dist/generate-CezbCaTI.js +275 -0
- package/dist/{grantee-BrRANrpT.js → grantee-Dke-9rd1.js} +4 -4
- package/dist/{grantee-conditions-C6P1Tvol.js → grantee-conditions-BrYPe-w0.js} +12 -12
- package/dist/{grantee-match-0RtHWQDx.js → grantee-match-7RZZvoT_.js} +12 -6
- package/dist/{graph-sql-B-dsAT6j.d.ts → graph-sql-BwFC4Qjs.d.ts} +3 -3
- package/dist/h3/index.d.ts +10 -7
- package/dist/h3/index.js +3 -3
- package/dist/headers-B9jQxjtW.d.ts +10 -0
- package/dist/{helpers-DY3vXuGs.js → helpers-DJicaG6f.js} +40 -28
- package/dist/hono/index.d.ts +16 -10
- package/dist/hono/index.js +5 -5
- package/dist/{hosted-BmjzxQhp.d.ts → hosted-Cmtxogd0.d.ts} +33 -21
- package/dist/{hosted-XBgU6RGT.js → hosted-D0IzESu_.js} +42 -21
- package/dist/{http-ujKm0JXE.js → http-DH94eh6f.js} +4 -4
- package/dist/{http-BBoKefeS.js → http-DKLXrFGk.js} +13 -7
- package/dist/{http-Ca3Sr5x1.js → http-DOL33cO0.js} +11 -8
- package/dist/{import-Bz0GefWg.js → import-CST57XLp.js} +64 -51
- package/dist/{import-DB2EG_iy.js → import-_YqhhwvX.js} +6 -6
- package/dist/{index-BSfRl0hZ.d.ts → index-B8s204GL.d.ts} +64 -52
- package/dist/{index-DH9DUDEM.d.ts → index-BT5-1VsX.d.ts} +54 -30
- package/dist/{index-BTkwrK7v.d.ts → index-BW_0MZOS.d.ts} +282 -172
- package/dist/{index-CMiPH2Tv.d.ts → index-BhxEUY9J.d.ts} +64 -37
- package/dist/{index-DLwcuCN_.d.ts → index-Bv5iXPqU.d.ts} +51 -30
- package/dist/{index-BE8y3moU.d.ts → index-_9UiQIkt.d.ts} +127 -82
- package/dist/index.d.ts +22 -22
- package/dist/index.js +33 -33
- package/dist/{init-5TXNji88.js → init-Dz_PsHdv.js} +5 -5
- package/dist/{init-B-4t1NzC.js → init-cE3A8aXq.js} +10 -10
- package/dist/{instance-options-CU0YQCLH.d.ts → instance-options-B0KXqTrJ.d.ts} +4 -4
- package/dist/{instance-snapshot-CjcwnEiV.js → instance-snapshot--JWiTrvO.js} +75 -55
- package/dist/{instant-BluqDvyS.js → instant-DK3Iz83e.js} +2 -2
- package/dist/{internals-Dk8A8fX3.js → internals-B3IgHrvo.js} +6 -3
- package/dist/{json-schema-B-vAwlde.js → json-schema-BPGa-RjQ.js} +9 -3
- package/dist/{json-schema-CN_iLFH2.d.ts → json-schema-BfXgnRNT.d.ts} +4 -4
- package/dist/jwt/index.d.ts +57 -27
- package/dist/jwt/index.js +24 -21
- package/dist/{kernel-DVExUwkp.js → kernel-C-fYydV2.js} +32 -23
- package/dist/kysely/index.d.ts +49 -33
- package/dist/kysely/index.js +9 -7
- package/dist/{live-options-BaAFCIiu.js → live-options-BBIT68le.js} +2 -2
- package/dist/{load-DxroEzH1.js → load-DjSU5KXO.js} +6 -6
- package/dist/load-Dm0pSYH3.js +1 -0
- package/dist/{login-ClSJh5t5.js → login-D-8tMqzo.js} +4 -4
- package/dist/{login-WC9HPJpU.js → login-DplQ0s84.js} +16 -9
- package/dist/{manifest-Dv6q4i5s.js → manifest-Cgiq5oqc.js} +49 -38
- package/dist/{manifest-BVhExYhw.d.ts → manifest-CzzWtnAb.d.ts} +126 -31
- package/dist/{manifest-schema-Cv492Qev.js → manifest-schema-2r37XRhD.js} +44 -3
- package/dist/{manifest-B79YuF2T.js → manifest-wg8WkkpD.js} +6 -6
- package/dist/{map-claims-etGIS_Dv.js → map-claims-BNWCJtmP.js} +14 -8
- package/dist/{map-error-BQGyDm_M.js → map-error-pasIGqMT.js} +7 -7
- package/dist/{markers-C6joDI3o.js → markers-BeHZ4x9Q.js} +20 -5
- package/dist/mcp/index.d.ts +114 -61
- package/dist/mcp/index.js +70 -40
- package/dist/{migrate-Dodel0IJ.js → migrate-B7oP_sQU.js} +35 -17
- package/dist/module-values-BJTBdo6y.js +107 -0
- package/dist/nest/index.d.ts +23 -13
- package/dist/nest/index.js +18 -11
- package/dist/next/client.d.ts +5 -2
- package/dist/next/client.js +1 -1
- package/dist/next/index.d.ts +72 -26
- package/dist/next/index.js +110 -6
- package/dist/next/plugin.d.ts +1 -1
- package/dist/next/plugin.js +4 -3
- package/dist/node/index.d.ts +5 -5
- package/dist/node/index.js +3 -3
- package/dist/{ocsf-BFp-PZZA.js → ocsf-TcjRBgIs.js} +15 -5
- package/dist/openai/index.d.ts +13 -7
- package/dist/openai/index.js +3 -3
- package/dist/openapi/index.d.ts +51 -30
- package/dist/openapi/index.js +2 -2
- package/dist/{openapi-Ddb4628T.js → openapi-BOsx0xn9.js} +33 -18
- package/dist/{openapi-DMocl1bh.js → openapi-CBZUhA3l.js} +4 -5
- package/dist/{openapi-ztVaux6j.js → openapi-VeHHU2l9.js} +23 -14
- package/dist/{operation-findings-kRcEp8lE.js → operation-findings-CXtFzlKJ.js} +3 -3
- package/dist/{operations-BNLes61x.d.ts → operations-Ci_rT6Uo.d.ts} +10 -7
- package/dist/orpc/index.d.ts +68 -14
- package/dist/orpc/index.js +62 -13
- package/dist/otel/index.d.ts +7 -4
- package/dist/otel/index.js +8 -5
- package/dist/output-files-BHOIlrfD.js +1 -0
- package/dist/{output-files-CCMdcFWb.js → output-files-BIQ_9pIs.js} +29 -17
- package/dist/{output-DgSDLrta.js → output-tkju6U7R.js} +9 -5
- package/dist/ownership-B4L59T9u.js +1054 -0
- package/dist/{parse-Ddhz2xf4.js → parse-1_ZheTW5.js} +16 -13
- package/dist/parse-local-manifest-BQhTlLQS.d.ts +10 -0
- package/dist/{parse-local-manifest-T1Q8X3A2.js → parse-local-manifest-DEiCF4ah.js} +19 -7
- package/dist/{parse-request-D_tUXG6M.js → parse-request-CwCZpyjV.js} +7 -8
- package/dist/{paths-DXSHAMIa.js → paths-CUvURzHp.js} +4 -1
- package/dist/pdp/index.d.ts +9 -6
- package/dist/pdp/index.js +20 -13
- package/dist/{peer-DOzzMfZL.js → peer-C9LvBCcb.js} +1 -1
- package/dist/{peer-12Q5I_RH.js → peer-Q0fuZ6hx.js} +9 -3
- package/dist/{permdock-Dco6dyCK.d.ts → permdock-B6Sf4T_S.d.ts} +253 -129
- package/dist/{permdock-BfWEeMqk.js → permdock-L-_I_3zP.js} +59 -35
- package/dist/{permission-registry-DpPtSKNZ.js → permission-registry-B8tYxPIt.js} +23 -10
- package/dist/{permission-types-DhNEmoRG.d.ts → permission-types-CAY-GU7e.d.ts} +127 -41
- package/dist/{permissions-CoqCOfJ3.d.ts → permissions-Bx6UI8n1.d.ts} +6 -3
- package/dist/{permissions-CyH2MV_B.js → permissions-CVXmRILq.js} +3 -3
- package/dist/{permissions-DArULThq.js → permissions-mDcTWoBs.js} +8 -5
- package/dist/pg-DQTqRrou.js +60 -0
- package/dist/{pins-8ILTftC9.js → pins-nqarl3oE.js} +4 -1
- package/dist/{pkce-5h8NgMQJ.js → pkce-CnmmYqUZ.js} +1 -1
- package/dist/{policy-B7dg_yzu.d.ts → policy-Ba4bDhaj.d.ts} +5 -5
- package/dist/{policy-DaJy4nK4.js → policy-CLQ8__GF.js} +43 -23
- package/dist/{policy-from-catalog-DFWYkNdu.js → policy-from-catalog-CJgOm6aq.js} +28 -25
- package/dist/{policy-module-CTlwMvLI.js → policy-module-xym9fnSq.js} +12 -6
- package/dist/{policy-types-B-F-qAZk.d.ts → policy-types-CCiDRZBH.d.ts} +738 -349
- package/dist/{postgres-store-BL9M_CA1.js → postgres-store-DcyrPS-r.js} +43 -16
- package/dist/{postgrest-r5faDIzD.js → postgrest-D4nuPXIQ.js} +52 -33
- package/dist/{postgrest-CYacM_u7.d.ts → postgrest-DicQyqm-.d.ts} +54 -35
- package/dist/{powersync-53ryOZip.js → powersync-DHNQX06W.js} +127 -69
- package/dist/{powersync-13odBwiM.js → powersync-DXqGuq9A.js} +3 -3
- package/dist/powersync-Djf-zCpB.js +1 -0
- package/dist/preset/index.d.ts +38 -28
- package/dist/preset/index.js +1 -1
- package/dist/{preset-CHTbd-DQ.js → preset-BjLzeFpp.js} +56 -32
- package/dist/{principal-source-pHneukrx.js → principal-source-C6N60GtM.js} +10 -10
- package/dist/prisma/index.d.ts +69 -41
- package/dist/prisma/index.js +21 -17
- package/dist/{problem-CTviyH5L.js → problem-BVLHFK33.js} +41 -21
- package/dist/{problem-details-cn5X30gZ.js → problem-details-CLDgX1KV.js} +13 -4
- package/dist/{problem-types-CJ2325SZ.js → problem-types-DSsRfONQ.js} +4 -1
- package/dist/{prompt-DwtVemER.js → prompt-BYc6drYW.js} +4 -1
- package/dist/protected-action-BE7N_Luo.d.ts +58 -0
- package/dist/protected-action-DUYqb-Ma.js +80 -0
- package/dist/{protected-DXE3cQYg.js → protected-action-QEA8arRB.js} +48 -14
- package/dist/{provider-BQsTYYy0.js → provider-C55OGXJ7.js} +5 -4
- package/dist/{provider-Csk-THAn.d.ts → provider-DXfq5c2d.d.ts} +1 -1
- package/dist/{provider-store-IgqQipCO.js → provider-store-CaTv00tr.js} +13 -9
- package/dist/pull-B65ndFNZ.js +1 -0
- package/dist/{pull-CN5OLxrF.js → pull-CwpGaQSi.js} +12 -11
- package/dist/{push-tVdG8dUL.js → push-DgssgzkK.js} +19 -13
- package/dist/{pushed-policy-BbcY9r_4.d.ts → pushed-policy-D1Eoi6NM.d.ts} +12 -6
- package/dist/{pushed-policy-CmYeSQqq.js → pushed-policy-ITwYKvvH.js} +10 -7
- package/dist/react/index.d.ts +9 -8
- package/dist/react/index.js +7 -6
- package/dist/react/provider-client.d.ts +1 -1
- package/dist/react/provider-client.js +1 -1
- package/dist/react-native/index.d.ts +94 -55
- package/dist/react-native/index.js +200 -61
- package/dist/{refs-CNJBiTFo.js → refs-C8BKxc_e.js} +2 -2
- package/dist/{relation-walk-3OyDBF0S.js → relation-walk-DK_gkgL7.js} +12 -9
- package/dist/{relations-BnCWnJGI.js → relations-BxvRvDHK.js} +3 -3
- package/dist/{replay-Du1tJjG7.js → replay-BU09ad4L.js} +1 -1
- package/dist/{replay-DCDD_ZfL.d.ts → replay-DNftIb_R.d.ts} +1 -1
- package/dist/{request-context-BykKLmyE.js → request-context-C25ilqiJ.js} +8 -8
- package/dist/{request-schema-CMreVuFM.js → request-schema-DhX7UbfQ.js} +4 -1
- package/dist/resend/index.d.ts +34 -28
- package/dist/resend/index.js +29 -29
- package/dist/resolve-names-CF7xXLSG.js +201 -0
- package/dist/{resource-relations-D_jw0BFx.js → resource-relations-8-pCScBO.js} +18 -9
- package/dist/{retire-Wj6dkyDE.js → retire-B2xffQgY.js} +15 -6
- package/dist/{revocations-R07lFBnX.d.ts → revocations-BaUXHM1N.d.ts} +6 -3
- package/dist/{rls-CxBZb4rZ.js → rls-CNEH2_BG.js} +299 -124
- package/dist/{rls-Ck_PocSp.js → rls-Ca8Jz9b5.js} +13 -6
- package/dist/{role-builder-C1VJzvcr.js → role-builder-BK2-T6oD.js} +41 -20
- package/dist/{row-conditions-h2HythXQ.js → row-conditions-BAGHOmVq.js} +4 -3
- package/dist/{rpc-Bk1bE-ch.js → rpc-fNqAIqQk.js} +8 -5
- package/dist/{run-uLD2aWuO.js → run-Bz26OTfO.js} +26 -23
- package/dist/run-D-JE8QWb.js +1 -0
- package/dist/{run-ticket-BpNi7BCi.d.ts → run-ticket-DbWI9f99.d.ts} +29 -14
- package/dist/{run-ticket-B5d_63Ma.js → run-ticket-Dv7aF7Dk.js} +9 -9
- package/dist/{runtime-Vif3_-zf.js → runtime-BGnrOkVH.js} +5 -2
- package/dist/{saas-Az_Kz-4D.js → saas-iWnUdwCt.js} +42 -29
- package/dist/{scan-DSljDE1Y.js → scan-DCj1KQfn.js} +1 -1
- package/dist/{schema-B4v0Qrac.js → schema-BOJjqlWL.js} +3 -2
- package/dist/{schema-gIcCx7zM.js → schema-Dst9I9Gs.js} +8 -4
- package/dist/scim/index.d.ts +2 -2
- package/dist/scim/index.js +2 -2
- package/dist/{scim-C7JYhySg.js → scim-D8YupzX1.js} +2 -2
- package/dist/{scim-YNieBO1U.js → scim-jJBJ7g1Z.js} +33 -15
- package/dist/{scopes-BHsc-wp-.js → scopes-0Up_UA2t.js} +41 -23
- package/dist/server/index.d.ts +11 -11
- package/dist/server/index.js +12 -12
- package/dist/{server-Bnga6I50.js → server-3cVlTLde.js} +31 -31
- package/dist/{server-types-C4gZUEZy.d.ts → server-types-CIlpSA2G.d.ts} +81 -46
- package/dist/{sha256-D9ihqmvd.js → sha256-C-4WXKIu.js} +4 -3
- package/dist/{shared-fMKOv8hP.js → shared-Afctg7B0.js} +65 -32
- package/dist/{shared-C8LjUdVU.js → shared-l0oGGetg.js} +9 -6
- package/dist/{signals-D3NcTKUS.js → signals-B1vHR3fN.js} +2 -2
- package/dist/{sink-BEZSlMS_.js → sink-D9_vh372.js} +32 -21
- package/dist/{sink-Cp_Eot9W.d.ts → sink-Dvi7YZG_.d.ts} +44 -20
- package/dist/{skills-Dcjw9_1C.js → skills-Bjj7BNEQ.js} +12 -8
- package/dist/{skills-g_3BS9NC.js → skills-OuoMR49L.js} +3 -3
- package/dist/{snapshot-CbGmYiJx.js → snapshot-CXlzi69u.js} +21 -18
- package/dist/{snapshot-cache-Pahd3IYJ.d.ts → snapshot-cache-BAXZ0KOp.d.ts} +21 -12
- package/dist/{snapshot-cache-DT2Kx1F8.js → snapshot-cache-Bx_4xC_6.js} +14 -11
- package/dist/solid/index.d.ts +55 -16
- package/dist/solid/index.js +46 -12
- package/dist/solid-start/index.d.ts +30 -12
- package/dist/solid-start/index.js +3 -3
- package/dist/{sources-DEEuGb8S.d.ts → sources-B1Os_YUu.d.ts} +126 -53
- package/dist/{sources-B-zYB4GS.js → sources-CMAM-2A3.js} +46 -27
- package/dist/{sql-B96movIM.js → sql-0WjxIp9g.js} +28 -7
- package/dist/{sql-CDEPCA0g.d.ts → sql-B80DFdpG.d.ts} +2 -2
- package/dist/{src-DLFrtrrC.js → src-DZ0l9UAg.js} +190 -100
- package/dist/ssf/index.d.ts +3 -3
- package/dist/ssf/index.js +47 -35
- package/dist/{standard-webhooks-B_qRg0ws.d.ts → standard-webhooks-C-qX4mJW.d.ts} +7 -7
- package/dist/{standard-webhooks-DgFFD-Ga.js → standard-webhooks-D67a3nzk.js} +5 -5
- package/dist/{store-DSP9oGvh.js → store-RNFvaJJv.js} +32 -26
- package/dist/{store-options-B_poyYvg.js → store-options-Dil3lraY.js} +105 -15
- package/dist/stores-C0Kta5Ft.d.ts +59 -0
- package/dist/{stores-BqEuHC05.js → stores-DxZWDXCs.js} +42 -5
- package/dist/{stream-CvdUS9V1.js → stream-CDvF0sJm.js} +5 -5
- package/dist/{stream-2Vwhl7Er.d.ts → stream-ltuLdtTG.d.ts} +4 -3
- package/dist/{style-Ds1gNm77.js → style-DblOtSga.js} +1 -1
- package/dist/{style-Cqo7-73x.js → style-Ds11Hmk4.js} +2 -1
- package/dist/{subject-settings-CkEwrw3W.js → subject-settings-8sH5HlII.js} +8 -4
- package/dist/{row-check-Dt35czLy.d.ts → subject-settings-vNW8qmUH.d.ts} +30 -18
- package/dist/supabase/index.d.ts +48 -38
- package/dist/supabase/index.js +5 -5
- package/dist/supabase/middleware.d.ts +19 -13
- package/dist/supabase/middleware.js +7 -7
- package/dist/{supabase--0aJdLEd.js → supabase-BL1qJzzY.js} +79 -35
- package/dist/{supabase-Bqp7iIY2.js → supabase-D39cuGPt.js} +3 -3
- package/dist/{supabase-hook-Dg0SrQWR.js → supabase-hook-B-yXnzUl.js} +175 -196
- package/dist/supabase-hook-H-MtE9Wd.js +1 -0
- package/dist/{supautils-MESd81bF.js → supautils-BU-pAEpf.js} +166 -47
- package/dist/{support-session-Cna49-3f.js → support-session-BsmPCbz8.js} +21 -21
- package/dist/svelte/PermissionBoundary.svelte +2 -6
- package/dist/svelte/Protected.svelte +2 -8
- package/dist/svelte/index.d.ts +9 -8
- package/dist/svelte/index.js +10 -9
- package/dist/svelte/runtime.d.ts +4 -4
- package/dist/svelte/runtime.js +4 -4
- package/dist/svelte/source.d.ts +9 -8
- package/dist/svelte/source.js +6 -5
- package/dist/sveltekit/index.d.ts +30 -12
- package/dist/sveltekit/index.js +2 -2
- package/dist/{ownership-Z2LpxsGa.js → tables-DeMNEy6V.js} +641 -1104
- package/dist/tanstack-start/index.d.ts +22 -10
- package/dist/tanstack-start/index.js +2 -2
- package/dist/{target-Bw37TFNA.js → target-qdEAnnhU.js} +6 -6
- package/dist/{tenancy-CmeBQ6Nv.js → tenancy-5d1zVBvK.js} +25 -19
- package/dist/terminal/index.d.ts +23 -14
- package/dist/terminal/index.js +17 -20
- package/dist/testing/core.d.ts +1 -1
- package/dist/testing/core.js +1 -1
- package/dist/testing/fixtures/index.d.ts +8 -5
- package/dist/testing/fixtures/index.js +78 -17
- package/dist/testing/index.d.ts +224 -141
- package/dist/testing/index.js +299 -234
- package/dist/testing/saas/index.d.ts +43 -27
- package/dist/testing/saas/index.js +2 -2
- package/dist/testing/saas/permissions.d.ts +1 -1
- package/dist/testing/saas/permissions.js +1 -1
- package/dist/{text-diff-DhITNCnD.js → text-diff-BtfSmdUo.js} +2 -2
- package/dist/{thenable-yD7SabqG.js → thenable-BNSM1U2R.js} +12 -3
- package/dist/{time-DkWjdL98.js → time-nR1JesoH.js} +32 -8
- package/dist/{token-2qYDvXz2.js → token-DC9EQiet.js} +14 -12
- package/dist/{tool-refusal-reAhIzdl.js → tool-refusal-Qpjs_W6M.js} +5 -2
- package/dist/trpc/index.d.ts +11 -8
- package/dist/trpc/index.js +15 -9
- package/dist/type-helpers-BIPIDa6a.d.ts +50 -0
- package/dist/{types-DBHftjgS.d.ts → types-AMJ5qoU_.d.ts} +45 -33
- package/dist/{types-CfiKC5aN.d.ts → types-B2mlGuhW.d.ts} +14 -11
- package/dist/{types-D3A19w4A.d.ts → types-B4uqKDnp.d.ts} +22 -13
- package/dist/{types-CQVEQawv.d.ts → types-BJk0BKRX.d.ts} +24 -14
- package/dist/types-B_d_g7T3.d.ts +262 -0
- package/dist/{types-DC44-hqb.d.ts → types-B_tiYvk8.d.ts} +59 -32
- package/dist/{types-DqzsnlSA.js → types-CcUXciSj.js} +17 -5
- package/dist/{types-BWZybqs9.d.ts → types-DC1Loeh3.d.ts} +381 -202
- package/dist/{types-CIeZcG8v.d.ts → types-DHKPcqzr.d.ts} +2 -2
- package/dist/{types-cTos-H7p.d.ts → types-DjuMBNF9.d.ts} +68 -32
- package/dist/{types-CeIscIKp.d.ts → types-HzqOtvsJ.d.ts} +23 -12
- package/dist/{types-BXMYB7BY.d.ts → types-ZzRGoViD.d.ts} +77 -24
- package/dist/{types-BfVmNJO5.d.ts → types-ah9NlU6j.d.ts} +128 -50
- package/dist/{types-DXmwu78Z.d.ts → types-djVzLlIV.d.ts} +31 -14
- package/dist/{types-g7Oy6Zg4.d.ts → types-yUuPR5Hy.d.ts} +47 -24
- package/dist/unplugin/index.d.ts +1 -1
- package/dist/unplugin/index.js +2 -2
- package/dist/usage-CYeXek0p.js +1 -0
- package/dist/{usage-Bybmck7f.js → usage-CxEzS4ey.js} +50 -26
- package/dist/{usage-CDaLXCfL.js → usage-ab0PdusX.js} +2 -2
- package/dist/{validation-error-ZfUHbKvf.js → validation-error-CYg2kJEw.js} +4 -1
- package/dist/{validation-error-CQpoquwj.d.ts → validation-error-YGg2mXyH.d.ts} +5 -2
- package/dist/{validity-CZ7-y0Cj.js → validity-Buc7w8E9.js} +13 -10
- package/dist/{verifier-DHuh-okk.js → verifier-DUV6pLqZ.js} +10 -4
- package/dist/{verify-pe8rL_Qw.js → verify-DZeqoWu5.js} +148 -487
- package/dist/version-DMQ0dnN5.js +48 -0
- package/dist/version-DizhmD72.js +1 -0
- package/dist/{views-BB8E9dTP.js → views-CD8wuL4Z.js} +19 -6
- package/dist/{vocabulary-Bg3eeT2H.d.ts → vocabulary-DEJ5j4mR.d.ts} +7 -4
- package/dist/vue/index.d.ts +71 -22
- package/dist/vue/index.js +50 -13
- package/dist/{waiter-DwEyouan.d.ts → waiter-Bu9zAlE0.d.ts} +13 -10
- package/dist/{waiter-BGUtGYoU.js → waiter-aBLM63_f.js} +1 -1
- package/dist/{watch-C-4VmFlL.js → watch-Cx_WciLE.js} +8 -8
- package/dist/watch-DB42U1ib.js +1 -0
- package/dist/webmcp/index.d.ts +11 -11
- package/dist/webmcp/index.js +8 -5
- package/dist/{where-scope-wq2coopv.js → where-scope-DlCdCM_8.js} +24 -18
- package/dist/{who-can-BwNsI_Js.js → who-can-rI7dCR9Q.js} +23 -20
- package/dist/workflow/index.d.ts +3 -3
- package/dist/workflow/index.js +13 -13
- package/dist/workflow-sdk/index.d.ts +19 -13
- package/dist/workflow-sdk/index.js +6 -6
- package/dist/{wrap-CiSc_KCq.js → wrap-B2wziJI_.js} +4 -4
- package/dist/{wrap-B6R0cMRL.d.ts → wrap-DlJE3gS_.d.ts} +8 -5
- package/package.json +7 -7
- package/schemas/catalog-v1.json +3 -0
- package/schemas/supabase-manifest-v1.json +33 -1
- package/skills/permdock-credentials/references/tokens-keys-links.md +8 -6
- package/skills/permdock-data/references/queries-and-rls.md +2 -1
- package/skills/permdock-tenancy/references/ownership-and-custom-roles.md +2 -2
- package/skills/permdock-wire/references/adapters.md +14 -22
- package/dist/catalog-BCCjSAdH.js +0 -1
- package/dist/collect-k_Dulxr5.js +0 -1
- package/dist/config-CoQHDrDi.js +0 -166
- package/dist/denied-text-D4qkEtFz.d.ts +0 -19
- package/dist/fields-ClcQLrVc.js +0 -238
- package/dist/generate-CNU1pIOo.js +0 -171
- package/dist/headers-BIjfMaoC.js +0 -8
- package/dist/headers-CIbDTUTK.d.ts +0 -7
- package/dist/load-DrMHXzgN.js +0 -1
- package/dist/output-files-DPAY7-GX.js +0 -1
- package/dist/package-root-Dk_ETdkp.js +0 -31
- package/dist/parse-local-manifest-e4mdwAKd.d.ts +0 -10
- package/dist/policies-B2lZIurj.js +0 -295
- package/dist/powersync-CExtTLyA.js +0 -1
- package/dist/problem-details-Tcfmj3bV.d.ts +0 -7
- package/dist/protected-BwZYL1X_.d.ts +0 -39
- package/dist/pull-Cty6Ovyu.js +0 -1
- package/dist/run-Bz7DXGEv.js +0 -1
- package/dist/stores-BAZwSYZA.d.ts +0 -31
- package/dist/supabase-hook-DJxC4PoP.js +0 -1
- package/dist/types-CKV71kKh.d.ts +0 -172
- package/dist/usage-y-kBNdqs.js +0 -1
- package/dist/version-CEbQ5UeM.js +0 -18
- package/dist/version-DXkYUISx.js +0 -1
- package/dist/watch-Bd9mx3rd.js +0 -1
|
@@ -1,18 +1,18 @@
|
|
|
1
|
-
import { Ln as Decision, T as Policy, j as PolicyVocabulary, lr as Subject, rr as Delegation, sr as Principal } from "./policy-types-
|
|
2
|
-
import { u as Permission } from "./permission-types-
|
|
3
|
-
import { t as Operation } from "./operations-
|
|
4
|
-
import { a as PermDock } from "./permdock-
|
|
5
|
-
import { m as ApprovalStore } from "./types-
|
|
6
|
-
import { t as InstanceOptions } from "./instance-options-
|
|
1
|
+
import { Ln as Decision, T as Policy, j as PolicyVocabulary, lr as Subject, rr as Delegation, sr as Principal } from "./policy-types-CCiDRZBH.js";
|
|
2
|
+
import { u as Permission } from "./permission-types-CAY-GU7e.js";
|
|
3
|
+
import { t as Operation } from "./operations-Ci_rT6Uo.js";
|
|
4
|
+
import { a as PermDock } from "./permdock-B6Sf4T_S.js";
|
|
5
|
+
import { m as ApprovalStore } from "./types-B_tiYvk8.js";
|
|
6
|
+
import { t as InstanceOptions } from "./instance-options-B0KXqTrJ.js";
|
|
7
7
|
import { t as RequestContext } from "./request-context-C2_1lchh.js";
|
|
8
|
-
import { n as PermDockWrap } from "./wrap-
|
|
9
|
-
import { o as OtelWrap } from "./types-
|
|
10
|
-
import { t as DeniedText } from "./denied-text-
|
|
8
|
+
import { n as PermDockWrap } from "./wrap-DlJE3gS_.js";
|
|
9
|
+
import { o as OtelWrap } from "./types-DHKPcqzr.js";
|
|
10
|
+
import { t as DeniedText } from "./denied-text-CHNlVInN.js";
|
|
11
11
|
//#region src/agent/step-up.d.ts
|
|
12
12
|
/**
|
|
13
|
-
* What the user can do to lift a denial: authenticate again with the `acr`
|
|
14
|
-
*
|
|
15
|
-
*
|
|
13
|
+
* What the user can do to lift a denial: authenticate again with the `acr` and
|
|
14
|
+
* `maxAge` the failing grants ask for, or activate a role they are eligible
|
|
15
|
+
* for. A hint for the user; the call is decided again afterwards.
|
|
16
16
|
*/
|
|
17
17
|
type StepUp = {
|
|
18
18
|
readonly kind: "authentication";
|
|
@@ -27,43 +27,55 @@ type StepUp = {
|
|
|
27
27
|
};
|
|
28
28
|
//#endregion
|
|
29
29
|
//#region src/agent/types.d.ts
|
|
30
|
-
/**
|
|
30
|
+
/**
|
|
31
|
+
* The part of an operation a tool decision reads; an `OperationMap` entry is
|
|
32
|
+
* one.
|
|
33
|
+
*/
|
|
31
34
|
type ToolBinding = Pick<Operation, "permission" | "data" | "results"> & Partial<Pick<Operation, "name" | "meta">>;
|
|
32
35
|
type ToolMap = Readonly<Record<string, ToolBinding>>;
|
|
33
36
|
/**
|
|
34
37
|
* The models an agent may call, by model id (`'openai/gpt-5'`), each bound to
|
|
35
|
-
* the permission that grants it. An instance permission is decided on the
|
|
36
|
-
*
|
|
38
|
+
* the permission that grants it. An instance permission is decided on the row
|
|
39
|
+
* `{ id }`.
|
|
37
40
|
*/
|
|
38
41
|
type ModelMap = Readonly<Record<string, Permission>>;
|
|
39
|
-
/**
|
|
42
|
+
/**
|
|
43
|
+
* The options `permdock/ai-sdk`, `permdock/openai`, `permdock/claude-agent` and
|
|
44
|
+
* `permdock/eve` share.
|
|
45
|
+
*/
|
|
40
46
|
type AgentAdapterOptions<TContext, TUser = unknown> = InstanceOptions & {
|
|
41
47
|
/** The user, or a full `Subject` (core then skips `policy.subject`). */
|
|
42
48
|
readonly subject: (context: TContext) => TUser | Subject | Promise<TUser | Subject>;
|
|
43
49
|
readonly actor?: (context: TContext) => unknown;
|
|
44
50
|
readonly delegation?: (context: TContext) => Delegation | undefined | Promise<Delegation | undefined>;
|
|
45
51
|
readonly tenant?: string | ((context: TContext) => string | undefined | Promise<string | undefined>);
|
|
46
|
-
/**
|
|
52
|
+
/**
|
|
53
|
+
* The tools the agent may call, by tool name: the map `defineOperations`
|
|
54
|
+
* returns.
|
|
55
|
+
*/
|
|
47
56
|
readonly operations: ToolMap;
|
|
48
57
|
/**
|
|
49
|
-
* The model gate. Absent: the adapter never checks a model. Present: a
|
|
50
|
-
*
|
|
58
|
+
* The model gate. Absent: the adapter never checks a model. Present: a model
|
|
59
|
+
* id it does not name is denied.
|
|
51
60
|
*/
|
|
52
61
|
readonly models?: ModelMap;
|
|
53
62
|
readonly store?: ApprovalStore;
|
|
54
63
|
/**
|
|
55
|
-
* Tools `operations` does not name. `'deny'` (default) denies them.
|
|
56
|
-
*
|
|
64
|
+
* Tools `operations` does not name. `'deny'` (default) denies them. `'allow'`
|
|
65
|
+
* leaves them to the runtime's own approval.
|
|
57
66
|
*/
|
|
58
67
|
readonly unmapped?: "deny" | "allow";
|
|
59
68
|
/**
|
|
60
|
-
* Request values merged into `subject.context`, under `policy.context`.
|
|
61
|
-
*
|
|
69
|
+
* Request values merged into `subject.context`, under `policy.context`. Only
|
|
70
|
+
* values the server derived belong here, never model output.
|
|
62
71
|
*/
|
|
63
72
|
readonly context?: (context: TContext) => RequestContext | undefined | Promise<RequestContext | undefined>;
|
|
64
73
|
/** `(permdock) => withOtel(permdock, options)` from `permdock/otel`. */
|
|
65
74
|
readonly otel?: OtelWrap;
|
|
66
|
-
/**
|
|
75
|
+
/**
|
|
76
|
+
* Wraps each instance after `otel`; build it with `wrapPermDock` to cover
|
|
77
|
+
* derived instances.
|
|
78
|
+
*/
|
|
67
79
|
readonly wrap?: PermDockWrap;
|
|
68
80
|
/** Replaces the denial reason or approval summary text; nothing else. */
|
|
69
81
|
readonly deniedText?: DeniedText;
|
|
@@ -82,7 +94,10 @@ type ToolVerdict = {
|
|
|
82
94
|
}> | null;
|
|
83
95
|
readonly permission: Permission | undefined;
|
|
84
96
|
readonly reason: string;
|
|
85
|
-
/**
|
|
97
|
+
/**
|
|
98
|
+
* What the user can do to lift the denial; set only by an adapter with
|
|
99
|
+
* step-ups on (`permdock/ai-sdk` `stepUp`).
|
|
100
|
+
*/
|
|
86
101
|
readonly stepUp?: StepUp;
|
|
87
102
|
} | {
|
|
88
103
|
readonly outcome: "approval-required";
|
|
@@ -107,9 +122,15 @@ type DecideToolOptions = {
|
|
|
107
122
|
//#endregion
|
|
108
123
|
//#region src/agent/create.d.ts
|
|
109
124
|
type AgentPermDockOptions<TContext, TUser = unknown> = AgentAdapterOptions<TContext, TUser>;
|
|
110
|
-
/**
|
|
125
|
+
/**
|
|
126
|
+
* What one operation call decides: granted with the loaded row, denied with the
|
|
127
|
+
* text a model reads, or parked for approval.
|
|
128
|
+
*/
|
|
111
129
|
type OperationVerdict = ToolVerdict;
|
|
112
|
-
/**
|
|
130
|
+
/**
|
|
131
|
+
* `providerOptions` for the Vercel AI Gateway: spend and usage attributed to
|
|
132
|
+
* the caller.
|
|
133
|
+
*/
|
|
113
134
|
type GatewayOptions = {
|
|
114
135
|
readonly gateway: {
|
|
115
136
|
readonly user?: string;
|
|
@@ -123,29 +144,41 @@ type GatewayOptions = {
|
|
|
123
144
|
* their runtime calls.
|
|
124
145
|
*/
|
|
125
146
|
type AgentPermDock<TContext, V extends PolicyVocabulary = PolicyVocabulary> = {
|
|
126
|
-
/**
|
|
147
|
+
/**
|
|
148
|
+
* One instance per context object while a call is in flight; later calls
|
|
149
|
+
* re-read the subject.
|
|
150
|
+
*/
|
|
127
151
|
readonly getPermDock: (context: TContext) => Promise<PermDock<V>>;
|
|
128
152
|
/**
|
|
129
|
-
* Decides operation `name` on `input`: loads the row through the
|
|
130
|
-
*
|
|
131
|
-
*
|
|
153
|
+
* Decides operation `name` on `input`: loads the row through the operation's
|
|
154
|
+
* `data`, validates it, decides and resumes an approval. Never throws; an
|
|
155
|
+
* operation `operations` does not name is denied.
|
|
132
156
|
*/
|
|
133
157
|
readonly decideOperation: (name: string, input: unknown, context: TContext, options?: DecideToolOptions) => Promise<OperationVerdict>;
|
|
134
|
-
/**
|
|
158
|
+
/**
|
|
159
|
+
* Operation names the subject could be granted for some row; a listing hint,
|
|
160
|
+
* never a decision.
|
|
161
|
+
*/
|
|
135
162
|
readonly allowedOperations: (context: TContext) => Promise<ReadonlySet<string>>;
|
|
136
163
|
/** The approval token a call would park under, without touching the store. */
|
|
137
164
|
readonly tokenFor: (name: string, input: unknown, context: TContext) => Promise<string | undefined>;
|
|
138
|
-
/**
|
|
165
|
+
/**
|
|
166
|
+
* Decides whether the subject may call model `modelId`. A model `models` does
|
|
167
|
+
* not name is denied.
|
|
168
|
+
*/
|
|
139
169
|
readonly decideModel: (modelId: string, context: TContext) => Promise<Decision>;
|
|
140
170
|
/** The ids in `models` the subject is granted, in declaration order. */
|
|
141
171
|
readonly permittedModels: (context: TContext) => Promise<readonly string[]>;
|
|
142
172
|
/**
|
|
143
|
-
* The rows of an operation's output the subject may see, by the
|
|
144
|
-
*
|
|
145
|
-
*
|
|
173
|
+
* The rows of an operation's output the subject may see, by the operation's
|
|
174
|
+
* `results` permission. Without `results` the rows come back unchanged; an
|
|
175
|
+
* operation `operations` does not name returns none.
|
|
146
176
|
*/
|
|
147
177
|
readonly filterResults: <T>(name: string, rows: readonly T[], context: TContext) => Promise<T[]>;
|
|
148
|
-
/**
|
|
178
|
+
/**
|
|
179
|
+
* `providerOptions.gateway` with the principal as `user` and the tenant and
|
|
180
|
+
* actor as tags.
|
|
181
|
+
*/
|
|
149
182
|
readonly gatewayOptions: (context: TContext) => Promise<GatewayOptions>;
|
|
150
183
|
};
|
|
151
184
|
/**
|
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
import { In as ApprovalRequiredDecision, T as Policy, Un as GrantedDecision, Vn as DeniedDecision, j as PolicyVocabulary, lr as Subject, sr as Principal } from "./policy-types-
|
|
2
|
-
import { t as Operation } from "./operations-
|
|
3
|
-
import {
|
|
4
|
-
import { m as ApprovalStore, p as ApprovalStatus } from "./types-
|
|
5
|
-
import { n as ApprovalErrorCode } from "./errors-
|
|
6
|
-
import { t as ApprovalPrompt } from "./approval-prompt-
|
|
1
|
+
import { In as ApprovalRequiredDecision, T as Policy, Un as GrantedDecision, Vn as DeniedDecision, j as PolicyVocabulary, lr as Subject, sr as Principal } from "./policy-types-CCiDRZBH.js";
|
|
2
|
+
import { t as Operation } from "./operations-Ci_rT6Uo.js";
|
|
3
|
+
import { _ as PrincipalSource, a as PermDock, o as PermDockOptions } from "./permdock-B6Sf4T_S.js";
|
|
4
|
+
import { m as ApprovalStore, p as ApprovalStatus } from "./types-B_tiYvk8.js";
|
|
5
|
+
import { n as ApprovalErrorCode } from "./errors-CHwoRRpB.js";
|
|
6
|
+
import { t as ApprovalPrompt } from "./approval-prompt-PYagyQUj.js";
|
|
7
7
|
//#region src/chat/subject.d.ts
|
|
8
8
|
/**
|
|
9
|
-
* The platform user behind a chat message or action. Fill it only from an
|
|
10
|
-
*
|
|
11
|
-
*
|
|
9
|
+
* The platform user behind a chat message or action. Fill it only from an event
|
|
10
|
+
* whose platform signature the transport verified; a body field or a model
|
|
11
|
+
* argument is never an author.
|
|
12
12
|
*/
|
|
13
13
|
type ChatAuthor = {
|
|
14
14
|
/** The chat platform (`slack`, `teams`, `discord`, …). */
|
|
@@ -18,7 +18,10 @@ type ChatAuthor = {
|
|
|
18
18
|
/** The workspace, team or tenant id on the platform. */
|
|
19
19
|
readonly workspace?: string;
|
|
20
20
|
};
|
|
21
|
-
/**
|
|
21
|
+
/**
|
|
22
|
+
* The principal a chat author's identity link names, as the `PrincipalSource`
|
|
23
|
+
* returns it.
|
|
24
|
+
*/
|
|
22
25
|
type ChatPrincipal = Principal;
|
|
23
26
|
type SubjectFromChatOptions = {
|
|
24
27
|
/** Resolves the author through `principalByIdentity({ kind: 'chat', … })`. */
|
|
@@ -26,16 +29,22 @@ type SubjectFromChatOptions = {
|
|
|
26
29
|
};
|
|
27
30
|
declare function isChatAuthor(value: unknown): value is ChatAuthor;
|
|
28
31
|
/**
|
|
29
|
-
* The subject a chat author acts as: the principal its identity link
|
|
30
|
-
*
|
|
32
|
+
* The subject a chat author acts as: the principal its identity link names, or
|
|
33
|
+
* anonymous when there is no link. Never throws.
|
|
31
34
|
*/
|
|
32
35
|
declare function subjectFromChat(author: ChatAuthor | null | undefined, options: SubjectFromChatOptions): Promise<Subject>;
|
|
33
36
|
//#endregion
|
|
34
37
|
//#region src/chat/create.d.ts
|
|
35
38
|
type ChatPermDockOptions = PermDockOptions & {
|
|
36
|
-
/**
|
|
39
|
+
/**
|
|
40
|
+
* Resolves chat authors through `principalByIdentity`; also the instance's
|
|
41
|
+
* principal source.
|
|
42
|
+
*/
|
|
37
43
|
readonly principals: PrincipalSource;
|
|
38
|
-
/**
|
|
44
|
+
/**
|
|
45
|
+
* Where approval requests open and resolve. Without it an approval-required
|
|
46
|
+
* command only reports the decision.
|
|
47
|
+
*/
|
|
39
48
|
readonly store?: ApprovalStore;
|
|
40
49
|
};
|
|
41
50
|
/** What a protected command's handler receives once the author is granted. */
|
|
@@ -56,12 +65,21 @@ type ChatCommandResult<T> = {
|
|
|
56
65
|
} | {
|
|
57
66
|
readonly outcome: "approval-required";
|
|
58
67
|
readonly decision: ApprovalRequiredDecision;
|
|
59
|
-
/**
|
|
68
|
+
/**
|
|
69
|
+
* The open request to deliver to approvers; `null` without an approval
|
|
70
|
+
* store.
|
|
71
|
+
*/
|
|
60
72
|
readonly prompt: ApprovalPrompt | null;
|
|
61
73
|
};
|
|
62
|
-
/**
|
|
74
|
+
/**
|
|
75
|
+
* A command guarded by `protect`. Never throws for a refusal; the handler's own
|
|
76
|
+
* errors propagate.
|
|
77
|
+
*/
|
|
63
78
|
type ChatCommand<TInput, T> = (author: ChatAuthor | null | undefined, input: TInput) => Promise<ChatCommandResult<T>>;
|
|
64
|
-
/**
|
|
79
|
+
/**
|
|
80
|
+
* A verdict from a chat button or reaction, by approval request `id`; the token
|
|
81
|
+
* never leaves the server.
|
|
82
|
+
*/
|
|
65
83
|
type ChatAction = {
|
|
66
84
|
readonly approval: string;
|
|
67
85
|
readonly status: "approved" | "rejected";
|
|
@@ -76,24 +94,27 @@ type ChatActionResult = {
|
|
|
76
94
|
readonly cause: ApprovalErrorCode | "invalid-action";
|
|
77
95
|
};
|
|
78
96
|
/**
|
|
79
|
-
* The runtime-neutral chat contract: commands decided as the linked
|
|
80
|
-
*
|
|
81
|
-
*
|
|
97
|
+
* The runtime-neutral chat contract: commands decided as the linked principal
|
|
98
|
+
* of a verified chat author, and approval verdicts from chat actions.
|
|
99
|
+
* `permdock/chat-sdk` implements it for Chat SDK bots.
|
|
82
100
|
*/
|
|
83
101
|
type ChatPermDock<V extends PolicyVocabulary = PolicyVocabulary> = {
|
|
84
|
-
/**
|
|
102
|
+
/**
|
|
103
|
+
* The instance for `author`; anonymous, and so denying, when the author is
|
|
104
|
+
* unlinked.
|
|
105
|
+
*/
|
|
85
106
|
readonly getPermDock: (author: ChatAuthor | null | undefined) => Promise<PermDock<V>>;
|
|
86
107
|
/**
|
|
87
|
-
* Guards `handler` with `operation`: loads the row through the
|
|
88
|
-
*
|
|
89
|
-
*
|
|
90
|
-
*
|
|
108
|
+
* Guards `handler` with `operation`: loads the row through the operation's
|
|
109
|
+
* `data`, decides as the author, and on `approval-required` opens one request
|
|
110
|
+
* per author, permission and row. The handler runs only when granted; an
|
|
111
|
+
* approved request runs it once.
|
|
91
112
|
*/
|
|
92
113
|
readonly protect: <TInput, T>(operation: Operation<TInput>, handler: (context: ChatCommandContext<TInput, V>) => T | Promise<T>) => ChatCommand<TInput, T>;
|
|
93
114
|
/**
|
|
94
|
-
* Resolves approval request `action.approval` as `author`. The author must
|
|
95
|
-
*
|
|
96
|
-
*
|
|
115
|
+
* Resolves approval request `action.approval` as `author`. The author must be
|
|
116
|
+
* linked and an eligible, distinct approver; the request's requester never
|
|
117
|
+
* approves their own request.
|
|
97
118
|
*/
|
|
98
119
|
readonly resolveAction: (author: ChatAuthor | null | undefined, action: ChatAction) => Promise<ChatActionResult>;
|
|
99
120
|
};
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { Ln as Decision, Rn as Denial, Rt as Instant, T as Policy, Zt as AuthEvent, dt as TokenVerifier, j as PolicyVocabulary, sr as Principal, ut as TokenSigner } from "./policy-types-
|
|
2
|
-
import { u as Permission } from "./permission-types-
|
|
3
|
-
import {
|
|
4
|
-
import { m as ApprovalStore } from "./types-
|
|
5
|
-
import { a as AutomationSource } from "./automation-
|
|
6
|
-
import { n as ApprovalWaiter } from "./waiter-
|
|
7
|
-
import { i as RunBinding, r as RunAutomation } from "./run-ticket-
|
|
1
|
+
import { Ln as Decision, Rn as Denial, Rt as Instant, T as Policy, Zt as AuthEvent, dt as TokenVerifier, j as PolicyVocabulary, sr as Principal, ut as TokenSigner } from "./policy-types-CCiDRZBH.js";
|
|
2
|
+
import { u as Permission } from "./permission-types-CAY-GU7e.js";
|
|
3
|
+
import { _ as PrincipalSource, a as PermDock, n as DecideOptions, o as PermDockOptions } from "./permdock-B6Sf4T_S.js";
|
|
4
|
+
import { m as ApprovalStore } from "./types-B_tiYvk8.js";
|
|
5
|
+
import { a as AutomationSource } from "./automation-DqEoWHBc.js";
|
|
6
|
+
import { n as ApprovalWaiter } from "./waiter-Bu9zAlE0.js";
|
|
7
|
+
import { i as RunBinding, r as RunAutomation } from "./run-ticket-DbWI9f99.js";
|
|
8
8
|
//#region src/workflow/create.d.ts
|
|
9
9
|
type WorkflowPermDockOptions = PermDockOptions & {
|
|
10
10
|
/** Signs the run tickets `start` mints. */
|
|
@@ -15,7 +15,10 @@ type WorkflowPermDockOptions = PermDockOptions & {
|
|
|
15
15
|
readonly principals: PrincipalSource;
|
|
16
16
|
/** The live automation records, read by `start` and on every `getPermDock`. */
|
|
17
17
|
readonly automations: AutomationSource;
|
|
18
|
-
/**
|
|
18
|
+
/**
|
|
19
|
+
* Where `awaitApproval` opens and resumes requests; the same option name as
|
|
20
|
+
* every other adapter.
|
|
21
|
+
*/
|
|
19
22
|
readonly store?: ApprovalStore;
|
|
20
23
|
/** Suspends `awaitApproval` until a request is decided. */
|
|
21
24
|
readonly waiter?: ApprovalWaiter;
|
|
@@ -36,7 +39,10 @@ type AutomationOptions = {
|
|
|
36
39
|
readonly caller?: PermDock;
|
|
37
40
|
/** The row `run` is decided on, when it is an instance permission. */
|
|
38
41
|
readonly row?: unknown;
|
|
39
|
-
/**
|
|
42
|
+
/**
|
|
43
|
+
* The event that started the run, as JSON. Kept in `subject.context.trigger`;
|
|
44
|
+
* never a grant.
|
|
45
|
+
*/
|
|
40
46
|
readonly trigger?: Readonly<Record<string, unknown>>;
|
|
41
47
|
/** The run id (`jti`); a fresh UUID when absent. */
|
|
42
48
|
readonly id?: string;
|
|
@@ -55,7 +61,10 @@ type StartAutomationResult = {
|
|
|
55
61
|
readonly denials: readonly Denial[];
|
|
56
62
|
};
|
|
57
63
|
type AwaitApprovalOptions = DecideOptions & {
|
|
58
|
-
/**
|
|
64
|
+
/**
|
|
65
|
+
* The resource the approval request names; defaults to the permission's
|
|
66
|
+
* resource and the row's `id`.
|
|
67
|
+
*/
|
|
59
68
|
readonly resource?: {
|
|
60
69
|
readonly type: string;
|
|
61
70
|
readonly id?: string;
|
|
@@ -66,30 +75,29 @@ type AwaitApprovalOptions = DecideOptions & {
|
|
|
66
75
|
};
|
|
67
76
|
type WorkflowPermDock<V extends PolicyVocabulary = PolicyVocabulary> = {
|
|
68
77
|
/**
|
|
69
|
-
* Starts a run of the automation `id` and returns its run ticket. Denied
|
|
70
|
-
*
|
|
71
|
-
*
|
|
78
|
+
* Starts a run of the automation `id` and returns its run ticket. Denied when
|
|
79
|
+
* the automation is unknown or revoked (`validation`) or when the caller is
|
|
80
|
+
* not granted its `run` permission.
|
|
72
81
|
*/
|
|
73
82
|
readonly start: (id: string, options?: AutomationOptions) => Promise<StartAutomationResult>;
|
|
74
83
|
/**
|
|
75
|
-
* The PermDock of a run, rebuilt from its ticket: the principal loaded
|
|
76
|
-
*
|
|
77
|
-
*
|
|
78
|
-
*
|
|
79
|
-
* that denies everything.
|
|
84
|
+
* The PermDock of a run, rebuilt from its ticket: the principal loaded live,
|
|
85
|
+
* narrowed to the automation's permissions and to any policy delegation to
|
|
86
|
+
* `actor('automation')`. A changed, revoked or unknown automation, or a
|
|
87
|
+
* publisher who is gone, gives an anonymous instance that denies everything.
|
|
80
88
|
*/
|
|
81
89
|
readonly getPermDock: (ticket: string) => Promise<PermDock<V>>;
|
|
82
90
|
/**
|
|
83
|
-
* Decides `permission`; on `approval-required` opens a request, waits on
|
|
84
|
-
*
|
|
85
|
-
*
|
|
86
|
-
*
|
|
91
|
+
* Decides `permission`; on `approval-required` opens a request, waits on the
|
|
92
|
+
* `waiter`, then rebuilds the run from its ticket and decides again with the
|
|
93
|
+
* token. The second decision reads the publisher's rights as of then, so a
|
|
94
|
+
* demotion while waiting denies.
|
|
87
95
|
*/
|
|
88
96
|
readonly awaitApproval: (ticket: string, permission: Permission, data?: unknown, options?: AwaitApprovalOptions) => Promise<Decision>;
|
|
89
97
|
/**
|
|
90
|
-
* The first half of `awaitApproval`, for runners that wait outside the
|
|
91
|
-
*
|
|
92
|
-
*
|
|
98
|
+
* The first half of `awaitApproval`, for runners that wait outside the call:
|
|
99
|
+
* decides, and on `approval-required` opens the request and returns the
|
|
100
|
+
* decision with its token.
|
|
93
101
|
*/
|
|
94
102
|
readonly openApproval: (ticket: string, permission: Permission, data?: unknown, options?: AwaitApprovalOptions) => Promise<Decision>;
|
|
95
103
|
/**
|
|
@@ -100,10 +108,10 @@ type WorkflowPermDock<V extends PolicyVocabulary = PolicyVocabulary> = {
|
|
|
100
108
|
readonly resumeApproval: (ticket: string, permission: Permission, token: string, data?: unknown, options?: AwaitApprovalOptions) => Promise<Decision>;
|
|
101
109
|
};
|
|
102
110
|
/**
|
|
103
|
-
* Creates the PermDock for durable runs of published automations. A run
|
|
104
|
-
*
|
|
105
|
-
*
|
|
106
|
-
*
|
|
111
|
+
* Creates the PermDock for durable runs of published automations. A run acts as
|
|
112
|
+
* the automation's principal with that principal's rights at each step,
|
|
113
|
+
* narrowed to the automation's operations; the trigger is recorded and never
|
|
114
|
+
* grants.
|
|
107
115
|
*/
|
|
108
116
|
declare function createPermDock<TUser, TPrincipal extends Principal = Principal, V extends PolicyVocabulary = PolicyVocabulary>(policy: Policy<TUser, TPrincipal, V>, given: WorkflowPermDockOptions): WorkflowPermDock<V>;
|
|
109
117
|
//#endregion
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { t as compact } from "./compact-CAf557ZB.js";
|
|
2
|
-
import { n as freezeDeep } from "./freeze-
|
|
3
|
-
import { o as deniedFor } from "./where-scope-
|
|
4
|
-
import { l as withApp } from "./permdock-
|
|
5
|
-
import { t as composeWraps } from "./wrap-
|
|
6
|
-
import { r as instanceOptions } from "./build-instance-
|
|
7
|
-
import { n as createAgentKernel } from "./kernel-
|
|
2
|
+
import { n as freezeDeep } from "./freeze-jjan0lCv.js";
|
|
3
|
+
import { o as deniedFor } from "./where-scope-DlCdCM_8.js";
|
|
4
|
+
import { l as withApp } from "./permdock-L-_I_3zP.js";
|
|
5
|
+
import { t as composeWraps } from "./wrap-B2wziJI_.js";
|
|
6
|
+
import { r as instanceOptions } from "./build-instance-CNWaYJyr.js";
|
|
7
|
+
import { n as createAgentKernel } from "./kernel-C-fYydV2.js";
|
|
8
8
|
//#region src/agent/create.ts
|
|
9
9
|
function modelRow(modelId) {
|
|
10
10
|
return { id: modelId };
|
|
@@ -34,7 +34,10 @@ function decideModelOn(permdock, models, modelId, adapter) {
|
|
|
34
34
|
return deniedFor(permission, "closure-error");
|
|
35
35
|
}
|
|
36
36
|
}
|
|
37
|
-
/**
|
|
37
|
+
/**
|
|
38
|
+
* Builds the agent contract and its kernel for an adapter named `adapter`;
|
|
39
|
+
* `runtime.stepUp` sets `stepUp` on denied verdicts.
|
|
40
|
+
*/
|
|
38
41
|
function agentRuntime(policy, options, adapter, runtime = {}) {
|
|
39
42
|
const kernel = createAgentKernel(policy, {
|
|
40
43
|
...compact({
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import { t as compact } from "./compact-CAf557ZB.js";
|
|
2
|
-
import { n as freezeDeep } from "./freeze-
|
|
3
|
-
import { n as problemDetails } from "./problem-details-
|
|
4
|
-
import { c as listPermissions } from "./permission-registry-
|
|
2
|
+
import { n as freezeDeep } from "./freeze-jjan0lCv.js";
|
|
3
|
+
import { n as problemDetails } from "./problem-details-CLDgX1KV.js";
|
|
4
|
+
import { c as listPermissions } from "./permission-registry-B8tYxPIt.js";
|
|
5
5
|
import { n as resourceRef } from "./resource-ref-CaS9yVPi.js";
|
|
6
|
-
import { i as challengeScope, l as withApp } from "./permdock-
|
|
7
|
-
import { r as hasCredentials } from "./http-
|
|
8
|
-
import {
|
|
9
|
-
import { n as resolveOrNull } from "./build-instance-
|
|
10
|
-
import { l as InvalidSignatureError, n as applyApprovalResume, o as evaluationsHandler } from "./evaluations-
|
|
11
|
-
import { n as tenantScope, t as actorFrom } from "./adapter-context-
|
|
12
|
-
import { n as requestContext, t as buildReportingInstance } from "./request-context-
|
|
6
|
+
import { i as challengeScope, l as withApp } from "./permdock-L-_I_3zP.js";
|
|
7
|
+
import { r as hasCredentials } from "./http-DKLXrFGk.js";
|
|
8
|
+
import { a as decisionResponse, c as problemFromDecision, d as unauthenticatedProblem, s as notFoundProblem, t as ANONYMOUS } from "./problem-BVLHFK33.js";
|
|
9
|
+
import { n as resolveOrNull } from "./build-instance-CNWaYJyr.js";
|
|
10
|
+
import { _ as LOAD_FAILED, l as InvalidSignatureError, n as applyApprovalResume, o as evaluationsHandler } from "./evaluations-IBceAeKT.js";
|
|
11
|
+
import { n as tenantScope, t as actorFrom } from "./adapter-context-CIQpQxbE.js";
|
|
12
|
+
import { n as requestContext, t as buildReportingInstance } from "./request-context-C25ilqiJ.js";
|
|
13
13
|
//#region src/server/kernel-problems.ts
|
|
14
14
|
const NOT_DELEGATED = freezeDeep({
|
|
15
15
|
outcome: "denied",
|
|
@@ -19,14 +19,6 @@ const NOT_DELEGATED = freezeDeep({
|
|
|
19
19
|
}],
|
|
20
20
|
alternatives: []
|
|
21
21
|
});
|
|
22
|
-
const LOAD_FAILED = freezeDeep({
|
|
23
|
-
outcome: "denied",
|
|
24
|
-
denials: [{
|
|
25
|
-
role: null,
|
|
26
|
-
reason: "validation"
|
|
27
|
-
}],
|
|
28
|
-
alternatives: []
|
|
29
|
-
});
|
|
30
22
|
/** The `403` for a loader that threw: the check fails closed, as on MCP. */
|
|
31
23
|
function loadFailedProblem(permission) {
|
|
32
24
|
const key = permission?.key ?? "the route";
|
|
@@ -36,7 +28,10 @@ function loadFailedProblem(permission) {
|
|
|
36
28
|
permission: permission?.key
|
|
37
29
|
})), LOAD_FAILED);
|
|
38
30
|
}
|
|
39
|
-
/**
|
|
31
|
+
/**
|
|
32
|
+
* The `403` `insufficient_scope` for a token that holds none of a route's OAuth
|
|
33
|
+
* scopes.
|
|
34
|
+
*/
|
|
40
35
|
function scopeProblem(permission, subject, credentials, scope) {
|
|
41
36
|
return permission === null ? decisionResponse(problemDetails(compact({
|
|
42
37
|
decision: NOT_DELEGATED,
|
|
@@ -242,8 +237,7 @@ function createPermDock(policy, given) {
|
|
|
242
237
|
};
|
|
243
238
|
const connection = async (request, connectionOptions = {}, scope) => {
|
|
244
239
|
const { tenant } = scope ?? await tenantScope(options.tenant, request);
|
|
245
|
-
|
|
246
|
-
return openConnection({
|
|
240
|
+
return (await import("./connection-B72dg5Q2.js")).openConnection({
|
|
247
241
|
open: async () => (await build(request, { tenant })).permdock,
|
|
248
242
|
rebuild: async () => (await instanceFor(await freshSubject(request), tenant)).permdock,
|
|
249
243
|
tenant,
|
|
@@ -1,17 +1,21 @@
|
|
|
1
1
|
import { n as isReadonlyArray, t as compact } from "./compact-CAf557ZB.js";
|
|
2
|
-
import { n as freezeDeep } from "./freeze-
|
|
3
|
-
import { a as ownRecord } from "./paths-
|
|
4
|
-
import { a as isId, r as idList } from "./expiry-
|
|
5
|
-
import { n as internalsOf } from "./internals-
|
|
6
|
-
import { c as listPermissions, h as formerKeys } from "./permission-registry-
|
|
7
|
-
import { g as secondsOf, l as isRfc3339, m as rfc3339, p as nowSeconds } from "./time-
|
|
2
|
+
import { n as freezeDeep } from "./freeze-jjan0lCv.js";
|
|
3
|
+
import { a as ownRecord } from "./paths-CUvURzHp.js";
|
|
4
|
+
import { a as isId, r as idList } from "./expiry-6XByK0dm.js";
|
|
5
|
+
import { n as internalsOf } from "./internals-B3IgHrvo.js";
|
|
6
|
+
import { c as listPermissions, h as formerKeys } from "./permission-registry-B8tYxPIt.js";
|
|
7
|
+
import { g as secondsOf, l as isRfc3339, m as rfc3339, p as nowSeconds } from "./time-nR1JesoH.js";
|
|
8
8
|
import { t as canonicalJson } from "./canonical-json-DwilZ1iB.js";
|
|
9
|
-
import { r as sha256Digest } from "./sha256-
|
|
10
|
-
import { n as coveredByDelegation } from "./delegation-
|
|
11
|
-
import { o as flattenGrantee } from "./grantee-
|
|
9
|
+
import { r as sha256Digest } from "./sha256-C-4WXKIu.js";
|
|
10
|
+
import { n as coveredByDelegation } from "./delegation-CDB6_keF.js";
|
|
11
|
+
import { o as flattenGrantee } from "./grantee-Dke-9rd1.js";
|
|
12
12
|
import { t as anonymousSubject } from "./subject-BGoM5o8B.js";
|
|
13
13
|
//#region src/core/credential.ts
|
|
14
|
-
/**
|
|
14
|
+
/**
|
|
15
|
+
* A feed id: lowercase, so a mail system that lowercases a local part still
|
|
16
|
+
* matches. At most 16 characters, so `pdfeed_<id>_<secret>` fits an email local
|
|
17
|
+
* part.
|
|
18
|
+
*/
|
|
15
19
|
function isFeedId(value) {
|
|
16
20
|
return /^[a-z0-9-]{1,16}$/u.test(value);
|
|
17
21
|
}
|
|
@@ -53,10 +57,10 @@ function parsePermissions(value) {
|
|
|
53
57
|
return out;
|
|
54
58
|
}
|
|
55
59
|
/**
|
|
56
|
-
* Validates an untrusted credential record and returns a frozen copy with
|
|
57
|
-
*
|
|
58
|
-
*
|
|
59
|
-
*
|
|
60
|
+
* Validates an untrusted credential record and returns a frozen copy with only
|
|
61
|
+
* the v1 fields, or `undefined`. Unknown fields are dropped; a wrong type in a
|
|
62
|
+
* known field, a service credential without `tenant` and `roles`, or a user
|
|
63
|
+
* credential with `roles`, rejects the whole record.
|
|
60
64
|
*/
|
|
61
65
|
function parseCredential(input) {
|
|
62
66
|
const value = ownRecord(input);
|
|
@@ -111,9 +115,9 @@ function leafByKey(tree) {
|
|
|
111
115
|
}
|
|
112
116
|
/**
|
|
113
117
|
* The delegation a credential narrows its principal to: OAuth scopes for
|
|
114
|
-
* permissions on every instance, one RFC 9396 entry per id otherwise. A key
|
|
115
|
-
*
|
|
116
|
-
*
|
|
118
|
+
* permissions on every instance, one RFC 9396 entry per id otherwise. A key the
|
|
119
|
+
* definitions no longer declare is dropped, so a credential whose every key is
|
|
120
|
+
* gone delegates nothing and every check is denied.
|
|
117
121
|
*/
|
|
118
122
|
function credentialDelegation(credential, permissions) {
|
|
119
123
|
const leaves = leafByKey(permissions);
|
|
@@ -138,14 +142,14 @@ function credentialDelegation(credential, permissions) {
|
|
|
138
142
|
});
|
|
139
143
|
}
|
|
140
144
|
/**
|
|
141
|
-
* The subject a verified credential acts as. A `user` credential is its
|
|
142
|
-
*
|
|
143
|
-
*
|
|
144
|
-
*
|
|
145
|
-
*
|
|
146
|
-
*
|
|
147
|
-
*
|
|
148
|
-
*
|
|
145
|
+
* The subject a verified credential acts as. A `user` credential is its owner,
|
|
146
|
+
* passed live as `owner` (roles and memberships as of this request), with the
|
|
147
|
+
* credential's delegation: every check is the owner's rights intersected with
|
|
148
|
+
* the key's. One that names a `tenant` makes it the active tenant, and
|
|
149
|
+
* `getPermDock` then keeps only the owner's memberships inside it and no global
|
|
150
|
+
* role. A `service` credential is a `service` principal whose only membership
|
|
151
|
+
* is `roles` in `tenant`. An owner whose id is not the credential's
|
|
152
|
+
* `principal`, or who is not a user, is anonymous.
|
|
149
153
|
*/
|
|
150
154
|
function credentialSubject(credential, options) {
|
|
151
155
|
const delegation = credentialDelegation(credential, options.permissions);
|
|
@@ -361,25 +365,24 @@ function credentialTenant(credential, active) {
|
|
|
361
365
|
}
|
|
362
366
|
/**
|
|
363
367
|
* Decides whether the subject of `permdock` may create the credential in
|
|
364
|
-
* `request`. The creator must be a signed-in user or service that is not
|
|
365
|
-
*
|
|
366
|
-
* delegation covers. A key's tenant must be one the creator is a member of;
|
|
367
|
-
*
|
|
368
|
+
* `request`. The creator must be a signed-in user or service that is not itself
|
|
369
|
+
* a link or a credential; a delegated creator hands out only what its
|
|
370
|
+
* delegation covers. A key's tenant must be one the creator is a member of; a
|
|
371
|
+
* service key's roles among the creator's `assignableRoles` there and its
|
|
368
372
|
* permissions within `assignablePermissions` there (`exceeds-creator`). The
|
|
369
|
-
* `credentials` policy of the key's tenant (its own, or for a user key
|
|
370
|
-
*
|
|
373
|
+
* `credentials` policy of the key's tenant (its own, or for a user key without
|
|
374
|
+
* one the creator's active tenant) then applies (`credential-policy`; a
|
|
371
375
|
* settings source that throws denies with `rule: 'unavailable'`), and
|
|
372
|
-
* `approval` makes the result `approval-required` until `approved` carries
|
|
373
|
-
*
|
|
374
|
-
*
|
|
376
|
+
* `approval` makes the result `approval-required` until `approved` carries its
|
|
377
|
+
* token. PermDock never stores the credential; the application does, after a
|
|
378
|
+
* `granted` result.
|
|
375
379
|
*/
|
|
376
380
|
/**
|
|
377
381
|
* Decides whether the subject of `permdock` may create the credential in
|
|
378
382
|
* `request`: the creator's own reach, the `credentials` policy of the key's
|
|
379
|
-
* tenant (the call's `settings`, else the instance's), and `approval`.
|
|
380
|
-
*
|
|
381
|
-
*
|
|
382
|
-
* `unsupported`.
|
|
383
|
+
* tenant (the call's `settings`, else the instance's), and `approval`. PermDock
|
|
384
|
+
* never stores the credential; the application does, after a `granted` result.
|
|
385
|
+
* An instance built from a snapshot denies with `unsupported`.
|
|
383
386
|
*/
|
|
384
387
|
function decideCredential(permdock, request, options = {}) {
|
|
385
388
|
const internals = internalsOf(permdock);
|