gemi 0.123.0 → 0.125.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 (316) hide show
  1. package/dist/ai/AgentController.d.ts +185 -3
  2. package/dist/ai/AgentController.d.ts.map +1 -1
  3. package/dist/ai/client/index.d.ts +1 -1
  4. package/dist/ai/client/index.d.ts.map +1 -1
  5. package/dist/ai/client/index.js +38 -9
  6. package/dist/ai/client/index.js.map +1 -1
  7. package/dist/ai/client/reducer.d.ts.map +1 -1
  8. package/dist/ai/index.d.ts +2 -2
  9. package/dist/ai/index.d.ts.map +1 -1
  10. package/dist/ai/index.js +31 -48
  11. package/dist/ai/index.js.map +6 -15
  12. package/dist/ai/types.d.ts +26 -0
  13. package/dist/ai/types.d.ts.map +1 -1
  14. package/dist/ai/useChat.d.ts +35 -2
  15. package/dist/ai/useChat.d.ts.map +1 -1
  16. package/dist/app/index.js +1 -1
  17. package/dist/auth/AuthController.d.ts.map +1 -1
  18. package/dist/auth/AuthManager.d.ts +11 -0
  19. package/dist/auth/AuthManager.d.ts.map +1 -1
  20. package/dist/auth/AuthServiceProvider.d.ts +2 -0
  21. package/dist/auth/AuthServiceProvider.d.ts.map +1 -1
  22. package/dist/auth/config.d.ts +71 -2
  23. package/dist/auth/config.d.ts.map +1 -1
  24. package/dist/auth/oauth/providers.d.ts +10 -0
  25. package/dist/auth/oauth/providers.d.ts.map +1 -0
  26. package/dist/bun/plugin.js +1 -1
  27. package/dist/bun/preload.js +1 -1
  28. package/dist/{chunk-fyk07w01.js → chunk-0x1s02r1.js} +3 -3
  29. package/dist/{chunk-fyk07w01.js.map → chunk-0x1s02r1.js.map} +1 -1
  30. package/dist/{chunk-ycsrpf47.js → chunk-1jcngq6w.js} +3 -3
  31. package/dist/{chunk-ycsrpf47.js.map → chunk-1jcngq6w.js.map} +1 -1
  32. package/dist/{chunk-gwnmgkq5.js → chunk-1mxb44n9.js} +2 -2
  33. package/dist/{chunk-gwnmgkq5.js.map → chunk-1mxb44n9.js.map} +1 -1
  34. package/dist/{chunk-y67evsdy.js → chunk-1n40bdxf.js} +2 -2
  35. package/dist/{chunk-y67evsdy.js.map → chunk-1n40bdxf.js.map} +1 -1
  36. package/dist/chunk-1xmh61fg.js +5 -0
  37. package/dist/{chunk-tazvfppr.js.map → chunk-1xmh61fg.js.map} +1 -1
  38. package/dist/{chunk-sxa70wgn.js → chunk-3br5zr7a.js} +3 -3
  39. package/dist/{chunk-sxa70wgn.js.map → chunk-3br5zr7a.js.map} +1 -1
  40. package/dist/{chunk-w61sphn5.js → chunk-3kxe9geg.js} +3 -3
  41. package/dist/{chunk-w61sphn5.js.map → chunk-3kxe9geg.js.map} +1 -1
  42. package/dist/{chunk-w0jfqnw9.js → chunk-5fh4pvyt.js} +2 -2
  43. package/dist/{chunk-w0jfqnw9.js.map → chunk-5fh4pvyt.js.map} +1 -1
  44. package/dist/{chunk-hnrzm5pf.js → chunk-6gwxvmjv.js} +3 -3
  45. package/dist/{chunk-hnrzm5pf.js.map → chunk-6gwxvmjv.js.map} +1 -1
  46. package/dist/{chunk-j0cnsgjq.js → chunk-6q6bhkyf.js} +1 -1
  47. package/dist/{chunk-5a4qbtez.js → chunk-6vz75swk.js} +2 -2
  48. package/dist/{chunk-5a4qbtez.js.map → chunk-6vz75swk.js.map} +1 -1
  49. package/dist/chunk-6wgh7nk6.js +15 -0
  50. package/dist/{chunk-z23h4s1a.js.map → chunk-6wgh7nk6.js.map} +6 -5
  51. package/dist/chunk-7vrrgxwm.js +22 -0
  52. package/dist/chunk-7vrrgxwm.js.map +21 -0
  53. package/dist/{chunk-kvas36p6.js → chunk-7zj6bk9a.js} +2 -2
  54. package/dist/{chunk-kvas36p6.js.map → chunk-7zj6bk9a.js.map} +1 -1
  55. package/dist/{chunk-kdjhgtp9.js → chunk-8tvfmy1a.js} +4 -4
  56. package/dist/{chunk-kdjhgtp9.js.map → chunk-8tvfmy1a.js.map} +1 -1
  57. package/dist/{chunk-vd6zn8c4.js → chunk-910p6ne6.js} +2 -2
  58. package/dist/{chunk-vd6zn8c4.js.map → chunk-910p6ne6.js.map} +1 -1
  59. package/dist/{chunk-96a1459v.js → chunk-ap3g6rbw.js} +2 -2
  60. package/dist/{chunk-96a1459v.js.map → chunk-ap3g6rbw.js.map} +1 -1
  61. package/dist/{chunk-4qpypa3h.js → chunk-ayfjjgv2.js} +1 -1
  62. package/dist/chunk-b4x1dt3s.js +10 -0
  63. package/dist/chunk-b4x1dt3s.js.map +43 -0
  64. package/dist/{chunk-aafanq8n.js → chunk-b7a22evs.js} +3 -3
  65. package/dist/{chunk-aafanq8n.js.map → chunk-b7a22evs.js.map} +1 -1
  66. package/dist/{chunk-rjtmgbay.js → chunk-bny9s44t.js} +2 -2
  67. package/dist/{chunk-rjtmgbay.js.map → chunk-bny9s44t.js.map} +1 -1
  68. package/dist/{chunk-k17wx7gz.js → chunk-by5gwr8x.js} +2 -2
  69. package/dist/{chunk-k17wx7gz.js.map → chunk-by5gwr8x.js.map} +1 -1
  70. package/dist/{chunk-53hc0ah1.js → chunk-c0qpv8x7.js} +2 -2
  71. package/dist/{chunk-53hc0ah1.js.map → chunk-c0qpv8x7.js.map} +1 -1
  72. package/dist/{chunk-9t08wbkd.js → chunk-cpem1j1x.js} +2 -2
  73. package/dist/{chunk-9t08wbkd.js.map → chunk-cpem1j1x.js.map} +1 -1
  74. package/dist/{chunk-vwnd4jb5.js → chunk-crnfxn9n.js} +2 -2
  75. package/dist/{chunk-vwnd4jb5.js.map → chunk-crnfxn9n.js.map} +1 -1
  76. package/dist/{chunk-s5jxc63j.js → chunk-cwt8e782.js} +3 -3
  77. package/dist/{chunk-s5jxc63j.js.map → chunk-cwt8e782.js.map} +1 -1
  78. package/dist/{chunk-0tc0j3pf.js → chunk-dxyxd7b3.js} +2 -2
  79. package/dist/{chunk-0tc0j3pf.js.map → chunk-dxyxd7b3.js.map} +1 -1
  80. package/dist/{chunk-nf608sb1.js → chunk-dy58aztm.js} +2 -2
  81. package/dist/{chunk-nf608sb1.js.map → chunk-dy58aztm.js.map} +1 -1
  82. package/dist/chunk-entpqjyn.js +5 -0
  83. package/dist/chunk-entpqjyn.js.map +10 -0
  84. package/dist/{chunk-qen6587t.js → chunk-eq5svwca.js} +2 -2
  85. package/dist/{chunk-qen6587t.js.map → chunk-eq5svwca.js.map} +1 -1
  86. package/dist/{chunk-n1a2zj5z.js → chunk-erzfs4t2.js} +2 -2
  87. package/dist/{chunk-n1a2zj5z.js.map → chunk-erzfs4t2.js.map} +3 -3
  88. package/dist/{chunk-pfm9ngch.js → chunk-ex41d03h.js} +2 -2
  89. package/dist/{chunk-pfm9ngch.js.map → chunk-ex41d03h.js.map} +1 -1
  90. package/dist/{chunk-fxxbwyce.js → chunk-ey1xrbaz.js} +2 -2
  91. package/dist/{chunk-fxxbwyce.js.map → chunk-ey1xrbaz.js.map} +1 -1
  92. package/dist/chunk-eyptwf54.js +57 -0
  93. package/dist/{chunk-gvp6brdt.js.map → chunk-eyptwf54.js.map} +25 -22
  94. package/dist/{chunk-x0jahbqj.js → chunk-g52fcwca.js} +2 -2
  95. package/dist/{chunk-x0jahbqj.js.map → chunk-g52fcwca.js.map} +1 -1
  96. package/dist/{chunk-hs88b8gt.js → chunk-ghcvztxn.js} +2 -2
  97. package/dist/{chunk-hs88b8gt.js.map → chunk-ghcvztxn.js.map} +1 -1
  98. package/dist/{chunk-rjm1kj8n.js → chunk-gp00enrk.js} +1 -1
  99. package/dist/{chunk-08fcqny0.js → chunk-h8w9mzjj.js} +6 -6
  100. package/dist/{chunk-08fcqny0.js.map → chunk-h8w9mzjj.js.map} +7 -7
  101. package/dist/{chunk-9p7eq7bz.js → chunk-hff9w6rt.js} +2 -2
  102. package/dist/{chunk-9p7eq7bz.js.map → chunk-hff9w6rt.js.map} +1 -1
  103. package/dist/{chunk-ay8nat73.js → chunk-hxn0s3zh.js} +2 -2
  104. package/dist/{chunk-ay8nat73.js.map → chunk-hxn0s3zh.js.map} +1 -1
  105. package/dist/{chunk-de7hxe73.js → chunk-hzen9gh4.js} +2 -2
  106. package/dist/{chunk-de7hxe73.js.map → chunk-hzen9gh4.js.map} +1 -1
  107. package/dist/{chunk-xhmtph39.js → chunk-j10a0m7q.js} +1 -1
  108. package/dist/{chunk-wqharhrp.js → chunk-j12hpdxk.js} +1 -1
  109. package/dist/{chunk-bk2aheea.js → chunk-j5rwv09s.js} +2 -2
  110. package/dist/{chunk-bk2aheea.js.map → chunk-j5rwv09s.js.map} +1 -1
  111. package/dist/{chunk-zjej5vqh.js → chunk-jykkqwcy.js} +3 -3
  112. package/dist/{chunk-zjej5vqh.js.map → chunk-jykkqwcy.js.map} +1 -1
  113. package/dist/{chunk-9a9ef0f1.js → chunk-k1ebt28j.js} +2 -2
  114. package/dist/{chunk-9a9ef0f1.js.map → chunk-k1ebt28j.js.map} +1 -1
  115. package/dist/{chunk-q1e3q01h.js → chunk-kcsa57km.js} +2 -2
  116. package/dist/{chunk-q1e3q01h.js.map → chunk-kcsa57km.js.map} +1 -1
  117. package/dist/{chunk-r5tadf14.js → chunk-khdkrfxp.js} +2 -2
  118. package/dist/{chunk-r5tadf14.js.map → chunk-khdkrfxp.js.map} +1 -1
  119. package/dist/{chunk-fsy344zb.js → chunk-knq4ack4.js} +2 -2
  120. package/dist/{chunk-fsy344zb.js.map → chunk-knq4ack4.js.map} +1 -1
  121. package/dist/{chunk-f1thqe6j.js → chunk-m7pghdcy.js} +2 -2
  122. package/dist/{chunk-f1thqe6j.js.map → chunk-m7pghdcy.js.map} +1 -1
  123. package/dist/{chunk-enta97jb.js → chunk-mmqnq1qh.js} +3 -3
  124. package/dist/{chunk-enta97jb.js.map → chunk-mmqnq1qh.js.map} +1 -1
  125. package/dist/{chunk-0qmc7snf.js → chunk-n3z83qhq.js} +2 -2
  126. package/dist/{chunk-0qmc7snf.js.map → chunk-n3z83qhq.js.map} +1 -1
  127. package/dist/{chunk-mxbtcaed.js → chunk-npbf06c1.js} +2 -2
  128. package/dist/{chunk-mxbtcaed.js.map → chunk-npbf06c1.js.map} +1 -1
  129. package/dist/{chunk-6gjvqtcp.js → chunk-p5df4pn7.js} +2 -2
  130. package/dist/{chunk-6gjvqtcp.js.map → chunk-p5df4pn7.js.map} +1 -1
  131. package/dist/{chunk-ywgvxx35.js → chunk-p6jbmcrg.js} +2 -2
  132. package/dist/{chunk-ywgvxx35.js.map → chunk-p6jbmcrg.js.map} +1 -1
  133. package/dist/{chunk-d3ywmeb7.js → chunk-p7mvp5nf.js} +2 -2
  134. package/dist/{chunk-d3ywmeb7.js.map → chunk-p7mvp5nf.js.map} +1 -1
  135. package/dist/{chunk-52xkw2bs.js → chunk-q6ah4yjg.js} +2 -2
  136. package/dist/{chunk-52xkw2bs.js.map → chunk-q6ah4yjg.js.map} +1 -1
  137. package/dist/{chunk-6pxavyh3.js → chunk-r923001x.js} +2 -2
  138. package/dist/{chunk-6pxavyh3.js.map → chunk-r923001x.js.map} +1 -1
  139. package/dist/{chunk-1f1sb3w7.js → chunk-rany5zgk.js} +2 -2
  140. package/dist/{chunk-1f1sb3w7.js.map → chunk-rany5zgk.js.map} +1 -1
  141. package/dist/{chunk-30xxc6r7.js → chunk-rmgkc3a2.js} +2 -2
  142. package/dist/{chunk-30xxc6r7.js.map → chunk-rmgkc3a2.js.map} +1 -1
  143. package/dist/{chunk-ebx5hnqn.js → chunk-rvspb96n.js} +3 -3
  144. package/dist/{chunk-ebx5hnqn.js.map → chunk-rvspb96n.js.map} +1 -1
  145. package/dist/{chunk-kzstewtm.js → chunk-rwmja4zs.js} +2 -2
  146. package/dist/{chunk-kzstewtm.js.map → chunk-rwmja4zs.js.map} +1 -1
  147. package/dist/{chunk-8x73yyfs.js → chunk-s4semb89.js} +1 -1
  148. package/dist/chunk-s4xg69r9.js +24 -0
  149. package/dist/{chunk-vpgbn494.js.map → chunk-s4xg69r9.js.map} +2 -2
  150. package/dist/{chunk-58ffbwdc.js → chunk-stn0a56e.js} +2 -2
  151. package/dist/{chunk-58ffbwdc.js.map → chunk-stn0a56e.js.map} +1 -1
  152. package/dist/{chunk-73v34hw8.js → chunk-sv125fqq.js} +2 -2
  153. package/dist/{chunk-73v34hw8.js.map → chunk-sv125fqq.js.map} +1 -1
  154. package/dist/{chunk-h76mddt3.js → chunk-t2t63wa0.js} +2 -2
  155. package/dist/{chunk-h76mddt3.js.map → chunk-t2t63wa0.js.map} +1 -1
  156. package/dist/{chunk-675kzd7z.js → chunk-t6qpm2j7.js} +2 -2
  157. package/dist/{chunk-675kzd7z.js.map → chunk-t6qpm2j7.js.map} +1 -1
  158. package/dist/chunk-tabsxzg9.js +5 -0
  159. package/dist/chunk-tabsxzg9.js.map +13 -0
  160. package/dist/{chunk-2vc72qez.js → chunk-vhvvjaj3.js} +3 -3
  161. package/dist/{chunk-2vc72qez.js.map → chunk-vhvvjaj3.js.map} +1 -1
  162. package/dist/{chunk-2amj1eyp.js → chunk-x2j84d06.js} +2 -2
  163. package/dist/{chunk-2amj1eyp.js.map → chunk-x2j84d06.js.map} +1 -1
  164. package/dist/{chunk-dmj6ysym.js → chunk-xe2pm36q.js} +2 -2
  165. package/dist/{chunk-dmj6ysym.js.map → chunk-xe2pm36q.js.map} +1 -1
  166. package/dist/{chunk-rkgsvsrj.js → chunk-xfvegbxn.js} +2 -2
  167. package/dist/{chunk-rkgsvsrj.js.map → chunk-xfvegbxn.js.map} +1 -1
  168. package/dist/{chunk-nvngb4ed.js → chunk-y9f2see3.js} +3 -3
  169. package/dist/{chunk-nvngb4ed.js.map → chunk-y9f2see3.js.map} +1 -1
  170. package/dist/{chunk-1kdga1b2.js → chunk-yhht1j7f.js} +2 -2
  171. package/dist/{chunk-1kdga1b2.js.map → chunk-yhht1j7f.js.map} +1 -1
  172. package/dist/{chunk-eevna943.js → chunk-z5nfve1k.js} +2 -2
  173. package/dist/chunk-z5nfve1k.js.map +10 -0
  174. package/dist/{chunk-j8vc3bze.js → chunk-zq5375wd.js} +3 -3
  175. package/dist/{chunk-j8vc3bze.js.map → chunk-zq5375wd.js.map} +1 -1
  176. package/dist/chunks/{ThemeProvider-CgK2mmVV.js → ThemeProvider-CS2a1snV.js} +34 -3
  177. package/dist/chunks/ThemeProvider-CS2a1snV.js.map +1 -0
  178. package/dist/client/Mutation.d.ts +7 -6
  179. package/dist/client/Mutation.d.ts.map +1 -1
  180. package/dist/client/MutationError.d.ts +53 -1
  181. package/dist/client/MutationError.d.ts.map +1 -1
  182. package/dist/client/QueryResource.d.ts +9 -0
  183. package/dist/client/QueryResource.d.ts.map +1 -1
  184. package/dist/client/auth/useEmailCode.d.ts +3 -3
  185. package/dist/client/auth/useForgotPassword.d.ts +1 -1
  186. package/dist/client/auth/useResetPassword.d.ts +1 -1
  187. package/dist/client/auth/useSignIn.d.ts +1 -1
  188. package/dist/client/auth/useSignOut.d.ts +1 -1
  189. package/dist/client/auth/useSignUp.d.ts +1 -1
  190. package/dist/client/index.d.ts +4 -2
  191. package/dist/client/index.d.ts.map +1 -1
  192. package/dist/client/index.js +136 -9
  193. package/dist/client/index.js.map +1 -1
  194. package/dist/client/realtime/RealtimeClient.d.ts +8 -1
  195. package/dist/client/realtime/RealtimeClient.d.ts.map +1 -1
  196. package/dist/client/useMutation.d.ts +18 -8
  197. package/dist/client/useMutation.d.ts.map +1 -1
  198. package/dist/client/useSetQueryData.d.ts +69 -0
  199. package/dist/client/useSetQueryData.d.ts.map +1 -0
  200. package/dist/config/index.js +1 -1
  201. package/dist/console/run.js +2 -2
  202. package/dist/console/run.js.map +1 -1
  203. package/dist/container/index.js +2 -2
  204. package/dist/container/index.js.map +1 -1
  205. package/dist/database/index.js +2 -2
  206. package/dist/database/index.js.map +1 -1
  207. package/dist/email/index.js +2 -2
  208. package/dist/email/index.js.map +1 -1
  209. package/dist/facades/Auth.d.ts +29 -2
  210. package/dist/facades/Auth.d.ts.map +1 -1
  211. package/dist/facades/RateLimiter.d.ts +16 -1
  212. package/dist/facades/RateLimiter.d.ts.map +1 -1
  213. package/dist/facades/index.js +2 -2
  214. package/dist/facades/index.js.map +1 -1
  215. package/dist/foundation/index.js +2 -2
  216. package/dist/foundation/index.js.map +1 -1
  217. package/dist/http/HttpRequest.d.ts +14 -0
  218. package/dist/http/HttpRequest.d.ts.map +1 -1
  219. package/dist/http/McpRouter.d.ts +121 -2
  220. package/dist/http/McpRouter.d.ts.map +1 -1
  221. package/dist/http/RateLimitExceededError.d.ts +24 -0
  222. package/dist/http/RateLimitExceededError.d.ts.map +1 -0
  223. package/dist/http/RateLimitMiddleware.d.ts +2 -5
  224. package/dist/http/RateLimitMiddleware.d.ts.map +1 -1
  225. package/dist/http/index.d.ts +2 -1
  226. package/dist/http/index.d.ts.map +1 -1
  227. package/dist/http/index.js +2 -2
  228. package/dist/http/index.js.map +1 -1
  229. package/dist/http/refusal.d.ts +6 -1
  230. package/dist/http/refusal.d.ts.map +1 -1
  231. package/dist/http/requestContext.d.ts +3 -1
  232. package/dist/http/requestContext.d.ts.map +1 -1
  233. package/dist/http/requestState.d.ts +57 -0
  234. package/dist/http/requestState.d.ts.map +1 -0
  235. package/dist/i18n/dictionaryRuntime.js +2 -2
  236. package/dist/i18n/dictionaryRuntime.js.map +1 -1
  237. package/dist/i18n/index.js +2 -2
  238. package/dist/i18n/index.js.map +2 -2
  239. package/dist/kernel/index.js +2 -2
  240. package/dist/kernel/index.js.map +2 -2
  241. package/dist/orm/index.js +2 -2
  242. package/dist/orm/index.js.map +1 -1
  243. package/dist/server/Server.d.ts.map +1 -1
  244. package/dist/server/health.d.ts +67 -0
  245. package/dist/server/health.d.ts.map +1 -0
  246. package/dist/server/index.d.ts +1 -0
  247. package/dist/server/index.d.ts.map +1 -1
  248. package/dist/server/index.js +2 -2
  249. package/dist/server/index.js.map +5 -4
  250. package/dist/server/shutdown.d.ts +3 -4
  251. package/dist/server/shutdown.d.ts.map +1 -1
  252. package/dist/services/broadcast/BroadcastDriver.d.ts +3 -1
  253. package/dist/services/broadcast/BroadcastDriver.d.ts.map +1 -1
  254. package/dist/services/broadcast/BroadcastManager.d.ts.map +1 -1
  255. package/dist/services/broadcast/BroadcastServiceProvider.d.ts +10 -0
  256. package/dist/services/broadcast/BroadcastServiceProvider.d.ts.map +1 -1
  257. package/dist/services/broadcast/RedisBroadcastDriver.d.ts +155 -0
  258. package/dist/services/broadcast/RedisBroadcastDriver.d.ts.map +1 -0
  259. package/dist/services/broadcast/SocketHub.d.ts +9 -0
  260. package/dist/services/broadcast/SocketHub.d.ts.map +1 -1
  261. package/dist/services/broadcast/config.d.ts +16 -3
  262. package/dist/services/broadcast/config.d.ts.map +1 -1
  263. package/dist/services/broadcast/workerWarning.d.ts +10 -0
  264. package/dist/services/broadcast/workerWarning.d.ts.map +1 -0
  265. package/dist/services/features/gate.d.ts +11 -0
  266. package/dist/services/features/gate.d.ts.map +1 -0
  267. package/dist/services/index.d.ts +6 -5
  268. package/dist/services/index.d.ts.map +1 -1
  269. package/dist/services/index.js +3 -3
  270. package/dist/services/index.js.map +2 -2
  271. package/dist/services/logging/LogManager.d.ts +1 -0
  272. package/dist/services/logging/LogManager.d.ts.map +1 -1
  273. package/dist/services/logging/config.d.ts +23 -1
  274. package/dist/services/logging/config.d.ts.map +1 -1
  275. package/dist/services/logging/consoleSink.d.ts +25 -0
  276. package/dist/services/logging/consoleSink.d.ts.map +1 -0
  277. package/dist/services/mcp/McpRegistry.d.ts +106 -14
  278. package/dist/services/mcp/McpRegistry.d.ts.map +1 -1
  279. package/dist/services/mcp/http/McpHttpServer.d.ts +41 -2
  280. package/dist/services/mcp/http/McpHttpServer.d.ts.map +1 -1
  281. package/dist/services/mcp/toAgentTools.d.ts +21 -3
  282. package/dist/services/mcp/toAgentTools.d.ts.map +1 -1
  283. package/dist/services/queue/WorkerProcess.d.ts.map +1 -1
  284. package/dist/services/queue/work.js +2 -2
  285. package/dist/services/queue/work.js.map +5 -4
  286. package/dist/services/rate-limiter/RateLimiter.d.ts +12 -0
  287. package/dist/services/rate-limiter/RateLimiter.d.ts.map +1 -1
  288. package/dist/services/router/globalMiddleware.d.ts +4 -3
  289. package/dist/services/router/globalMiddleware.d.ts.map +1 -1
  290. package/dist/stats/route-table.js +1 -1
  291. package/dist/support/index.js +2 -2
  292. package/dist/support/index.js.map +1 -1
  293. package/dist/testing/index.js +1 -1
  294. package/dist/vitest/index.js +1 -1
  295. package/package.json +1 -1
  296. package/skills/gemi-react-best-practices/SKILL.md +1 -1
  297. package/skills/gemi-react-best-practices/rules/query-mutate-over-refetch.md +14 -0
  298. package/skills/gemi-react-best-practices/rules/routing-middleware-dsl.md +2 -1
  299. package/dist/chunk-39dx7xrz.js +0 -10
  300. package/dist/chunk-39dx7xrz.js.map +0 -43
  301. package/dist/chunk-d0wr9jk4.js +0 -5
  302. package/dist/chunk-d0wr9jk4.js.map +0 -12
  303. package/dist/chunk-eevna943.js.map +0 -10
  304. package/dist/chunk-gvp6brdt.js +0 -57
  305. package/dist/chunk-kc924zjz.js +0 -5
  306. package/dist/chunk-kc924zjz.js.map +0 -12
  307. package/dist/chunk-tazvfppr.js +0 -5
  308. package/dist/chunk-vpgbn494.js +0 -24
  309. package/dist/chunk-z23h4s1a.js +0 -14
  310. package/dist/chunks/ThemeProvider-CgK2mmVV.js.map +0 -1
  311. /package/dist/{chunk-j0cnsgjq.js.map → chunk-6q6bhkyf.js.map} +0 -0
  312. /package/dist/{chunk-4qpypa3h.js.map → chunk-ayfjjgv2.js.map} +0 -0
  313. /package/dist/{chunk-rjm1kj8n.js.map → chunk-gp00enrk.js.map} +0 -0
  314. /package/dist/{chunk-xhmtph39.js.map → chunk-j10a0m7q.js.map} +0 -0
  315. /package/dist/{chunk-wqharhrp.js.map → chunk-j12hpdxk.js.map} +0 -0
  316. /package/dist/{chunk-8x73yyfs.js.map → chunk-s4semb89.js.map} +0 -0
@@ -12,7 +12,7 @@ import { defaultNonceStore, MemoryNonceStore, type NonceRedisClient, type NonceS
12
12
  import { MemoryReceiptStore, type ReceiptClaim, type ReceiptRedisClient, type ReceiptStore, RedisReceiptStore, type RedisReceiptStoreOptions } from "./store/Receipts";
13
13
  import { defaultAgentStore, MemoryAgentStore } from "./store/MemoryAgentStore";
14
14
  import type { ErrorRedactionInfo } from "./redact";
15
- import type { AgentError, AgentMessage, PendingToolCall, ToolShapes } from "./types";
15
+ import type { AgentError, AgentMessage, ClientTurn, PendingToolCall, ToolShapes } from "./types";
16
16
  /**
17
17
  * Where conversations live.
18
18
  *
@@ -138,10 +138,92 @@ export { MemoryReceiptStore, type ReceiptClaim, type ReceiptRedisClient, type Re
138
138
  /** Where answered calls' nonces are spent (#445). See `store/Nonces.ts`. */
139
139
  export { defaultNonceStore, MemoryNonceStore, type NonceRedisClient, type NonceStore, RedisNonceStore, type RedisNonceStoreOptions, };
140
140
  export type AgentHookContext = {
141
+ /**
142
+ * The request that started the turn. Its `state` is the turn's own typed
143
+ * state (#887): a value set in `authorizeRequest()`, `instructions()` or
144
+ * `context()` (`req.state.set(key, value)`) is read here with
145
+ * `ctx.req.state.get(key)`, instead of a `WeakMap` keyed on the request.
146
+ * A request answering an approval is a new turn and starts with none.
147
+ */
141
148
  req: HttpRequest<any, any>;
142
149
  runId: string;
143
150
  threadId?: string;
144
151
  };
152
+ /**
153
+ * What `AgentController.startTurn` takes (#839).
154
+ */
155
+ export type AgentTurnParams<Body extends object = Record<string, unknown>> = {
156
+ /** The thread the turn is stored on, as a turn from `useChat` would be. */
157
+ threadId: string;
158
+ /** The user's message. Shorthand for `turn: { text }`, and wins over `turn.text`. */
159
+ text?: string;
160
+ /**
161
+ * The whole turn, for files or answers: `{ text, files, toolResults }`, as
162
+ * `useChat` sends it. Neither `text` nor `turn` is a turn with nothing in
163
+ * it, which lets the model continue the thread.
164
+ */
165
+ turn?: ClientTurn;
166
+ /**
167
+ * Who the turn runs as: `req.ctx().user` for `authorizeRequest`, `runOwner`,
168
+ * `context()`, the hooks and every tool, as the authentication middleware
169
+ * would have set it. Absent or `null` is an anonymous turn.
170
+ */
171
+ user?: unknown;
172
+ /** What `useChat`'s `body` option would send: `instructions()`, `context()` and `ctx.body` read it. */
173
+ body?: Body;
174
+ };
175
+ /** A turn `AgentController.startTurn` started. */
176
+ export type AgentTurn = {
177
+ runId: string;
178
+ threadId: string;
179
+ /** The run: iterate it (or its `frames()`) to follow the turn as it goes. */
180
+ run: AgentRun;
181
+ /** What the chat's stop button does. */
182
+ stop(params?: {
183
+ reason?: string;
184
+ }): void;
185
+ /**
186
+ * Settles when the run has ended, its transcript is stored and the
187
+ * controller's hooks have run (or `hookHoldMs` has passed). Rejects only if
188
+ * the run itself does; a failed model call resolves with `finishReason:
189
+ * "error"` and `error`, as `AgentRun.result()` does.
190
+ */
191
+ result(): Promise<AgentTurnResult>;
192
+ };
193
+ /** What `AgentTurn.result()` answers: the run's result, and what a caller reads off it. */
194
+ export type AgentTurnResult = AgentRunResult<ToolShapes, unknown> & {
195
+ threadId: string;
196
+ /** The text of the run's last assistant message; `""` when it wrote none. */
197
+ text: string;
198
+ /**
199
+ * The calls waiting for an answer when `finishReason` is
200
+ * `"awaiting-input"`, and `[]` otherwise. They stay on the thread, signed
201
+ * for the turn's `runOwner`: that user can answer them in the chat, or the
202
+ * caller can with another `startTurn({ turn: { toolResults } })`.
203
+ */
204
+ pending: PendingToolCall[];
205
+ };
206
+ /**
207
+ * A turn `startTurn` could not start: what the route would have answered,
208
+ * thrown. `status` and `code` are the route's (`404` `thread_not_found`,
209
+ * `429` `too_many_runs`, `403` for another owner's run or file...).
210
+ */
211
+ export declare class AgentTurnError extends Error {
212
+ readonly status: number;
213
+ readonly code?: string;
214
+ readonly kind?: string;
215
+ constructor(message: string, params: {
216
+ status: number;
217
+ code?: string;
218
+ kind?: string;
219
+ });
220
+ /** @internal Reads a refusal `stream` answered. */
221
+ static from(response: Response): Promise<AgentTurnError>;
222
+ }
223
+ /** `Body` of a controller instance type, as `AgentRouteRPC` reads it. */
224
+ type ControllerBody<C> = C extends {
225
+ [BODY]?: infer B;
226
+ } ? B extends object ? B : Record<string, unknown> : Record<string, unknown>;
145
227
  /** What `AgentController.attachmentLimits` answers. Both optional. */
146
228
  export type AttachmentLimits = {
147
229
  /** The largest file accepted, in bytes. */
@@ -149,6 +231,36 @@ export type AttachmentLimits = {
149
231
  /** `<input accept>` entries: `".pdf"`, `"image/*"`, `"text/csv"`. */
150
232
  accept?: string[];
151
233
  };
234
+ /** The file `AgentController.checkUpload` is asked about: what it is, not its bytes. */
235
+ export type UploadCheckFile = {
236
+ /** The file's name as the client sent it, `"upload"` when it sent none. */
237
+ name: string;
238
+ /** In bytes. */
239
+ size: number;
240
+ /** As the client sent it, `"application/octet-stream"` when it sent none. */
241
+ mimeType: string;
242
+ };
243
+ /**
244
+ * What an upload hook is told beyond the request (#836): the client's `body`
245
+ * option (what `attachmentScope` gets) and the thread the upload is for, when
246
+ * the store knows it.
247
+ */
248
+ export type UploadContext<Body extends object = Record<string, unknown>> = {
249
+ body: Body;
250
+ /** Only a thread the store found; an id it has never seen is left out. */
251
+ threadId?: string;
252
+ };
253
+ /**
254
+ * What `AgentController.checkUpload` returns to refuse a file. Answered **422**
255
+ * with `{ error: { code, message } }`, which `useChat().attach()` rejects with
256
+ * as an `AttachError` carrying the same `code` and `message`.
257
+ */
258
+ export type UploadRefusal = {
259
+ /** A code the composer can switch on. `"upload_refused"` when left out. */
260
+ code?: string;
261
+ /** The sentence the person reads. */
262
+ message: string;
263
+ };
152
264
  /**
153
265
  * What `POST /<path>/files` answers.
154
266
  *
@@ -628,6 +740,35 @@ Body extends object = Record<string, unknown>> extends ControllerBase {
628
740
  * turn that asks and the turn that answers.
629
741
  */
630
742
  protected runOwner(req: HttpRequest<any, any>): string | null | Promise<string | null>;
743
+ /**
744
+ * STARTS A TURN FROM SERVER CODE (#839): a queue job, a command, an MCP
745
+ * tool, a webhook. No browser and no route: the turn goes through this
746
+ * controller's `stream` as a `useChat` turn would, on a request built here,
747
+ * so the agent, the store, `authorizeRequest` and `resource`, `runOwner`,
748
+ * `maxConcurrentRuns`, the thread's lock, `instructions()`, `context()`,
749
+ * the hooks and the tools' `ctx` (`threadId`, `ctx.jobs`, `ctx.generate`)
750
+ * are the same as for a turn from the chat.
751
+ *
752
+ * ```ts
753
+ * const turn = await ChatController.startTurn({
754
+ * threadId,
755
+ * text: "Make the hero darker",
756
+ * user, // req.ctx().user for the turn
757
+ * body: { siteId }, // what useChat's `body` option would send
758
+ * });
759
+ * const { text, finishReason, pending } = await turn.result();
760
+ * ```
761
+ *
762
+ * The route's middleware does not run: the caller is server code and names
763
+ * the user itself (`null` or absent is an anonymous turn). A turn the route
764
+ * would refuse throws an `AgentTurnError` with the status and code it would
765
+ * have answered; a request breaker thrown by `authorizeRequest` is thrown
766
+ * as it is.
767
+ *
768
+ * The run lives in the process that called this, like every run. From a
769
+ * queue job, await `result()` so the worker does not move on without it.
770
+ */
771
+ static startTurn<C extends AgentController<any, any>>(this: new () => C, params: AgentTurnParams<ControllerBody<C>>): Promise<AgentTurn>;
631
772
  /**
632
773
  * `POST /<path>` — one route for every client turn. A first message, an
633
774
  * approval, an answer to a question and a client tool's result are all just
@@ -836,9 +977,50 @@ Body extends object = Record<string, unknown>> extends ControllerBase {
836
977
  * }
837
978
  */
838
979
  protected attachmentLimits(req: HttpRequest<any, any>): AttachmentLimits | null | Promise<AttachmentLimits | null>;
980
+ /**
981
+ * THE APP'S OWN RULE ABOUT ONE UPLOAD (#836): a storage quota, a per-subject
982
+ * cap, anything that needs the file and the request's subject at once.
983
+ * Called once per upload, after `authorizeRequest` and `attachmentLimits` and
984
+ * before anything is stored or sent to the provider.
985
+ *
986
+ * It is told what the file is (`name`, `size`, `mimeType`) and what the
987
+ * upload is about: `body`, the client's `body` option exactly as
988
+ * `attachmentScope` gets it, and `threadId` when the store knows the thread.
989
+ * Return nothing to let the file through, or an `UploadRefusal` to refuse it:
990
+ * the route answers **422** with `{ error: { code, message } }` (`code`
991
+ * defaults to `"upload_refused"`), and `useChat().attach()` rejects with an
992
+ * `AttachError` carrying both, as it does for `attachmentLimits`' refusals.
993
+ * A `RequestBreakerError` thrown here is answered as itself; anything else
994
+ * thrown is a 500.
995
+ *
996
+ * protected async checkUpload(file, req, { body }) {
997
+ * if (typeof body.pageId !== "string") return;
998
+ * const page = await Page.findFirst({ where: { publicId: body.pageId } });
999
+ * if (!page) return;
1000
+ * const used = await storageUsedBy(page);
1001
+ * if (used + file.size > capFor(page)) {
1002
+ * return { code: "storage_full", message: "This site's storage is full." };
1003
+ * }
1004
+ * }
1005
+ *
1006
+ * The `body` rule from `attachmentScope` applies here too: it types the
1007
+ * shape, not the contents, so check a field before looking it up, and
1008
+ * decide whose quota to charge from what the lookup returned.
1009
+ *
1010
+ * Here rather than in `attachmentDestination`, which also sees the file: a
1011
+ * quota is a rule about the file and its subject, not about where the bytes
1012
+ * go, and a throw there is a 500 unless the app builds the response itself.
1013
+ *
1014
+ * A check here is not a reservation: two uploads checked at the same moment
1015
+ * both see the old usage. A cap that must never be exceeded by one file is
1016
+ * enforced where usage is recorded.
1017
+ */
1018
+ protected checkUpload(file: UploadCheckFile, req: HttpRequest<any, any>, ctx: UploadContext<Body>): UploadRefusal | null | void | Promise<UploadRefusal | null | void>;
839
1019
  /**
840
1020
  * WHERE ONE FILE'S BYTES SHOULD GO. Called once per upload, with the file in
841
- * hand.
1021
+ * hand, and since #836 with the same `{ body, threadId }` that `checkUpload`
1022
+ * gets as a third argument. An override written as
1023
+ * `attachmentDestination(file, req)` works unchanged.
842
1024
  *
843
1025
  * The model needs to perceive a file only for vision or document reading; a
844
1026
  * tool needs the bytes only to forward them. Those are different needs and
@@ -870,7 +1052,7 @@ Body extends object = Record<string, unknown>> extends ControllerBase {
870
1052
  * anything else, including `"provider"`, which would let a form field decide
871
1053
  * that the app does not keep its own copy. See `narrowDestination`.
872
1054
  */
873
- protected attachmentDestination(file: File, req: HttpRequest<any, any>): AttachmentDestination | Promise<AttachmentDestination>;
1055
+ protected attachmentDestination(file: File, req: HttpRequest<any, any>, extra?: UploadContext<Body>): AttachmentDestination | Promise<AttachmentDestination>;
874
1056
  /**
875
1057
  * The attachment handle for this request — the object a tool is given.
876
1058
  *
@@ -1 +1 @@
1
- {"version":3,"file":"AgentController.d.ts","sourceRoot":"","sources":["../../ai/AgentController.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AgentController.d.ts","sourceRoot":"","sources":["../../ai/AgentController.ts"],"names":[],"mappings":"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"}
@@ -19,6 +19,6 @@
19
19
  * for `applyFrame` is reimplementing the hook.
20
20
  */
21
21
  export { AttachError, useChat } from "../useChat";
22
- export type { AgentAttachBody, AttachOptions, AgentRequestBody, AgentStopBody, ChatStatus, UseChatParams, UseChatResult, } from "../useChat";
22
+ export type { AgentAttachBody, AttachOptions, AgentRequestBody, AgentStopBody, ChatStatus, SendMessageOptions, UseChatParams, UseChatResult, } from "../useChat";
23
23
  export type { AgentContentPart, AgentError, AgentJobRef, AgentErrorCode, AgentMessage, AgentStreamEvent, AgentStreamFrame, ClientToolResult, ClientTurn, FilePart, FinishReason, NestedRun, OutputPart, PendingToolCall, ReasoningPart, TextPart, ToolCallPart, ToolProgress, ToolResultPart, ToolShape, ToolShapes, Usage, } from "../types";
24
24
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../ai/client/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAClD,YAAY,EACV,eAAe,EACf,aAAa,EACb,gBAAgB,EAChB,aAAa,EACb,UAAU,EACV,aAAa,EACb,aAAa,GACd,MAAM,YAAY,CAAC;AAMpB,YAAY,EACV,gBAAgB,EAChB,UAAU,EACV,WAAW,EACX,cAAc,EACd,YAAY,EACZ,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,UAAU,EACV,QAAQ,EACR,YAAY,EAGZ,SAAS,EACT,UAAU,EACV,eAAe,EACf,aAAa,EACb,QAAQ,EACR,YAAY,EAKZ,YAAY,EACZ,cAAc,EACd,SAAS,EACT,UAAU,EACV,KAAK,GACN,MAAM,UAAU,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../ai/client/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAClD,YAAY,EACV,eAAe,EACf,aAAa,EACb,gBAAgB,EAChB,aAAa,EACb,UAAU,EACV,kBAAkB,EAClB,aAAa,EACb,aAAa,GACd,MAAM,YAAY,CAAC;AAMpB,YAAY,EACV,gBAAgB,EAChB,UAAU,EACV,WAAW,EACX,cAAc,EACd,YAAY,EACZ,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,UAAU,EACV,QAAQ,EACR,YAAY,EAGZ,SAAS,EACT,UAAU,EACV,eAAe,EACf,aAAa,EACb,QAAQ,EACR,YAAY,EAKZ,YAAY,EACZ,cAAc,EACd,SAAS,EACT,UAAU,EACV,KAAK,GACN,MAAM,UAAU,CAAC"}
@@ -145,8 +145,17 @@ function reduce(state, event, now) {
145
145
  messages: [...state.messages, event.message]
146
146
  };
147
147
  }
148
- const messages = state.messages.some((message) => message.id === event.messageId) ? state.messages.filter((_, i) => i !== index) : state.messages.map((message, i) => i === index ? {
148
+ const local = state.messages[index];
149
+ const kept = {
150
+ localId: local.localId ?? local.id,
151
+ ...local.metadata ? { metadata: local.metadata } : {}
152
+ };
153
+ const messages = state.messages.some((message) => message.id === event.messageId) ? state.messages.filter((_, i) => i !== index).map((message) => message.id === event.messageId ? {
154
+ ...message,
155
+ ...kept
156
+ } : message) : state.messages.map((message, i) => i === index ? {
149
157
  ...message,
158
+ ...kept,
150
159
  id: event.messageId
151
160
  } : message);
152
161
  return {
@@ -597,7 +606,8 @@ async function* decodeSSE(stream) {
597
606
  *
598
607
  * `code` is the server's when it sent one — `unsupported_file_type`,
599
608
  * `file_too_large`, `file_rejected` and `invalid_request` from
600
- * `AgentController.upload`, or a framework refusal's `kind` such as
609
+ * `AgentController.upload`, the app's own from `checkUpload` (`upload_refused`
610
+ * when it gave none), or a framework refusal's `kind` such as
601
611
  * `authentication` — and otherwise `upload_failed` (an answer that was
602
612
  * not JSON, `status` says which) or `network_error` (no answer at all). A
603
613
  * string rather than a union, because an app's own `attachmentDestination`
@@ -752,7 +762,8 @@ function turnFrom(message) {
752
762
  };
753
763
  }
754
764
  /**
755
- * The transcript as the server needs it, without the progress logs.
765
+ * The transcript as the server needs it, without the progress logs or the
766
+ * client-only `localId` and `metadata`.
756
767
  *
757
768
  * In stateless mode `send` posts the whole history on *every* turn, so anything
758
769
  * that accumulates on a message is paid for again on each one. `progress` is
@@ -768,7 +779,9 @@ function turnFrom(message) {
768
779
  * shapes the request body only, so a UI still renders every yield it received.
769
780
  */
770
781
  function forWire(messages) {
771
- return messages.map((message) => {
782
+ return messages.map((full) => {
783
+ const { localId: _localId, metadata: _metadata, ...stripped } = full;
784
+ const message = full.localId !== void 0 || full.metadata !== void 0 ? stripped : full;
772
785
  if (!message.content.some((part) => part.type === "tool-call" && (part.progress || part.nested))) return message;
773
786
  return {
774
787
  ...message,
@@ -966,7 +979,11 @@ function useChat(path, params = {}) {
966
979
  }
967
980
  }, [commit, setPhaseSafe]);
968
981
  const send = useCallback(async (turn, options = {}) => {
969
- const { base: url, extraBody: body } = requestRef.current;
982
+ const { base: url, extraBody } = requestRef.current;
983
+ const body = options.body ? {
984
+ ...extraBody,
985
+ ...options.body
986
+ } : extraBody;
970
987
  const superseded = abortRef.current;
971
988
  superseded?.controller.abort();
972
989
  const clientRunId = localId();
@@ -988,6 +1005,7 @@ function useChat(path, params = {}) {
988
1005
  const ownId = turn.localId || localId();
989
1006
  const authored = turn.text || turn.files?.length ? [{
990
1007
  id: ownId,
1008
+ localId: ownId,
991
1009
  role: "user",
992
1010
  content: [...turn.text ? [{
993
1011
  type: "text",
@@ -996,7 +1014,8 @@ function useChat(path, params = {}) {
996
1014
  type: "file",
997
1015
  ...file
998
1016
  }))],
999
- createdAt: (/* @__PURE__ */ new Date()).toISOString()
1017
+ createdAt: (/* @__PURE__ */ new Date()).toISOString(),
1018
+ ...options.metadata ? { metadata: options.metadata } : {}
1000
1019
  }] : [];
1001
1020
  commit({
1002
1021
  ...previous,
@@ -1043,7 +1062,10 @@ function useChat(path, params = {}) {
1043
1062
  postStop,
1044
1063
  setPhaseSafe
1045
1064
  ]);
1046
- const sendMessage = useCallback((turn) => send(typeof turn === "string" ? { text: turn } : turn), [send]);
1065
+ const sendMessage = useCallback((turn, options = {}) => send(typeof turn === "string" ? { text: turn } : turn, {
1066
+ ...options.body ? { body: options.body } : {},
1067
+ ...options.metadata ? { metadata: options.metadata } : {}
1068
+ }), [send]);
1047
1069
  /**
1048
1070
  * Answers queued within one tick become one turn.
1049
1071
  *
@@ -1158,14 +1180,21 @@ function useChat(path, params = {}) {
1158
1180
  break;
1159
1181
  }
1160
1182
  if (userIndex === -1) return;
1161
- const turn = turnFrom(messages[userIndex]);
1183
+ const question = messages[userIndex];
1184
+ const turn = {
1185
+ ...turnFrom(question),
1186
+ ...question.localId ? { localId: question.localId } : {}
1187
+ };
1162
1188
  commit({
1163
1189
  ...stateRef.current,
1164
1190
  messages: messages.slice(0, userIndex),
1165
1191
  pending: [],
1166
1192
  error: null
1167
1193
  });
1168
- await send(turn, { regenerate: true });
1194
+ await send(turn, {
1195
+ regenerate: true,
1196
+ ...question.metadata ? { metadata: question.metadata } : {}
1197
+ });
1169
1198
  }, [commit, send]);
1170
1199
  const setMessages = useCallback((messages) => {
1171
1200
  commit({