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.
Files changed (536) hide show
  1. package/README.md +299 -41
  2. package/dist/access-sql-B0dF-SoF.js +181 -0
  3. package/dist/actor-CQTlc1Hh.d.ts +43 -0
  4. package/dist/adapter-Bc1o3zyy.js +1106 -0
  5. package/dist/agents-CVHGd7It.d.ts +94 -0
  6. package/dist/ai-cache-CBWs1W0k.js +80 -0
  7. package/dist/ai-cache-DaDu_G5L.d.ts +64 -0
  8. package/dist/ai-chat-7amvXjmQ.d.ts +590 -0
  9. package/dist/ai-chat-B24UI962.js +743 -0
  10. package/dist/ai-files-CSPNswUY.js +319 -0
  11. package/dist/ai-sdk/agents/index.d.ts +74 -0
  12. package/dist/ai-sdk/agents/index.js +159 -0
  13. package/dist/ai-sdk/batches/index.d.ts +74 -0
  14. package/dist/ai-sdk/batches/index.js +180 -0
  15. package/dist/ai-sdk/cache/index.d.ts +38 -0
  16. package/dist/ai-sdk/cache/index.js +127 -0
  17. package/dist/ai-sdk/chat/index.d.ts +2 -0
  18. package/dist/ai-sdk/chat/index.js +246 -0
  19. package/dist/ai-sdk/embeddings/index.d.ts +3 -0
  20. package/dist/ai-sdk/embeddings/index.js +2 -0
  21. package/dist/ai-sdk/files/index.d.ts +61 -0
  22. package/dist/ai-sdk/files/index.js +111 -0
  23. package/dist/ai-sdk/index.d.ts +145 -0
  24. package/dist/ai-sdk/index.js +174 -0
  25. package/dist/ai-sdk/mcp/index.d.ts +102 -0
  26. package/dist/ai-sdk/mcp/index.js +362 -0
  27. package/dist/ai-sdk/memory/index.d.ts +67 -0
  28. package/dist/ai-sdk/memory/index.js +175 -0
  29. package/dist/ai-sdk/react/index.d.ts +2 -0
  30. package/dist/ai-sdk/react/index.js +3 -0
  31. package/dist/ai-sdk/react/server.d.ts +6 -0
  32. package/dist/ai-sdk/react/server.js +7 -0
  33. package/dist/ai-sdk/workflow/index.d.ts +249 -0
  34. package/dist/ai-sdk/workflow/index.js +575 -0
  35. package/dist/ai-sdk/workflow/react/index.d.ts +20 -0
  36. package/dist/ai-sdk/workflow/react/index.js +66 -0
  37. package/dist/ai-sdk/workflow/react/server.d.ts +10 -0
  38. package/dist/ai-sdk/workflow/react/server.js +12 -0
  39. package/dist/ai-tasks-Cd1HMFvB.d.ts +131 -0
  40. package/dist/announcements-CiyOs-xP.js +107 -0
  41. package/dist/announcements-ZRGnScWI.d.ts +72 -0
  42. package/dist/api-keys-rCGtKaZA.d.ts +156 -0
  43. package/dist/assistant-DwdpDH1q.d.ts +147 -0
  44. package/dist/astro/index.d.ts +86 -0
  45. package/dist/astro/index.js +93 -0
  46. package/dist/attributes-5dYul0u0.js +13 -0
  47. package/dist/auth-link-BjFPqwLz.d.ts +97 -0
  48. package/dist/auth-link-DrDX9KOT.js +114 -0
  49. package/dist/authorization-BFCqamMs.d.ts +172 -0
  50. package/dist/before-route-CnR0C0Jr.js +30 -0
  51. package/dist/bind-Bu_ZNa3W.d.ts +62 -0
  52. package/dist/bind-l4kAvYSv.js +97 -0
  53. package/dist/block-events-CrT8r7Fe.js +76 -0
  54. package/dist/block-fields-GFkxl4dP.js +49 -0
  55. package/dist/block-fields-SJ6fEf3o.d.ts +31 -0
  56. package/dist/block-helpers-CKtbFcRv.d.ts +37 -0
  57. package/dist/block-helpers-DWHxHsEQ.js +190 -0
  58. package/dist/block-hooks-BmjMyXTa.js +114 -0
  59. package/dist/block-hooks-plbZ0AbJ.d.ts +107 -0
  60. package/dist/{kit-transport-DJlHQUBU.js → block-transport-BLr-ZgLc.js} +11 -7
  61. package/dist/block-transport-DvaoPuZ9.d.ts +48 -0
  62. package/dist/blocks/agents/index.d.ts +3 -0
  63. package/dist/blocks/agents/index.js +123 -0
  64. package/dist/blocks/ai-cache/index.d.ts +3 -0
  65. package/dist/blocks/ai-cache/index.js +3 -0
  66. package/dist/blocks/ai-chat/index.d.ts +31 -0
  67. package/dist/blocks/ai-chat/index.js +5 -0
  68. package/dist/blocks/ai-chat/react/index.d.ts +77 -0
  69. package/dist/blocks/ai-chat/react/index.js +387 -0
  70. package/dist/blocks/ai-chat/react/server.d.ts +16 -0
  71. package/dist/blocks/ai-chat/react/server.js +14 -0
  72. package/dist/blocks/ai-files/index.d.ts +14 -0
  73. package/dist/blocks/ai-files/index.js +3 -0
  74. package/dist/blocks/ai-providers/index.d.ts +7 -0
  75. package/dist/blocks/ai-providers/index.js +211 -0
  76. package/dist/blocks/ai-tasks/index.d.ts +3 -0
  77. package/dist/blocks/ai-tasks/index.js +203 -0
  78. package/dist/blocks/announcements/index.d.ts +3 -0
  79. package/dist/blocks/announcements/index.js +3 -0
  80. package/dist/blocks/announcements/react/index.d.ts +31 -0
  81. package/dist/blocks/announcements/react/index.js +86 -0
  82. package/dist/blocks/announcements/react/server.d.ts +6 -0
  83. package/dist/blocks/announcements/react/server.js +7 -0
  84. package/dist/blocks/api-keys/index.d.ts +35 -0
  85. package/dist/blocks/api-keys/index.js +334 -0
  86. package/dist/blocks/attachments/index.d.ts +210 -0
  87. package/dist/blocks/attachments/index.js +222 -0
  88. package/dist/blocks/audit/index.d.ts +366 -0
  89. package/dist/blocks/audit/index.js +714 -0
  90. package/dist/blocks/billing/index.d.ts +265 -0
  91. package/dist/blocks/billing/index.js +400 -0
  92. package/dist/blocks/comments/index.d.ts +200 -0
  93. package/dist/blocks/comments/index.js +207 -0
  94. package/dist/blocks/connectors/index.d.ts +3 -0
  95. package/dist/blocks/connectors/index.js +164 -0
  96. package/dist/blocks/data-lifecycle/index.d.ts +251 -0
  97. package/dist/blocks/data-lifecycle/index.js +353 -0
  98. package/dist/blocks/entitlements/index.d.ts +14 -0
  99. package/dist/blocks/entitlements/index.js +25 -0
  100. package/dist/blocks/flags/index.d.ts +226 -0
  101. package/dist/blocks/flags/index.js +282 -0
  102. package/dist/blocks/inbox/index.d.ts +6 -0
  103. package/dist/blocks/inbox/index.js +499 -0
  104. package/dist/blocks/inbox/react/index.d.ts +2 -0
  105. package/dist/blocks/inbox/react/index.js +225 -0
  106. package/dist/blocks/inbox/react/server.d.ts +10 -0
  107. package/dist/blocks/inbox/react/server.js +12 -0
  108. package/dist/blocks/index.d.ts +65 -0
  109. package/dist/blocks/index.js +77 -0
  110. package/dist/blocks/jobs/index.d.ts +297 -0
  111. package/dist/blocks/jobs/index.js +1051 -0
  112. package/dist/blocks/knowledge/index.d.ts +3 -0
  113. package/dist/blocks/knowledge/index.js +3 -0
  114. package/dist/blocks/memory/index.d.ts +8 -0
  115. package/dist/blocks/memory/index.js +289 -0
  116. package/dist/blocks/notifications/index.d.ts +297 -0
  117. package/dist/blocks/notifications/index.js +425 -0
  118. package/dist/blocks/notifications/react/index.d.ts +44 -0
  119. package/dist/blocks/notifications/react/index.js +67 -0
  120. package/dist/blocks/notifications/react/server.d.ts +6 -0
  121. package/dist/blocks/notifications/react/server.js +7 -0
  122. package/dist/blocks/onboarding/index.d.ts +3 -0
  123. package/dist/blocks/onboarding/index.js +64 -0
  124. package/dist/blocks/onboarding/react/index.d.ts +28 -0
  125. package/dist/blocks/onboarding/react/index.js +78 -0
  126. package/dist/blocks/onboarding/react/server.d.ts +7 -0
  127. package/dist/blocks/onboarding/react/server.js +7 -0
  128. package/dist/blocks/organizations/index.d.ts +241 -0
  129. package/dist/blocks/organizations/index.js +400 -0
  130. package/dist/blocks/outbox/index.d.ts +3 -0
  131. package/dist/blocks/outbox/index.js +266 -0
  132. package/dist/blocks/profiles/index.d.ts +40 -0
  133. package/dist/blocks/profiles/index.js +28 -0
  134. package/dist/blocks/push/index.d.ts +185 -0
  135. package/dist/blocks/push/index.js +258 -0
  136. package/dist/blocks/settings/index.d.ts +89 -0
  137. package/dist/blocks/settings/index.js +104 -0
  138. package/dist/blocks/sso/index.d.ts +198 -0
  139. package/dist/blocks/sso/index.js +1297 -0
  140. package/dist/blocks/usage/index.d.ts +4 -0
  141. package/dist/blocks/usage/index.js +233 -0
  142. package/dist/blocks/waitlist/index.d.ts +117 -0
  143. package/dist/blocks/waitlist/index.js +132 -0
  144. package/dist/blocks/webhooks/index.d.ts +304 -0
  145. package/dist/{webhooks → blocks/webhooks}/index.js +468 -148
  146. package/dist/blocks/workflow-builder/index.d.ts +21 -0
  147. package/dist/blocks/workflow-builder/index.js +5 -0
  148. package/dist/blocks/workflow-builder/react/index.d.ts +47 -0
  149. package/dist/blocks/workflow-builder/react/index.js +119 -0
  150. package/dist/blocks/workflow-builder/react/server.d.ts +8 -0
  151. package/dist/blocks/workflow-builder/react/server.js +11 -0
  152. package/dist/blocks/workflows/index.d.ts +3 -0
  153. package/dist/blocks/workflows/index.js +3 -0
  154. package/dist/blocks/workflows/react/index.d.ts +47 -0
  155. package/dist/blocks/workflows/react/index.js +137 -0
  156. package/dist/blocks/workflows/react/server.d.ts +8 -0
  157. package/dist/blocks/workflows/react/server.js +11 -0
  158. package/dist/{index-SaTsEfGP.d.ts → bucket-Cl46E3jS.d.ts} +134 -91
  159. package/dist/{simplify-_0oUKqCd.js → build-BXIzE6Xv.js} +222 -124
  160. package/dist/{channel-FQW-CnGR.d.ts → channel-_2Mx1Oyu.d.ts} +2 -2
  161. package/dist/channels-CkgQ_X60.js +114 -0
  162. package/dist/chat-sdk/index.d.ts +303 -0
  163. package/dist/chat-sdk/index.js +733 -0
  164. package/dist/chat-sdk/react/index.d.ts +2 -0
  165. package/dist/chat-sdk/react/index.js +3 -0
  166. package/dist/chat-sdk/react/server.d.ts +3 -0
  167. package/dist/chat-sdk/react/server.js +2 -0
  168. package/dist/claims-DDBQT6BK.js +61 -0
  169. package/dist/{claims-BAf6c7is.js → claims-PqzCxaTD.js} +39 -2
  170. package/dist/cli/bin.js +1 -1
  171. package/dist/cli/{codemod-DqV7612m.js → codemod-Bl_tQpHn.js} +105 -2
  172. package/dist/cli/config-B9HkL8nF.js +2 -0
  173. package/dist/cli/config-DU7EJImt.js +49 -0
  174. package/dist/cli/config-NiPxAmUF.js +1077 -0
  175. package/dist/cli/{dist-xn4wlboc.js → dist-DRAVaE6w.js} +111 -1
  176. package/dist/cli/{doctor-L7Z8mYTx.js → doctor-B4JOm_ox.js} +992 -316
  177. package/dist/cli/{env-DmKv_G4A.js → env-CJLbUVPB.js} +1 -1
  178. package/dist/cli/{env-jIFUADLY.js → env-qXgyMV6r.js} +2 -2
  179. package/dist/cli/fresh-import-BeYf9I3x.js +40 -0
  180. package/dist/cli/gen-BGLb_zou.js +3100 -0
  181. package/dist/cli/gen-DAH8FM2W.js +2 -0
  182. package/dist/cli/index.d.ts +44 -5
  183. package/dist/cli/index.js +7 -7
  184. package/dist/cli/{init-Saf5-R9T.js → init-BIIwclPg.js} +242 -27
  185. package/dist/cli/{introspect--H7oGmcd.js → introspect-DNUTuNvb.js} +5 -5
  186. package/dist/cli/{io-k41_z-jT.js → io-DI1mTdSA.js} +12 -3
  187. package/dist/cli/{keys-ByKHnvP9.js → keys-BGCnnb-s.js} +8 -6
  188. package/dist/cli/{ohash-D7bG_EOb.js → ohash-BjQY1cBb.js} +1 -1
  189. package/dist/cli/{openapi-Cp5Fyta-.js → openapi-BlRJ18s3.js} +2 -2
  190. package/dist/cli/{project-B_GeXyHh.js → project-DZRaBaY7.js} +11 -6
  191. package/dist/cli/read-sets-CETOSFx4.js +223 -0
  192. package/dist/cli/{run-BKR2W_79.js → run-DNWxHynX.js} +33 -23
  193. package/dist/cli/{seed-CUlqWh-8.js → seed-DQzqT7LP.js} +8 -6
  194. package/dist/cli/{skills-LJJIhLFR.js → skills-QQs4q68J.js} +3 -2
  195. package/dist/cli/sql-D0GUtUPp.js +536 -0
  196. package/dist/cli/{config-CPVpXP5I.js → supabase-toml-B-bIukQF.js} +72 -942
  197. package/dist/cli/typegen-version-DeFbtzYI.js +8 -0
  198. package/dist/cli/{version-BDJuO0UR.js → version-hr88OZG0.js} +1 -1
  199. package/dist/client/index.d.ts +3 -2
  200. package/dist/client/index.js +11 -71
  201. package/dist/client/native/index.d.ts +228 -0
  202. package/dist/client/native/index.js +361 -0
  203. package/dist/client-CI0Z2zWX.js +277 -0
  204. package/dist/cloud-event-BnmD5fb9.js +46 -0
  205. package/dist/cloud-event-C1JCc1bH.d.ts +50 -0
  206. package/dist/{compiler-BXH_aZ7N.d.ts → compiler-DY_wkj4R.d.ts} +2 -2
  207. package/dist/compose-BIBNgAnq.js +53 -0
  208. package/dist/composite-Bt1YK3Ke.d.ts +146 -0
  209. package/dist/composite-DhE66P5u.js +130 -0
  210. package/dist/config/index.d.ts +6 -4
  211. package/dist/config/index.js +5 -5
  212. package/dist/{config-T_ejwyd3.d.ts → config-D44Y7PAv.d.ts} +406 -205
  213. package/dist/{config-DreERlKo.js → config-Dn7F5k9A.js} +62 -14
  214. package/dist/connector-Dv8kK0MO.d.ts +107 -0
  215. package/dist/connectors-hkLCwyEz.d.ts +120 -0
  216. package/dist/context-BCrWe7ow.d.ts +237 -0
  217. package/dist/credentials/index.d.ts +31 -0
  218. package/dist/credentials/index.js +168 -0
  219. package/dist/cron-DVPUg5k3.js +145 -0
  220. package/dist/csv-CPAzEmB6.js +25 -0
  221. package/dist/db-exception-CnWcYPxL.js +15 -0
  222. package/dist/{define-cNKzqwL_.js → define-B-TVjC25.js} +784 -227
  223. package/dist/{define-Bp_BZa5h.d.ts → define-CJJkkr1-.d.ts} +353 -61
  224. package/dist/edge/index.d.ts +69 -11
  225. package/dist/edge/index.js +191 -75
  226. package/dist/elysia/index.d.ts +59 -0
  227. package/dist/elysia/index.js +62 -0
  228. package/dist/embeddings-4ZvFzjsU.js +127 -0
  229. package/dist/embeddings-C9KGQnXt.d.ts +68 -0
  230. package/dist/{refresh-BTrQ_ZTp.d.ts → ended-jLfvw8h-.d.ts} +20 -2
  231. package/dist/{entitlements-DUxU4oHe.d.ts → entitlements-DHrY2UDZ.d.ts} +16 -7
  232. package/dist/entitlements-DRl6ZJUm.js +24 -0
  233. package/dist/envelope-DqnYGRw7.js +47 -0
  234. package/dist/{errors-DtwXa6b8.js → errors-B11Duf73.js} +82 -13
  235. package/dist/errors-DLjJHPLK.js +44 -0
  236. package/dist/escape-like-DHfx6jRr.js +7 -0
  237. package/dist/escape-like-ImTK0ps_.d.ts +15 -0
  238. package/dist/eve/index.d.ts +220 -0
  239. package/dist/eve/index.js +504 -0
  240. package/dist/eve-gT2Fpjut.d.ts +151 -0
  241. package/dist/events/index.d.ts +4 -3
  242. package/dist/events/index.js +9 -50
  243. package/dist/events-DWDhx77e.d.ts +549 -0
  244. package/dist/executor-Bq28caBo.js +718 -0
  245. package/dist/executor-C-R4pucm.js +83 -0
  246. package/dist/executor-CaWigTyR.d.ts +148 -0
  247. package/dist/executor-D14tGopJ.d.ts +36 -0
  248. package/dist/{executor-Cghdstwu.d.ts → executor-DbvExCFC.d.ts} +7 -1
  249. package/dist/{sql-Coh6n4cC.js → executor-De1Of3m3.js} +210 -11
  250. package/dist/executor-DvsBbNBS.d.ts +261 -0
  251. package/dist/expo/index.d.ts +79 -0
  252. package/dist/expo/index.js +129 -0
  253. package/dist/expo-sqlite/index.d.ts +58 -0
  254. package/dist/expo-sqlite/index.js +104 -0
  255. package/dist/field-errors-BFOa7WhB.d.ts +99 -0
  256. package/dist/field-errors-VF1yb8yI.js +13 -0
  257. package/dist/framework-CONDyPYx.js +51 -0
  258. package/dist/framework-DuVb4Xa8.d.ts +25 -0
  259. package/dist/gateway-C1ssRHnf.d.ts +130 -0
  260. package/dist/graph-BGyLLFLX.js +265 -0
  261. package/dist/h3/index.d.ts +59 -0
  262. package/dist/h3/index.js +55 -0
  263. package/dist/h3/v1/index.d.ts +63 -0
  264. package/dist/h3/v1/index.js +49 -0
  265. package/dist/history-BZih6SFP.js +64 -0
  266. package/dist/hono/index.d.ts +56 -7
  267. package/dist/hono/index.js +97 -45
  268. package/dist/{react-C_s7kiNz.js → hooks-1BTCJsiw.js} +104 -133
  269. package/dist/http-Cv4T29xh.js +40 -0
  270. package/dist/http-DdYadv-o.js +126 -0
  271. package/dist/image-url-pIVlO6R1.js +41 -0
  272. package/dist/impersonation-DcqaTBHx.js +148 -0
  273. package/dist/inbox-i7E1ppo6.d.ts +384 -0
  274. package/dist/index-ACiNPN4Z.d.ts +74 -0
  275. package/dist/{index-DgILJRXj.d.ts → index-Bepi-Hgg.d.ts} +91 -28
  276. package/dist/index-BkWT_uBO.d.ts +51 -0
  277. package/dist/index-BpFYMsi0.d.ts +53 -0
  278. package/dist/{index-C7f8cOBM.d.ts → index-Bxih3l0u.d.ts} +2 -2
  279. package/dist/index-CaxrMD1A.d.ts +1 -0
  280. package/dist/index-ClmjK_o-.d.ts +55 -0
  281. package/dist/index-CtuakVRc.d.ts +267 -0
  282. package/dist/index-D48jVS-N.d.ts +246 -0
  283. package/dist/index-DDrYaUcq.d.ts +138 -0
  284. package/dist/index-DQh4VCc9.d.ts +98 -0
  285. package/dist/{live-D9W2M5aO.d.ts → index-DunNRdnT.d.ts} +136 -38
  286. package/dist/index.d.ts +65 -18
  287. package/dist/index.js +42 -14
  288. package/dist/invalidate-BBqhpxyB.d.ts +19 -0
  289. package/dist/json-CEnpTHlZ.js +16 -0
  290. package/dist/json-schema-CvER4kgT.js +502 -0
  291. package/dist/keys-4MnkWTTh.js +35 -0
  292. package/dist/kit-B5tid-q5.d.ts +60 -0
  293. package/dist/kit-Fm-Fv7q5.js +78 -0
  294. package/dist/knowledge-BXBbT0Tr.d.ts +176 -0
  295. package/dist/knowledge-CDmiMLew.js +255 -0
  296. package/dist/lint/index.d.ts +1 -1
  297. package/dist/lint/index.js +37 -0
  298. package/dist/list/index.d.ts +3 -2
  299. package/dist/list/index.js +1 -444
  300. package/dist/{index-fag8VJZ2.d.ts → list-query-BRt-zDF7.d.ts} +20 -12
  301. package/dist/list-query-gl808ac1.js +459 -0
  302. package/dist/{live-CdJBOc4f.js → live-CTAZQkwl.js} +99 -14
  303. package/dist/logger-DWVYUmwi.d.ts +18 -0
  304. package/dist/mcp/index.d.ts +38 -11
  305. package/dist/mcp/index.js +82 -46
  306. package/dist/mcp/sdk/index.d.ts +105 -0
  307. package/dist/mcp/sdk/index.js +126 -0
  308. package/dist/message-CaKlqdsX.js +219 -0
  309. package/dist/message-CfDoR0Y6.d.ts +94 -0
  310. package/dist/messages-B9-5887d.js +715 -0
  311. package/dist/messages-DYP0sUTe.d.ts +59 -0
  312. package/dist/{mfa-CusDgPaD.d.ts → mfa-Daak8ukG.d.ts} +8 -2
  313. package/dist/modules-DpPwzC7E.d.ts +192 -0
  314. package/dist/modules-dxrVK3ID.js +228 -0
  315. package/dist/nestjs/index.d.ts +68 -0
  316. package/dist/nestjs/index.js +164 -0
  317. package/dist/next/client/index.d.ts +35 -0
  318. package/dist/next/client/index.js +36 -0
  319. package/dist/next/image/index.js +3 -24
  320. package/dist/next/index.d.ts +150 -51
  321. package/dist/next/index.js +261 -107
  322. package/dist/node/index.d.ts +4 -0
  323. package/dist/node/index.js +210 -0
  324. package/dist/node-headers-AO06VhqH.d.ts +24 -0
  325. package/dist/node-headers-C71zNQHe.js +55 -0
  326. package/dist/nuxt/index.d.ts +60 -0
  327. package/dist/nuxt/index.js +64 -0
  328. package/dist/onboarding-BZGHYJks.d.ts +62 -0
  329. package/dist/openapi/index.d.ts +1 -1
  330. package/dist/openapi/index.js +3 -3
  331. package/dist/orpc/index.d.ts +70 -11
  332. package/dist/orpc/index.js +73 -24
  333. package/dist/otel/index.d.ts +7 -7
  334. package/dist/otel/index.js +87 -57
  335. package/dist/outbox-Cq7pPYvl.d.ts +161 -0
  336. package/dist/{plugin-o144f322.d.ts → plugin-FGY8UhYm.d.ts} +30 -10
  337. package/dist/plugin-tfXW1-qO.js +45 -0
  338. package/dist/plugins/actor/index.d.ts +2 -2
  339. package/dist/plugins/actor/index.js +3 -3
  340. package/dist/plugins/rules/index.d.ts +11 -4
  341. package/dist/plugins/rules/index.js +40 -13
  342. package/dist/plugins/soft-delete/index.d.ts +5 -4
  343. package/dist/plugins/soft-delete/index.js +10 -5
  344. package/dist/plugins/tenant/index.d.ts +2 -2
  345. package/dist/plugins/tenant/index.js +18 -11
  346. package/dist/plugins/timestamps/index.d.ts +5 -3
  347. package/dist/plugins/timestamps/index.js +6 -4
  348. package/dist/plugins/validation/index.d.ts +2 -2
  349. package/dist/plugins/validation/index.js +10 -6
  350. package/dist/{pool-C9voM4Kw.d.ts → pool-CAu2nLrL.d.ts} +2 -2
  351. package/dist/postgres/index.d.ts +4 -4
  352. package/dist/postgres/index.js +1 -2
  353. package/dist/{postgrest-CruYKAvV.d.ts → postgrest-BLVdEnfe.d.ts} +13 -3
  354. package/dist/powersync/index.d.ts +43 -0
  355. package/dist/powersync/index.js +199 -0
  356. package/dist/powersync/react/index.d.ts +87 -0
  357. package/dist/powersync/react/index.js +108 -0
  358. package/dist/{problem-BW1KhzSG.js → problem-BreOl8b8.js} +14 -3
  359. package/dist/{problem-Blxe8S31.d.ts → problem-DD8LZFjc.d.ts} +21 -3
  360. package/dist/provider-BH5UWZJ6.d.ts +113 -0
  361. package/dist/provider-Di3sRutW.js +57 -0
  362. package/dist/query/index.d.ts +4 -2
  363. package/dist/query/index.js +4 -3
  364. package/dist/{query-CCbo44lG.js → query-BQ-NaZon.js} +141 -24
  365. package/dist/{queue-BYUCjr59.d.ts → queue-CLJurhdy.d.ts} +258 -83
  366. package/dist/react/index.d.ts +11 -7
  367. package/dist/react/index.js +7 -3
  368. package/dist/react/native/index.d.ts +116 -0
  369. package/dist/react/native/index.js +130 -0
  370. package/dist/react/server.d.ts +28 -10
  371. package/dist/react/server.js +22 -5
  372. package/dist/react/session.d.ts +2 -2
  373. package/dist/react-4ZqkP8da.js +79 -0
  374. package/dist/react-F80mF4-t.js +409 -0
  375. package/dist/react-router/index.d.ts +83 -0
  376. package/dist/react-router/index.js +89 -0
  377. package/dist/react-topic-seAWjL3_.js +38 -0
  378. package/dist/{read-set-DQFt1N_Y.js → read-set-DuKWC9Mj.js} +67 -25
  379. package/dist/realtime/index.d.ts +4 -5
  380. package/dist/realtime/index.js +144 -82
  381. package/dist/refusal-CeJWxmkH.js +61 -0
  382. package/dist/refusal-D1rgbzNq.d.ts +15 -0
  383. package/dist/replicas-CwrYp5Zj.js +94 -0
  384. package/dist/{view-Bq64ki8-.js → resolve-D_IcnvFd.js} +239 -289
  385. package/dist/{resolve-C15TJq77.d.ts → resolve-KW8nCeL6.d.ts} +29 -45
  386. package/dist/{resource-CRxxwkQq.js → resource-BsvzCMlX.js} +4 -4
  387. package/dist/{resource-D8iqWMr-.d.ts → resource-D6Uc7Sk7.d.ts} +5 -5
  388. package/dist/respond-BUgsXNgk.js +91 -0
  389. package/dist/respond-DoBijysA.d.ts +93 -0
  390. package/dist/result-D7y2fT87.d.ts +282 -0
  391. package/dist/{result-BKiliPY7.js → result-DzUbqgdW.js} +27 -2
  392. package/dist/run-state-CPo-1X2B.d.ts +12 -0
  393. package/dist/run-state-CgBKzYMW.js +13 -0
  394. package/dist/search-CUWCRYKL.js +9 -0
  395. package/dist/server/index.d.ts +143 -21
  396. package/dist/server/index.js +46 -14
  397. package/dist/{respond-D2OQl62-.d.ts → server-CeVeeXwz.d.ts} +225 -80
  398. package/dist/session-ChiXDZdZ.d.ts +72 -0
  399. package/dist/shared-CBxosKK3.js +75 -0
  400. package/dist/{shared-D1dRUrAg.js → shared-CxWmcyqB.js} +2 -1
  401. package/dist/shared-DDSjEGDR.d.ts +11 -0
  402. package/dist/sign-in-BCV5S2WZ.d.ts +49 -0
  403. package/dist/sign-in-Cb1mwv6X.js +86 -0
  404. package/dist/{signers-Cc6r98SW.d.ts → signers-4y62_VIi.d.ts} +13 -9
  405. package/dist/simplify-DDO0j0LI.js +83 -0
  406. package/dist/solid/index.d.ts +131 -0
  407. package/dist/solid/index.js +344 -0
  408. package/dist/solid-start/index.d.ts +75 -0
  409. package/dist/solid-start/index.js +58 -0
  410. package/dist/{spec-pins-C3oc-Tdp.js → spec-pins--j6mTok4.js} +8 -1
  411. package/dist/{spec-pins-CqorWDnO.d.ts → spec-pins-C89s6DyW.d.ts} +7 -0
  412. package/dist/sql/index.d.ts +330 -194
  413. package/dist/sql/index.js +34901 -6489
  414. package/dist/ssr/index.d.ts +6 -5
  415. package/dist/ssr/index.js +3 -3
  416. package/dist/{standard-D7r6dMUu.js → standard-BK0cqJ7y.js} +4 -3
  417. package/dist/{standard-J4YgMOLm.d.ts → standard-CYsm7xpT.d.ts} +1 -1
  418. package/dist/stats-D_AD9GGu.js +1123 -0
  419. package/dist/storage/index.d.ts +5 -5
  420. package/dist/storage/index.js +1027 -368
  421. package/dist/store-BdH5ruDx.js +66 -0
  422. package/dist/store-CGjgWu5n.d.ts +68 -0
  423. package/dist/streams/index.d.ts +76 -0
  424. package/dist/streams/index.js +77 -0
  425. package/dist/streams/redis/index.d.ts +52 -0
  426. package/dist/streams/redis/index.js +185 -0
  427. package/dist/stripe-BMj5LtsT.js +38 -0
  428. package/dist/stripe-D04h-QBT.d.ts +136 -0
  429. package/dist/{support-Dk6vdmEw.js → support-BivNqSpK.js} +35 -12
  430. package/dist/{support-view-Da5peKFg.d.ts → support-view-33Oi07TT.d.ts} +1 -1
  431. package/dist/svelte/index.d.ts +114 -0
  432. package/dist/svelte/index.js +344 -0
  433. package/dist/sveltekit/index.d.ts +116 -0
  434. package/dist/sveltekit/index.js +106 -0
  435. package/dist/tags-B99_U9Pp.js +39 -0
  436. package/dist/tags-Cx-LnIQP.d.ts +30 -0
  437. package/dist/tanstack-db/index.d.ts +71 -0
  438. package/dist/tanstack-db/index.js +72 -0
  439. package/dist/tanstack-start/index.d.ts +75 -0
  440. package/dist/tanstack-start/index.js +95 -0
  441. package/dist/tee-CoEppCER.js +101 -0
  442. package/dist/{template-TxrGI5jR.js → template--jDkl3UP.js} +34 -13
  443. package/dist/template-CwO38Do8.d.ts +6 -0
  444. package/dist/temporal-BJGitm-h.js +79 -0
  445. package/dist/{temporal-required-CAt4Dc9Z.js → temporal-required-BVvW7SYJ.js} +3 -2
  446. package/dist/tenant-I1TEZ_BX.js +27 -0
  447. package/dist/tenant-icPeuUBN.d.ts +17 -0
  448. package/dist/testing/index.d.ts +343 -37
  449. package/dist/testing/index.js +1186 -79
  450. package/dist/timing-CyTQPubY.js +92 -0
  451. package/dist/ttl-Hr34gRu8.js +12 -0
  452. package/dist/{types-Dnf_wRDz.d.ts → types-6BdhkmZe.d.ts} +111 -45
  453. package/dist/types-BI-0Sl2v.d.ts +359 -0
  454. package/dist/types-C05bxW-W.d.ts +220 -0
  455. package/dist/types-DGs5L0VN.d.ts +192 -0
  456. package/dist/types-TaiEeBGA.d.ts +156 -0
  457. package/dist/usage-CrvrL2vw.d.ts +177 -0
  458. package/dist/user-change-XzvgafU4.js +130 -0
  459. package/dist/vault-CSO7ss5C.d.ts +50 -0
  460. package/dist/vercel-connect/index.d.ts +47 -0
  461. package/dist/vercel-connect/index.js +119 -0
  462. package/dist/{verify-Ce49ETPz.js → verify-DL41hbvY.js} +85 -13
  463. package/dist/verify-DPuWngD4.d.ts +172 -0
  464. package/dist/{version-DM_Roffb.js → version-Bvv6aLjZ.js} +1 -1
  465. package/dist/view-BeFcRV6G.js +99 -0
  466. package/dist/{view-BEf0diC5.d.ts → view-DbxLNu8L.d.ts} +35 -32
  467. package/dist/vue/index.d.ts +141 -0
  468. package/dist/vue/index.js +362 -0
  469. package/dist/watch-DI34G86j.d.ts +60 -0
  470. package/dist/watch-Xuxrvxq-.js +122 -0
  471. package/dist/{wire-D2dT86vi.js → wire-DtZQ4sdE.js} +15 -5
  472. package/dist/workflow-builder-DJ1oHn8g.js +398 -0
  473. package/dist/workflow-sdk/builder/index.d.ts +85 -0
  474. package/dist/workflow-sdk/builder/index.js +250 -0
  475. package/dist/workflow-sdk/index.d.ts +14 -0
  476. package/dist/workflow-sdk/index.js +3 -0
  477. package/dist/workflow-sdk/world/index.d.ts +107 -0
  478. package/dist/workflow-sdk/world/index.js +702 -0
  479. package/dist/workflow-sdk-B3yLD6Br.d.ts +98 -0
  480. package/dist/workflow-sdk-C2WJ_G2O.js +173 -0
  481. package/dist/workflow-sdk-world-D-prir6O.js +1397 -0
  482. package/dist/workflows-B0j9WKPu.d.ts +185 -0
  483. package/dist/workflows-wu1WWBn7.js +216 -0
  484. package/package.json +470 -29
  485. package/schemas/ai-message-v1.json +258 -0
  486. package/schemas/config-v1.json +1074 -140
  487. package/schemas/doctor-report-v1.json +21 -1
  488. package/schemas/snapshot-v2.json +8 -0
  489. package/skills/better-supabase/SKILL.md +41 -12
  490. package/skills/better-supabase/references/frontend.md +96 -0
  491. package/skills/better-supabase/references/plugins.md +10 -6
  492. package/skills/better-supabase/references/troubleshooting.md +2 -1
  493. package/skills/better-supabase-api/SKILL.md +76 -22
  494. package/skills/better-supabase-api/references/adapters.md +207 -0
  495. package/skills/better-supabase-api/references/ai.md +125 -0
  496. package/skills/better-supabase-api/references/expo.md +65 -0
  497. package/skills/better-supabase-api/references/powersync.md +35 -0
  498. package/skills/better-supabase-api/references/streams-credentials.md +105 -0
  499. package/skills/better-supabase-auth/SKILL.md +62 -18
  500. package/skills/better-supabase-auth/references/authorization-providers.md +51 -0
  501. package/skills/better-supabase-testing/SKILL.md +3 -1
  502. package/dist/cli/config-dtoekM0v.js +0 -2
  503. package/dist/cli/gen-BJc9vdyu.js +0 -2
  504. package/dist/cli/gen-C2osRcr5.js +0 -2204
  505. package/dist/cli/read-sets-BfMQcKy8.js +0 -289
  506. package/dist/cli/sql-DzPbfngx.js +0 -348
  507. package/dist/entitlements-CTEBm7IB.js +0 -20
  508. package/dist/events-aIO7vsIk.d.ts +0 -230
  509. package/dist/executor-BunPOO-k.d.ts +0 -402
  510. package/dist/executor-XycESQPH.js +0 -94
  511. package/dist/impersonation-VfaGc4Q_.js +0 -41
  512. package/dist/index-BGdgBPdf.d.ts +0 -161
  513. package/dist/index-DOESKG27.d.ts +0 -100
  514. package/dist/index-DmXSxbLi.d.ts +0 -62
  515. package/dist/index-Dxn2a5cw.d.ts +0 -50
  516. package/dist/jobs/index.d.ts +0 -226
  517. package/dist/jobs/index.js +0 -1007
  518. package/dist/json-schema-m1fiwKgN.js +0 -208
  519. package/dist/kit-events-CTFDfSwb.js +0 -60
  520. package/dist/kit-transport-B82k1djG.d.ts +0 -33
  521. package/dist/kits-CGLLrNPd.js +0 -157
  522. package/dist/notifications/index.d.ts +0 -162
  523. package/dist/notifications/index.js +0 -264
  524. package/dist/orgs/index.d.ts +0 -132
  525. package/dist/orgs/index.js +0 -245
  526. package/dist/permdock-sql-C2Inc6Xc.d.ts +0 -29
  527. package/dist/permdock-sql-DgOfeixi.js +0 -51
  528. package/dist/plugin-DwARMuQp.js +0 -59
  529. package/dist/server-Csx2sRjg.js +0 -655
  530. package/dist/stats-Bqob3WqT.js +0 -592
  531. package/dist/support-DT-OhSxD.d.ts +0 -88
  532. package/dist/template-mbvlysOo.d.ts +0 -6
  533. package/dist/temporal-CVlIV2DZ.js +0 -40
  534. package/dist/user-change-CHFEUro1.js +0 -49
  535. package/dist/webhooks/index.d.ts +0 -285
  536. package/skills/better-supabase-auth/references/permdock.md +0 -100
@@ -0,0 +1,180 @@
1
+ import { n as dbError } from "../../errors-B11Duf73.js";
2
+ import { s as nowInstant } from "../../temporal-BJGitm-h.js";
3
+ import { t as temporal } from "../../temporal-required-BVvW7SYJ.js";
4
+ import { a as ok, r as err, t as AsyncResult } from "../../result-DzUbqgdW.js";
5
+ import { c as errorText } from "../../block-helpers-DWHxHsEQ.js";
6
+ import { experimental_cancelBatch, experimental_getBatchResults, experimental_getBatchStatus, experimental_startBatch } from "ai";
7
+ //#region src/ai-sdk/batches/batches.ts
8
+ const DEFAULT_API = {
9
+ start: (options) => experimental_startBatch(options),
10
+ status: (options) => experimental_getBatchStatus(options),
11
+ results: (options) => experimental_getBatchResults(options),
12
+ cancel: (options) => experimental_cancelBatch(options)
13
+ };
14
+ const PAGE = 100;
15
+ function referenceOf(batch) {
16
+ const reference = batch.reference;
17
+ return reference["version"] === 2 && typeof reference["id"] === "string" && typeof reference["provider"] === "string" ? {
18
+ version: 2,
19
+ id: reference["id"],
20
+ provider: reference["provider"]
21
+ } : void 0;
22
+ }
23
+ function countsOf(status) {
24
+ return status.requestCounts === void 0 ? void 0 : { ...status.requestCounts };
25
+ }
26
+ function jsonOf(value) {
27
+ return value === void 0 ? void 0 : JSON.parse(JSON.stringify(value));
28
+ }
29
+ /** What is stored for one result by default. */
30
+ function batchItemOf(item) {
31
+ if (item.status !== "succeeded") return {
32
+ requestId: item.id,
33
+ status: item.status,
34
+ ...item.error === void 0 ? {} : { error: item.error.message }
35
+ };
36
+ if (item.type === "text") return {
37
+ requestId: item.id,
38
+ status: "succeeded",
39
+ output: jsonOf({
40
+ text: item.text,
41
+ content: item.content,
42
+ finishReason: item.finishReason,
43
+ response: item.response
44
+ }),
45
+ usage: jsonOf(item.usage)
46
+ };
47
+ return {
48
+ requestId: item.id,
49
+ status: "succeeded",
50
+ output: { images: item.images.map((image) => ({
51
+ mediaType: image.mediaType,
52
+ base64: image.base64
53
+ })) },
54
+ usage: jsonOf(item.usage)
55
+ };
56
+ }
57
+ /**
58
+ * Batch jobs over the AI SDK's batch API, recorded in the providers block:
59
+ * `start` records the batch, the poll job asks the provider for its status
60
+ * until it finishes and then saves its results, which `results` pages.
61
+ */
62
+ function aiBatches(options) {
63
+ const api = {
64
+ ...DEFAULT_API,
65
+ ...options.api
66
+ };
67
+ const store = options.providers.batches;
68
+ const pollEvery = options.pollEvery ?? 60;
69
+ const providerFor = (reference) => {
70
+ const chosen = typeof options.provider === "function" ? options.provider(reference) : options.provider;
71
+ return chosen === void 0 ? {} : { provider: chosen };
72
+ };
73
+ const nextPoll = () => nowInstant().add({ seconds: pollEvery });
74
+ const call = (run) => AsyncResult.from(async () => {
75
+ try {
76
+ return ok(await run());
77
+ } catch (cause) {
78
+ return err(dbError("network", errorText(cause), { hint: "AI_BATCH_PROVIDER" }));
79
+ }
80
+ });
81
+ const withReference = (batch) => {
82
+ const reference = referenceOf(batch);
83
+ return reference === void 0 ? AsyncResult.err(dbError("invalid_input", `batch ${batch.id} has no batch reference`, { hint: "AI_BATCH_INVALID" })) : AsyncResult.ok(reference);
84
+ };
85
+ const refresh = (batch) => withReference(batch).andThen((reference) => call(() => api.status({
86
+ ...providerFor(reference),
87
+ batch: reference
88
+ })).andThen((status) => {
89
+ const counts = countsOf(status);
90
+ return store.update(batch.id, {
91
+ status: status.status,
92
+ ...status.rawStatus === void 0 ? {} : { rawStatus: status.rawStatus },
93
+ ...counts === void 0 ? {} : { counts },
94
+ ...status.error === void 0 ? {} : { error: status.error.message },
95
+ ...status.expiresAt === void 0 ? {} : { expiresAt: temporal().Instant.from(status.expiresAt) },
96
+ nextPollAt: nextPoll()
97
+ });
98
+ }));
99
+ const collect = (batch) => withReference(batch).andThen((reference) => AsyncResult.from(async () => {
100
+ let saved = 0;
101
+ let page = [];
102
+ const flush = async () => {
103
+ if (page.length === 0) return ok(0);
104
+ const written = await store.saveItems(batch.id, page);
105
+ page = [];
106
+ return written;
107
+ };
108
+ try {
109
+ for await (const item of api.results({
110
+ ...providerFor(reference),
111
+ batch: reference
112
+ })) {
113
+ page.push(options.onItem === void 0 ? batchItemOf(item) : await options.onItem(item, batch));
114
+ if (page.length >= PAGE) {
115
+ const written = await flush();
116
+ if (!written.ok) return written;
117
+ saved += written.data;
118
+ }
119
+ }
120
+ } catch (cause) {
121
+ return err(dbError("network", errorText(cause), { hint: "AI_BATCH_PROVIDER" }));
122
+ }
123
+ const written = await flush();
124
+ if (!written.ok) return written;
125
+ saved += written.data;
126
+ const done = await store.update(batch.id, {
127
+ resultsSaved: true,
128
+ nextPollAt: null
129
+ });
130
+ if (!done.ok) return done;
131
+ await options.onDone?.(done.data);
132
+ return ok(saved);
133
+ }));
134
+ const pollOne = (batch) => {
135
+ if (batch.status !== "pending") return collect(batch).map(() => batch);
136
+ return refresh(batch).andThen((fresh) => fresh.status === "pending" ? AsyncResult.ok(fresh) : collect(fresh).map(() => fresh));
137
+ };
138
+ const poll = (pollOptions = {}) => store.due(pollOptions).andThen((due) => AsyncResult.from(async () => {
139
+ for (const batch of due) {
140
+ const polled = await pollOne(batch);
141
+ if (!polled.ok) {
142
+ const noted = await store.update(batch.id, { error: polled.error.message });
143
+ if (!noted.ok) return noted;
144
+ }
145
+ }
146
+ return ok(due.length);
147
+ }));
148
+ return {
149
+ start: (context, startOptions) => {
150
+ const { metadata, ...batchOptions } = startOptions;
151
+ return call(() => api.start(batchOptions)).andThen((started) => store.record(context.organizationId, {
152
+ provider: started.provider,
153
+ reference: {
154
+ version: started.version,
155
+ id: started.id,
156
+ provider: started.provider
157
+ },
158
+ itemCount: batchOptions.requests.length,
159
+ status: started.status,
160
+ ...context.userId === void 0 ? {} : { userId: context.userId },
161
+ ...metadata === void 0 ? {} : { metadata },
162
+ ...started.rawStatus === void 0 ? {} : { rawStatus: started.rawStatus },
163
+ ...started.requestCounts === void 0 ? {} : { counts: { ...started.requestCounts } },
164
+ ...started.expiresAt === void 0 ? {} : { expiresAt: temporal().Instant.from(started.expiresAt) }
165
+ }));
166
+ },
167
+ status: (batchId) => store.get(batchId),
168
+ results: (batchId, resultOptions) => store.items(batchId, resultOptions),
169
+ refresh,
170
+ collect,
171
+ cancel: (batch) => withReference(batch).andThen((reference) => call(() => api.cancel({
172
+ ...providerFor(reference),
173
+ batch: reference
174
+ })).andThen(() => store.update(batch.id, { status: "cancelled" }))),
175
+ poll,
176
+ pollJob: (jobOptions) => async () => poll(jobOptions).orThrow()
177
+ };
178
+ }
179
+ //#endregion
180
+ export { aiBatches, batchItemOf };
@@ -0,0 +1,38 @@
1
+ import { b as DbError } from "../../result-D7y2fT87.js";
2
+ import { t as AiCache } from "../../ai-cache-DaDu_G5L.js";
3
+ import { LanguageModelMiddleware } from "ai";
4
+ //#region src/ai-sdk/cache/cache.d.ts
5
+ type WrapGenerate = NonNullable<LanguageModelMiddleware["wrapGenerate"]>;
6
+ /** The call `cacheMiddleware` derives a key from. */
7
+ type CacheCall = Parameters<WrapGenerate>[0];
8
+ interface CacheMiddlewareOptions {
9
+ /** The AI cache block with a service transport. */
10
+ readonly cache: Pick<AiCache, "get" | "set">;
11
+ /** Seconds an entry lives, capped by the module's `maxTtl`. */
12
+ readonly ttl: number;
13
+ /** Keeps tenants' entries apart and lets `clear` and tenant deletion find them. */
14
+ readonly organizationId?: string;
15
+ /**
16
+ * What the key covers. Defaults to the provider, the model id and the call
17
+ * options without the abort signal and headers.
18
+ */
19
+ readonly key?: (call: CacheCall) => unknown;
20
+ /** Skips the cache for a call, such as one with a high temperature. */
21
+ readonly when?: (call: CacheCall) => boolean;
22
+ /** Pacing for replayed streams, in milliseconds; no delay by default. */
23
+ readonly replay?: {
24
+ readonly initialDelayInMs?: number | null;
25
+ readonly chunkDelayInMs?: number | null;
26
+ };
27
+ /** Called when the cache can't be read or written; the call still runs. */
28
+ readonly onError?: (error: DbError) => void;
29
+ }
30
+ /**
31
+ * A `wrapLanguageModel` middleware that answers repeated calls from the AI
32
+ * cache block. A cached generation is returned as is, and a cached stream is
33
+ * replayed through `simulateReadableStream`. Calls that end in an error are
34
+ * never cached, and a cache that fails to answer only costs the lookup.
35
+ */
36
+ export declare function cacheMiddleware(options: CacheMiddlewareOptions): LanguageModelMiddleware;
37
+ //#endregion
38
+ export type { CacheCall, CacheMiddlewareOptions };
@@ -0,0 +1,127 @@
1
+ import { d as isRecord } from "../../block-helpers-DWHxHsEQ.js";
2
+ import { t as cacheKey } from "../../ai-cache-CBWs1W0k.js";
3
+ import { simulateReadableStream } from "ai";
4
+ //#region src/ai-sdk/cache/cache.ts
5
+ const BYTES = "$bytes";
6
+ const DATE = "$date";
7
+ const URL_TAG = "$url";
8
+ function encode(value) {
9
+ if (value instanceof Date) return { [DATE]: value.toISOString() };
10
+ if (value instanceof Uint8Array) {
11
+ let binary = "";
12
+ for (const byte of value) binary += String.fromCodePoint(byte);
13
+ return { [BYTES]: btoa(binary) };
14
+ }
15
+ if (value instanceof URL) return { [URL_TAG]: value.href };
16
+ if (Array.isArray(value)) return value.map(encode);
17
+ if (isRecord(value)) {
18
+ const out = {};
19
+ for (const [key, item] of Object.entries(value)) if (item !== void 0 && typeof item !== "function") out[key] = encode(item);
20
+ return out;
21
+ }
22
+ return value;
23
+ }
24
+ function decode(value) {
25
+ if (Array.isArray(value)) return value.map(decode);
26
+ if (!isRecord(value)) return value;
27
+ const keys = Object.keys(value);
28
+ if (keys.length === 1 && typeof value[DATE] === "string") return new Date(value[DATE]);
29
+ if (keys.length === 1 && typeof value[URL_TAG] === "string") return new URL(value[URL_TAG]);
30
+ if (keys.length === 1 && typeof value[BYTES] === "string") return Uint8Array.from(atob(value[BYTES]), (char) => char.codePointAt(0) ?? 0);
31
+ const out = {};
32
+ for (const [key, item] of Object.entries(value)) out[key] = decode(item);
33
+ return out;
34
+ }
35
+ const defaultKey = (call) => {
36
+ const { abortSignal: _signal, headers: _headers, ...params } = call.params;
37
+ return {
38
+ provider: call.model.provider,
39
+ model: call.model.modelId,
40
+ params
41
+ };
42
+ };
43
+ /**
44
+ * A `wrapLanguageModel` middleware that answers repeated calls from the AI
45
+ * cache block. A cached generation is returned as is, and a cached stream is
46
+ * replayed through `simulateReadableStream`. Calls that end in an error are
47
+ * never cached, and a cache that fails to answer only costs the lookup.
48
+ */
49
+ function cacheMiddleware(options) {
50
+ const keyOf = async (call, type) => cacheKey({
51
+ type,
52
+ tenant: options.organizationId ?? null,
53
+ parts: (options.key ?? defaultKey)(call)
54
+ });
55
+ const read = async (key) => {
56
+ const entry = await options.cache.get(key);
57
+ if (!entry.ok) {
58
+ options.onError?.(entry.error);
59
+ return;
60
+ }
61
+ return entry.data?.value;
62
+ };
63
+ const write = async (key, value, call, kind) => {
64
+ const saved = await options.cache.set(key, encode(value), {
65
+ ttl: options.ttl,
66
+ kind,
67
+ model: `${call.model.provider}/${call.model.modelId}`,
68
+ ...options.organizationId === void 0 ? {} : { organizationId: options.organizationId }
69
+ });
70
+ if (!saved.ok) options.onError?.(saved.error);
71
+ };
72
+ return {
73
+ specificationVersion: "v4",
74
+ wrapGenerate: async (call) => {
75
+ if (options.when?.(call) === false) return call.doGenerate();
76
+ const key = await keyOf(call, "generate");
77
+ const cached = await read(key);
78
+ if (isRecord(cached)) return decode(cached);
79
+ const result = await call.doGenerate();
80
+ if (result.finishReason.unified !== "error") {
81
+ const { request: _request, ...rest } = result;
82
+ const response = rest.response === void 0 ? void 0 : {
83
+ ...rest.response,
84
+ body: void 0,
85
+ headers: void 0
86
+ };
87
+ await write(key, {
88
+ ...rest,
89
+ response
90
+ }, call, "generate");
91
+ }
92
+ return result;
93
+ },
94
+ wrapStream: async (call) => {
95
+ if (options.when?.(call) === false) return call.doStream();
96
+ const key = await keyOf(call, "stream");
97
+ const cached = await read(key);
98
+ if (isRecord(cached) && Array.isArray(cached["parts"])) {
99
+ const parts = decode(cached["parts"]);
100
+ return { stream: simulateReadableStream({
101
+ chunks: parts,
102
+ initialDelayInMs: options.replay?.initialDelayInMs ?? null,
103
+ chunkDelayInMs: options.replay?.chunkDelayInMs ?? null
104
+ }) };
105
+ }
106
+ const result = await call.doStream();
107
+ const parts = [];
108
+ let failed = false;
109
+ const stream = result.stream.pipeThrough(new TransformStream({
110
+ transform(part, controller) {
111
+ if (part.type === "error" || part.type === "finish" && part.finishReason.unified === "error") failed = true;
112
+ if (part.type !== "raw") parts.push(part);
113
+ controller.enqueue(part);
114
+ },
115
+ async flush() {
116
+ if (!failed) await write(key, { parts }, call, "stream");
117
+ }
118
+ }));
119
+ return {
120
+ ...result,
121
+ stream
122
+ };
123
+ }
124
+ };
125
+ }
126
+ //#endregion
127
+ export { cacheMiddleware };
@@ -0,0 +1,2 @@
1
+ import { a as AssistantOptions, c as AssistantRunResult, i as AssistantModeration, l as AssistantTurn, n as AssistantContext, o as AssistantRequestBody, r as AssistantFinish, s as AssistantRunArgs, t as Assistant, u as createAssistant } from "../../assistant-DwdpDH1q.js";
2
+ export { type Assistant, type AssistantContext, type AssistantFinish, type AssistantModeration, type AssistantOptions, type AssistantRequestBody, type AssistantRunArgs, type AssistantRunResult, type AssistantTurn, createAssistant };
@@ -0,0 +1,246 @@
1
+ import { n as dbError } from "../../errors-B11Duf73.js";
2
+ import { a as problemResponse } from "../../problem-BreOl8b8.js";
3
+ import { d as isRecord } from "../../block-helpers-DWHxHsEQ.js";
4
+ import { n as pathToHistory, r as repairDanglingToolCalls } from "../../history-BZih6SFP.js";
5
+ import { a as isUIMessage, f as problem429, h as usageOf, i as fromUIMessage, l as gatewayOptions, p as runRelease, s as toUIMessages, t as AI_SDK_UI_FORMAT } from "../../messages-B9-5887d.js";
6
+ import { n as teeToStore, t as resumeFromStore } from "../../tee-CoEppCER.js";
7
+ import { JsonToSseTransformStream, UI_MESSAGE_STREAM_HEADERS, convertToModelMessages } from "ai";
8
+ //#region src/ai-sdk/chat/assistant.ts
9
+ const TRIGGERS = /* @__PURE__ */ new Set(["submit-message", "regenerate-message"]);
10
+ function badRequest(message) {
11
+ return problemResponse(dbError("invalid_request", message, { code: "AI_CHAT_BAD_REQUEST" }));
12
+ }
13
+ function parseBody(value) {
14
+ if (!isRecord(value)) return "Expected a JSON object.";
15
+ const { id, trigger, messageId, model } = value;
16
+ if (typeof id !== "string" || id === "") return "Expected the chat id.";
17
+ const messages = value["messages"];
18
+ const last = Array.isArray(messages) ? messages.at(-1) : void 0;
19
+ const message = value["message"] ?? last;
20
+ if (!isUIMessage(message) || message.role !== "user") return "Expected the user's message.";
21
+ if (trigger !== void 0 && !TRIGGERS.has(trigger)) return "Expected submit-message or regenerate-message.";
22
+ return {
23
+ id,
24
+ message,
25
+ ...trigger === "regenerate-message" ? { trigger } : {},
26
+ ...typeof messageId === "string" ? { messageId } : {},
27
+ ...typeof model === "string" ? { model } : {}
28
+ };
29
+ }
30
+ async function readJson(request) {
31
+ try {
32
+ return await request.json();
33
+ } catch {
34
+ return;
35
+ }
36
+ }
37
+ const settle = async (value) => {
38
+ try {
39
+ return await value;
40
+ } catch {
41
+ return;
42
+ }
43
+ };
44
+ function sse(stream) {
45
+ return new Response(stream.pipeThrough(new TextEncoderStream()), { headers: UI_MESSAGE_STREAM_HEADERS });
46
+ }
47
+ /**
48
+ * A chat route for the AI SDK on the `ai-chat` block: `respond` stores the
49
+ * user's message, picks an allowed model, checks the quota, claims the
50
+ * chat's answer, runs the model and streams it while keeping a copy in the
51
+ * stream store; the answer and its usage are stored when it ends, even
52
+ * after the client left. `resume` replays it after a reload, `stop` ends it.
53
+ */
54
+ function createAssistant(options) {
55
+ const newId = options.generateId ?? (() => crypto.randomUUID());
56
+ async function chatOf(context, body) {
57
+ const found = await context.chats.chats.get(body.id);
58
+ if (found.ok) return found.data;
59
+ if (found.error.kind !== "not_found") return problemResponse(found.error);
60
+ const created = await context.chats.chats.create(context.organizationId, {
61
+ id: body.id,
62
+ ...body.model === void 0 ? {} : { model: body.model }
63
+ });
64
+ return created.ok ? created.data : problemResponse(created.error);
65
+ }
66
+ async function modelOf(context, chat, requested) {
67
+ const allowed = await context.chats.models.allowed(chat.organizationId);
68
+ if (!allowed.ok) return problemResponse(allowed.error);
69
+ const ids = new Set(allowed.data.map((model) => model.id));
70
+ const fits = (id) => ids.size === 0 || ids.has(id);
71
+ if (requested !== void 0 && fits(requested)) return requested;
72
+ if (requested !== void 0) return problemResponse(dbError("forbidden", `The model ${requested} is not allowed.`, { code: "AI_MODEL_NOT_ALLOWED" }));
73
+ if (chat.model !== void 0 && fits(chat.model)) return chat.model;
74
+ if (fits(options.defaultModel)) return options.defaultModel;
75
+ const first = allowed.data[0];
76
+ return first === void 0 ? options.defaultModel : first.id;
77
+ }
78
+ async function moderated(context, chat, message) {
79
+ const verdict = await options.moderate?.({
80
+ message,
81
+ chat
82
+ });
83
+ if (verdict === void 0 || verdict.action === "allow") return void 0;
84
+ await context.chats.moderation.record({
85
+ organizationId: chat.organizationId,
86
+ chatId: chat.id,
87
+ messageId: message.id,
88
+ userId: context.userId,
89
+ stage: "input",
90
+ action: verdict.action,
91
+ category: verdict.category,
92
+ ...verdict.score === void 0 ? {} : { score: verdict.score }
93
+ });
94
+ return verdict.action === "block" ? problemResponse(dbError("forbidden", "The message was blocked.", { code: "AI_MODERATION_BLOCKED" })) : void 0;
95
+ }
96
+ async function prepare(value, context) {
97
+ const body = parseBody(value);
98
+ if (typeof body === "string") return badRequest(body);
99
+ const chat = await chatOf(context, body);
100
+ if (chat instanceof Response) return chat;
101
+ const model = await modelOf(context, chat, body.model);
102
+ if (model instanceof Response) return model;
103
+ const userMessage = fromUIMessage(body.message);
104
+ const blocked = await moderated(context, chat, userMessage);
105
+ if (blocked) return blocked;
106
+ if (options.quota) {
107
+ const exceeded = await options.quota(chat.organizationId);
108
+ if (exceeded) return problem429(exceeded);
109
+ }
110
+ const appended = await context.chats.messages.appendUser(chat.id, userMessage, {
111
+ ...body.trigger === void 0 ? {} : { trigger: body.trigger },
112
+ ...body.messageId === void 0 ? {} : { messageId: body.messageId }
113
+ });
114
+ if (!appended.ok) return problemResponse(appended.error);
115
+ const parentId = appended.data.messageId;
116
+ const path = await context.chats.messages.path(chat.id, {
117
+ leafId: parentId,
118
+ native: true
119
+ });
120
+ if (!path.ok) return problemResponse(path.error);
121
+ const repaired = new Map(repairDanglingToolCalls(pathToHistory(path.data)).map((message) => [message.id, message]));
122
+ const uiMessages = toUIMessages(path.data.map((stored) => stored.format === "ai-sdk-ui" ? stored : repaired.get(stored.id) ?? stored));
123
+ return {
124
+ chat,
125
+ model,
126
+ parentId,
127
+ uiMessages,
128
+ messages: await convertToModelMessages(uiMessages, { ignoreIncompleteToolCalls: true }),
129
+ providerOptions: gatewayOptions({
130
+ userId: context.userId,
131
+ organizationId: chat.organizationId,
132
+ chatId: chat.id,
133
+ feature: options.feature ?? "chat"
134
+ })
135
+ };
136
+ }
137
+ async function respond(request, context) {
138
+ const turn = await prepare(await readJson(request), context);
139
+ if (turn instanceof Response) return turn;
140
+ const { chat, model, parentId, uiMessages } = turn;
141
+ const streamId = newId();
142
+ const assistantId = newId();
143
+ const claim = await context.chats.runs.claim(chat.id, streamId, {
144
+ model,
145
+ messageId: assistantId
146
+ });
147
+ if (!claim.ok) return problemResponse(claim.error);
148
+ if (!claim.data.claimed) return problemResponse(dbError("conflict", "An answer is already being written.", { code: "AI_CHAT_BUSY" }));
149
+ const runId = claim.data.runId;
150
+ const abort = new AbortController();
151
+ const release = (status, usage, error) => context.chats.runs.release(chat.id, streamId, runRelease(status, usage, error));
152
+ let result;
153
+ try {
154
+ result = await options.run({
155
+ chat,
156
+ model,
157
+ messages: turn.messages,
158
+ uiMessages,
159
+ abortSignal: abort.signal,
160
+ providerOptions: turn.providerOptions,
161
+ context
162
+ });
163
+ } catch (cause) {
164
+ await release("failed", void 0, String(cause));
165
+ return problemResponse(dbError("unexpected", "The answer could not be started.", { code: "AI_CHAT_RUN_FAILED" }));
166
+ }
167
+ let finished;
168
+ const onEnd = (event) => {
169
+ finished = (async () => {
170
+ const stopped = event.isAborted || abort.signal.aborted;
171
+ const status = stopped ? "cancelled" : "completed";
172
+ const saved = await context.chats.messages.saveAssistant(chat.id, fromUIMessage(event.responseMessage), {
173
+ parentId,
174
+ status: stopped ? "aborted" : "complete",
175
+ model,
176
+ format: AI_SDK_UI_FORMAT,
177
+ native: event.responseMessage,
178
+ runId
179
+ });
180
+ const usage = usageOf({
181
+ totalUsage: await settle(result.totalUsage),
182
+ providerMetadata: await settle(result.providerMetadata)
183
+ });
184
+ await release(saved.ok ? status : "failed", usage, saved.ok ? void 0 : saved.error.message);
185
+ if (usage.costMicroUsd === void 0 && usage.generationId !== void 0 && options.enqueueCostBackfill) await options.enqueueCostBackfill({
186
+ generationId: usage.generationId,
187
+ organizationId: chat.organizationId
188
+ });
189
+ await options.onFinish?.({
190
+ chat,
191
+ message: event.responseMessage,
192
+ status,
193
+ model,
194
+ usage,
195
+ context
196
+ });
197
+ })();
198
+ return finished;
199
+ };
200
+ const chunks = result.toUIMessageStream({
201
+ originalMessages: uiMessages,
202
+ generateMessageId: () => assistantId,
203
+ onEnd,
204
+ ...options.onError === void 0 ? {} : { onError: options.onError }
205
+ });
206
+ const teed = teeToStore(options.streams, streamId, chunks.pipeThrough(new JsonToSseTransformStream()), {
207
+ owner: chat.ownerId,
208
+ tenant: chat.organizationId,
209
+ kind: "chat",
210
+ ...options.streamTtl === void 0 ? {} : { ttl: options.streamTtl },
211
+ onCancel: () => {
212
+ abort.abort();
213
+ }
214
+ });
215
+ context.waitUntil?.((async () => {
216
+ await teed.persisted;
217
+ await finished;
218
+ })());
219
+ return sse(teed.stream);
220
+ }
221
+ async function resume(chatId, context, resumeOptions = {}) {
222
+ const chat = await context.chats.chats.get(chatId);
223
+ if (!chat.ok) return chat.error.kind === "not_found" ? new Response(null, { status: 204 }) : problemResponse(chat.error);
224
+ const { activeStreamId } = chat.data;
225
+ if (activeStreamId === void 0) return new Response(null, { status: 204 });
226
+ const stream = await resumeFromStore(options.streams, activeStreamId, {
227
+ ...resumeOptions.fromIdx === void 0 ? {} : { fromIdx: resumeOptions.fromIdx },
228
+ ...resumeOptions.signal === void 0 ? {} : { signal: resumeOptions.signal }
229
+ });
230
+ if (!stream.ok) return problemResponse(stream.error);
231
+ return stream.data === void 0 ? new Response(null, { status: 204 }) : sse(stream.data);
232
+ }
233
+ async function stop(chatId, context) {
234
+ const stopped = await context.chats.runs.stop(chatId);
235
+ if (!stopped.ok) return problemResponse(stopped.error);
236
+ return new Response(null, { status: 204 });
237
+ }
238
+ return {
239
+ respond,
240
+ prepare,
241
+ resume,
242
+ stop
243
+ };
244
+ }
245
+ //#endregion
246
+ export { createAssistant };
@@ -0,0 +1,3 @@
1
+ import { n as Embedder, o as KnowledgeHit } from "../../knowledge-BXBbT0Tr.js";
2
+ import { a as SupabaseAiSession, c as modelName, d as supabaseEmbed, f as toSourceParts, i as SearchToolResult, l as rerankWith, n as Reranker, o as SupabaseEmbedOptions, r as SearchToolOptions, s as embedWith, t as EmbedWithOptions, u as searchTool } from "../../embeddings-C9KGQnXt.js";
3
+ export { type EmbedWithOptions, type Embedder, type KnowledgeHit, type Reranker, type SearchToolOptions, type SearchToolResult, type SupabaseAiSession, type SupabaseEmbedOptions, embedWith, modelName, rerankWith, searchTool, supabaseEmbed, toSourceParts };
@@ -0,0 +1,2 @@
1
+ import { a as supabaseEmbed, i as searchTool, n as modelName, o as toSourceParts, r as rerankWith, t as embedWith } from "../../embeddings-4ZvFzjsU.js";
2
+ export { embedWith, modelName, rerankWith, searchTool, supabaseEmbed, toSourceParts };
@@ -0,0 +1,61 @@
1
+ /// <reference lib="esnext.temporal" />
2
+ import { b as DbError, t as AsyncResult } from "../../result-D7y2fT87.js";
3
+ import { i as AiFilePart } from "../../message-CfDoR0Y6.js";
4
+ import { c as AiFileSource, f as AiFiles } from "../../types-C05bxW-W.js";
5
+ import { Experimental_DownloadFunction } from "ai";
6
+ //#region src/ai-sdk/files/files.d.ts
7
+ interface AiFileDownloadOptions {
8
+ /**
9
+ * How other URLs download: the SDK's `createDownload()` by default, or
10
+ * `false` to refuse every URL that isn't `supabase-storage://`.
11
+ */
12
+ readonly fallback?: Experimental_DownloadFunction | false;
13
+ readonly abortSignal?: AbortSignal;
14
+ }
15
+ /** Thrown by the download function, so the SDK reports a failed file part. */
16
+ export declare class AiFileDownloadError extends Error {
17
+ readonly error: DbError;
18
+ constructor(url: URL, error: DbError);
19
+ }
20
+ /**
21
+ * The SDK's `experimental_download` for messages that hold
22
+ * `supabase-storage://` file URLs: it reads each file as the caller, so a
23
+ * user can never send a model someone else's file, and keeps the
24
+ * `maxBytes` limit of `createAiFiles`.
25
+ */
26
+ export declare function aiFileDownload(files: AiFiles, options?: AiFileDownloadOptions): Experimental_DownloadFunction;
27
+ /** A file a model generated: the SDK's `GeneratedFile`, typed structurally. */
28
+ interface GeneratedFileLike {
29
+ readonly uint8Array: Uint8Array;
30
+ readonly mediaType: string;
31
+ }
32
+ interface SaveGeneratedOptions {
33
+ readonly organizationId: string;
34
+ readonly ownerId: string;
35
+ readonly chatId?: string;
36
+ /** The file name for the n-th file; default `generated-{n}.{ext}`. */
37
+ readonly filename?: (file: GeneratedFileLike, index: number) => string;
38
+ readonly source?: AiFileSource;
39
+ }
40
+ /**
41
+ * Stores what `generateImage`, `generateSpeech` or a model's file output
42
+ * returned (service role) and gives back file parts that point at them.
43
+ */
44
+ export declare function saveGeneratedFiles(files: AiFiles, generated: readonly GeneratedFileLike[], options: SaveGeneratedOptions): AsyncResult<readonly AiFilePart[]>;
45
+ interface ProviderFileUpload {
46
+ /** What the provider's file API returned: a file id or a file URI. */
47
+ readonly reference: string;
48
+ readonly expiresAt?: Temporal.Instant;
49
+ }
50
+ /**
51
+ * The provider's reference for a file, uploading it once with `upload`
52
+ * (such as the SDK's `uploadFile` or a provider client) and reusing the
53
+ * reference until it expires.
54
+ */
55
+ export declare function providerFile(files: AiFiles, fileId: string, provider: string, upload: (file: {
56
+ readonly data: Uint8Array;
57
+ readonly mediaType: string;
58
+ readonly filename: string;
59
+ }) => Promise<ProviderFileUpload>): AsyncResult<string>;
60
+ //#endregion
61
+ export type { AiFileDownloadOptions, GeneratedFileLike, ProviderFileUpload, SaveGeneratedOptions };