better-supabase 0.5.0 → 0.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +299 -41
- package/dist/access-sql-B0dF-SoF.js +181 -0
- package/dist/actor-CQTlc1Hh.d.ts +43 -0
- package/dist/adapter-Bc1o3zyy.js +1106 -0
- package/dist/agents-CVHGd7It.d.ts +94 -0
- package/dist/ai-cache-CBWs1W0k.js +80 -0
- package/dist/ai-cache-DaDu_G5L.d.ts +64 -0
- package/dist/ai-chat-7amvXjmQ.d.ts +590 -0
- package/dist/ai-chat-B24UI962.js +743 -0
- package/dist/ai-files-CSPNswUY.js +319 -0
- package/dist/ai-sdk/agents/index.d.ts +74 -0
- package/dist/ai-sdk/agents/index.js +159 -0
- package/dist/ai-sdk/batches/index.d.ts +74 -0
- package/dist/ai-sdk/batches/index.js +180 -0
- package/dist/ai-sdk/cache/index.d.ts +38 -0
- package/dist/ai-sdk/cache/index.js +127 -0
- package/dist/ai-sdk/chat/index.d.ts +2 -0
- package/dist/ai-sdk/chat/index.js +246 -0
- package/dist/ai-sdk/embeddings/index.d.ts +3 -0
- package/dist/ai-sdk/embeddings/index.js +2 -0
- package/dist/ai-sdk/files/index.d.ts +61 -0
- package/dist/ai-sdk/files/index.js +111 -0
- package/dist/ai-sdk/index.d.ts +145 -0
- package/dist/ai-sdk/index.js +174 -0
- package/dist/ai-sdk/mcp/index.d.ts +102 -0
- package/dist/ai-sdk/mcp/index.js +362 -0
- package/dist/ai-sdk/memory/index.d.ts +67 -0
- package/dist/ai-sdk/memory/index.js +175 -0
- package/dist/ai-sdk/react/index.d.ts +2 -0
- package/dist/ai-sdk/react/index.js +3 -0
- package/dist/ai-sdk/react/server.d.ts +6 -0
- package/dist/ai-sdk/react/server.js +7 -0
- package/dist/ai-sdk/workflow/index.d.ts +249 -0
- package/dist/ai-sdk/workflow/index.js +575 -0
- package/dist/ai-sdk/workflow/react/index.d.ts +20 -0
- package/dist/ai-sdk/workflow/react/index.js +66 -0
- package/dist/ai-sdk/workflow/react/server.d.ts +10 -0
- package/dist/ai-sdk/workflow/react/server.js +12 -0
- package/dist/ai-tasks-Cd1HMFvB.d.ts +131 -0
- package/dist/announcements-CiyOs-xP.js +107 -0
- package/dist/announcements-ZRGnScWI.d.ts +72 -0
- package/dist/api-keys-rCGtKaZA.d.ts +156 -0
- package/dist/assistant-DwdpDH1q.d.ts +147 -0
- package/dist/astro/index.d.ts +86 -0
- package/dist/astro/index.js +93 -0
- package/dist/attributes-5dYul0u0.js +13 -0
- package/dist/auth-link-BjFPqwLz.d.ts +97 -0
- package/dist/auth-link-DrDX9KOT.js +114 -0
- package/dist/authorization-BFCqamMs.d.ts +172 -0
- package/dist/before-route-CnR0C0Jr.js +30 -0
- package/dist/bind-Bu_ZNa3W.d.ts +62 -0
- package/dist/bind-l4kAvYSv.js +97 -0
- package/dist/block-events-CrT8r7Fe.js +76 -0
- package/dist/block-fields-GFkxl4dP.js +49 -0
- package/dist/block-fields-SJ6fEf3o.d.ts +31 -0
- package/dist/block-helpers-CKtbFcRv.d.ts +37 -0
- package/dist/block-helpers-DWHxHsEQ.js +190 -0
- package/dist/block-hooks-BmjMyXTa.js +114 -0
- package/dist/block-hooks-plbZ0AbJ.d.ts +107 -0
- package/dist/{kit-transport-DJlHQUBU.js → block-transport-BLr-ZgLc.js} +11 -7
- package/dist/block-transport-DvaoPuZ9.d.ts +48 -0
- package/dist/blocks/agents/index.d.ts +3 -0
- package/dist/blocks/agents/index.js +123 -0
- package/dist/blocks/ai-cache/index.d.ts +3 -0
- package/dist/blocks/ai-cache/index.js +3 -0
- package/dist/blocks/ai-chat/index.d.ts +31 -0
- package/dist/blocks/ai-chat/index.js +5 -0
- package/dist/blocks/ai-chat/react/index.d.ts +77 -0
- package/dist/blocks/ai-chat/react/index.js +387 -0
- package/dist/blocks/ai-chat/react/server.d.ts +16 -0
- package/dist/blocks/ai-chat/react/server.js +14 -0
- package/dist/blocks/ai-files/index.d.ts +14 -0
- package/dist/blocks/ai-files/index.js +3 -0
- package/dist/blocks/ai-providers/index.d.ts +7 -0
- package/dist/blocks/ai-providers/index.js +211 -0
- package/dist/blocks/ai-tasks/index.d.ts +3 -0
- package/dist/blocks/ai-tasks/index.js +203 -0
- package/dist/blocks/announcements/index.d.ts +3 -0
- package/dist/blocks/announcements/index.js +3 -0
- package/dist/blocks/announcements/react/index.d.ts +31 -0
- package/dist/blocks/announcements/react/index.js +86 -0
- package/dist/blocks/announcements/react/server.d.ts +6 -0
- package/dist/blocks/announcements/react/server.js +7 -0
- package/dist/blocks/api-keys/index.d.ts +35 -0
- package/dist/blocks/api-keys/index.js +334 -0
- package/dist/blocks/attachments/index.d.ts +210 -0
- package/dist/blocks/attachments/index.js +222 -0
- package/dist/blocks/audit/index.d.ts +366 -0
- package/dist/blocks/audit/index.js +714 -0
- package/dist/blocks/billing/index.d.ts +265 -0
- package/dist/blocks/billing/index.js +400 -0
- package/dist/blocks/comments/index.d.ts +200 -0
- package/dist/blocks/comments/index.js +207 -0
- package/dist/blocks/connectors/index.d.ts +3 -0
- package/dist/blocks/connectors/index.js +164 -0
- package/dist/blocks/data-lifecycle/index.d.ts +251 -0
- package/dist/blocks/data-lifecycle/index.js +353 -0
- package/dist/blocks/entitlements/index.d.ts +14 -0
- package/dist/blocks/entitlements/index.js +25 -0
- package/dist/blocks/flags/index.d.ts +226 -0
- package/dist/blocks/flags/index.js +282 -0
- package/dist/blocks/inbox/index.d.ts +6 -0
- package/dist/blocks/inbox/index.js +499 -0
- package/dist/blocks/inbox/react/index.d.ts +2 -0
- package/dist/blocks/inbox/react/index.js +225 -0
- package/dist/blocks/inbox/react/server.d.ts +10 -0
- package/dist/blocks/inbox/react/server.js +12 -0
- package/dist/blocks/index.d.ts +65 -0
- package/dist/blocks/index.js +77 -0
- package/dist/blocks/jobs/index.d.ts +297 -0
- package/dist/blocks/jobs/index.js +1051 -0
- package/dist/blocks/knowledge/index.d.ts +3 -0
- package/dist/blocks/knowledge/index.js +3 -0
- package/dist/blocks/memory/index.d.ts +8 -0
- package/dist/blocks/memory/index.js +289 -0
- package/dist/blocks/notifications/index.d.ts +297 -0
- package/dist/blocks/notifications/index.js +425 -0
- package/dist/blocks/notifications/react/index.d.ts +44 -0
- package/dist/blocks/notifications/react/index.js +67 -0
- package/dist/blocks/notifications/react/server.d.ts +6 -0
- package/dist/blocks/notifications/react/server.js +7 -0
- package/dist/blocks/onboarding/index.d.ts +3 -0
- package/dist/blocks/onboarding/index.js +64 -0
- package/dist/blocks/onboarding/react/index.d.ts +28 -0
- package/dist/blocks/onboarding/react/index.js +78 -0
- package/dist/blocks/onboarding/react/server.d.ts +7 -0
- package/dist/blocks/onboarding/react/server.js +7 -0
- package/dist/blocks/organizations/index.d.ts +241 -0
- package/dist/blocks/organizations/index.js +400 -0
- package/dist/blocks/outbox/index.d.ts +3 -0
- package/dist/blocks/outbox/index.js +266 -0
- package/dist/blocks/profiles/index.d.ts +40 -0
- package/dist/blocks/profiles/index.js +28 -0
- package/dist/blocks/push/index.d.ts +185 -0
- package/dist/blocks/push/index.js +258 -0
- package/dist/blocks/settings/index.d.ts +89 -0
- package/dist/blocks/settings/index.js +104 -0
- package/dist/blocks/sso/index.d.ts +198 -0
- package/dist/blocks/sso/index.js +1297 -0
- package/dist/blocks/usage/index.d.ts +4 -0
- package/dist/blocks/usage/index.js +233 -0
- package/dist/blocks/waitlist/index.d.ts +117 -0
- package/dist/blocks/waitlist/index.js +132 -0
- package/dist/blocks/webhooks/index.d.ts +304 -0
- package/dist/{webhooks → blocks/webhooks}/index.js +468 -148
- package/dist/blocks/workflow-builder/index.d.ts +21 -0
- package/dist/blocks/workflow-builder/index.js +5 -0
- package/dist/blocks/workflow-builder/react/index.d.ts +47 -0
- package/dist/blocks/workflow-builder/react/index.js +119 -0
- package/dist/blocks/workflow-builder/react/server.d.ts +8 -0
- package/dist/blocks/workflow-builder/react/server.js +11 -0
- package/dist/blocks/workflows/index.d.ts +3 -0
- package/dist/blocks/workflows/index.js +3 -0
- package/dist/blocks/workflows/react/index.d.ts +47 -0
- package/dist/blocks/workflows/react/index.js +137 -0
- package/dist/blocks/workflows/react/server.d.ts +8 -0
- package/dist/blocks/workflows/react/server.js +11 -0
- package/dist/{index-SaTsEfGP.d.ts → bucket-Cl46E3jS.d.ts} +134 -91
- package/dist/{simplify-_0oUKqCd.js → build-BXIzE6Xv.js} +222 -124
- package/dist/{channel-FQW-CnGR.d.ts → channel-_2Mx1Oyu.d.ts} +2 -2
- package/dist/channels-CkgQ_X60.js +114 -0
- package/dist/chat-sdk/index.d.ts +303 -0
- package/dist/chat-sdk/index.js +733 -0
- package/dist/chat-sdk/react/index.d.ts +2 -0
- package/dist/chat-sdk/react/index.js +3 -0
- package/dist/chat-sdk/react/server.d.ts +3 -0
- package/dist/chat-sdk/react/server.js +2 -0
- package/dist/claims-DDBQT6BK.js +61 -0
- package/dist/{claims-BAf6c7is.js → claims-PqzCxaTD.js} +39 -2
- package/dist/cli/bin.js +1 -1
- package/dist/cli/{codemod-DqV7612m.js → codemod-Bl_tQpHn.js} +105 -2
- package/dist/cli/config-B9HkL8nF.js +2 -0
- package/dist/cli/config-DU7EJImt.js +49 -0
- package/dist/cli/config-NiPxAmUF.js +1077 -0
- package/dist/cli/{dist-xn4wlboc.js → dist-DRAVaE6w.js} +111 -1
- package/dist/cli/{doctor-L7Z8mYTx.js → doctor-B4JOm_ox.js} +992 -316
- package/dist/cli/{env-DmKv_G4A.js → env-CJLbUVPB.js} +1 -1
- package/dist/cli/{env-jIFUADLY.js → env-qXgyMV6r.js} +2 -2
- package/dist/cli/fresh-import-BeYf9I3x.js +40 -0
- package/dist/cli/gen-BGLb_zou.js +3100 -0
- package/dist/cli/gen-DAH8FM2W.js +2 -0
- package/dist/cli/index.d.ts +44 -5
- package/dist/cli/index.js +7 -7
- package/dist/cli/{init-Saf5-R9T.js → init-BIIwclPg.js} +242 -27
- package/dist/cli/{introspect--H7oGmcd.js → introspect-DNUTuNvb.js} +5 -5
- package/dist/cli/{io-k41_z-jT.js → io-DI1mTdSA.js} +12 -3
- package/dist/cli/{keys-ByKHnvP9.js → keys-BGCnnb-s.js} +8 -6
- package/dist/cli/{ohash-D7bG_EOb.js → ohash-BjQY1cBb.js} +1 -1
- package/dist/cli/{openapi-Cp5Fyta-.js → openapi-BlRJ18s3.js} +2 -2
- package/dist/cli/{project-B_GeXyHh.js → project-DZRaBaY7.js} +11 -6
- package/dist/cli/read-sets-CETOSFx4.js +223 -0
- package/dist/cli/{run-BKR2W_79.js → run-DNWxHynX.js} +33 -23
- package/dist/cli/{seed-CUlqWh-8.js → seed-DQzqT7LP.js} +8 -6
- package/dist/cli/{skills-LJJIhLFR.js → skills-QQs4q68J.js} +3 -2
- package/dist/cli/sql-D0GUtUPp.js +536 -0
- package/dist/cli/{config-CPVpXP5I.js → supabase-toml-B-bIukQF.js} +72 -942
- package/dist/cli/typegen-version-DeFbtzYI.js +8 -0
- package/dist/cli/{version-BDJuO0UR.js → version-hr88OZG0.js} +1 -1
- package/dist/client/index.d.ts +3 -2
- package/dist/client/index.js +11 -71
- package/dist/client/native/index.d.ts +228 -0
- package/dist/client/native/index.js +361 -0
- package/dist/client-CI0Z2zWX.js +277 -0
- package/dist/cloud-event-BnmD5fb9.js +46 -0
- package/dist/cloud-event-C1JCc1bH.d.ts +50 -0
- package/dist/{compiler-BXH_aZ7N.d.ts → compiler-DY_wkj4R.d.ts} +2 -2
- package/dist/compose-BIBNgAnq.js +53 -0
- package/dist/composite-Bt1YK3Ke.d.ts +146 -0
- package/dist/composite-DhE66P5u.js +130 -0
- package/dist/config/index.d.ts +6 -4
- package/dist/config/index.js +5 -5
- package/dist/{config-T_ejwyd3.d.ts → config-D44Y7PAv.d.ts} +406 -205
- package/dist/{config-DreERlKo.js → config-Dn7F5k9A.js} +62 -14
- package/dist/connector-Dv8kK0MO.d.ts +107 -0
- package/dist/connectors-hkLCwyEz.d.ts +120 -0
- package/dist/context-BCrWe7ow.d.ts +237 -0
- package/dist/credentials/index.d.ts +31 -0
- package/dist/credentials/index.js +168 -0
- package/dist/cron-DVPUg5k3.js +145 -0
- package/dist/csv-CPAzEmB6.js +25 -0
- package/dist/db-exception-CnWcYPxL.js +15 -0
- package/dist/{define-cNKzqwL_.js → define-B-TVjC25.js} +784 -227
- package/dist/{define-Bp_BZa5h.d.ts → define-CJJkkr1-.d.ts} +353 -61
- package/dist/edge/index.d.ts +69 -11
- package/dist/edge/index.js +191 -75
- package/dist/elysia/index.d.ts +59 -0
- package/dist/elysia/index.js +62 -0
- package/dist/embeddings-4ZvFzjsU.js +127 -0
- package/dist/embeddings-C9KGQnXt.d.ts +68 -0
- package/dist/{refresh-BTrQ_ZTp.d.ts → ended-jLfvw8h-.d.ts} +20 -2
- package/dist/{entitlements-DUxU4oHe.d.ts → entitlements-DHrY2UDZ.d.ts} +16 -7
- package/dist/entitlements-DRl6ZJUm.js +24 -0
- package/dist/envelope-DqnYGRw7.js +47 -0
- package/dist/{errors-DtwXa6b8.js → errors-B11Duf73.js} +82 -13
- package/dist/errors-DLjJHPLK.js +44 -0
- package/dist/escape-like-DHfx6jRr.js +7 -0
- package/dist/escape-like-ImTK0ps_.d.ts +15 -0
- package/dist/eve/index.d.ts +220 -0
- package/dist/eve/index.js +504 -0
- package/dist/eve-gT2Fpjut.d.ts +151 -0
- package/dist/events/index.d.ts +4 -3
- package/dist/events/index.js +9 -50
- package/dist/events-DWDhx77e.d.ts +549 -0
- package/dist/executor-Bq28caBo.js +718 -0
- package/dist/executor-C-R4pucm.js +83 -0
- package/dist/executor-CaWigTyR.d.ts +148 -0
- package/dist/executor-D14tGopJ.d.ts +36 -0
- package/dist/{executor-Cghdstwu.d.ts → executor-DbvExCFC.d.ts} +7 -1
- package/dist/{sql-Coh6n4cC.js → executor-De1Of3m3.js} +210 -11
- package/dist/executor-DvsBbNBS.d.ts +261 -0
- package/dist/expo/index.d.ts +79 -0
- package/dist/expo/index.js +129 -0
- package/dist/expo-sqlite/index.d.ts +58 -0
- package/dist/expo-sqlite/index.js +104 -0
- package/dist/field-errors-BFOa7WhB.d.ts +99 -0
- package/dist/field-errors-VF1yb8yI.js +13 -0
- package/dist/framework-CONDyPYx.js +51 -0
- package/dist/framework-DuVb4Xa8.d.ts +25 -0
- package/dist/gateway-C1ssRHnf.d.ts +130 -0
- package/dist/graph-BGyLLFLX.js +265 -0
- package/dist/h3/index.d.ts +59 -0
- package/dist/h3/index.js +55 -0
- package/dist/h3/v1/index.d.ts +63 -0
- package/dist/h3/v1/index.js +49 -0
- package/dist/history-BZih6SFP.js +64 -0
- package/dist/hono/index.d.ts +56 -7
- package/dist/hono/index.js +97 -45
- package/dist/{react-C_s7kiNz.js → hooks-1BTCJsiw.js} +104 -133
- package/dist/http-Cv4T29xh.js +40 -0
- package/dist/http-DdYadv-o.js +126 -0
- package/dist/image-url-pIVlO6R1.js +41 -0
- package/dist/impersonation-DcqaTBHx.js +148 -0
- package/dist/inbox-i7E1ppo6.d.ts +384 -0
- package/dist/index-ACiNPN4Z.d.ts +74 -0
- package/dist/{index-DgILJRXj.d.ts → index-Bepi-Hgg.d.ts} +91 -28
- package/dist/index-BkWT_uBO.d.ts +51 -0
- package/dist/index-BpFYMsi0.d.ts +53 -0
- package/dist/{index-C7f8cOBM.d.ts → index-Bxih3l0u.d.ts} +2 -2
- package/dist/index-CaxrMD1A.d.ts +1 -0
- package/dist/index-ClmjK_o-.d.ts +55 -0
- package/dist/index-CtuakVRc.d.ts +267 -0
- package/dist/index-D48jVS-N.d.ts +246 -0
- package/dist/index-DDrYaUcq.d.ts +138 -0
- package/dist/index-DQh4VCc9.d.ts +98 -0
- package/dist/{live-D9W2M5aO.d.ts → index-DunNRdnT.d.ts} +136 -38
- package/dist/index.d.ts +65 -18
- package/dist/index.js +42 -14
- package/dist/invalidate-BBqhpxyB.d.ts +19 -0
- package/dist/json-CEnpTHlZ.js +16 -0
- package/dist/json-schema-CvER4kgT.js +502 -0
- package/dist/keys-4MnkWTTh.js +35 -0
- package/dist/kit-B5tid-q5.d.ts +60 -0
- package/dist/kit-Fm-Fv7q5.js +78 -0
- package/dist/knowledge-BXBbT0Tr.d.ts +176 -0
- package/dist/knowledge-CDmiMLew.js +255 -0
- package/dist/lint/index.d.ts +1 -1
- package/dist/lint/index.js +37 -0
- package/dist/list/index.d.ts +3 -2
- package/dist/list/index.js +1 -444
- package/dist/{index-fag8VJZ2.d.ts → list-query-BRt-zDF7.d.ts} +20 -12
- package/dist/list-query-gl808ac1.js +459 -0
- package/dist/{live-CdJBOc4f.js → live-CTAZQkwl.js} +99 -14
- package/dist/logger-DWVYUmwi.d.ts +18 -0
- package/dist/mcp/index.d.ts +38 -11
- package/dist/mcp/index.js +82 -46
- package/dist/mcp/sdk/index.d.ts +105 -0
- package/dist/mcp/sdk/index.js +126 -0
- package/dist/message-CaKlqdsX.js +219 -0
- package/dist/message-CfDoR0Y6.d.ts +94 -0
- package/dist/messages-B9-5887d.js +715 -0
- package/dist/messages-DYP0sUTe.d.ts +59 -0
- package/dist/{mfa-CusDgPaD.d.ts → mfa-Daak8ukG.d.ts} +8 -2
- package/dist/modules-DpPwzC7E.d.ts +192 -0
- package/dist/modules-dxrVK3ID.js +228 -0
- package/dist/nestjs/index.d.ts +68 -0
- package/dist/nestjs/index.js +164 -0
- package/dist/next/client/index.d.ts +35 -0
- package/dist/next/client/index.js +36 -0
- package/dist/next/image/index.js +3 -24
- package/dist/next/index.d.ts +150 -51
- package/dist/next/index.js +261 -107
- package/dist/node/index.d.ts +4 -0
- package/dist/node/index.js +210 -0
- package/dist/node-headers-AO06VhqH.d.ts +24 -0
- package/dist/node-headers-C71zNQHe.js +55 -0
- package/dist/nuxt/index.d.ts +60 -0
- package/dist/nuxt/index.js +64 -0
- package/dist/onboarding-BZGHYJks.d.ts +62 -0
- package/dist/openapi/index.d.ts +1 -1
- package/dist/openapi/index.js +3 -3
- package/dist/orpc/index.d.ts +70 -11
- package/dist/orpc/index.js +73 -24
- package/dist/otel/index.d.ts +7 -7
- package/dist/otel/index.js +87 -57
- package/dist/outbox-Cq7pPYvl.d.ts +161 -0
- package/dist/{plugin-o144f322.d.ts → plugin-FGY8UhYm.d.ts} +30 -10
- package/dist/plugin-tfXW1-qO.js +45 -0
- package/dist/plugins/actor/index.d.ts +2 -2
- package/dist/plugins/actor/index.js +3 -3
- package/dist/plugins/rules/index.d.ts +11 -4
- package/dist/plugins/rules/index.js +40 -13
- package/dist/plugins/soft-delete/index.d.ts +5 -4
- package/dist/plugins/soft-delete/index.js +10 -5
- package/dist/plugins/tenant/index.d.ts +2 -2
- package/dist/plugins/tenant/index.js +18 -11
- package/dist/plugins/timestamps/index.d.ts +5 -3
- package/dist/plugins/timestamps/index.js +6 -4
- package/dist/plugins/validation/index.d.ts +2 -2
- package/dist/plugins/validation/index.js +10 -6
- package/dist/{pool-C9voM4Kw.d.ts → pool-CAu2nLrL.d.ts} +2 -2
- package/dist/postgres/index.d.ts +4 -4
- package/dist/postgres/index.js +1 -2
- package/dist/{postgrest-CruYKAvV.d.ts → postgrest-BLVdEnfe.d.ts} +13 -3
- package/dist/powersync/index.d.ts +43 -0
- package/dist/powersync/index.js +199 -0
- package/dist/powersync/react/index.d.ts +87 -0
- package/dist/powersync/react/index.js +108 -0
- package/dist/{problem-BW1KhzSG.js → problem-BreOl8b8.js} +14 -3
- package/dist/{problem-Blxe8S31.d.ts → problem-DD8LZFjc.d.ts} +21 -3
- package/dist/provider-BH5UWZJ6.d.ts +113 -0
- package/dist/provider-Di3sRutW.js +57 -0
- package/dist/query/index.d.ts +4 -2
- package/dist/query/index.js +4 -3
- package/dist/{query-CCbo44lG.js → query-BQ-NaZon.js} +141 -24
- package/dist/{queue-BYUCjr59.d.ts → queue-CLJurhdy.d.ts} +258 -83
- package/dist/react/index.d.ts +11 -7
- package/dist/react/index.js +7 -3
- package/dist/react/native/index.d.ts +116 -0
- package/dist/react/native/index.js +130 -0
- package/dist/react/server.d.ts +28 -10
- package/dist/react/server.js +22 -5
- package/dist/react/session.d.ts +2 -2
- package/dist/react-4ZqkP8da.js +79 -0
- package/dist/react-F80mF4-t.js +409 -0
- package/dist/react-router/index.d.ts +83 -0
- package/dist/react-router/index.js +89 -0
- package/dist/react-topic-seAWjL3_.js +38 -0
- package/dist/{read-set-DQFt1N_Y.js → read-set-DuKWC9Mj.js} +67 -25
- package/dist/realtime/index.d.ts +4 -5
- package/dist/realtime/index.js +144 -82
- package/dist/refusal-CeJWxmkH.js +61 -0
- package/dist/refusal-D1rgbzNq.d.ts +15 -0
- package/dist/replicas-CwrYp5Zj.js +94 -0
- package/dist/{view-Bq64ki8-.js → resolve-D_IcnvFd.js} +239 -289
- package/dist/{resolve-C15TJq77.d.ts → resolve-KW8nCeL6.d.ts} +29 -45
- package/dist/{resource-CRxxwkQq.js → resource-BsvzCMlX.js} +4 -4
- package/dist/{resource-D8iqWMr-.d.ts → resource-D6Uc7Sk7.d.ts} +5 -5
- package/dist/respond-BUgsXNgk.js +91 -0
- package/dist/respond-DoBijysA.d.ts +93 -0
- package/dist/result-D7y2fT87.d.ts +282 -0
- package/dist/{result-BKiliPY7.js → result-DzUbqgdW.js} +27 -2
- package/dist/run-state-CPo-1X2B.d.ts +12 -0
- package/dist/run-state-CgBKzYMW.js +13 -0
- package/dist/search-CUWCRYKL.js +9 -0
- package/dist/server/index.d.ts +143 -21
- package/dist/server/index.js +46 -14
- package/dist/{respond-D2OQl62-.d.ts → server-CeVeeXwz.d.ts} +225 -80
- package/dist/session-ChiXDZdZ.d.ts +72 -0
- package/dist/shared-CBxosKK3.js +75 -0
- package/dist/{shared-D1dRUrAg.js → shared-CxWmcyqB.js} +2 -1
- package/dist/shared-DDSjEGDR.d.ts +11 -0
- package/dist/sign-in-BCV5S2WZ.d.ts +49 -0
- package/dist/sign-in-Cb1mwv6X.js +86 -0
- package/dist/{signers-Cc6r98SW.d.ts → signers-4y62_VIi.d.ts} +13 -9
- package/dist/simplify-DDO0j0LI.js +83 -0
- package/dist/solid/index.d.ts +131 -0
- package/dist/solid/index.js +344 -0
- package/dist/solid-start/index.d.ts +75 -0
- package/dist/solid-start/index.js +58 -0
- package/dist/{spec-pins-C3oc-Tdp.js → spec-pins--j6mTok4.js} +8 -1
- package/dist/{spec-pins-CqorWDnO.d.ts → spec-pins-C89s6DyW.d.ts} +7 -0
- package/dist/sql/index.d.ts +330 -194
- package/dist/sql/index.js +34901 -6489
- package/dist/ssr/index.d.ts +6 -5
- package/dist/ssr/index.js +3 -3
- package/dist/{standard-D7r6dMUu.js → standard-BK0cqJ7y.js} +4 -3
- package/dist/{standard-J4YgMOLm.d.ts → standard-CYsm7xpT.d.ts} +1 -1
- package/dist/stats-D_AD9GGu.js +1123 -0
- package/dist/storage/index.d.ts +5 -5
- package/dist/storage/index.js +1027 -368
- package/dist/store-BdH5ruDx.js +66 -0
- package/dist/store-CGjgWu5n.d.ts +68 -0
- package/dist/streams/index.d.ts +76 -0
- package/dist/streams/index.js +77 -0
- package/dist/streams/redis/index.d.ts +52 -0
- package/dist/streams/redis/index.js +185 -0
- package/dist/stripe-BMj5LtsT.js +38 -0
- package/dist/stripe-D04h-QBT.d.ts +136 -0
- package/dist/{support-Dk6vdmEw.js → support-BivNqSpK.js} +35 -12
- package/dist/{support-view-Da5peKFg.d.ts → support-view-33Oi07TT.d.ts} +1 -1
- package/dist/svelte/index.d.ts +114 -0
- package/dist/svelte/index.js +344 -0
- package/dist/sveltekit/index.d.ts +116 -0
- package/dist/sveltekit/index.js +106 -0
- package/dist/tags-B99_U9Pp.js +39 -0
- package/dist/tags-Cx-LnIQP.d.ts +30 -0
- package/dist/tanstack-db/index.d.ts +71 -0
- package/dist/tanstack-db/index.js +72 -0
- package/dist/tanstack-start/index.d.ts +75 -0
- package/dist/tanstack-start/index.js +95 -0
- package/dist/tee-CoEppCER.js +101 -0
- package/dist/{template-TxrGI5jR.js → template--jDkl3UP.js} +34 -13
- package/dist/template-CwO38Do8.d.ts +6 -0
- package/dist/temporal-BJGitm-h.js +79 -0
- package/dist/{temporal-required-CAt4Dc9Z.js → temporal-required-BVvW7SYJ.js} +3 -2
- package/dist/tenant-I1TEZ_BX.js +27 -0
- package/dist/tenant-icPeuUBN.d.ts +17 -0
- package/dist/testing/index.d.ts +343 -37
- package/dist/testing/index.js +1186 -79
- package/dist/timing-CyTQPubY.js +92 -0
- package/dist/ttl-Hr34gRu8.js +12 -0
- package/dist/{types-Dnf_wRDz.d.ts → types-6BdhkmZe.d.ts} +111 -45
- package/dist/types-BI-0Sl2v.d.ts +359 -0
- package/dist/types-C05bxW-W.d.ts +220 -0
- package/dist/types-DGs5L0VN.d.ts +192 -0
- package/dist/types-TaiEeBGA.d.ts +156 -0
- package/dist/usage-CrvrL2vw.d.ts +177 -0
- package/dist/user-change-XzvgafU4.js +130 -0
- package/dist/vault-CSO7ss5C.d.ts +50 -0
- package/dist/vercel-connect/index.d.ts +47 -0
- package/dist/vercel-connect/index.js +119 -0
- package/dist/{verify-Ce49ETPz.js → verify-DL41hbvY.js} +85 -13
- package/dist/verify-DPuWngD4.d.ts +172 -0
- package/dist/{version-DM_Roffb.js → version-Bvv6aLjZ.js} +1 -1
- package/dist/view-BeFcRV6G.js +99 -0
- package/dist/{view-BEf0diC5.d.ts → view-DbxLNu8L.d.ts} +35 -32
- package/dist/vue/index.d.ts +141 -0
- package/dist/vue/index.js +362 -0
- package/dist/watch-DI34G86j.d.ts +60 -0
- package/dist/watch-Xuxrvxq-.js +122 -0
- package/dist/{wire-D2dT86vi.js → wire-DtZQ4sdE.js} +15 -5
- package/dist/workflow-builder-DJ1oHn8g.js +398 -0
- package/dist/workflow-sdk/builder/index.d.ts +85 -0
- package/dist/workflow-sdk/builder/index.js +250 -0
- package/dist/workflow-sdk/index.d.ts +14 -0
- package/dist/workflow-sdk/index.js +3 -0
- package/dist/workflow-sdk/world/index.d.ts +107 -0
- package/dist/workflow-sdk/world/index.js +702 -0
- package/dist/workflow-sdk-B3yLD6Br.d.ts +98 -0
- package/dist/workflow-sdk-C2WJ_G2O.js +173 -0
- package/dist/workflow-sdk-world-D-prir6O.js +1397 -0
- package/dist/workflows-B0j9WKPu.d.ts +185 -0
- package/dist/workflows-wu1WWBn7.js +216 -0
- package/package.json +470 -29
- package/schemas/ai-message-v1.json +258 -0
- package/schemas/config-v1.json +1074 -140
- package/schemas/doctor-report-v1.json +21 -1
- package/schemas/snapshot-v2.json +8 -0
- package/skills/better-supabase/SKILL.md +41 -12
- package/skills/better-supabase/references/frontend.md +96 -0
- package/skills/better-supabase/references/plugins.md +10 -6
- package/skills/better-supabase/references/troubleshooting.md +2 -1
- package/skills/better-supabase-api/SKILL.md +76 -22
- package/skills/better-supabase-api/references/adapters.md +207 -0
- package/skills/better-supabase-api/references/ai.md +125 -0
- package/skills/better-supabase-api/references/expo.md +65 -0
- package/skills/better-supabase-api/references/powersync.md +35 -0
- package/skills/better-supabase-api/references/streams-credentials.md +105 -0
- package/skills/better-supabase-auth/SKILL.md +62 -18
- package/skills/better-supabase-auth/references/authorization-providers.md +51 -0
- package/skills/better-supabase-testing/SKILL.md +3 -1
- package/dist/cli/config-dtoekM0v.js +0 -2
- package/dist/cli/gen-BJc9vdyu.js +0 -2
- package/dist/cli/gen-C2osRcr5.js +0 -2204
- package/dist/cli/read-sets-BfMQcKy8.js +0 -289
- package/dist/cli/sql-DzPbfngx.js +0 -348
- package/dist/entitlements-CTEBm7IB.js +0 -20
- package/dist/events-aIO7vsIk.d.ts +0 -230
- package/dist/executor-BunPOO-k.d.ts +0 -402
- package/dist/executor-XycESQPH.js +0 -94
- package/dist/impersonation-VfaGc4Q_.js +0 -41
- package/dist/index-BGdgBPdf.d.ts +0 -161
- package/dist/index-DOESKG27.d.ts +0 -100
- package/dist/index-DmXSxbLi.d.ts +0 -62
- package/dist/index-Dxn2a5cw.d.ts +0 -50
- package/dist/jobs/index.d.ts +0 -226
- package/dist/jobs/index.js +0 -1007
- package/dist/json-schema-m1fiwKgN.js +0 -208
- package/dist/kit-events-CTFDfSwb.js +0 -60
- package/dist/kit-transport-B82k1djG.d.ts +0 -33
- package/dist/kits-CGLLrNPd.js +0 -157
- package/dist/notifications/index.d.ts +0 -162
- package/dist/notifications/index.js +0 -264
- package/dist/orgs/index.d.ts +0 -132
- package/dist/orgs/index.js +0 -245
- package/dist/permdock-sql-C2Inc6Xc.d.ts +0 -29
- package/dist/permdock-sql-DgOfeixi.js +0 -51
- package/dist/plugin-DwARMuQp.js +0 -59
- package/dist/server-Csx2sRjg.js +0 -655
- package/dist/stats-Bqob3WqT.js +0 -592
- package/dist/support-DT-OhSxD.d.ts +0 -88
- package/dist/template-mbvlysOo.d.ts +0 -6
- package/dist/temporal-CVlIV2DZ.js +0 -40
- package/dist/user-change-CHFEUro1.js +0 -49
- package/dist/webhooks/index.d.ts +0 -285
- package/skills/better-supabase-auth/references/permdock.md +0 -100
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
/// <reference lib="esnext.temporal" />
|
|
2
|
+
import { t as AsyncResult, w as ErrorMapper } from "./result-D7y2fT87.js";
|
|
3
|
+
import { t as BlockTransport } from "./block-transport-DvaoPuZ9.js";
|
|
4
|
+
import { r as BlockTemporalOptions } from "./block-helpers-CKtbFcRv.js";
|
|
5
|
+
import { m as JobHandler } from "./queue-CLJurhdy.js";
|
|
6
|
+
import { r as RunState } from "./run-state-CPo-1X2B.js";
|
|
7
|
+
//#region src/blocks/ai-tasks/ai-tasks.d.ts
|
|
8
|
+
/** A task run's state, in the words ai-chat and workflow runs share. */
|
|
9
|
+
type AiTaskRunStatus = Extract<RunState, "queued" | "running" | "completed" | "failed">;
|
|
10
|
+
interface AiTaskRun {
|
|
11
|
+
readonly id: string;
|
|
12
|
+
readonly taskId: string;
|
|
13
|
+
readonly organizationId: string;
|
|
14
|
+
readonly userId: string;
|
|
15
|
+
readonly status: AiTaskRunStatus;
|
|
16
|
+
readonly scheduledFor: Temporal.Instant;
|
|
17
|
+
readonly chatId: string | undefined;
|
|
18
|
+
readonly error: string | undefined;
|
|
19
|
+
readonly startedAt: Temporal.Instant | undefined;
|
|
20
|
+
readonly finishedAt: Temporal.Instant | undefined;
|
|
21
|
+
readonly createdAt: Temporal.Instant;
|
|
22
|
+
}
|
|
23
|
+
interface AiTask {
|
|
24
|
+
readonly id: string;
|
|
25
|
+
readonly organizationId: string;
|
|
26
|
+
readonly userId: string;
|
|
27
|
+
/** The chat each run writes to; the first run's chat when unset. */
|
|
28
|
+
readonly chatId: string | undefined;
|
|
29
|
+
readonly agentId: string | undefined;
|
|
30
|
+
readonly title: string;
|
|
31
|
+
readonly prompt: string;
|
|
32
|
+
/** Five-field cron or an interval such as `30 minutes`. */
|
|
33
|
+
readonly cron: string;
|
|
34
|
+
/** An IANA time zone the cron runs in. */
|
|
35
|
+
readonly timezone: string;
|
|
36
|
+
readonly enabled: boolean;
|
|
37
|
+
readonly nextRunAt: Temporal.Instant | undefined;
|
|
38
|
+
readonly lastRunAt: Temporal.Instant | undefined;
|
|
39
|
+
/** Only `list` sets it. */
|
|
40
|
+
readonly lastRun: AiTaskRun | undefined;
|
|
41
|
+
readonly createdAt: Temporal.Instant;
|
|
42
|
+
readonly updatedAt: Temporal.Instant;
|
|
43
|
+
}
|
|
44
|
+
interface AiTaskFields {
|
|
45
|
+
readonly title?: string;
|
|
46
|
+
readonly prompt?: string;
|
|
47
|
+
readonly cron?: string;
|
|
48
|
+
readonly timezone?: string;
|
|
49
|
+
readonly chatId?: string | null;
|
|
50
|
+
readonly agentId?: string | null;
|
|
51
|
+
}
|
|
52
|
+
type NewAiTask = AiTaskFields & {
|
|
53
|
+
readonly title: string;
|
|
54
|
+
readonly prompt: string;
|
|
55
|
+
readonly cron: string;
|
|
56
|
+
};
|
|
57
|
+
/**
|
|
58
|
+
* Runs one occurrence of a task, as the task's user: sends the prompt to the
|
|
59
|
+
* assistant and returns the chat it wrote to. A throw fails the run.
|
|
60
|
+
*/
|
|
61
|
+
type AiTaskRunner = ((task: AiTask, run: AiTaskRun, signal: AbortSignal) => Promise<{
|
|
62
|
+
readonly chatId?: string;
|
|
63
|
+
} | void>) & {
|
|
64
|
+
/** The runner contract version. Omitted means 1. */
|
|
65
|
+
readonly apiVersion?: 1;
|
|
66
|
+
};
|
|
67
|
+
interface AiTaskOutcome {
|
|
68
|
+
readonly task: AiTask;
|
|
69
|
+
readonly run: AiTaskRun;
|
|
70
|
+
readonly ok: boolean;
|
|
71
|
+
readonly error?: string;
|
|
72
|
+
readonly chatId?: string;
|
|
73
|
+
}
|
|
74
|
+
interface AiTasksOptions extends BlockTemporalOptions {
|
|
75
|
+
/** Calls as the user: `rpcTransport(supabase)`. */
|
|
76
|
+
readonly transport: BlockTransport;
|
|
77
|
+
/** Calls as the service role, for `tick`, `execute` and `runJob`. */
|
|
78
|
+
readonly service?: BlockTransport;
|
|
79
|
+
/** The module schema (`sql.modules.ai-tasks.schema`), default `better_supabase`. */
|
|
80
|
+
readonly schema?: string;
|
|
81
|
+
readonly mappers?: readonly ErrorMapper[];
|
|
82
|
+
readonly run?: AiTaskRunner;
|
|
83
|
+
/** Called after each run finishes, to notify the task's user. */
|
|
84
|
+
readonly notify?: (outcome: AiTaskOutcome) => unknown;
|
|
85
|
+
/** The clock, for tests. */
|
|
86
|
+
readonly now?: () => Temporal.Instant;
|
|
87
|
+
}
|
|
88
|
+
interface AiTasks {
|
|
89
|
+
create(organizationId: string, task: NewAiTask): AsyncResult<AiTask>;
|
|
90
|
+
update(organizationId: string, taskId: string, fields: AiTaskFields): AsyncResult<AiTask>;
|
|
91
|
+
pause(organizationId: string, taskId: string): AsyncResult<AiTask>;
|
|
92
|
+
/** Enables a task again; it runs at its next occurrence. */
|
|
93
|
+
resume(organizationId: string, taskId: string): AsyncResult<AiTask>;
|
|
94
|
+
remove(taskId: string): AsyncResult<boolean>;
|
|
95
|
+
/** The caller's tasks, or every task in the tenant with `all` and `ai.admin`. */
|
|
96
|
+
list(organizationId: string, options?: {
|
|
97
|
+
readonly all?: boolean;
|
|
98
|
+
}): AsyncResult<readonly AiTask[]>;
|
|
99
|
+
runs(taskId: string, options?: {
|
|
100
|
+
readonly limit?: number;
|
|
101
|
+
}): AsyncResult<readonly AiTaskRun[]>;
|
|
102
|
+
/**
|
|
103
|
+
* Claims due tasks (service role): queues a run for each, which the
|
|
104
|
+
* `ai_task_run` queue picks up when jobs is installed, and computes the
|
|
105
|
+
* next occurrence of every task that needs one. Returns the queued runs.
|
|
106
|
+
*/
|
|
107
|
+
tick(options?: {
|
|
108
|
+
readonly batch?: number;
|
|
109
|
+
}): AsyncResult<readonly AiTaskRun[]>;
|
|
110
|
+
/** Starts, runs and finishes a queued run (service role). `false` when another worker has it. */
|
|
111
|
+
execute(runId: string, options?: {
|
|
112
|
+
readonly signal?: AbortSignal;
|
|
113
|
+
}): AsyncResult<boolean>;
|
|
114
|
+
/** The handler for the `ai_task_run` queue. */
|
|
115
|
+
runJob(): JobHandler<{
|
|
116
|
+
readonly run_id: string;
|
|
117
|
+
}>;
|
|
118
|
+
/**
|
|
119
|
+
* `tick` then `execute` each run in turn, without a queue. Returns how many
|
|
120
|
+
* ran. A failed run does not stop the others; when any failed, the result
|
|
121
|
+
* is the first error, with every failed run listed in `details`.
|
|
122
|
+
*/
|
|
123
|
+
drain(options?: {
|
|
124
|
+
readonly batch?: number;
|
|
125
|
+
readonly signal?: AbortSignal;
|
|
126
|
+
}): AsyncResult<number>;
|
|
127
|
+
}
|
|
128
|
+
/** Prompts users schedule on a cron, and the scheduler that runs them. */
|
|
129
|
+
declare function createAiTasks(options: AiTasksOptions): AiTasks;
|
|
130
|
+
//#endregion
|
|
131
|
+
export { AiTaskRunStatus as a, AiTasksOptions as c, AiTaskRun as i, NewAiTask as l, AiTaskFields as n, AiTaskRunner as o, AiTaskOutcome as r, AiTasks as s, AiTask as t, createAiTasks as u };
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
import { D as stringsOf, O as textOf, h as optionalText, i as blockCall, k as toInstant, m as optionalInstant, n as applyTemporal, u as instantArg, x as recordsOf, y as recordOf } from "./block-helpers-DWHxHsEQ.js";
|
|
2
|
+
//#region src/blocks/announcements/announcements.ts
|
|
3
|
+
const SEVERITIES = /* @__PURE__ */ new Set([
|
|
4
|
+
"info",
|
|
5
|
+
"success",
|
|
6
|
+
"warning",
|
|
7
|
+
"critical"
|
|
8
|
+
]);
|
|
9
|
+
function severityOf(value) {
|
|
10
|
+
const text = textOf(value);
|
|
11
|
+
return SEVERITIES.has(text) ? text : "info";
|
|
12
|
+
}
|
|
13
|
+
function announcementOf(value) {
|
|
14
|
+
const row = recordOf(value, "announcements");
|
|
15
|
+
return {
|
|
16
|
+
id: textOf(row["id"]),
|
|
17
|
+
title: textOf(row["title"]),
|
|
18
|
+
body: textOf(row["body"] ?? ""),
|
|
19
|
+
severity: severityOf(row["severity"]),
|
|
20
|
+
href: optionalText(row["href"]),
|
|
21
|
+
startsAt: toInstant(textOf(row["starts_at"])),
|
|
22
|
+
endsAt: optionalInstant(row["ends_at"]),
|
|
23
|
+
dismissible: row["dismissible"] !== false,
|
|
24
|
+
createdAt: toInstant(textOf(row["created_at"])),
|
|
25
|
+
updatedAt: toInstant(textOf(row["updated_at"]))
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
function audienceOf(type, targets) {
|
|
29
|
+
const values = stringsOf(targets);
|
|
30
|
+
switch (type) {
|
|
31
|
+
case "tenant": return {
|
|
32
|
+
type,
|
|
33
|
+
organizationIds: values
|
|
34
|
+
};
|
|
35
|
+
case "role": return {
|
|
36
|
+
type,
|
|
37
|
+
roles: values
|
|
38
|
+
};
|
|
39
|
+
case "plan": return {
|
|
40
|
+
type,
|
|
41
|
+
plans: values
|
|
42
|
+
};
|
|
43
|
+
default: return { type: "all" };
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
function managedOf(value) {
|
|
47
|
+
const row = recordOf(value, "announcements");
|
|
48
|
+
return {
|
|
49
|
+
...announcementOf(row),
|
|
50
|
+
audience: audienceOf(row["audience"], row["targets"]),
|
|
51
|
+
createdBy: optionalText(row["created_by"])
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
function audienceFields(audience) {
|
|
55
|
+
switch (audience.type) {
|
|
56
|
+
case "all": return {
|
|
57
|
+
audience: "all",
|
|
58
|
+
targets: []
|
|
59
|
+
};
|
|
60
|
+
case "tenant": return {
|
|
61
|
+
audience: "tenant",
|
|
62
|
+
targets: audience.organizationIds
|
|
63
|
+
};
|
|
64
|
+
case "role": return {
|
|
65
|
+
audience: "role",
|
|
66
|
+
targets: audience.roles
|
|
67
|
+
};
|
|
68
|
+
case "plan": return {
|
|
69
|
+
audience: "plan",
|
|
70
|
+
targets: audience.plans
|
|
71
|
+
};
|
|
72
|
+
default: throw new TypeError(`Unknown audience ${JSON.stringify(audience)}`);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
/** The columns `save_announcement` sets, from the fields the input names. */
|
|
76
|
+
function fieldsOf(input) {
|
|
77
|
+
const fields = {};
|
|
78
|
+
if (input.title !== void 0) fields["title"] = input.title;
|
|
79
|
+
if (input.body !== void 0) fields["body"] = input.body;
|
|
80
|
+
if (input.severity !== void 0) fields["severity"] = input.severity;
|
|
81
|
+
if (input.href !== void 0) fields["href"] = input.href;
|
|
82
|
+
if (input.audience !== void 0) Object.assign(fields, audienceFields(input.audience));
|
|
83
|
+
if (input.startsAt !== void 0) fields["starts_at"] = instantArg(input.startsAt);
|
|
84
|
+
if (input.endsAt !== void 0) fields["ends_at"] = instantArg(input.endsAt);
|
|
85
|
+
if (input.dismissible !== void 0) fields["dismissible"] = input.dismissible;
|
|
86
|
+
return fields;
|
|
87
|
+
}
|
|
88
|
+
function createAnnouncements(options) {
|
|
89
|
+
applyTemporal(options);
|
|
90
|
+
const call = blockCall(options.transport, options.schema, options.mappers);
|
|
91
|
+
return {
|
|
92
|
+
listActive: (organizationId) => call("active_announcements", { tenant: organizationId ?? null }, (value) => recordsOf(value, "active_announcements").map(announcementOf)),
|
|
93
|
+
dismiss: (announcementId) => call("dismiss_announcement", { id: announcementId }, (value) => value === true),
|
|
94
|
+
list: () => call("list_announcements", {}, (value) => recordsOf(value, "list_announcements").map(managedOf)),
|
|
95
|
+
publish: (input) => call("save_announcement", {
|
|
96
|
+
id: null,
|
|
97
|
+
fields: fieldsOf(input)
|
|
98
|
+
}, managedOf),
|
|
99
|
+
update: (announcementId, input) => call("save_announcement", {
|
|
100
|
+
id: announcementId,
|
|
101
|
+
fields: fieldsOf(input)
|
|
102
|
+
}, managedOf),
|
|
103
|
+
remove: (announcementId) => call("delete_announcement", { id: announcementId }, (value) => value === true)
|
|
104
|
+
};
|
|
105
|
+
}
|
|
106
|
+
//#endregion
|
|
107
|
+
export { createAnnouncements as t };
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
/// <reference lib="esnext.temporal" />
|
|
2
|
+
import { t as AsyncResult, w as ErrorMapper } from "./result-D7y2fT87.js";
|
|
3
|
+
import { t as BlockTransport } from "./block-transport-DvaoPuZ9.js";
|
|
4
|
+
import { r as BlockTemporalOptions } from "./block-helpers-CKtbFcRv.js";
|
|
5
|
+
//#region src/blocks/announcements/announcements.d.ts
|
|
6
|
+
type AnnouncementSeverity = "info" | "success" | "warning" | "critical";
|
|
7
|
+
/**
|
|
8
|
+
* Who sees it: everyone, members of some tenants, members with some roles,
|
|
9
|
+
* or tenants on some plans (entitlement lookup keys, with the entitlements
|
|
10
|
+
* module).
|
|
11
|
+
*/
|
|
12
|
+
type AnnouncementAudience = {
|
|
13
|
+
readonly type: "all";
|
|
14
|
+
} | {
|
|
15
|
+
readonly type: "tenant";
|
|
16
|
+
readonly organizationIds: readonly string[];
|
|
17
|
+
} | {
|
|
18
|
+
readonly type: "role";
|
|
19
|
+
readonly roles: readonly string[];
|
|
20
|
+
} | {
|
|
21
|
+
readonly type: "plan";
|
|
22
|
+
readonly plans: readonly string[];
|
|
23
|
+
};
|
|
24
|
+
interface Announcement {
|
|
25
|
+
readonly id: string;
|
|
26
|
+
readonly title: string;
|
|
27
|
+
readonly body: string;
|
|
28
|
+
readonly severity: AnnouncementSeverity;
|
|
29
|
+
readonly href: string | undefined;
|
|
30
|
+
readonly startsAt: Temporal.Instant;
|
|
31
|
+
readonly endsAt: Temporal.Instant | undefined;
|
|
32
|
+
readonly dismissible: boolean;
|
|
33
|
+
readonly createdAt: Temporal.Instant;
|
|
34
|
+
readonly updatedAt: Temporal.Instant;
|
|
35
|
+
}
|
|
36
|
+
/** An announcement as staff see it, with its audience. */
|
|
37
|
+
interface ManagedAnnouncement extends Announcement {
|
|
38
|
+
readonly audience: AnnouncementAudience;
|
|
39
|
+
readonly createdBy: string | undefined;
|
|
40
|
+
}
|
|
41
|
+
interface AnnouncementInput {
|
|
42
|
+
readonly title: string;
|
|
43
|
+
/** Plain text or Markdown; the app renders it. */
|
|
44
|
+
readonly body?: string;
|
|
45
|
+
readonly severity?: AnnouncementSeverity;
|
|
46
|
+
/** A link for "Learn more": `https://` or a path. */
|
|
47
|
+
readonly href?: string | null;
|
|
48
|
+
readonly audience?: AnnouncementAudience;
|
|
49
|
+
readonly startsAt?: Temporal.Instant;
|
|
50
|
+
readonly endsAt?: Temporal.Instant | null;
|
|
51
|
+
readonly dismissible?: boolean;
|
|
52
|
+
}
|
|
53
|
+
interface AnnouncementsOptions extends BlockTemporalOptions {
|
|
54
|
+
readonly transport: BlockTransport;
|
|
55
|
+
/** The module schema (`sql.modules.announcements.schema`), default `better_supabase`. */
|
|
56
|
+
readonly schema?: string;
|
|
57
|
+
readonly mappers?: readonly ErrorMapper[];
|
|
58
|
+
}
|
|
59
|
+
interface Announcements {
|
|
60
|
+
/** The caller's live, undismissed announcements; pass the active tenant for tenant, role and plan audiences. */
|
|
61
|
+
listActive(organizationId?: string | null): AsyncResult<readonly Announcement[]>;
|
|
62
|
+
/** Hides one for the caller; `false` when it was hidden already. */
|
|
63
|
+
dismiss(announcementId: string): AsyncResult<boolean>;
|
|
64
|
+
/** Every announcement; needs `announcements.manage` on the platform. */
|
|
65
|
+
list(): AsyncResult<readonly ManagedAnnouncement[]>;
|
|
66
|
+
publish(input: AnnouncementInput): AsyncResult<ManagedAnnouncement>;
|
|
67
|
+
update(announcementId: string, input: Partial<AnnouncementInput>): AsyncResult<ManagedAnnouncement>;
|
|
68
|
+
remove(announcementId: string): AsyncResult<boolean>;
|
|
69
|
+
}
|
|
70
|
+
declare function createAnnouncements(options: AnnouncementsOptions): Announcements;
|
|
71
|
+
//#endregion
|
|
72
|
+
export { Announcements as a, createAnnouncements as c, AnnouncementSeverity as i, AnnouncementAudience as n, AnnouncementsOptions as o, AnnouncementInput as r, ManagedAnnouncement as s, Announcement as t };
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
/// <reference lib="esnext.temporal" />
|
|
2
|
+
import { t as AsyncResult } from "./result-D7y2fT87.js";
|
|
3
|
+
import { t as BlockTransport } from "./block-transport-DvaoPuZ9.js";
|
|
4
|
+
import { n as AuthResolver } from "./resolve-KW8nCeL6.js";
|
|
5
|
+
import { r as BlockTemporalOptions } from "./block-helpers-CKtbFcRv.js";
|
|
6
|
+
import { JWTClaims } from "@supabase/server";
|
|
7
|
+
//#region src/blocks/api-keys/api-keys.d.ts
|
|
8
|
+
type ApiKeyState = "active" | "grace" | "revoked" | "expired";
|
|
9
|
+
interface ApiKey {
|
|
10
|
+
readonly id: string;
|
|
11
|
+
/** Set for a tenant key, and for a personal key limited to one tenant. */
|
|
12
|
+
readonly organizationId?: string;
|
|
13
|
+
/** Set for a personal key: it acts as this user. */
|
|
14
|
+
readonly userId?: string;
|
|
15
|
+
readonly name: string;
|
|
16
|
+
readonly prefix: string;
|
|
17
|
+
readonly publicId: string;
|
|
18
|
+
readonly scopes: readonly string[];
|
|
19
|
+
/** Requests per minute, when the key has a limit. */
|
|
20
|
+
readonly rateLimit?: number;
|
|
21
|
+
readonly expiresAt?: Temporal.Instant;
|
|
22
|
+
readonly lastUsedAt?: Temporal.Instant;
|
|
23
|
+
/** In the future while a rotated key's grace period runs. */
|
|
24
|
+
readonly revokedAt?: Temporal.Instant;
|
|
25
|
+
readonly rotatedFrom?: string;
|
|
26
|
+
readonly createdBy?: string;
|
|
27
|
+
readonly createdAt: Temporal.Instant;
|
|
28
|
+
readonly state: ApiKeyState;
|
|
29
|
+
readonly successorId?: string;
|
|
30
|
+
}
|
|
31
|
+
/** A new key. `token` is shown once: only its hash is stored. */
|
|
32
|
+
interface CreatedApiKey {
|
|
33
|
+
readonly key: ApiKey;
|
|
34
|
+
readonly token: string;
|
|
35
|
+
}
|
|
36
|
+
interface CreateApiKeyInput {
|
|
37
|
+
readonly name: string;
|
|
38
|
+
/** The tenant the key acts in. Required unless `personal`. */
|
|
39
|
+
readonly organizationId?: string;
|
|
40
|
+
/** Acts as the signed-in user (in `organizationId` only, when set). */
|
|
41
|
+
readonly personal?: boolean;
|
|
42
|
+
/** `*` grants every scope. */
|
|
43
|
+
readonly scopes?: readonly string[];
|
|
44
|
+
readonly expiresAt?: Temporal.Instant;
|
|
45
|
+
/** Requests per minute. */
|
|
46
|
+
readonly rateLimit?: number;
|
|
47
|
+
}
|
|
48
|
+
type ApiKeyCheck = {
|
|
49
|
+
readonly status: "ok";
|
|
50
|
+
readonly key: ApiKey;
|
|
51
|
+
} | {
|
|
52
|
+
readonly status: "invalid";
|
|
53
|
+
} | {
|
|
54
|
+
readonly status: "rate_limited";
|
|
55
|
+
readonly retryAfter: number;
|
|
56
|
+
};
|
|
57
|
+
interface ApiKeys {
|
|
58
|
+
create(input: CreateApiKeyInput): AsyncResult<CreatedApiKey>;
|
|
59
|
+
/** A tenant's keys for its managers (the caller's own otherwise), or the caller's personal keys. */
|
|
60
|
+
list(organizationId?: string): AsyncResult<readonly ApiKey[]>;
|
|
61
|
+
revoke(id: string): AsyncResult<boolean>;
|
|
62
|
+
/** A new token for the key; the old one keeps working for `grace` (one day by default). */
|
|
63
|
+
rotate(id: string, options?: {
|
|
64
|
+
readonly grace?: Temporal.Duration;
|
|
65
|
+
}): AsyncResult<CreatedApiKey>;
|
|
66
|
+
/** Checks a presented token and counts the request. Needs a service transport. */
|
|
67
|
+
verify(token: string): AsyncResult<ApiKeyCheck>;
|
|
68
|
+
}
|
|
69
|
+
interface ApiKeysOptions extends BlockTemporalOptions {
|
|
70
|
+
readonly transport: BlockTransport;
|
|
71
|
+
readonly schema?: string;
|
|
72
|
+
/** The token's first segment, lowercase letters and digits. Defaults to `bs`. */
|
|
73
|
+
readonly prefix?: string;
|
|
74
|
+
}
|
|
75
|
+
interface ParsedApiKey {
|
|
76
|
+
readonly prefix: string;
|
|
77
|
+
readonly publicId: string;
|
|
78
|
+
readonly secret: string;
|
|
79
|
+
/** Whether the token ends in a checksum; keys created before it have none. */
|
|
80
|
+
readonly checksum: boolean;
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* The CRC-32 (IEEE 802.3) of `text` as 6 base62 characters: the checksum
|
|
84
|
+
* GitHub-style tokens end in, so a secret
|
|
85
|
+
* scanner or the server rejects a mistyped key without a lookup.
|
|
86
|
+
*/
|
|
87
|
+
declare function apiKeyChecksum(text: string): string;
|
|
88
|
+
/**
|
|
89
|
+
* Splits `<prefix>_<public id>_<secret><checksum>`: a 43-character base62
|
|
90
|
+
* secret and the 6-character checksum of everything before it. A key from
|
|
91
|
+
* before the checksum (`<prefix>_<public id>_<secret>`) still parses. A
|
|
92
|
+
* checksum that doesn't match, or anything else (a JWT, say), is
|
|
93
|
+
* `undefined`.
|
|
94
|
+
*/
|
|
95
|
+
declare function parseApiKey(token: string): ParsedApiKey | undefined;
|
|
96
|
+
/**
|
|
97
|
+
* API keys over the `api-keys` SQL module. Members create and rotate keys
|
|
98
|
+
* with their own transport; `verify` (and `apiKeyResolver`) need one that
|
|
99
|
+
* runs as the service role.
|
|
100
|
+
*/
|
|
101
|
+
declare function createApiKeys(options: ApiKeysOptions): ApiKeys;
|
|
102
|
+
/**
|
|
103
|
+
* A second claim for an authorization provider's SQL functions, with the
|
|
104
|
+
* field names they read. Every field but `name` is optional.
|
|
105
|
+
*/
|
|
106
|
+
interface ApiKeyExtraClaim {
|
|
107
|
+
/** The claim. `api_key` adds the fields to the module's own claim. */
|
|
108
|
+
readonly name: string;
|
|
109
|
+
/** The field with the permission keys, default `scopes`. */
|
|
110
|
+
readonly scopes?: string;
|
|
111
|
+
/** The field with a tenant key's tenant, default `tenant`. */
|
|
112
|
+
readonly tenant?: string;
|
|
113
|
+
/** The field with a tenant key's roles, default `roles`. */
|
|
114
|
+
readonly roles?: string;
|
|
115
|
+
/** The roles a tenant key holds in its tenant, unless `serviceRoles` in the options answers. */
|
|
116
|
+
readonly serviceRoles?: readonly string[];
|
|
117
|
+
}
|
|
118
|
+
interface ApiKeyClaimsOptions {
|
|
119
|
+
/**
|
|
120
|
+
* Also write the claim an authorization provider's SQL functions read:
|
|
121
|
+
* the scopes as a ceiling, and a tenant key's tenant and roles.
|
|
122
|
+
*/
|
|
123
|
+
readonly claim?: ApiKeyExtraClaim;
|
|
124
|
+
/** The roles a tenant key holds in its tenant; default `claim.serviceRoles`. */
|
|
125
|
+
readonly serviceRoles?: (key: ApiKey) => readonly string[];
|
|
126
|
+
/**
|
|
127
|
+
* The permission keys `*` stands for in `claim`, which has no wildcard,
|
|
128
|
+
* so without this a key with `*` allows nothing there.
|
|
129
|
+
*/
|
|
130
|
+
readonly allPermissions?: readonly string[];
|
|
131
|
+
/**
|
|
132
|
+
* The claim that narrows a provider's functions to one tenant (such as
|
|
133
|
+
* `tenant_id`), set for a personal key limited to a tenant.
|
|
134
|
+
*/
|
|
135
|
+
readonly tenantClaim?: string;
|
|
136
|
+
}
|
|
137
|
+
interface ApiKeyResolverOptions extends ApiKeyClaimsOptions {
|
|
138
|
+
/** `createApiKeys` over a service transport. */
|
|
139
|
+
readonly keys: Pick<ApiKeys, "verify">;
|
|
140
|
+
/** The header that carries the key besides `Authorization: Bearer`. Defaults to `x-api-key`. */
|
|
141
|
+
readonly header?: string;
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* The claims queries run with for a key: `api_key` with `id`, `name`,
|
|
145
|
+
* `scopes` and `organization_id` for the module's `has_scope()` and
|
|
146
|
+
* `api_key_tenant()`, plus `options.claim`.
|
|
147
|
+
*/
|
|
148
|
+
declare function apiKeyClaims(key: ApiKey, options?: ApiKeyClaimsOptions): JWTClaims;
|
|
149
|
+
/**
|
|
150
|
+
* Resolves `x-api-key` (or a Bearer token shaped like a key) to an `apiKey`
|
|
151
|
+
* auth state. Requests without one fall through to the JWT and cookie
|
|
152
|
+
* resolution. Pass it to `createServer({ auth: { resolvers: [...] } })`.
|
|
153
|
+
*/
|
|
154
|
+
declare function apiKeyResolver(options: ApiKeyResolverOptions): AuthResolver;
|
|
155
|
+
//#endregion
|
|
156
|
+
export { ApiKeyResolverOptions as a, ApiKeysOptions as c, ParsedApiKey as d, apiKeyChecksum as f, parseApiKey as g, createApiKeys as h, ApiKeyExtraClaim as i, CreateApiKeyInput as l, apiKeyResolver as m, ApiKeyCheck as n, ApiKeyState as o, apiKeyClaims as p, ApiKeyClaimsOptions as r, ApiKeys as s, ApiKey as t, CreatedApiKey as u };
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
import { b as DbError } from "./result-D7y2fT87.js";
|
|
2
|
+
import { a as AiMessage } from "./message-CfDoR0Y6.js";
|
|
3
|
+
import { E as AiRunStatus, F as AiUserMessageTrigger, _ as AiModerationAction, i as AiChat, u as AiChatRecord } from "./ai-chat-7amvXjmQ.js";
|
|
4
|
+
import { o as StreamStore } from "./store-CGjgWu5n.js";
|
|
5
|
+
import { c as GatewayOptions, i as CostBackfillPayload, t as AiUsage } from "./gateway-C1ssRHnf.js";
|
|
6
|
+
import { LanguageModelUsage, ModelMessage, UIMessage, UIMessageChunk, UIMessageStreamOnEndCallback } from "ai";
|
|
7
|
+
//#region src/ai-sdk/chat/assistant.d.ts
|
|
8
|
+
/** Who asks, for one request. */
|
|
9
|
+
interface AssistantContext {
|
|
10
|
+
/**
|
|
11
|
+
* The chat block for this request: the user's transport, and a service
|
|
12
|
+
* transport (`service`) for the writes only the server makes.
|
|
13
|
+
*/
|
|
14
|
+
readonly chats: AiChat;
|
|
15
|
+
readonly userId: string;
|
|
16
|
+
readonly organizationId: string;
|
|
17
|
+
/**
|
|
18
|
+
* Keeps the function alive until the answer is stored, after the response
|
|
19
|
+
* is sent: `after` in Next.js, `ctx.waitUntil` on Workers and Vercel.
|
|
20
|
+
*/
|
|
21
|
+
readonly waitUntil?: (promise: Promise<unknown>) => void;
|
|
22
|
+
}
|
|
23
|
+
/** What `run` gets to generate one answer. */
|
|
24
|
+
interface AssistantRunArgs {
|
|
25
|
+
readonly chat: AiChatRecord;
|
|
26
|
+
/** The model the request may use, after the catalog check. */
|
|
27
|
+
readonly model: string;
|
|
28
|
+
readonly messages: ModelMessage[];
|
|
29
|
+
/** The history the model sees, as UI messages. */
|
|
30
|
+
readonly uiMessages: UIMessage[];
|
|
31
|
+
/** Aborted by `stop()`; pass it to `streamText` or `agent.stream`. */
|
|
32
|
+
readonly abortSignal: AbortSignal;
|
|
33
|
+
/** Spend attribution for the AI Gateway (`gatewayOptions`). */
|
|
34
|
+
readonly providerOptions: {
|
|
35
|
+
readonly gateway: GatewayOptions;
|
|
36
|
+
};
|
|
37
|
+
readonly context: AssistantContext;
|
|
38
|
+
}
|
|
39
|
+
/** The part of a `streamText` or `agent.stream` result the assistant reads. */
|
|
40
|
+
interface AssistantRunResult {
|
|
41
|
+
toUIMessageStream(options: {
|
|
42
|
+
originalMessages: UIMessage[];
|
|
43
|
+
generateMessageId: () => string;
|
|
44
|
+
onEnd: UIMessageStreamOnEndCallback<UIMessage>;
|
|
45
|
+
onError?: (error: unknown) => string;
|
|
46
|
+
}): ReadableStream<UIMessageChunk>;
|
|
47
|
+
readonly totalUsage?: PromiseLike<LanguageModelUsage>;
|
|
48
|
+
readonly providerMetadata?: PromiseLike<unknown>;
|
|
49
|
+
}
|
|
50
|
+
/** The verdict of a moderation hook. */
|
|
51
|
+
interface AssistantModeration {
|
|
52
|
+
readonly action: AiModerationAction;
|
|
53
|
+
readonly category: string;
|
|
54
|
+
readonly score?: number;
|
|
55
|
+
}
|
|
56
|
+
/** What `onFinish` gets once the answer is stored. */
|
|
57
|
+
interface AssistantFinish {
|
|
58
|
+
readonly chat: AiChatRecord;
|
|
59
|
+
readonly message: UIMessage;
|
|
60
|
+
readonly status: AiRunStatus;
|
|
61
|
+
readonly model: string;
|
|
62
|
+
readonly usage: AiUsage | undefined;
|
|
63
|
+
readonly context: AssistantContext;
|
|
64
|
+
}
|
|
65
|
+
interface AssistantOptions {
|
|
66
|
+
/** Where the answer's stream is kept, so a reload resumes it. */
|
|
67
|
+
readonly streams: StreamStore;
|
|
68
|
+
/** Starts the generation: `agent.stream(...)` or `streamText(...)`. */
|
|
69
|
+
readonly run: (args: AssistantRunArgs) => AssistantRunResult | PromiseLike<AssistantRunResult>;
|
|
70
|
+
/** The model when neither the request nor the chat names an allowed one. */
|
|
71
|
+
readonly defaultModel: string;
|
|
72
|
+
/**
|
|
73
|
+
* The quota check before a generation (`usageQuota(usage, meter)`); an
|
|
74
|
+
* error answers 429.
|
|
75
|
+
*/
|
|
76
|
+
readonly quota?: (organizationId: string) => Promise<DbError | undefined>;
|
|
77
|
+
/** Checks the user's message; `block` answers 403, others are recorded. */
|
|
78
|
+
readonly moderate?: (input: {
|
|
79
|
+
readonly message: AiMessage;
|
|
80
|
+
readonly chat: AiChatRecord;
|
|
81
|
+
}) => Promise<AssistantModeration | undefined>;
|
|
82
|
+
/** Called with the cost backfill payload when the gateway hasn't reported a cost yet. */
|
|
83
|
+
readonly enqueueCostBackfill?: (payload: CostBackfillPayload) => Promise<unknown>;
|
|
84
|
+
/** Called after the answer is stored, such as to record usage. */
|
|
85
|
+
readonly onFinish?: (finish: AssistantFinish) => void | Promise<void>;
|
|
86
|
+
/** What the stream is kept for: seconds or a Postgres interval. Defaults to one day. */
|
|
87
|
+
readonly streamTtl?: number | string;
|
|
88
|
+
/** The `feature` tag of the gateway options. Defaults to `chat`. */
|
|
89
|
+
readonly feature?: string;
|
|
90
|
+
/** Turns a stream error into the message the client sees. */
|
|
91
|
+
readonly onError?: (error: unknown) => string;
|
|
92
|
+
/** Makes message and stream ids. Defaults to `crypto.randomUUID()`. */
|
|
93
|
+
readonly generateId?: () => string;
|
|
94
|
+
}
|
|
95
|
+
/** The body `useAssistant` sends. */
|
|
96
|
+
interface AssistantRequestBody {
|
|
97
|
+
/** The chat id; the client may make it, and the chat is created on first use. */
|
|
98
|
+
readonly id: string;
|
|
99
|
+
readonly message: UIMessage;
|
|
100
|
+
readonly trigger?: AiUserMessageTrigger;
|
|
101
|
+
/** For `regenerate-message`, the answer to write again. */
|
|
102
|
+
readonly messageId?: string;
|
|
103
|
+
readonly model?: string;
|
|
104
|
+
}
|
|
105
|
+
/** A checked and stored user turn, ready for a model: what `prepare` returns. */
|
|
106
|
+
interface AssistantTurn {
|
|
107
|
+
readonly chat: AiChatRecord;
|
|
108
|
+
/** The model the request may use, after the catalog check. */
|
|
109
|
+
readonly model: string;
|
|
110
|
+
/** The stored user message, which the answer is saved under. */
|
|
111
|
+
readonly parentId: string;
|
|
112
|
+
/** The history the model sees, as UI messages. */
|
|
113
|
+
readonly uiMessages: UIMessage[];
|
|
114
|
+
readonly messages: ModelMessage[];
|
|
115
|
+
/** Spend attribution for the AI Gateway (`gatewayOptions`). */
|
|
116
|
+
readonly providerOptions: {
|
|
117
|
+
readonly gateway: GatewayOptions;
|
|
118
|
+
};
|
|
119
|
+
}
|
|
120
|
+
interface Assistant {
|
|
121
|
+
/** Stores the user's message, starts the answer and streams it (SSE). */
|
|
122
|
+
respond(request: Request, context: AssistantContext): Promise<Response>;
|
|
123
|
+
/**
|
|
124
|
+
* The checks and writes before a generation, without one: parses the
|
|
125
|
+
* body `useAssistant` sends, creates the chat on first use, picks the
|
|
126
|
+
* model, moderates, checks the quota, stores the user's message and loads
|
|
127
|
+
* the history. Returns a problem response when one of them fails.
|
|
128
|
+
*/
|
|
129
|
+
prepare(body: unknown, context: AssistantContext): Promise<AssistantTurn | Response>;
|
|
130
|
+
/** The running answer of `chatId` from the start, or 204 when none runs. */
|
|
131
|
+
resume(chatId: string, context: AssistantContext, options?: {
|
|
132
|
+
readonly fromIdx?: number;
|
|
133
|
+
readonly signal?: AbortSignal;
|
|
134
|
+
}): Promise<Response>;
|
|
135
|
+
/** Asks the running answer to stop: 204 whether or not one runs, a problem when the user may not. */
|
|
136
|
+
stop(chatId: string, context: AssistantContext): Promise<Response>;
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* A chat route for the AI SDK on the `ai-chat` block: `respond` stores the
|
|
140
|
+
* user's message, picks an allowed model, checks the quota, claims the
|
|
141
|
+
* chat's answer, runs the model and streams it while keeping a copy in the
|
|
142
|
+
* stream store; the answer and its usage are stored when it ends, even
|
|
143
|
+
* after the client left. `resume` replays it after a reload, `stop` ends it.
|
|
144
|
+
*/
|
|
145
|
+
declare function createAssistant(options: AssistantOptions): Assistant;
|
|
146
|
+
//#endregion
|
|
147
|
+
export { AssistantOptions as a, AssistantRunResult as c, AssistantModeration as i, AssistantTurn as l, AssistantContext as n, AssistantRequestBody as o, AssistantFinish as r, AssistantRunArgs as s, Assistant as t, createAssistant as u };
|