better-supabase 0.7.1 → 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 +6 -2
- package/dist/{access-sql-B0dF-SoF.js → access-sql-CrSbK1q-.js} +1 -1
- package/dist/{adapter-iKgjHVPx.js → adapter-CN45ibbV.js} +658 -157
- package/dist/{agents-CVHGd7It.d.ts → agents-BY_LQXtQ.d.ts} +4 -4
- package/dist/{ai-cache-CBWs1W0k.js → ai-cache-Dfgk8nBT.js} +2 -1
- package/dist/{ai-cache-DaDu_G5L.d.ts → ai-cache-DrUMMgp6.d.ts} +4 -4
- package/dist/{ai-chat-B24UI962.js → ai-chat-CVLRWbtS.js} +4 -3
- package/dist/{ai-chat-7amvXjmQ.d.ts → ai-chat-DXkMy74O.d.ts} +5 -5
- package/dist/{ai-files-CSPNswUY.js → ai-files-CioLu5du.js} +5 -4
- package/dist/ai-message-DfaP8sis.js +14 -0
- package/dist/ai-sdk/agents/index.d.ts +4 -4
- package/dist/ai-sdk/batches/index.d.ts +4 -4
- package/dist/ai-sdk/batches/index.js +4 -4
- package/dist/ai-sdk/cache/index.d.ts +2 -2
- package/dist/ai-sdk/cache/index.js +2 -2
- package/dist/ai-sdk/chat/index.d.ts +1 -1
- package/dist/ai-sdk/chat/index.js +8 -20
- package/dist/ai-sdk/embeddings/index.d.ts +2 -2
- package/dist/ai-sdk/files/index.d.ts +3 -3
- package/dist/ai-sdk/files/index.js +4 -4
- package/dist/ai-sdk/index.d.ts +37 -9
- package/dist/ai-sdk/index.js +3 -2
- package/dist/ai-sdk/mcp/index.d.ts +43 -6
- package/dist/ai-sdk/mcp/index.js +36 -7
- package/dist/ai-sdk/memory/index.d.ts +2 -2
- package/dist/ai-sdk/memory/index.js +1 -1
- package/dist/ai-sdk/workflow/index.d.ts +6 -6
- package/dist/ai-sdk/workflow/index.js +13 -24
- package/dist/{ai-tasks-Cd1HMFvB.d.ts → ai-tasks-BRQ6iQLc.d.ts} +4 -4
- package/dist/{announcements-ZRGnScWI.d.ts → announcements-Bouy0Ski.d.ts} +3 -3
- package/dist/{announcements-CiyOs-xP.js → announcements-p_BFofiR.js} +1 -1
- package/dist/api-Dnf2q-Ht.d.ts +370 -0
- package/dist/api-DtHFC037.js +676 -0
- package/dist/{api-keys-CIjghYjV.d.ts → api-keys-C8BlF3L2.d.ts} +4 -4
- package/dist/arazzo/index.d.ts +255 -0
- package/dist/arazzo/index.js +622 -0
- package/dist/{assistant-DwdpDH1q.d.ts → assistant-DBlFDZsi.d.ts} +5 -5
- package/dist/astro/index.d.ts +7 -7
- package/dist/astro/index.js +7 -7
- package/dist/asyncapi/index.d.ts +103 -0
- package/dist/asyncapi/index.js +569 -0
- package/dist/authorizer-ayxUDXXP.js +126 -0
- package/dist/authorizer-eiOjo-3l.d.ts +73 -0
- package/dist/better-result/index.d.ts +118 -0
- package/dist/better-result/index.js +64 -0
- package/dist/{bind-l4kAvYSv.js → bind-ButSzrHe.js} +1 -1
- package/dist/{bind-Bu_ZNa3W.d.ts → bind-CQ5mPyX1.d.ts} +3 -3
- package/dist/{block-events-CrT8r7Fe.js → block-events-DTxU5tfr.js} +18 -3
- package/dist/{block-fields-GFkxl4dP.js → block-fields-CroxUuF2.js} +3 -3
- package/dist/{block-fields-SJ6fEf3o.d.ts → block-fields-D1pfrcIY.d.ts} +2 -2
- package/dist/{block-helpers-CKtbFcRv.d.ts → block-helpers-C0Xj8War.d.ts} +2 -2
- package/dist/{block-helpers-DWHxHsEQ.js → block-helpers-Cy3pB96I.js} +41 -9
- package/dist/{block-hooks-BmjMyXTa.js → block-hooks-BPNMIlLl.js} +3 -3
- package/dist/{block-hooks-plbZ0AbJ.d.ts → block-hooks-DaOVC7SC.d.ts} +3 -3
- package/dist/{block-transport-BLr-ZgLc.js → block-transport-bAKh-dGc.js} +28 -2
- package/dist/{block-transport-DvaoPuZ9.d.ts → block-transport-inD4fFq-.d.ts} +24 -2
- package/dist/blocks/agents/index.d.ts +3 -3
- package/dist/blocks/agents/index.js +5 -4
- package/dist/blocks/ai-cache/index.d.ts +3 -3
- package/dist/blocks/ai-cache/index.js +3 -3
- package/dist/blocks/ai-chat/index.d.ts +9 -4
- package/dist/blocks/ai-chat/index.js +5 -5
- package/dist/blocks/ai-chat/react/index.d.ts +3 -3
- package/dist/blocks/ai-chat/react/index.js +5 -5
- package/dist/blocks/ai-files/index.d.ts +3 -3
- package/dist/blocks/ai-files/index.js +3 -3
- package/dist/blocks/ai-providers/index.d.ts +3 -3
- package/dist/blocks/ai-providers/index.js +8 -7
- package/dist/blocks/ai-tasks/index.d.ts +3 -3
- package/dist/blocks/ai-tasks/index.js +7 -6
- package/dist/blocks/announcements/index.d.ts +3 -3
- package/dist/blocks/announcements/index.js +3 -3
- package/dist/blocks/announcements/react/index.d.ts +3 -3
- package/dist/blocks/announcements/react/index.js +3 -3
- package/dist/blocks/api-keys/index.d.ts +5 -5
- package/dist/blocks/api-keys/index.js +8 -8
- package/dist/blocks/attachments/index.d.ts +12 -8
- package/dist/blocks/attachments/index.js +22 -13
- package/dist/blocks/audit/index.d.ts +21 -10
- package/dist/blocks/audit/index.js +30 -11
- package/dist/blocks/billing/index.d.ts +11 -9
- package/dist/blocks/billing/index.js +15 -15
- package/dist/blocks/comments/index.d.ts +8 -8
- package/dist/blocks/comments/index.js +8 -7
- package/dist/blocks/connectors/index.d.ts +3 -3
- package/dist/blocks/connectors/index.js +7 -6
- package/dist/blocks/data-lifecycle/index.d.ts +12 -8
- package/dist/blocks/data-lifecycle/index.js +13 -8
- package/dist/blocks/entitlements/index.d.ts +3 -3
- package/dist/blocks/entitlements/index.js +1 -1
- package/dist/blocks/flags/index.d.ts +4 -4
- package/dist/blocks/flags/index.js +4 -3
- package/dist/blocks/inbox/index.d.ts +3 -3
- package/dist/blocks/inbox/index.js +4 -5
- package/dist/blocks/inbox/react/index.d.ts +1 -1
- package/dist/blocks/inbox/react/index.js +1 -1
- package/dist/blocks/inbox/react/server.d.ts +1 -1
- package/dist/blocks/index.d.ts +10 -10
- package/dist/blocks/index.js +6 -6
- package/dist/blocks/jobs/index.d.ts +48 -32
- package/dist/blocks/jobs/index.js +44 -287
- package/dist/blocks/knowledge/index.d.ts +3 -3
- package/dist/blocks/knowledge/index.js +3 -3
- package/dist/blocks/memory/index.d.ts +4 -4
- package/dist/blocks/memory/index.js +7 -6
- package/dist/blocks/notifications/index.d.ts +11 -9
- package/dist/blocks/notifications/index.js +20 -25
- package/dist/blocks/notifications/react/index.d.ts +1 -1
- package/dist/blocks/notifications/react/index.js +1 -1
- package/dist/blocks/onboarding/index.d.ts +3 -3
- package/dist/blocks/onboarding/index.js +3 -3
- package/dist/blocks/onboarding/react/index.d.ts +2 -2
- package/dist/blocks/onboarding/react/index.js +2 -2
- package/dist/blocks/onboarding/react/server.d.ts +1 -1
- package/dist/blocks/organizations/index.d.ts +9 -9
- package/dist/blocks/organizations/index.js +11 -18
- package/dist/blocks/outbox/index.d.ts +2 -2
- package/dist/blocks/outbox/index.js +16 -25
- package/dist/blocks/profiles/index.d.ts +7 -7
- package/dist/blocks/profiles/index.js +7 -6
- package/dist/blocks/push/index.d.ts +4 -4
- package/dist/blocks/push/index.js +3 -3
- package/dist/blocks/settings/index.d.ts +4 -4
- package/dist/blocks/settings/index.js +7 -6
- package/dist/blocks/sso/index.d.ts +5 -5
- package/dist/blocks/sso/index.js +6 -5
- package/dist/blocks/usage/index.d.ts +3 -3
- package/dist/blocks/usage/index.js +5 -4
- package/dist/blocks/waitlist/index.d.ts +5 -5
- package/dist/blocks/waitlist/index.js +5 -4
- package/dist/blocks/webhooks/index.d.ts +22 -13
- package/dist/blocks/webhooks/index.js +41 -70
- package/dist/blocks/workflow-builder/index.d.ts +4 -4
- package/dist/blocks/workflow-builder/index.js +3 -3
- package/dist/blocks/workflow-builder/react/index.d.ts +4 -4
- package/dist/blocks/workflow-builder/react/index.js +4 -4
- package/dist/blocks/workflows/index.d.ts +3 -3
- package/dist/blocks/workflows/index.js +3 -3
- package/dist/blocks/workflows/react/index.d.ts +3 -3
- package/dist/blocks/workflows/react/index.js +3 -3
- package/dist/build-hPwk3_X5.js +1296 -0
- package/dist/{build-BXIzE6Xv.js → build-meLuYGri.js} +3 -3
- package/dist/casing-DdFWEtqr.js +16 -0
- package/dist/chat-sdk/index.d.ts +6 -6
- package/dist/chat-sdk/index.js +5 -4
- package/dist/chat-sdk/react/index.d.ts +1 -1
- package/dist/chat-sdk/react/server.d.ts +1 -1
- package/dist/{claims-DDBQT6BK.js → claims-0KZVT804.js} +1 -1
- package/dist/cli/add-1dc5wM5k.js +69 -0
- package/dist/cli/arazzo-1.0-BalU61-_.js +532 -0
- package/dist/cli/arazzo-1.1-Bnfasbun.js +705 -0
- package/dist/cli/asyncapi-3.0.0-C78dBjR6.js +5593 -0
- package/dist/cli/asyncapi-3.1.0-g-7aIfV1.js +5833 -0
- package/dist/cli/bin.js +4 -4
- package/dist/cli/cache-CIfA-jBV.js +483 -0
- package/dist/cli/{codemod-Bl_tQpHn.js → codemod-JVlTQQG2.js} +4 -4
- package/dist/cli/{command-CK14fP91.js → command-DV-StG1x.js} +5 -0
- package/dist/cli/{config-DU7EJImt.js → config-C2Pz2_4A.js} +7 -4
- package/dist/cli/config-DpbF8ML3.js +2 -0
- package/dist/cli/{config-NiPxAmUF.js → config-M-WzL9O2.js} +116 -18
- package/dist/cli/{db-DOBPt660.js → db-BkcfOlyB.js} +2 -1
- package/dist/cli/{diff-SjkO5rNr.js → diff-D1jGdb3Y.js} +1 -1
- package/dist/cli/{doctor-DJk0aeBi.js → doctor-VcDtuusV.js} +316 -221
- package/dist/cli/emit-BHHfwUoT.js +1136 -0
- package/dist/cli/{env-qXgyMV6r.js → env-B--LMhEe.js} +13 -10
- package/dist/cli/env-vzBG90Um.js +2 -0
- package/dist/cli/{env-CJLbUVPB.js → env-zHJtMIBo.js} +11 -3
- package/dist/cli/{errors-4v4DTtda.js → errors-CqTLXe2M.js} +18 -2
- package/dist/cli/{fastest-levenshtein-CFN-lNDv.js → fastest-levenshtein-CF7BCi9l.js} +1 -1
- package/dist/cli/files-BVupXPIC.js +34 -0
- package/dist/cli/gen-DmVj3u4L.js +322 -0
- package/dist/cli/{init-BHuEQrQK.js → glue-C1UE8gQN.js} +16 -313
- package/dist/cli/index.d.ts +59 -31
- package/dist/cli/index.js +8 -6
- package/dist/cli/init-CVZ3s5kl.js +258 -0
- package/dist/cli/{introspect-DzR2nyQb.js → introspect-BToGNfm-.js} +14 -14
- package/dist/cli/{io-DI1mTdSA.js → io-CFzJVJ68.js} +5 -1
- package/dist/cli/{keys-BGCnnb-s.js → keys-CJhtIxJ3.js} +4 -4
- package/dist/cli/metadata-DSRKCaf-.js +133 -0
- package/dist/cli/names-D6LrQnOv.js +6 -0
- package/dist/cli/openapi-3.0-t7xwkuRH.js +928 -0
- package/dist/cli/openapi-3.1-CVze7tBS.js +870 -0
- package/dist/cli/openapi-3.2-CFoMYM01.js +1031 -0
- package/dist/cli/{openapi-BlRJ18s3.js → openapi-DWa4Ir1q.js} +8 -14
- package/dist/cli/prompts-BdeVmVpg.js +2 -0
- package/dist/cli/{prompts-BNcNfAve.js → prompts-DZJB1nTw.js} +6 -6
- package/dist/cli/{rolldown-runtime-BPOCksWG.js → rolldown-runtime-CMFfr-1z.js} +3 -1
- package/dist/cli/run-DA6_lg3w.js +389 -0
- package/dist/cli/run-DuN1MX-7.js +705 -0
- package/dist/cli/scaffold-5DenHSxF.js +292 -0
- package/dist/cli/scaffold-CwQUMFRb.js +2 -0
- package/dist/cli/{seed-DQzqT7LP.js → seed-CzBmrGON.js} +14 -18
- package/dist/cli/seed-DOmit9Hq.js +2 -0
- package/dist/cli/{skills-QQs4q68J.js → skills-CnO8QFS7.js} +7 -6
- package/dist/cli/snapshot-Bstk6ulj.js +287 -0
- package/dist/cli/source-args-BYfq6imV.js +31 -0
- package/dist/cli/spec-CzosTYm3.js +7438 -0
- package/dist/cli/spec-T_0Bcyw7.js +2 -0
- package/dist/cli/{sql-B8csQPyn.js → sql-BKOOQAX3.js} +240 -218
- package/dist/cli/sql-DJrNDxQm.js +3 -0
- package/dist/cli/{style-C0NFdJRL.js → style-CB3vxgh0.js} +3 -3
- package/dist/cli/typegen-Demi5-VQ.js +486 -0
- package/dist/cli/validate-Ca13ktgz.js +7522 -0
- package/dist/cli/{version-59gcepIG.js → version-B4k0aUxS.js} +1 -1
- package/dist/client/index.d.ts +4 -3
- package/dist/client/index.js +60 -3
- package/dist/client/native/index.d.ts +3 -3
- package/dist/client/native/index.js +3 -3
- package/dist/{client-CI0Z2zWX.js → client-wxeTQFtB.js} +36 -3
- package/dist/{clone-BfgmLU90.js → clone-dN9XOL1K.js} +9 -1
- package/dist/{cloud-event-BnmD5fb9.js → cloud-event-CTh9Sr5w.js} +16 -2
- package/dist/{cloud-event-C1JCc1bH.d.ts → cloud-event-Dune0KI7.d.ts} +16 -2
- package/dist/{compiler-DY_wkj4R.d.ts → compiler-V1qvcST1.d.ts} +2 -2
- package/dist/{compose-BIBNgAnq.js → compose-BHej1acw.js} +3 -3
- package/dist/{composite--yqry7uW.d.ts → composite-CWAJTRBF.d.ts} +6 -6
- package/dist/{composite-DXVUibdi.js → composite-zTe0TCqj.js} +4 -4
- package/dist/config/index.d.ts +3 -4
- package/dist/config/index.js +4 -4
- package/dist/config-DlKvtt95.js +540 -0
- package/dist/{connector-Dv8kK0MO.d.ts → connector-CySQEFcW.d.ts} +1 -1
- package/dist/{connectors-CrpknU0P.d.ts → connectors--PGhmiu0.d.ts} +4 -4
- package/dist/{context-BCrWe7ow.d.ts → context-DsV2SueA.d.ts} +11 -2
- package/dist/context-nPDvQ-Zl.js +41 -0
- package/dist/credentials/index.d.ts +5 -5
- package/dist/credentials/index.js +9 -17
- package/dist/{cron-DVPUg5k3.js → cron-D25Ukpxy.js} +1 -1
- package/dist/cron-route-D2AN9SA1.js +24 -0
- package/dist/{csv-DCK-PT1n.js → csv-BZnHA1Py.js} +1 -1
- package/dist/{define-B-TVjC25.js → define-CFQcvM20.js} +263 -229
- package/dist/{define-CJJkkr1-.d.ts → define-DmcfoNXB.d.ts} +136 -111
- package/dist/edge/index.d.ts +66 -13
- package/dist/edge/index.js +65 -39
- package/dist/elysia/index.d.ts +1 -1
- package/dist/elysia/index.js +1 -1
- package/dist/{embeddings-C9KGQnXt.d.ts → embeddings-B4vhS-dY.d.ts} +1 -1
- package/dist/{ended-XjeGQ5XW.d.ts → ended-CcvcRqEd.d.ts} +7 -1
- package/dist/{entitlements-DRl6ZJUm.js → entitlements-BYFf0Cdh.js} +2 -2
- package/dist/{entitlements-BKSVGtrG.d.ts → entitlements-Ds8qoYZ-.d.ts} +1 -1
- package/dist/env/index.d.ts +1 -1
- package/dist/env/index.js +9 -2
- package/dist/{errors-B11Duf73.js → errors-2M6CKMP4.js} +5 -0
- package/dist/{errors-DLjJHPLK.js → errors-rZ7VIqp6.js} +2 -2
- package/dist/{escape-like-ImTK0ps_.d.ts → escape-like-DDWoHzh_.d.ts} +1 -1
- package/dist/eve/index.d.ts +5 -5
- package/dist/eve/index.js +5 -11
- package/dist/{eve-gT2Fpjut.d.ts → eve-CoAIcCkq.d.ts} +2 -2
- package/dist/events/index.d.ts +4 -4
- package/dist/events/index.js +7 -2
- package/dist/{events-DWDhx77e.d.ts → events-D1BOCll8.d.ts} +6 -4
- package/dist/{executor-Bq28caBo.js → executor-B-fD7DLt.js} +52 -35
- package/dist/executor-B_Hfobee.js +162 -0
- package/dist/{executor-BVBFM86G.d.ts → executor-CpxLPCiz.d.ts} +1 -1
- package/dist/{executor-CaWigTyR.d.ts → executor-DfEtf0cq.d.ts} +43 -27
- package/dist/{executor-DvsBbNBS.d.ts → executor-Drzu3dBK.d.ts} +2 -2
- package/dist/{executor-DbvExCFC.d.ts → executor-ngjKL_Pe.d.ts} +2 -2
- package/dist/expo/index.d.ts +4 -4
- package/dist/expo/index.js +6 -6
- package/dist/expo-sqlite/index.d.ts +3 -3
- package/dist/expo-sqlite/index.js +2 -2
- package/dist/extra-CGQ2_q3S.js +10 -0
- package/dist/{field-errors-BFOa7WhB.d.ts → field-errors-DIe9XYWL.d.ts} +17 -7
- package/dist/{field-errors-VF1yb8yI.js → field-errors-DZVRWRkf.js} +1 -1
- package/dist/format-DTXdu8ya.d.ts +70 -0
- package/dist/{framework-BmzgK32X.d.ts → framework-148t1m3C.d.ts} +5 -5
- package/dist/{framework-a7aRCIqv.js → framework-3ey3QmrO.js} +2 -2
- package/dist/function-contract-BcZenXMO.d.ts +8 -0
- package/dist/{gateway-C1ssRHnf.d.ts → gateway-S9vicgeo.d.ts} +4 -4
- package/dist/{guards-BnzDvFrz.js → guards-6F2bCtQR.js} +3 -1
- package/dist/h3/index.d.ts +1 -1
- package/dist/h3/index.js +1 -1
- package/dist/h3/v1/index.d.ts +1 -1
- package/dist/h3/v1/index.js +1 -1
- package/dist/{message-CaKlqdsX.js → history-GH1HJWQV.js} +65 -13
- package/dist/hmac-DCud0myt.js +22 -0
- package/dist/hono/index.d.ts +19 -14
- package/dist/hono/index.js +21 -16
- package/dist/{hooks-1BTCJsiw.js → hooks-Bhza9Hnr.js} +68 -100
- package/dist/http-sbmBe5d2.js +25 -0
- package/dist/{inbox-i7E1ppo6.d.ts → inbox-Cd1KCEBL.d.ts} +3 -3
- package/dist/index-B72Rvv_j.d.ts +89 -0
- package/dist/{index-DunNRdnT.d.ts → index-BCHR4Ucl.d.ts} +4 -4
- package/dist/{index-CLg87OBW.d.ts → index-BUK7jUzR.d.ts} +6 -0
- package/dist/{config-D44Y7PAv.d.ts → index-Ba1SI-uO.d.ts} +625 -278
- package/dist/{index-D48jVS-N.d.ts → index-BfxOaOYs.d.ts} +4 -5
- package/dist/{index-ClmjK_o-.d.ts → index-CicIyqOe.d.ts} +4 -4
- package/dist/{index-ACiNPN4Z.d.ts → index-D69h4QqD.d.ts} +1 -1
- package/dist/index-DG2SUXDQ.d.ts +58 -0
- package/dist/{index-Bepi-Hgg.d.ts → index-DoNVLHOU.d.ts} +3 -3
- package/dist/{index-CdZKQF98.d.ts → index-R274XFlg.d.ts} +1 -1
- package/dist/{index-CewnYSpv.d.ts → index-_4R4b01v.d.ts} +8 -18
- package/dist/index.d.ts +89 -14
- package/dist/index.js +12 -11
- package/dist/{json-schema-CvER4kgT.js → json-schema-CT4tvrkA.js} +148 -102
- package/dist/{kit-Fm-Fv7q5.js → kit-BhHr9T9v.js} +36 -10
- package/dist/{kit-CkNzZUqv.d.ts → kit-W99LCPBS.d.ts} +13 -7
- package/dist/{knowledge-BXBbT0Tr.d.ts → knowledge-CAReFpRA.d.ts} +5 -5
- package/dist/{knowledge-CDmiMLew.js → knowledge-DnHtb64A.js} +4 -3
- package/dist/list/index.d.ts +1 -2
- package/dist/{list-query-BRt-zDF7.d.ts → list-query-D3JQeEL7.d.ts} +4 -4
- package/dist/mcp/index.d.ts +49 -19
- package/dist/mcp/index.js +158 -94
- package/dist/mcp/sdk/index.d.ts +38 -6
- package/dist/mcp/sdk/index.js +88 -6
- package/dist/{message-CfDoR0Y6.d.ts → message-B0fNJgq8.d.ts} +1 -2
- package/dist/{messages-B9-5887d.js → messages-CJoHHCWT.js} +4 -205
- package/dist/{mfa-Daak8ukG.d.ts → mfa-SZc9YYyb.d.ts} +1 -1
- package/dist/model-OgBxvk3N.d.ts +300 -0
- package/dist/model-messages-Cxw_Up4f.js +206 -0
- package/dist/model-messages-D4GZllOD.d.ts +34 -0
- package/dist/modules-DksjZyMW.js +77 -0
- package/dist/nestjs/index.d.ts +2 -2
- package/dist/nestjs/index.js +1 -1
- package/dist/next/index.d.ts +105 -55
- package/dist/next/index.js +204 -170
- package/dist/node/index.d.ts +2 -2
- package/dist/node/index.js +1 -1
- package/dist/{onboarding-BZGHYJks.d.ts → onboarding-LZvlK1P4.d.ts} +3 -3
- package/dist/openapi/index.d.ts +4 -2
- package/dist/openapi/index.js +21 -343
- package/dist/optional-peer-D1pi-skw.js +24 -0
- package/dist/orpc/index.d.ts +8 -8
- package/dist/orpc/index.js +21 -20
- package/dist/otel/index.d.ts +3 -3
- package/dist/otel/index.js +7 -7
- package/dist/{outbox-Cq7pPYvl.d.ts → outbox-DZfAvfzC.d.ts} +6 -6
- package/dist/overlay/index.d.ts +233 -0
- package/dist/overlay/index.js +554 -0
- package/dist/{plugin-FGY8UhYm.d.ts → plugin-CPK2HsbY.d.ts} +42 -3
- package/dist/plugins/actor/index.d.ts +1 -1
- package/dist/plugins/actor/index.js +1 -1
- package/dist/plugins/rules/index.d.ts +2 -2
- package/dist/plugins/rules/index.js +1 -1
- package/dist/plugins/soft-delete/index.d.ts +3 -3
- package/dist/plugins/soft-delete/index.js +9 -2
- package/dist/plugins/tenant/index.d.ts +7 -2
- package/dist/plugins/tenant/index.js +16 -2
- package/dist/plugins/timestamps/index.d.ts +1 -1
- package/dist/plugins/timestamps/index.js +8 -1
- package/dist/plugins/validation/index.d.ts +2 -2
- package/dist/plugins/validation/index.js +4 -4
- package/dist/{pool-CAu2nLrL.d.ts → pool-gkhbGp2E.d.ts} +2 -2
- package/dist/postgres/index.d.ts +4 -4
- package/dist/postgres/index.js +2 -1
- package/dist/{postgrest-BLVdEnfe.d.ts → postgrest-BUqLag2Q.d.ts} +1 -1
- package/dist/powersync/index.d.ts +5 -5
- package/dist/powersync/index.js +4 -4
- package/dist/powersync/react/index.d.ts +3 -3
- package/dist/powersync/react/index.js +1 -1
- package/dist/{problem-BreOl8b8.js → problem-CJvFeGu7.js} +13 -2
- package/dist/{problem-DD8LZFjc.d.ts → problem-TvGdxO1t.d.ts} +7 -1
- package/dist/{provider-Di3sRutW.js → provider-DxRTex4x.js} +1 -1
- package/dist/{provider-D-UEMvSD.d.ts → provider-ib9wzUDz.d.ts} +2 -2
- package/dist/query/index.d.ts +2 -2
- package/dist/query/index.js +1 -1
- package/dist/{query-BQ-NaZon.js → query-Ctz-qKRx.js} +1 -1
- package/dist/rate-limit-Bw7HgmFj.js +260 -0
- package/dist/react/index.d.ts +9 -9
- package/dist/react/index.js +4 -4
- package/dist/react/native/index.d.ts +1 -1
- package/dist/react/native/index.js +2 -2
- package/dist/react/server.d.ts +10 -10
- package/dist/react/server.js +3 -3
- package/dist/react/session.d.ts +2 -2
- package/dist/{react-F80mF4-t.js → react-Bmpo59D7.js} +4 -4
- package/dist/react-router/index.d.ts +6 -6
- package/dist/react-router/index.js +9 -11
- package/dist/{read-set-DuKWC9Mj.js → read-set-DAeWhqPf.js} +2 -2
- package/dist/realtime/index.d.ts +3 -3
- package/dist/realtime/index.js +30 -36
- package/dist/{refusal-DhSU2Vvr.d.ts → refusal-CFI8-5nf.d.ts} +4 -1
- package/dist/{refusal-CeJWxmkH.js → refusal-K78A1Vmq.js} +5 -5
- package/dist/{resolve-tJZY3FEa.js → resolve-Bvgf3ut_.js} +131 -42
- package/dist/{resolve-ChTYeTEl.d.ts → resolve-MxXVWyhd.d.ts} +12 -8
- package/dist/resource--vTrBe6I.d.ts +103 -0
- package/dist/resource-BqNqlYg9.js +91 -0
- package/dist/resource-DA811u_4.js +463 -0
- package/dist/resource-execute-rbKvuCsY.d.ts +12 -0
- package/dist/resource-schemas-BJ518zFH.js +79 -0
- package/dist/resource-types-CqB6GWGT.d.ts +141 -0
- package/dist/resources-BVYPnuLo.js +56 -0
- package/dist/resources-DZSk8tXJ.d.ts +7 -0
- package/dist/{respond-DprrgyXX.d.ts → respond-Cw-zanCm.d.ts} +3 -3
- package/dist/{respond-BUgsXNgk.js → respond-volM3ByS.js} +4 -4
- package/dist/{result-D7y2fT87.d.ts → result-BchM1XZn.d.ts} +7 -1
- package/dist/{result-DzUbqgdW.js → result-DEqHCMKP.js} +1 -1
- package/dist/server/index.d.ts +81 -19
- package/dist/server/index.js +16 -14
- package/dist/{server-Bh0EVSwU.d.ts → server-types-CrAmZ8jv.d.ts} +92 -36
- package/dist/{shared-CxWmcyqB.js → shared-DHjhfRdV.js} +2 -15
- package/dist/shared-DTneRoxi.js +14 -0
- package/dist/{sign-in-Cb1mwv6X.js → sign-in-D_yoP0PF.js} +1 -1
- package/dist/signatures-BRS_p3WD.d.ts +34 -0
- package/dist/signatures-DsWv_bYR.js +103 -0
- package/dist/{signers-4y62_VIi.d.ts → signers-cpdmZYrv.d.ts} +1 -1
- package/dist/solid/index.d.ts +9 -18
- package/dist/solid/index.js +2 -2
- package/dist/solid-start/index.d.ts +6 -6
- package/dist/solid-start/index.js +7 -7
- package/dist/spec/index.d.ts +134 -0
- package/dist/spec/index.js +353 -0
- package/dist/{spec-pins-C89s6DyW.d.ts → spec-pins-CwzDY25w.d.ts} +18 -1
- package/dist/{spec-pins--j6mTok4.js → spec-pins-DsLfUH7l.js} +14 -1
- package/dist/sql/index.d.ts +145 -119
- package/dist/sql/index.js +19921 -19798
- package/dist/{executor-De1Of3m3.js → sql-CwuqaQ4Y.js} +34 -169
- package/dist/ssr/index.d.ts +4 -4
- package/dist/ssr/index.js +3 -2
- package/dist/{standard-BK0cqJ7y.js → standard-DkzZUneg.js} +2 -2
- package/dist/{standard-CYsm7xpT.d.ts → standard-lmkbOtPB.d.ts} +1 -1
- package/dist/{stats-D_AD9GGu.js → stats-DhU78Ctf.js} +8 -4
- package/dist/storage/index.d.ts +4 -6
- package/dist/storage/index.js +16 -17
- package/dist/{bucket-Cl46E3jS.d.ts → storage-api-CB7Zl1Ci.d.ts} +243 -8
- package/dist/{store-CGjgWu5n.d.ts → store-DsIYEBnv.d.ts} +1 -1
- package/dist/streams/index.d.ts +4 -4
- package/dist/streams/index.js +5 -4
- package/dist/streams/redis/index.d.ts +1 -1
- package/dist/streams/redis/index.js +5 -11
- package/dist/{stripe-BMj5LtsT.js → stripe-v-Y2lmop.js} +2 -8
- package/dist/supabase-mcp-C6tMoEjn.d.ts +43 -0
- package/dist/supabase-mcp-Cpn5A4i-.js +28 -0
- package/dist/{support-ig_K4PvS.js → support-D1pFFouF.js} +71 -35
- package/dist/{support-view-CVOJJLpc.d.ts → support-view-scqMgtOo.d.ts} +1 -1
- package/dist/svelte/index.d.ts +8 -17
- package/dist/svelte/index.js +2 -2
- package/dist/sveltekit/index.d.ts +7 -7
- package/dist/sveltekit/index.js +10 -12
- package/dist/table-schema-htM_SbCW.js +286 -0
- package/dist/{tags-Cx-LnIQP.d.ts → tags-BO9LjtWG.d.ts} +1 -1
- package/dist/tanstack-db/index.d.ts +2 -2
- package/dist/tanstack-db/supabase/index.d.ts +52 -0
- package/dist/tanstack-db/supabase/index.js +97 -0
- package/dist/tanstack-start/index.d.ts +6 -6
- package/dist/tanstack-start/index.js +8 -12
- package/dist/{tee-CoEppCER.js → tee-Cb98Vn3b.js} +1 -1
- package/dist/{template--jDkl3UP.js → template-lPVh-EwW.js} +11 -2
- package/dist/{temporal-required-BVvW7SYJ.js → temporal-required-BtynQtM-.js} +1 -1
- package/dist/{tenant-BxNFk9bx.d.ts → tenant-CM368LXb.d.ts} +2 -2
- package/dist/testing/index.d.ts +249 -118
- package/dist/testing/index.js +1418 -870
- package/dist/ttl-cache-XzZ-Q2eX.js +29 -0
- package/dist/types-BRTSpOIh.js +5 -0
- package/dist/{types-C05bxW-W.d.ts → types-Bb_4-vdW.d.ts} +4 -4
- package/dist/{types-AYOvcyep.d.ts → types-CD6yCDx3.d.ts} +5 -5
- package/dist/{types-6rocye-y.d.ts → types-CbOUc5IH.d.ts} +4 -4
- package/dist/{types-6BdhkmZe.d.ts → types-CoE5Zwy4.d.ts} +8 -0
- package/dist/{types-DGs5L0VN.d.ts → types-DSJ3-m9X.d.ts} +4 -4
- package/dist/{queue-CLJurhdy.d.ts → types-D__3EN0q.d.ts} +17 -19
- package/dist/{usage-CrvrL2vw.d.ts → usage-D0NNUFfr.d.ts} +3 -3
- package/dist/{vault-wlbBhqm7.d.ts → vault-BpmApxxW.d.ts} +3 -3
- package/dist/vercel-connect/index.d.ts +1 -1
- package/dist/vercel-connect/index.js +5 -11
- package/dist/{verify-DPuWngD4.d.ts → verify-C91Wyp40.d.ts} +5 -35
- package/dist/verify-CJbYfADA.js +124 -0
- package/dist/{version-C6OfRAIn.js → version-Cq8gfDbd.js} +1 -1
- package/dist/{view-BeFcRV6G.js → view-D5ryq3gz.js} +1 -1
- package/dist/{view-CF7ihnkg.d.ts → view-TpXEUcVN.d.ts} +3 -3
- package/dist/vue/index.d.ts +9 -18
- package/dist/vue/index.js +2 -2
- package/dist/{watch-Xuxrvxq-.js → watch-BcvtAHOd.js} +2 -2
- package/dist/{watch-DI34G86j.d.ts → watch-COzRWvVN.d.ts} +23 -9
- package/dist/{wire-DtZQ4sdE.js → wire-Df3EWkG8.js} +2 -2
- package/dist/{workflow-builder-DJ1oHn8g.js → workflow-builder-CHqHpAVt.js} +6 -5
- package/dist/workflow-sdk/builder/index.d.ts +3 -3
- package/dist/workflow-sdk/index.d.ts +1 -1
- package/dist/workflow-sdk/world/index.d.ts +23 -17
- package/dist/workflow-sdk/world/index.js +59 -76
- package/dist/{workflow-sdk-B3yLD6Br.d.ts → workflow-sdk-DTZyrvNo.d.ts} +3 -3
- package/dist/{workflow-sdk-world-D-prir6O.js → workflow-sdk-world-CMV1ahFW.js} +528 -526
- package/dist/{workflows-B0j9WKPu.d.ts → workflows-CcpCBfIe.d.ts} +3 -3
- package/dist/{workflows-wu1WWBn7.js → workflows-IvxzG2cl.js} +5 -4
- package/package.json +54 -3
- package/schemas/config-v1.json +243 -0
- package/schemas/doctor-report-v1.json +4 -1
- package/schemas/spec-manifest-v1.json +95 -0
- package/skills/better-supabase/SKILL.md +8 -4
- package/skills/better-supabase/references/troubleshooting.md +20 -20
- package/skills/better-supabase-api/references/expo.md +6 -3
- package/skills/better-supabase-api/references/powersync.md +2 -1
- package/dist/cli/config-B9HkL8nF.js +0 -2
- package/dist/cli/gen-CCMc39Dx.js +0 -3100
- package/dist/cli/gen-DRmzPI75.js +0 -2
- package/dist/cli/prompts-BTYQGunc.js +0 -2
- package/dist/cli/run-BqDPh9UH.js +0 -361
- package/dist/config-Dn7F5k9A.js +0 -202
- package/dist/history-BZih6SFP.js +0 -64
- package/dist/index-BkWT_uBO.d.ts +0 -51
- package/dist/index-Bxih3l0u.d.ts +0 -81
- package/dist/index-CaxrMD1A.d.ts +0 -1
- package/dist/index-DQh4VCc9.d.ts +0 -98
- package/dist/keys-4MnkWTTh.js +0 -35
- package/dist/messages-DYP0sUTe.d.ts +0 -59
- package/dist/modules-dxrVK3ID.js +0 -228
- package/dist/path-Cv__-OTj.d.ts +0 -17
- package/dist/resource-BsvzCMlX.js +0 -212
- package/dist/resource-IPS5xi9q.d.ts +0 -74
- package/dist/template-CwO38Do8.d.ts +0 -6
- package/dist/verify-DL41hbvY.js +0 -232
- package/dist/cli/{read-sets-CETOSFx4.js → read-sets-DjJrm8Wj.js} +1 -1
package/dist/mcp/index.js
CHANGED
|
@@ -1,16 +1,117 @@
|
|
|
1
|
-
import { n as dbError } from "../errors-
|
|
1
|
+
import { n as dbError } from "../errors-2M6CKMP4.js";
|
|
2
|
+
import { a as ok } from "../result-DEqHCMKP.js";
|
|
2
3
|
import { t as base64ToText } from "../base64-D2gsioCY.js";
|
|
3
|
-
import { n as validate } from "../standard-
|
|
4
|
-
import { a as
|
|
5
|
-
import { t as SPEC_PINS } from "../spec-pins
|
|
6
|
-
import { t as buildJsonSchema } from "../json-schema-
|
|
7
|
-
import { c as extendServer,
|
|
4
|
+
import { n as validate } from "../standard-DkzZUneg.js";
|
|
5
|
+
import { a as methodNotAllowed, o as problemResponse, s as toProblem } from "../problem-CJvFeGu7.js";
|
|
6
|
+
import { t as SPEC_PINS } from "../spec-pins-DsLfUH7l.js";
|
|
7
|
+
import { t as buildJsonSchema, v as toDraft07 } from "../json-schema-CT4tvrkA.js";
|
|
8
|
+
import { c as extendServer, n as flushEvents, s as createServer } from "../adapter-CN45ibbV.js";
|
|
8
9
|
import { n as jsonResponse, t as jsonReplacer } from "../json-CEnpTHlZ.js";
|
|
9
|
-
import { o as settle, r as guard, t as defaultExpose } from "../respond-
|
|
10
|
-
import { t as
|
|
11
|
-
import {
|
|
10
|
+
import { o as settle, r as guard, t as defaultExpose } from "../respond-volM3ByS.js";
|
|
11
|
+
import { t as boundedTtlCache } from "../ttl-cache-XzZ-Q2eX.js";
|
|
12
|
+
import { n as checkPermission, t as checkEach } from "../authorizer-ayxUDXXP.js";
|
|
13
|
+
import { t as defineResource } from "../resource-DA811u_4.js";
|
|
14
|
+
import { r as hasRole } from "../kit-BhHr9T9v.js";
|
|
15
|
+
import { t as withExtra } from "../extra-CGQ2_q3S.js";
|
|
16
|
+
import { r as pageSchema, t as pageInputSchema } from "../resource-schemas-BJ518zFH.js";
|
|
12
17
|
import { a as withCors, i as metadataPreflight, n as endpointPreflight, r as isMetadataRequest, t as discovery } from "../http-DdYadv-o.js";
|
|
13
18
|
import { resourceMetadataResponse, unauthorizedResponse } from "@supabase/server/oauth-protected-resource";
|
|
19
|
+
//#region src/mcp/dialect.ts
|
|
20
|
+
/**
|
|
21
|
+
* Revisions before 2025-11-25 have no default dialect, and clients written
|
|
22
|
+
* for them validate tool schemas as draft-07.
|
|
23
|
+
*/
|
|
24
|
+
function schemaTargetFor(version) {
|
|
25
|
+
return version < "2025-11-25" ? "draft-07" : "draft-2020-12";
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Returns the listed tool with its schemas in a target's dialect, built
|
|
29
|
+
* once per target. `convert` asks the input's Standard Schema library for
|
|
30
|
+
* the target; without it, or when it can't, the 2020-12 schema is lowered.
|
|
31
|
+
*/
|
|
32
|
+
function toolDialects(info, convert) {
|
|
33
|
+
const built = /* @__PURE__ */ new Map();
|
|
34
|
+
return (target) => {
|
|
35
|
+
const cached = built.get(target);
|
|
36
|
+
if (cached) return cached;
|
|
37
|
+
const input = convert?.(target);
|
|
38
|
+
const lower = target === "draft-07";
|
|
39
|
+
const result = input === void 0 && !lower ? info : {
|
|
40
|
+
...info,
|
|
41
|
+
inputSchema: input ?? toDraft07(info.inputSchema),
|
|
42
|
+
...info.outputSchema && lower ? { outputSchema: toDraft07(info.outputSchema) } : {}
|
|
43
|
+
};
|
|
44
|
+
built.set(target, result);
|
|
45
|
+
return result;
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
//#endregion
|
|
49
|
+
//#region src/mcp/permissions.ts
|
|
50
|
+
/** The refusal for a caller without one of `required`'s roles. */
|
|
51
|
+
function missingRole(auth, required) {
|
|
52
|
+
if (!required || auth.kind === "service") return void 0;
|
|
53
|
+
const { roles, claim } = "roles" in required ? required : {
|
|
54
|
+
roles: required,
|
|
55
|
+
claim: void 0
|
|
56
|
+
};
|
|
57
|
+
if (roles.length === 0 || hasRole(auth, roles, claim)) return void 0;
|
|
58
|
+
return dbError("forbidden", `This server needs the role ${roles.join(" or ")}`, { code: "MISSING_ROLE" });
|
|
59
|
+
}
|
|
60
|
+
/** The context of a `tools/call` or `tools/list` request, if the client has one. */
|
|
61
|
+
function contextOf(db) {
|
|
62
|
+
if (typeof db !== "object" || db === null || !("$context" in db)) return;
|
|
63
|
+
return db.$context;
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Checks a tool call as the caller of `db`: the tool is the resource, its
|
|
67
|
+
* arguments its properties. A tool without a permission passes.
|
|
68
|
+
*/
|
|
69
|
+
async function checkTool(authorizer, tool, args, db) {
|
|
70
|
+
if (tool.permission === void 0) return ok(void 0);
|
|
71
|
+
const properties = typeof args === "object" && args !== null && !Array.isArray(args) ? args : void 0;
|
|
72
|
+
return checkPermission({
|
|
73
|
+
authorizer,
|
|
74
|
+
permission: tool.permission,
|
|
75
|
+
resource: {
|
|
76
|
+
type: "mcp_tool",
|
|
77
|
+
id: tool.info.name,
|
|
78
|
+
...properties ? { properties } : {}
|
|
79
|
+
},
|
|
80
|
+
context: contextOf(db)
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Which tools the caller may see, in `tools` order: one batch per
|
|
85
|
+
* permission, and a tool without a permission is always shown.
|
|
86
|
+
*/
|
|
87
|
+
async function permittedTools(authorizer, tools, context) {
|
|
88
|
+
const shown = tools.map((tool) => tool.permission === void 0);
|
|
89
|
+
const groups = /* @__PURE__ */ new Map();
|
|
90
|
+
for (const [index, tool] of tools.entries()) {
|
|
91
|
+
if (tool.permission === void 0 || !authorizer) continue;
|
|
92
|
+
let key;
|
|
93
|
+
try {
|
|
94
|
+
key = authorizer.key(tool.permission);
|
|
95
|
+
} catch {
|
|
96
|
+
continue;
|
|
97
|
+
}
|
|
98
|
+
const group = groups.get(key) ?? {
|
|
99
|
+
permission: tool.permission,
|
|
100
|
+
indexes: []
|
|
101
|
+
};
|
|
102
|
+
group.indexes.push(index);
|
|
103
|
+
groups.set(key, group);
|
|
104
|
+
}
|
|
105
|
+
await Promise.all([...groups.values()].map(async ({ permission, indexes }) => {
|
|
106
|
+
const granted = await checkEach(authorizer, permission, indexes.map((index) => ({
|
|
107
|
+
type: "mcp_tool",
|
|
108
|
+
id: tools[index].name
|
|
109
|
+
})), context);
|
|
110
|
+
for (const [position, index] of indexes.entries()) shown[index] = granted[position] ?? false;
|
|
111
|
+
}));
|
|
112
|
+
return shown;
|
|
113
|
+
}
|
|
114
|
+
//#endregion
|
|
14
115
|
//#region src/mcp/mcp.ts
|
|
15
116
|
const MCP_PROTOCOL_VERSION = SPEC_PINS.mcp;
|
|
16
117
|
/** Revisions before 2026-07-28 open with an `initialize` handshake. */
|
|
@@ -29,27 +130,26 @@ function hostAllowed(host, allowed) {
|
|
|
29
130
|
return false;
|
|
30
131
|
}
|
|
31
132
|
}
|
|
32
|
-
/** The refusal for a caller without one of `required`'s roles. */
|
|
33
|
-
function missingRole(auth, required) {
|
|
34
|
-
if (!required || auth.kind === "service") return void 0;
|
|
35
|
-
const { roles, claim } = "roles" in required ? required : {
|
|
36
|
-
roles: required,
|
|
37
|
-
claim: void 0
|
|
38
|
-
};
|
|
39
|
-
if (roles.length === 0 || hasRole(auth, roles, claim)) return void 0;
|
|
40
|
-
return dbError("forbidden", `This server needs the role ${roles.join(" or ")}`, { code: "MISSING_ROLE" });
|
|
41
|
-
}
|
|
42
133
|
/** A custom tool. Pass it in `createMcp({ tools: [...] })`. */
|
|
43
134
|
function defineTool(definition) {
|
|
44
135
|
if (!/^[A-Za-z0-9_.-]{1,64}$/.test(definition.name)) throw new TypeError(`Invalid tool name "${definition.name}": use 1-64 letters, digits, "_", "-" or "."`);
|
|
45
136
|
const standard = definition.input?.["~standard"];
|
|
46
|
-
const
|
|
137
|
+
const convert = definition.inputSchema === void 0 ? standard?.jsonSchema : void 0;
|
|
138
|
+
const inputSchema = definition.inputSchema ?? convert?.input({ target: definition.jsonSchemaTarget ?? "draft-2020-12" }) ?? (definition.input ? void 0 : {
|
|
47
139
|
type: "object",
|
|
48
140
|
properties: {}
|
|
49
141
|
});
|
|
50
142
|
if (!inputSchema) throw new TypeError(`Tool "${definition.name}": the input schema has no JSON Schema; pass inputSchema`);
|
|
51
143
|
const { $schema: _, ...schema } = inputSchema;
|
|
52
144
|
return {
|
|
145
|
+
...convert ? { inputSchemaFor: (target) => {
|
|
146
|
+
try {
|
|
147
|
+
const { $schema: _dialect, ...converted } = convert.input({ target });
|
|
148
|
+
return converted;
|
|
149
|
+
} catch {
|
|
150
|
+
return;
|
|
151
|
+
}
|
|
152
|
+
} } : {},
|
|
53
153
|
info: {
|
|
54
154
|
name: definition.name,
|
|
55
155
|
...definition.title ? { title: definition.title } : {},
|
|
@@ -60,6 +160,7 @@ function defineTool(definition) {
|
|
|
60
160
|
},
|
|
61
161
|
...definition.input ? { input: definition.input } : {},
|
|
62
162
|
...definition.meta === void 0 ? {} : { meta: definition.meta },
|
|
163
|
+
...definition.permission === void 0 ? {} : { permission: definition.permission },
|
|
63
164
|
run: (args, ctx) => definition.run(args, ctx)
|
|
64
165
|
};
|
|
65
166
|
}
|
|
@@ -90,25 +191,6 @@ const ANNOTATIONS = {
|
|
|
90
191
|
openWorldHint: false
|
|
91
192
|
}
|
|
92
193
|
};
|
|
93
|
-
function pageSchema(max, cursor) {
|
|
94
|
-
return {
|
|
95
|
-
type: "object",
|
|
96
|
-
properties: {
|
|
97
|
-
...cursor ? { after: { type: "string" } } : { page: {
|
|
98
|
-
type: "integer",
|
|
99
|
-
minimum: 1,
|
|
100
|
-
default: 1
|
|
101
|
-
} },
|
|
102
|
-
size: {
|
|
103
|
-
type: "integer",
|
|
104
|
-
minimum: 1,
|
|
105
|
-
maximum: max,
|
|
106
|
-
default: 50
|
|
107
|
-
}
|
|
108
|
-
},
|
|
109
|
-
additionalProperties: false
|
|
110
|
-
};
|
|
111
|
-
}
|
|
112
194
|
function tableTools(resource, defs) {
|
|
113
195
|
const { table, keyParam } = resource;
|
|
114
196
|
const row = defs[`${table}Row`] ?? { type: "object" };
|
|
@@ -123,32 +205,7 @@ function tableTools(resource, defs) {
|
|
|
123
205
|
additionalProperties: false
|
|
124
206
|
});
|
|
125
207
|
const cursor = resource.pagination === "cursor";
|
|
126
|
-
const page = cursor
|
|
127
|
-
type: "object",
|
|
128
|
-
properties: {
|
|
129
|
-
items: {
|
|
130
|
-
type: "array",
|
|
131
|
-
items: row
|
|
132
|
-
},
|
|
133
|
-
nextCursor: { type: ["string", "null"] },
|
|
134
|
-
hasMore: { type: "boolean" }
|
|
135
|
-
},
|
|
136
|
-
required: [
|
|
137
|
-
"items",
|
|
138
|
-
"nextCursor",
|
|
139
|
-
"hasMore"
|
|
140
|
-
]
|
|
141
|
-
} : {
|
|
142
|
-
type: "object",
|
|
143
|
-
properties: {
|
|
144
|
-
items: {
|
|
145
|
-
type: "array",
|
|
146
|
-
items: row
|
|
147
|
-
},
|
|
148
|
-
page: { type: "object" }
|
|
149
|
-
},
|
|
150
|
-
required: ["items", "page"]
|
|
151
|
-
};
|
|
208
|
+
const page = pageSchema(row, cursor);
|
|
152
209
|
const tools = [];
|
|
153
210
|
const add = (operation, description, inputSchema, outputSchema) => {
|
|
154
211
|
tools.push({
|
|
@@ -165,7 +222,7 @@ function tableTools(resource, defs) {
|
|
|
165
222
|
};
|
|
166
223
|
for (const operation of resource.operations) switch (operation) {
|
|
167
224
|
case "list": {
|
|
168
|
-
const { $schema: _, ...listSchema } = resource.list?.jsonSchema ??
|
|
225
|
+
const { $schema: _, ...listSchema } = resource.list?.jsonSchema ?? pageInputSchema(cursor, resource.maxPageSize);
|
|
169
226
|
add("list", `List ${table} rows visible to the caller, one page at a time.`, listSchema, page);
|
|
170
227
|
break;
|
|
171
228
|
}
|
|
@@ -250,12 +307,14 @@ function createMcp(betterSupabase, options) {
|
|
|
250
307
|
})["$defs"];
|
|
251
308
|
const registry = /* @__PURE__ */ new Map();
|
|
252
309
|
let allTools;
|
|
310
|
+
const listed = /* @__PURE__ */ new Map();
|
|
253
311
|
/** Bumped on every registration, so cached visible lists built before it miss. */
|
|
254
312
|
let generation = 0;
|
|
255
313
|
const register = (entry) => {
|
|
256
314
|
if (registry.has(entry.info.name)) throw new TypeError(`Duplicate MCP tool "${entry.info.name}"`);
|
|
257
315
|
registry.set(entry.info.name, entry);
|
|
258
316
|
allTools = void 0;
|
|
317
|
+
listed.clear();
|
|
259
318
|
generation++;
|
|
260
319
|
};
|
|
261
320
|
const failure = (error) => textResult(toProblem(error, { expose }), true);
|
|
@@ -274,7 +333,7 @@ function createMcp(betterSupabase, options) {
|
|
|
274
333
|
const key = table;
|
|
275
334
|
const entry = raw;
|
|
276
335
|
const { meta, ...route } = entry === true ? {} : entry;
|
|
277
|
-
const resource = defineResource(betterSupabase, key, route);
|
|
336
|
+
const resource = defineResource(betterSupabase, key, route, options.authorizer);
|
|
278
337
|
for (const { info, operation } of tableTools(resource, defs)) {
|
|
279
338
|
const ref = {
|
|
280
339
|
info,
|
|
@@ -282,6 +341,7 @@ function createMcp(betterSupabase, options) {
|
|
|
282
341
|
};
|
|
283
342
|
register({
|
|
284
343
|
...ref,
|
|
344
|
+
infoFor: toolDialects(info),
|
|
285
345
|
async call(args, ctx) {
|
|
286
346
|
const input = args ?? {};
|
|
287
347
|
const refusal = await refused(ref, input, ctx);
|
|
@@ -305,6 +365,8 @@ function createMcp(betterSupabase, options) {
|
|
|
305
365
|
};
|
|
306
366
|
register({
|
|
307
367
|
...ref,
|
|
368
|
+
...tool.permission === void 0 ? {} : { permission: tool.permission },
|
|
369
|
+
infoFor: toolDialects(tool.info, tool.inputSchemaFor),
|
|
308
370
|
async call(args, ctx) {
|
|
309
371
|
let value = args ?? {};
|
|
310
372
|
if (tool.input) {
|
|
@@ -312,6 +374,8 @@ function createMcp(betterSupabase, options) {
|
|
|
312
374
|
if (!parsed.ok) return failure(parsed.error);
|
|
313
375
|
value = parsed.data;
|
|
314
376
|
}
|
|
377
|
+
const checked = await checkTool(options.authorizer, tool, value, ctx.db);
|
|
378
|
+
if (!checked.ok) return failure(checked.error);
|
|
315
379
|
const refusal = await refused(ref, value, ctx);
|
|
316
380
|
if (refusal) return refusal;
|
|
317
381
|
const outcome = await settle(() => tool.run(value, ctx));
|
|
@@ -321,35 +385,38 @@ function createMcp(betterSupabase, options) {
|
|
|
321
385
|
};
|
|
322
386
|
for (const tool of options.tools ?? []) addTool(tool);
|
|
323
387
|
const listTools = () => allTools ??= [...registry.values()].map((entry) => entry.info);
|
|
388
|
+
const listFor = (target) => {
|
|
389
|
+
let tools = listed.get(target);
|
|
390
|
+
if (!tools) {
|
|
391
|
+
tools = [...registry.values()].map((entry) => entry.infoFor(target));
|
|
392
|
+
listed.set(target, tools);
|
|
393
|
+
}
|
|
394
|
+
return tools;
|
|
395
|
+
};
|
|
324
396
|
/**
|
|
325
397
|
* A user's visible list per token, for as long as clients may cache it
|
|
326
398
|
* (`ttlMs`). `tools/call` still checks `visible` on every call.
|
|
327
399
|
*/
|
|
328
|
-
const visibleLists =
|
|
329
|
-
/** Without a `visible` hook every caller sees the same list, built once. */
|
|
330
|
-
const visibleTools = async (context) => {
|
|
331
|
-
|
|
400
|
+
const visibleLists = boundedTtlCache({ max: VISIBLE_LISTS_MAX });
|
|
401
|
+
/** Without a `visible` hook or permissions every caller sees the same list, built once. */
|
|
402
|
+
const visibleTools = async (context, target) => {
|
|
403
|
+
const all = [...registry.values()];
|
|
404
|
+
const gated = all.some((entry) => entry.permission !== void 0);
|
|
405
|
+
if (!options.visible && !gated) return listFor(target);
|
|
332
406
|
const ctx = context();
|
|
333
407
|
const token = ctx.auth.kind === "user" ? ctx.auth.token : void 0;
|
|
334
|
-
const now = Date.now();
|
|
335
408
|
const cached = token === void 0 ? void 0 : visibleLists.get(token);
|
|
336
|
-
if (cached
|
|
337
|
-
const
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
tools,
|
|
348
|
-
until: now + LIST_TTL_MS,
|
|
349
|
-
generation
|
|
350
|
-
});
|
|
351
|
-
}
|
|
352
|
-
return tools;
|
|
409
|
+
if (cached?.generation === generation) return cached.entries.map((entry) => entry.infoFor(target));
|
|
410
|
+
const [shown, permitted] = await Promise.all([Promise.all(all.map((entry) => isVisible(entry, ctx))), permittedTools(options.authorizer, all.map((entry) => ({
|
|
411
|
+
name: entry.info.name,
|
|
412
|
+
...entry
|
|
413
|
+
})), contextOf(ctx.db))]);
|
|
414
|
+
const entries = all.filter((_, index) => shown[index] && permitted[index]);
|
|
415
|
+
if (token !== void 0) visibleLists.set(token, {
|
|
416
|
+
entries,
|
|
417
|
+
generation
|
|
418
|
+
}, Date.now() + LIST_TTL_MS);
|
|
419
|
+
return entries.map((entry) => entry.infoFor(target));
|
|
353
420
|
};
|
|
354
421
|
const urls = discovery(options, () => server.env.url);
|
|
355
422
|
const { metadataUrl } = urls;
|
|
@@ -427,10 +494,7 @@ function createMcp(betterSupabase, options) {
|
|
|
427
494
|
if (origin && options.allowedOrigins && !options.allowedOrigins.includes(origin)) return rpcError(null, INVALID_REQUEST, "Origin not allowed", 403);
|
|
428
495
|
if (options.allowedHosts && !hostAllowed(urls.host(request), options.allowedHosts)) return rpcError(null, INVALID_REQUEST, "Host not allowed", 403);
|
|
429
496
|
if (request.method === "OPTIONS" && cors) return endpointPreflight(request, options.allowedOrigins);
|
|
430
|
-
if (request.method !== "POST") return
|
|
431
|
-
status: 405,
|
|
432
|
-
headers: { allow: cors ? "POST, OPTIONS" : "POST" }
|
|
433
|
-
});
|
|
497
|
+
if (request.method !== "POST") return methodNotAllowed(cors ? ["POST", "OPTIONS"] : ["POST"]);
|
|
434
498
|
const header = request.headers.get("mcp-protocol-version");
|
|
435
499
|
if (header && !SUPPORTED_VERSIONS.includes(header)) return unsupportedVersion(null, header);
|
|
436
500
|
const ctx = await server.context(request, { cookies: false });
|
|
@@ -486,7 +550,7 @@ function createMcp(betterSupabase, options) {
|
|
|
486
550
|
}
|
|
487
551
|
case "ping": return modern ? notFound() : reply({});
|
|
488
552
|
case "tools/list": return reply({
|
|
489
|
-
tools: await visibleTools(toolContext),
|
|
553
|
+
tools: await visibleTools(toolContext, schemaTargetFor(modern ? MCP_PROTOCOL_VERSION : header ?? "2025-03-26")),
|
|
490
554
|
...modern ? {
|
|
491
555
|
ttlMs: LIST_TTL_MS,
|
|
492
556
|
cacheScope: "private"
|
package/dist/mcp/sdk/index.d.ts
CHANGED
|
@@ -1,8 +1,10 @@
|
|
|
1
|
-
import { a as AnyModels, i as AnyFunctions } from "../../types-
|
|
2
|
-
import { r as AuthState } from "../../resolve-
|
|
3
|
-
import {
|
|
4
|
-
import { i as
|
|
5
|
-
import {
|
|
1
|
+
import { a as AnyModels, i as AnyFunctions } from "../../types-CoE5Zwy4.js";
|
|
2
|
+
import { r as AuthState } from "../../resolve-MxXVWyhd.js";
|
|
3
|
+
import { i as CredentialRef, r as CredentialProvider } from "../../provider-ib9wzUDz.js";
|
|
4
|
+
import { i as SupabaseMcpScope, n as SupabaseMcpModule, r as SupabaseMcpPlatformModule, t as SupabaseMcpFeature } from "../../supabase-mcp-C6tMoEjn.js";
|
|
5
|
+
import { t as BetterSupabase } from "../../define-DmcfoNXB.js";
|
|
6
|
+
import { i as ServerContext$1, s as ServerOptions, t as BetterServer } from "../../server-types-CrAmZ8jv.js";
|
|
7
|
+
import { r as GuardOptions, t as AllowedCaller } from "../../respond-Cw-zanCm.js";
|
|
6
8
|
import { AuthInfo, CallToolResult, Icon, InputRequiredResult, OAuthTokenVerifier, RegisteredTool, ScopeChallengeHandler, ServerContext, StandardSchemaWithJSON, ToolAnnotations } from "@modelcontextprotocol/server";
|
|
7
9
|
//#region src/mcp/sdk/sdk.d.ts
|
|
8
10
|
interface McpAuthOptions extends ServerOptions, Omit<GuardOptions, "scopes"> {
|
|
@@ -102,4 +104,34 @@ export declare function createMcpAuth<M extends AnyModels, D, F extends AnyFunct
|
|
|
102
104
|
*/
|
|
103
105
|
export declare function withBetterSupabaseMcp<S extends ToolRegistrar, M extends AnyModels, F extends AnyFunctions, E, C, P>(server: S, auth: Pick<BetterMcpAuth<M, F, E, C, P>, "contextOf">): BetterMcpServer<S, M, F, E, C, P>;
|
|
104
106
|
//#endregion
|
|
105
|
-
|
|
107
|
+
//#region src/mcp/sdk/supabase.d.ts
|
|
108
|
+
type UserAuth<C, P> = Extract<AuthState<C, P>, {
|
|
109
|
+
kind: "user";
|
|
110
|
+
}>;
|
|
111
|
+
interface SupabaseMcpHandlerOptions<C = unknown, P = unknown> extends SupabaseMcpScope {
|
|
112
|
+
/** Resolves the Management API token, as the app; never the caller's JWT. */
|
|
113
|
+
readonly credentials: CredentialProvider;
|
|
114
|
+
/** The app credential that holds a Management API access token. */
|
|
115
|
+
readonly credentialRef: CredentialRef;
|
|
116
|
+
/**
|
|
117
|
+
* Who may use the server once the bearer token verified. Its tools
|
|
118
|
+
* administer the project, so allow only the people who run it.
|
|
119
|
+
*/
|
|
120
|
+
readonly authorize: (auth: UserAuth<C, P>) => boolean | Promise<boolean>;
|
|
121
|
+
/** The Management API URL; Supabase's when unset. */
|
|
122
|
+
readonly apiUrl?: string;
|
|
123
|
+
}
|
|
124
|
+
/** Loads `@supabase/mcp-server-supabase`; tests pass their own. */
|
|
125
|
+
interface SupabaseMcpLoaders {
|
|
126
|
+
readonly server?: () => Promise<SupabaseMcpModule>;
|
|
127
|
+
readonly platform?: () => Promise<SupabaseMcpPlatformModule>;
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* Serves Supabase's MCP server (`@supabase/mcp-server-supabase`) behind
|
|
131
|
+
* `createMcpAuth`: the bearer check and metadata of `auth.serve`, then
|
|
132
|
+
* `authorize`, then a server built for the request with the Management API
|
|
133
|
+
* token from `credentials`. The server closes when its response ends.
|
|
134
|
+
*/
|
|
135
|
+
export declare function supabaseMcpHandler<M extends AnyModels, F extends AnyFunctions, E, C, P>(auth: Pick<BetterMcpAuth<M, F, E, C, P>, "serve">, options: SupabaseMcpHandlerOptions<C, P>, loaders?: SupabaseMcpLoaders): (request: Request) => Promise<Response>;
|
|
136
|
+
//#endregion
|
|
137
|
+
export type { AllowedCaller, BetterMcpAuth, BetterMcpServer, BetterToolCallback, BetterToolConfig, BetterToolContext, BetterToolExtra, GuardOptions, McpAuthOptions, McpFetchHandler, SupabaseMcpFeature, SupabaseMcpHandlerOptions, SupabaseMcpLoaders, SupabaseMcpModule, SupabaseMcpPlatformModule, SupabaseMcpScope, ToolRegistrar };
|
package/dist/mcp/sdk/index.js
CHANGED
|
@@ -1,10 +1,15 @@
|
|
|
1
|
+
import { n as dbError } from "../../errors-2M6CKMP4.js";
|
|
2
|
+
import { o as problemResponse } from "../../problem-CJvFeGu7.js";
|
|
1
3
|
import { o as delegationOf } from "../../impersonation-DcqaTBHx.js";
|
|
2
|
-
import { c as extendServer, i as resolveToken,
|
|
3
|
-
import { r as guard } from "../../respond-
|
|
4
|
+
import { c as extendServer, i as resolveToken, n as flushEvents, s as createServer } from "../../adapter-CN45ibbV.js";
|
|
5
|
+
import { r as guard } from "../../respond-volM3ByS.js";
|
|
6
|
+
import { t as withExtra } from "../../extra-CGQ2_q3S.js";
|
|
4
7
|
import { a as withCors, i as metadataPreflight, n as endpointPreflight, r as isMetadataRequest, t as discovery } from "../../http-DdYadv-o.js";
|
|
8
|
+
import { n as loadSupabaseMcp, r as loadSupabaseMcpPlatform, t as isRecord } from "../../supabase-mcp-Cpn5A4i-.js";
|
|
5
9
|
import { OAuthError, bearerAuthChallengeResponse, verifyBearerToken } from "@modelcontextprotocol/server";
|
|
6
10
|
//#region src/mcp/sdk/sdk.ts
|
|
7
|
-
|
|
11
|
+
/** Where `serve` keeps the verified `AuthState` in `AuthInfo.extra`. */
|
|
12
|
+
const MCP_AUTH_STATE_KEY = "betterSupabase";
|
|
8
13
|
function claimString(claims, key) {
|
|
9
14
|
const value = claims[key];
|
|
10
15
|
return typeof value === "string" ? value : void 0;
|
|
@@ -47,7 +52,7 @@ function createMcpAuth(betterSupabase, options = {}) {
|
|
|
47
52
|
clientId: claimString(auth.claims, "client_id") ?? claimString(auth.claims, "azp") ?? "",
|
|
48
53
|
scopes: [...delegationOf(auth.claims)?.scopes ?? []],
|
|
49
54
|
...auth.expiresAt === null ? typeof exp === "number" ? { expiresAt: exp } : {} : { expiresAt: auth.expiresAt },
|
|
50
|
-
extra: { [
|
|
55
|
+
extra: { [MCP_AUTH_STATE_KEY]: auth }
|
|
51
56
|
};
|
|
52
57
|
} };
|
|
53
58
|
const anon = {
|
|
@@ -56,7 +61,7 @@ function createMcpAuth(betterSupabase, options = {}) {
|
|
|
56
61
|
};
|
|
57
62
|
const contextOf = async (ctx) => {
|
|
58
63
|
const info = ctx.http?.authInfo;
|
|
59
|
-
const state = info?.extra?.[
|
|
64
|
+
const state = info?.extra?.[MCP_AUTH_STATE_KEY];
|
|
60
65
|
if (isUserState(state, verified)) return server.contextFor(state);
|
|
61
66
|
if (info?.token) {
|
|
62
67
|
const auth = await resolveToken(server, info.token);
|
|
@@ -123,4 +128,81 @@ function withBetterSupabaseMcp(server, auth) {
|
|
|
123
128
|
return server;
|
|
124
129
|
}
|
|
125
130
|
//#endregion
|
|
126
|
-
|
|
131
|
+
//#region src/mcp/sdk/supabase.ts
|
|
132
|
+
function userOf(authInfo) {
|
|
133
|
+
if (!isRecord(authInfo) || !isRecord(authInfo["extra"])) return void 0;
|
|
134
|
+
const state = authInfo["extra"][MCP_AUTH_STATE_KEY];
|
|
135
|
+
return isRecord(state) && state["kind"] === "user" ? state : void 0;
|
|
136
|
+
}
|
|
137
|
+
/** The response, with `done` called once its body is read, cancelled or fails. */
|
|
138
|
+
function onFinish(response, done) {
|
|
139
|
+
const source = response.body;
|
|
140
|
+
if (source === null) {
|
|
141
|
+
done();
|
|
142
|
+
return response;
|
|
143
|
+
}
|
|
144
|
+
const reader = source.getReader();
|
|
145
|
+
const body = new ReadableStream({
|
|
146
|
+
async pull(controller) {
|
|
147
|
+
try {
|
|
148
|
+
const chunk = await reader.read();
|
|
149
|
+
if (chunk.done) {
|
|
150
|
+
controller.close();
|
|
151
|
+
done();
|
|
152
|
+
} else controller.enqueue(chunk.value);
|
|
153
|
+
} catch (error) {
|
|
154
|
+
controller.error(error);
|
|
155
|
+
done();
|
|
156
|
+
}
|
|
157
|
+
},
|
|
158
|
+
cancel(reason) {
|
|
159
|
+
done();
|
|
160
|
+
return reader.cancel(reason);
|
|
161
|
+
}
|
|
162
|
+
});
|
|
163
|
+
return new Response(body, {
|
|
164
|
+
status: response.status,
|
|
165
|
+
statusText: response.statusText,
|
|
166
|
+
headers: response.headers
|
|
167
|
+
});
|
|
168
|
+
}
|
|
169
|
+
/**
|
|
170
|
+
* Serves Supabase's MCP server (`@supabase/mcp-server-supabase`) behind
|
|
171
|
+
* `createMcpAuth`: the bearer check and metadata of `auth.serve`, then
|
|
172
|
+
* `authorize`, then a server built for the request with the Management API
|
|
173
|
+
* token from `credentials`. The server closes when its response ends.
|
|
174
|
+
*/
|
|
175
|
+
function supabaseMcpHandler(auth, options, loaders = {}) {
|
|
176
|
+
const loadServer = loaders.server ?? loadSupabaseMcp;
|
|
177
|
+
const loadPlatform = loaders.platform ?? loadSupabaseMcpPlatform;
|
|
178
|
+
return auth.serve({ async fetch(request, init) {
|
|
179
|
+
const user = userOf(init?.authInfo);
|
|
180
|
+
if (user === void 0 || !await options.authorize(user)) return problemResponse(dbError("forbidden", "Supabase's MCP server is not open to you"));
|
|
181
|
+
const token = await options.credentials.getToken(options.credentialRef, { subject: { type: "app" } });
|
|
182
|
+
if (!token.ok) return problemResponse(token.error);
|
|
183
|
+
const [server, platform] = await Promise.all([loadServer(), loadPlatform()]);
|
|
184
|
+
const handler = server.createSupabaseMcpHandler({
|
|
185
|
+
platform: platform.createSupabaseApiPlatform({
|
|
186
|
+
accessToken: token.data.token,
|
|
187
|
+
...options.apiUrl === void 0 ? {} : { apiUrl: options.apiUrl }
|
|
188
|
+
}),
|
|
189
|
+
readOnly: options.readOnly ?? true,
|
|
190
|
+
...options.projectRef === void 0 ? {} : { projectId: options.projectRef },
|
|
191
|
+
...options.features === void 0 ? {} : { features: [...options.features] }
|
|
192
|
+
});
|
|
193
|
+
let closed = false;
|
|
194
|
+
const close = () => {
|
|
195
|
+
if (closed) return;
|
|
196
|
+
closed = true;
|
|
197
|
+
handler.close().catch(() => {});
|
|
198
|
+
};
|
|
199
|
+
try {
|
|
200
|
+
return onFinish(await handler.fetch(request, init), close);
|
|
201
|
+
} catch (error) {
|
|
202
|
+
close();
|
|
203
|
+
throw error;
|
|
204
|
+
}
|
|
205
|
+
} });
|
|
206
|
+
}
|
|
207
|
+
//#endregion
|
|
208
|
+
export { createMcpAuth, supabaseMcpHandler, withBetterSupabaseMcp };
|
|
@@ -82,7 +82,6 @@ interface AiMessage {
|
|
|
82
82
|
readonly parts: readonly AiMessagePart[];
|
|
83
83
|
readonly metadata?: Readonly<Record<string, unknown>>;
|
|
84
84
|
}
|
|
85
|
-
declare const AI_MESSAGE_PART_TYPES: readonly AiMessagePartType[];
|
|
86
85
|
/**
|
|
87
86
|
* A Standard Schema for `AiMessage`, matching `schemas/ai-message-v1.json`.
|
|
88
87
|
* Pass it to `validate()` or any library that takes a Standard Schema.
|
|
@@ -91,4 +90,4 @@ declare const aiMessageSchema: StandardSchemaV1<unknown, AiMessage>;
|
|
|
91
90
|
/** Whether `value` is a canonical message, without collecting the issues. */
|
|
92
91
|
declare function isAiMessage(value: unknown): value is AiMessage;
|
|
93
92
|
//#endregion
|
|
94
|
-
export {
|
|
93
|
+
export { AiMessagePart as a, AiReasoningPart as c, AiTextPart as d, AiToolApprovalPart as f, isAiMessage as g, aiMessageSchema as h, AiMessage as i, AiSourcePart as l, AiToolResultPart as m, AiDataPart as n, AiMessagePartType as o, AiToolCallPart as p, AiFilePart as r, AiMessageRole as s, AI_MESSAGE_SCHEMA_ID as t, AiStepPart as u };
|