@withbuddi/buddi 0.1.0-pre.20 → 0.1.0-pre.22

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 (1529) hide show
  1. package/node_modules/@buddi/cli/dist/.tsbuildinfo +1 -1
  2. package/node_modules/@buddi/cli/dist/args.d.ts +6 -0
  3. package/node_modules/@buddi/cli/dist/args.d.ts.map +1 -1
  4. package/node_modules/@buddi/cli/dist/args.js +15 -0
  5. package/node_modules/@buddi/cli/dist/args.js.map +1 -1
  6. package/node_modules/@buddi/cli/dist/commands.d.ts.map +1 -1
  7. package/node_modules/@buddi/cli/dist/commands.js +22 -2
  8. package/node_modules/@buddi/cli/dist/commands.js.map +1 -1
  9. package/node_modules/@buddi/cli/dist/main.d.ts.map +1 -1
  10. package/node_modules/@buddi/cli/dist/main.js +7 -0
  11. package/node_modules/@buddi/cli/dist/main.js.map +1 -1
  12. package/node_modules/@buddi/core/dist/.tsbuildinfo +1 -1
  13. package/node_modules/@buddi/core/dist/actions/permissions.d.ts +14 -0
  14. package/node_modules/@buddi/core/dist/actions/permissions.d.ts.map +1 -1
  15. package/node_modules/@buddi/core/dist/actions/permissions.js +15 -0
  16. package/node_modules/@buddi/core/dist/actions/permissions.js.map +1 -1
  17. package/node_modules/@buddi/core/dist/agents/catalog.d.ts +12 -1
  18. package/node_modules/@buddi/core/dist/agents/catalog.d.ts.map +1 -1
  19. package/node_modules/@buddi/core/dist/agents/catalog.js +57 -6
  20. package/node_modules/@buddi/core/dist/agents/catalog.js.map +1 -1
  21. package/node_modules/@buddi/core/dist/agents/delegates.d.ts +54 -0
  22. package/node_modules/@buddi/core/dist/agents/delegates.d.ts.map +1 -0
  23. package/node_modules/@buddi/core/dist/agents/delegates.js +51 -0
  24. package/node_modules/@buddi/core/dist/agents/delegates.js.map +1 -0
  25. package/node_modules/@buddi/core/dist/agents/index.d.ts +1 -0
  26. package/node_modules/@buddi/core/dist/agents/index.d.ts.map +1 -1
  27. package/node_modules/@buddi/core/dist/agents/index.js +1 -0
  28. package/node_modules/@buddi/core/dist/agents/index.js.map +1 -1
  29. package/node_modules/@buddi/core/dist/host/build.d.ts +26 -5
  30. package/node_modules/@buddi/core/dist/host/build.d.ts.map +1 -1
  31. package/node_modules/@buddi/core/dist/host/build.js +105 -16
  32. package/node_modules/@buddi/core/dist/host/build.js.map +1 -1
  33. package/node_modules/@buddi/core/dist/host/types.d.ts +84 -5
  34. package/node_modules/@buddi/core/dist/host/types.d.ts.map +1 -1
  35. package/node_modules/@buddi/core/dist/index.d.ts +1 -0
  36. package/node_modules/@buddi/core/dist/index.d.ts.map +1 -1
  37. package/node_modules/@buddi/core/dist/index.js +1 -0
  38. package/node_modules/@buddi/core/dist/index.js.map +1 -1
  39. package/node_modules/@buddi/core/dist/json-schema.d.ts +32 -0
  40. package/node_modules/@buddi/core/dist/json-schema.d.ts.map +1 -0
  41. package/node_modules/@buddi/core/dist/json-schema.js +147 -0
  42. package/node_modules/@buddi/core/dist/json-schema.js.map +1 -0
  43. package/node_modules/@buddi/core/dist/learning/sources.d.ts.map +1 -1
  44. package/node_modules/@buddi/core/dist/learning/sources.js +3 -0
  45. package/node_modules/@buddi/core/dist/learning/sources.js.map +1 -1
  46. package/node_modules/@buddi/core/dist/learning/types.d.ts +4 -3
  47. package/node_modules/@buddi/core/dist/learning/types.d.ts.map +1 -1
  48. package/node_modules/@buddi/core/dist/learning/types.js +1 -1
  49. package/node_modules/@buddi/core/dist/learning/types.js.map +1 -1
  50. package/node_modules/@buddi/core/dist/notifications/index.d.ts +1 -0
  51. package/node_modules/@buddi/core/dist/notifications/index.d.ts.map +1 -1
  52. package/node_modules/@buddi/core/dist/notifications/index.js +1 -0
  53. package/node_modules/@buddi/core/dist/notifications/index.js.map +1 -1
  54. package/node_modules/@buddi/core/dist/notifications/notify.d.ts.map +1 -1
  55. package/node_modules/@buddi/core/dist/notifications/notify.js +47 -5
  56. package/node_modules/@buddi/core/dist/notifications/notify.js.map +1 -1
  57. package/node_modules/@buddi/core/dist/notifications/store.d.ts.map +1 -1
  58. package/node_modules/@buddi/core/dist/notifications/store.js +3 -1
  59. package/node_modules/@buddi/core/dist/notifications/store.js.map +1 -1
  60. package/node_modules/@buddi/core/dist/notifications/topic.d.ts +25 -0
  61. package/node_modules/@buddi/core/dist/notifications/topic.d.ts.map +1 -0
  62. package/node_modules/@buddi/core/dist/notifications/topic.js +116 -0
  63. package/node_modules/@buddi/core/dist/notifications/topic.js.map +1 -0
  64. package/node_modules/@buddi/core/dist/notifications/types.d.ts +4 -0
  65. package/node_modules/@buddi/core/dist/notifications/types.d.ts.map +1 -1
  66. package/node_modules/@buddi/core/dist/onboarding/language-tag.d.ts +12 -0
  67. package/node_modules/@buddi/core/dist/onboarding/language-tag.d.ts.map +1 -0
  68. package/node_modules/@buddi/core/dist/onboarding/language-tag.js +64 -0
  69. package/node_modules/@buddi/core/dist/onboarding/language-tag.js.map +1 -0
  70. package/node_modules/@buddi/core/dist/pages/__fixtures__/demo.d.ts +11 -0
  71. package/node_modules/@buddi/core/dist/pages/__fixtures__/demo.d.ts.map +1 -1
  72. package/node_modules/@buddi/core/dist/pages/__fixtures__/demo.js +24 -1
  73. package/node_modules/@buddi/core/dist/pages/__fixtures__/demo.js.map +1 -1
  74. package/node_modules/@buddi/core/dist/pages.d.ts +93 -0
  75. package/node_modules/@buddi/core/dist/pages.d.ts.map +1 -1
  76. package/node_modules/@buddi/core/dist/pages.js +40 -1
  77. package/node_modules/@buddi/core/dist/pages.js.map +1 -1
  78. package/node_modules/@buddi/core/dist/plugin/index.d.ts +5 -4
  79. package/node_modules/@buddi/core/dist/plugin/index.d.ts.map +1 -1
  80. package/node_modules/@buddi/core/dist/plugin/version.d.ts +1 -1
  81. package/node_modules/@buddi/core/dist/plugin/version.js +1 -1
  82. package/node_modules/@buddi/core/dist/provider-accounts.d.ts +39 -0
  83. package/node_modules/@buddi/core/dist/provider-accounts.d.ts.map +1 -1
  84. package/node_modules/@buddi/core/dist/provider-accounts.js +8 -0
  85. package/node_modules/@buddi/core/dist/provider-accounts.js.map +1 -1
  86. package/node_modules/@buddi/core/dist/registry.d.ts +37 -1
  87. package/node_modules/@buddi/core/dist/registry.d.ts.map +1 -1
  88. package/node_modules/@buddi/core/dist/registry.js +187 -32
  89. package/node_modules/@buddi/core/dist/registry.js.map +1 -1
  90. package/node_modules/@buddi/core/dist/secrets/scrub.d.ts +2 -0
  91. package/node_modules/@buddi/core/dist/secrets/scrub.d.ts.map +1 -1
  92. package/node_modules/@buddi/core/dist/secrets/scrub.js +29 -0
  93. package/node_modules/@buddi/core/dist/secrets/scrub.js.map +1 -1
  94. package/node_modules/@buddi/core/dist/surfaces.d.ts +11 -0
  95. package/node_modules/@buddi/core/dist/surfaces.d.ts.map +1 -1
  96. package/node_modules/@buddi/core/dist/surfaces.js +4 -0
  97. package/node_modules/@buddi/core/dist/surfaces.js.map +1 -1
  98. package/node_modules/@buddi/core/dist/tools.d.ts +36 -1
  99. package/node_modules/@buddi/core/dist/tools.d.ts.map +1 -1
  100. package/node_modules/@buddi/core/dist/tools.js.map +1 -1
  101. package/node_modules/@buddi/core/dist/views.d.ts +12 -12
  102. package/node_modules/@buddi/core/migrations/048_surface_chat_voice.sql +13 -0
  103. package/node_modules/@buddi/core/migrations/049_surface_chat_voice_form.sql +8 -0
  104. package/node_modules/@buddi/core/migrations/050_notification_topic.sql +8 -0
  105. package/node_modules/@buddi/core/package.json +2 -0
  106. package/node_modules/@buddi/gateway/assets/mascot/core-idle.tgs +0 -0
  107. package/node_modules/@buddi/gateway/assets/mascot/core-working.tgs +0 -0
  108. package/node_modules/@buddi/gateway/dist/.tsbuildinfo +1 -1
  109. package/node_modules/@buddi/gateway/dist/agents/canvas.d.ts +2 -2
  110. package/node_modules/@buddi/gateway/dist/agents/canvas.d.ts.map +1 -1
  111. package/node_modules/@buddi/gateway/dist/agents/canvas.js.map +1 -1
  112. package/node_modules/@buddi/gateway/dist/agents/catalog.d.ts.map +1 -1
  113. package/node_modules/@buddi/gateway/dist/agents/catalog.js +15 -6
  114. package/node_modules/@buddi/gateway/dist/agents/catalog.js.map +1 -1
  115. package/node_modules/@buddi/gateway/dist/agents/delegation.d.ts +20 -3
  116. package/node_modules/@buddi/gateway/dist/agents/delegation.d.ts.map +1 -1
  117. package/node_modules/@buddi/gateway/dist/agents/delegation.js +38 -12
  118. package/node_modules/@buddi/gateway/dist/agents/delegation.js.map +1 -1
  119. package/node_modules/@buddi/gateway/dist/agents/platform.d.ts +43 -13
  120. package/node_modules/@buddi/gateway/dist/agents/platform.d.ts.map +1 -1
  121. package/node_modules/@buddi/gateway/dist/agents/platform.js +97 -3
  122. package/node_modules/@buddi/gateway/dist/agents/platform.js.map +1 -1
  123. package/node_modules/@buddi/gateway/dist/agents/starter-team.d.ts +57 -0
  124. package/node_modules/@buddi/gateway/dist/agents/starter-team.d.ts.map +1 -0
  125. package/node_modules/@buddi/gateway/dist/agents/starter-team.js +151 -0
  126. package/node_modules/@buddi/gateway/dist/agents/starter-team.js.map +1 -0
  127. package/node_modules/@buddi/gateway/dist/agents-cli.d.ts +2 -0
  128. package/node_modules/@buddi/gateway/dist/agents-cli.d.ts.map +1 -1
  129. package/node_modules/@buddi/gateway/dist/agents-cli.js +5 -3
  130. package/node_modules/@buddi/gateway/dist/agents-cli.js.map +1 -1
  131. package/node_modules/@buddi/gateway/dist/anthropic-accounts.d.ts.map +1 -1
  132. package/node_modules/@buddi/gateway/dist/anthropic-accounts.js +9 -20
  133. package/node_modules/@buddi/gateway/dist/anthropic-accounts.js.map +1 -1
  134. package/node_modules/@buddi/gateway/dist/bootstrap.d.ts +3 -0
  135. package/node_modules/@buddi/gateway/dist/bootstrap.d.ts.map +1 -1
  136. package/node_modules/@buddi/gateway/dist/bootstrap.js +58 -2
  137. package/node_modules/@buddi/gateway/dist/bootstrap.js.map +1 -1
  138. package/node_modules/@buddi/gateway/dist/chat/session.d.ts.map +1 -1
  139. package/node_modules/@buddi/gateway/dist/chat/session.js +2 -2
  140. package/node_modules/@buddi/gateway/dist/chat/session.js.map +1 -1
  141. package/node_modules/@buddi/gateway/dist/chat/usage.d.ts +16 -0
  142. package/node_modules/@buddi/gateway/dist/chat/usage.d.ts.map +1 -1
  143. package/node_modules/@buddi/gateway/dist/chat/usage.js +53 -11
  144. package/node_modules/@buddi/gateway/dist/chat/usage.js.map +1 -1
  145. package/node_modules/@buddi/gateway/dist/codex-accounts.d.ts +7 -1
  146. package/node_modules/@buddi/gateway/dist/codex-accounts.d.ts.map +1 -1
  147. package/node_modules/@buddi/gateway/dist/codex-accounts.js +25 -26
  148. package/node_modules/@buddi/gateway/dist/codex-accounts.js.map +1 -1
  149. package/node_modules/@buddi/gateway/dist/index.d.ts +1 -0
  150. package/node_modules/@buddi/gateway/dist/index.d.ts.map +1 -1
  151. package/node_modules/@buddi/gateway/dist/index.js +1 -0
  152. package/node_modules/@buddi/gateway/dist/index.js.map +1 -1
  153. package/node_modules/@buddi/gateway/dist/mcp/requests.d.ts +8 -1
  154. package/node_modules/@buddi/gateway/dist/mcp/requests.d.ts.map +1 -1
  155. package/node_modules/@buddi/gateway/dist/mcp/requests.js +8 -1
  156. package/node_modules/@buddi/gateway/dist/mcp/requests.js.map +1 -1
  157. package/node_modules/@buddi/gateway/dist/missions/goals-page.d.ts.map +1 -1
  158. package/node_modules/@buddi/gateway/dist/missions/goals-page.js +57 -0
  159. package/node_modules/@buddi/gateway/dist/missions/goals-page.js.map +1 -1
  160. package/node_modules/@buddi/gateway/dist/plugins/approve.js +45 -9
  161. package/node_modules/@buddi/gateway/dist/plugins/approve.js.map +1 -1
  162. package/node_modules/@buddi/gateway/dist/plugins/load.d.ts.map +1 -1
  163. package/node_modules/@buddi/gateway/dist/plugins/load.js +4 -0
  164. package/node_modules/@buddi/gateway/dist/plugins/load.js.map +1 -1
  165. package/node_modules/@buddi/gateway/dist/plugins/npm.d.ts +5 -1
  166. package/node_modules/@buddi/gateway/dist/plugins/npm.d.ts.map +1 -1
  167. package/node_modules/@buddi/gateway/dist/plugins/npm.js +6 -0
  168. package/node_modules/@buddi/gateway/dist/plugins/npm.js.map +1 -1
  169. package/node_modules/@buddi/gateway/dist/plugins/scaffold.d.ts +15 -4
  170. package/node_modules/@buddi/gateway/dist/plugins/scaffold.d.ts.map +1 -1
  171. package/node_modules/@buddi/gateway/dist/plugins/scaffold.js +86 -16
  172. package/node_modules/@buddi/gateway/dist/plugins/scaffold.js.map +1 -1
  173. package/node_modules/@buddi/gateway/dist/plugins/stage.d.ts +35 -1
  174. package/node_modules/@buddi/gateway/dist/plugins/stage.d.ts.map +1 -1
  175. package/node_modules/@buddi/gateway/dist/plugins/stage.js +134 -8
  176. package/node_modules/@buddi/gateway/dist/plugins/stage.js.map +1 -1
  177. package/node_modules/@buddi/gateway/dist/plugins-cli.d.ts +5 -1
  178. package/node_modules/@buddi/gateway/dist/plugins-cli.d.ts.map +1 -1
  179. package/node_modules/@buddi/gateway/dist/plugins-cli.js +26 -4
  180. package/node_modules/@buddi/gateway/dist/plugins-cli.js.map +1 -1
  181. package/node_modules/@buddi/gateway/dist/provider-accounts.d.ts +4 -0
  182. package/node_modules/@buddi/gateway/dist/provider-accounts.d.ts.map +1 -1
  183. package/node_modules/@buddi/gateway/dist/provider-accounts.js +34 -4
  184. package/node_modules/@buddi/gateway/dist/provider-accounts.js.map +1 -1
  185. package/node_modules/@buddi/gateway/dist/provider-diagnostics.d.ts +14 -2
  186. package/node_modules/@buddi/gateway/dist/provider-diagnostics.d.ts.map +1 -1
  187. package/node_modules/@buddi/gateway/dist/provider-diagnostics.js +25 -9
  188. package/node_modules/@buddi/gateway/dist/provider-diagnostics.js.map +1 -1
  189. package/node_modules/@buddi/gateway/dist/speech-cli.d.ts +43 -0
  190. package/node_modules/@buddi/gateway/dist/speech-cli.d.ts.map +1 -0
  191. package/node_modules/@buddi/gateway/dist/speech-cli.js +105 -0
  192. package/node_modules/@buddi/gateway/dist/speech-cli.js.map +1 -0
  193. package/node_modules/@buddi/gateway/dist/telegram/api.d.ts +59 -0
  194. package/node_modules/@buddi/gateway/dist/telegram/api.d.ts.map +1 -1
  195. package/node_modules/@buddi/gateway/dist/telegram/api.js +111 -0
  196. package/node_modules/@buddi/gateway/dist/telegram/api.js.map +1 -1
  197. package/node_modules/@buddi/gateway/dist/telegram/browser-view.d.ts +2 -1
  198. package/node_modules/@buddi/gateway/dist/telegram/browser-view.d.ts.map +1 -1
  199. package/node_modules/@buddi/gateway/dist/telegram/browser-view.js +4 -2
  200. package/node_modules/@buddi/gateway/dist/telegram/browser-view.js.map +1 -1
  201. package/node_modules/@buddi/gateway/dist/telegram/main.d.ts.map +1 -1
  202. package/node_modules/@buddi/gateway/dist/telegram/main.js +27 -2
  203. package/node_modules/@buddi/gateway/dist/telegram/main.js.map +1 -1
  204. package/node_modules/@buddi/gateway/dist/telegram/outbound.d.ts +5 -0
  205. package/node_modules/@buddi/gateway/dist/telegram/outbound.d.ts.map +1 -1
  206. package/node_modules/@buddi/gateway/dist/telegram/outbound.js +10 -0
  207. package/node_modules/@buddi/gateway/dist/telegram/outbound.js.map +1 -1
  208. package/node_modules/@buddi/gateway/dist/telegram/stickers.d.ts +30 -0
  209. package/node_modules/@buddi/gateway/dist/telegram/stickers.d.ts.map +1 -0
  210. package/node_modules/@buddi/gateway/dist/telegram/stickers.js +146 -0
  211. package/node_modules/@buddi/gateway/dist/telegram/stickers.js.map +1 -0
  212. package/node_modules/@buddi/gateway/dist/telegram/surface.d.ts +31 -0
  213. package/node_modules/@buddi/gateway/dist/telegram/surface.d.ts.map +1 -1
  214. package/node_modules/@buddi/gateway/dist/telegram/surface.js +248 -13
  215. package/node_modules/@buddi/gateway/dist/telegram/surface.js.map +1 -1
  216. package/node_modules/@buddi/gateway/dist/telegram/voice.d.ts +112 -0
  217. package/node_modules/@buddi/gateway/dist/telegram/voice.d.ts.map +1 -0
  218. package/node_modules/@buddi/gateway/dist/telegram/voice.js +220 -0
  219. package/node_modules/@buddi/gateway/dist/telegram/voice.js.map +1 -0
  220. package/node_modules/@buddi/gateway/dist/tips/engine.d.ts +75 -0
  221. package/node_modules/@buddi/gateway/dist/tips/engine.d.ts.map +1 -0
  222. package/node_modules/@buddi/gateway/dist/tips/engine.js +135 -0
  223. package/node_modules/@buddi/gateway/dist/tips/engine.js.map +1 -0
  224. package/node_modules/@buddi/gateway/dist/tips/facts.d.ts +69 -0
  225. package/node_modules/@buddi/gateway/dist/tips/facts.d.ts.map +1 -0
  226. package/node_modules/@buddi/gateway/dist/tips/facts.js +104 -0
  227. package/node_modules/@buddi/gateway/dist/tips/facts.js.map +1 -0
  228. package/node_modules/@buddi/gateway/dist/tips/route.d.ts +25 -0
  229. package/node_modules/@buddi/gateway/dist/tips/route.d.ts.map +1 -0
  230. package/node_modules/@buddi/gateway/dist/tips/route.js +96 -0
  231. package/node_modules/@buddi/gateway/dist/tips/route.js.map +1 -0
  232. package/node_modules/@buddi/gateway/dist/tips/rules.d.ts +33 -0
  233. package/node_modules/@buddi/gateway/dist/tips/rules.d.ts.map +1 -0
  234. package/node_modules/@buddi/gateway/dist/tips/rules.js +54 -0
  235. package/node_modules/@buddi/gateway/dist/tips/rules.js.map +1 -0
  236. package/node_modules/@buddi/gateway/dist/web/agent-offers.d.ts +30 -0
  237. package/node_modules/@buddi/gateway/dist/web/agent-offers.d.ts.map +1 -1
  238. package/node_modules/@buddi/gateway/dist/web/agent-offers.js +64 -1
  239. package/node_modules/@buddi/gateway/dist/web/agent-offers.js.map +1 -1
  240. package/node_modules/@buddi/gateway/dist/web/chat.d.ts +31 -8
  241. package/node_modules/@buddi/gateway/dist/web/chat.d.ts.map +1 -1
  242. package/node_modules/@buddi/gateway/dist/web/chat.js +3 -2
  243. package/node_modules/@buddi/gateway/dist/web/chat.js.map +1 -1
  244. package/node_modules/@buddi/gateway/dist/web/connections.d.ts +83 -0
  245. package/node_modules/@buddi/gateway/dist/web/connections.d.ts.map +1 -0
  246. package/node_modules/@buddi/gateway/dist/web/connections.js +270 -0
  247. package/node_modules/@buddi/gateway/dist/web/connections.js.map +1 -0
  248. package/node_modules/@buddi/gateway/dist/web/onboarding.d.ts +14 -3
  249. package/node_modules/@buddi/gateway/dist/web/onboarding.d.ts.map +1 -1
  250. package/node_modules/@buddi/gateway/dist/web/onboarding.js +29 -7
  251. package/node_modules/@buddi/gateway/dist/web/onboarding.js.map +1 -1
  252. package/node_modules/@buddi/gateway/dist/web/plugins.d.ts +12 -0
  253. package/node_modules/@buddi/gateway/dist/web/plugins.d.ts.map +1 -1
  254. package/node_modules/@buddi/gateway/dist/web/plugins.js +12 -2
  255. package/node_modules/@buddi/gateway/dist/web/plugins.js.map +1 -1
  256. package/node_modules/@buddi/gateway/dist/web/profile.js +3 -2
  257. package/node_modules/@buddi/gateway/dist/web/profile.js.map +1 -1
  258. package/node_modules/@buddi/gateway/dist/web/read.d.ts +21 -12
  259. package/node_modules/@buddi/gateway/dist/web/read.d.ts.map +1 -1
  260. package/node_modules/@buddi/gateway/dist/web/read.js +20 -14
  261. package/node_modules/@buddi/gateway/dist/web/read.js.map +1 -1
  262. package/node_modules/@buddi/gateway/dist/web/server.d.ts +6 -0
  263. package/node_modules/@buddi/gateway/dist/web/server.d.ts.map +1 -1
  264. package/node_modules/@buddi/gateway/dist/web/server.js +84 -2
  265. package/node_modules/@buddi/gateway/dist/web/server.js.map +1 -1
  266. package/node_modules/@buddi/gateway/dist/web/speech.d.ts +47 -0
  267. package/node_modules/@buddi/gateway/dist/web/speech.d.ts.map +1 -0
  268. package/node_modules/@buddi/gateway/dist/web/speech.js +83 -0
  269. package/node_modules/@buddi/gateway/dist/web/speech.js.map +1 -0
  270. package/node_modules/@buddi/gateway/dist/web/static.d.ts.map +1 -1
  271. package/node_modules/@buddi/gateway/dist/web/static.js +1 -0
  272. package/node_modules/@buddi/gateway/dist/web/static.js.map +1 -1
  273. package/node_modules/@buddi/gateway/dist/web/stream.d.ts +0 -24
  274. package/node_modules/@buddi/gateway/dist/web/stream.d.ts.map +1 -1
  275. package/node_modules/@buddi/gateway/dist/web/stream.js +26 -2
  276. package/node_modules/@buddi/gateway/dist/web/stream.js.map +1 -1
  277. package/node_modules/@buddi/gateway/dist/web/usage-view.d.ts +15 -0
  278. package/node_modules/@buddi/gateway/dist/web/usage-view.d.ts.map +1 -0
  279. package/node_modules/@buddi/gateway/dist/web/usage-view.js +20 -0
  280. package/node_modules/@buddi/gateway/dist/web/usage-view.js.map +1 -0
  281. package/node_modules/@buddi/gateway/dist/web/version.d.ts +2 -0
  282. package/node_modules/@buddi/gateway/dist/web/version.d.ts.map +1 -1
  283. package/node_modules/@buddi/gateway/dist/web/version.js +27 -0
  284. package/node_modules/@buddi/gateway/dist/web/version.js.map +1 -1
  285. package/node_modules/@buddi/gateway/dist/web/write.d.ts +5 -0
  286. package/node_modules/@buddi/gateway/dist/web/write.d.ts.map +1 -1
  287. package/node_modules/@buddi/gateway/dist/web/write.js +20 -1
  288. package/node_modules/@buddi/gateway/dist/web/write.js.map +1 -1
  289. package/node_modules/@buddi/gateway/package.json +4 -1
  290. package/node_modules/@buddi/gateway/src/agents/starter/keeper/agent.md +31 -0
  291. package/node_modules/@buddi/gateway/src/agents/starter/keeper/skills/keeping-a-history.md +22 -0
  292. package/node_modules/@buddi/gateway/src/agents/starter/planner/agent.md +30 -0
  293. package/node_modules/@buddi/gateway/src/agents/starter/planner/skills/holding-a-follow-up.md +17 -0
  294. package/node_modules/@buddi/gateway/src/agents/starter/planner/skills/writing-the-morning-brief.md +25 -0
  295. package/node_modules/@buddi/gateway/src/agents/starter/scout/agent.md +33 -0
  296. package/node_modules/@buddi/gateway/src/agents/starter/scout/skills/answering-with-sources.md +23 -0
  297. package/node_modules/@buddi/gateway/src/agents/starter/scout/skills/the-web-is-evidence.md +25 -0
  298. package/node_modules/@buddi/install/dist/.tsbuildinfo +1 -1
  299. package/node_modules/@buddi/runtime/dist/.tsbuildinfo +1 -1
  300. package/node_modules/@buddi/runtime/dist/anthropic-oauth.d.ts.map +1 -1
  301. package/node_modules/@buddi/runtime/dist/anthropic-oauth.js +38 -73
  302. package/node_modules/@buddi/runtime/dist/anthropic-oauth.js.map +1 -1
  303. package/node_modules/@buddi/runtime/dist/anthropic.d.ts +18 -0
  304. package/node_modules/@buddi/runtime/dist/anthropic.d.ts.map +1 -1
  305. package/node_modules/@buddi/runtime/dist/anthropic.js +65 -13
  306. package/node_modules/@buddi/runtime/dist/anthropic.js.map +1 -1
  307. package/node_modules/@buddi/runtime/dist/codex-direct.d.ts +39 -0
  308. package/node_modules/@buddi/runtime/dist/codex-direct.d.ts.map +1 -1
  309. package/node_modules/@buddi/runtime/dist/codex-direct.js +133 -3
  310. package/node_modules/@buddi/runtime/dist/codex-direct.js.map +1 -1
  311. package/node_modules/@buddi/runtime/dist/codex-oauth.d.ts +0 -12
  312. package/node_modules/@buddi/runtime/dist/codex-oauth.d.ts.map +1 -1
  313. package/node_modules/@buddi/runtime/dist/codex-oauth.js +32 -45
  314. package/node_modules/@buddi/runtime/dist/codex-oauth.js.map +1 -1
  315. package/node_modules/@buddi/runtime/dist/context-window.d.ts.map +1 -1
  316. package/node_modules/@buddi/runtime/dist/context-window.js +13 -4
  317. package/node_modules/@buddi/runtime/dist/context-window.js.map +1 -1
  318. package/node_modules/@buddi/runtime/dist/delegate.d.ts.map +1 -1
  319. package/node_modules/@buddi/runtime/dist/delegate.js +4 -2
  320. package/node_modules/@buddi/runtime/dist/delegate.js.map +1 -1
  321. package/node_modules/@buddi/runtime/dist/index.d.ts +2 -0
  322. package/node_modules/@buddi/runtime/dist/index.d.ts.map +1 -1
  323. package/node_modules/@buddi/runtime/dist/index.js +2 -0
  324. package/node_modules/@buddi/runtime/dist/index.js.map +1 -1
  325. package/node_modules/@buddi/runtime/dist/loop.d.ts.map +1 -1
  326. package/node_modules/@buddi/runtime/dist/loop.js +6 -0
  327. package/node_modules/@buddi/runtime/dist/loop.js.map +1 -1
  328. package/node_modules/@buddi/runtime/dist/oauth-port.d.ts +68 -0
  329. package/node_modules/@buddi/runtime/dist/oauth-port.d.ts.map +1 -0
  330. package/node_modules/@buddi/runtime/dist/oauth-port.js +51 -0
  331. package/node_modules/@buddi/runtime/dist/oauth-port.js.map +1 -0
  332. package/node_modules/@buddi/runtime/dist/oauth.d.ts +255 -0
  333. package/node_modules/@buddi/runtime/dist/oauth.d.ts.map +1 -0
  334. package/node_modules/@buddi/runtime/dist/oauth.js +535 -0
  335. package/node_modules/@buddi/runtime/dist/oauth.js.map +1 -0
  336. package/node_modules/@buddi/runtime/dist/openai.d.ts +16 -4
  337. package/node_modules/@buddi/runtime/dist/openai.d.ts.map +1 -1
  338. package/node_modules/@buddi/runtime/dist/openai.js +23 -4
  339. package/node_modules/@buddi/runtime/dist/openai.js.map +1 -1
  340. package/node_modules/@buddi/runtime/dist/provider-models.d.ts.map +1 -1
  341. package/node_modules/@buddi/runtime/dist/provider-models.js +5 -1
  342. package/node_modules/@buddi/runtime/dist/provider-models.js.map +1 -1
  343. package/node_modules/@buddi/tool-artifacts/dist/.tsbuildinfo +1 -1
  344. package/node_modules/@buddi/tool-browser/dist/.tsbuildinfo +1 -1
  345. package/node_modules/@buddi/tool-browser/dist/computer.d.ts +53 -1
  346. package/node_modules/@buddi/tool-browser/dist/computer.d.ts.map +1 -1
  347. package/node_modules/@buddi/tool-browser/dist/computer.js +154 -5
  348. package/node_modules/@buddi/tool-browser/dist/computer.js.map +1 -1
  349. package/node_modules/@buddi/tool-browser/dist/controller.d.ts +20 -3
  350. package/node_modules/@buddi/tool-browser/dist/controller.d.ts.map +1 -1
  351. package/node_modules/@buddi/tool-browser/dist/controller.js +170 -5
  352. package/node_modules/@buddi/tool-browser/dist/controller.js.map +1 -1
  353. package/node_modules/@buddi/tool-browser/dist/index.d.ts.map +1 -1
  354. package/node_modules/@buddi/tool-browser/dist/index.js +9 -1
  355. package/node_modules/@buddi/tool-browser/dist/index.js.map +1 -1
  356. package/node_modules/@buddi/tool-browser/dist/service.d.ts +14 -1
  357. package/node_modules/@buddi/tool-browser/dist/service.d.ts.map +1 -1
  358. package/node_modules/@buddi/tool-browser/dist/service.js +28 -5
  359. package/node_modules/@buddi/tool-browser/dist/service.js.map +1 -1
  360. package/node_modules/@buddi/tool-browser/dist/types.d.ts +11 -0
  361. package/node_modules/@buddi/tool-browser/dist/types.d.ts.map +1 -1
  362. package/node_modules/@buddi/tool-browser/dist/types.js +16 -3
  363. package/node_modules/@buddi/tool-browser/dist/types.js.map +1 -1
  364. package/node_modules/@buddi/tool-browser/package.json +1 -1
  365. package/node_modules/@buddi/tool-email/dist/.tsbuildinfo +1 -1
  366. package/node_modules/@buddi/tool-email/dist/types.d.ts +2 -2
  367. package/node_modules/@buddi/tool-email/dist/types.d.ts.map +1 -1
  368. package/node_modules/@buddi/tool-host/dist/.tsbuildinfo +1 -1
  369. package/node_modules/@buddi/tool-mcp/dist/.tsbuildinfo +1 -0
  370. package/node_modules/@buddi/tool-mcp/dist/catalog.d.ts +26 -0
  371. package/node_modules/@buddi/tool-mcp/dist/catalog.d.ts.map +1 -0
  372. package/node_modules/@buddi/tool-mcp/dist/catalog.js +17 -0
  373. package/node_modules/@buddi/tool-mcp/dist/catalog.js.map +1 -0
  374. package/node_modules/@buddi/tool-mcp/dist/fetch.d.ts +44 -0
  375. package/node_modules/@buddi/tool-mcp/dist/fetch.d.ts.map +1 -0
  376. package/node_modules/@buddi/tool-mcp/dist/fetch.js +88 -0
  377. package/node_modules/@buddi/tool-mcp/dist/fetch.js.map +1 -0
  378. package/node_modules/@buddi/tool-mcp/dist/index.d.ts +27 -0
  379. package/node_modules/@buddi/tool-mcp/dist/index.d.ts.map +1 -0
  380. package/node_modules/@buddi/tool-mcp/dist/index.js +74 -0
  381. package/node_modules/@buddi/tool-mcp/dist/index.js.map +1 -0
  382. package/node_modules/@buddi/tool-mcp/dist/output.d.ts +38 -0
  383. package/node_modules/@buddi/tool-mcp/dist/output.d.ts.map +1 -0
  384. package/node_modules/@buddi/tool-mcp/dist/output.js +90 -0
  385. package/node_modules/@buddi/tool-mcp/dist/output.js.map +1 -0
  386. package/node_modules/@buddi/tool-mcp/dist/ports.d.ts +105 -0
  387. package/node_modules/@buddi/tool-mcp/dist/ports.d.ts.map +1 -0
  388. package/node_modules/@buddi/tool-mcp/dist/ports.js +9 -0
  389. package/node_modules/@buddi/tool-mcp/dist/ports.js.map +1 -0
  390. package/node_modules/@buddi/tool-mcp/dist/service.d.ts +220 -0
  391. package/node_modules/@buddi/tool-mcp/dist/service.d.ts.map +1 -0
  392. package/node_modules/@buddi/tool-mcp/dist/service.js +742 -0
  393. package/node_modules/@buddi/tool-mcp/dist/service.js.map +1 -0
  394. package/node_modules/@buddi/tool-mcp/dist/session.d.ts +50 -0
  395. package/node_modules/@buddi/tool-mcp/dist/session.d.ts.map +1 -0
  396. package/node_modules/@buddi/tool-mcp/dist/session.js +108 -0
  397. package/node_modules/@buddi/tool-mcp/dist/session.js.map +1 -0
  398. package/node_modules/@buddi/tool-mcp/dist/store.d.ts +70 -0
  399. package/node_modules/@buddi/tool-mcp/dist/store.d.ts.map +1 -0
  400. package/node_modules/@buddi/tool-mcp/dist/store.js +78 -0
  401. package/node_modules/@buddi/tool-mcp/dist/store.js.map +1 -0
  402. package/node_modules/@buddi/tool-mcp/dist/testing/fake.d.ts +51 -0
  403. package/node_modules/@buddi/tool-mcp/dist/testing/fake.d.ts.map +1 -0
  404. package/node_modules/@buddi/tool-mcp/dist/testing/fake.js +147 -0
  405. package/node_modules/@buddi/tool-mcp/dist/testing/fake.js.map +1 -0
  406. package/node_modules/@buddi/tool-mcp/dist/tiers.d.ts +51 -0
  407. package/node_modules/@buddi/tool-mcp/dist/tiers.d.ts.map +1 -0
  408. package/node_modules/@buddi/tool-mcp/dist/tiers.js +106 -0
  409. package/node_modules/@buddi/tool-mcp/dist/tiers.js.map +1 -0
  410. package/node_modules/@buddi/tool-mcp/dist/tokens.d.ts +35 -0
  411. package/node_modules/@buddi/tool-mcp/dist/tokens.d.ts.map +1 -0
  412. package/node_modules/@buddi/tool-mcp/dist/tokens.js +75 -0
  413. package/node_modules/@buddi/tool-mcp/dist/tokens.js.map +1 -0
  414. package/node_modules/@buddi/tool-mcp/migrations/001_connections.sql +49 -0
  415. package/node_modules/@buddi/tool-mcp/migrations/002_review_again.sql +15 -0
  416. package/node_modules/@buddi/tool-mcp/package.json +34 -0
  417. package/node_modules/@buddi/tool-memory/dist/.tsbuildinfo +1 -1
  418. package/node_modules/@buddi/tool-web/dist/.tsbuildinfo +1 -1
  419. package/node_modules/@zone-eu/mailsplit/lib/flowed-decoder.js +1 -5
  420. package/node_modules/@zone-eu/mailsplit/lib/headers.js +35 -25
  421. package/node_modules/@zone-eu/mailsplit/lib/message-splitter.js +126 -79
  422. package/node_modules/@zone-eu/mailsplit/lib/mime-node.js +27 -5
  423. package/node_modules/@zone-eu/mailsplit/lib/node-rewriter.js +3 -2
  424. package/node_modules/@zone-eu/mailsplit/lib/types.d.ts +0 -3
  425. package/node_modules/@zone-eu/mailsplit/package.json +5 -5
  426. package/node_modules/hono/dist/_virtual/_rolldown/runtime.js +13 -0
  427. package/node_modules/hono/dist/adapter/aws-lambda/conninfo.js +42 -23
  428. package/node_modules/hono/dist/adapter/aws-lambda/handler.js +318 -344
  429. package/node_modules/hono/dist/adapter/aws-lambda/index.js +2 -8
  430. package/node_modules/hono/dist/adapter/aws-lambda/types.js +1 -0
  431. package/node_modules/hono/dist/adapter/bun/conninfo.js +20 -25
  432. package/node_modules/hono/dist/adapter/bun/index.js +3 -13
  433. package/node_modules/hono/dist/adapter/bun/serve-static.js +27 -27
  434. package/node_modules/hono/dist/adapter/bun/server.js +11 -5
  435. package/node_modules/hono/dist/adapter/bun/ssg.js +25 -15
  436. package/node_modules/hono/dist/adapter/bun/websocket.js +61 -68
  437. package/node_modules/hono/dist/adapter/cloudflare-pages/conninfo.js +24 -9
  438. package/node_modules/hono/dist/adapter/cloudflare-pages/handler.js +59 -62
  439. package/node_modules/hono/dist/adapter/cloudflare-pages/index.js +2 -8
  440. package/node_modules/hono/dist/adapter/cloudflare-workers/conninfo.js +7 -9
  441. package/node_modules/hono/dist/adapter/cloudflare-workers/index.js +3 -8
  442. package/node_modules/hono/dist/adapter/cloudflare-workers/serve-static-module.js +5 -6
  443. package/node_modules/hono/dist/adapter/cloudflare-workers/serve-static.js +26 -20
  444. package/node_modules/hono/dist/adapter/cloudflare-workers/utils.js +21 -34
  445. package/node_modules/hono/dist/adapter/cloudflare-workers/websocket.js +31 -39
  446. package/node_modules/hono/dist/adapter/deno/conninfo.js +16 -13
  447. package/node_modules/hono/dist/adapter/deno/deno.d.js +1 -0
  448. package/node_modules/hono/dist/adapter/deno/index.js +3 -10
  449. package/node_modules/hono/dist/adapter/deno/serve-static.js +33 -38
  450. package/node_modules/hono/dist/adapter/deno/ssg.js +27 -16
  451. package/node_modules/hono/dist/adapter/deno/websocket.js +30 -30
  452. package/node_modules/hono/dist/adapter/lambda-edge/conninfo.js +7 -9
  453. package/node_modules/hono/dist/adapter/lambda-edge/handler.js +102 -101
  454. package/node_modules/hono/dist/adapter/lambda-edge/index.js +2 -6
  455. package/node_modules/hono/dist/adapter/netlify/conninfo.js +24 -9
  456. package/node_modules/hono/dist/adapter/netlify/handler.js +10 -8
  457. package/node_modules/hono/dist/adapter/netlify/index.js +3 -2
  458. package/node_modules/hono/dist/adapter/netlify/mod.js +2 -6
  459. package/node_modules/hono/dist/adapter/service-worker/handler.js +15 -19
  460. package/node_modules/hono/dist/adapter/service-worker/index.js +23 -7
  461. package/node_modules/hono/dist/adapter/service-worker/types.js +1 -0
  462. package/node_modules/hono/dist/adapter/vercel/conninfo.js +7 -10
  463. package/node_modules/hono/dist/adapter/vercel/handler.js +8 -6
  464. package/node_modules/hono/dist/adapter/vercel/index.js +2 -6
  465. package/node_modules/hono/dist/cjs/_virtual/_rolldown/runtime.js +33 -0
  466. package/node_modules/hono/dist/cjs/adapter/aws-lambda/conninfo.js +42 -44
  467. package/node_modules/hono/dist/cjs/adapter/aws-lambda/handler.js +326 -373
  468. package/node_modules/hono/dist/cjs/adapter/aws-lambda/index.js +7 -34
  469. package/node_modules/hono/dist/cjs/adapter/aws-lambda/types.js +0 -15
  470. package/node_modules/hono/dist/cjs/adapter/bun/conninfo.js +21 -47
  471. package/node_modules/hono/dist/cjs/adapter/bun/index.js +14 -45
  472. package/node_modules/hono/dist/cjs/adapter/bun/serve-static.js +29 -50
  473. package/node_modules/hono/dist/cjs/adapter/bun/server.js +11 -26
  474. package/node_modules/hono/dist/cjs/adapter/bun/ssg.js +24 -35
  475. package/node_modules/hono/dist/cjs/adapter/bun/websocket.js +63 -91
  476. package/node_modules/hono/dist/cjs/adapter/cloudflare-pages/conninfo.js +25 -31
  477. package/node_modules/hono/dist/cjs/adapter/cloudflare-pages/handler.js +61 -85
  478. package/node_modules/hono/dist/cjs/adapter/cloudflare-pages/index.js +7 -34
  479. package/node_modules/hono/dist/cjs/adapter/cloudflare-workers/conninfo.js +8 -31
  480. package/node_modules/hono/dist/cjs/adapter/cloudflare-workers/index.js +7 -33
  481. package/node_modules/hono/dist/cjs/adapter/cloudflare-workers/serve-static-module.js +7 -29
  482. package/node_modules/hono/dist/cjs/adapter/cloudflare-workers/serve-static.js +27 -42
  483. package/node_modules/hono/dist/cjs/adapter/cloudflare-workers/utils.js +21 -55
  484. package/node_modules/hono/dist/cjs/adapter/cloudflare-workers/websocket.js +33 -62
  485. package/node_modules/hono/dist/cjs/adapter/deno/conninfo.js +16 -34
  486. package/node_modules/hono/dist/cjs/adapter/deno/index.js +10 -38
  487. package/node_modules/hono/dist/cjs/adapter/deno/serve-static.js +33 -59
  488. package/node_modules/hono/dist/cjs/adapter/deno/ssg.js +27 -37
  489. package/node_modules/hono/dist/cjs/adapter/deno/websocket.js +32 -53
  490. package/node_modules/hono/dist/cjs/adapter/lambda-edge/conninfo.js +8 -31
  491. package/node_modules/hono/dist/cjs/adapter/lambda-edge/handler.js +102 -130
  492. package/node_modules/hono/dist/cjs/adapter/lambda-edge/index.js +5 -30
  493. package/node_modules/hono/dist/cjs/adapter/netlify/conninfo.js +25 -31
  494. package/node_modules/hono/dist/cjs/adapter/netlify/handler.js +10 -29
  495. package/node_modules/hono/dist/cjs/adapter/netlify/index.js +5 -21
  496. package/node_modules/hono/dist/cjs/adapter/netlify/mod.js +5 -30
  497. package/node_modules/hono/dist/cjs/adapter/service-worker/handler.js +16 -41
  498. package/node_modules/hono/dist/cjs/adapter/service-worker/index.js +25 -30
  499. package/node_modules/hono/dist/cjs/adapter/service-worker/types.js +0 -15
  500. package/node_modules/hono/dist/cjs/adapter/vercel/conninfo.js +8 -32
  501. package/node_modules/hono/dist/cjs/adapter/vercel/handler.js +8 -27
  502. package/node_modules/hono/dist/cjs/adapter/vercel/index.js +5 -30
  503. package/node_modules/hono/dist/cjs/client/client.js +139 -212
  504. package/node_modules/hono/dist/cjs/client/fetch-result-please.js +62 -80
  505. package/node_modules/hono/dist/cjs/client/index.js +7 -32
  506. package/node_modules/hono/dist/cjs/client/types.js +0 -15
  507. package/node_modules/hono/dist/cjs/client/utils.js +54 -92
  508. package/node_modules/hono/dist/cjs/compose.js +49 -66
  509. package/node_modules/hono/dist/cjs/context.js +379 -450
  510. package/node_modules/hono/dist/cjs/helper/accepts/accepts.js +47 -72
  511. package/node_modules/hono/dist/cjs/helper/accepts/index.js +3 -27
  512. package/node_modules/hono/dist/cjs/helper/adapter/index.js +33 -73
  513. package/node_modules/hono/dist/cjs/helper/conninfo/index.js +0 -15
  514. package/node_modules/hono/dist/cjs/helper/conninfo/types.js +0 -15
  515. package/node_modules/hono/dist/cjs/helper/cookie/index.js +75 -116
  516. package/node_modules/hono/dist/cjs/helper/css/common.js +165 -244
  517. package/node_modules/hono/dist/cjs/helper/css/index.js +136 -151
  518. package/node_modules/hono/dist/cjs/helper/dev/index.js +45 -71
  519. package/node_modules/hono/dist/cjs/helper/factory/index.js +30 -51
  520. package/node_modules/hono/dist/cjs/helper/html/index.js +32 -62
  521. package/node_modules/hono/dist/cjs/helper/proxy/index.js +113 -106
  522. package/node_modules/hono/dist/cjs/helper/route/index.js +123 -66
  523. package/node_modules/hono/dist/cjs/helper/ssg/index.js +19 -43
  524. package/node_modules/hono/dist/cjs/helper/ssg/middleware.js +56 -64
  525. package/node_modules/hono/dist/cjs/helper/ssg/plugins.js +55 -57
  526. package/node_modules/hono/dist/cjs/helper/ssg/ssg.js +196 -296
  527. package/node_modules/hono/dist/cjs/helper/ssg/utils.js +47 -90
  528. package/node_modules/hono/dist/cjs/helper/streaming/index.js +8 -35
  529. package/node_modules/hono/dist/cjs/helper/streaming/sse.js +53 -85
  530. package/node_modules/hono/dist/cjs/helper/streaming/stream.js +23 -53
  531. package/node_modules/hono/dist/cjs/helper/streaming/text.js +10 -32
  532. package/node_modules/hono/dist/cjs/helper/streaming/utils.js +13 -32
  533. package/node_modules/hono/dist/cjs/helper/testing/index.js +16 -31
  534. package/node_modules/hono/dist/cjs/helper/websocket/index.js +51 -76
  535. package/node_modules/hono/dist/cjs/hono-base.js +345 -403
  536. package/node_modules/hono/dist/cjs/hono.js +28 -42
  537. package/node_modules/hono/dist/cjs/http-exception.js +55 -56
  538. package/node_modules/hono/dist/cjs/index.js +22 -30
  539. package/node_modules/hono/dist/cjs/jsx/base.js +237 -366
  540. package/node_modules/hono/dist/cjs/jsx/children.js +16 -41
  541. package/node_modules/hono/dist/cjs/jsx/components.js +119 -192
  542. package/node_modules/hono/dist/cjs/jsx/constants.js +15 -42
  543. package/node_modules/hono/dist/cjs/jsx/context.js +144 -162
  544. package/node_modules/hono/dist/cjs/jsx/dom/client.js +49 -69
  545. package/node_modules/hono/dist/cjs/jsx/dom/components.js +23 -52
  546. package/node_modules/hono/dist/cjs/jsx/dom/context.js +39 -67
  547. package/node_modules/hono/dist/cjs/jsx/dom/css.js +143 -158
  548. package/node_modules/hono/dist/cjs/jsx/dom/hooks/index.js +55 -64
  549. package/node_modules/hono/dist/cjs/jsx/dom/index.js +114 -173
  550. package/node_modules/hono/dist/cjs/jsx/dom/intrinsic-element/components.js +282 -375
  551. package/node_modules/hono/dist/cjs/jsx/dom/jsx-dev-runtime.js +14 -49
  552. package/node_modules/hono/dist/cjs/jsx/dom/jsx-runtime.js +5 -32
  553. package/node_modules/hono/dist/cjs/jsx/dom/render.js +469 -623
  554. package/node_modules/hono/dist/cjs/jsx/dom/server.js +37 -64
  555. package/node_modules/hono/dist/cjs/jsx/dom/utils.js +7 -30
  556. package/node_modules/hono/dist/cjs/jsx/hooks/index.js +225 -318
  557. package/node_modules/hono/dist/cjs/jsx/index.js +86 -135
  558. package/node_modules/hono/dist/cjs/jsx/intrinsic-element/common.js +20 -43
  559. package/node_modules/hono/dist/cjs/jsx/intrinsic-element/components.js +117 -168
  560. package/node_modules/hono/dist/cjs/jsx/intrinsic-elements.js +0 -15
  561. package/node_modules/hono/dist/cjs/jsx/jsx-dev-runtime.js +14 -39
  562. package/node_modules/hono/dist/cjs/jsx/jsx-runtime.js +34 -68
  563. package/node_modules/hono/dist/cjs/jsx/streaming.js +123 -166
  564. package/node_modules/hono/dist/cjs/jsx/types.js +0 -15
  565. package/node_modules/hono/dist/cjs/jsx/utils.js +91 -175
  566. package/node_modules/hono/dist/cjs/middleware/basic-auth/index.js +98 -86
  567. package/node_modules/hono/dist/cjs/middleware/bearer-auth/index.js +92 -109
  568. package/node_modules/hono/dist/cjs/middleware/body-limit/index.js +66 -72
  569. package/node_modules/hono/dist/cjs/middleware/cache/index.js +153 -199
  570. package/node_modules/hono/dist/cjs/middleware/combine/index.js +133 -95
  571. package/node_modules/hono/dist/cjs/middleware/compress/index.js +73 -88
  572. package/node_modules/hono/dist/cjs/middleware/context-storage/index.js +49 -41
  573. package/node_modules/hono/dist/cjs/middleware/cors/index.js +107 -107
  574. package/node_modules/hono/dist/cjs/middleware/csrf/index.js +101 -72
  575. package/node_modules/hono/dist/cjs/middleware/etag/digest.js +58 -97
  576. package/node_modules/hono/dist/cjs/middleware/etag/index.js +71 -91
  577. package/node_modules/hono/dist/cjs/middleware/ip-restriction/index.js +161 -169
  578. package/node_modules/hono/dist/cjs/middleware/jsx-renderer/index.js +99 -77
  579. package/node_modules/hono/dist/cjs/middleware/jwk/index.js +3 -27
  580. package/node_modules/hono/dist/cjs/middleware/jwk/jwk.js +118 -135
  581. package/node_modules/hono/dist/cjs/middleware/jwt/index.js +9 -38
  582. package/node_modules/hono/dist/cjs/middleware/jwt/jwt.js +120 -141
  583. package/node_modules/hono/dist/cjs/middleware/language/index.js +7 -35
  584. package/node_modules/hono/dist/cjs/middleware/language/language.js +184 -182
  585. package/node_modules/hono/dist/cjs/middleware/logger/index.js +41 -62
  586. package/node_modules/hono/dist/cjs/middleware/method-not-allowed/index.js +82 -88
  587. package/node_modules/hono/dist/cjs/middleware/method-override/index.js +101 -102
  588. package/node_modules/hono/dist/cjs/middleware/powered-by/index.js +23 -30
  589. package/node_modules/hono/dist/cjs/middleware/pretty-json/index.js +38 -42
  590. package/node_modules/hono/dist/cjs/middleware/request-id/index.js +3 -27
  591. package/node_modules/hono/dist/cjs/middleware/request-id/request-id.js +34 -42
  592. package/node_modules/hono/dist/cjs/middleware/secure-headers/index.js +4 -29
  593. package/node_modules/hono/dist/cjs/middleware/secure-headers/permissions-policy.js +0 -15
  594. package/node_modules/hono/dist/cjs/middleware/secure-headers/secure-headers.js +142 -174
  595. package/node_modules/hono/dist/cjs/middleware/serve-static/index.js +55 -93
  596. package/node_modules/hono/dist/cjs/middleware/serve-static/path.js +15 -38
  597. package/node_modules/hono/dist/cjs/middleware/timeout/index.js +40 -45
  598. package/node_modules/hono/dist/cjs/middleware/timing/index.js +7 -35
  599. package/node_modules/hono/dist/cjs/middleware/timing/timing.js +177 -118
  600. package/node_modules/hono/dist/cjs/middleware/trailing-slash/index.js +85 -58
  601. package/node_modules/hono/dist/cjs/preset/quick.js +18 -37
  602. package/node_modules/hono/dist/cjs/preset/tiny.js +15 -33
  603. package/node_modules/hono/dist/cjs/request/constants.js +5 -27
  604. package/node_modules/hono/dist/cjs/request.js +334 -346
  605. package/node_modules/hono/dist/cjs/router/linear-router/index.js +3 -27
  606. package/node_modules/hono/dist/cjs/router/linear-router/router.js +95 -143
  607. package/node_modules/hono/dist/cjs/router/pattern-router/index.js +3 -27
  608. package/node_modules/hono/dist/cjs/router/pattern-router/router.js +41 -63
  609. package/node_modules/hono/dist/cjs/router/reg-exp-router/index.js +7 -34
  610. package/node_modules/hono/dist/cjs/router/reg-exp-router/matcher.js +18 -45
  611. package/node_modules/hono/dist/cjs/router/reg-exp-router/node.js +91 -135
  612. package/node_modules/hono/dist/cjs/router/reg-exp-router/prepared-router.js +92 -161
  613. package/node_modules/hono/dist/cjs/router/reg-exp-router/router.js +98 -147
  614. package/node_modules/hono/dist/cjs/router/reg-exp-router/trie.js +73 -89
  615. package/node_modules/hono/dist/cjs/router/smart-router/index.js +3 -27
  616. package/node_modules/hono/dist/cjs/router/smart-router/router.js +49 -79
  617. package/node_modules/hono/dist/cjs/router/trie-router/index.js +3 -27
  618. package/node_modules/hono/dist/cjs/router/trie-router/node.js +134 -186
  619. package/node_modules/hono/dist/cjs/router/trie-router/router.js +15 -39
  620. package/node_modules/hono/dist/cjs/router/utils.js +5 -27
  621. package/node_modules/hono/dist/cjs/router.js +37 -37
  622. package/node_modules/hono/dist/cjs/types.js +5 -28
  623. package/node_modules/hono/dist/cjs/utils/accept.js +177 -225
  624. package/node_modules/hono/dist/cjs/utils/basic-auth.js +16 -40
  625. package/node_modules/hono/dist/cjs/utils/body.js +84 -110
  626. package/node_modules/hono/dist/cjs/utils/buffer.js +43 -91
  627. package/node_modules/hono/dist/cjs/utils/color.js +35 -44
  628. package/node_modules/hono/dist/cjs/utils/compress.js +11 -26
  629. package/node_modules/hono/dist/cjs/utils/concurrent.js +29 -59
  630. package/node_modules/hono/dist/cjs/utils/constants.js +7 -26
  631. package/node_modules/hono/dist/cjs/utils/cookie.js +107 -177
  632. package/node_modules/hono/dist/cjs/utils/crypto.js +30 -61
  633. package/node_modules/hono/dist/cjs/utils/encode.js +31 -48
  634. package/node_modules/hono/dist/cjs/utils/filepath.js +23 -54
  635. package/node_modules/hono/dist/cjs/utils/handler.js +11 -33
  636. package/node_modules/hono/dist/cjs/utils/headers.js +0 -15
  637. package/node_modules/hono/dist/cjs/utils/html.js +96 -137
  638. package/node_modules/hono/dist/cjs/utils/http-status.js +0 -15
  639. package/node_modules/hono/dist/cjs/utils/ipaddr.js +213 -286
  640. package/node_modules/hono/dist/cjs/utils/jwt/index.js +14 -27
  641. package/node_modules/hono/dist/cjs/utils/jwt/jwa.js +25 -42
  642. package/node_modules/hono/dist/cjs/utils/jwt/jws.js +119 -199
  643. package/node_modules/hono/dist/cjs/utils/jwt/jwt.js +122 -206
  644. package/node_modules/hono/dist/cjs/utils/jwt/types.js +122 -159
  645. package/node_modules/hono/dist/cjs/utils/jwt/utf8.js +9 -28
  646. package/node_modules/hono/dist/cjs/utils/mime.js +75 -101
  647. package/node_modules/hono/dist/cjs/utils/stream.js +88 -111
  648. package/node_modules/hono/dist/cjs/utils/types.js +0 -15
  649. package/node_modules/hono/dist/cjs/utils/url.js +185 -234
  650. package/node_modules/hono/dist/cjs/validator/index.js +3 -27
  651. package/node_modules/hono/dist/cjs/validator/utils.js +0 -15
  652. package/node_modules/hono/dist/cjs/validator/validator.js +60 -103
  653. package/node_modules/hono/dist/client/client.js +138 -197
  654. package/node_modules/hono/dist/client/fetch-result-please.js +59 -56
  655. package/node_modules/hono/dist/client/index.js +3 -7
  656. package/node_modules/hono/dist/client/types.js +1 -0
  657. package/node_modules/hono/dist/client/utils.js +51 -68
  658. package/node_modules/hono/dist/compose.js +49 -45
  659. package/node_modules/hono/dist/context.js +376 -426
  660. package/node_modules/hono/dist/helper/accepts/accepts.js +47 -51
  661. package/node_modules/hono/dist/helper/accepts/index.js +1 -4
  662. package/node_modules/hono/dist/helper/adapter/index.js +33 -52
  663. package/node_modules/hono/dist/helper/conninfo/index.js +1 -0
  664. package/node_modules/hono/dist/helper/conninfo/types.js +1 -0
  665. package/node_modules/hono/dist/helper/cookie/index.js +74 -94
  666. package/node_modules/hono/dist/helper/css/common.js +167 -225
  667. package/node_modules/hono/dist/helper/css/index.js +132 -137
  668. package/node_modules/hono/dist/helper/dev/index.js +44 -49
  669. package/node_modules/hono/dist/helper/factory/index.js +27 -27
  670. package/node_modules/hono/dist/helper/html/index.js +30 -39
  671. package/node_modules/hono/dist/helper/proxy/index.js +116 -88
  672. package/node_modules/hono/dist/helper/route/index.js +121 -43
  673. package/node_modules/hono/dist/helper/ssg/index.js +3 -18
  674. package/node_modules/hono/dist/helper/ssg/middleware.js +53 -40
  675. package/node_modules/hono/dist/helper/ssg/plugins.js +55 -36
  676. package/node_modules/hono/dist/helper/ssg/ssg.js +198 -283
  677. package/node_modules/hono/dist/helper/ssg/utils.js +53 -75
  678. package/node_modules/hono/dist/helper/streaming/index.js +2 -8
  679. package/node_modules/hono/dist/helper/streaming/sse.js +50 -61
  680. package/node_modules/hono/dist/helper/streaming/stream.js +22 -31
  681. package/node_modules/hono/dist/helper/streaming/text.js +9 -10
  682. package/node_modules/hono/dist/helper/streaming/utils.js +9 -12
  683. package/node_modules/hono/dist/helper/testing/index.js +16 -10
  684. package/node_modules/hono/dist/helper/websocket/index.js +49 -53
  685. package/node_modules/hono/dist/hono-base.js +342 -379
  686. package/node_modules/hono/dist/hono.js +27 -20
  687. package/node_modules/hono/dist/http-exception.js +53 -33
  688. package/node_modules/hono/dist/index.js +19 -6
  689. package/node_modules/hono/dist/jsx/base.js +231 -340
  690. package/node_modules/hono/dist/jsx/children.js +16 -20
  691. package/node_modules/hono/dist/jsx/components.js +118 -170
  692. package/node_modules/hono/dist/jsx/constants.js +9 -15
  693. package/node_modules/hono/dist/jsx/context.js +153 -150
  694. package/node_modules/hono/dist/jsx/dom/client.js +45 -48
  695. package/node_modules/hono/dist/jsx/dom/components.js +21 -29
  696. package/node_modules/hono/dist/jsx/dom/context.js +37 -44
  697. package/node_modules/hono/dist/jsx/dom/css.js +142 -147
  698. package/node_modules/hono/dist/jsx/dom/hooks/index.js +52 -40
  699. package/node_modules/hono/dist/jsx/dom/index.js +71 -134
  700. package/node_modules/hono/dist/jsx/dom/intrinsic-element/components.js +275 -359
  701. package/node_modules/hono/dist/jsx/dom/jsx-dev-runtime.js +14 -18
  702. package/node_modules/hono/dist/jsx/dom/jsx-runtime.js +2 -8
  703. package/node_modules/hono/dist/jsx/dom/render.js +492 -631
  704. package/node_modules/hono/dist/jsx/dom/server.js +32 -32
  705. package/node_modules/hono/dist/jsx/dom/utils.js +6 -8
  706. package/node_modules/hono/dist/jsx/hooks/index.js +236 -308
  707. package/node_modules/hono/dist/jsx/index.js +45 -98
  708. package/node_modules/hono/dist/jsx/intrinsic-element/common.js +20 -22
  709. package/node_modules/hono/dist/jsx/intrinsic-element/components.js +113 -154
  710. package/node_modules/hono/dist/jsx/intrinsic-elements.js +1 -0
  711. package/node_modules/hono/dist/jsx/jsx-dev-runtime.js +12 -16
  712. package/node_modules/hono/dist/jsx/jsx-runtime.js +29 -42
  713. package/node_modules/hono/dist/jsx/streaming.js +120 -142
  714. package/node_modules/hono/dist/jsx/types.js +1 -0
  715. package/node_modules/hono/dist/jsx/utils.js +105 -168
  716. package/node_modules/hono/dist/middleware/basic-auth/index.js +96 -63
  717. package/node_modules/hono/dist/middleware/bearer-auth/index.js +93 -89
  718. package/node_modules/hono/dist/middleware/body-limit/index.js +66 -51
  719. package/node_modules/hono/dist/middleware/cache/index.js +165 -190
  720. package/node_modules/hono/dist/middleware/combine/index.js +132 -73
  721. package/node_modules/hono/dist/middleware/compress/index.js +75 -69
  722. package/node_modules/hono/dist/middleware/context-storage/index.js +49 -19
  723. package/node_modules/hono/dist/middleware/cors/index.js +107 -86
  724. package/node_modules/hono/dist/middleware/csrf/index.js +103 -53
  725. package/node_modules/hono/dist/middleware/etag/digest.js +59 -77
  726. package/node_modules/hono/dist/middleware/etag/index.js +71 -70
  727. package/node_modules/hono/dist/middleware/ip-restriction/index.js +163 -158
  728. package/node_modules/hono/dist/middleware/jsx-renderer/index.js +97 -54
  729. package/node_modules/hono/dist/middleware/jwk/index.js +1 -4
  730. package/node_modules/hono/dist/middleware/jwk/jwk.js +116 -112
  731. package/node_modules/hono/dist/middleware/jwt/index.js +2 -10
  732. package/node_modules/hono/dist/middleware/jwt/jwt.js +114 -114
  733. package/node_modules/hono/dist/middleware/language/index.js +2 -15
  734. package/node_modules/hono/dist/middleware/language/language.js +180 -157
  735. package/node_modules/hono/dist/middleware/logger/index.js +43 -37
  736. package/node_modules/hono/dist/middleware/method-not-allowed/index.js +81 -66
  737. package/node_modules/hono/dist/middleware/method-override/index.js +101 -81
  738. package/node_modules/hono/dist/middleware/powered-by/index.js +23 -9
  739. package/node_modules/hono/dist/middleware/pretty-json/index.js +39 -22
  740. package/node_modules/hono/dist/middleware/request-id/index.js +1 -4
  741. package/node_modules/hono/dist/middleware/request-id/request-id.js +33 -20
  742. package/node_modules/hono/dist/middleware/secure-headers/index.js +1 -5
  743. package/node_modules/hono/dist/middleware/secure-headers/permissions-policy.js +1 -0
  744. package/node_modules/hono/dist/middleware/secure-headers/secure-headers.js +144 -155
  745. package/node_modules/hono/dist/middleware/serve-static/index.js +55 -72
  746. package/node_modules/hono/dist/middleware/serve-static/path.js +15 -17
  747. package/node_modules/hono/dist/middleware/timeout/index.js +40 -23
  748. package/node_modules/hono/dist/middleware/timing/index.js +2 -9
  749. package/node_modules/hono/dist/middleware/timing/timing.js +177 -97
  750. package/node_modules/hono/dist/middleware/trailing-slash/index.js +85 -37
  751. package/node_modules/hono/dist/preset/quick.js +17 -15
  752. package/node_modules/hono/dist/preset/tiny.js +14 -11
  753. package/node_modules/hono/dist/request/constants.js +4 -5
  754. package/node_modules/hono/dist/request.js +328 -319
  755. package/node_modules/hono/dist/router/linear-router/index.js +1 -4
  756. package/node_modules/hono/dist/router/linear-router/router.js +93 -120
  757. package/node_modules/hono/dist/router/pattern-router/index.js +1 -4
  758. package/node_modules/hono/dist/router/pattern-router/router.js +39 -40
  759. package/node_modules/hono/dist/router/reg-exp-router/index.js +1 -7
  760. package/node_modules/hono/dist/router/reg-exp-router/matcher.js +17 -23
  761. package/node_modules/hono/dist/router/reg-exp-router/node.js +87 -110
  762. package/node_modules/hono/dist/router/reg-exp-router/prepared-router.js +89 -137
  763. package/node_modules/hono/dist/router/reg-exp-router/router.js +92 -129
  764. package/node_modules/hono/dist/router/reg-exp-router/trie.js +69 -64
  765. package/node_modules/hono/dist/router/smart-router/index.js +1 -4
  766. package/node_modules/hono/dist/router/smart-router/router.js +46 -55
  767. package/node_modules/hono/dist/router/trie-router/index.js +1 -4
  768. package/node_modules/hono/dist/router/trie-router/node.js +131 -162
  769. package/node_modules/hono/dist/router/trie-router/router.js +11 -14
  770. package/node_modules/hono/dist/router/utils.js +4 -5
  771. package/node_modules/hono/dist/router.js +35 -14
  772. package/node_modules/hono/dist/types/adapter/aws-lambda/conninfo.d.ts +4 -1
  773. package/node_modules/hono/dist/types/adapter/aws-lambda/handler.d.ts +150 -105
  774. package/node_modules/hono/dist/types/adapter/aws-lambda/index.d.ts +4 -8
  775. package/node_modules/hono/dist/types/adapter/aws-lambda/types.d.ts +152 -123
  776. package/node_modules/hono/dist/types/adapter/bun/conninfo.d.ts +4 -1
  777. package/node_modules/hono/dist/types/adapter/bun/index.d.ts +6 -10
  778. package/node_modules/hono/dist/types/adapter/bun/serve-static.d.ts +7 -2
  779. package/node_modules/hono/dist/types/adapter/bun/server.d.ts +4 -5
  780. package/node_modules/hono/dist/types/adapter/bun/ssg.d.ts +5 -1
  781. package/node_modules/hono/dist/types/adapter/bun/websocket.d.ts +31 -17
  782. package/node_modules/hono/dist/types/adapter/cloudflare-pages/conninfo.d.ts +4 -1
  783. package/node_modules/hono/dist/types/adapter/cloudflare-pages/handler.d.ts +29 -18
  784. package/node_modules/hono/dist/types/adapter/cloudflare-pages/index.d.ts +3 -7
  785. package/node_modules/hono/dist/types/adapter/cloudflare-workers/conninfo.d.ts +6 -1
  786. package/node_modules/hono/dist/types/adapter/cloudflare-workers/index.d.ts +4 -7
  787. package/node_modules/hono/dist/types/adapter/cloudflare-workers/serve-static-module.d.ts +5 -3
  788. package/node_modules/hono/dist/types/adapter/cloudflare-workers/serve-static.d.ts +10 -5
  789. package/node_modules/hono/dist/types/adapter/cloudflare-workers/utils.d.ts +10 -2
  790. package/node_modules/hono/dist/types/adapter/cloudflare-workers/websocket.d.ts +6 -1
  791. package/node_modules/hono/dist/types/adapter/deno/conninfo.d.ts +4 -1
  792. package/node_modules/hono/dist/types/adapter/deno/deno.d.ts +1 -0
  793. package/node_modules/hono/dist/types/adapter/deno/index.d.ts +5 -8
  794. package/node_modules/hono/dist/types/adapter/deno/serve-static.d.ts +7 -2
  795. package/node_modules/hono/dist/types/adapter/deno/ssg.d.ts +5 -1
  796. package/node_modules/hono/dist/types/adapter/deno/websocket.d.ts +6 -1
  797. package/node_modules/hono/dist/types/adapter/lambda-edge/conninfo.d.ts +6 -1
  798. package/node_modules/hono/dist/types/adapter/lambda-edge/handler.d.ts +83 -58
  799. package/node_modules/hono/dist/types/adapter/lambda-edge/index.d.ts +3 -7
  800. package/node_modules/hono/dist/types/adapter/netlify/conninfo.d.ts +4 -1
  801. package/node_modules/hono/dist/types/adapter/netlify/handler.d.ts +6 -1
  802. package/node_modules/hono/dist/types/adapter/netlify/index.d.ts +3 -5
  803. package/node_modules/hono/dist/types/adapter/netlify/mod.d.ts +3 -2
  804. package/node_modules/hono/dist/types/adapter/service-worker/handler.d.ts +9 -8
  805. package/node_modules/hono/dist/types/adapter/service-worker/index.d.ts +6 -9
  806. package/node_modules/hono/dist/types/adapter/service-worker/types.d.ts +12 -8
  807. package/node_modules/hono/dist/types/adapter/vercel/conninfo.d.ts +6 -1
  808. package/node_modules/hono/dist/types/adapter/vercel/handler.d.ts +6 -1
  809. package/node_modules/hono/dist/types/adapter/vercel/index.d.ts +3 -6
  810. package/node_modules/hono/dist/types/client/client.d.ts +5 -3
  811. package/node_modules/hono/dist/types/client/fetch-result-please.d.ts +21 -19
  812. package/node_modules/hono/dist/types/client/index.d.ts +5 -7
  813. package/node_modules/hono/dist/types/client/types.d.ts +134 -160
  814. package/node_modules/hono/dist/types/client/utils.d.ts +6 -4
  815. package/node_modules/hono/dist/types/compose.d.ts +4 -2
  816. package/node_modules/hono/dist/types/context.d.ts +335 -336
  817. package/node_modules/hono/dist/types/helper/accepts/accepts.d.ts +11 -9
  818. package/node_modules/hono/dist/types/helper/accepts/index.d.ts +2 -5
  819. package/node_modules/hono/dist/types/helper/adapter/index.d.ts +4 -6
  820. package/node_modules/hono/dist/types/helper/conninfo/index.d.ts +2 -5
  821. package/node_modules/hono/dist/types/helper/conninfo/types.d.ts +25 -23
  822. package/node_modules/hono/dist/types/helper/cookie/index.d.ts +10 -13
  823. package/node_modules/hono/dist/types/helper/css/common.d.ts +11 -10
  824. package/node_modules/hono/dist/types/helper/css/index.d.ts +25 -28
  825. package/node_modules/hono/dist/types/helper/dev/index.d.ts +10 -13
  826. package/node_modules/hono/dist/types/helper/factory/index.d.ts +26 -74
  827. package/node_modules/hono/dist/types/helper/html/index.d.ts +4 -7
  828. package/node_modules/hono/dist/types/helper/proxy/index.d.ts +19 -22
  829. package/node_modules/hono/dist/types/helper/route/index.d.ts +4 -2
  830. package/node_modules/hono/dist/types/helper/ssg/index.d.ts +4 -7
  831. package/node_modules/hono/dist/types/helper/ssg/middleware.d.ts +8 -7
  832. package/node_modules/hono/dist/types/helper/ssg/plugins.d.ts +3 -1
  833. package/node_modules/hono/dist/types/helper/ssg/ssg.d.ts +38 -36
  834. package/node_modules/hono/dist/types/helper/ssg/utils.d.ts +5 -4
  835. package/node_modules/hono/dist/types/helper/streaming/index.d.ts +4 -8
  836. package/node_modules/hono/dist/types/helper/streaming/sse.d.ts +10 -8
  837. package/node_modules/hono/dist/types/helper/streaming/stream.d.ts +4 -2
  838. package/node_modules/hono/dist/types/helper/streaming/text.d.ts +4 -2
  839. package/node_modules/hono/dist/types/helper/streaming/utils.d.ts +2 -0
  840. package/node_modules/hono/dist/types/helper/testing/index.d.ts +7 -10
  841. package/node_modules/hono/dist/types/helper/websocket/index.d.ts +30 -33
  842. package/node_modules/hono/dist/types/hono-base.d.ts +208 -211
  843. package/node_modules/hono/dist/types/hono.d.ts +11 -10
  844. package/node_modules/hono/dist/types/http-exception.d.ts +20 -23
  845. package/node_modules/hono/dist/types/index.d.ts +6 -37
  846. package/node_modules/hono/dist/types/jsx/base.d.ts +36 -35
  847. package/node_modules/hono/dist/types/jsx/children.d.ts +8 -6
  848. package/node_modules/hono/dist/types/jsx/components.d.ts +8 -5
  849. package/node_modules/hono/dist/types/jsx/constants.d.ts +2 -0
  850. package/node_modules/hono/dist/types/jsx/context.d.ts +9 -7
  851. package/node_modules/hono/dist/types/jsx/dom/client.d.ts +8 -10
  852. package/node_modules/hono/dist/types/jsx/dom/components.d.ts +9 -6
  853. package/node_modules/hono/dist/types/jsx/dom/context.d.ts +3 -1
  854. package/node_modules/hono/dist/types/jsx/dom/css.d.ts +26 -30
  855. package/node_modules/hono/dist/types/jsx/dom/hooks/index.d.ts +11 -13
  856. package/node_modules/hono/dist/types/jsx/dom/index.d.ts +78 -83
  857. package/node_modules/hono/dist/types/jsx/dom/intrinsic-element/components.d.ts +9 -5
  858. package/node_modules/hono/dist/types/jsx/dom/jsx-dev-runtime.d.ts +4 -6
  859. package/node_modules/hono/dist/types/jsx/dom/jsx-runtime.d.ts +3 -7
  860. package/node_modules/hono/dist/types/jsx/dom/render.d.ts +32 -51
  861. package/node_modules/hono/dist/types/jsx/dom/server.d.ts +86 -85
  862. package/node_modules/hono/dist/types/jsx/dom/utils.d.ts +2 -0
  863. package/node_modules/hono/dist/types/jsx/hooks/index.d.ts +16 -17
  864. package/node_modules/hono/dist/types/jsx/index.d.ts +70 -73
  865. package/node_modules/hono/dist/types/jsx/intrinsic-element/common.d.ts +3 -1
  866. package/node_modules/hono/dist/types/jsx/intrinsic-element/components.d.ts +7 -4
  867. package/node_modules/hono/dist/types/jsx/intrinsic-elements.d.ts +708 -708
  868. package/node_modules/hono/dist/types/jsx/jsx-dev-runtime.d.ts +4 -7
  869. package/node_modules/hono/dist/types/jsx/jsx-runtime.d.ts +7 -10
  870. package/node_modules/hono/dist/types/jsx/streaming.d.ts +9 -10
  871. package/node_modules/hono/dist/types/jsx/types.d.ts +11 -13
  872. package/node_modules/hono/dist/types/jsx/utils.d.ts +2 -0
  873. package/node_modules/hono/dist/types/middleware/basic-auth/index.d.ts +17 -20
  874. package/node_modules/hono/dist/types/middleware/bearer-auth/index.d.ts +46 -49
  875. package/node_modules/hono/dist/types/middleware/body-limit/index.d.ts +6 -9
  876. package/node_modules/hono/dist/types/middleware/cache/index.d.ts +13 -15
  877. package/node_modules/hono/dist/types/middleware/combine/index.d.ts +4 -7
  878. package/node_modules/hono/dist/types/middleware/compress/index.d.ts +8 -10
  879. package/node_modules/hono/dist/types/middleware/context-storage/index.d.ts +4 -6
  880. package/node_modules/hono/dist/types/middleware/cors/index.d.ts +10 -13
  881. package/node_modules/hono/dist/types/middleware/csrf/index.d.ts +6 -9
  882. package/node_modules/hono/dist/types/middleware/etag/digest.d.ts +2 -0
  883. package/node_modules/hono/dist/types/middleware/etag/index.d.ts +6 -9
  884. package/node_modules/hono/dist/types/middleware/ip-restriction/index.d.ts +11 -13
  885. package/node_modules/hono/dist/types/middleware/jsx-renderer/index.d.ts +11 -12
  886. package/node_modules/hono/dist/types/middleware/jwk/index.d.ts +2 -1
  887. package/node_modules/hono/dist/types/middleware/jwk/jwk.d.ts +20 -23
  888. package/node_modules/hono/dist/types/middleware/jwt/index.d.ts +6 -6
  889. package/node_modules/hono/dist/types/middleware/jwt/jwt.d.ts +28 -30
  890. package/node_modules/hono/dist/types/middleware/language/index.d.ts +5 -5
  891. package/node_modules/hono/dist/types/middleware/language/language.d.ts +42 -44
  892. package/node_modules/hono/dist/types/middleware/logger/index.d.ts +3 -6
  893. package/node_modules/hono/dist/types/middleware/method-not-allowed/index.d.ts +7 -10
  894. package/node_modules/hono/dist/types/middleware/method-override/index.d.ts +14 -17
  895. package/node_modules/hono/dist/types/middleware/powered-by/index.d.ts +8 -11
  896. package/node_modules/hono/dist/types/middleware/pretty-json/index.d.ts +18 -21
  897. package/node_modules/hono/dist/types/middleware/request-id/index.d.ts +5 -5
  898. package/node_modules/hono/dist/types/middleware/request-id/request-id.d.ts +9 -11
  899. package/node_modules/hono/dist/types/middleware/secure-headers/index.d.ts +5 -6
  900. package/node_modules/hono/dist/types/middleware/secure-headers/permissions-policy.d.ts +2 -1
  901. package/node_modules/hono/dist/types/middleware/secure-headers/secure-headers.d.ts +55 -58
  902. package/node_modules/hono/dist/types/middleware/serve-static/index.d.ts +22 -24
  903. package/node_modules/hono/dist/types/middleware/serve-static/path.d.ts +2 -0
  904. package/node_modules/hono/dist/types/middleware/timeout/index.d.ts +5 -7
  905. package/node_modules/hono/dist/types/middleware/timing/index.d.ts +5 -5
  906. package/node_modules/hono/dist/types/middleware/timing/timing.d.ts +17 -21
  907. package/node_modules/hono/dist/types/middleware/trailing-slash/index.d.ts +35 -38
  908. package/node_modules/hono/dist/types/preset/quick.d.ts +6 -9
  909. package/node_modules/hono/dist/types/preset/tiny.d.ts +6 -9
  910. package/node_modules/hono/dist/types/request/constants.d.ts +2 -0
  911. package/node_modules/hono/dist/types/request.d.ts +288 -287
  912. package/node_modules/hono/dist/types/router/linear-router/index.d.ts +2 -5
  913. package/node_modules/hono/dist/types/router/linear-router/router.d.ts +7 -5
  914. package/node_modules/hono/dist/types/router/pattern-router/index.d.ts +2 -5
  915. package/node_modules/hono/dist/types/router/pattern-router/router.d.ts +7 -5
  916. package/node_modules/hono/dist/types/router/reg-exp-router/index.d.ts +3 -6
  917. package/node_modules/hono/dist/types/router/reg-exp-router/matcher.d.ts +3 -1
  918. package/node_modules/hono/dist/types/router/reg-exp-router/node.d.ts +6 -4
  919. package/node_modules/hono/dist/types/router/reg-exp-router/prepared-router.d.ts +11 -11
  920. package/node_modules/hono/dist/types/router/reg-exp-router/router.d.ts +10 -9
  921. package/node_modules/hono/dist/types/router/reg-exp-router/trie.d.ts +7 -5
  922. package/node_modules/hono/dist/types/router/smart-router/index.d.ts +2 -5
  923. package/node_modules/hono/dist/types/router/smart-router/router.d.ts +11 -9
  924. package/node_modules/hono/dist/types/router/trie-router/index.d.ts +2 -5
  925. package/node_modules/hono/dist/types/router/trie-router/node.d.ts +6 -4
  926. package/node_modules/hono/dist/types/router/trie-router/router.d.ts +7 -5
  927. package/node_modules/hono/dist/types/router/utils.d.ts +2 -0
  928. package/node_modules/hono/dist/types/router.d.ts +23 -22
  929. package/node_modules/hono/dist/types/types.d.ts +146 -506
  930. package/node_modules/hono/dist/types/utils/accept.d.ts +5 -3
  931. package/node_modules/hono/dist/types/utils/basic-auth.d.ts +4 -2
  932. package/node_modules/hono/dist/types/utils/body.d.ts +46 -51
  933. package/node_modules/hono/dist/types/utils/buffer.d.ts +7 -6
  934. package/node_modules/hono/dist/types/utils/color.d.ts +2 -0
  935. package/node_modules/hono/dist/types/utils/compress.d.ts +2 -0
  936. package/node_modules/hono/dist/types/utils/concurrent.d.ts +6 -4
  937. package/node_modules/hono/dist/types/utils/constants.d.ts +2 -0
  938. package/node_modules/hono/dist/types/utils/cookie.d.ts +20 -19
  939. package/node_modules/hono/dist/types/utils/crypto.d.ts +5 -8
  940. package/node_modules/hono/dist/types/utils/encode.d.ts +2 -0
  941. package/node_modules/hono/dist/types/utils/filepath.d.ts +5 -4
  942. package/node_modules/hono/dist/types/utils/handler.d.ts +2 -0
  943. package/node_modules/hono/dist/types/utils/headers.d.ts +2 -0
  944. package/node_modules/hono/dist/types/utils/html.d.ts +11 -10
  945. package/node_modules/hono/dist/types/utils/http-status.d.ts +2 -0
  946. package/node_modules/hono/dist/types/utils/ipaddr.d.ts +4 -6
  947. package/node_modules/hono/dist/types/utils/jwt/index.d.ts +18 -12
  948. package/node_modules/hono/dist/types/utils/jwt/jwa.d.ts +15 -13
  949. package/node_modules/hono/dist/types/utils/jwt/jws.d.ts +4 -7
  950. package/node_modules/hono/dist/types/utils/jwt/jwt.d.ts +26 -29
  951. package/node_modules/hono/dist/types/utils/jwt/types.d.ts +48 -45
  952. package/node_modules/hono/dist/types/utils/jwt/utf8.d.ts +2 -0
  953. package/node_modules/hono/dist/types/utils/mime.d.ts +59 -57
  954. package/node_modules/hono/dist/types/utils/stream.d.ts +27 -25
  955. package/node_modules/hono/dist/types/utils/types.d.ts +14 -27
  956. package/node_modules/hono/dist/types/utils/url.d.ts +2 -1
  957. package/node_modules/hono/dist/types/validator/index.d.ts +3 -7
  958. package/node_modules/hono/dist/types/validator/utils.d.ts +6 -9
  959. package/node_modules/hono/dist/types/validator/validator.d.ts +11 -10
  960. package/node_modules/hono/dist/types.js +4 -6
  961. package/node_modules/hono/dist/utils/accept.js +185 -212
  962. package/node_modules/hono/dist/utils/basic-auth.js +18 -21
  963. package/node_modules/hono/dist/utils/body.js +87 -92
  964. package/node_modules/hono/dist/utils/buffer.js +44 -71
  965. package/node_modules/hono/dist/utils/color.js +33 -21
  966. package/node_modules/hono/dist/utils/compress.js +11 -5
  967. package/node_modules/hono/dist/utils/concurrent.js +29 -38
  968. package/node_modules/hono/dist/utils/constants.js +7 -5
  969. package/node_modules/hono/dist/utils/cookie.js +114 -163
  970. package/node_modules/hono/dist/utils/crypto.js +30 -40
  971. package/node_modules/hono/dist/utils/encode.js +30 -26
  972. package/node_modules/hono/dist/utils/filepath.js +23 -33
  973. package/node_modules/hono/dist/utils/handler.js +10 -11
  974. package/node_modules/hono/dist/utils/headers.js +1 -0
  975. package/node_modules/hono/dist/utils/html.js +97 -117
  976. package/node_modules/hono/dist/utils/http-status.js +1 -0
  977. package/node_modules/hono/dist/utils/ipaddr.js +227 -279
  978. package/node_modules/hono/dist/utils/jwt/index.js +12 -4
  979. package/node_modules/hono/dist/utils/jwt/jwa.js +24 -20
  980. package/node_modules/hono/dist/utils/jwt/jws.js +115 -174
  981. package/node_modules/hono/dist/utils/jwt/jwt.js +120 -198
  982. package/node_modules/hono/dist/utils/jwt/types.js +79 -95
  983. package/node_modules/hono/dist/utils/jwt/utf8.js +9 -7
  984. package/node_modules/hono/dist/utils/mime.js +74 -79
  985. package/node_modules/hono/dist/utils/stream.js +86 -88
  986. package/node_modules/hono/dist/utils/types.js +1 -0
  987. package/node_modules/hono/dist/utils/url.js +187 -215
  988. package/node_modules/hono/dist/validator/index.js +1 -4
  989. package/node_modules/hono/dist/validator/utils.js +1 -0
  990. package/node_modules/hono/dist/validator/validator.js +61 -83
  991. package/node_modules/hono/package.json +27 -27
  992. package/node_modules/imapflow/CHANGELOG.md +43 -0
  993. package/node_modules/imapflow/README.md +2 -0
  994. package/node_modules/imapflow/dist/cjs/commands/append.js +12 -12
  995. package/node_modules/imapflow/dist/cjs/commands/authenticate.d.ts +3 -8
  996. package/node_modules/imapflow/dist/cjs/commands/close.js +2 -1
  997. package/node_modules/imapflow/dist/cjs/commands/copy.js +4 -4
  998. package/node_modules/imapflow/dist/cjs/commands/create.js +2 -3
  999. package/node_modules/imapflow/dist/cjs/commands/delete.js +4 -4
  1000. package/node_modules/imapflow/dist/cjs/commands/expunge.js +8 -5
  1001. package/node_modules/imapflow/dist/cjs/commands/fetch.js +12 -10
  1002. package/node_modules/imapflow/dist/cjs/commands/idle.js +6 -2
  1003. package/node_modules/imapflow/dist/cjs/commands/list.js +37 -21
  1004. package/node_modules/imapflow/dist/cjs/commands/move.js +11 -6
  1005. package/node_modules/imapflow/dist/cjs/commands/namespace.js +1 -1
  1006. package/node_modules/imapflow/dist/cjs/commands/quota.js +10 -9
  1007. package/node_modules/imapflow/dist/cjs/commands/rename.js +4 -4
  1008. package/node_modules/imapflow/dist/cjs/commands/search.js +7 -8
  1009. package/node_modules/imapflow/dist/cjs/commands/select.js +12 -9
  1010. package/node_modules/imapflow/dist/cjs/commands/status.js +11 -11
  1011. package/node_modules/imapflow/dist/cjs/commands/store.js +5 -5
  1012. package/node_modules/imapflow/dist/cjs/commands/subscribe.js +2 -17
  1013. package/node_modules/imapflow/dist/cjs/commands/subscription.d.ts +10 -0
  1014. package/node_modules/imapflow/dist/cjs/commands/subscription.js +29 -0
  1015. package/node_modules/imapflow/dist/cjs/commands/unsubscribe.js +2 -17
  1016. package/node_modules/imapflow/dist/cjs/download.d.ts +22 -0
  1017. package/node_modules/imapflow/dist/cjs/download.js +588 -0
  1018. package/node_modules/imapflow/dist/cjs/errors.d.ts +52 -1
  1019. package/node_modules/imapflow/dist/cjs/errors.js +56 -1
  1020. package/node_modules/imapflow/dist/cjs/handler/imap-compiler.js +1 -1
  1021. package/node_modules/imapflow/dist/cjs/handler/imap-stream.d.ts +13 -2
  1022. package/node_modules/imapflow/dist/cjs/handler/imap-stream.js +58 -41
  1023. package/node_modules/imapflow/dist/cjs/handler/parser-instance.js +2 -2
  1024. package/node_modules/imapflow/dist/cjs/handler/token-parser.js +15 -9
  1025. package/node_modules/imapflow/dist/cjs/imap-flow.d.ts +30 -84
  1026. package/node_modules/imapflow/dist/cjs/imap-flow.js +335 -760
  1027. package/node_modules/imapflow/dist/cjs/jp-decoder.js +1 -1
  1028. package/node_modules/imapflow/dist/cjs/logger.d.ts +21 -3
  1029. package/node_modules/imapflow/dist/cjs/logger.js +35 -5
  1030. package/node_modules/imapflow/dist/cjs/package-info.d.ts +1 -1
  1031. package/node_modules/imapflow/dist/cjs/package-info.js +3 -3
  1032. package/node_modules/imapflow/dist/cjs/search-compiler.d.ts +1 -1
  1033. package/node_modules/imapflow/dist/cjs/search-compiler.js +53 -47
  1034. package/node_modules/imapflow/dist/cjs/tools.d.ts +52 -11
  1035. package/node_modules/imapflow/dist/cjs/tools.js +95 -25
  1036. package/node_modules/imapflow/dist/cjs/types.d.ts +30 -16
  1037. package/node_modules/imapflow/dist/esm/commands/append.js +13 -13
  1038. package/node_modules/imapflow/dist/esm/commands/authenticate.d.ts +3 -8
  1039. package/node_modules/imapflow/dist/esm/commands/close.js +2 -1
  1040. package/node_modules/imapflow/dist/esm/commands/copy.js +5 -5
  1041. package/node_modules/imapflow/dist/esm/commands/create.js +3 -4
  1042. package/node_modules/imapflow/dist/esm/commands/delete.js +5 -5
  1043. package/node_modules/imapflow/dist/esm/commands/expunge.js +9 -6
  1044. package/node_modules/imapflow/dist/esm/commands/fetch.js +13 -11
  1045. package/node_modules/imapflow/dist/esm/commands/idle.js +7 -3
  1046. package/node_modules/imapflow/dist/esm/commands/list.js +37 -21
  1047. package/node_modules/imapflow/dist/esm/commands/move.js +12 -7
  1048. package/node_modules/imapflow/dist/esm/commands/namespace.js +2 -2
  1049. package/node_modules/imapflow/dist/esm/commands/quota.js +11 -10
  1050. package/node_modules/imapflow/dist/esm/commands/rename.js +5 -5
  1051. package/node_modules/imapflow/dist/esm/commands/search.js +8 -9
  1052. package/node_modules/imapflow/dist/esm/commands/select.js +13 -10
  1053. package/node_modules/imapflow/dist/esm/commands/status.js +12 -12
  1054. package/node_modules/imapflow/dist/esm/commands/store.js +6 -6
  1055. package/node_modules/imapflow/dist/esm/commands/subscribe.js +2 -17
  1056. package/node_modules/imapflow/dist/esm/commands/subscription.d.ts +10 -0
  1057. package/node_modules/imapflow/dist/esm/commands/subscription.js +26 -0
  1058. package/node_modules/imapflow/dist/esm/commands/unsubscribe.js +2 -17
  1059. package/node_modules/imapflow/dist/esm/download.d.ts +22 -0
  1060. package/node_modules/imapflow/dist/esm/download.js +581 -0
  1061. package/node_modules/imapflow/dist/esm/errors.d.ts +52 -1
  1062. package/node_modules/imapflow/dist/esm/errors.js +55 -0
  1063. package/node_modules/imapflow/dist/esm/handler/imap-compiler.js +1 -1
  1064. package/node_modules/imapflow/dist/esm/handler/imap-stream.d.ts +13 -2
  1065. package/node_modules/imapflow/dist/esm/handler/imap-stream.js +58 -38
  1066. package/node_modules/imapflow/dist/esm/handler/parser-instance.js +2 -2
  1067. package/node_modules/imapflow/dist/esm/handler/token-parser.js +15 -9
  1068. package/node_modules/imapflow/dist/esm/imap-flow.d.ts +30 -84
  1069. package/node_modules/imapflow/dist/esm/imap-flow.js +335 -761
  1070. package/node_modules/imapflow/dist/esm/jp-decoder.js +1 -1
  1071. package/node_modules/imapflow/dist/esm/logger.d.ts +21 -3
  1072. package/node_modules/imapflow/dist/esm/logger.js +33 -3
  1073. package/node_modules/imapflow/dist/esm/package-info.d.ts +1 -1
  1074. package/node_modules/imapflow/dist/esm/package-info.js +3 -3
  1075. package/node_modules/imapflow/dist/esm/search-compiler.d.ts +1 -1
  1076. package/node_modules/imapflow/dist/esm/search-compiler.js +54 -48
  1077. package/node_modules/imapflow/dist/esm/tools.d.ts +52 -11
  1078. package/node_modules/imapflow/dist/esm/tools.js +88 -23
  1079. package/node_modules/imapflow/dist/esm/types.d.ts +30 -16
  1080. package/node_modules/imapflow/package.json +8 -8
  1081. package/node_modules/libbase64/.github/workflows/release.yaml +12 -10
  1082. package/node_modules/libbase64/.ncurc.js +7 -1
  1083. package/node_modules/libbase64/CHANGELOG.md +7 -0
  1084. package/node_modules/libbase64/lib/libbase64.js +27 -0
  1085. package/node_modules/libbase64/package.json +4 -4
  1086. package/node_modules/libmime/CHANGELOG.md +14 -0
  1087. package/node_modules/libmime/lib/libmime.js +41 -21
  1088. package/node_modules/libmime/package.json +3 -3
  1089. package/node_modules/libqp/.github/workflows/release.yaml +12 -10
  1090. package/node_modules/libqp/CHANGELOG.md +7 -0
  1091. package/node_modules/libqp/lib/libqp.js +6 -4
  1092. package/node_modules/libqp/package.json +2 -2
  1093. package/node_modules/libqp/test/libqp-test.js +71 -14
  1094. package/package.json +4 -2
  1095. package/packages/cli/dist/.tsbuildinfo +1 -1
  1096. package/packages/cli/dist/args.d.ts +6 -0
  1097. package/packages/cli/dist/args.d.ts.map +1 -1
  1098. package/packages/cli/dist/args.js +15 -0
  1099. package/packages/cli/dist/args.js.map +1 -1
  1100. package/packages/cli/dist/commands.d.ts.map +1 -1
  1101. package/packages/cli/dist/commands.js +22 -2
  1102. package/packages/cli/dist/commands.js.map +1 -1
  1103. package/packages/cli/dist/main.d.ts.map +1 -1
  1104. package/packages/cli/dist/main.js +7 -0
  1105. package/packages/cli/dist/main.js.map +1 -1
  1106. package/packages/core/dist/.tsbuildinfo +1 -1
  1107. package/packages/core/dist/actions/permissions.d.ts +14 -0
  1108. package/packages/core/dist/actions/permissions.d.ts.map +1 -1
  1109. package/packages/core/dist/actions/permissions.js +15 -0
  1110. package/packages/core/dist/actions/permissions.js.map +1 -1
  1111. package/packages/core/dist/agents/catalog.d.ts +12 -1
  1112. package/packages/core/dist/agents/catalog.d.ts.map +1 -1
  1113. package/packages/core/dist/agents/catalog.js +57 -6
  1114. package/packages/core/dist/agents/catalog.js.map +1 -1
  1115. package/packages/core/dist/agents/delegates.d.ts +54 -0
  1116. package/packages/core/dist/agents/delegates.d.ts.map +1 -0
  1117. package/packages/core/dist/agents/delegates.js +51 -0
  1118. package/packages/core/dist/agents/delegates.js.map +1 -0
  1119. package/packages/core/dist/agents/index.d.ts +1 -0
  1120. package/packages/core/dist/agents/index.d.ts.map +1 -1
  1121. package/packages/core/dist/agents/index.js +1 -0
  1122. package/packages/core/dist/agents/index.js.map +1 -1
  1123. package/packages/core/dist/host/build.d.ts +26 -5
  1124. package/packages/core/dist/host/build.d.ts.map +1 -1
  1125. package/packages/core/dist/host/build.js +105 -16
  1126. package/packages/core/dist/host/build.js.map +1 -1
  1127. package/packages/core/dist/host/types.d.ts +84 -5
  1128. package/packages/core/dist/host/types.d.ts.map +1 -1
  1129. package/packages/core/dist/index.d.ts +1 -0
  1130. package/packages/core/dist/index.d.ts.map +1 -1
  1131. package/packages/core/dist/index.js +1 -0
  1132. package/packages/core/dist/index.js.map +1 -1
  1133. package/packages/core/dist/json-schema.d.ts +32 -0
  1134. package/packages/core/dist/json-schema.d.ts.map +1 -0
  1135. package/packages/core/dist/json-schema.js +147 -0
  1136. package/packages/core/dist/json-schema.js.map +1 -0
  1137. package/packages/core/dist/learning/sources.d.ts.map +1 -1
  1138. package/packages/core/dist/learning/sources.js +3 -0
  1139. package/packages/core/dist/learning/sources.js.map +1 -1
  1140. package/packages/core/dist/learning/types.d.ts +4 -3
  1141. package/packages/core/dist/learning/types.d.ts.map +1 -1
  1142. package/packages/core/dist/learning/types.js +1 -1
  1143. package/packages/core/dist/learning/types.js.map +1 -1
  1144. package/packages/core/dist/notifications/index.d.ts +1 -0
  1145. package/packages/core/dist/notifications/index.d.ts.map +1 -1
  1146. package/packages/core/dist/notifications/index.js +1 -0
  1147. package/packages/core/dist/notifications/index.js.map +1 -1
  1148. package/packages/core/dist/notifications/notify.d.ts.map +1 -1
  1149. package/packages/core/dist/notifications/notify.js +47 -5
  1150. package/packages/core/dist/notifications/notify.js.map +1 -1
  1151. package/packages/core/dist/notifications/store.d.ts.map +1 -1
  1152. package/packages/core/dist/notifications/store.js +3 -1
  1153. package/packages/core/dist/notifications/store.js.map +1 -1
  1154. package/packages/core/dist/notifications/topic.d.ts +25 -0
  1155. package/packages/core/dist/notifications/topic.d.ts.map +1 -0
  1156. package/packages/core/dist/notifications/topic.js +116 -0
  1157. package/packages/core/dist/notifications/topic.js.map +1 -0
  1158. package/packages/core/dist/notifications/types.d.ts +4 -0
  1159. package/packages/core/dist/notifications/types.d.ts.map +1 -1
  1160. package/packages/core/dist/onboarding/language-tag.d.ts +12 -0
  1161. package/packages/core/dist/onboarding/language-tag.d.ts.map +1 -0
  1162. package/packages/core/dist/onboarding/language-tag.js +64 -0
  1163. package/packages/core/dist/onboarding/language-tag.js.map +1 -0
  1164. package/packages/core/dist/pages/__fixtures__/demo.d.ts +11 -0
  1165. package/packages/core/dist/pages/__fixtures__/demo.d.ts.map +1 -1
  1166. package/packages/core/dist/pages/__fixtures__/demo.js +24 -1
  1167. package/packages/core/dist/pages/__fixtures__/demo.js.map +1 -1
  1168. package/packages/core/dist/pages.d.ts +93 -0
  1169. package/packages/core/dist/pages.d.ts.map +1 -1
  1170. package/packages/core/dist/pages.js +40 -1
  1171. package/packages/core/dist/pages.js.map +1 -1
  1172. package/packages/core/dist/plugin/index.d.ts +5 -4
  1173. package/packages/core/dist/plugin/index.d.ts.map +1 -1
  1174. package/packages/core/dist/plugin/version.d.ts +1 -1
  1175. package/packages/core/dist/plugin/version.js +1 -1
  1176. package/packages/core/dist/provider-accounts.d.ts +39 -0
  1177. package/packages/core/dist/provider-accounts.d.ts.map +1 -1
  1178. package/packages/core/dist/provider-accounts.js +8 -0
  1179. package/packages/core/dist/provider-accounts.js.map +1 -1
  1180. package/packages/core/dist/registry.d.ts +37 -1
  1181. package/packages/core/dist/registry.d.ts.map +1 -1
  1182. package/packages/core/dist/registry.js +187 -32
  1183. package/packages/core/dist/registry.js.map +1 -1
  1184. package/packages/core/dist/secrets/scrub.d.ts +2 -0
  1185. package/packages/core/dist/secrets/scrub.d.ts.map +1 -1
  1186. package/packages/core/dist/secrets/scrub.js +29 -0
  1187. package/packages/core/dist/secrets/scrub.js.map +1 -1
  1188. package/packages/core/dist/surfaces.d.ts +11 -0
  1189. package/packages/core/dist/surfaces.d.ts.map +1 -1
  1190. package/packages/core/dist/surfaces.js +4 -0
  1191. package/packages/core/dist/surfaces.js.map +1 -1
  1192. package/packages/core/dist/tools.d.ts +36 -1
  1193. package/packages/core/dist/tools.d.ts.map +1 -1
  1194. package/packages/core/dist/tools.js.map +1 -1
  1195. package/packages/core/dist/views.d.ts +12 -12
  1196. package/packages/core/migrations/048_surface_chat_voice.sql +13 -0
  1197. package/packages/core/migrations/049_surface_chat_voice_form.sql +8 -0
  1198. package/packages/core/migrations/050_notification_topic.sql +8 -0
  1199. package/packages/core/package.json +2 -0
  1200. package/packages/gateway/assets/mascot/core-idle.tgs +0 -0
  1201. package/packages/gateway/assets/mascot/core-working.tgs +0 -0
  1202. package/packages/gateway/dist/.tsbuildinfo +1 -1
  1203. package/packages/gateway/dist/agents/canvas.d.ts +2 -2
  1204. package/packages/gateway/dist/agents/canvas.d.ts.map +1 -1
  1205. package/packages/gateway/dist/agents/canvas.js.map +1 -1
  1206. package/packages/gateway/dist/agents/catalog.d.ts.map +1 -1
  1207. package/packages/gateway/dist/agents/catalog.js +15 -6
  1208. package/packages/gateway/dist/agents/catalog.js.map +1 -1
  1209. package/packages/gateway/dist/agents/delegation.d.ts +20 -3
  1210. package/packages/gateway/dist/agents/delegation.d.ts.map +1 -1
  1211. package/packages/gateway/dist/agents/delegation.js +38 -12
  1212. package/packages/gateway/dist/agents/delegation.js.map +1 -1
  1213. package/packages/gateway/dist/agents/platform.d.ts +43 -13
  1214. package/packages/gateway/dist/agents/platform.d.ts.map +1 -1
  1215. package/packages/gateway/dist/agents/platform.js +97 -3
  1216. package/packages/gateway/dist/agents/platform.js.map +1 -1
  1217. package/packages/gateway/dist/agents/starter-team.d.ts +57 -0
  1218. package/packages/gateway/dist/agents/starter-team.d.ts.map +1 -0
  1219. package/packages/gateway/dist/agents/starter-team.js +151 -0
  1220. package/packages/gateway/dist/agents/starter-team.js.map +1 -0
  1221. package/packages/gateway/dist/agents-cli.d.ts +2 -0
  1222. package/packages/gateway/dist/agents-cli.d.ts.map +1 -1
  1223. package/packages/gateway/dist/agents-cli.js +5 -3
  1224. package/packages/gateway/dist/agents-cli.js.map +1 -1
  1225. package/packages/gateway/dist/anthropic-accounts.d.ts.map +1 -1
  1226. package/packages/gateway/dist/anthropic-accounts.js +9 -20
  1227. package/packages/gateway/dist/anthropic-accounts.js.map +1 -1
  1228. package/packages/gateway/dist/bootstrap.d.ts +3 -0
  1229. package/packages/gateway/dist/bootstrap.d.ts.map +1 -1
  1230. package/packages/gateway/dist/bootstrap.js +58 -2
  1231. package/packages/gateway/dist/bootstrap.js.map +1 -1
  1232. package/packages/gateway/dist/chat/session.d.ts.map +1 -1
  1233. package/packages/gateway/dist/chat/session.js +2 -2
  1234. package/packages/gateway/dist/chat/session.js.map +1 -1
  1235. package/packages/gateway/dist/chat/usage.d.ts +16 -0
  1236. package/packages/gateway/dist/chat/usage.d.ts.map +1 -1
  1237. package/packages/gateway/dist/chat/usage.js +53 -11
  1238. package/packages/gateway/dist/chat/usage.js.map +1 -1
  1239. package/packages/gateway/dist/codex-accounts.d.ts +7 -1
  1240. package/packages/gateway/dist/codex-accounts.d.ts.map +1 -1
  1241. package/packages/gateway/dist/codex-accounts.js +25 -26
  1242. package/packages/gateway/dist/codex-accounts.js.map +1 -1
  1243. package/packages/gateway/dist/index.d.ts +1 -0
  1244. package/packages/gateway/dist/index.d.ts.map +1 -1
  1245. package/packages/gateway/dist/index.js +1 -0
  1246. package/packages/gateway/dist/index.js.map +1 -1
  1247. package/packages/gateway/dist/mcp/requests.d.ts +8 -1
  1248. package/packages/gateway/dist/mcp/requests.d.ts.map +1 -1
  1249. package/packages/gateway/dist/mcp/requests.js +8 -1
  1250. package/packages/gateway/dist/mcp/requests.js.map +1 -1
  1251. package/packages/gateway/dist/missions/goals-page.d.ts.map +1 -1
  1252. package/packages/gateway/dist/missions/goals-page.js +57 -0
  1253. package/packages/gateway/dist/missions/goals-page.js.map +1 -1
  1254. package/packages/gateway/dist/plugins/approve.js +45 -9
  1255. package/packages/gateway/dist/plugins/approve.js.map +1 -1
  1256. package/packages/gateway/dist/plugins/load.d.ts.map +1 -1
  1257. package/packages/gateway/dist/plugins/load.js +4 -0
  1258. package/packages/gateway/dist/plugins/load.js.map +1 -1
  1259. package/packages/gateway/dist/plugins/npm.d.ts +5 -1
  1260. package/packages/gateway/dist/plugins/npm.d.ts.map +1 -1
  1261. package/packages/gateway/dist/plugins/npm.js +6 -0
  1262. package/packages/gateway/dist/plugins/npm.js.map +1 -1
  1263. package/packages/gateway/dist/plugins/scaffold.d.ts +15 -4
  1264. package/packages/gateway/dist/plugins/scaffold.d.ts.map +1 -1
  1265. package/packages/gateway/dist/plugins/scaffold.js +86 -16
  1266. package/packages/gateway/dist/plugins/scaffold.js.map +1 -1
  1267. package/packages/gateway/dist/plugins/stage.d.ts +35 -1
  1268. package/packages/gateway/dist/plugins/stage.d.ts.map +1 -1
  1269. package/packages/gateway/dist/plugins/stage.js +134 -8
  1270. package/packages/gateway/dist/plugins/stage.js.map +1 -1
  1271. package/packages/gateway/dist/plugins-cli.d.ts +5 -1
  1272. package/packages/gateway/dist/plugins-cli.d.ts.map +1 -1
  1273. package/packages/gateway/dist/plugins-cli.js +26 -4
  1274. package/packages/gateway/dist/plugins-cli.js.map +1 -1
  1275. package/packages/gateway/dist/provider-accounts.d.ts +4 -0
  1276. package/packages/gateway/dist/provider-accounts.d.ts.map +1 -1
  1277. package/packages/gateway/dist/provider-accounts.js +34 -4
  1278. package/packages/gateway/dist/provider-accounts.js.map +1 -1
  1279. package/packages/gateway/dist/provider-diagnostics.d.ts +14 -2
  1280. package/packages/gateway/dist/provider-diagnostics.d.ts.map +1 -1
  1281. package/packages/gateway/dist/provider-diagnostics.js +25 -9
  1282. package/packages/gateway/dist/provider-diagnostics.js.map +1 -1
  1283. package/packages/gateway/dist/speech-cli.d.ts +43 -0
  1284. package/packages/gateway/dist/speech-cli.d.ts.map +1 -0
  1285. package/packages/gateway/dist/speech-cli.js +105 -0
  1286. package/packages/gateway/dist/speech-cli.js.map +1 -0
  1287. package/packages/gateway/dist/telegram/api.d.ts +59 -0
  1288. package/packages/gateway/dist/telegram/api.d.ts.map +1 -1
  1289. package/packages/gateway/dist/telegram/api.js +111 -0
  1290. package/packages/gateway/dist/telegram/api.js.map +1 -1
  1291. package/packages/gateway/dist/telegram/browser-view.d.ts +2 -1
  1292. package/packages/gateway/dist/telegram/browser-view.d.ts.map +1 -1
  1293. package/packages/gateway/dist/telegram/browser-view.js +4 -2
  1294. package/packages/gateway/dist/telegram/browser-view.js.map +1 -1
  1295. package/packages/gateway/dist/telegram/main.d.ts.map +1 -1
  1296. package/packages/gateway/dist/telegram/main.js +27 -2
  1297. package/packages/gateway/dist/telegram/main.js.map +1 -1
  1298. package/packages/gateway/dist/telegram/outbound.d.ts +5 -0
  1299. package/packages/gateway/dist/telegram/outbound.d.ts.map +1 -1
  1300. package/packages/gateway/dist/telegram/outbound.js +10 -0
  1301. package/packages/gateway/dist/telegram/outbound.js.map +1 -1
  1302. package/packages/gateway/dist/telegram/stickers.d.ts +30 -0
  1303. package/packages/gateway/dist/telegram/stickers.d.ts.map +1 -0
  1304. package/packages/gateway/dist/telegram/stickers.js +146 -0
  1305. package/packages/gateway/dist/telegram/stickers.js.map +1 -0
  1306. package/packages/gateway/dist/telegram/surface.d.ts +31 -0
  1307. package/packages/gateway/dist/telegram/surface.d.ts.map +1 -1
  1308. package/packages/gateway/dist/telegram/surface.js +248 -13
  1309. package/packages/gateway/dist/telegram/surface.js.map +1 -1
  1310. package/packages/gateway/dist/telegram/voice.d.ts +112 -0
  1311. package/packages/gateway/dist/telegram/voice.d.ts.map +1 -0
  1312. package/packages/gateway/dist/telegram/voice.js +220 -0
  1313. package/packages/gateway/dist/telegram/voice.js.map +1 -0
  1314. package/packages/gateway/dist/tips/engine.d.ts +75 -0
  1315. package/packages/gateway/dist/tips/engine.d.ts.map +1 -0
  1316. package/packages/gateway/dist/tips/engine.js +135 -0
  1317. package/packages/gateway/dist/tips/engine.js.map +1 -0
  1318. package/packages/gateway/dist/tips/facts.d.ts +69 -0
  1319. package/packages/gateway/dist/tips/facts.d.ts.map +1 -0
  1320. package/packages/gateway/dist/tips/facts.js +104 -0
  1321. package/packages/gateway/dist/tips/facts.js.map +1 -0
  1322. package/packages/gateway/dist/tips/route.d.ts +25 -0
  1323. package/packages/gateway/dist/tips/route.d.ts.map +1 -0
  1324. package/packages/gateway/dist/tips/route.js +96 -0
  1325. package/packages/gateway/dist/tips/route.js.map +1 -0
  1326. package/packages/gateway/dist/tips/rules.d.ts +33 -0
  1327. package/packages/gateway/dist/tips/rules.d.ts.map +1 -0
  1328. package/packages/gateway/dist/tips/rules.js +54 -0
  1329. package/packages/gateway/dist/tips/rules.js.map +1 -0
  1330. package/packages/gateway/dist/web/agent-offers.d.ts +30 -0
  1331. package/packages/gateway/dist/web/agent-offers.d.ts.map +1 -1
  1332. package/packages/gateway/dist/web/agent-offers.js +64 -1
  1333. package/packages/gateway/dist/web/agent-offers.js.map +1 -1
  1334. package/packages/gateway/dist/web/chat.d.ts +31 -8
  1335. package/packages/gateway/dist/web/chat.d.ts.map +1 -1
  1336. package/packages/gateway/dist/web/chat.js +3 -2
  1337. package/packages/gateway/dist/web/chat.js.map +1 -1
  1338. package/packages/gateway/dist/web/connections.d.ts +83 -0
  1339. package/packages/gateway/dist/web/connections.d.ts.map +1 -0
  1340. package/packages/gateway/dist/web/connections.js +270 -0
  1341. package/packages/gateway/dist/web/connections.js.map +1 -0
  1342. package/packages/gateway/dist/web/onboarding.d.ts +14 -3
  1343. package/packages/gateway/dist/web/onboarding.d.ts.map +1 -1
  1344. package/packages/gateway/dist/web/onboarding.js +29 -7
  1345. package/packages/gateway/dist/web/onboarding.js.map +1 -1
  1346. package/packages/gateway/dist/web/plugins.d.ts +12 -0
  1347. package/packages/gateway/dist/web/plugins.d.ts.map +1 -1
  1348. package/packages/gateway/dist/web/plugins.js +12 -2
  1349. package/packages/gateway/dist/web/plugins.js.map +1 -1
  1350. package/packages/gateway/dist/web/profile.js +3 -2
  1351. package/packages/gateway/dist/web/profile.js.map +1 -1
  1352. package/packages/gateway/dist/web/read.d.ts +21 -12
  1353. package/packages/gateway/dist/web/read.d.ts.map +1 -1
  1354. package/packages/gateway/dist/web/read.js +20 -14
  1355. package/packages/gateway/dist/web/read.js.map +1 -1
  1356. package/packages/gateway/dist/web/server.d.ts +6 -0
  1357. package/packages/gateway/dist/web/server.d.ts.map +1 -1
  1358. package/packages/gateway/dist/web/server.js +84 -2
  1359. package/packages/gateway/dist/web/server.js.map +1 -1
  1360. package/packages/gateway/dist/web/speech.d.ts +47 -0
  1361. package/packages/gateway/dist/web/speech.d.ts.map +1 -0
  1362. package/packages/gateway/dist/web/speech.js +83 -0
  1363. package/packages/gateway/dist/web/speech.js.map +1 -0
  1364. package/packages/gateway/dist/web/static.d.ts.map +1 -1
  1365. package/packages/gateway/dist/web/static.js +1 -0
  1366. package/packages/gateway/dist/web/static.js.map +1 -1
  1367. package/packages/gateway/dist/web/stream.d.ts +0 -24
  1368. package/packages/gateway/dist/web/stream.d.ts.map +1 -1
  1369. package/packages/gateway/dist/web/stream.js +26 -2
  1370. package/packages/gateway/dist/web/stream.js.map +1 -1
  1371. package/packages/gateway/dist/web/usage-view.d.ts +15 -0
  1372. package/packages/gateway/dist/web/usage-view.d.ts.map +1 -0
  1373. package/packages/gateway/dist/web/usage-view.js +20 -0
  1374. package/packages/gateway/dist/web/usage-view.js.map +1 -0
  1375. package/packages/gateway/dist/web/version.d.ts +2 -0
  1376. package/packages/gateway/dist/web/version.d.ts.map +1 -1
  1377. package/packages/gateway/dist/web/version.js +27 -0
  1378. package/packages/gateway/dist/web/version.js.map +1 -1
  1379. package/packages/gateway/dist/web/write.d.ts +5 -0
  1380. package/packages/gateway/dist/web/write.d.ts.map +1 -1
  1381. package/packages/gateway/dist/web/write.js +20 -1
  1382. package/packages/gateway/dist/web/write.js.map +1 -1
  1383. package/packages/gateway/package.json +4 -1
  1384. package/packages/gateway/src/agents/starter/keeper/agent.md +31 -0
  1385. package/packages/gateway/src/agents/starter/keeper/skills/keeping-a-history.md +22 -0
  1386. package/packages/gateway/src/agents/starter/planner/agent.md +30 -0
  1387. package/packages/gateway/src/agents/starter/planner/skills/holding-a-follow-up.md +17 -0
  1388. package/packages/gateway/src/agents/starter/planner/skills/writing-the-morning-brief.md +25 -0
  1389. package/packages/gateway/src/agents/starter/scout/agent.md +33 -0
  1390. package/packages/gateway/src/agents/starter/scout/skills/answering-with-sources.md +23 -0
  1391. package/packages/gateway/src/agents/starter/scout/skills/the-web-is-evidence.md +25 -0
  1392. package/packages/install/dist/.tsbuildinfo +1 -1
  1393. package/packages/runtime/dist/.tsbuildinfo +1 -1
  1394. package/packages/runtime/dist/anthropic-oauth.d.ts.map +1 -1
  1395. package/packages/runtime/dist/anthropic-oauth.js +38 -73
  1396. package/packages/runtime/dist/anthropic-oauth.js.map +1 -1
  1397. package/packages/runtime/dist/anthropic.d.ts +18 -0
  1398. package/packages/runtime/dist/anthropic.d.ts.map +1 -1
  1399. package/packages/runtime/dist/anthropic.js +65 -13
  1400. package/packages/runtime/dist/anthropic.js.map +1 -1
  1401. package/packages/runtime/dist/codex-direct.d.ts +39 -0
  1402. package/packages/runtime/dist/codex-direct.d.ts.map +1 -1
  1403. package/packages/runtime/dist/codex-direct.js +133 -3
  1404. package/packages/runtime/dist/codex-direct.js.map +1 -1
  1405. package/packages/runtime/dist/codex-oauth.d.ts +0 -12
  1406. package/packages/runtime/dist/codex-oauth.d.ts.map +1 -1
  1407. package/packages/runtime/dist/codex-oauth.js +32 -45
  1408. package/packages/runtime/dist/codex-oauth.js.map +1 -1
  1409. package/packages/runtime/dist/context-window.d.ts.map +1 -1
  1410. package/packages/runtime/dist/context-window.js +13 -4
  1411. package/packages/runtime/dist/context-window.js.map +1 -1
  1412. package/packages/runtime/dist/delegate.d.ts.map +1 -1
  1413. package/packages/runtime/dist/delegate.js +4 -2
  1414. package/packages/runtime/dist/delegate.js.map +1 -1
  1415. package/packages/runtime/dist/index.d.ts +2 -0
  1416. package/packages/runtime/dist/index.d.ts.map +1 -1
  1417. package/packages/runtime/dist/index.js +2 -0
  1418. package/packages/runtime/dist/index.js.map +1 -1
  1419. package/packages/runtime/dist/loop.d.ts.map +1 -1
  1420. package/packages/runtime/dist/loop.js +6 -0
  1421. package/packages/runtime/dist/loop.js.map +1 -1
  1422. package/packages/runtime/dist/oauth-port.d.ts +68 -0
  1423. package/packages/runtime/dist/oauth-port.d.ts.map +1 -0
  1424. package/packages/runtime/dist/oauth-port.js +51 -0
  1425. package/packages/runtime/dist/oauth-port.js.map +1 -0
  1426. package/packages/runtime/dist/oauth.d.ts +255 -0
  1427. package/packages/runtime/dist/oauth.d.ts.map +1 -0
  1428. package/packages/runtime/dist/oauth.js +535 -0
  1429. package/packages/runtime/dist/oauth.js.map +1 -0
  1430. package/packages/runtime/dist/openai.d.ts +16 -4
  1431. package/packages/runtime/dist/openai.d.ts.map +1 -1
  1432. package/packages/runtime/dist/openai.js +23 -4
  1433. package/packages/runtime/dist/openai.js.map +1 -1
  1434. package/packages/runtime/dist/provider-models.d.ts.map +1 -1
  1435. package/packages/runtime/dist/provider-models.js +5 -1
  1436. package/packages/runtime/dist/provider-models.js.map +1 -1
  1437. package/packages/tools/artifacts/dist/.tsbuildinfo +1 -1
  1438. package/packages/tools/browser/dist/.tsbuildinfo +1 -1
  1439. package/packages/tools/browser/dist/computer.d.ts +53 -1
  1440. package/packages/tools/browser/dist/computer.d.ts.map +1 -1
  1441. package/packages/tools/browser/dist/computer.js +154 -5
  1442. package/packages/tools/browser/dist/computer.js.map +1 -1
  1443. package/packages/tools/browser/dist/controller.d.ts +20 -3
  1444. package/packages/tools/browser/dist/controller.d.ts.map +1 -1
  1445. package/packages/tools/browser/dist/controller.js +170 -5
  1446. package/packages/tools/browser/dist/controller.js.map +1 -1
  1447. package/packages/tools/browser/dist/index.d.ts.map +1 -1
  1448. package/packages/tools/browser/dist/index.js +9 -1
  1449. package/packages/tools/browser/dist/index.js.map +1 -1
  1450. package/packages/tools/browser/dist/service.d.ts +14 -1
  1451. package/packages/tools/browser/dist/service.d.ts.map +1 -1
  1452. package/packages/tools/browser/dist/service.js +28 -5
  1453. package/packages/tools/browser/dist/service.js.map +1 -1
  1454. package/packages/tools/browser/dist/types.d.ts +11 -0
  1455. package/packages/tools/browser/dist/types.d.ts.map +1 -1
  1456. package/packages/tools/browser/dist/types.js +16 -3
  1457. package/packages/tools/browser/dist/types.js.map +1 -1
  1458. package/packages/tools/browser/package.json +1 -1
  1459. package/packages/tools/email/dist/.tsbuildinfo +1 -1
  1460. package/packages/tools/email/dist/types.d.ts +2 -2
  1461. package/packages/tools/email/dist/types.d.ts.map +1 -1
  1462. package/packages/tools/host/dist/.tsbuildinfo +1 -1
  1463. package/packages/tools/mcp/dist/.tsbuildinfo +1 -0
  1464. package/packages/tools/mcp/dist/catalog.d.ts +26 -0
  1465. package/packages/tools/mcp/dist/catalog.d.ts.map +1 -0
  1466. package/packages/tools/mcp/dist/catalog.js +17 -0
  1467. package/packages/tools/mcp/dist/catalog.js.map +1 -0
  1468. package/packages/tools/mcp/dist/fetch.d.ts +44 -0
  1469. package/packages/tools/mcp/dist/fetch.d.ts.map +1 -0
  1470. package/packages/tools/mcp/dist/fetch.js +88 -0
  1471. package/packages/tools/mcp/dist/fetch.js.map +1 -0
  1472. package/packages/tools/mcp/dist/index.d.ts +27 -0
  1473. package/packages/tools/mcp/dist/index.d.ts.map +1 -0
  1474. package/packages/tools/mcp/dist/index.js +74 -0
  1475. package/packages/tools/mcp/dist/index.js.map +1 -0
  1476. package/packages/tools/mcp/dist/output.d.ts +38 -0
  1477. package/packages/tools/mcp/dist/output.d.ts.map +1 -0
  1478. package/packages/tools/mcp/dist/output.js +90 -0
  1479. package/packages/tools/mcp/dist/output.js.map +1 -0
  1480. package/packages/tools/mcp/dist/ports.d.ts +105 -0
  1481. package/packages/tools/mcp/dist/ports.d.ts.map +1 -0
  1482. package/packages/tools/mcp/dist/ports.js +9 -0
  1483. package/packages/tools/mcp/dist/ports.js.map +1 -0
  1484. package/packages/tools/mcp/dist/service.d.ts +220 -0
  1485. package/packages/tools/mcp/dist/service.d.ts.map +1 -0
  1486. package/packages/tools/mcp/dist/service.js +742 -0
  1487. package/packages/tools/mcp/dist/service.js.map +1 -0
  1488. package/packages/tools/mcp/dist/session.d.ts +50 -0
  1489. package/packages/tools/mcp/dist/session.d.ts.map +1 -0
  1490. package/packages/tools/mcp/dist/session.js +108 -0
  1491. package/packages/tools/mcp/dist/session.js.map +1 -0
  1492. package/packages/tools/mcp/dist/store.d.ts +70 -0
  1493. package/packages/tools/mcp/dist/store.d.ts.map +1 -0
  1494. package/packages/tools/mcp/dist/store.js +78 -0
  1495. package/packages/tools/mcp/dist/store.js.map +1 -0
  1496. package/packages/tools/mcp/dist/testing/fake.d.ts +51 -0
  1497. package/packages/tools/mcp/dist/testing/fake.d.ts.map +1 -0
  1498. package/packages/tools/mcp/dist/testing/fake.js +147 -0
  1499. package/packages/tools/mcp/dist/testing/fake.js.map +1 -0
  1500. package/packages/tools/mcp/dist/tiers.d.ts +51 -0
  1501. package/packages/tools/mcp/dist/tiers.d.ts.map +1 -0
  1502. package/packages/tools/mcp/dist/tiers.js +106 -0
  1503. package/packages/tools/mcp/dist/tiers.js.map +1 -0
  1504. package/packages/tools/mcp/dist/tokens.d.ts +35 -0
  1505. package/packages/tools/mcp/dist/tokens.d.ts.map +1 -0
  1506. package/packages/tools/mcp/dist/tokens.js +75 -0
  1507. package/packages/tools/mcp/dist/tokens.js.map +1 -0
  1508. package/packages/tools/mcp/migrations/001_connections.sql +49 -0
  1509. package/packages/tools/mcp/migrations/002_review_again.sql +15 -0
  1510. package/packages/tools/mcp/package.json +34 -0
  1511. package/packages/tools/memory/dist/.tsbuildinfo +1 -1
  1512. package/packages/tools/web/dist/.tsbuildinfo +1 -1
  1513. package/packages/web/dist/apple-touch-icon.png +0 -0
  1514. package/packages/web/dist/assets/index-CBEdA2dN.js +125 -0
  1515. package/packages/web/dist/assets/index-Ddp9egOQ.css +1 -0
  1516. package/packages/web/dist/assets/lottie_light-BCNsQpt8.js +9 -0
  1517. package/packages/web/dist/build.json +1 -0
  1518. package/packages/web/dist/icon-192.png +0 -0
  1519. package/packages/web/dist/icon-512.png +0 -0
  1520. package/packages/web/dist/icon-maskable-512.png +0 -0
  1521. package/packages/web/dist/index.html +6 -3
  1522. package/packages/web/dist/manifest.webmanifest +16 -0
  1523. package/packages/web/dist/mascot/README.md +5 -0
  1524. package/packages/web/dist/mascot/anim/core-idle.json +1 -0
  1525. package/packages/web/dist/mascot/anim/core-working.json +1 -0
  1526. package/packages/web/dist/precache.json +28 -0
  1527. package/packages/web/dist/sw.js +99 -0
  1528. package/packages/web/dist/assets/index-BRc5auXm.js +0 -123
  1529. package/packages/web/dist/assets/index-DwUpotTR.css +0 -1
@@ -0,0 +1,220 @@
1
+ /**
2
+ * Voice on Telegram (docs/telegram.md, Voice).
3
+ *
4
+ * In: a voice note is transcribed by the speech plugin's `speech.transcribe`
5
+ * and run as if the owner had typed it; nothing is echoed back, the transcript
6
+ * is the owner's message in the conversation. Out: when the owner spoke (or
7
+ * chose `/voice always`), the answer is synthesized with `speech.say` (which
8
+ * rewrites it for the ear first) and sent as a voice note, alone or with the
9
+ * text as its caption (`/voice voice|both`).
10
+ *
11
+ * The two choices live in the chat's row (core.surface_chat_voice) and, when
12
+ * the plugin is there, in its own copy (`speech.telegram_voice`, Settings →
13
+ * Speech → On Telegram): the plugin's copy wins where it has one, and
14
+ * `/voice` writes both.
15
+ *
16
+ * buddi does not know the speech plugin: it calls its tools **by name**
17
+ * through the registry, as the owner (`OWNER_AGENT_ID`), so no approval card
18
+ * is raised for the owner's own voice note and the plugin's daily caps still
19
+ * count it. No plugin, or nothing set up on Settings → Speech, is one
20
+ * sentence saying where to fix it.
21
+ */
22
+ import { localDateString, OWNER_AGENT_ID } from '@buddi/core';
23
+ export const VOICE_WHEN = ['spoken', 'always', 'off'];
24
+ export const VOICE_FORM = ['voice', 'both'];
25
+ export const DEFAULT_CHAT_VOICE = { when: 'spoken', form: 'voice' };
26
+ /** Telegram's caption ceiling: past it the text follows as its own message. */
27
+ export const MAX_VOICE_CAPTION_CHARS = 1024;
28
+ /** An answer longer than this is not read aloud: text only, and nothing said about it. */
29
+ export const MAX_SPOKEN_CHARS = 4000;
30
+ export const TRANSCRIBE_TOOL = 'speech.transcribe';
31
+ export const SAY_TOOL = 'speech.say';
32
+ /** Owner-only, so never in `registry.list()`: reached by invoking it. */
33
+ export const TELEGRAM_VOICE_TOOL = 'speech.telegram_voice';
34
+ /** A refusal's words, sorted: nothing set up, a language it cannot speak, or anything else. */
35
+ export function classifySpeechRefusal(message) {
36
+ if (/not-english/.test(message))
37
+ return 'not-english';
38
+ if (/not set up|is not installed|no account is chosen|chosen in Settings → Speech no longer exists|is disabled in Settings|is not connected/.test(message)) {
39
+ return 'unconfigured';
40
+ }
41
+ return 'failed';
42
+ }
43
+ /** The two tools through the registry, as the owner. */
44
+ export function createSpeechHooks(deps) {
45
+ const has = (name) => deps.registry.list().some((t) => t.name === name);
46
+ const invoke = async (name, args, conversationId) => {
47
+ if (!has(name))
48
+ return { ok: false, reason: 'missing', message: `${name} is not installed` };
49
+ const { conversationId: _none, ...ctx } = deps.ctx;
50
+ // A conversation only when the surface names one (the dashboard does), so the use is counted against it.
51
+ const result = await deps.registry.invoke(name, args, { ...ctx, ...(conversationId ? { conversationId } : {}), agentId: OWNER_AGENT_ID, now: deps.now });
52
+ if (result.ok)
53
+ return { ok: true, output: result.output };
54
+ if (result.reason === 'unknown-tool')
55
+ return { ok: false, reason: 'missing', message: result.message };
56
+ return { ok: false, reason: classifySpeechRefusal(result.message), message: result.message };
57
+ };
58
+ /** An owner-only tool, invoked straight away; undefined when it is not there or refused. */
59
+ const ownerCall = async (name, args) => {
60
+ const { conversationId: _none, ...ctx } = deps.ctx;
61
+ const result = await deps.registry.invoke(name, args, { ...ctx, agentId: OWNER_AGENT_ID, now: deps.now });
62
+ return result.ok && result.output && typeof result.output === 'object' ? result.output : undefined;
63
+ };
64
+ return {
65
+ canSpeak: () => has(SAY_TOOL),
66
+ async transcribe(artifactId, conversationId) {
67
+ const result = await invoke(TRANSCRIBE_TOOL, { artifactId }, conversationId);
68
+ if (!result.ok)
69
+ return result;
70
+ const text = typeof result.output.text === 'string' ? result.output.text.trim() : '';
71
+ const language = typeof result.output.language === 'string' ? result.output.language : undefined;
72
+ return { ok: true, text, ...(language ? { language } : {}) };
73
+ },
74
+ async say(text, handles, conversationId) {
75
+ const result = await invoke(SAY_TOOL, { text, ...(handles && Object.keys(handles).length > 0 ? { handles } : {}) }, conversationId);
76
+ if (!result.ok)
77
+ return result;
78
+ const id = result.output.id;
79
+ if (typeof id !== 'string')
80
+ return { ok: false, reason: 'failed', message: 'speech.say returned no file' };
81
+ const mime = result.output.mime;
82
+ return { ok: true, artifactId: id, ...(typeof mime === 'string' ? { mime } : {}) };
83
+ },
84
+ async voicePrefs() {
85
+ const result = await ownerCall(TELEGRAM_VOICE_TOOL, {});
86
+ if (!result)
87
+ return {};
88
+ const when = result.when;
89
+ const form = result.form;
90
+ return {
91
+ ...(VOICE_WHEN.includes(when) ? { when: when } : {}),
92
+ ...(VOICE_FORM.includes(form) ? { form: form } : {}),
93
+ };
94
+ },
95
+ async saveVoicePrefs(voice) {
96
+ return (await ownerCall(TELEGRAM_VOICE_TOOL, { when: voice.when, form: voice.form })) !== undefined;
97
+ },
98
+ };
99
+ }
100
+ /* ------------------------------------------------------------------ *
101
+ * The words
102
+ * ------------------------------------------------------------------ */
103
+ /**
104
+ * A detected language, by its English name: Whisper answers a code ("fr"),
105
+ * OpenAI a name ("french"). Unknown or empty: undefined, and nothing is said.
106
+ */
107
+ export function languageName(detected) {
108
+ const raw = detected?.trim();
109
+ if (!raw || raw.length > 40)
110
+ return undefined;
111
+ if (/^[a-z]{2,3}(?:[-_][a-z0-9]{2,8})*$/i.test(raw)) {
112
+ try {
113
+ const name = new Intl.DisplayNames(['en'], { type: 'language', fallback: 'none' }).of(raw.replace('_', '-'));
114
+ return name && name.toLowerCase() !== raw.toLowerCase() ? name : undefined;
115
+ }
116
+ catch {
117
+ return undefined;
118
+ }
119
+ }
120
+ if (!/^\p{L}[\p{L} ]*$/u.test(raw))
121
+ return undefined;
122
+ return raw.charAt(0).toUpperCase() + raw.slice(1).toLowerCase();
123
+ }
124
+ /** The turn's text: the transcript, then a caption the owner typed under the note. */
125
+ export function voiceTurnText(transcript, caption) {
126
+ return caption ? `${transcript}\n\n${caption}` : transcript;
127
+ }
128
+ export const INSTALL_SPEECH_TEXT = 'To have voice notes heard, install the speech plugin from Settings → Plugins.';
129
+ export const SET_UP_LISTENING_TEXT = 'To have voice notes heard, set up listening in Settings → Speech.';
130
+ export const NO_WORDS_TEXT = 'I saved the voice note, but heard no words in it.';
131
+ /** Transcription refused or failed: one sentence, and the file is kept either way. */
132
+ export function notHeardText(message) {
133
+ const why = message.replace(/^refused: /, '').replace(/\.$/, '');
134
+ return `I saved the voice note, but could not transcribe it: ${why.charAt(0).toLowerCase()}${why.slice(1)}.`;
135
+ }
136
+ /** Why this answer came as text, said at most once a day in a chat. */
137
+ export function textInsteadText(reason) {
138
+ switch (reason) {
139
+ case 'not-english':
140
+ return 'I answered in text: the voice on this computer does not speak this language.';
141
+ case 'missing':
142
+ return 'I answered in text: voice replies need the speech plugin, from Settings → Plugins.';
143
+ case 'unconfigured':
144
+ return 'I answered in text: voice replies need speaking set up in Settings → Speech.';
145
+ default:
146
+ return 'I answered in text: the voice could not be made this time.';
147
+ }
148
+ }
149
+ const WHEN_WORDS = {
150
+ spoken: 'when you send a voice note',
151
+ always: 'for every answer',
152
+ };
153
+ const FORM_WORDS = {
154
+ voice: 'as the voice note alone',
155
+ both: 'as a voice note with the text',
156
+ };
157
+ /** "when you send a voice note, as the voice note alone", or "off: answers are text only". */
158
+ export function voiceSummary(voice) {
159
+ return voice.when === 'off' ? 'off: answers are text only' : `${WHEN_WORDS[voice.when]}, ${FORM_WORDS[voice.form]}`;
160
+ }
161
+ export const VOICE_USAGE_TEXT = 'Send /voice spoken, always or off for when, and /voice voice, both or text for what.';
162
+ /** `/voice` alone: the current choice and the words it takes, on one line. */
163
+ export function voiceStatusText(current) {
164
+ return `Voice replies: ${voiceSummary(current)}. ${VOICE_USAGE_TEXT}`;
165
+ }
166
+ export function voiceSetText(voice) {
167
+ return `Voice replies: ${voiceSummary(voice)}.`;
168
+ }
169
+ /**
170
+ * `/voice <word>` over the current choice: spoken, always or off set when;
171
+ * voice or both set what (and turn an `off` chat back to spoken); text is
172
+ * off. Undefined when the word is none of these.
173
+ */
174
+ export function applyVoiceArg(current, arg) {
175
+ const word = arg.trim().toLowerCase();
176
+ if (VOICE_WHEN.includes(word))
177
+ return { ...current, when: word };
178
+ if (VOICE_FORM.includes(word)) {
179
+ return { when: current.when === 'off' ? 'spoken' : current.when, form: word };
180
+ }
181
+ if (word === 'text')
182
+ return { ...current, when: 'off' };
183
+ return undefined;
184
+ }
185
+ /** Will this turn's answer be spoken? When the owner spoke (unless off), or always. */
186
+ export function answerSpoken(when, ownerSpoke) {
187
+ return when === 'always' || (when === 'spoken' && ownerSpoke);
188
+ }
189
+ /* ------------------------------------------------------------------ *
190
+ * The chat's setting (core.surface_chat_voice, migrations 048 and 049)
191
+ * ------------------------------------------------------------------ */
192
+ export async function getChatVoice(pool, surface, chatId) {
193
+ const { rows } = await pool.query(`select voice_when, voice_form from core.surface_chat_voice where surface = $1 and external_chat_id = $2`, [surface, chatId]);
194
+ const when = rows[0]?.voice_when;
195
+ const form = rows[0]?.voice_form;
196
+ return {
197
+ when: VOICE_WHEN.includes(when) ? when : DEFAULT_CHAT_VOICE.when,
198
+ form: VOICE_FORM.includes(form) ? form : DEFAULT_CHAT_VOICE.form,
199
+ };
200
+ }
201
+ export async function setChatVoice(pool, surface, chatId, voice) {
202
+ await pool.query(`insert into core.surface_chat_voice (surface, external_chat_id, voice_when, voice_form, updated_at)
203
+ values ($1, $2, $3, $4, now())
204
+ on conflict (surface, external_chat_id) do update
205
+ set voice_when = excluded.voice_when, voice_form = excluded.voice_form, updated_at = now()`, [surface, chatId, voice.when, voice.form]);
206
+ }
207
+ /**
208
+ * Claim today's "why this came as text" line for a chat: true once per day
209
+ * in the owner's zone, false after that.
210
+ */
211
+ export async function claimTextInsteadNote(pool, surface, chatId, now, timezone) {
212
+ const day = localDateString(now, timezone);
213
+ const { rows } = await pool.query(`insert into core.surface_chat_voice (surface, external_chat_id, fallback_noted_on)
214
+ values ($1, $2, $3::date)
215
+ on conflict (surface, external_chat_id) do update set fallback_noted_on = excluded.fallback_noted_on
216
+ where core.surface_chat_voice.fallback_noted_on is distinct from excluded.fallback_noted_on
217
+ returning 1 as claimed`, [surface, chatId, day]);
218
+ return rows.length > 0;
219
+ }
220
+ //# sourceMappingURL=voice.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"voice.js","sourceRoot":"","sources":["../../src/telegram/voice.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,OAAO,EAAE,eAAe,EAAE,cAAc,EAA2D,MAAM,aAAa,CAAC;AAMvH,MAAM,CAAC,MAAM,UAAU,GAAyB,CAAC,QAAQ,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;AAC5E,MAAM,CAAC,MAAM,UAAU,GAAyB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;AAOlE,MAAM,CAAC,MAAM,kBAAkB,GAAc,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;AAE/E,+EAA+E;AAC/E,MAAM,CAAC,MAAM,uBAAuB,GAAG,IAAI,CAAC;AAC5C,0FAA0F;AAC1F,MAAM,CAAC,MAAM,gBAAgB,GAAG,IAAI,CAAC;AA6BrC,MAAM,CAAC,MAAM,eAAe,GAAG,mBAAmB,CAAC;AACnD,MAAM,CAAC,MAAM,QAAQ,GAAG,YAAY,CAAC;AACrC,yEAAyE;AACzE,MAAM,CAAC,MAAM,mBAAmB,GAAG,uBAAuB,CAAC;AAE3D,+FAA+F;AAC/F,MAAM,UAAU,qBAAqB,CAAC,OAAe;IACnD,IAAI,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC;QAAE,OAAO,aAAa,CAAC;IACtD,IAAI,wIAAwI,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QAC3J,OAAO,cAAc,CAAC;IACxB,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,wDAAwD;AACxD,MAAM,UAAU,iBAAiB,CAAC,IAAqB;IACrD,MAAM,GAAG,GAAG,CAAC,IAAY,EAAW,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;IACzF,MAAM,MAAM,GAAG,KAAK,EAAE,IAAY,EAAE,IAA6B,EAAE,cAAuB,EAAE,EAAE;QAC5F,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;YAAE,OAAO,EAAE,EAAE,EAAE,KAAc,EAAE,MAAM,EAAE,SAAkB,EAAE,OAAO,EAAE,GAAG,IAAI,mBAAmB,EAAE,CAAC;QAC/G,MAAM,EAAE,cAAc,EAAE,KAAK,EAAE,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC;QACnD,yGAAyG;QACzG,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,GAAG,GAAG,EAAE,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,cAAc,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAqB,CAAC,CAAC;QAC5K,IAAI,MAAM,CAAC,EAAE;YAAE,OAAO,EAAE,EAAE,EAAE,IAAa,EAAE,MAAM,EAAE,MAAM,CAAC,MAAiC,EAAE,CAAC;QAC9F,IAAI,MAAM,CAAC,MAAM,KAAK,cAAc;YAAE,OAAO,EAAE,EAAE,EAAE,KAAc,EAAE,MAAM,EAAE,SAAkB,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC;QACzH,OAAO,EAAE,EAAE,EAAE,KAAc,EAAE,MAAM,EAAE,qBAAqB,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC;IACxG,CAAC,CAAC;IACF,4FAA4F;IAC5F,MAAM,SAAS,GAAG,KAAK,EAAE,IAAY,EAAE,IAA6B,EAAgD,EAAE;QACpH,MAAM,EAAE,cAAc,EAAE,KAAK,EAAE,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC;QACnD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,GAAG,GAAG,EAAE,OAAO,EAAE,cAAc,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAqB,CAAC,CAAC;QAC7H,OAAO,MAAM,CAAC,EAAE,IAAI,MAAM,CAAC,MAAM,IAAI,OAAO,MAAM,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAE,MAAM,CAAC,MAAkC,CAAC,CAAC,CAAC,SAAS,CAAC;IAClI,CAAC,CAAC;IACF,OAAO;QACL,QAAQ,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC;QAC7B,KAAK,CAAC,UAAU,CAAC,UAAU,EAAE,cAAc;YACzC,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,eAAe,EAAE,EAAE,UAAU,EAAE,EAAE,cAAc,CAAC,CAAC;YAC7E,IAAI,CAAC,MAAM,CAAC,EAAE;gBAAE,OAAO,MAAM,CAAC;YAC9B,MAAM,IAAI,GAAG,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACrF,MAAM,QAAQ,GAAG,OAAO,MAAM,CAAC,MAAM,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;YACjG,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;QAC/D,CAAC;QACD,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,EAAE,cAAc;YACrC,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,cAAc,CAAC,CAAC;YACpI,IAAI,CAAC,MAAM,CAAC,EAAE;gBAAE,OAAO,MAAM,CAAC;YAC9B,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;YAC5B,IAAI,OAAO,EAAE,KAAK,QAAQ;gBAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,6BAA6B,EAAE,CAAC;YAC3G,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;YAChC,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,GAAG,CAAC,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;QACrF,CAAC;QACD,KAAK,CAAC,UAAU;YACd,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,mBAAmB,EAAE,EAAE,CAAC,CAAC;YACxD,IAAI,CAAC,MAAM;gBAAE,OAAO,EAAE,CAAC;YACvB,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;YACzB,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;YACzB,OAAO;gBACL,GAAG,CAAE,UAAiC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAiB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACzF,GAAG,CAAE,UAAiC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAiB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAC1F,CAAC;QACJ,CAAC;QACD,KAAK,CAAC,cAAc,CAAC,KAAK;YACxB,OAAO,CAAC,MAAM,SAAS,CAAC,mBAAmB,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,SAAS,CAAC;QACtG,CAAC;KACF,CAAC;AACJ,CAAC;AAED;;wEAEwE;AAExE;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,QAA4B;IACvD,MAAM,GAAG,GAAG,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC7B,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,GAAG,EAAE;QAAE,OAAO,SAAS,CAAC;IAC9C,IAAI,qCAAqC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QACpD,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;YAC7G,OAAO,IAAI,IAAI,IAAI,CAAC,WAAW,EAAE,KAAK,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;QAC7E,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC;IACD,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,GAAG,CAAC;QAAE,OAAO,SAAS,CAAC;IACrD,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;AAClE,CAAC;AAED,sFAAsF;AACtF,MAAM,UAAU,aAAa,CAAC,UAAkB,EAAE,OAA2B;IAC3E,OAAO,OAAO,CAAC,CAAC,CAAC,GAAG,UAAU,OAAO,OAAO,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC;AAC9D,CAAC;AAED,MAAM,CAAC,MAAM,mBAAmB,GAAG,+EAA+E,CAAC;AACnH,MAAM,CAAC,MAAM,qBAAqB,GAAG,mEAAmE,CAAC;AACzG,MAAM,CAAC,MAAM,aAAa,GAAG,mDAAmD,CAAC;AAEjF,sFAAsF;AACtF,MAAM,UAAU,YAAY,CAAC,OAAe;IAC1C,MAAM,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACjE,OAAO,wDAAwD,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC;AAC/G,CAAC;AAED,uEAAuE;AACvE,MAAM,UAAU,eAAe,CAAC,MAAqB;IACnD,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,aAAa;YAChB,OAAO,8EAA8E,CAAC;QACxF,KAAK,SAAS;YACZ,OAAO,oFAAoF,CAAC;QAC9F,KAAK,cAAc;YACjB,OAAO,8EAA8E,CAAC;QACxF;YACE,OAAO,4DAA4D,CAAC;IACxE,CAAC;AACH,CAAC;AAED,MAAM,UAAU,GAA8C;IAC5D,MAAM,EAAE,4BAA4B;IACpC,MAAM,EAAE,kBAAkB;CAC3B,CAAC;AAEF,MAAM,UAAU,GAA8B;IAC5C,KAAK,EAAE,yBAAyB;IAChC,IAAI,EAAE,+BAA+B;CACtC,CAAC;AAEF,8FAA8F;AAC9F,MAAM,UAAU,YAAY,CAAC,KAAgB;IAC3C,OAAO,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,4BAA4B,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;AACtH,CAAC;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAG,sFAAsF,CAAC;AAEvH,8EAA8E;AAC9E,MAAM,UAAU,eAAe,CAAC,OAAkB;IAChD,OAAO,kBAAkB,YAAY,CAAC,OAAO,CAAC,KAAK,gBAAgB,EAAE,CAAC;AACxE,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,KAAgB;IAC3C,OAAO,kBAAkB,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC;AAClD,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAAC,OAAkB,EAAE,GAAW;IAC3D,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACtC,IAAK,UAAgC,CAAC,QAAQ,CAAC,IAAI,CAAC;QAAE,OAAO,EAAE,GAAG,OAAO,EAAE,IAAI,EAAE,IAAiB,EAAE,CAAC;IACrG,IAAK,UAAgC,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACrD,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,IAAiB,EAAE,CAAC;IAC7F,CAAC;IACD,IAAI,IAAI,KAAK,MAAM;QAAE,OAAO,EAAE,GAAG,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;IACxD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,uFAAuF;AACvF,MAAM,UAAU,YAAY,CAAC,IAAe,EAAE,UAAmB;IAC/D,OAAO,IAAI,KAAK,QAAQ,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,UAAU,CAAC,CAAC;AAChE,CAAC;AAED;;wEAEwE;AAExE,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,IAAe,EAAE,OAAe,EAAE,MAAc;IACjF,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAC/B,yGAAyG,EACzG,CAAC,OAAO,EAAE,MAAM,CAAC,CAClB,CAAC;IACF,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC;IACjC,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC;IACjC,OAAO;QACL,IAAI,EAAG,UAAgC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAE,IAAkB,CAAC,CAAC,CAAC,kBAAkB,CAAC,IAAI;QACtG,IAAI,EAAG,UAAgC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAE,IAAkB,CAAC,CAAC,CAAC,kBAAkB,CAAC,IAAI;KACvG,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,IAAe,EAAE,OAAe,EAAE,MAAc,EAAE,KAAgB;IACnG,MAAM,IAAI,CAAC,KAAK,CACd;;;kGAG8F,EAC9F,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAC1C,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,IAAe,EAAE,OAAe,EAAE,MAAc,EAAE,GAAS,EAAE,QAAgB;IACtH,MAAM,GAAG,GAAG,eAAe,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;IAC3C,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAC/B;;;;4BAIwB,EACxB,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,CAAC,CACvB,CAAC;IACF,OAAO,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;AACzB,CAAC"}
@@ -0,0 +1,75 @@
1
+ /**
2
+ * Which tip, if any, Home shows today (docs/dashboard.md, Home).
3
+ *
4
+ * Per rule the engine keeps the day its condition first held (`firstHeld`),
5
+ * the day it was last shown (`shownAt`), the day the owner put it off with ×
6
+ * (`laterAt`) and whether they said "Not this again" (`dismissed`). The rules:
7
+ *
8
+ * - at most one card a day: once a tip is shown on a day, no other shows that
9
+ * day, and one put off or dismissed leaves the day empty;
10
+ * - a tip shows when its condition has held for `holdsForDays` and
11
+ * `cooldownDays` have passed since it was last shown or put off; among
12
+ * several, the one that has held longest, then the one first in `TIPS`;
13
+ * - never during first run, never while tips are off;
14
+ * - never a tip about a plugin that is not installed, unless its action
15
+ * installs it;
16
+ * - a tip whose condition stops holding disappears, and its hold starts over;
17
+ * - dismissed is forever.
18
+ *
19
+ * Pure: state in, state out. `route.ts` reads and writes it under
20
+ * `core.web_settings` → `tips.state`.
21
+ */
22
+ import type { Facts } from './facts.js';
23
+ import type { TipAction, TipRule } from './rules.js';
24
+ export interface TipRuleState {
25
+ firstHeld?: string;
26
+ shownAt?: string;
27
+ laterAt?: string;
28
+ dismissed?: boolean;
29
+ /** The day of "Not this again", when it was said since this was kept. */
30
+ dismissedAt?: string;
31
+ }
32
+ export type TipsState = Record<string, TipRuleState>;
33
+ /** What Home draws. */
34
+ export interface TipView {
35
+ id: string;
36
+ text: string;
37
+ action: TipAction;
38
+ }
39
+ /** `YYYY-MM-DD` on the owner's clock. */
40
+ export declare function dayIn(at: Date, timezone: string): string;
41
+ /** Whole days from `from` to `to`, both `YYYY-MM-DD`. */
42
+ export declare function daysBetween(from: string, to: string): number;
43
+ /**
44
+ * Today's tip, and the state to keep. The state changes when a hold starts or
45
+ * stops, and when a tip is picked for today.
46
+ */
47
+ export declare function pickTip(rules: readonly TipRule[], facts: Facts, previous: TipsState, today: string): {
48
+ tip: TipView | null;
49
+ state: TipsState;
50
+ };
51
+ /** "Not this again": never again, until the Tips list brings it back. */
52
+ export declare function dismissTip(previous: TipsState, id: string, today?: string): TipsState;
53
+ /** "Bring back": the dismissal is forgotten; holds and cooldowns stay. */
54
+ export declare function restoreTip(previous: TipsState, id: string): TipsState;
55
+ export type TipStatus = 'today' | 'holding' | 'quiet' | 'dismissed' | 'shown';
56
+ /** One row of the Tips list. */
57
+ export interface TipListRow extends TipView {
58
+ status: TipStatus;
59
+ dismissedAt?: string;
60
+ holdsSince?: string;
61
+ shownAt?: string;
62
+ }
63
+ /**
64
+ * Every rule and where it stands, reading the state without changing it:
65
+ *
66
+ * - `today`: the engine would show it now and it has not been shown today;
67
+ * - `shown`: shown (or put off) today or within its cooldown;
68
+ * - `dismissed`: "Not this again";
69
+ * - `holding`: its condition holds, waiting its day;
70
+ * - `quiet`: its condition does not hold.
71
+ */
72
+ export declare function listTips(rules: readonly TipRule[], facts: Facts, previous: TipsState, today: string): TipListRow[];
73
+ /** ×: not today, and not before its cooldown has passed. */
74
+ export declare function laterTip(previous: TipsState, id: string, today: string): TipsState;
75
+ //# sourceMappingURL=engine.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../src/tips/engine.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAErD,MAAM,WAAW,YAAY;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,yEAAyE;IACzE,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;AAErD,uBAAuB;AACvB,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,SAAS,CAAC;CACnB;AAED,yCAAyC;AACzC,wBAAgB,KAAK,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAMxD;AAED,yDAAyD;AACzD,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,CAE5D;AAeD;;;GAGG;AACH,wBAAgB,OAAO,CACrB,KAAK,EAAE,SAAS,OAAO,EAAE,EACzB,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,SAAS,EACnB,KAAK,EAAE,MAAM,GACZ;IAAE,GAAG,EAAE,OAAO,GAAG,IAAI,CAAC;IAAC,KAAK,EAAE,SAAS,CAAA;CAAE,CAyC3C;AAED,yEAAyE;AACzE,wBAAgB,UAAU,CAAC,QAAQ,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAErF;AAED,0EAA0E;AAC1E,wBAAgB,UAAU,CAAC,QAAQ,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,GAAG,SAAS,CAMrE;AAED,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,SAAS,GAAG,OAAO,GAAG,WAAW,GAAG,OAAO,CAAC;AAE9E,gCAAgC;AAChC,MAAM,WAAW,UAAW,SAAQ,OAAO;IACzC,MAAM,EAAE,SAAS,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;;;GAQG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,SAAS,OAAO,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,GAAG,UAAU,EAAE,CAwBlH;AAED,4DAA4D;AAC5D,wBAAgB,QAAQ,CAAC,QAAQ,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,CAElF"}
@@ -0,0 +1,135 @@
1
+ /** `YYYY-MM-DD` on the owner's clock. */
2
+ export function dayIn(at, timezone) {
3
+ try {
4
+ return new Intl.DateTimeFormat('en-CA', { timeZone: timezone, year: 'numeric', month: '2-digit', day: '2-digit' }).format(at);
5
+ }
6
+ catch {
7
+ return at.toISOString().slice(0, 10);
8
+ }
9
+ }
10
+ /** Whole days from `from` to `to`, both `YYYY-MM-DD`. */
11
+ export function daysBetween(from, to) {
12
+ return Math.round((Date.parse(`${to}T00:00:00Z`) - Date.parse(`${from}T00:00:00Z`)) / 86_400_000);
13
+ }
14
+ function applies(rule, facts) {
15
+ if (rule.plugin && !facts.plugins.has(rule.plugin) && !rule.installs)
16
+ return false;
17
+ try {
18
+ return rule.when(facts);
19
+ }
20
+ catch {
21
+ return false;
22
+ }
23
+ }
24
+ function viewOf(rule) {
25
+ return { id: rule.id, text: rule.text, action: { ...rule.action } };
26
+ }
27
+ /**
28
+ * Today's tip, and the state to keep. The state changes when a hold starts or
29
+ * stops, and when a tip is picked for today.
30
+ */
31
+ export function pickTip(rules, facts, previous, today) {
32
+ const state = {};
33
+ for (const [id, entry] of Object.entries(previous))
34
+ state[id] = { ...entry };
35
+ // Holds first, for every rule, so a hold keeps counting while another tip shows.
36
+ const holding = new Set();
37
+ for (const rule of rules) {
38
+ const entry = (state[rule.id] ??= {});
39
+ if (applies(rule, facts)) {
40
+ holding.add(rule.id);
41
+ if (!entry.firstHeld)
42
+ entry.firstHeld = today;
43
+ }
44
+ else {
45
+ delete entry.firstHeld;
46
+ }
47
+ if (Object.keys(entry).length === 0)
48
+ delete state[rule.id];
49
+ }
50
+ if (facts.firstRun)
51
+ return { tip: null, state };
52
+ // One card a day: today's, if there was one.
53
+ const todays = rules.find((rule) => state[rule.id]?.shownAt === today);
54
+ if (todays) {
55
+ const entry = state[todays.id];
56
+ const live = holding.has(todays.id) && !entry.dismissed && entry.laterAt !== today;
57
+ return { tip: live ? viewOf(todays) : null, state };
58
+ }
59
+ const ready = rules
60
+ .map((rule, index) => ({ rule, index, entry: state[rule.id] }))
61
+ .filter(({ rule, entry }) => {
62
+ if (!entry || !holding.has(rule.id) || entry.dismissed || !entry.firstHeld)
63
+ return false;
64
+ if (daysBetween(entry.firstHeld, today) < rule.holdsForDays)
65
+ return false;
66
+ const last = [entry.shownAt, entry.laterAt].filter((d) => !!d).sort().pop();
67
+ return !last || daysBetween(last, today) >= rule.cooldownDays;
68
+ })
69
+ .sort((a, b) => a.entry.firstHeld.localeCompare(b.entry.firstHeld) || a.index - b.index);
70
+ const chosen = ready[0];
71
+ if (!chosen)
72
+ return { tip: null, state };
73
+ state[chosen.rule.id] = { ...chosen.entry, shownAt: today };
74
+ return { tip: viewOf(chosen.rule), state };
75
+ }
76
+ /** "Not this again": never again, until the Tips list brings it back. */
77
+ export function dismissTip(previous, id, today) {
78
+ return { ...previous, [id]: { ...previous[id], dismissed: true, ...(today ? { dismissedAt: today } : {}) } };
79
+ }
80
+ /** "Bring back": the dismissal is forgotten; holds and cooldowns stay. */
81
+ export function restoreTip(previous, id) {
82
+ const { dismissed: _d, dismissedAt: _at, ...rest } = previous[id] ?? {};
83
+ const next = { ...previous };
84
+ if (Object.keys(rest).length)
85
+ next[id] = rest;
86
+ else
87
+ delete next[id];
88
+ return next;
89
+ }
90
+ /**
91
+ * Every rule and where it stands, reading the state without changing it:
92
+ *
93
+ * - `today`: the engine would show it now and it has not been shown today;
94
+ * - `shown`: shown (or put off) today or within its cooldown;
95
+ * - `dismissed`: "Not this again";
96
+ * - `holding`: its condition holds, waiting its day;
97
+ * - `quiet`: its condition does not hold.
98
+ */
99
+ export function listTips(rules, facts, previous, today) {
100
+ const { tip, state } = pickTip(rules, facts, previous, today);
101
+ return rules.map((rule) => {
102
+ const before = previous[rule.id] ?? {};
103
+ const after = state[rule.id] ?? {};
104
+ const row = viewOf(rule);
105
+ const last = [before.shownAt, before.laterAt].filter((d) => !!d).sort().pop();
106
+ if (before.shownAt)
107
+ row.shownAt = before.shownAt;
108
+ if (before.dismissed) {
109
+ row.status = 'dismissed';
110
+ if (before.dismissedAt)
111
+ row.dismissedAt = before.dismissedAt;
112
+ }
113
+ else if (tip?.id === rule.id && before.shownAt !== today) {
114
+ row.status = 'today';
115
+ }
116
+ else if (last && (last === today || daysBetween(last, today) < rule.cooldownDays)) {
117
+ row.status = 'shown';
118
+ row.shownAt = before.shownAt ?? last;
119
+ }
120
+ else if (!applies(rule, facts)) {
121
+ row.status = 'quiet';
122
+ }
123
+ else {
124
+ row.status = 'holding';
125
+ }
126
+ if (after.firstHeld && (row.status === 'holding' || row.status === 'today'))
127
+ row.holdsSince = after.firstHeld;
128
+ return row;
129
+ });
130
+ }
131
+ /** ×: not today, and not before its cooldown has passed. */
132
+ export function laterTip(previous, id, today) {
133
+ return { ...previous, [id]: { ...previous[id], laterAt: today } };
134
+ }
135
+ //# sourceMappingURL=engine.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"engine.js","sourceRoot":"","sources":["../../src/tips/engine.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,69 @@
1
+ /** The `core.web_settings` key the dashboard's page views are kept under. */
2
+ export declare const TIPS_PAGES_KEY = "tips.pages";
3
+ /** How many distinct pages are remembered; the oldest seen goes first. */
4
+ export declare const TIPS_PAGES_CAP = 64;
5
+ export interface Facts {
6
+ /** Whole days since the installation was first set up. */
7
+ daysSinceInstall: number;
8
+ /** First run is still going: no tip then. */
9
+ firstRun: boolean;
10
+ /** The owner's agents, the maker left out. */
11
+ agents: number;
12
+ agentIds: Set<string>;
13
+ /** Groups not archived. */
14
+ groups: number;
15
+ /** Installed plugin names. */
16
+ plugins: Set<string>;
17
+ /** The email plugin has at least one mailbox. */
18
+ mailboxSet: boolean;
19
+ /** Somebody reads the mail: Mail Triage is on the team. */
20
+ mailAgent: boolean;
21
+ speechInstalled: boolean;
22
+ /** The owner ever spoke to buddi (a recording) or an agent ever used speech. */
23
+ voiceUsed: boolean;
24
+ missions: number;
25
+ telegramPaired: boolean;
26
+ browserUsed: boolean;
27
+ toolsUsed: Set<string>;
28
+ pagesVisited: Set<string>;
29
+ }
30
+ interface Queryable {
31
+ query(sql: string, params?: unknown[]): Promise<{
32
+ rows: any[];
33
+ }>;
34
+ }
35
+ export interface FactsDeps {
36
+ pool: Queryable;
37
+ now: () => Date;
38
+ /** The roster as the catalog holds it now. */
39
+ agents: () => ReadonlyArray<{
40
+ id: string;
41
+ roles?: readonly string[];
42
+ }>;
43
+ /** Installed plugin names. */
44
+ plugins: () => readonly string[];
45
+ /** Whether the email plugin has a mailbox; its own page query answers it. */
46
+ mailboxSet: () => Promise<boolean>;
47
+ }
48
+ /** Mail Triage's agent id, as the email plugin proposes it. */
49
+ export declare const MAIL_AGENT_ID = "mail-triage";
50
+ /** The slice of `core.web_settings` the tips read and write; a map in tests. */
51
+ export interface SettingsStore {
52
+ read<T>(key: string): Promise<T | null>;
53
+ write(key: string, value: unknown): Promise<void>;
54
+ }
55
+ /** `core.web_settings`, as a `SettingsStore`. */
56
+ export declare function webSettingsStore(pool: Queryable): SettingsStore;
57
+ /** The pages the dashboard said it opened, page → the day it last said so. */
58
+ export declare function readPagesSeen(store: SettingsStore): Promise<Record<string, string>>;
59
+ /** A page name the dashboard may report: its route, without the `#/`, short. */
60
+ export declare const PAGE_NAME: RegExp;
61
+ /**
62
+ * Remember one page seen on one day. Once a day per page: a second report the
63
+ * same day writes nothing. Capped: past `TIPS_PAGES_CAP` the page seen longest
64
+ * ago is forgotten.
65
+ */
66
+ export declare function recordPageSeen(store: SettingsStore, page: string, day: string): Promise<boolean>;
67
+ export declare function readFacts(deps: FactsDeps): Promise<Facts>;
68
+ export {};
69
+ //# sourceMappingURL=facts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"facts.d.ts","sourceRoot":"","sources":["../../src/tips/facts.ts"],"names":[],"mappings":"AAaA,6EAA6E;AAC7E,eAAO,MAAM,cAAc,eAAe,CAAC;AAC3C,0EAA0E;AAC1E,eAAO,MAAM,cAAc,KAAK,CAAC;AAEjC,MAAM,WAAW,KAAK;IACpB,0DAA0D;IAC1D,gBAAgB,EAAE,MAAM,CAAC;IACzB,6CAA6C;IAC7C,QAAQ,EAAE,OAAO,CAAC;IAClB,8CAA8C;IAC9C,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACtB,2BAA2B;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,8BAA8B;IAC9B,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACrB,iDAAiD;IACjD,UAAU,EAAE,OAAO,CAAC;IACpB,2DAA2D;IAC3D,SAAS,EAAE,OAAO,CAAC;IACnB,eAAe,EAAE,OAAO,CAAC;IACzB,gFAAgF;IAChF,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,OAAO,CAAC;IACxB,WAAW,EAAE,OAAO,CAAC;IACrB,SAAS,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACvB,YAAY,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CAC3B;AAED,UAAU,SAAS;IACjB,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;QAAE,IAAI,EAAE,GAAG,EAAE,CAAA;KAAE,CAAC,CAAC;CAClE;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,SAAS,CAAC;IAChB,GAAG,EAAE,MAAM,IAAI,CAAC;IAChB,8CAA8C;IAC9C,MAAM,EAAE,MAAM,aAAa,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;KAAE,CAAC,CAAC;IACvE,8BAA8B;IAC9B,OAAO,EAAE,MAAM,SAAS,MAAM,EAAE,CAAC;IACjC,6EAA6E;IAC7E,UAAU,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;CACpC;AAED,+DAA+D;AAC/D,eAAO,MAAM,aAAa,gBAAgB,CAAC;AAgB3C,gFAAgF;AAChF,MAAM,WAAW,aAAa;IAC5B,IAAI,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;IACxC,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACnD;AAED,iDAAiD;AACjD,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,SAAS,GAAG,aAAa,CAK/D;AAED,8EAA8E;AAC9E,wBAAsB,aAAa,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAWzF;AAED,gFAAgF;AAChF,eAAO,MAAM,SAAS,QAAiC,CAAC;AAExD;;;;GAIG;AACH,wBAAsB,cAAc,CAAC,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAOtG;AAED,wBAAsB,SAAS,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,CA6C/D"}
@@ -0,0 +1,104 @@
1
+ /**
2
+ * What the tips are decided on (docs/dashboard.md, Home): a handful of facts
3
+ * about this installation, read from what already exists. Nothing here is
4
+ * recorded for the tips' sake except the pages the dashboard reports it
5
+ * opened (`tips.pages`), which nothing else knew.
6
+ *
7
+ * Every read is forgiving: a table a plugin owns may not be there, and a
8
+ * failed read is the quiet answer ("not used", "none"), so a broken query can
9
+ * only ever hold a tip back, never raise one.
10
+ */
11
+ import { readWebSetting, writeWebSetting } from '@buddi/core';
12
+ import { ROLE_MAKER } from '../agents/roles.js';
13
+ /** The `core.web_settings` key the dashboard's page views are kept under. */
14
+ export const TIPS_PAGES_KEY = 'tips.pages';
15
+ /** How many distinct pages are remembered; the oldest seen goes first. */
16
+ export const TIPS_PAGES_CAP = 64;
17
+ /** Mail Triage's agent id, as the email plugin proposes it. */
18
+ export const MAIL_AGENT_ID = 'mail-triage';
19
+ const DAY_MS = 86_400_000;
20
+ async function rows(pool, sql, params = []) {
21
+ try {
22
+ return (await pool.query(sql, params)).rows;
23
+ }
24
+ catch {
25
+ return [];
26
+ }
27
+ }
28
+ async function count(pool, sql) {
29
+ const [row] = await rows(pool, sql);
30
+ return Number(row?.n ?? 0) || 0;
31
+ }
32
+ /** `core.web_settings`, as a `SettingsStore`. */
33
+ export function webSettingsStore(pool) {
34
+ return {
35
+ read: (key) => readWebSetting(pool, key),
36
+ write: (key, value) => writeWebSetting(pool, key, value),
37
+ };
38
+ }
39
+ /** The pages the dashboard said it opened, page → the day it last said so. */
40
+ export async function readPagesSeen(store) {
41
+ try {
42
+ const value = await store.read(TIPS_PAGES_KEY);
43
+ const out = {};
44
+ if (value && typeof value === 'object' && !Array.isArray(value)) {
45
+ for (const [page, day] of Object.entries(value))
46
+ if (typeof day === 'string')
47
+ out[page] = day;
48
+ }
49
+ return out;
50
+ }
51
+ catch {
52
+ return {};
53
+ }
54
+ }
55
+ /** A page name the dashboard may report: its route, without the `#/`, short. */
56
+ export const PAGE_NAME = /^[a-z0-9][a-z0-9._/-]{0,63}$/;
57
+ /**
58
+ * Remember one page seen on one day. Once a day per page: a second report the
59
+ * same day writes nothing. Capped: past `TIPS_PAGES_CAP` the page seen longest
60
+ * ago is forgotten.
61
+ */
62
+ export async function recordPageSeen(store, page, day) {
63
+ const seen = await readPagesSeen(store);
64
+ if (seen[page] === day)
65
+ return false;
66
+ seen[page] = day;
67
+ const entries = Object.entries(seen).sort((a, b) => b[1].localeCompare(a[1]) || a[0].localeCompare(b[0]));
68
+ await store.write(TIPS_PAGES_KEY, Object.fromEntries(entries.slice(0, TIPS_PAGES_CAP)));
69
+ return true;
70
+ }
71
+ export async function readFacts(deps) {
72
+ const { pool } = deps;
73
+ const roster = deps.agents().filter((a) => !(a.roles ?? []).includes(ROLE_MAKER));
74
+ const agentIds = new Set(roster.map((a) => a.id));
75
+ const plugins = new Set(deps.plugins());
76
+ const [install] = await rows(pool, `select least((select min(created_at) from core.owner),
77
+ (select min(started_at) from core.onboarding)) as at`);
78
+ const installedAt = install?.at ? new Date(install.at) : deps.now();
79
+ const daysSinceInstall = Math.max(0, Math.floor((deps.now().getTime() - installedAt.getTime()) / DAY_MS));
80
+ const [onboarding] = await rows(pool, `select state from core.onboarding limit 1`);
81
+ const firstRun = !onboarding || (onboarding.state !== 'done' && onboarding.state !== 'skipped');
82
+ const toolsUsed = new Set((await rows(pool, `select distinct payload->>'name' as name from core.events where kind = 'tool.called'`))
83
+ .map((r) => r.name)
84
+ .filter((n) => typeof n === 'string'));
85
+ const recorded = await count(pool, `select count(*)::int as n from core.artifacts where kind = 'audio' and created_by = 'owner' and deleted_at is null`);
86
+ return {
87
+ daysSinceInstall,
88
+ firstRun,
89
+ agents: roster.length,
90
+ agentIds,
91
+ groups: await count(pool, `select count(*)::int as n from core.groups where archived_at is null`),
92
+ plugins,
93
+ mailboxSet: plugins.has('email') ? await deps.mailboxSet().catch(() => false) : false,
94
+ mailAgent: agentIds.has(MAIL_AGENT_ID),
95
+ speechInstalled: plugins.has('speech'),
96
+ voiceUsed: recorded > 0 || [...toolsUsed].some((t) => t.startsWith('speech.')),
97
+ missions: await count(pool, `select count(*)::int as n from core.missions`),
98
+ telegramPaired: (await count(pool, `select count(*)::int as n from core.surface_identities where surface = 'telegram'`)) > 0,
99
+ browserUsed: [...toolsUsed].some((t) => t.startsWith('browser.')),
100
+ toolsUsed,
101
+ pagesVisited: new Set(Object.keys(await readPagesSeen(webSettingsStore(pool)))),
102
+ };
103
+ }
104
+ //# sourceMappingURL=facts.js.map