better-supabase 0.5.1 → 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 +187 -46
  2. package/dist/access-sql-B0dF-SoF.js +181 -0
  3. package/dist/{actor-DaJjqD5R.d.ts → actor-CQTlc1Hh.d.ts} +1 -1
  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-C_A-KEAz.js → doctor-B4JOm_ox.js} +991 -317
  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-DMa6M7hV.js → init-BIIwclPg.js} +242 -27
  185. package/dist/cli/{introspect-BKlaIu_M.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-Bo_NLT5n.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-BCtlgDQx.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-Bv7gvfzC.d.ts → config-D44Y7PAv.d.ts} +406 -214
  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-CFPX0Qft.d.ts → ended-jLfvw8h-.d.ts} +20 -2
  231. package/dist/{entitlements-BiJZ4t49.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-BgSHAYLf.js → impersonation-DcqaTBHx.js} +21 -6
  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-Daak8ukG.d.ts +54 -0
  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-Bn6HNKUe.js → resolve-D_IcnvFd.js} +248 -240
  385. package/dist/{impersonation-BmePsuxz.d.ts → resolve-KW8nCeL6.d.ts} +29 -69
  386. package/dist/{resource-mqfJW4YF.js → resource-BsvzCMlX.js} +4 -4
  387. package/dist/{resource-DNRFP7KR.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 -22
  396. package/dist/server/index.js +46 -14
  397. package/dist/{respond-BR1fJWOB.d.ts → server-CeVeeXwz.d.ts} +224 -85
  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 +313 -212
  413. package/dist/sql/index.js +34872 -6579
  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-wHnK6zp-.js → support-BivNqSpK.js} +32 -11
  430. package/dist/{support-view-B8SlToQX.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 +315 -41
  449. package/dist/testing/index.js +1046 -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-DOYTYwHP.js → version-Bvv6aLjZ.js} +1 -1
  465. package/dist/view-BeFcRV6G.js +99 -0
  466. package/dist/{view-CbgObAeb.d.ts → view-DbxLNu8L.d.ts} +22 -5
  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 +461 -20
  485. package/schemas/ai-message-v1.json +258 -0
  486. package/schemas/config-v1.json +1074 -140
  487. package/schemas/doctor-report-v1.json +20 -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 +47 -11
  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-CIdSQZad.js +0 -2
  504. package/dist/cli/gen-CjElD1Vw.js +0 -2241
  505. package/dist/cli/read-sets-VQcPgxU9.js +0 -436
  506. package/dist/cli/sql-CVx-1O8G.js +0 -373
  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/index-CWMDdEr4.d.ts +0 -50
  512. package/dist/index-DOESKG27.d.ts +0 -100
  513. package/dist/index-DmXSxbLi.d.ts +0 -62
  514. package/dist/index-Dp2VDwog.d.ts +0 -161
  515. package/dist/jobs/index.d.ts +0 -226
  516. package/dist/jobs/index.js +0 -1007
  517. package/dist/json-schema-m1fiwKgN.js +0 -208
  518. package/dist/kit-events-CTFDfSwb.js +0 -60
  519. package/dist/kit-transport-B82k1djG.d.ts +0 -33
  520. package/dist/kits-CGLLrNPd.js +0 -157
  521. package/dist/mfa-Cu96oJdw.d.ts +0 -30
  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-B1mZ7CgQ.js +0 -660
  530. package/dist/stats-Bqob3WqT.js +0 -592
  531. package/dist/support-CEPwlw2G.d.ts +0 -89
  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 -122
@@ -0,0 +1,715 @@
1
+ import { n as dbError } from "./errors-B11Duf73.js";
2
+ import { s as nowInstant } from "./temporal-BJGitm-h.js";
3
+ import { a as problemResponse } from "./problem-BreOl8b8.js";
4
+ import { d as isRecord } from "./block-helpers-DWHxHsEQ.js";
5
+ //#region src/ai-sdk/gateway.ts
6
+ /**
7
+ * `providerOptions` for `streamText` and agents that attribute the spend in
8
+ * the AI Gateway: `user` is the user id, and `tags` name the tenant, the chat
9
+ * and the feature. `extra` adds gateway options such as `order` or
10
+ * `zeroDataRetention`; its `tags` are appended.
11
+ */
12
+ function gatewayOptions(context, extra = {}) {
13
+ const tags = [];
14
+ if (context.organizationId !== void 0) tags.push(`org:${context.organizationId}`);
15
+ if (context.chatId !== void 0) tags.push(`chat:${context.chatId}`);
16
+ if (context.feature !== void 0) tags.push(`feature:${context.feature}`);
17
+ const more = extra["tags"];
18
+ if (Array.isArray(more)) {
19
+ for (const tag of more) if (typeof tag === "string") tags.push(tag);
20
+ }
21
+ return { gateway: {
22
+ ...extra,
23
+ ...context.userId === void 0 ? {} : { user: context.userId },
24
+ ...tags.length === 0 ? {} : { tags }
25
+ } };
26
+ }
27
+ const count = (value) => typeof value === "number" && Number.isFinite(value) ? value : 0;
28
+ /** Parses a USD amount (`"0.00042"` or a number) into micro-USD. */
29
+ function microUsd(value) {
30
+ const amount = typeof value === "number" ? value : typeof value === "string" && value.trim() !== "" ? Number(value) : NaN;
31
+ return Number.isFinite(amount) && amount >= 0 ? Math.round(amount * 1e6) : void 0;
32
+ }
33
+ /** The usage of a finished generation, with the gateway's cost when it has one. */
34
+ function usageOf(source) {
35
+ const usage = source.totalUsage ?? source.usage ?? {};
36
+ const input = count(usage.inputTokens);
37
+ const output = count(usage.outputTokens);
38
+ const gateway = isRecord(source.providerMetadata) && isRecord(source.providerMetadata["gateway"]) ? source.providerMetadata["gateway"] : {};
39
+ const generationId = gateway["generationId"];
40
+ return {
41
+ inputTokens: input,
42
+ outputTokens: output,
43
+ totalTokens: count(usage.totalTokens) || input + output,
44
+ cachedInputTokens: count(usage.inputTokenDetails?.cacheReadTokens),
45
+ reasoningTokens: count(usage.outputTokenDetails?.reasoningTokens),
46
+ generationId: typeof generationId === "string" ? generationId : void 0,
47
+ costMicroUsd: microUsd(gateway["cost"])
48
+ };
49
+ }
50
+ /** What `runs.release` stores for a generation that ended. */
51
+ function runRelease(status, usage, error) {
52
+ return {
53
+ status,
54
+ ...usage === void 0 ? {} : { usage: {
55
+ inputTokens: usage.inputTokens,
56
+ outputTokens: usage.outputTokens,
57
+ totalTokens: usage.totalTokens,
58
+ cachedInputTokens: usage.cachedInputTokens,
59
+ reasoningTokens: usage.reasoningTokens
60
+ } },
61
+ ...usage?.generationId === void 0 ? {} : { generationId: usage.generationId },
62
+ ...usage?.costMicroUsd === void 0 ? {} : { costMicroUsd: usage.costMicroUsd },
63
+ ...error === void 0 ? {} : { error }
64
+ };
65
+ }
66
+ /** The entries to pass to `usage.recordMany` for a generation. */
67
+ function usageEntries(usage, meters = {}) {
68
+ const entries = [{
69
+ meter: meters.input ?? "ai.input_tokens",
70
+ quantity: usage.inputTokens
71
+ }, {
72
+ meter: meters.output ?? "ai.output_tokens",
73
+ quantity: usage.outputTokens
74
+ }];
75
+ if (meters.cost !== void 0 && usage.costMicroUsd !== void 0) entries.push({
76
+ meter: meters.cost,
77
+ quantity: usage.costMicroUsd
78
+ });
79
+ return entries.filter((entry) => (entry.quantity ?? 0) > 0);
80
+ }
81
+ /**
82
+ * A 429 Problem Details response for a quota or rate limit: pass the
83
+ * `quota_exceeded` or `rate_limited` error a block returned, or the
84
+ * `UsageStatus` of a meter with nothing left. It carries `Retry-After`.
85
+ */
86
+ function problem429(decision, now = nowInstant()) {
87
+ if ("kind" in decision) return problemResponse(decision);
88
+ const retryAfter = Math.max(1, Math.ceil(now.until(decision.resetsAt).total("seconds")));
89
+ return problemResponse(dbError("quota_exceeded", `The ${decision.meter} quota is used up.`, {
90
+ meter: decision.meter,
91
+ ...decision.limit === void 0 ? {} : { limit: decision.limit },
92
+ retryAfter
93
+ }));
94
+ }
95
+ /**
96
+ * The quota check `createAssistant` runs before a generation: the error when
97
+ * `meter` has nothing left for the tenant, otherwise `undefined`.
98
+ */
99
+ function usageQuota(usage, meter) {
100
+ return async (organizationId) => {
101
+ const status = await usage.current(organizationId, meter);
102
+ if (!status.ok) return status.error;
103
+ const { remaining, limit } = status.data;
104
+ if (remaining === void 0 || remaining > 0) return;
105
+ const retryAfter = Math.max(1, Math.ceil(nowInstant().until(status.data.resetsAt).total("seconds")));
106
+ return dbError("quota_exceeded", `The ${meter} quota is used up.`, {
107
+ meter,
108
+ ...limit === void 0 ? {} : { limit },
109
+ retryAfter
110
+ });
111
+ };
112
+ }
113
+ /**
114
+ * A job handler that looks up a generation's cost in the AI Gateway and
115
+ * writes it to the run (`runs.setCost`). Enqueue it when `usageOf` found no
116
+ * cost; it throws so the queue retries while the gateway doesn't know it yet.
117
+ */
118
+ function costBackfill(options) {
119
+ return async (payload) => {
120
+ const info = await options.gateway.getGenerationInfo({ id: payload.generationId });
121
+ const cost = microUsd(info.totalCost) ?? 0;
122
+ await options.chats.runs.setCost(payload.generationId, cost, {
123
+ ...info.promptTokens === void 0 ? {} : { inputTokens: info.promptTokens },
124
+ ...info.completionTokens === void 0 ? {} : { outputTokens: info.completionTokens }
125
+ }).orThrow();
126
+ if (options.usage !== void 0 && options.meter !== void 0 && payload.organizationId !== void 0 && cost > 0) await options.usage.record(payload.organizationId, options.meter, {
127
+ quantity: cost,
128
+ idempotencyKey: `ai-cost:${payload.generationId}`,
129
+ source: "ai:gateway"
130
+ }).orThrow();
131
+ return cost;
132
+ };
133
+ }
134
+ const isLanguageModel = (model) => model.modelType === void 0 || model.modelType === null || model.modelType === "language";
135
+ /** The catalog row for a gateway model. */
136
+ function modelInputOf(model, plans) {
137
+ const pricing = {};
138
+ for (const [key, value] of Object.entries(model.pricing ?? {})) if (typeof value === "string") pricing[key] = value;
139
+ return {
140
+ id: model.id,
141
+ provider: model.id.split("/", 1)[0] ?? "gateway",
142
+ name: model.name,
143
+ pricing,
144
+ capabilities: {
145
+ ...model.modelType ? { modelType: model.modelType } : {},
146
+ ...model.description ? { description: model.description } : {}
147
+ },
148
+ ...plans === void 0 ? {} : { plans }
149
+ };
150
+ }
151
+ /**
152
+ * A job handler that copies the AI Gateway's model list into the chat
153
+ * block's catalog (`models.upsert`); schedule it daily.
154
+ */
155
+ function modelCatalogRefresh(options) {
156
+ const keep = options.filter ?? isLanguageModel;
157
+ return async () => {
158
+ const { models } = await options.gateway.getAvailableModels();
159
+ const rows = models.filter(keep).map((model) => modelInputOf(model, options.plans?.(model)));
160
+ return options.chats.models.upsert(rows, { prune: options.prune ?? false }).orThrow();
161
+ };
162
+ }
163
+ //#endregion
164
+ //#region src/ai-sdk/messages.ts
165
+ /** The `format` the chat tree stores next to an AI SDK message it keeps as is. */
166
+ const AI_SDK_UI_FORMAT = "ai-sdk-ui";
167
+ /** The output a denied tool call gets in the canonical history. */
168
+ const DENIED_TOOL_OUTPUT = "The tool call was denied.";
169
+ const meta = (value) => isRecord(value) ? { providerMetadata: value } : {};
170
+ /** Provider metadata is an object of objects per provider; JSON values inside. */
171
+ function isProviderMetadata(value) {
172
+ return isRecord(value) && Object.values(value).every(isRecord);
173
+ }
174
+ const isToolPart = (part) => part.type === "dynamic-tool" || part.type.startsWith("tool-");
175
+ /** Whether `value` has the shape of an AI SDK `UIMessage`. */
176
+ function isUIMessage(value) {
177
+ return isRecord(value) && typeof value["id"] === "string" && (value["role"] === "system" || value["role"] === "user" || value["role"] === "assistant") && Array.isArray(value["parts"]);
178
+ }
179
+ function toolParts(part) {
180
+ const toolName = part.type === "dynamic-tool" ? part.toolName : part.type.slice(5);
181
+ const parts = [{
182
+ type: "tool-call",
183
+ toolCallId: part.toolCallId,
184
+ toolName,
185
+ input: part.input ?? {},
186
+ ...part.providerExecuted === void 0 ? {} : { providerExecuted: part.providerExecuted },
187
+ ...meta(part.callProviderMetadata)
188
+ }];
189
+ const { approval } = part;
190
+ if (approval !== void 0) {
191
+ let state = "requested";
192
+ if (approval.approved === true) state = "approved";
193
+ else if (approval.approved === false) state = "denied";
194
+ parts.push({
195
+ type: "tool-approval",
196
+ toolCallId: part.toolCallId,
197
+ approvalId: approval.id,
198
+ state,
199
+ ...approval.reason === void 0 ? {} : { reason: approval.reason }
200
+ });
201
+ }
202
+ const result = (output, isError, metadata) => ({
203
+ type: "tool-result",
204
+ toolCallId: part.toolCallId,
205
+ toolName,
206
+ output,
207
+ ...isError ? { isError } : {},
208
+ ...meta(metadata)
209
+ });
210
+ switch (part.state) {
211
+ case "output-available":
212
+ parts.push(result(part.output, false, part.resultProviderMetadata));
213
+ break;
214
+ case "output-error":
215
+ parts.push(result(part.errorText, true, part.resultProviderMetadata));
216
+ break;
217
+ case "output-denied":
218
+ parts.push(result(part.approval.reason ?? "The tool call was denied.", true));
219
+ break;
220
+ case "input-streaming":
221
+ case "input-available":
222
+ case "approval-requested":
223
+ case "approval-responded": break;
224
+ default: return part;
225
+ }
226
+ return parts;
227
+ }
228
+ function fromPart(part) {
229
+ if (isToolPart(part)) return toolParts(part);
230
+ switch (part.type) {
231
+ case "text":
232
+ case "reasoning": return [{
233
+ type: part.type,
234
+ text: part.text,
235
+ ...part.state === void 0 ? {} : { state: part.state },
236
+ ...meta(part.providerMetadata)
237
+ }];
238
+ case "file": return [{
239
+ type: "file",
240
+ mediaType: part.mediaType,
241
+ url: part.url,
242
+ ...part.filename === void 0 ? {} : { filename: part.filename },
243
+ ...meta(part.providerMetadata)
244
+ }];
245
+ case "source-url": return [{
246
+ type: "source",
247
+ sourceType: "url",
248
+ id: part.sourceId,
249
+ url: part.url,
250
+ ...part.title === void 0 ? {} : { title: part.title },
251
+ ...meta(part.providerMetadata)
252
+ }];
253
+ case "source-document": return [{
254
+ type: "source",
255
+ sourceType: "document",
256
+ id: part.sourceId,
257
+ title: part.title,
258
+ mediaType: part.mediaType,
259
+ ...meta(part.providerMetadata)
260
+ }];
261
+ case "step-start": return [{
262
+ type: "step",
263
+ boundary: "start"
264
+ }];
265
+ case "custom": return [{
266
+ type: "data",
267
+ name: "ui.custom",
268
+ data: { kind: part.kind },
269
+ ...meta(part.providerMetadata)
270
+ }];
271
+ case "reasoning-file": return [{
272
+ type: "data",
273
+ name: "ui.reasoning-file",
274
+ data: {
275
+ mediaType: part.mediaType,
276
+ url: part.url
277
+ },
278
+ ...meta(part.providerMetadata)
279
+ }];
280
+ default:
281
+ if (part.type.startsWith("data-") && "data" in part) return [{
282
+ type: "data",
283
+ name: part.type.slice(5),
284
+ ..."id" in part && typeof part.id === "string" ? { id: part.id } : {},
285
+ data: part.data
286
+ }];
287
+ return [];
288
+ }
289
+ }
290
+ /**
291
+ * The canonical form of an AI SDK `UIMessage`. Tool parts become a
292
+ * `tool-call`, then a `tool-approval` and a `tool-result` as far as the
293
+ * call got; parts with no canonical counterpart become `data` parts named
294
+ * `ui.<type>`.
295
+ */
296
+ function fromUIMessage(message) {
297
+ return {
298
+ id: message.id,
299
+ role: message.role,
300
+ parts: message.parts.flatMap(fromPart),
301
+ ...isRecord(message.metadata) ? { metadata: message.metadata } : {}
302
+ };
303
+ }
304
+ function toToolPart({ call, approval, result }) {
305
+ const base = {
306
+ type: `tool-${call.toolName}`,
307
+ toolCallId: call.toolCallId,
308
+ input: call.input,
309
+ ...call.providerExecuted === void 0 ? {} : { providerExecuted: call.providerExecuted },
310
+ ...isProviderMetadata(call.providerMetadata) ? { callProviderMetadata: call.providerMetadata } : {}
311
+ };
312
+ const reason = approval?.reason === void 0 ? {} : { reason: approval.reason };
313
+ if (approval?.state === "denied") return result === void 0 ? {
314
+ ...base,
315
+ state: "approval-responded",
316
+ approval: {
317
+ id: approval.approvalId,
318
+ approved: false,
319
+ ...reason
320
+ }
321
+ } : {
322
+ ...base,
323
+ state: "output-denied",
324
+ approval: {
325
+ id: approval.approvalId,
326
+ approved: false,
327
+ ...reason
328
+ }
329
+ };
330
+ const approved = approval?.state === "approved" ? { approval: {
331
+ id: approval.approvalId,
332
+ approved: true
333
+ } } : {};
334
+ if (result !== void 0) {
335
+ const resultMeta = isProviderMetadata(result.providerMetadata) ? { resultProviderMetadata: result.providerMetadata } : {};
336
+ if (result.isError === true) return {
337
+ ...base,
338
+ ...approved,
339
+ ...resultMeta,
340
+ state: "output-error",
341
+ errorText: typeof result.output === "string" ? result.output : JSON.stringify(result.output)
342
+ };
343
+ return {
344
+ ...base,
345
+ ...approved,
346
+ ...resultMeta,
347
+ state: "output-available",
348
+ output: result.output
349
+ };
350
+ }
351
+ if (approval?.state === "requested") return {
352
+ ...base,
353
+ state: "approval-requested",
354
+ approval: { id: approval.approvalId }
355
+ };
356
+ if (approval?.state === "approved") return {
357
+ ...base,
358
+ state: "approval-responded",
359
+ approval: {
360
+ id: approval.approvalId,
361
+ approved: true,
362
+ ...reason
363
+ }
364
+ };
365
+ return {
366
+ ...base,
367
+ state: "input-available"
368
+ };
369
+ }
370
+ function toPart(part) {
371
+ const providerMetadata = isProviderMetadata(part.providerMetadata) ? { providerMetadata: part.providerMetadata } : {};
372
+ switch (part.type) {
373
+ case "text":
374
+ case "reasoning": return {
375
+ type: part.type,
376
+ text: part.text,
377
+ ...part.state === void 0 ? {} : { state: part.state },
378
+ ...providerMetadata
379
+ };
380
+ case "file": return {
381
+ type: "file",
382
+ mediaType: part.mediaType,
383
+ url: part.url,
384
+ ...part.filename === void 0 ? {} : { filename: part.filename },
385
+ ...providerMetadata
386
+ };
387
+ case "source": return part.sourceType === "url" ? {
388
+ type: "source-url",
389
+ sourceId: part.id,
390
+ url: part.url ?? "",
391
+ ...part.title === void 0 ? {} : { title: part.title },
392
+ ...providerMetadata
393
+ } : {
394
+ type: "source-document",
395
+ sourceId: part.id,
396
+ mediaType: part.mediaType ?? "application/octet-stream",
397
+ title: part.title ?? "",
398
+ ...providerMetadata
399
+ };
400
+ case "step": return part.boundary === "start" ? { type: "step-start" } : void 0;
401
+ case "data":
402
+ if (part.name === "ui.custom" && isRecord(part.data)) {
403
+ const kind = part.data["kind"];
404
+ return typeof kind === "string" && kind.includes(".") ? {
405
+ type: "custom",
406
+ kind,
407
+ ...providerMetadata
408
+ } : void 0;
409
+ }
410
+ if (part.name === "ui.reasoning-file" && isRecord(part.data)) {
411
+ const { mediaType, url } = part.data;
412
+ return typeof mediaType === "string" && typeof url === "string" ? {
413
+ type: "reasoning-file",
414
+ mediaType,
415
+ url,
416
+ ...providerMetadata
417
+ } : void 0;
418
+ }
419
+ return {
420
+ type: `data-${part.name}`,
421
+ ...part.id === void 0 ? {} : { id: part.id },
422
+ data: part.data
423
+ };
424
+ case "tool-call":
425
+ case "tool-result":
426
+ case "tool-approval": return;
427
+ default: return part;
428
+ }
429
+ }
430
+ function render(parts, tools, into, slots) {
431
+ for (const part of parts) {
432
+ if (part.type === "tool-call" || part.type === "tool-result" || part.type === "tool-approval") {
433
+ let state = tools.get(part.toolCallId);
434
+ if (part.type === "tool-call") {
435
+ state = {
436
+ ...state,
437
+ call: part
438
+ };
439
+ tools.set(part.toolCallId, state);
440
+ if (!slots.has(part.toolCallId)) {
441
+ slots.set(part.toolCallId, into.length);
442
+ into.push(toToolPart(state));
443
+ }
444
+ } else if (state !== void 0) {
445
+ if (part.type === "tool-result") state.result = part;
446
+ else state.approval = part;
447
+ }
448
+ const slot = slots.get(part.toolCallId);
449
+ if (state !== void 0 && slot !== void 0) into[slot] = toToolPart(state);
450
+ continue;
451
+ }
452
+ const converted = toPart(part);
453
+ if (converted !== void 0) into.push(converted);
454
+ }
455
+ }
456
+ function nativeOf(message) {
457
+ const stored = message;
458
+ return stored.format === "ai-sdk-ui" && isUIMessage(stored.native) ? stored.native : void 0;
459
+ }
460
+ /**
461
+ * The AI SDK form of a canonical message: the stored native message when the
462
+ * tree kept one (`format: "ai-sdk-ui"`), otherwise a conversion. A `tool`
463
+ * message becomes an assistant message.
464
+ */
465
+ function toUIMessage(message) {
466
+ const native = nativeOf(message);
467
+ if (native !== void 0) return native;
468
+ const parts = [];
469
+ render(message.parts, /* @__PURE__ */ new Map(), parts, /* @__PURE__ */ new Map());
470
+ return {
471
+ id: message.id,
472
+ role: message.role === "tool" ? "assistant" : message.role,
473
+ parts,
474
+ ...message.metadata === void 0 ? {} : { metadata: message.metadata }
475
+ };
476
+ }
477
+ /**
478
+ * Converts a history. Tool results and approvals in later messages, such as
479
+ * the `tool` messages of other SDKs, update the tool part of the assistant
480
+ * message that made the call.
481
+ */
482
+ function toUIMessages(messages) {
483
+ const out = [];
484
+ const tools = /* @__PURE__ */ new Map();
485
+ let owner;
486
+ for (const message of messages) {
487
+ const native = nativeOf(message);
488
+ if (native !== void 0) {
489
+ out.push(native);
490
+ owner = void 0;
491
+ continue;
492
+ }
493
+ if (message.role === "tool" && owner !== void 0) {
494
+ render(message.parts, tools, owner.parts, owner.slots);
495
+ continue;
496
+ }
497
+ const parts = [];
498
+ const slots = /* @__PURE__ */ new Map();
499
+ render(message.parts, tools, parts, slots);
500
+ out.push({
501
+ id: message.id,
502
+ role: message.role === "tool" ? "assistant" : message.role,
503
+ parts,
504
+ ...message.metadata === void 0 ? {} : { metadata: message.metadata }
505
+ });
506
+ owner = message.role === "user" ? void 0 : {
507
+ parts,
508
+ slots
509
+ };
510
+ }
511
+ return out;
512
+ }
513
+ const FETCHABLE_URL = /^(?:https?|data):/u;
514
+ function fileUrl(data) {
515
+ if (data instanceof URL) return data.href;
516
+ if (typeof data === "string") return FETCHABLE_URL.test(data) ? data : void 0;
517
+ if (isRecord(data) && data["type"] === "url") return fileUrl(data["url"]);
518
+ }
519
+ function outputOf(output) {
520
+ switch (output.type) {
521
+ case "text":
522
+ case "json":
523
+ case "content": return {
524
+ output: output.value,
525
+ isError: false
526
+ };
527
+ case "error-text":
528
+ case "error-json": return {
529
+ output: output.value,
530
+ isError: true
531
+ };
532
+ case "execution-denied": {
533
+ const reason = output.reason ?? "The tool call was denied.";
534
+ return {
535
+ output: reason,
536
+ isError: true,
537
+ denied: reason
538
+ };
539
+ }
540
+ default: return output;
541
+ }
542
+ }
543
+ /** Collects one turn's parts, keeping one approval part per tool call. */
544
+ var TurnParts = class {
545
+ parts = [];
546
+ #approvalAt = /* @__PURE__ */ new Map();
547
+ #callOf = /* @__PURE__ */ new Map();
548
+ constructor(approvals) {
549
+ for (const approval of approvals) this.#callOf.set(approval.approvalId, approval.toolCallId);
550
+ }
551
+ approval(part) {
552
+ this.#callOf.set(part.approvalId, part.toolCallId);
553
+ const at = this.#approvalAt.get(part.toolCallId);
554
+ if (at === void 0) {
555
+ this.#approvalAt.set(part.toolCallId, this.parts.length);
556
+ this.parts.push(part);
557
+ } else this.parts[at] = part;
558
+ }
559
+ callOf(approvalId) {
560
+ return this.#callOf.get(approvalId);
561
+ }
562
+ result(toolCallId, toolName, output) {
563
+ const result = outputOf(output);
564
+ if (result.denied !== void 0) {
565
+ const at = this.#approvalAt.get(toolCallId);
566
+ const current = at === void 0 ? void 0 : this.parts[at];
567
+ this.approval({
568
+ type: "tool-approval",
569
+ toolCallId,
570
+ approvalId: current?.type === "tool-approval" ? current.approvalId : `approval-${toolCallId}`,
571
+ state: "denied",
572
+ reason: result.denied
573
+ });
574
+ }
575
+ this.parts.push({
576
+ type: "tool-result",
577
+ toolCallId,
578
+ toolName,
579
+ output: result.output,
580
+ ...result.isError ? { isError: true } : {}
581
+ });
582
+ }
583
+ };
584
+ function assistantParts(message, turn) {
585
+ if (typeof message.content === "string") {
586
+ if (message.content !== "") turn.parts.push({
587
+ type: "text",
588
+ text: message.content,
589
+ state: "done"
590
+ });
591
+ return;
592
+ }
593
+ for (const part of message.content) switch (part.type) {
594
+ case "text":
595
+ case "reasoning":
596
+ turn.parts.push({
597
+ type: part.type,
598
+ text: part.text,
599
+ state: "done"
600
+ });
601
+ break;
602
+ case "file": {
603
+ const url = fileUrl(part.data);
604
+ if (url !== void 0) turn.parts.push({
605
+ type: "file",
606
+ mediaType: part.mediaType,
607
+ url,
608
+ ...part.filename === void 0 ? {} : { filename: part.filename }
609
+ });
610
+ break;
611
+ }
612
+ case "reasoning-file": {
613
+ const url = fileUrl(part.data);
614
+ if (url !== void 0) turn.parts.push({
615
+ type: "data",
616
+ name: "ui.reasoning-file",
617
+ data: {
618
+ mediaType: part.mediaType,
619
+ url
620
+ }
621
+ });
622
+ break;
623
+ }
624
+ case "custom":
625
+ turn.parts.push({
626
+ type: "data",
627
+ name: "ui.custom",
628
+ data: { kind: part.kind }
629
+ });
630
+ break;
631
+ case "tool-call":
632
+ turn.parts.push({
633
+ type: "tool-call",
634
+ toolCallId: part.toolCallId,
635
+ toolName: part.toolName,
636
+ input: part.input ?? {},
637
+ ...part.providerExecuted === void 0 ? {} : { providerExecuted: part.providerExecuted }
638
+ });
639
+ break;
640
+ case "tool-result":
641
+ turn.result(part.toolCallId, part.toolName, part.output);
642
+ break;
643
+ case "tool-approval-request":
644
+ turn.approval({
645
+ type: "tool-approval",
646
+ toolCallId: part.toolCallId,
647
+ approvalId: part.approvalId,
648
+ state: "requested"
649
+ });
650
+ break;
651
+ default: return part;
652
+ }
653
+ }
654
+ function toolMessageParts(message, turn) {
655
+ for (const part of message.content) switch (part.type) {
656
+ case "tool-result":
657
+ turn.result(part.toolCallId, part.toolName, part.output);
658
+ break;
659
+ case "tool-approval-response": {
660
+ const toolCallId = turn.callOf(part.approvalId);
661
+ if (toolCallId !== void 0) turn.approval({
662
+ type: "tool-approval",
663
+ toolCallId,
664
+ approvalId: part.approvalId,
665
+ state: part.approved ? "approved" : "denied",
666
+ ...part.reason === void 0 ? {} : { reason: part.reason }
667
+ });
668
+ break;
669
+ }
670
+ default: return part;
671
+ }
672
+ }
673
+ /**
674
+ * One answer in the canonical form, from the model messages an agent added
675
+ * in a turn (`result.messages` after the history). Each assistant message
676
+ * starts a step whose id is `<id>:<n>`, so saving the answer again after
677
+ * another step updates the same message.
678
+ */
679
+ function fromModelMessages(id, messages, options = {}) {
680
+ const approvals = options.approvals ?? [];
681
+ const turn = new TurnParts(approvals);
682
+ let step = 0;
683
+ for (const message of messages) if (message.role === "assistant") {
684
+ turn.parts.push({
685
+ type: "step",
686
+ boundary: "start",
687
+ stepId: `${id}:${step}`
688
+ });
689
+ step += 1;
690
+ assistantParts(message, turn);
691
+ } else if (message.role === "tool") toolMessageParts(message, turn);
692
+ for (const approval of approvals) turn.approval({
693
+ type: "tool-approval",
694
+ toolCallId: approval.toolCallId,
695
+ approvalId: approval.approvalId,
696
+ state: approval.state,
697
+ ...approval.reason === void 0 ? {} : { reason: approval.reason }
698
+ });
699
+ for (const source of options.sources ?? []) turn.parts.push({
700
+ type: "source",
701
+ sourceType: source.sourceType,
702
+ id: source.id,
703
+ ...source.url === void 0 ? {} : { url: source.url },
704
+ ...source.title === void 0 ? {} : { title: source.title },
705
+ ...source.mediaType === void 0 ? {} : { mediaType: source.mediaType },
706
+ ...meta(source.providerMetadata)
707
+ });
708
+ return {
709
+ id,
710
+ role: "assistant",
711
+ parts: turn.parts
712
+ };
713
+ }
714
+ //#endregion
715
+ export { isUIMessage as a, costBackfill as c, modelInputOf as d, problem429 as f, usageQuota as g, usageOf as h, fromUIMessage as i, gatewayOptions as l, usageEntries as m, DENIED_TOOL_OUTPUT as n, toUIMessage as o, runRelease as p, fromModelMessages as r, toUIMessages as s, AI_SDK_UI_FORMAT as t, modelCatalogRefresh as u };