better-supabase 0.5.1 → 0.6.1

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-CHnPkCPd.js +1160 -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 +224 -0
  87. package/dist/blocks/attachments/index.js +234 -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 +259 -0
  97. package/dist/blocks/data-lifecycle/index.js +358 -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-BMqBgM3X.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-4JlOwgWG.js +2 -0
  181. package/dist/cli/gen-DeuDgPxN.js +3100 -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-C7Xd0Kda.js} +242 -27
  185. package/dist/cli/{introspect-BKlaIu_M.js → introspect-CSnMJ94U.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-C8tnlHSb.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-C_4JwyiM.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-CLqs9-OA.js +130 -0
  209. package/dist/composite-pSfeJNce.d.ts +146 -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-CdPDPpFs.d.ts +25 -0
  258. package/dist/framework-xjTBoyBB.js +51 -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-C6DWVEVG.d.ts} +237 -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 +34924 -6609
  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-view-B8SlToQX.d.ts → support-view-33Oi07TT.d.ts} +1 -1
  430. package/dist/{support-wHnK6zp-.js → support-zIa1URaN.js} +32 -11
  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-CQt77F3T.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,3 @@
1
+ import { i as sqlTransport, r as rpcTransport, t as BlockTransport } from "../../block-transport-DvaoPuZ9.js";
2
+ import { a as KnowledgeDocument, c as KnowledgeQuery, d as KnowledgeStatus, f as NewKnowledgeDocument, i as KnowledgeChunk, l as KnowledgeScope, m as createKnowledge, n as Embedder, o as KnowledgeHit, p as chunk, r as Knowledge, s as KnowledgeOptions, t as ChunkOptions, u as KnowledgeSearchOptions } from "../../knowledge-BXBbT0Tr.js";
3
+ export { type BlockTransport, type ChunkOptions, type Embedder, type Knowledge, type KnowledgeChunk, type KnowledgeDocument, type KnowledgeHit, type KnowledgeOptions, type KnowledgeQuery, type KnowledgeScope, type KnowledgeSearchOptions, type KnowledgeStatus, type NewKnowledgeDocument, chunk, createKnowledge, rpcTransport, sqlTransport };
@@ -0,0 +1,3 @@
1
+ import { n as rpcTransport, r as sqlTransport } from "../../block-transport-BLr-ZgLc.js";
2
+ import { n as chunk, r as createKnowledge } from "../../knowledge-CDmiMLew.js";
3
+ export { chunk, createKnowledge, rpcTransport, sqlTransport };
@@ -0,0 +1,8 @@
1
+ import { i as sqlTransport, r as rpcTransport, t as BlockTransport } from "../../block-transport-DvaoPuZ9.js";
2
+ import { n as Embedder } from "../../knowledge-BXBbT0Tr.js";
3
+ import { a as MemoryKind, c as MemoryRecord, d as RecalledMessage, i as MemoryHit, l as MemoryScope, n as MemoryCommand, o as MemoryNamespace, r as MemoryDocument, s as MemoryOptions, t as Memory, u as MemoryView } from "../../types-DGs5L0VN.js";
4
+ //#region src/blocks/memory/memory.d.ts
5
+ /** Core memory files, archival facts and recall over earlier chats. */
6
+ export declare function createMemory(options: MemoryOptions): Memory;
7
+ //#endregion
8
+ export { type BlockTransport, type Embedder, type Memory, type MemoryCommand, type MemoryDocument, type MemoryHit, type MemoryKind, type MemoryNamespace, type MemoryOptions, type MemoryRecord, type MemoryScope, type MemoryView, type RecalledMessage, rpcTransport, sqlTransport };
@@ -0,0 +1,289 @@
1
+ import { n as dbError } from "../../errors-B11Duf73.js";
2
+ import { a as ok, r as err, t as AsyncResult } from "../../result-DzUbqgdW.js";
3
+ import { t as vectorLiteral } from "../../search-CUWCRYKL.js";
4
+ import { n as rpcTransport, r as sqlTransport } from "../../block-transport-BLr-ZgLc.js";
5
+ import { C as run, O as textOf, d as isRecord, h as optionalText, i as blockCall, k as toInstant, l as injectableOf, n as applyTemporal, p as oneOf, x as recordsOf, y as recordOf } from "../../block-helpers-DWHxHsEQ.js";
6
+ import { t as checkVectors } from "../../knowledge-CDmiMLew.js";
7
+ //#region src/blocks/memory/rows.ts
8
+ const SCOPES = [
9
+ "user",
10
+ "agent",
11
+ "chat",
12
+ "project",
13
+ "organization"
14
+ ];
15
+ const scopeOf = (value) => oneOf(textOf(value), SCOPES, "user");
16
+ const instant = (value) => value instanceof Date ? toInstant(value) : toInstant(textOf(value));
17
+ function memoryOf(value) {
18
+ const row = recordOf(value, "memories");
19
+ return {
20
+ id: textOf(row["id"]),
21
+ organizationId: textOf(row["organization_id"]),
22
+ ownerId: optionalText(row["owner_id"]),
23
+ scope: scopeOf(row["scope"]),
24
+ agentId: optionalText(row["agent_id"]),
25
+ chatId: optionalText(row["chat_id"]),
26
+ projectId: optionalText(row["project_id"]),
27
+ kind: row["kind"] === "core" ? "core" : "archival",
28
+ path: optionalText(row["path"]),
29
+ content: textOf(row["content"]),
30
+ version: Number(row["version"] ?? 1),
31
+ embeddingModel: optionalText(row["embedding_model"]),
32
+ sourceMessageId: optionalText(row["source_message_id"]),
33
+ createdAt: instant(row["created_at"]),
34
+ updatedAt: instant(row["updated_at"])
35
+ };
36
+ }
37
+ function hitOf(value) {
38
+ const row = recordOf(value, "memory_search");
39
+ const similarity = row["similarity"];
40
+ return {
41
+ ...memoryOf(row),
42
+ score: Number(row["score"]),
43
+ similarity: typeof similarity === "number" ? similarity : void 0
44
+ };
45
+ }
46
+ function viewOf(value) {
47
+ if (!isRecord(value)) return void 0;
48
+ if (value["type"] === "file") return {
49
+ type: "file",
50
+ path: textOf(value["path"]),
51
+ content: textOf(value["content"]),
52
+ version: Number(value["version"])
53
+ };
54
+ return {
55
+ type: "directory",
56
+ path: textOf(value["path"]),
57
+ entries: recordsOf(value["entries"], "memory_view").map((entry) => ({
58
+ path: textOf(entry["path"]),
59
+ size: Number(entry["size"])
60
+ }))
61
+ };
62
+ }
63
+ function documentOf(value) {
64
+ const row = recordOf(value, "memory_document");
65
+ return {
66
+ content: textOf(row["content"]),
67
+ version: textOf(row["version"])
68
+ };
69
+ }
70
+ function recalledOf(value) {
71
+ return recordsOf(value, "recall_ai_messages").map((row) => ({
72
+ chatId: textOf(row["chat_id"]),
73
+ messageId: textOf(row["message_id"]),
74
+ similarity: Number(row["similarity"])
75
+ }));
76
+ }
77
+ //#endregion
78
+ //#region src/blocks/memory/memory.ts
79
+ const nsArg = (ns = {}) => {
80
+ const arg = {};
81
+ if (ns.scope !== void 0) arg["scope"] = ns.scope;
82
+ if (ns.agentId !== void 0) arg["agent_id"] = ns.agentId;
83
+ if (ns.chatId !== void 0) arg["chat_id"] = ns.chatId;
84
+ if (ns.projectId !== void 0) arg["project_id"] = ns.projectId;
85
+ if (ns.ownerId !== void 0) arg["owner_id"] = ns.ownerId;
86
+ return arg;
87
+ };
88
+ const noEmbedder = () => dbError("invalid_request", "createMemory has no embedder", { hint: "MEMORY_NO_EMBEDDER" });
89
+ /** Numbered lines, as the memory tool shows a file. */
90
+ function numbered(content, range) {
91
+ const lines = content.split("\n");
92
+ const from = Math.max(range?.[0] ?? 1, 1);
93
+ const to = range === void 0 || range[1] === -1 ? lines.length : range[1];
94
+ return lines.slice(from - 1, to).map((line, index) => `${String(from + index).padStart(6)}\t${line}`).join("\n");
95
+ }
96
+ const escapeTag = (text) => text.replaceAll("</memory", "<\\/memory");
97
+ /** Core memory files, archival facts and recall over earlier chats. */
98
+ function createMemory(options) {
99
+ applyTemporal(options);
100
+ const call = blockCall(options.transport, options.schema, options.mappers);
101
+ const service = blockCall(options.service ?? options.transport, options.schema, options.mappers);
102
+ const embedder = injectableOf("embedder", options.embedder);
103
+ const maxRender = options.maxRender ?? 8e3;
104
+ const threshold = options.dedupeThreshold ?? .92;
105
+ const embedOne = (text, signal) => embedder ? run(() => embedder.embed([text], signal === void 0 ? void 0 : { signal })).map((vectors) => vectors[0] === void 0 ? void 0 : vectorLiteral(vectors[0])) : AsyncResult.ok(void 0);
106
+ const view = (organizationId, path = "/memories", ns) => call("memory_view", {
107
+ tenant: organizationId,
108
+ path,
109
+ ns: nsArg(ns)
110
+ }, viewOf);
111
+ const core = {
112
+ view,
113
+ write: (organizationId, path, content, ns, writeOptions = {}) => call("memory_create", {
114
+ tenant: organizationId,
115
+ path,
116
+ content,
117
+ ns: nsArg(ns),
118
+ expected_version: writeOptions.expectedVersion
119
+ }, memoryOf),
120
+ strReplace: (organizationId, path, oldText, newText, ns) => call("memory_str_replace", {
121
+ tenant: organizationId,
122
+ path,
123
+ old_text: oldText,
124
+ new_text: newText,
125
+ ns: nsArg(ns)
126
+ }, memoryOf),
127
+ insert: (organizationId, path, line, text, ns) => call("memory_insert", {
128
+ tenant: organizationId,
129
+ path,
130
+ insert_line: line,
131
+ insert_text: text,
132
+ ns: nsArg(ns)
133
+ }, memoryOf),
134
+ remove: (organizationId, path, ns) => call("memory_delete", {
135
+ tenant: organizationId,
136
+ path,
137
+ ns: nsArg(ns)
138
+ }, Number),
139
+ rename: (organizationId, oldPath, newPath, ns) => call("memory_rename", {
140
+ tenant: organizationId,
141
+ old_path: oldPath,
142
+ new_path: newPath,
143
+ ns: nsArg(ns)
144
+ }, Number),
145
+ list: (organizationId, ns) => call("memory_list", {
146
+ tenant: organizationId,
147
+ ns: nsArg(ns),
148
+ kind: "core"
149
+ }, (value) => recordsOf(value, "memory_list").map(memoryOf))
150
+ };
151
+ const save = (organizationId, content, ns, saveOptions = {}, viaService = false, embedded) => (embedded === void 0 ? embedOne(content) : AsyncResult.ok(embedded)).andThen((embedding) => (viaService ? service : call)("memory_save", {
152
+ tenant: organizationId,
153
+ content,
154
+ ns: nsArg(ns),
155
+ embedding,
156
+ model: embedding === void 0 ? void 0 : embedder?.model,
157
+ source_message_id: saveOptions.sourceMessageId
158
+ }, memoryOf));
159
+ const search = (organizationId, query, ns, searchOptions = {}, viaService = false, embedded) => (embedded === void 0 ? embedOne(query, searchOptions.signal) : AsyncResult.ok(embedded)).andThen((embedding) => (viaService ? service : call)("memory_search", {
160
+ tenant: organizationId,
161
+ query_embedding: embedding,
162
+ query_text: query,
163
+ ns: nsArg(ns),
164
+ k: searchOptions.k
165
+ }, (value) => recordsOf(value, "memory_search").map(hitOf)));
166
+ const runCommand = (organizationId, command, ns) => {
167
+ switch (command.command) {
168
+ case "view": return view(organizationId, command.path, ns).map((result) => {
169
+ if (result === void 0) return `${command.path} does not exist.`;
170
+ if (result.type === "file") return `Here's the content of ${result.path} with line numbers:\n${numbered(result.content, command.view_range)}`;
171
+ const entries = result.entries.map((entry) => `${String(entry.size)}\t${entry.path}`);
172
+ return `Here are the files in ${result.path}:\n${entries.join("\n")}`;
173
+ });
174
+ case "create": return core.write(organizationId, command.path, command.file_text, ns).map(() => `File created successfully at: ${command.path}`);
175
+ case "str_replace": return core.strReplace(organizationId, command.path, command.old_str, command.new_str ?? "", ns).map(() => `The memory file ${command.path} has been edited.`);
176
+ case "insert": return core.insert(organizationId, command.path, command.insert_line, command.insert_text, ns).map(() => `The memory file ${command.path} has been edited.`);
177
+ case "delete": return core.remove(organizationId, command.path, ns).map((count) => count === 0 ? `${command.path} does not exist.` : `Successfully deleted ${command.path}`);
178
+ case "rename": return core.rename(organizationId, command.old_path, command.new_path, ns).map(() => `Successfully renamed ${command.old_path} to ${command.new_path}`);
179
+ default: {
180
+ const unknown = command;
181
+ return AsyncResult.err(dbError("invalid_request", `Unknown memory command ${JSON.stringify(unknown)}`, { hint: "MEMORY_COMMAND" }));
182
+ }
183
+ }
184
+ };
185
+ return {
186
+ core,
187
+ run: runCommand,
188
+ archival: {
189
+ save: (organizationId, content, ns, saveOptions) => save(organizationId, content, ns, saveOptions),
190
+ search: (organizationId, query, ns, searchOptions) => search(organizationId, query, ns, searchOptions),
191
+ list: (organizationId, ns, listOptions = {}) => call("memory_list", {
192
+ tenant: organizationId,
193
+ ns: nsArg(ns),
194
+ kind: "archival",
195
+ max_rows: listOptions.limit
196
+ }, (value) => recordsOf(value, "memory_list").map(memoryOf)),
197
+ forget: (memoryId, forgetOptions = {}) => call("memory_forget", {
198
+ memory_id: memoryId,
199
+ superseded_by: forgetOptions.supersededBy
200
+ }, (value) => value === true)
201
+ },
202
+ recall: {
203
+ index: (message) => embedder ? embedOne(message.text).andThen((embedding) => service("set_ai_message_embedding", {
204
+ chat_id: message.chatId,
205
+ message_id: message.messageId,
206
+ user_id: message.userId,
207
+ tenant: message.organizationId,
208
+ embedding,
209
+ model: embedder.model
210
+ }, (value) => value === true)) : AsyncResult.err(noEmbedder()),
211
+ search: (organizationId, query, recallOptions = {}) => embedder ? embedOne(query, recallOptions.signal).andThen((embedding) => call("recall_ai_messages", {
212
+ tenant: organizationId,
213
+ query_embedding: embedding,
214
+ k: recallOptions.k,
215
+ exclude_chat: recallOptions.excludeChat,
216
+ owner: recallOptions.ownerId
217
+ }, recalledOf)) : AsyncResult.err(noEmbedder())
218
+ },
219
+ render: (organizationId, ns) => core.list(organizationId, ns).map((files) => {
220
+ if (files.length === 0) return "";
221
+ const close = "</memories>";
222
+ let text = "<memories>\n";
223
+ for (const file of files) {
224
+ const block = `<memory path="${file.path ?? ""}">\n${escapeTag(file.content)}\n</memory>\n`;
225
+ if (text.length + block.length + 11 > maxRender) {
226
+ text += `<!-- ${String(files.length)} files; the rest is cut at ${String(maxRender)} characters -->\n`;
227
+ break;
228
+ }
229
+ text += block;
230
+ }
231
+ return text + close;
232
+ }),
233
+ saveExtracted: (organizationId, facts, ns, saveOptions) => AsyncResult.from(async () => {
234
+ const saved = [];
235
+ const contents = facts.map((fact) => fact.trim()).filter((content) => content !== "");
236
+ if (contents.length === 0) return ok(saved);
237
+ let embeddings = [];
238
+ if (embedder) {
239
+ const vectors = await run(() => embedder.embed(contents));
240
+ if (!vectors.ok) return vectors;
241
+ const invalid = checkVectors(vectors.data, contents.length);
242
+ if (invalid) return err(invalid);
243
+ embeddings = vectors.data.map((vector) => vectorLiteral(vector));
244
+ }
245
+ for (const [index, content] of contents.entries()) {
246
+ const embedding = embeddings[index];
247
+ const similar = await search(organizationId, content, ns, { k: 1 }, true, embedding);
248
+ if (!similar.ok) return similar;
249
+ const nearest = similar.data[0];
250
+ if (nearest !== void 0 && (nearest.content === content || (nearest.similarity ?? 0) >= threshold)) continue;
251
+ const record = await save(organizationId, content, ns, saveOptions, true, embedding);
252
+ if (!record.ok) return record;
253
+ saved.push(record.data);
254
+ }
255
+ return ok(saved);
256
+ }),
257
+ embedPending: (embedOptions = {}) => embedder ? service("pending_memory_embeddings", { batch: embedOptions.batch }, (value) => recordsOf(value, "pending_memory_embeddings")).andThen((rows) => AsyncResult.from(async () => {
258
+ if (rows.length === 0) return ok(0);
259
+ const vectors = await run(() => embedder.embed(rows.map((row) => textOf(row["content"])), embedOptions.signal === void 0 ? void 0 : { signal: embedOptions.signal }));
260
+ if (!vectors.ok) return vectors;
261
+ const invalid = checkVectors(vectors.data, rows.length);
262
+ if (invalid) return err(invalid);
263
+ return service("set_memory_embeddings", {
264
+ items: { items: rows.map((row, index) => ({
265
+ id: textOf(row["id"]),
266
+ hash: row["hash"],
267
+ embedding: vectorLiteral(vectors.data[index] ?? [])
268
+ })) },
269
+ model: embedder.model
270
+ }, Number);
271
+ })) : AsyncResult.err(noEmbedder()),
272
+ documents: {
273
+ read: (scopeKey, path) => service("memory_document_read", {
274
+ scope_key: scopeKey,
275
+ path
276
+ }, (value) => isRecord(value) ? documentOf(value) : void 0),
277
+ write: (scopeKey, path, content, writeOptions) => service("memory_document_write", {
278
+ scope_key: scopeKey,
279
+ path,
280
+ content,
281
+ expected_version: writeOptions.expectedVersion,
282
+ expires_in: writeOptions.expiresIn
283
+ }, documentOf),
284
+ purge: (batch) => service("purge_memory_documents", { batch }, Number)
285
+ }
286
+ };
287
+ }
288
+ //#endregion
289
+ export { createMemory, rpcTransport, sqlTransport };
@@ -0,0 +1,297 @@
1
+ /// <reference lib="esnext.temporal" />
2
+ import { t as AsyncResult, w as ErrorMapper } from "../../result-D7y2fT87.js";
3
+ import { i as sqlTransport, n as RpcClient, r as rpcTransport, t as BlockTransport } from "../../block-transport-DvaoPuZ9.js";
4
+ import { m as RequestContext } from "../../plugin-FGY8UhYm.js";
5
+ import { a as EventHub } from "../../events-DWDhx77e.js";
6
+ import { i as CursorPageOptions, r as BlockTemporalOptions } from "../../block-helpers-CKtbFcRv.js";
7
+ import { r as EventSink, t as CloudEvent } from "../../cloud-event-C1JCc1bH.js";
8
+ import { a as BlockTransportMiddleware, d as extendBlock, f as withBlockHooks, n as BlockHooks, p as wrapTransport } from "../../block-hooks-plbZ0AbJ.js";
9
+ import { a as NotificationSubject, i as NotificationItem, n as NotificationMessage, o as RenderedText, r as NotificationSendResult, t as NotificationChannel } from "../../channel-_2Mx1Oyu.js";
10
+ import { StandardSchemaV1 } from "@standard-schema/spec";
11
+ //#region src/blocks/notifications/notifications.d.ts
12
+ /** Notification type to the Standard Schema of its `data`. */
13
+ type NotificationTypes = Readonly<Record<string, StandardSchemaV1>>;
14
+ type TypeName<K extends NotificationTypes> = keyof K & string;
15
+ interface SendInput<D = unknown> {
16
+ /** Who gets it. Watchers of `subject` and the `notification_audience` hook add more. */
17
+ readonly recipients?: readonly string[];
18
+ /** The organization; required when an authenticated user sends. */
19
+ readonly tenant?: string;
20
+ readonly subject?: NotificationSubject;
21
+ readonly summary?: string;
22
+ readonly actionPath?: string;
23
+ /** One of `sql.modules.notifications.options.priorities`. Defaults to `normal`. */
24
+ readonly priority?: string;
25
+ readonly data: D;
26
+ /** With a key, sending again (per tenant) returns the first notification. */
27
+ readonly key?: string;
28
+ /** Defaults to `sql.modules.notifications.options.channels`. */
29
+ readonly channels?: readonly string[];
30
+ /** Also notify the user who caused it. Defaults to `false`. */
31
+ readonly includeActor?: boolean;
32
+ /**
33
+ * `participating` (default) reaches subject watchers at both levels;
34
+ * `all` is routine activity that only `all` watchers get.
35
+ */
36
+ readonly activity?: "participating" | "all";
37
+ /** Create it already resolved, e.g. for a record of a finished approval. */
38
+ readonly resolved?: boolean;
39
+ /** The actor, when the service sends on a user's behalf. */
40
+ readonly actorId?: string;
41
+ /**
42
+ * Add the watchers of `subject`. Defaults to `true`; `false` reaches only
43
+ * `recipients` and the audience hook (members ignoring the subject stay
44
+ * out either way).
45
+ */
46
+ readonly watchers?: boolean;
47
+ /** Users left out after the watchers and the audience hook are added. */
48
+ readonly exclude?: readonly string[];
49
+ }
50
+ interface ListOptions<K extends string = string> extends CursorPageOptions<Temporal.Instant | Pick<NotificationItem, "createdAt" | "id">> {
51
+ readonly tenant?: string;
52
+ readonly status?: "all" | "unread" | "read" | "unresolved" | "settled";
53
+ readonly read?: boolean;
54
+ readonly resolved?: boolean;
55
+ readonly dismissed?: boolean | null;
56
+ readonly types?: readonly K[];
57
+ readonly subjectTypes?: readonly string[];
58
+ readonly search?: string;
59
+ /**
60
+ * Page: only notifications older than this. Pass the last item of the
61
+ * previous page; a bare instant skips items created at that same instant.
62
+ */
63
+ readonly cursor?: Temporal.Instant | Pick<NotificationItem, "createdAt" | "id">;
64
+ /** Up to 200. Defaults to 50. */
65
+ readonly limit?: number;
66
+ /** Passed to `render`. */
67
+ readonly locale?: string;
68
+ /**
69
+ * `actor` adds each item's actor profile (`id` and the public profile
70
+ * columns), read in one call from the `profiles` module's table.
71
+ */
72
+ readonly include?: readonly "actor"[];
73
+ }
74
+ interface PageOptions<K extends string = string> extends Omit<ListOptions<K>, "before" | "cursor"> {
75
+ readonly offset?: number;
76
+ }
77
+ interface NotificationPage<K extends string = string, R extends Rendered<K> = Rendered<K>> {
78
+ readonly items: readonly R[];
79
+ readonly total: number;
80
+ }
81
+ interface NotificationSubscription {
82
+ readonly subject: {
83
+ readonly type: string;
84
+ readonly id: string;
85
+ };
86
+ readonly level: SubscriptionLevel;
87
+ readonly tenant: string | null;
88
+ readonly createdAt: Temporal.Instant | null;
89
+ }
90
+ interface NotificationPreference {
91
+ readonly type: string;
92
+ readonly channel: string;
93
+ readonly enabled: boolean;
94
+ readonly tenant: string | null;
95
+ }
96
+ /** The actor of a notification, from the `profiles` module's table. */
97
+ interface NotificationActor {
98
+ readonly id: string;
99
+ readonly username?: string | null;
100
+ readonly fullName?: string | null;
101
+ readonly firstName?: string | null;
102
+ readonly lastName?: string | null;
103
+ readonly avatar?: string | null;
104
+ readonly avatarPath?: string | null;
105
+ readonly avatarUrl?: string | null;
106
+ }
107
+ type AvatarUrls = {
108
+ readonly url: string;
109
+ readonly bucket: string;
110
+ } | ((path: string) => string | null);
111
+ interface SentNotification {
112
+ readonly id: string;
113
+ readonly recipients: readonly string[];
114
+ }
115
+ interface NotificationUpdate {
116
+ readonly count: number;
117
+ readonly items: readonly NotificationItem[];
118
+ }
119
+ interface NotificationCounts {
120
+ readonly unread: number;
121
+ /** Unresolved notifications of the `actionable` types. */
122
+ readonly actionable: number;
123
+ readonly actionableSubjects: number;
124
+ }
125
+ type SubscriptionLevel = "participating" | "all" | "ignore";
126
+ interface DeliverOptions {
127
+ /** Channel names to work on. Defaults to every channel in `channels`. */
128
+ readonly channels?: readonly string[];
129
+ /** Deliveries per claim. Defaults to 50. */
130
+ readonly batch?: number;
131
+ /** How long a claimed delivery waits before another worker retries it. */
132
+ readonly lease?: string;
133
+ /**
134
+ * Tries before a delivery is `failed`. Defaults to 5. Retries wait a random
135
+ * time up to 30 seconds, doubling per attempt to an hour.
136
+ */
137
+ readonly maxAttempts?: number;
138
+ readonly budgetMs?: number;
139
+ }
140
+ interface DeliverResult {
141
+ readonly sent: number;
142
+ readonly skipped: number;
143
+ /** Deliveries that threw; retried later unless they ran out of attempts. */
144
+ readonly failed: number;
145
+ }
146
+ interface Rendered<K extends string = string, D = unknown> extends NotificationItem<K, D> {
147
+ /** What `render` returned. Absent without a `render` option. */
148
+ readonly text?: RenderedText;
149
+ /** With `include: ['actor']`: the actor's profile, or null. */
150
+ readonly actor?: NotificationActor | null;
151
+ }
152
+ /**
153
+ * A notification as `get`, `list` and `page` return it: its `data` parsed
154
+ * with its type's schema, so checking `type` narrows `data`.
155
+ */
156
+ type NotificationOf<K extends NotificationTypes> = { [N in TypeName<K>]: Rendered<N, StandardSchemaV1.InferOutput<K[N]>>; }[TypeName<K>];
157
+ interface NotificationsOptions<K extends NotificationTypes, H = undefined> extends BlockTemporalOptions {
158
+ /** `sqlTransport(postgres.asUser(claims))`, or over `postgres.admin` for the service. */
159
+ readonly transport: BlockTransport;
160
+ /**
161
+ * Each type's `data` schema. `send` validates against it, and `get`,
162
+ * `list` and `page` parse stored data with it, so keep a schema able to
163
+ * read the notifications already sent (or purge them). A stored value it
164
+ * rejects is a `validation` error with the hint `NOTIFICATION_DATA_INVALID`;
165
+ * a type no longer listed keeps its data as stored.
166
+ */
167
+ readonly types: K;
168
+ /** `withBlockHooks` hooks around the methods, such as a rule on `send`. */
169
+ readonly hooks?: NoInfer<BlockHooks<Notifications<K>>>;
170
+ /** `sql.modules.notifications.schema`. Defaults to `better_supabase`. */
171
+ readonly schema?: string;
172
+ /**
173
+ * Loads what `render` needs for a whole page at once (actor names,
174
+ * subject titles), so a list of 50 items costs one query instead of 50.
175
+ * Its result reaches `render` as `context.hydrated`.
176
+ */
177
+ readonly hydrate?: (items: readonly NotificationItem[], context: {
178
+ readonly locale?: string;
179
+ }) => H | Promise<H>;
180
+ /** Turns a notification into text at read time, in the reader's locale. */
181
+ readonly render?: (item: NotificationItem, context: {
182
+ readonly locale?: string;
183
+ readonly hydrated?: H;
184
+ }) => RenderedText;
185
+ /** Types that wait for an action; `counts().actionable` counts them. */
186
+ readonly actionable?: readonly TypeName<K>[];
187
+ readonly avatars?: AvatarUrls;
188
+ /** Senders for the non-`in_app` channels, used by `deliver()`. */
189
+ readonly channels?: readonly NotificationChannel[];
190
+ /** Runs after a notification is stored, e.g. to call Next's `updateTag`. */
191
+ readonly onSent?: (sent: {
192
+ readonly id: string;
193
+ readonly type: string;
194
+ readonly tenant: string | null;
195
+ readonly recipients: readonly string[];
196
+ }) => void | Promise<void>;
197
+ /** `betterSupabase.events`, for `notification.*` block events. */
198
+ readonly events?: EventHub;
199
+ readonly actorId?: string;
200
+ readonly context?: RequestContext;
201
+ /** Error mappers that run before the built-in ones. */
202
+ readonly mappers?: readonly ErrorMapper[];
203
+ }
204
+ /**
205
+ * The `notifications` SQL module as typed calls. `send` validates the
206
+ * data against its type's schema; the database checks the send permission,
207
+ * leaves out the actor and non-members and applies subscriptions and
208
+ * preferences.
209
+ */
210
+ interface Notifications<K extends NotificationTypes> {
211
+ /** The notification id, or `null` when nobody was left to notify. */
212
+ send<N extends TypeName<K>>(type: N, input: SendInput<StandardSchemaV1.InferInput<K[N]>>): AsyncResult<SentNotification | null>;
213
+ get(id: string, options?: Pick<ListOptions, "locale" | "include">): AsyncResult<NotificationOf<K> | null>;
214
+ list(options?: ListOptions<TypeName<K>>): AsyncResult<readonly NotificationOf<K>[]>;
215
+ page(options?: PageOptions<TypeName<K>>): AsyncResult<NotificationPage<TypeName<K>, NotificationOf<K>>>;
216
+ counts(options?: {
217
+ readonly tenant?: string;
218
+ }): AsyncResult<NotificationCounts>;
219
+ /** Marks the given notifications, or all of them, read. */
220
+ markRead(options?: {
221
+ readonly ids?: readonly string[];
222
+ readonly tenant?: string;
223
+ }): AsyncResult<NotificationUpdate>;
224
+ markUnread(options: {
225
+ readonly ids: readonly string[];
226
+ readonly tenant?: string;
227
+ }): AsyncResult<NotificationUpdate>;
228
+ dismiss(ids: readonly string[]): AsyncResult<NotificationUpdate>;
229
+ /** Resolves every recipient's notification of a type about a subject. */
230
+ resolve(input: {
231
+ readonly type: TypeName<K>;
232
+ readonly subject: NotificationSubject;
233
+ readonly tenant?: string;
234
+ }): AsyncResult<NotificationUpdate>;
235
+ /** Sets the user's level for a subject; `null` removes it. */
236
+ subscribe(input: {
237
+ readonly subject: NotificationSubject;
238
+ readonly level: SubscriptionLevel | null;
239
+ readonly tenant?: string;
240
+ /**
241
+ * Another member; the service can set it, and with `ifAbsent` so can a
242
+ * sender with the send permission in `tenant`.
243
+ */
244
+ readonly userId?: string;
245
+ /**
246
+ * Only add `level` when the member has no level for the subject, so an
247
+ * auto-follow keeps their own `ignore` or `all`.
248
+ */
249
+ readonly ifAbsent?: boolean;
250
+ }): AsyncResult<void>;
251
+ subscriptions(options?: {
252
+ readonly tenant?: string;
253
+ readonly subject?: {
254
+ readonly type: string;
255
+ readonly id?: string;
256
+ };
257
+ }): AsyncResult<readonly NotificationSubscription[]>;
258
+ preferences(options?: {
259
+ readonly tenant?: string;
260
+ }): AsyncResult<readonly NotificationPreference[]>;
261
+ /** Turns a type (`*` for all) on or off on a channel; `null` removes it. */
262
+ setPreference(input: {
263
+ readonly type: TypeName<K> | "*";
264
+ readonly channel: string;
265
+ readonly enabled: boolean | null;
266
+ /** One organization, or everywhere when omitted. */
267
+ readonly tenant?: string;
268
+ }): AsyncResult<void>;
269
+ /** Sends pending deliveries through `channels`. Run it from a cron or a job. */
270
+ deliver(options?: DeliverOptions): Promise<DeliverResult>;
271
+ /**
272
+ * Deletes up to `batch` (10,000) notifications older than `olderThan`
273
+ * (`90 days`) with their recipients and deliveries. Service only.
274
+ */
275
+ purge(olderThan?: string, batch?: number): AsyncResult<number>;
276
+ /**
277
+ * An `EventSink` that sends a notification for each event `map` returns
278
+ * one for. The key defaults to the event id and the tenant to its
279
+ * `partitionkey`, so a redelivered event sends nothing new. A failed send
280
+ * rejects, so the forwarder retries. The comments module already notifies
281
+ * `comment.mentioned`; don't map it again.
282
+ */
283
+ sink(options: NotificationSinkOptions<K>): EventSink;
284
+ }
285
+ /** A notification for `sink`, with its type next to the `send` input. */
286
+ type SinkNotification<K extends NotificationTypes> = { [N in TypeName<K>]: {
287
+ readonly type: N;
288
+ } & SendInput<StandardSchemaV1.InferInput<K[N]>>; }[TypeName<K>];
289
+ interface NotificationSinkOptions<K extends NotificationTypes> {
290
+ /** The notification for an event, or `null` to skip it. `event.type` has no `typePrefix`. */
291
+ map(event: CloudEvent): SinkNotification<K> | null | Promise<SinkNotification<K> | null>;
292
+ /** Stripped from each event type before `map`. Defaults to `dev.better-supabase.`. */
293
+ readonly typePrefix?: string;
294
+ }
295
+ export declare function createNotifications<const K extends NotificationTypes, H = undefined>(options: NotificationsOptions<K, H>): Notifications<K>;
296
+ //#endregion
297
+ export { type AvatarUrls, type BlockHooks, type BlockTransport, type BlockTransportMiddleware, type DeliverOptions, type DeliverResult, type ListOptions, type NotificationActor, type NotificationChannel, type NotificationCounts, type NotificationItem, type NotificationMessage, type NotificationOf, type NotificationPage, type NotificationPreference, type NotificationSendResult, type NotificationSinkOptions, type NotificationSubject, type NotificationSubscription, type NotificationTypes, type NotificationUpdate, type Notifications, type NotificationsOptions, type PageOptions, type Rendered, type RenderedText, type RpcClient, type SendInput, type SentNotification, type SinkNotification, type SubscriptionLevel, extendBlock, rpcTransport, sqlTransport, withBlockHooks, wrapTransport };