@withbuddi/buddi 0.1.0-pre.21 → 0.1.0-pre.23

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 (1456) hide show
  1. package/README.md +6 -4
  2. package/node_modules/@buddi/cli/dist/.tsbuildinfo +1 -1
  3. package/node_modules/@buddi/cli/dist/commands.d.ts.map +1 -1
  4. package/node_modules/@buddi/cli/dist/commands.js +24 -2
  5. package/node_modules/@buddi/cli/dist/commands.js.map +1 -1
  6. package/node_modules/@buddi/cli/dist/doctor-probes.d.ts.map +1 -1
  7. package/node_modules/@buddi/cli/dist/doctor-probes.js +1 -0
  8. package/node_modules/@buddi/cli/dist/doctor-probes.js.map +1 -1
  9. package/node_modules/@buddi/cli/dist/doctor.d.ts +2 -0
  10. package/node_modules/@buddi/cli/dist/doctor.d.ts.map +1 -1
  11. package/node_modules/@buddi/cli/dist/doctor.js +7 -0
  12. package/node_modules/@buddi/cli/dist/doctor.js.map +1 -1
  13. package/node_modules/@buddi/core/dist/.tsbuildinfo +1 -1
  14. package/node_modules/@buddi/core/dist/actions/permissions.d.ts +14 -0
  15. package/node_modules/@buddi/core/dist/actions/permissions.d.ts.map +1 -1
  16. package/node_modules/@buddi/core/dist/actions/permissions.js +15 -0
  17. package/node_modules/@buddi/core/dist/actions/permissions.js.map +1 -1
  18. package/node_modules/@buddi/core/dist/agents/catalog.d.ts +49 -3
  19. package/node_modules/@buddi/core/dist/agents/catalog.d.ts.map +1 -1
  20. package/node_modules/@buddi/core/dist/agents/catalog.js +104 -15
  21. package/node_modules/@buddi/core/dist/agents/catalog.js.map +1 -1
  22. package/node_modules/@buddi/core/dist/agents/delegates.d.ts +54 -0
  23. package/node_modules/@buddi/core/dist/agents/delegates.d.ts.map +1 -0
  24. package/node_modules/@buddi/core/dist/agents/delegates.js +51 -0
  25. package/node_modules/@buddi/core/dist/agents/delegates.js.map +1 -0
  26. package/node_modules/@buddi/core/dist/agents/index.d.ts +1 -0
  27. package/node_modules/@buddi/core/dist/agents/index.d.ts.map +1 -1
  28. package/node_modules/@buddi/core/dist/agents/index.js +1 -0
  29. package/node_modules/@buddi/core/dist/agents/index.js.map +1 -1
  30. package/node_modules/@buddi/core/dist/home.d.ts +30 -1
  31. package/node_modules/@buddi/core/dist/home.d.ts.map +1 -1
  32. package/node_modules/@buddi/core/dist/home.js +1 -1
  33. package/node_modules/@buddi/core/dist/home.js.map +1 -1
  34. package/node_modules/@buddi/core/dist/host/build.d.ts +26 -5
  35. package/node_modules/@buddi/core/dist/host/build.d.ts.map +1 -1
  36. package/node_modules/@buddi/core/dist/host/build.js +109 -3
  37. package/node_modules/@buddi/core/dist/host/build.js.map +1 -1
  38. package/node_modules/@buddi/core/dist/host/http.d.ts +32 -0
  39. package/node_modules/@buddi/core/dist/host/http.d.ts.map +1 -1
  40. package/node_modules/@buddi/core/dist/host/http.js +102 -2
  41. package/node_modules/@buddi/core/dist/host/http.js.map +1 -1
  42. package/node_modules/@buddi/core/dist/host/types.d.ts +75 -5
  43. package/node_modules/@buddi/core/dist/host/types.d.ts.map +1 -1
  44. package/node_modules/@buddi/core/dist/index.d.ts +2 -0
  45. package/node_modules/@buddi/core/dist/index.d.ts.map +1 -1
  46. package/node_modules/@buddi/core/dist/index.js +2 -0
  47. package/node_modules/@buddi/core/dist/index.js.map +1 -1
  48. package/node_modules/@buddi/core/dist/json-schema.d.ts +32 -0
  49. package/node_modules/@buddi/core/dist/json-schema.d.ts.map +1 -0
  50. package/node_modules/@buddi/core/dist/json-schema.js +147 -0
  51. package/node_modules/@buddi/core/dist/json-schema.js.map +1 -0
  52. package/node_modules/@buddi/core/dist/learning/announce.d.ts +1 -1
  53. package/node_modules/@buddi/core/dist/learning/sources.d.ts.map +1 -1
  54. package/node_modules/@buddi/core/dist/learning/sources.js +3 -0
  55. package/node_modules/@buddi/core/dist/learning/sources.js.map +1 -1
  56. package/node_modules/@buddi/core/dist/learning/types.d.ts +4 -3
  57. package/node_modules/@buddi/core/dist/learning/types.d.ts.map +1 -1
  58. package/node_modules/@buddi/core/dist/learning/types.js +1 -1
  59. package/node_modules/@buddi/core/dist/learning/types.js.map +1 -1
  60. package/node_modules/@buddi/core/dist/notifications/focus.d.ts +42 -0
  61. package/node_modules/@buddi/core/dist/notifications/focus.d.ts.map +1 -0
  62. package/node_modules/@buddi/core/dist/notifications/focus.js +150 -0
  63. package/node_modules/@buddi/core/dist/notifications/focus.js.map +1 -0
  64. package/node_modules/@buddi/core/dist/notifications/index.d.ts +2 -0
  65. package/node_modules/@buddi/core/dist/notifications/index.d.ts.map +1 -1
  66. package/node_modules/@buddi/core/dist/notifications/index.js +2 -0
  67. package/node_modules/@buddi/core/dist/notifications/index.js.map +1 -1
  68. package/node_modules/@buddi/core/dist/notifications/notify.d.ts +66 -7
  69. package/node_modules/@buddi/core/dist/notifications/notify.d.ts.map +1 -1
  70. package/node_modules/@buddi/core/dist/notifications/notify.js +166 -39
  71. package/node_modules/@buddi/core/dist/notifications/notify.js.map +1 -1
  72. package/node_modules/@buddi/core/dist/notifications/store.d.ts +6 -4
  73. package/node_modules/@buddi/core/dist/notifications/store.d.ts.map +1 -1
  74. package/node_modules/@buddi/core/dist/notifications/store.js +26 -23
  75. package/node_modules/@buddi/core/dist/notifications/store.js.map +1 -1
  76. package/node_modules/@buddi/core/dist/notifications/topic.d.ts +25 -0
  77. package/node_modules/@buddi/core/dist/notifications/topic.d.ts.map +1 -0
  78. package/node_modules/@buddi/core/dist/notifications/topic.js +116 -0
  79. package/node_modules/@buddi/core/dist/notifications/topic.js.map +1 -0
  80. package/node_modules/@buddi/core/dist/notifications/types.d.ts +50 -3
  81. package/node_modules/@buddi/core/dist/notifications/types.d.ts.map +1 -1
  82. package/node_modules/@buddi/core/dist/notifications/types.js +12 -0
  83. package/node_modules/@buddi/core/dist/notifications/types.js.map +1 -1
  84. package/node_modules/@buddi/core/dist/onboarding/language-tag.d.ts +12 -0
  85. package/node_modules/@buddi/core/dist/onboarding/language-tag.d.ts.map +1 -0
  86. package/node_modules/@buddi/core/dist/onboarding/language-tag.js +64 -0
  87. package/node_modules/@buddi/core/dist/onboarding/language-tag.js.map +1 -0
  88. package/node_modules/@buddi/core/dist/pages/__fixtures__/demo.d.ts +11 -0
  89. package/node_modules/@buddi/core/dist/pages/__fixtures__/demo.d.ts.map +1 -1
  90. package/node_modules/@buddi/core/dist/pages/__fixtures__/demo.js +23 -1
  91. package/node_modules/@buddi/core/dist/pages/__fixtures__/demo.js.map +1 -1
  92. package/node_modules/@buddi/core/dist/pages.d.ts +204 -5
  93. package/node_modules/@buddi/core/dist/pages.d.ts.map +1 -1
  94. package/node_modules/@buddi/core/dist/pages.js +244 -12
  95. package/node_modules/@buddi/core/dist/pages.js.map +1 -1
  96. package/node_modules/@buddi/core/dist/plugin/author.d.ts +42 -0
  97. package/node_modules/@buddi/core/dist/plugin/author.d.ts.map +1 -0
  98. package/node_modules/@buddi/core/dist/plugin/author.js +77 -0
  99. package/node_modules/@buddi/core/dist/plugin/author.js.map +1 -0
  100. package/node_modules/@buddi/core/dist/plugin/index.d.ts +11 -6
  101. package/node_modules/@buddi/core/dist/plugin/index.d.ts.map +1 -1
  102. package/node_modules/@buddi/core/dist/plugin/index.js +3 -0
  103. package/node_modules/@buddi/core/dist/plugin/index.js.map +1 -1
  104. package/node_modules/@buddi/core/dist/plugin/version.d.ts +1 -1
  105. package/node_modules/@buddi/core/dist/plugin/version.d.ts.map +1 -1
  106. package/node_modules/@buddi/core/dist/plugin/version.js +1 -1
  107. package/node_modules/@buddi/core/dist/plugin/version.js.map +1 -1
  108. package/node_modules/@buddi/core/dist/plugins/record.d.ts +8 -0
  109. package/node_modules/@buddi/core/dist/plugins/record.d.ts.map +1 -1
  110. package/node_modules/@buddi/core/dist/plugins/record.js +17 -0
  111. package/node_modules/@buddi/core/dist/plugins/record.js.map +1 -1
  112. package/node_modules/@buddi/core/dist/plugins/types.d.ts +7 -0
  113. package/node_modules/@buddi/core/dist/plugins/types.d.ts.map +1 -1
  114. package/node_modules/@buddi/core/dist/plugins/types.js.map +1 -1
  115. package/node_modules/@buddi/core/dist/provider-accounts.d.ts +31 -0
  116. package/node_modules/@buddi/core/dist/provider-accounts.d.ts.map +1 -1
  117. package/node_modules/@buddi/core/dist/registry.d.ts +39 -1
  118. package/node_modules/@buddi/core/dist/registry.d.ts.map +1 -1
  119. package/node_modules/@buddi/core/dist/registry.js +202 -36
  120. package/node_modules/@buddi/core/dist/registry.js.map +1 -1
  121. package/node_modules/@buddi/core/dist/scheduler/materialize.js +1 -1
  122. package/node_modules/@buddi/core/dist/scheduler/missions.d.ts +10 -0
  123. package/node_modules/@buddi/core/dist/scheduler/missions.d.ts.map +1 -1
  124. package/node_modules/@buddi/core/dist/scheduler/missions.js +29 -1
  125. package/node_modules/@buddi/core/dist/scheduler/missions.js.map +1 -1
  126. package/node_modules/@buddi/core/dist/scheduler/types.d.ts +7 -0
  127. package/node_modules/@buddi/core/dist/scheduler/types.d.ts.map +1 -1
  128. package/node_modules/@buddi/core/dist/scheduler/types.js +1 -0
  129. package/node_modules/@buddi/core/dist/scheduler/types.js.map +1 -1
  130. package/node_modules/@buddi/core/dist/secrets/scrub.d.ts +2 -0
  131. package/node_modules/@buddi/core/dist/secrets/scrub.d.ts.map +1 -1
  132. package/node_modules/@buddi/core/dist/secrets/scrub.js +29 -0
  133. package/node_modules/@buddi/core/dist/secrets/scrub.js.map +1 -1
  134. package/node_modules/@buddi/core/dist/tools.d.ts +44 -1
  135. package/node_modules/@buddi/core/dist/tools.d.ts.map +1 -1
  136. package/node_modules/@buddi/core/dist/tools.js.map +1 -1
  137. package/node_modules/@buddi/core/dist/views.d.ts +190 -15
  138. package/node_modules/@buddi/core/dist/views.d.ts.map +1 -1
  139. package/node_modules/@buddi/core/dist/views.js +56 -1
  140. package/node_modules/@buddi/core/dist/views.js.map +1 -1
  141. package/node_modules/@buddi/core/migrations/050_notification_topic.sql +8 -0
  142. package/node_modules/@buddi/core/migrations/051_notification_focus.sql +20 -0
  143. package/node_modules/@buddi/core/migrations/052_mission_paused_reason.sql +6 -0
  144. package/node_modules/@buddi/core/package.json +2 -0
  145. package/node_modules/@buddi/gateway/assets/mascot/core-idle.tgs +0 -0
  146. package/node_modules/@buddi/gateway/assets/mascot/core-working.tgs +0 -0
  147. package/node_modules/@buddi/gateway/dist/.tsbuildinfo +1 -1
  148. package/node_modules/@buddi/gateway/dist/agents/canvas.d.ts +2 -2
  149. package/node_modules/@buddi/gateway/dist/agents/canvas.d.ts.map +1 -1
  150. package/node_modules/@buddi/gateway/dist/agents/canvas.js.map +1 -1
  151. package/node_modules/@buddi/gateway/dist/agents/catalog.d.ts +6 -0
  152. package/node_modules/@buddi/gateway/dist/agents/catalog.d.ts.map +1 -1
  153. package/node_modules/@buddi/gateway/dist/agents/catalog.js +31 -6
  154. package/node_modules/@buddi/gateway/dist/agents/catalog.js.map +1 -1
  155. package/node_modules/@buddi/gateway/dist/agents/delegation.d.ts +20 -3
  156. package/node_modules/@buddi/gateway/dist/agents/delegation.d.ts.map +1 -1
  157. package/node_modules/@buddi/gateway/dist/agents/delegation.js +38 -12
  158. package/node_modules/@buddi/gateway/dist/agents/delegation.js.map +1 -1
  159. package/node_modules/@buddi/gateway/dist/agents/platform.d.ts +43 -13
  160. package/node_modules/@buddi/gateway/dist/agents/platform.d.ts.map +1 -1
  161. package/node_modules/@buddi/gateway/dist/agents/platform.js +97 -3
  162. package/node_modules/@buddi/gateway/dist/agents/platform.js.map +1 -1
  163. package/node_modules/@buddi/gateway/dist/agents/starter-team.d.ts +59 -0
  164. package/node_modules/@buddi/gateway/dist/agents/starter-team.d.ts.map +1 -0
  165. package/node_modules/@buddi/gateway/dist/agents/starter-team.js +156 -0
  166. package/node_modules/@buddi/gateway/dist/agents/starter-team.js.map +1 -0
  167. package/node_modules/@buddi/gateway/dist/anthropic-accounts.d.ts.map +1 -1
  168. package/node_modules/@buddi/gateway/dist/anthropic-accounts.js +9 -20
  169. package/node_modules/@buddi/gateway/dist/anthropic-accounts.js.map +1 -1
  170. package/node_modules/@buddi/gateway/dist/bootstrap.d.ts +3 -0
  171. package/node_modules/@buddi/gateway/dist/bootstrap.d.ts.map +1 -1
  172. package/node_modules/@buddi/gateway/dist/bootstrap.js +58 -2
  173. package/node_modules/@buddi/gateway/dist/bootstrap.js.map +1 -1
  174. package/node_modules/@buddi/gateway/dist/codex-accounts.d.ts +7 -1
  175. package/node_modules/@buddi/gateway/dist/codex-accounts.d.ts.map +1 -1
  176. package/node_modules/@buddi/gateway/dist/codex-accounts.js +25 -26
  177. package/node_modules/@buddi/gateway/dist/codex-accounts.js.map +1 -1
  178. package/node_modules/@buddi/gateway/dist/mcp/requests.d.ts +8 -1
  179. package/node_modules/@buddi/gateway/dist/mcp/requests.d.ts.map +1 -1
  180. package/node_modules/@buddi/gateway/dist/mcp/requests.js +8 -1
  181. package/node_modules/@buddi/gateway/dist/mcp/requests.js.map +1 -1
  182. package/node_modules/@buddi/gateway/dist/missions/goals-page.d.ts.map +1 -1
  183. package/node_modules/@buddi/gateway/dist/missions/goals-page.js +57 -0
  184. package/node_modules/@buddi/gateway/dist/missions/goals-page.js.map +1 -1
  185. package/node_modules/@buddi/gateway/dist/missions-cli.d.ts.map +1 -1
  186. package/node_modules/@buddi/gateway/dist/missions-cli.js +6 -3
  187. package/node_modules/@buddi/gateway/dist/missions-cli.js.map +1 -1
  188. package/node_modules/@buddi/gateway/dist/plugins/approve.d.ts.map +1 -1
  189. package/node_modules/@buddi/gateway/dist/plugins/approve.js +54 -11
  190. package/node_modules/@buddi/gateway/dist/plugins/approve.js.map +1 -1
  191. package/node_modules/@buddi/gateway/dist/plugins/index.d.ts +1 -0
  192. package/node_modules/@buddi/gateway/dist/plugins/index.d.ts.map +1 -1
  193. package/node_modules/@buddi/gateway/dist/plugins/index.js +1 -0
  194. package/node_modules/@buddi/gateway/dist/plugins/index.js.map +1 -1
  195. package/node_modules/@buddi/gateway/dist/plugins/load.d.ts +5 -0
  196. package/node_modules/@buddi/gateway/dist/plugins/load.d.ts.map +1 -1
  197. package/node_modules/@buddi/gateway/dist/plugins/load.js +14 -1
  198. package/node_modules/@buddi/gateway/dist/plugins/load.js.map +1 -1
  199. package/node_modules/@buddi/gateway/dist/plugins/npm.d.ts +5 -1
  200. package/node_modules/@buddi/gateway/dist/plugins/npm.d.ts.map +1 -1
  201. package/node_modules/@buddi/gateway/dist/plugins/npm.js +6 -0
  202. package/node_modules/@buddi/gateway/dist/plugins/npm.js.map +1 -1
  203. package/node_modules/@buddi/gateway/dist/plugins/provenance.d.ts.map +1 -1
  204. package/node_modules/@buddi/gateway/dist/plugins/provenance.js +10 -3
  205. package/node_modules/@buddi/gateway/dist/plugins/provenance.js.map +1 -1
  206. package/node_modules/@buddi/gateway/dist/plugins/scaffold.d.ts +23 -4
  207. package/node_modules/@buddi/gateway/dist/plugins/scaffold.d.ts.map +1 -1
  208. package/node_modules/@buddi/gateway/dist/plugins/scaffold.js +130 -21
  209. package/node_modules/@buddi/gateway/dist/plugins/scaffold.js.map +1 -1
  210. package/node_modules/@buddi/gateway/dist/plugins/stage.d.ts +41 -2
  211. package/node_modules/@buddi/gateway/dist/plugins/stage.d.ts.map +1 -1
  212. package/node_modules/@buddi/gateway/dist/plugins/stage.js +137 -9
  213. package/node_modules/@buddi/gateway/dist/plugins/stage.js.map +1 -1
  214. package/node_modules/@buddi/gateway/dist/plugins/toggle.d.ts +21 -0
  215. package/node_modules/@buddi/gateway/dist/plugins/toggle.d.ts.map +1 -0
  216. package/node_modules/@buddi/gateway/dist/plugins/toggle.js +86 -0
  217. package/node_modules/@buddi/gateway/dist/plugins/toggle.js.map +1 -0
  218. package/node_modules/@buddi/gateway/dist/plugins-cli.d.ts +23 -3
  219. package/node_modules/@buddi/gateway/dist/plugins-cli.d.ts.map +1 -1
  220. package/node_modules/@buddi/gateway/dist/plugins-cli.js +102 -10
  221. package/node_modules/@buddi/gateway/dist/plugins-cli.js.map +1 -1
  222. package/node_modules/@buddi/gateway/dist/provider-accounts.d.ts.map +1 -1
  223. package/node_modules/@buddi/gateway/dist/provider-accounts.js +31 -3
  224. package/node_modules/@buddi/gateway/dist/provider-accounts.js.map +1 -1
  225. package/node_modules/@buddi/gateway/dist/provider-diagnostics.d.ts +14 -2
  226. package/node_modules/@buddi/gateway/dist/provider-diagnostics.d.ts.map +1 -1
  227. package/node_modules/@buddi/gateway/dist/provider-diagnostics.js +25 -9
  228. package/node_modules/@buddi/gateway/dist/provider-diagnostics.js.map +1 -1
  229. package/node_modules/@buddi/gateway/dist/serve.js +3 -3
  230. package/node_modules/@buddi/gateway/dist/serve.js.map +1 -1
  231. package/node_modules/@buddi/gateway/dist/speech-cli.d.ts +13 -0
  232. package/node_modules/@buddi/gateway/dist/speech-cli.d.ts.map +1 -1
  233. package/node_modules/@buddi/gateway/dist/speech-cli.js +40 -1
  234. package/node_modules/@buddi/gateway/dist/speech-cli.js.map +1 -1
  235. package/node_modules/@buddi/gateway/dist/telegram/api.d.ts +49 -0
  236. package/node_modules/@buddi/gateway/dist/telegram/api.d.ts.map +1 -1
  237. package/node_modules/@buddi/gateway/dist/telegram/api.js +99 -0
  238. package/node_modules/@buddi/gateway/dist/telegram/api.js.map +1 -1
  239. package/node_modules/@buddi/gateway/dist/telegram/focus.d.ts +27 -0
  240. package/node_modules/@buddi/gateway/dist/telegram/focus.d.ts.map +1 -0
  241. package/node_modules/@buddi/gateway/dist/telegram/focus.js +72 -0
  242. package/node_modules/@buddi/gateway/dist/telegram/focus.js.map +1 -0
  243. package/node_modules/@buddi/gateway/dist/telegram/main.d.ts.map +1 -1
  244. package/node_modules/@buddi/gateway/dist/telegram/main.js +18 -0
  245. package/node_modules/@buddi/gateway/dist/telegram/main.js.map +1 -1
  246. package/node_modules/@buddi/gateway/dist/telegram/outbound.d.ts +5 -0
  247. package/node_modules/@buddi/gateway/dist/telegram/outbound.d.ts.map +1 -1
  248. package/node_modules/@buddi/gateway/dist/telegram/outbound.js +10 -0
  249. package/node_modules/@buddi/gateway/dist/telegram/outbound.js.map +1 -1
  250. package/node_modules/@buddi/gateway/dist/telegram/stickers.d.ts +30 -0
  251. package/node_modules/@buddi/gateway/dist/telegram/stickers.d.ts.map +1 -0
  252. package/node_modules/@buddi/gateway/dist/telegram/stickers.js +146 -0
  253. package/node_modules/@buddi/gateway/dist/telegram/stickers.js.map +1 -0
  254. package/node_modules/@buddi/gateway/dist/telegram/surface.d.ts +8 -0
  255. package/node_modules/@buddi/gateway/dist/telegram/surface.d.ts.map +1 -1
  256. package/node_modules/@buddi/gateway/dist/telegram/surface.js +60 -4
  257. package/node_modules/@buddi/gateway/dist/telegram/surface.js.map +1 -1
  258. package/node_modules/@buddi/gateway/dist/tips/engine.d.ts +75 -0
  259. package/node_modules/@buddi/gateway/dist/tips/engine.d.ts.map +1 -0
  260. package/node_modules/@buddi/gateway/dist/tips/engine.js +135 -0
  261. package/node_modules/@buddi/gateway/dist/tips/engine.js.map +1 -0
  262. package/node_modules/@buddi/gateway/dist/tips/facts.d.ts +69 -0
  263. package/node_modules/@buddi/gateway/dist/tips/facts.d.ts.map +1 -0
  264. package/node_modules/@buddi/gateway/dist/tips/facts.js +104 -0
  265. package/node_modules/@buddi/gateway/dist/tips/facts.js.map +1 -0
  266. package/node_modules/@buddi/gateway/dist/tips/route.d.ts +25 -0
  267. package/node_modules/@buddi/gateway/dist/tips/route.d.ts.map +1 -0
  268. package/node_modules/@buddi/gateway/dist/tips/route.js +96 -0
  269. package/node_modules/@buddi/gateway/dist/tips/route.js.map +1 -0
  270. package/node_modules/@buddi/gateway/dist/tips/rules.d.ts +33 -0
  271. package/node_modules/@buddi/gateway/dist/tips/rules.d.ts.map +1 -0
  272. package/node_modules/@buddi/gateway/dist/tips/rules.js +54 -0
  273. package/node_modules/@buddi/gateway/dist/tips/rules.js.map +1 -0
  274. package/node_modules/@buddi/gateway/dist/web/agent-offers.d.ts +30 -0
  275. package/node_modules/@buddi/gateway/dist/web/agent-offers.d.ts.map +1 -1
  276. package/node_modules/@buddi/gateway/dist/web/agent-offers.js +64 -1
  277. package/node_modules/@buddi/gateway/dist/web/agent-offers.js.map +1 -1
  278. package/node_modules/@buddi/gateway/dist/web/connections.d.ts +83 -0
  279. package/node_modules/@buddi/gateway/dist/web/connections.d.ts.map +1 -0
  280. package/node_modules/@buddi/gateway/dist/web/connections.js +270 -0
  281. package/node_modules/@buddi/gateway/dist/web/connections.js.map +1 -0
  282. package/node_modules/@buddi/gateway/dist/web/notifications.d.ts +8 -1
  283. package/node_modules/@buddi/gateway/dist/web/notifications.d.ts.map +1 -1
  284. package/node_modules/@buddi/gateway/dist/web/notifications.js +23 -1
  285. package/node_modules/@buddi/gateway/dist/web/notifications.js.map +1 -1
  286. package/node_modules/@buddi/gateway/dist/web/onboarding.d.ts +1 -1
  287. package/node_modules/@buddi/gateway/dist/web/onboarding.d.ts.map +1 -1
  288. package/node_modules/@buddi/gateway/dist/web/onboarding.js +5 -4
  289. package/node_modules/@buddi/gateway/dist/web/onboarding.js.map +1 -1
  290. package/node_modules/@buddi/gateway/dist/web/plugins.d.ts +18 -1
  291. package/node_modules/@buddi/gateway/dist/web/plugins.d.ts.map +1 -1
  292. package/node_modules/@buddi/gateway/dist/web/plugins.js +54 -6
  293. package/node_modules/@buddi/gateway/dist/web/plugins.js.map +1 -1
  294. package/node_modules/@buddi/gateway/dist/web/profile.d.ts +2 -0
  295. package/node_modules/@buddi/gateway/dist/web/profile.d.ts.map +1 -1
  296. package/node_modules/@buddi/gateway/dist/web/profile.js +5 -3
  297. package/node_modules/@buddi/gateway/dist/web/profile.js.map +1 -1
  298. package/node_modules/@buddi/gateway/dist/web/rail.d.ts +33 -0
  299. package/node_modules/@buddi/gateway/dist/web/rail.d.ts.map +1 -0
  300. package/node_modules/@buddi/gateway/dist/web/rail.js +45 -0
  301. package/node_modules/@buddi/gateway/dist/web/rail.js.map +1 -0
  302. package/node_modules/@buddi/gateway/dist/web/read.d.ts +52 -0
  303. package/node_modules/@buddi/gateway/dist/web/read.d.ts.map +1 -1
  304. package/node_modules/@buddi/gateway/dist/web/read.js +88 -5
  305. package/node_modules/@buddi/gateway/dist/web/read.js.map +1 -1
  306. package/node_modules/@buddi/gateway/dist/web/server.d.ts +6 -0
  307. package/node_modules/@buddi/gateway/dist/web/server.d.ts.map +1 -1
  308. package/node_modules/@buddi/gateway/dist/web/server.js +107 -8
  309. package/node_modules/@buddi/gateway/dist/web/server.js.map +1 -1
  310. package/node_modules/@buddi/gateway/dist/web/static.d.ts.map +1 -1
  311. package/node_modules/@buddi/gateway/dist/web/static.js +1 -0
  312. package/node_modules/@buddi/gateway/dist/web/static.js.map +1 -1
  313. package/node_modules/@buddi/gateway/dist/web/version.d.ts +2 -0
  314. package/node_modules/@buddi/gateway/dist/web/version.d.ts.map +1 -1
  315. package/node_modules/@buddi/gateway/dist/web/version.js +27 -0
  316. package/node_modules/@buddi/gateway/dist/web/version.js.map +1 -1
  317. package/node_modules/@buddi/gateway/dist/web/write.d.ts +5 -0
  318. package/node_modules/@buddi/gateway/dist/web/write.d.ts.map +1 -1
  319. package/node_modules/@buddi/gateway/dist/web/write.js +20 -1
  320. package/node_modules/@buddi/gateway/dist/web/write.js.map +1 -1
  321. package/node_modules/@buddi/gateway/package.json +4 -1
  322. package/node_modules/@buddi/gateway/src/agents/starter/keeper/agent.md +31 -0
  323. package/node_modules/@buddi/gateway/src/agents/starter/keeper/skills/keeping-a-history.md +22 -0
  324. package/node_modules/@buddi/gateway/src/agents/starter/planner/agent.md +30 -0
  325. package/node_modules/@buddi/gateway/src/agents/starter/planner/skills/holding-a-follow-up.md +17 -0
  326. package/node_modules/@buddi/gateway/src/agents/starter/planner/skills/writing-the-morning-brief.md +32 -0
  327. package/node_modules/@buddi/gateway/src/agents/starter/scout/agent.md +33 -0
  328. package/node_modules/@buddi/gateway/src/agents/starter/scout/skills/answering-with-sources.md +23 -0
  329. package/node_modules/@buddi/gateway/src/agents/starter/scout/skills/the-web-is-evidence.md +25 -0
  330. package/node_modules/@buddi/install/dist/.tsbuildinfo +1 -1
  331. package/node_modules/@buddi/runtime/dist/.tsbuildinfo +1 -1
  332. package/node_modules/@buddi/runtime/dist/anthropic-oauth.d.ts.map +1 -1
  333. package/node_modules/@buddi/runtime/dist/anthropic-oauth.js +38 -73
  334. package/node_modules/@buddi/runtime/dist/anthropic-oauth.js.map +1 -1
  335. package/node_modules/@buddi/runtime/dist/codex-direct.d.ts +39 -0
  336. package/node_modules/@buddi/runtime/dist/codex-direct.d.ts.map +1 -1
  337. package/node_modules/@buddi/runtime/dist/codex-direct.js +122 -0
  338. package/node_modules/@buddi/runtime/dist/codex-direct.js.map +1 -1
  339. package/node_modules/@buddi/runtime/dist/codex-oauth.d.ts +0 -12
  340. package/node_modules/@buddi/runtime/dist/codex-oauth.d.ts.map +1 -1
  341. package/node_modules/@buddi/runtime/dist/codex-oauth.js +32 -45
  342. package/node_modules/@buddi/runtime/dist/codex-oauth.js.map +1 -1
  343. package/node_modules/@buddi/runtime/dist/delegate.d.ts.map +1 -1
  344. package/node_modules/@buddi/runtime/dist/delegate.js +4 -2
  345. package/node_modules/@buddi/runtime/dist/delegate.js.map +1 -1
  346. package/node_modules/@buddi/runtime/dist/index.d.ts +2 -0
  347. package/node_modules/@buddi/runtime/dist/index.d.ts.map +1 -1
  348. package/node_modules/@buddi/runtime/dist/index.js +2 -0
  349. package/node_modules/@buddi/runtime/dist/index.js.map +1 -1
  350. package/node_modules/@buddi/runtime/dist/oauth-port.d.ts +68 -0
  351. package/node_modules/@buddi/runtime/dist/oauth-port.d.ts.map +1 -0
  352. package/node_modules/@buddi/runtime/dist/oauth-port.js +51 -0
  353. package/node_modules/@buddi/runtime/dist/oauth-port.js.map +1 -0
  354. package/node_modules/@buddi/runtime/dist/oauth.d.ts +255 -0
  355. package/node_modules/@buddi/runtime/dist/oauth.d.ts.map +1 -0
  356. package/node_modules/@buddi/runtime/dist/oauth.js +535 -0
  357. package/node_modules/@buddi/runtime/dist/oauth.js.map +1 -0
  358. package/node_modules/@buddi/tool-artifacts/dist/.tsbuildinfo +1 -1
  359. package/node_modules/@buddi/tool-browser/dist/.tsbuildinfo +1 -1
  360. package/node_modules/@buddi/tool-email/dist/.tsbuildinfo +1 -1
  361. package/node_modules/@buddi/tool-email/dist/types.d.ts +2 -2
  362. package/node_modules/@buddi/tool-email/dist/types.d.ts.map +1 -1
  363. package/node_modules/@buddi/tool-host/dist/.tsbuildinfo +1 -1
  364. package/node_modules/@buddi/tool-mcp/dist/.tsbuildinfo +1 -0
  365. package/node_modules/@buddi/tool-mcp/dist/catalog.d.ts +26 -0
  366. package/node_modules/@buddi/tool-mcp/dist/catalog.d.ts.map +1 -0
  367. package/node_modules/@buddi/tool-mcp/dist/catalog.js +17 -0
  368. package/node_modules/@buddi/tool-mcp/dist/catalog.js.map +1 -0
  369. package/node_modules/@buddi/tool-mcp/dist/fetch.d.ts +44 -0
  370. package/node_modules/@buddi/tool-mcp/dist/fetch.d.ts.map +1 -0
  371. package/node_modules/@buddi/tool-mcp/dist/fetch.js +88 -0
  372. package/node_modules/@buddi/tool-mcp/dist/fetch.js.map +1 -0
  373. package/node_modules/@buddi/tool-mcp/dist/index.d.ts +27 -0
  374. package/node_modules/@buddi/tool-mcp/dist/index.d.ts.map +1 -0
  375. package/node_modules/@buddi/tool-mcp/dist/index.js +74 -0
  376. package/node_modules/@buddi/tool-mcp/dist/index.js.map +1 -0
  377. package/node_modules/@buddi/tool-mcp/dist/output.d.ts +38 -0
  378. package/node_modules/@buddi/tool-mcp/dist/output.d.ts.map +1 -0
  379. package/node_modules/@buddi/tool-mcp/dist/output.js +90 -0
  380. package/node_modules/@buddi/tool-mcp/dist/output.js.map +1 -0
  381. package/node_modules/@buddi/tool-mcp/dist/ports.d.ts +105 -0
  382. package/node_modules/@buddi/tool-mcp/dist/ports.d.ts.map +1 -0
  383. package/node_modules/@buddi/tool-mcp/dist/ports.js +9 -0
  384. package/node_modules/@buddi/tool-mcp/dist/ports.js.map +1 -0
  385. package/node_modules/@buddi/tool-mcp/dist/service.d.ts +220 -0
  386. package/node_modules/@buddi/tool-mcp/dist/service.d.ts.map +1 -0
  387. package/node_modules/@buddi/tool-mcp/dist/service.js +742 -0
  388. package/node_modules/@buddi/tool-mcp/dist/service.js.map +1 -0
  389. package/node_modules/@buddi/tool-mcp/dist/session.d.ts +50 -0
  390. package/node_modules/@buddi/tool-mcp/dist/session.d.ts.map +1 -0
  391. package/node_modules/@buddi/tool-mcp/dist/session.js +108 -0
  392. package/node_modules/@buddi/tool-mcp/dist/session.js.map +1 -0
  393. package/node_modules/@buddi/tool-mcp/dist/store.d.ts +70 -0
  394. package/node_modules/@buddi/tool-mcp/dist/store.d.ts.map +1 -0
  395. package/node_modules/@buddi/tool-mcp/dist/store.js +78 -0
  396. package/node_modules/@buddi/tool-mcp/dist/store.js.map +1 -0
  397. package/node_modules/@buddi/tool-mcp/dist/testing/fake.d.ts +51 -0
  398. package/node_modules/@buddi/tool-mcp/dist/testing/fake.d.ts.map +1 -0
  399. package/node_modules/@buddi/tool-mcp/dist/testing/fake.js +147 -0
  400. package/node_modules/@buddi/tool-mcp/dist/testing/fake.js.map +1 -0
  401. package/node_modules/@buddi/tool-mcp/dist/tiers.d.ts +51 -0
  402. package/node_modules/@buddi/tool-mcp/dist/tiers.d.ts.map +1 -0
  403. package/node_modules/@buddi/tool-mcp/dist/tiers.js +106 -0
  404. package/node_modules/@buddi/tool-mcp/dist/tiers.js.map +1 -0
  405. package/node_modules/@buddi/tool-mcp/dist/tokens.d.ts +35 -0
  406. package/node_modules/@buddi/tool-mcp/dist/tokens.d.ts.map +1 -0
  407. package/node_modules/@buddi/tool-mcp/dist/tokens.js +75 -0
  408. package/node_modules/@buddi/tool-mcp/dist/tokens.js.map +1 -0
  409. package/node_modules/@buddi/tool-mcp/migrations/001_connections.sql +49 -0
  410. package/node_modules/@buddi/tool-mcp/migrations/002_review_again.sql +15 -0
  411. package/node_modules/@buddi/tool-mcp/package.json +34 -0
  412. package/node_modules/@buddi/tool-memory/dist/.tsbuildinfo +1 -1
  413. package/node_modules/@buddi/tool-web/dist/.tsbuildinfo +1 -1
  414. package/node_modules/@zone-eu/mailsplit/lib/flowed-decoder.js +1 -5
  415. package/node_modules/@zone-eu/mailsplit/lib/headers.js +35 -25
  416. package/node_modules/@zone-eu/mailsplit/lib/message-splitter.js +126 -79
  417. package/node_modules/@zone-eu/mailsplit/lib/mime-node.js +27 -5
  418. package/node_modules/@zone-eu/mailsplit/lib/node-rewriter.js +3 -2
  419. package/node_modules/@zone-eu/mailsplit/lib/types.d.ts +0 -3
  420. package/node_modules/@zone-eu/mailsplit/package.json +5 -5
  421. package/node_modules/hono/dist/_virtual/_rolldown/runtime.js +13 -0
  422. package/node_modules/hono/dist/adapter/aws-lambda/conninfo.js +42 -23
  423. package/node_modules/hono/dist/adapter/aws-lambda/handler.js +318 -344
  424. package/node_modules/hono/dist/adapter/aws-lambda/index.js +2 -8
  425. package/node_modules/hono/dist/adapter/aws-lambda/types.js +1 -0
  426. package/node_modules/hono/dist/adapter/bun/conninfo.js +20 -25
  427. package/node_modules/hono/dist/adapter/bun/index.js +3 -13
  428. package/node_modules/hono/dist/adapter/bun/serve-static.js +27 -27
  429. package/node_modules/hono/dist/adapter/bun/server.js +11 -5
  430. package/node_modules/hono/dist/adapter/bun/ssg.js +25 -15
  431. package/node_modules/hono/dist/adapter/bun/websocket.js +61 -68
  432. package/node_modules/hono/dist/adapter/cloudflare-pages/conninfo.js +24 -9
  433. package/node_modules/hono/dist/adapter/cloudflare-pages/handler.js +59 -62
  434. package/node_modules/hono/dist/adapter/cloudflare-pages/index.js +2 -8
  435. package/node_modules/hono/dist/adapter/cloudflare-workers/conninfo.js +7 -9
  436. package/node_modules/hono/dist/adapter/cloudflare-workers/index.js +3 -8
  437. package/node_modules/hono/dist/adapter/cloudflare-workers/serve-static-module.js +5 -6
  438. package/node_modules/hono/dist/adapter/cloudflare-workers/serve-static.js +26 -20
  439. package/node_modules/hono/dist/adapter/cloudflare-workers/utils.js +21 -34
  440. package/node_modules/hono/dist/adapter/cloudflare-workers/websocket.js +31 -39
  441. package/node_modules/hono/dist/adapter/deno/conninfo.js +16 -13
  442. package/node_modules/hono/dist/adapter/deno/deno.d.js +1 -0
  443. package/node_modules/hono/dist/adapter/deno/index.js +3 -10
  444. package/node_modules/hono/dist/adapter/deno/serve-static.js +33 -38
  445. package/node_modules/hono/dist/adapter/deno/ssg.js +27 -16
  446. package/node_modules/hono/dist/adapter/deno/websocket.js +30 -30
  447. package/node_modules/hono/dist/adapter/lambda-edge/conninfo.js +7 -9
  448. package/node_modules/hono/dist/adapter/lambda-edge/handler.js +102 -101
  449. package/node_modules/hono/dist/adapter/lambda-edge/index.js +2 -6
  450. package/node_modules/hono/dist/adapter/netlify/conninfo.js +24 -9
  451. package/node_modules/hono/dist/adapter/netlify/handler.js +10 -8
  452. package/node_modules/hono/dist/adapter/netlify/index.js +3 -2
  453. package/node_modules/hono/dist/adapter/netlify/mod.js +2 -6
  454. package/node_modules/hono/dist/adapter/service-worker/handler.js +15 -19
  455. package/node_modules/hono/dist/adapter/service-worker/index.js +23 -7
  456. package/node_modules/hono/dist/adapter/service-worker/types.js +1 -0
  457. package/node_modules/hono/dist/adapter/vercel/conninfo.js +7 -10
  458. package/node_modules/hono/dist/adapter/vercel/handler.js +8 -6
  459. package/node_modules/hono/dist/adapter/vercel/index.js +2 -6
  460. package/node_modules/hono/dist/cjs/_virtual/_rolldown/runtime.js +33 -0
  461. package/node_modules/hono/dist/cjs/adapter/aws-lambda/conninfo.js +42 -44
  462. package/node_modules/hono/dist/cjs/adapter/aws-lambda/handler.js +326 -373
  463. package/node_modules/hono/dist/cjs/adapter/aws-lambda/index.js +7 -34
  464. package/node_modules/hono/dist/cjs/adapter/aws-lambda/types.js +0 -15
  465. package/node_modules/hono/dist/cjs/adapter/bun/conninfo.js +21 -47
  466. package/node_modules/hono/dist/cjs/adapter/bun/index.js +14 -45
  467. package/node_modules/hono/dist/cjs/adapter/bun/serve-static.js +29 -50
  468. package/node_modules/hono/dist/cjs/adapter/bun/server.js +11 -26
  469. package/node_modules/hono/dist/cjs/adapter/bun/ssg.js +24 -35
  470. package/node_modules/hono/dist/cjs/adapter/bun/websocket.js +63 -91
  471. package/node_modules/hono/dist/cjs/adapter/cloudflare-pages/conninfo.js +25 -31
  472. package/node_modules/hono/dist/cjs/adapter/cloudflare-pages/handler.js +61 -85
  473. package/node_modules/hono/dist/cjs/adapter/cloudflare-pages/index.js +7 -34
  474. package/node_modules/hono/dist/cjs/adapter/cloudflare-workers/conninfo.js +8 -31
  475. package/node_modules/hono/dist/cjs/adapter/cloudflare-workers/index.js +7 -33
  476. package/node_modules/hono/dist/cjs/adapter/cloudflare-workers/serve-static-module.js +7 -29
  477. package/node_modules/hono/dist/cjs/adapter/cloudflare-workers/serve-static.js +27 -42
  478. package/node_modules/hono/dist/cjs/adapter/cloudflare-workers/utils.js +21 -55
  479. package/node_modules/hono/dist/cjs/adapter/cloudflare-workers/websocket.js +33 -62
  480. package/node_modules/hono/dist/cjs/adapter/deno/conninfo.js +16 -34
  481. package/node_modules/hono/dist/cjs/adapter/deno/index.js +10 -38
  482. package/node_modules/hono/dist/cjs/adapter/deno/serve-static.js +33 -59
  483. package/node_modules/hono/dist/cjs/adapter/deno/ssg.js +27 -37
  484. package/node_modules/hono/dist/cjs/adapter/deno/websocket.js +32 -53
  485. package/node_modules/hono/dist/cjs/adapter/lambda-edge/conninfo.js +8 -31
  486. package/node_modules/hono/dist/cjs/adapter/lambda-edge/handler.js +102 -130
  487. package/node_modules/hono/dist/cjs/adapter/lambda-edge/index.js +5 -30
  488. package/node_modules/hono/dist/cjs/adapter/netlify/conninfo.js +25 -31
  489. package/node_modules/hono/dist/cjs/adapter/netlify/handler.js +10 -29
  490. package/node_modules/hono/dist/cjs/adapter/netlify/index.js +5 -21
  491. package/node_modules/hono/dist/cjs/adapter/netlify/mod.js +5 -30
  492. package/node_modules/hono/dist/cjs/adapter/service-worker/handler.js +16 -41
  493. package/node_modules/hono/dist/cjs/adapter/service-worker/index.js +25 -30
  494. package/node_modules/hono/dist/cjs/adapter/service-worker/types.js +0 -15
  495. package/node_modules/hono/dist/cjs/adapter/vercel/conninfo.js +8 -32
  496. package/node_modules/hono/dist/cjs/adapter/vercel/handler.js +8 -27
  497. package/node_modules/hono/dist/cjs/adapter/vercel/index.js +5 -30
  498. package/node_modules/hono/dist/cjs/client/client.js +139 -212
  499. package/node_modules/hono/dist/cjs/client/fetch-result-please.js +62 -80
  500. package/node_modules/hono/dist/cjs/client/index.js +7 -32
  501. package/node_modules/hono/dist/cjs/client/types.js +0 -15
  502. package/node_modules/hono/dist/cjs/client/utils.js +54 -92
  503. package/node_modules/hono/dist/cjs/compose.js +49 -66
  504. package/node_modules/hono/dist/cjs/context.js +379 -450
  505. package/node_modules/hono/dist/cjs/helper/accepts/accepts.js +47 -72
  506. package/node_modules/hono/dist/cjs/helper/accepts/index.js +3 -27
  507. package/node_modules/hono/dist/cjs/helper/adapter/index.js +33 -73
  508. package/node_modules/hono/dist/cjs/helper/conninfo/index.js +0 -15
  509. package/node_modules/hono/dist/cjs/helper/conninfo/types.js +0 -15
  510. package/node_modules/hono/dist/cjs/helper/cookie/index.js +75 -116
  511. package/node_modules/hono/dist/cjs/helper/css/common.js +165 -244
  512. package/node_modules/hono/dist/cjs/helper/css/index.js +136 -151
  513. package/node_modules/hono/dist/cjs/helper/dev/index.js +45 -71
  514. package/node_modules/hono/dist/cjs/helper/factory/index.js +30 -51
  515. package/node_modules/hono/dist/cjs/helper/html/index.js +32 -62
  516. package/node_modules/hono/dist/cjs/helper/proxy/index.js +113 -106
  517. package/node_modules/hono/dist/cjs/helper/route/index.js +123 -66
  518. package/node_modules/hono/dist/cjs/helper/ssg/index.js +19 -43
  519. package/node_modules/hono/dist/cjs/helper/ssg/middleware.js +56 -64
  520. package/node_modules/hono/dist/cjs/helper/ssg/plugins.js +55 -57
  521. package/node_modules/hono/dist/cjs/helper/ssg/ssg.js +196 -296
  522. package/node_modules/hono/dist/cjs/helper/ssg/utils.js +47 -90
  523. package/node_modules/hono/dist/cjs/helper/streaming/index.js +8 -35
  524. package/node_modules/hono/dist/cjs/helper/streaming/sse.js +53 -85
  525. package/node_modules/hono/dist/cjs/helper/streaming/stream.js +23 -53
  526. package/node_modules/hono/dist/cjs/helper/streaming/text.js +10 -32
  527. package/node_modules/hono/dist/cjs/helper/streaming/utils.js +13 -32
  528. package/node_modules/hono/dist/cjs/helper/testing/index.js +16 -31
  529. package/node_modules/hono/dist/cjs/helper/websocket/index.js +51 -76
  530. package/node_modules/hono/dist/cjs/hono-base.js +345 -403
  531. package/node_modules/hono/dist/cjs/hono.js +28 -42
  532. package/node_modules/hono/dist/cjs/http-exception.js +55 -56
  533. package/node_modules/hono/dist/cjs/index.js +22 -30
  534. package/node_modules/hono/dist/cjs/jsx/base.js +237 -366
  535. package/node_modules/hono/dist/cjs/jsx/children.js +16 -41
  536. package/node_modules/hono/dist/cjs/jsx/components.js +119 -192
  537. package/node_modules/hono/dist/cjs/jsx/constants.js +15 -42
  538. package/node_modules/hono/dist/cjs/jsx/context.js +144 -162
  539. package/node_modules/hono/dist/cjs/jsx/dom/client.js +49 -69
  540. package/node_modules/hono/dist/cjs/jsx/dom/components.js +23 -52
  541. package/node_modules/hono/dist/cjs/jsx/dom/context.js +39 -67
  542. package/node_modules/hono/dist/cjs/jsx/dom/css.js +143 -158
  543. package/node_modules/hono/dist/cjs/jsx/dom/hooks/index.js +55 -64
  544. package/node_modules/hono/dist/cjs/jsx/dom/index.js +114 -173
  545. package/node_modules/hono/dist/cjs/jsx/dom/intrinsic-element/components.js +282 -375
  546. package/node_modules/hono/dist/cjs/jsx/dom/jsx-dev-runtime.js +14 -49
  547. package/node_modules/hono/dist/cjs/jsx/dom/jsx-runtime.js +5 -32
  548. package/node_modules/hono/dist/cjs/jsx/dom/render.js +469 -623
  549. package/node_modules/hono/dist/cjs/jsx/dom/server.js +37 -64
  550. package/node_modules/hono/dist/cjs/jsx/dom/utils.js +7 -30
  551. package/node_modules/hono/dist/cjs/jsx/hooks/index.js +225 -318
  552. package/node_modules/hono/dist/cjs/jsx/index.js +86 -135
  553. package/node_modules/hono/dist/cjs/jsx/intrinsic-element/common.js +20 -43
  554. package/node_modules/hono/dist/cjs/jsx/intrinsic-element/components.js +117 -168
  555. package/node_modules/hono/dist/cjs/jsx/intrinsic-elements.js +0 -15
  556. package/node_modules/hono/dist/cjs/jsx/jsx-dev-runtime.js +14 -39
  557. package/node_modules/hono/dist/cjs/jsx/jsx-runtime.js +34 -68
  558. package/node_modules/hono/dist/cjs/jsx/streaming.js +123 -166
  559. package/node_modules/hono/dist/cjs/jsx/types.js +0 -15
  560. package/node_modules/hono/dist/cjs/jsx/utils.js +91 -175
  561. package/node_modules/hono/dist/cjs/middleware/basic-auth/index.js +98 -86
  562. package/node_modules/hono/dist/cjs/middleware/bearer-auth/index.js +92 -109
  563. package/node_modules/hono/dist/cjs/middleware/body-limit/index.js +66 -72
  564. package/node_modules/hono/dist/cjs/middleware/cache/index.js +153 -199
  565. package/node_modules/hono/dist/cjs/middleware/combine/index.js +133 -95
  566. package/node_modules/hono/dist/cjs/middleware/compress/index.js +73 -88
  567. package/node_modules/hono/dist/cjs/middleware/context-storage/index.js +49 -41
  568. package/node_modules/hono/dist/cjs/middleware/cors/index.js +107 -107
  569. package/node_modules/hono/dist/cjs/middleware/csrf/index.js +101 -72
  570. package/node_modules/hono/dist/cjs/middleware/etag/digest.js +58 -97
  571. package/node_modules/hono/dist/cjs/middleware/etag/index.js +71 -91
  572. package/node_modules/hono/dist/cjs/middleware/ip-restriction/index.js +161 -169
  573. package/node_modules/hono/dist/cjs/middleware/jsx-renderer/index.js +99 -77
  574. package/node_modules/hono/dist/cjs/middleware/jwk/index.js +3 -27
  575. package/node_modules/hono/dist/cjs/middleware/jwk/jwk.js +118 -135
  576. package/node_modules/hono/dist/cjs/middleware/jwt/index.js +9 -38
  577. package/node_modules/hono/dist/cjs/middleware/jwt/jwt.js +120 -141
  578. package/node_modules/hono/dist/cjs/middleware/language/index.js +7 -35
  579. package/node_modules/hono/dist/cjs/middleware/language/language.js +184 -182
  580. package/node_modules/hono/dist/cjs/middleware/logger/index.js +41 -62
  581. package/node_modules/hono/dist/cjs/middleware/method-not-allowed/index.js +82 -88
  582. package/node_modules/hono/dist/cjs/middleware/method-override/index.js +101 -102
  583. package/node_modules/hono/dist/cjs/middleware/powered-by/index.js +23 -30
  584. package/node_modules/hono/dist/cjs/middleware/pretty-json/index.js +38 -42
  585. package/node_modules/hono/dist/cjs/middleware/request-id/index.js +3 -27
  586. package/node_modules/hono/dist/cjs/middleware/request-id/request-id.js +34 -42
  587. package/node_modules/hono/dist/cjs/middleware/secure-headers/index.js +4 -29
  588. package/node_modules/hono/dist/cjs/middleware/secure-headers/permissions-policy.js +0 -15
  589. package/node_modules/hono/dist/cjs/middleware/secure-headers/secure-headers.js +142 -174
  590. package/node_modules/hono/dist/cjs/middleware/serve-static/index.js +55 -93
  591. package/node_modules/hono/dist/cjs/middleware/serve-static/path.js +15 -38
  592. package/node_modules/hono/dist/cjs/middleware/timeout/index.js +40 -45
  593. package/node_modules/hono/dist/cjs/middleware/timing/index.js +7 -35
  594. package/node_modules/hono/dist/cjs/middleware/timing/timing.js +177 -118
  595. package/node_modules/hono/dist/cjs/middleware/trailing-slash/index.js +85 -58
  596. package/node_modules/hono/dist/cjs/preset/quick.js +18 -37
  597. package/node_modules/hono/dist/cjs/preset/tiny.js +15 -33
  598. package/node_modules/hono/dist/cjs/request/constants.js +5 -27
  599. package/node_modules/hono/dist/cjs/request.js +334 -346
  600. package/node_modules/hono/dist/cjs/router/linear-router/index.js +3 -27
  601. package/node_modules/hono/dist/cjs/router/linear-router/router.js +95 -143
  602. package/node_modules/hono/dist/cjs/router/pattern-router/index.js +3 -27
  603. package/node_modules/hono/dist/cjs/router/pattern-router/router.js +41 -63
  604. package/node_modules/hono/dist/cjs/router/reg-exp-router/index.js +7 -34
  605. package/node_modules/hono/dist/cjs/router/reg-exp-router/matcher.js +18 -45
  606. package/node_modules/hono/dist/cjs/router/reg-exp-router/node.js +91 -135
  607. package/node_modules/hono/dist/cjs/router/reg-exp-router/prepared-router.js +92 -161
  608. package/node_modules/hono/dist/cjs/router/reg-exp-router/router.js +98 -147
  609. package/node_modules/hono/dist/cjs/router/reg-exp-router/trie.js +73 -89
  610. package/node_modules/hono/dist/cjs/router/smart-router/index.js +3 -27
  611. package/node_modules/hono/dist/cjs/router/smart-router/router.js +49 -79
  612. package/node_modules/hono/dist/cjs/router/trie-router/index.js +3 -27
  613. package/node_modules/hono/dist/cjs/router/trie-router/node.js +134 -186
  614. package/node_modules/hono/dist/cjs/router/trie-router/router.js +15 -39
  615. package/node_modules/hono/dist/cjs/router/utils.js +5 -27
  616. package/node_modules/hono/dist/cjs/router.js +37 -37
  617. package/node_modules/hono/dist/cjs/types.js +5 -28
  618. package/node_modules/hono/dist/cjs/utils/accept.js +177 -225
  619. package/node_modules/hono/dist/cjs/utils/basic-auth.js +16 -40
  620. package/node_modules/hono/dist/cjs/utils/body.js +84 -110
  621. package/node_modules/hono/dist/cjs/utils/buffer.js +43 -91
  622. package/node_modules/hono/dist/cjs/utils/color.js +35 -44
  623. package/node_modules/hono/dist/cjs/utils/compress.js +11 -26
  624. package/node_modules/hono/dist/cjs/utils/concurrent.js +29 -59
  625. package/node_modules/hono/dist/cjs/utils/constants.js +7 -26
  626. package/node_modules/hono/dist/cjs/utils/cookie.js +107 -177
  627. package/node_modules/hono/dist/cjs/utils/crypto.js +30 -61
  628. package/node_modules/hono/dist/cjs/utils/encode.js +31 -48
  629. package/node_modules/hono/dist/cjs/utils/filepath.js +23 -54
  630. package/node_modules/hono/dist/cjs/utils/handler.js +11 -33
  631. package/node_modules/hono/dist/cjs/utils/headers.js +0 -15
  632. package/node_modules/hono/dist/cjs/utils/html.js +96 -137
  633. package/node_modules/hono/dist/cjs/utils/http-status.js +0 -15
  634. package/node_modules/hono/dist/cjs/utils/ipaddr.js +213 -286
  635. package/node_modules/hono/dist/cjs/utils/jwt/index.js +14 -27
  636. package/node_modules/hono/dist/cjs/utils/jwt/jwa.js +25 -42
  637. package/node_modules/hono/dist/cjs/utils/jwt/jws.js +119 -199
  638. package/node_modules/hono/dist/cjs/utils/jwt/jwt.js +122 -206
  639. package/node_modules/hono/dist/cjs/utils/jwt/types.js +122 -159
  640. package/node_modules/hono/dist/cjs/utils/jwt/utf8.js +9 -28
  641. package/node_modules/hono/dist/cjs/utils/mime.js +75 -101
  642. package/node_modules/hono/dist/cjs/utils/stream.js +88 -111
  643. package/node_modules/hono/dist/cjs/utils/types.js +0 -15
  644. package/node_modules/hono/dist/cjs/utils/url.js +185 -234
  645. package/node_modules/hono/dist/cjs/validator/index.js +3 -27
  646. package/node_modules/hono/dist/cjs/validator/utils.js +0 -15
  647. package/node_modules/hono/dist/cjs/validator/validator.js +60 -103
  648. package/node_modules/hono/dist/client/client.js +138 -197
  649. package/node_modules/hono/dist/client/fetch-result-please.js +59 -56
  650. package/node_modules/hono/dist/client/index.js +3 -7
  651. package/node_modules/hono/dist/client/types.js +1 -0
  652. package/node_modules/hono/dist/client/utils.js +51 -68
  653. package/node_modules/hono/dist/compose.js +49 -45
  654. package/node_modules/hono/dist/context.js +376 -426
  655. package/node_modules/hono/dist/helper/accepts/accepts.js +47 -51
  656. package/node_modules/hono/dist/helper/accepts/index.js +1 -4
  657. package/node_modules/hono/dist/helper/adapter/index.js +33 -52
  658. package/node_modules/hono/dist/helper/conninfo/index.js +1 -0
  659. package/node_modules/hono/dist/helper/conninfo/types.js +1 -0
  660. package/node_modules/hono/dist/helper/cookie/index.js +74 -94
  661. package/node_modules/hono/dist/helper/css/common.js +167 -225
  662. package/node_modules/hono/dist/helper/css/index.js +132 -137
  663. package/node_modules/hono/dist/helper/dev/index.js +44 -49
  664. package/node_modules/hono/dist/helper/factory/index.js +27 -27
  665. package/node_modules/hono/dist/helper/html/index.js +30 -39
  666. package/node_modules/hono/dist/helper/proxy/index.js +116 -88
  667. package/node_modules/hono/dist/helper/route/index.js +121 -43
  668. package/node_modules/hono/dist/helper/ssg/index.js +3 -18
  669. package/node_modules/hono/dist/helper/ssg/middleware.js +53 -40
  670. package/node_modules/hono/dist/helper/ssg/plugins.js +55 -36
  671. package/node_modules/hono/dist/helper/ssg/ssg.js +198 -283
  672. package/node_modules/hono/dist/helper/ssg/utils.js +53 -75
  673. package/node_modules/hono/dist/helper/streaming/index.js +2 -8
  674. package/node_modules/hono/dist/helper/streaming/sse.js +50 -61
  675. package/node_modules/hono/dist/helper/streaming/stream.js +22 -31
  676. package/node_modules/hono/dist/helper/streaming/text.js +9 -10
  677. package/node_modules/hono/dist/helper/streaming/utils.js +9 -12
  678. package/node_modules/hono/dist/helper/testing/index.js +16 -10
  679. package/node_modules/hono/dist/helper/websocket/index.js +49 -53
  680. package/node_modules/hono/dist/hono-base.js +342 -379
  681. package/node_modules/hono/dist/hono.js +27 -20
  682. package/node_modules/hono/dist/http-exception.js +53 -33
  683. package/node_modules/hono/dist/index.js +19 -6
  684. package/node_modules/hono/dist/jsx/base.js +231 -340
  685. package/node_modules/hono/dist/jsx/children.js +16 -20
  686. package/node_modules/hono/dist/jsx/components.js +118 -170
  687. package/node_modules/hono/dist/jsx/constants.js +9 -15
  688. package/node_modules/hono/dist/jsx/context.js +153 -150
  689. package/node_modules/hono/dist/jsx/dom/client.js +45 -48
  690. package/node_modules/hono/dist/jsx/dom/components.js +21 -29
  691. package/node_modules/hono/dist/jsx/dom/context.js +37 -44
  692. package/node_modules/hono/dist/jsx/dom/css.js +142 -147
  693. package/node_modules/hono/dist/jsx/dom/hooks/index.js +52 -40
  694. package/node_modules/hono/dist/jsx/dom/index.js +71 -134
  695. package/node_modules/hono/dist/jsx/dom/intrinsic-element/components.js +275 -359
  696. package/node_modules/hono/dist/jsx/dom/jsx-dev-runtime.js +14 -18
  697. package/node_modules/hono/dist/jsx/dom/jsx-runtime.js +2 -8
  698. package/node_modules/hono/dist/jsx/dom/render.js +492 -631
  699. package/node_modules/hono/dist/jsx/dom/server.js +32 -32
  700. package/node_modules/hono/dist/jsx/dom/utils.js +6 -8
  701. package/node_modules/hono/dist/jsx/hooks/index.js +236 -308
  702. package/node_modules/hono/dist/jsx/index.js +45 -98
  703. package/node_modules/hono/dist/jsx/intrinsic-element/common.js +20 -22
  704. package/node_modules/hono/dist/jsx/intrinsic-element/components.js +113 -154
  705. package/node_modules/hono/dist/jsx/intrinsic-elements.js +1 -0
  706. package/node_modules/hono/dist/jsx/jsx-dev-runtime.js +12 -16
  707. package/node_modules/hono/dist/jsx/jsx-runtime.js +29 -42
  708. package/node_modules/hono/dist/jsx/streaming.js +120 -142
  709. package/node_modules/hono/dist/jsx/types.js +1 -0
  710. package/node_modules/hono/dist/jsx/utils.js +105 -168
  711. package/node_modules/hono/dist/middleware/basic-auth/index.js +96 -63
  712. package/node_modules/hono/dist/middleware/bearer-auth/index.js +93 -89
  713. package/node_modules/hono/dist/middleware/body-limit/index.js +66 -51
  714. package/node_modules/hono/dist/middleware/cache/index.js +165 -190
  715. package/node_modules/hono/dist/middleware/combine/index.js +132 -73
  716. package/node_modules/hono/dist/middleware/compress/index.js +75 -69
  717. package/node_modules/hono/dist/middleware/context-storage/index.js +49 -19
  718. package/node_modules/hono/dist/middleware/cors/index.js +107 -86
  719. package/node_modules/hono/dist/middleware/csrf/index.js +103 -53
  720. package/node_modules/hono/dist/middleware/etag/digest.js +59 -77
  721. package/node_modules/hono/dist/middleware/etag/index.js +71 -70
  722. package/node_modules/hono/dist/middleware/ip-restriction/index.js +163 -158
  723. package/node_modules/hono/dist/middleware/jsx-renderer/index.js +97 -54
  724. package/node_modules/hono/dist/middleware/jwk/index.js +1 -4
  725. package/node_modules/hono/dist/middleware/jwk/jwk.js +116 -112
  726. package/node_modules/hono/dist/middleware/jwt/index.js +2 -10
  727. package/node_modules/hono/dist/middleware/jwt/jwt.js +114 -114
  728. package/node_modules/hono/dist/middleware/language/index.js +2 -15
  729. package/node_modules/hono/dist/middleware/language/language.js +180 -157
  730. package/node_modules/hono/dist/middleware/logger/index.js +43 -37
  731. package/node_modules/hono/dist/middleware/method-not-allowed/index.js +81 -66
  732. package/node_modules/hono/dist/middleware/method-override/index.js +101 -81
  733. package/node_modules/hono/dist/middleware/powered-by/index.js +23 -9
  734. package/node_modules/hono/dist/middleware/pretty-json/index.js +39 -22
  735. package/node_modules/hono/dist/middleware/request-id/index.js +1 -4
  736. package/node_modules/hono/dist/middleware/request-id/request-id.js +33 -20
  737. package/node_modules/hono/dist/middleware/secure-headers/index.js +1 -5
  738. package/node_modules/hono/dist/middleware/secure-headers/permissions-policy.js +1 -0
  739. package/node_modules/hono/dist/middleware/secure-headers/secure-headers.js +144 -155
  740. package/node_modules/hono/dist/middleware/serve-static/index.js +55 -72
  741. package/node_modules/hono/dist/middleware/serve-static/path.js +15 -17
  742. package/node_modules/hono/dist/middleware/timeout/index.js +40 -23
  743. package/node_modules/hono/dist/middleware/timing/index.js +2 -9
  744. package/node_modules/hono/dist/middleware/timing/timing.js +177 -97
  745. package/node_modules/hono/dist/middleware/trailing-slash/index.js +85 -37
  746. package/node_modules/hono/dist/preset/quick.js +17 -15
  747. package/node_modules/hono/dist/preset/tiny.js +14 -11
  748. package/node_modules/hono/dist/request/constants.js +4 -5
  749. package/node_modules/hono/dist/request.js +328 -319
  750. package/node_modules/hono/dist/router/linear-router/index.js +1 -4
  751. package/node_modules/hono/dist/router/linear-router/router.js +93 -120
  752. package/node_modules/hono/dist/router/pattern-router/index.js +1 -4
  753. package/node_modules/hono/dist/router/pattern-router/router.js +39 -40
  754. package/node_modules/hono/dist/router/reg-exp-router/index.js +1 -7
  755. package/node_modules/hono/dist/router/reg-exp-router/matcher.js +17 -23
  756. package/node_modules/hono/dist/router/reg-exp-router/node.js +87 -110
  757. package/node_modules/hono/dist/router/reg-exp-router/prepared-router.js +89 -137
  758. package/node_modules/hono/dist/router/reg-exp-router/router.js +92 -129
  759. package/node_modules/hono/dist/router/reg-exp-router/trie.js +69 -64
  760. package/node_modules/hono/dist/router/smart-router/index.js +1 -4
  761. package/node_modules/hono/dist/router/smart-router/router.js +46 -55
  762. package/node_modules/hono/dist/router/trie-router/index.js +1 -4
  763. package/node_modules/hono/dist/router/trie-router/node.js +131 -162
  764. package/node_modules/hono/dist/router/trie-router/router.js +11 -14
  765. package/node_modules/hono/dist/router/utils.js +4 -5
  766. package/node_modules/hono/dist/router.js +35 -14
  767. package/node_modules/hono/dist/types/adapter/aws-lambda/conninfo.d.ts +4 -1
  768. package/node_modules/hono/dist/types/adapter/aws-lambda/handler.d.ts +150 -105
  769. package/node_modules/hono/dist/types/adapter/aws-lambda/index.d.ts +4 -8
  770. package/node_modules/hono/dist/types/adapter/aws-lambda/types.d.ts +152 -123
  771. package/node_modules/hono/dist/types/adapter/bun/conninfo.d.ts +4 -1
  772. package/node_modules/hono/dist/types/adapter/bun/index.d.ts +6 -10
  773. package/node_modules/hono/dist/types/adapter/bun/serve-static.d.ts +7 -2
  774. package/node_modules/hono/dist/types/adapter/bun/server.d.ts +4 -5
  775. package/node_modules/hono/dist/types/adapter/bun/ssg.d.ts +5 -1
  776. package/node_modules/hono/dist/types/adapter/bun/websocket.d.ts +31 -17
  777. package/node_modules/hono/dist/types/adapter/cloudflare-pages/conninfo.d.ts +4 -1
  778. package/node_modules/hono/dist/types/adapter/cloudflare-pages/handler.d.ts +29 -18
  779. package/node_modules/hono/dist/types/adapter/cloudflare-pages/index.d.ts +3 -7
  780. package/node_modules/hono/dist/types/adapter/cloudflare-workers/conninfo.d.ts +6 -1
  781. package/node_modules/hono/dist/types/adapter/cloudflare-workers/index.d.ts +4 -7
  782. package/node_modules/hono/dist/types/adapter/cloudflare-workers/serve-static-module.d.ts +5 -3
  783. package/node_modules/hono/dist/types/adapter/cloudflare-workers/serve-static.d.ts +10 -5
  784. package/node_modules/hono/dist/types/adapter/cloudflare-workers/utils.d.ts +10 -2
  785. package/node_modules/hono/dist/types/adapter/cloudflare-workers/websocket.d.ts +6 -1
  786. package/node_modules/hono/dist/types/adapter/deno/conninfo.d.ts +4 -1
  787. package/node_modules/hono/dist/types/adapter/deno/deno.d.ts +1 -0
  788. package/node_modules/hono/dist/types/adapter/deno/index.d.ts +5 -8
  789. package/node_modules/hono/dist/types/adapter/deno/serve-static.d.ts +7 -2
  790. package/node_modules/hono/dist/types/adapter/deno/ssg.d.ts +5 -1
  791. package/node_modules/hono/dist/types/adapter/deno/websocket.d.ts +6 -1
  792. package/node_modules/hono/dist/types/adapter/lambda-edge/conninfo.d.ts +6 -1
  793. package/node_modules/hono/dist/types/adapter/lambda-edge/handler.d.ts +83 -58
  794. package/node_modules/hono/dist/types/adapter/lambda-edge/index.d.ts +3 -7
  795. package/node_modules/hono/dist/types/adapter/netlify/conninfo.d.ts +4 -1
  796. package/node_modules/hono/dist/types/adapter/netlify/handler.d.ts +6 -1
  797. package/node_modules/hono/dist/types/adapter/netlify/index.d.ts +3 -5
  798. package/node_modules/hono/dist/types/adapter/netlify/mod.d.ts +3 -2
  799. package/node_modules/hono/dist/types/adapter/service-worker/handler.d.ts +9 -8
  800. package/node_modules/hono/dist/types/adapter/service-worker/index.d.ts +6 -9
  801. package/node_modules/hono/dist/types/adapter/service-worker/types.d.ts +12 -8
  802. package/node_modules/hono/dist/types/adapter/vercel/conninfo.d.ts +6 -1
  803. package/node_modules/hono/dist/types/adapter/vercel/handler.d.ts +6 -1
  804. package/node_modules/hono/dist/types/adapter/vercel/index.d.ts +3 -6
  805. package/node_modules/hono/dist/types/client/client.d.ts +5 -3
  806. package/node_modules/hono/dist/types/client/fetch-result-please.d.ts +21 -19
  807. package/node_modules/hono/dist/types/client/index.d.ts +5 -7
  808. package/node_modules/hono/dist/types/client/types.d.ts +134 -160
  809. package/node_modules/hono/dist/types/client/utils.d.ts +6 -4
  810. package/node_modules/hono/dist/types/compose.d.ts +4 -2
  811. package/node_modules/hono/dist/types/context.d.ts +335 -336
  812. package/node_modules/hono/dist/types/helper/accepts/accepts.d.ts +11 -9
  813. package/node_modules/hono/dist/types/helper/accepts/index.d.ts +2 -5
  814. package/node_modules/hono/dist/types/helper/adapter/index.d.ts +4 -6
  815. package/node_modules/hono/dist/types/helper/conninfo/index.d.ts +2 -5
  816. package/node_modules/hono/dist/types/helper/conninfo/types.d.ts +25 -23
  817. package/node_modules/hono/dist/types/helper/cookie/index.d.ts +10 -13
  818. package/node_modules/hono/dist/types/helper/css/common.d.ts +11 -10
  819. package/node_modules/hono/dist/types/helper/css/index.d.ts +25 -28
  820. package/node_modules/hono/dist/types/helper/dev/index.d.ts +10 -13
  821. package/node_modules/hono/dist/types/helper/factory/index.d.ts +26 -74
  822. package/node_modules/hono/dist/types/helper/html/index.d.ts +4 -7
  823. package/node_modules/hono/dist/types/helper/proxy/index.d.ts +19 -22
  824. package/node_modules/hono/dist/types/helper/route/index.d.ts +4 -2
  825. package/node_modules/hono/dist/types/helper/ssg/index.d.ts +4 -7
  826. package/node_modules/hono/dist/types/helper/ssg/middleware.d.ts +8 -7
  827. package/node_modules/hono/dist/types/helper/ssg/plugins.d.ts +3 -1
  828. package/node_modules/hono/dist/types/helper/ssg/ssg.d.ts +38 -36
  829. package/node_modules/hono/dist/types/helper/ssg/utils.d.ts +5 -4
  830. package/node_modules/hono/dist/types/helper/streaming/index.d.ts +4 -8
  831. package/node_modules/hono/dist/types/helper/streaming/sse.d.ts +10 -8
  832. package/node_modules/hono/dist/types/helper/streaming/stream.d.ts +4 -2
  833. package/node_modules/hono/dist/types/helper/streaming/text.d.ts +4 -2
  834. package/node_modules/hono/dist/types/helper/streaming/utils.d.ts +2 -0
  835. package/node_modules/hono/dist/types/helper/testing/index.d.ts +7 -10
  836. package/node_modules/hono/dist/types/helper/websocket/index.d.ts +30 -33
  837. package/node_modules/hono/dist/types/hono-base.d.ts +208 -211
  838. package/node_modules/hono/dist/types/hono.d.ts +11 -10
  839. package/node_modules/hono/dist/types/http-exception.d.ts +20 -23
  840. package/node_modules/hono/dist/types/index.d.ts +6 -37
  841. package/node_modules/hono/dist/types/jsx/base.d.ts +36 -35
  842. package/node_modules/hono/dist/types/jsx/children.d.ts +8 -6
  843. package/node_modules/hono/dist/types/jsx/components.d.ts +8 -5
  844. package/node_modules/hono/dist/types/jsx/constants.d.ts +2 -0
  845. package/node_modules/hono/dist/types/jsx/context.d.ts +9 -7
  846. package/node_modules/hono/dist/types/jsx/dom/client.d.ts +8 -10
  847. package/node_modules/hono/dist/types/jsx/dom/components.d.ts +9 -6
  848. package/node_modules/hono/dist/types/jsx/dom/context.d.ts +3 -1
  849. package/node_modules/hono/dist/types/jsx/dom/css.d.ts +26 -30
  850. package/node_modules/hono/dist/types/jsx/dom/hooks/index.d.ts +11 -13
  851. package/node_modules/hono/dist/types/jsx/dom/index.d.ts +78 -83
  852. package/node_modules/hono/dist/types/jsx/dom/intrinsic-element/components.d.ts +9 -5
  853. package/node_modules/hono/dist/types/jsx/dom/jsx-dev-runtime.d.ts +4 -6
  854. package/node_modules/hono/dist/types/jsx/dom/jsx-runtime.d.ts +3 -7
  855. package/node_modules/hono/dist/types/jsx/dom/render.d.ts +32 -51
  856. package/node_modules/hono/dist/types/jsx/dom/server.d.ts +86 -85
  857. package/node_modules/hono/dist/types/jsx/dom/utils.d.ts +2 -0
  858. package/node_modules/hono/dist/types/jsx/hooks/index.d.ts +16 -17
  859. package/node_modules/hono/dist/types/jsx/index.d.ts +70 -73
  860. package/node_modules/hono/dist/types/jsx/intrinsic-element/common.d.ts +3 -1
  861. package/node_modules/hono/dist/types/jsx/intrinsic-element/components.d.ts +7 -4
  862. package/node_modules/hono/dist/types/jsx/intrinsic-elements.d.ts +708 -708
  863. package/node_modules/hono/dist/types/jsx/jsx-dev-runtime.d.ts +4 -7
  864. package/node_modules/hono/dist/types/jsx/jsx-runtime.d.ts +7 -10
  865. package/node_modules/hono/dist/types/jsx/streaming.d.ts +9 -10
  866. package/node_modules/hono/dist/types/jsx/types.d.ts +11 -13
  867. package/node_modules/hono/dist/types/jsx/utils.d.ts +2 -0
  868. package/node_modules/hono/dist/types/middleware/basic-auth/index.d.ts +17 -20
  869. package/node_modules/hono/dist/types/middleware/bearer-auth/index.d.ts +46 -49
  870. package/node_modules/hono/dist/types/middleware/body-limit/index.d.ts +6 -9
  871. package/node_modules/hono/dist/types/middleware/cache/index.d.ts +13 -15
  872. package/node_modules/hono/dist/types/middleware/combine/index.d.ts +4 -7
  873. package/node_modules/hono/dist/types/middleware/compress/index.d.ts +8 -10
  874. package/node_modules/hono/dist/types/middleware/context-storage/index.d.ts +4 -6
  875. package/node_modules/hono/dist/types/middleware/cors/index.d.ts +10 -13
  876. package/node_modules/hono/dist/types/middleware/csrf/index.d.ts +6 -9
  877. package/node_modules/hono/dist/types/middleware/etag/digest.d.ts +2 -0
  878. package/node_modules/hono/dist/types/middleware/etag/index.d.ts +6 -9
  879. package/node_modules/hono/dist/types/middleware/ip-restriction/index.d.ts +11 -13
  880. package/node_modules/hono/dist/types/middleware/jsx-renderer/index.d.ts +11 -12
  881. package/node_modules/hono/dist/types/middleware/jwk/index.d.ts +2 -1
  882. package/node_modules/hono/dist/types/middleware/jwk/jwk.d.ts +20 -23
  883. package/node_modules/hono/dist/types/middleware/jwt/index.d.ts +6 -6
  884. package/node_modules/hono/dist/types/middleware/jwt/jwt.d.ts +28 -30
  885. package/node_modules/hono/dist/types/middleware/language/index.d.ts +5 -5
  886. package/node_modules/hono/dist/types/middleware/language/language.d.ts +42 -44
  887. package/node_modules/hono/dist/types/middleware/logger/index.d.ts +3 -6
  888. package/node_modules/hono/dist/types/middleware/method-not-allowed/index.d.ts +7 -10
  889. package/node_modules/hono/dist/types/middleware/method-override/index.d.ts +14 -17
  890. package/node_modules/hono/dist/types/middleware/powered-by/index.d.ts +8 -11
  891. package/node_modules/hono/dist/types/middleware/pretty-json/index.d.ts +18 -21
  892. package/node_modules/hono/dist/types/middleware/request-id/index.d.ts +5 -5
  893. package/node_modules/hono/dist/types/middleware/request-id/request-id.d.ts +9 -11
  894. package/node_modules/hono/dist/types/middleware/secure-headers/index.d.ts +5 -6
  895. package/node_modules/hono/dist/types/middleware/secure-headers/permissions-policy.d.ts +2 -1
  896. package/node_modules/hono/dist/types/middleware/secure-headers/secure-headers.d.ts +55 -58
  897. package/node_modules/hono/dist/types/middleware/serve-static/index.d.ts +22 -24
  898. package/node_modules/hono/dist/types/middleware/serve-static/path.d.ts +2 -0
  899. package/node_modules/hono/dist/types/middleware/timeout/index.d.ts +5 -7
  900. package/node_modules/hono/dist/types/middleware/timing/index.d.ts +5 -5
  901. package/node_modules/hono/dist/types/middleware/timing/timing.d.ts +17 -21
  902. package/node_modules/hono/dist/types/middleware/trailing-slash/index.d.ts +35 -38
  903. package/node_modules/hono/dist/types/preset/quick.d.ts +6 -9
  904. package/node_modules/hono/dist/types/preset/tiny.d.ts +6 -9
  905. package/node_modules/hono/dist/types/request/constants.d.ts +2 -0
  906. package/node_modules/hono/dist/types/request.d.ts +288 -287
  907. package/node_modules/hono/dist/types/router/linear-router/index.d.ts +2 -5
  908. package/node_modules/hono/dist/types/router/linear-router/router.d.ts +7 -5
  909. package/node_modules/hono/dist/types/router/pattern-router/index.d.ts +2 -5
  910. package/node_modules/hono/dist/types/router/pattern-router/router.d.ts +7 -5
  911. package/node_modules/hono/dist/types/router/reg-exp-router/index.d.ts +3 -6
  912. package/node_modules/hono/dist/types/router/reg-exp-router/matcher.d.ts +3 -1
  913. package/node_modules/hono/dist/types/router/reg-exp-router/node.d.ts +6 -4
  914. package/node_modules/hono/dist/types/router/reg-exp-router/prepared-router.d.ts +11 -11
  915. package/node_modules/hono/dist/types/router/reg-exp-router/router.d.ts +10 -9
  916. package/node_modules/hono/dist/types/router/reg-exp-router/trie.d.ts +7 -5
  917. package/node_modules/hono/dist/types/router/smart-router/index.d.ts +2 -5
  918. package/node_modules/hono/dist/types/router/smart-router/router.d.ts +11 -9
  919. package/node_modules/hono/dist/types/router/trie-router/index.d.ts +2 -5
  920. package/node_modules/hono/dist/types/router/trie-router/node.d.ts +6 -4
  921. package/node_modules/hono/dist/types/router/trie-router/router.d.ts +7 -5
  922. package/node_modules/hono/dist/types/router/utils.d.ts +2 -0
  923. package/node_modules/hono/dist/types/router.d.ts +23 -22
  924. package/node_modules/hono/dist/types/types.d.ts +146 -506
  925. package/node_modules/hono/dist/types/utils/accept.d.ts +5 -3
  926. package/node_modules/hono/dist/types/utils/basic-auth.d.ts +4 -2
  927. package/node_modules/hono/dist/types/utils/body.d.ts +46 -51
  928. package/node_modules/hono/dist/types/utils/buffer.d.ts +7 -6
  929. package/node_modules/hono/dist/types/utils/color.d.ts +2 -0
  930. package/node_modules/hono/dist/types/utils/compress.d.ts +2 -0
  931. package/node_modules/hono/dist/types/utils/concurrent.d.ts +6 -4
  932. package/node_modules/hono/dist/types/utils/constants.d.ts +2 -0
  933. package/node_modules/hono/dist/types/utils/cookie.d.ts +20 -19
  934. package/node_modules/hono/dist/types/utils/crypto.d.ts +5 -8
  935. package/node_modules/hono/dist/types/utils/encode.d.ts +2 -0
  936. package/node_modules/hono/dist/types/utils/filepath.d.ts +5 -4
  937. package/node_modules/hono/dist/types/utils/handler.d.ts +2 -0
  938. package/node_modules/hono/dist/types/utils/headers.d.ts +2 -0
  939. package/node_modules/hono/dist/types/utils/html.d.ts +11 -10
  940. package/node_modules/hono/dist/types/utils/http-status.d.ts +2 -0
  941. package/node_modules/hono/dist/types/utils/ipaddr.d.ts +4 -6
  942. package/node_modules/hono/dist/types/utils/jwt/index.d.ts +18 -12
  943. package/node_modules/hono/dist/types/utils/jwt/jwa.d.ts +15 -13
  944. package/node_modules/hono/dist/types/utils/jwt/jws.d.ts +4 -7
  945. package/node_modules/hono/dist/types/utils/jwt/jwt.d.ts +26 -29
  946. package/node_modules/hono/dist/types/utils/jwt/types.d.ts +48 -45
  947. package/node_modules/hono/dist/types/utils/jwt/utf8.d.ts +2 -0
  948. package/node_modules/hono/dist/types/utils/mime.d.ts +59 -57
  949. package/node_modules/hono/dist/types/utils/stream.d.ts +27 -25
  950. package/node_modules/hono/dist/types/utils/types.d.ts +14 -27
  951. package/node_modules/hono/dist/types/utils/url.d.ts +2 -1
  952. package/node_modules/hono/dist/types/validator/index.d.ts +3 -7
  953. package/node_modules/hono/dist/types/validator/utils.d.ts +6 -9
  954. package/node_modules/hono/dist/types/validator/validator.d.ts +11 -10
  955. package/node_modules/hono/dist/types.js +4 -6
  956. package/node_modules/hono/dist/utils/accept.js +185 -212
  957. package/node_modules/hono/dist/utils/basic-auth.js +18 -21
  958. package/node_modules/hono/dist/utils/body.js +87 -92
  959. package/node_modules/hono/dist/utils/buffer.js +44 -71
  960. package/node_modules/hono/dist/utils/color.js +33 -21
  961. package/node_modules/hono/dist/utils/compress.js +11 -5
  962. package/node_modules/hono/dist/utils/concurrent.js +29 -38
  963. package/node_modules/hono/dist/utils/constants.js +7 -5
  964. package/node_modules/hono/dist/utils/cookie.js +114 -163
  965. package/node_modules/hono/dist/utils/crypto.js +30 -40
  966. package/node_modules/hono/dist/utils/encode.js +30 -26
  967. package/node_modules/hono/dist/utils/filepath.js +23 -33
  968. package/node_modules/hono/dist/utils/handler.js +10 -11
  969. package/node_modules/hono/dist/utils/headers.js +1 -0
  970. package/node_modules/hono/dist/utils/html.js +97 -117
  971. package/node_modules/hono/dist/utils/http-status.js +1 -0
  972. package/node_modules/hono/dist/utils/ipaddr.js +227 -279
  973. package/node_modules/hono/dist/utils/jwt/index.js +12 -4
  974. package/node_modules/hono/dist/utils/jwt/jwa.js +24 -20
  975. package/node_modules/hono/dist/utils/jwt/jws.js +115 -174
  976. package/node_modules/hono/dist/utils/jwt/jwt.js +120 -198
  977. package/node_modules/hono/dist/utils/jwt/types.js +79 -95
  978. package/node_modules/hono/dist/utils/jwt/utf8.js +9 -7
  979. package/node_modules/hono/dist/utils/mime.js +74 -79
  980. package/node_modules/hono/dist/utils/stream.js +86 -88
  981. package/node_modules/hono/dist/utils/types.js +1 -0
  982. package/node_modules/hono/dist/utils/url.js +187 -215
  983. package/node_modules/hono/dist/validator/index.js +1 -4
  984. package/node_modules/hono/dist/validator/utils.js +1 -0
  985. package/node_modules/hono/dist/validator/validator.js +61 -83
  986. package/node_modules/hono/package.json +27 -27
  987. package/node_modules/imapflow/CHANGELOG.md +14 -0
  988. package/node_modules/imapflow/README.md +2 -0
  989. package/node_modules/imapflow/dist/cjs/commands/list.js +20 -8
  990. package/node_modules/imapflow/dist/cjs/errors.d.ts +2 -0
  991. package/node_modules/imapflow/dist/cjs/errors.js +4 -1
  992. package/node_modules/imapflow/dist/cjs/handler/imap-stream.js +7 -11
  993. package/node_modules/imapflow/dist/cjs/imap-flow.js +54 -27
  994. package/node_modules/imapflow/dist/cjs/logger.d.ts +21 -3
  995. package/node_modules/imapflow/dist/cjs/logger.js +35 -5
  996. package/node_modules/imapflow/dist/cjs/package-info.d.ts +1 -1
  997. package/node_modules/imapflow/dist/cjs/package-info.js +1 -1
  998. package/node_modules/imapflow/dist/cjs/search-compiler.d.ts +1 -1
  999. package/node_modules/imapflow/dist/cjs/search-compiler.js +48 -35
  1000. package/node_modules/imapflow/dist/cjs/tools.js +9 -2
  1001. package/node_modules/imapflow/dist/esm/commands/list.js +20 -8
  1002. package/node_modules/imapflow/dist/esm/errors.d.ts +2 -0
  1003. package/node_modules/imapflow/dist/esm/errors.js +4 -1
  1004. package/node_modules/imapflow/dist/esm/handler/imap-stream.js +7 -8
  1005. package/node_modules/imapflow/dist/esm/imap-flow.js +54 -27
  1006. package/node_modules/imapflow/dist/esm/logger.d.ts +21 -3
  1007. package/node_modules/imapflow/dist/esm/logger.js +33 -3
  1008. package/node_modules/imapflow/dist/esm/package-info.d.ts +1 -1
  1009. package/node_modules/imapflow/dist/esm/package-info.js +1 -1
  1010. package/node_modules/imapflow/dist/esm/search-compiler.d.ts +1 -1
  1011. package/node_modules/imapflow/dist/esm/search-compiler.js +49 -36
  1012. package/node_modules/imapflow/dist/esm/tools.js +9 -2
  1013. package/node_modules/imapflow/package.json +5 -5
  1014. package/node_modules/libbase64/.github/workflows/release.yaml +12 -10
  1015. package/node_modules/libbase64/.ncurc.js +7 -1
  1016. package/node_modules/libbase64/CHANGELOG.md +7 -0
  1017. package/node_modules/libbase64/lib/libbase64.js +27 -0
  1018. package/node_modules/libbase64/package.json +4 -4
  1019. package/node_modules/libmime/CHANGELOG.md +14 -0
  1020. package/node_modules/libmime/lib/libmime.js +41 -21
  1021. package/node_modules/libmime/package.json +3 -3
  1022. package/node_modules/libqp/.github/workflows/release.yaml +12 -10
  1023. package/node_modules/libqp/CHANGELOG.md +7 -0
  1024. package/node_modules/libqp/lib/libqp.js +6 -4
  1025. package/node_modules/libqp/package.json +2 -2
  1026. package/node_modules/libqp/test/libqp-test.js +71 -14
  1027. package/package.json +4 -2
  1028. package/packages/cli/dist/.tsbuildinfo +1 -1
  1029. package/packages/cli/dist/commands.d.ts.map +1 -1
  1030. package/packages/cli/dist/commands.js +24 -2
  1031. package/packages/cli/dist/commands.js.map +1 -1
  1032. package/packages/cli/dist/doctor-probes.d.ts.map +1 -1
  1033. package/packages/cli/dist/doctor-probes.js +1 -0
  1034. package/packages/cli/dist/doctor-probes.js.map +1 -1
  1035. package/packages/cli/dist/doctor.d.ts +2 -0
  1036. package/packages/cli/dist/doctor.d.ts.map +1 -1
  1037. package/packages/cli/dist/doctor.js +7 -0
  1038. package/packages/cli/dist/doctor.js.map +1 -1
  1039. package/packages/core/dist/.tsbuildinfo +1 -1
  1040. package/packages/core/dist/actions/permissions.d.ts +14 -0
  1041. package/packages/core/dist/actions/permissions.d.ts.map +1 -1
  1042. package/packages/core/dist/actions/permissions.js +15 -0
  1043. package/packages/core/dist/actions/permissions.js.map +1 -1
  1044. package/packages/core/dist/agents/catalog.d.ts +49 -3
  1045. package/packages/core/dist/agents/catalog.d.ts.map +1 -1
  1046. package/packages/core/dist/agents/catalog.js +104 -15
  1047. package/packages/core/dist/agents/catalog.js.map +1 -1
  1048. package/packages/core/dist/agents/delegates.d.ts +54 -0
  1049. package/packages/core/dist/agents/delegates.d.ts.map +1 -0
  1050. package/packages/core/dist/agents/delegates.js +51 -0
  1051. package/packages/core/dist/agents/delegates.js.map +1 -0
  1052. package/packages/core/dist/agents/index.d.ts +1 -0
  1053. package/packages/core/dist/agents/index.d.ts.map +1 -1
  1054. package/packages/core/dist/agents/index.js +1 -0
  1055. package/packages/core/dist/agents/index.js.map +1 -1
  1056. package/packages/core/dist/home.d.ts +30 -1
  1057. package/packages/core/dist/home.d.ts.map +1 -1
  1058. package/packages/core/dist/home.js +1 -1
  1059. package/packages/core/dist/home.js.map +1 -1
  1060. package/packages/core/dist/host/build.d.ts +26 -5
  1061. package/packages/core/dist/host/build.d.ts.map +1 -1
  1062. package/packages/core/dist/host/build.js +109 -3
  1063. package/packages/core/dist/host/build.js.map +1 -1
  1064. package/packages/core/dist/host/http.d.ts +32 -0
  1065. package/packages/core/dist/host/http.d.ts.map +1 -1
  1066. package/packages/core/dist/host/http.js +102 -2
  1067. package/packages/core/dist/host/http.js.map +1 -1
  1068. package/packages/core/dist/host/types.d.ts +75 -5
  1069. package/packages/core/dist/host/types.d.ts.map +1 -1
  1070. package/packages/core/dist/index.d.ts +2 -0
  1071. package/packages/core/dist/index.d.ts.map +1 -1
  1072. package/packages/core/dist/index.js +2 -0
  1073. package/packages/core/dist/index.js.map +1 -1
  1074. package/packages/core/dist/json-schema.d.ts +32 -0
  1075. package/packages/core/dist/json-schema.d.ts.map +1 -0
  1076. package/packages/core/dist/json-schema.js +147 -0
  1077. package/packages/core/dist/json-schema.js.map +1 -0
  1078. package/packages/core/dist/learning/announce.d.ts +1 -1
  1079. package/packages/core/dist/learning/sources.d.ts.map +1 -1
  1080. package/packages/core/dist/learning/sources.js +3 -0
  1081. package/packages/core/dist/learning/sources.js.map +1 -1
  1082. package/packages/core/dist/learning/types.d.ts +4 -3
  1083. package/packages/core/dist/learning/types.d.ts.map +1 -1
  1084. package/packages/core/dist/learning/types.js +1 -1
  1085. package/packages/core/dist/learning/types.js.map +1 -1
  1086. package/packages/core/dist/notifications/focus.d.ts +42 -0
  1087. package/packages/core/dist/notifications/focus.d.ts.map +1 -0
  1088. package/packages/core/dist/notifications/focus.js +150 -0
  1089. package/packages/core/dist/notifications/focus.js.map +1 -0
  1090. package/packages/core/dist/notifications/index.d.ts +2 -0
  1091. package/packages/core/dist/notifications/index.d.ts.map +1 -1
  1092. package/packages/core/dist/notifications/index.js +2 -0
  1093. package/packages/core/dist/notifications/index.js.map +1 -1
  1094. package/packages/core/dist/notifications/notify.d.ts +66 -7
  1095. package/packages/core/dist/notifications/notify.d.ts.map +1 -1
  1096. package/packages/core/dist/notifications/notify.js +166 -39
  1097. package/packages/core/dist/notifications/notify.js.map +1 -1
  1098. package/packages/core/dist/notifications/store.d.ts +6 -4
  1099. package/packages/core/dist/notifications/store.d.ts.map +1 -1
  1100. package/packages/core/dist/notifications/store.js +26 -23
  1101. package/packages/core/dist/notifications/store.js.map +1 -1
  1102. package/packages/core/dist/notifications/topic.d.ts +25 -0
  1103. package/packages/core/dist/notifications/topic.d.ts.map +1 -0
  1104. package/packages/core/dist/notifications/topic.js +116 -0
  1105. package/packages/core/dist/notifications/topic.js.map +1 -0
  1106. package/packages/core/dist/notifications/types.d.ts +50 -3
  1107. package/packages/core/dist/notifications/types.d.ts.map +1 -1
  1108. package/packages/core/dist/notifications/types.js +12 -0
  1109. package/packages/core/dist/notifications/types.js.map +1 -1
  1110. package/packages/core/dist/onboarding/language-tag.d.ts +12 -0
  1111. package/packages/core/dist/onboarding/language-tag.d.ts.map +1 -0
  1112. package/packages/core/dist/onboarding/language-tag.js +64 -0
  1113. package/packages/core/dist/onboarding/language-tag.js.map +1 -0
  1114. package/packages/core/dist/pages/__fixtures__/demo.d.ts +11 -0
  1115. package/packages/core/dist/pages/__fixtures__/demo.d.ts.map +1 -1
  1116. package/packages/core/dist/pages/__fixtures__/demo.js +23 -1
  1117. package/packages/core/dist/pages/__fixtures__/demo.js.map +1 -1
  1118. package/packages/core/dist/pages.d.ts +204 -5
  1119. package/packages/core/dist/pages.d.ts.map +1 -1
  1120. package/packages/core/dist/pages.js +244 -12
  1121. package/packages/core/dist/pages.js.map +1 -1
  1122. package/packages/core/dist/plugin/author.d.ts +42 -0
  1123. package/packages/core/dist/plugin/author.d.ts.map +1 -0
  1124. package/packages/core/dist/plugin/author.js +77 -0
  1125. package/packages/core/dist/plugin/author.js.map +1 -0
  1126. package/packages/core/dist/plugin/index.d.ts +11 -6
  1127. package/packages/core/dist/plugin/index.d.ts.map +1 -1
  1128. package/packages/core/dist/plugin/index.js +3 -0
  1129. package/packages/core/dist/plugin/index.js.map +1 -1
  1130. package/packages/core/dist/plugin/version.d.ts +1 -1
  1131. package/packages/core/dist/plugin/version.d.ts.map +1 -1
  1132. package/packages/core/dist/plugin/version.js +1 -1
  1133. package/packages/core/dist/plugin/version.js.map +1 -1
  1134. package/packages/core/dist/plugins/record.d.ts +8 -0
  1135. package/packages/core/dist/plugins/record.d.ts.map +1 -1
  1136. package/packages/core/dist/plugins/record.js +17 -0
  1137. package/packages/core/dist/plugins/record.js.map +1 -1
  1138. package/packages/core/dist/plugins/types.d.ts +7 -0
  1139. package/packages/core/dist/plugins/types.d.ts.map +1 -1
  1140. package/packages/core/dist/plugins/types.js.map +1 -1
  1141. package/packages/core/dist/provider-accounts.d.ts +31 -0
  1142. package/packages/core/dist/provider-accounts.d.ts.map +1 -1
  1143. package/packages/core/dist/registry.d.ts +39 -1
  1144. package/packages/core/dist/registry.d.ts.map +1 -1
  1145. package/packages/core/dist/registry.js +202 -36
  1146. package/packages/core/dist/registry.js.map +1 -1
  1147. package/packages/core/dist/scheduler/materialize.js +1 -1
  1148. package/packages/core/dist/scheduler/missions.d.ts +10 -0
  1149. package/packages/core/dist/scheduler/missions.d.ts.map +1 -1
  1150. package/packages/core/dist/scheduler/missions.js +29 -1
  1151. package/packages/core/dist/scheduler/missions.js.map +1 -1
  1152. package/packages/core/dist/scheduler/types.d.ts +7 -0
  1153. package/packages/core/dist/scheduler/types.d.ts.map +1 -1
  1154. package/packages/core/dist/scheduler/types.js +1 -0
  1155. package/packages/core/dist/scheduler/types.js.map +1 -1
  1156. package/packages/core/dist/secrets/scrub.d.ts +2 -0
  1157. package/packages/core/dist/secrets/scrub.d.ts.map +1 -1
  1158. package/packages/core/dist/secrets/scrub.js +29 -0
  1159. package/packages/core/dist/secrets/scrub.js.map +1 -1
  1160. package/packages/core/dist/tools.d.ts +44 -1
  1161. package/packages/core/dist/tools.d.ts.map +1 -1
  1162. package/packages/core/dist/tools.js.map +1 -1
  1163. package/packages/core/dist/views.d.ts +190 -15
  1164. package/packages/core/dist/views.d.ts.map +1 -1
  1165. package/packages/core/dist/views.js +56 -1
  1166. package/packages/core/dist/views.js.map +1 -1
  1167. package/packages/core/migrations/050_notification_topic.sql +8 -0
  1168. package/packages/core/migrations/051_notification_focus.sql +20 -0
  1169. package/packages/core/migrations/052_mission_paused_reason.sql +6 -0
  1170. package/packages/core/package.json +2 -0
  1171. package/packages/gateway/assets/mascot/core-idle.tgs +0 -0
  1172. package/packages/gateway/assets/mascot/core-working.tgs +0 -0
  1173. package/packages/gateway/dist/.tsbuildinfo +1 -1
  1174. package/packages/gateway/dist/agents/canvas.d.ts +2 -2
  1175. package/packages/gateway/dist/agents/canvas.d.ts.map +1 -1
  1176. package/packages/gateway/dist/agents/canvas.js.map +1 -1
  1177. package/packages/gateway/dist/agents/catalog.d.ts +6 -0
  1178. package/packages/gateway/dist/agents/catalog.d.ts.map +1 -1
  1179. package/packages/gateway/dist/agents/catalog.js +31 -6
  1180. package/packages/gateway/dist/agents/catalog.js.map +1 -1
  1181. package/packages/gateway/dist/agents/delegation.d.ts +20 -3
  1182. package/packages/gateway/dist/agents/delegation.d.ts.map +1 -1
  1183. package/packages/gateway/dist/agents/delegation.js +38 -12
  1184. package/packages/gateway/dist/agents/delegation.js.map +1 -1
  1185. package/packages/gateway/dist/agents/platform.d.ts +43 -13
  1186. package/packages/gateway/dist/agents/platform.d.ts.map +1 -1
  1187. package/packages/gateway/dist/agents/platform.js +97 -3
  1188. package/packages/gateway/dist/agents/platform.js.map +1 -1
  1189. package/packages/gateway/dist/agents/starter-team.d.ts +59 -0
  1190. package/packages/gateway/dist/agents/starter-team.d.ts.map +1 -0
  1191. package/packages/gateway/dist/agents/starter-team.js +156 -0
  1192. package/packages/gateway/dist/agents/starter-team.js.map +1 -0
  1193. package/packages/gateway/dist/anthropic-accounts.d.ts.map +1 -1
  1194. package/packages/gateway/dist/anthropic-accounts.js +9 -20
  1195. package/packages/gateway/dist/anthropic-accounts.js.map +1 -1
  1196. package/packages/gateway/dist/bootstrap.d.ts +3 -0
  1197. package/packages/gateway/dist/bootstrap.d.ts.map +1 -1
  1198. package/packages/gateway/dist/bootstrap.js +58 -2
  1199. package/packages/gateway/dist/bootstrap.js.map +1 -1
  1200. package/packages/gateway/dist/codex-accounts.d.ts +7 -1
  1201. package/packages/gateway/dist/codex-accounts.d.ts.map +1 -1
  1202. package/packages/gateway/dist/codex-accounts.js +25 -26
  1203. package/packages/gateway/dist/codex-accounts.js.map +1 -1
  1204. package/packages/gateway/dist/mcp/requests.d.ts +8 -1
  1205. package/packages/gateway/dist/mcp/requests.d.ts.map +1 -1
  1206. package/packages/gateway/dist/mcp/requests.js +8 -1
  1207. package/packages/gateway/dist/mcp/requests.js.map +1 -1
  1208. package/packages/gateway/dist/missions/goals-page.d.ts.map +1 -1
  1209. package/packages/gateway/dist/missions/goals-page.js +57 -0
  1210. package/packages/gateway/dist/missions/goals-page.js.map +1 -1
  1211. package/packages/gateway/dist/missions-cli.d.ts.map +1 -1
  1212. package/packages/gateway/dist/missions-cli.js +6 -3
  1213. package/packages/gateway/dist/missions-cli.js.map +1 -1
  1214. package/packages/gateway/dist/plugins/approve.d.ts.map +1 -1
  1215. package/packages/gateway/dist/plugins/approve.js +54 -11
  1216. package/packages/gateway/dist/plugins/approve.js.map +1 -1
  1217. package/packages/gateway/dist/plugins/index.d.ts +1 -0
  1218. package/packages/gateway/dist/plugins/index.d.ts.map +1 -1
  1219. package/packages/gateway/dist/plugins/index.js +1 -0
  1220. package/packages/gateway/dist/plugins/index.js.map +1 -1
  1221. package/packages/gateway/dist/plugins/load.d.ts +5 -0
  1222. package/packages/gateway/dist/plugins/load.d.ts.map +1 -1
  1223. package/packages/gateway/dist/plugins/load.js +14 -1
  1224. package/packages/gateway/dist/plugins/load.js.map +1 -1
  1225. package/packages/gateway/dist/plugins/npm.d.ts +5 -1
  1226. package/packages/gateway/dist/plugins/npm.d.ts.map +1 -1
  1227. package/packages/gateway/dist/plugins/npm.js +6 -0
  1228. package/packages/gateway/dist/plugins/npm.js.map +1 -1
  1229. package/packages/gateway/dist/plugins/provenance.d.ts.map +1 -1
  1230. package/packages/gateway/dist/plugins/provenance.js +10 -3
  1231. package/packages/gateway/dist/plugins/provenance.js.map +1 -1
  1232. package/packages/gateway/dist/plugins/scaffold.d.ts +23 -4
  1233. package/packages/gateway/dist/plugins/scaffold.d.ts.map +1 -1
  1234. package/packages/gateway/dist/plugins/scaffold.js +130 -21
  1235. package/packages/gateway/dist/plugins/scaffold.js.map +1 -1
  1236. package/packages/gateway/dist/plugins/stage.d.ts +41 -2
  1237. package/packages/gateway/dist/plugins/stage.d.ts.map +1 -1
  1238. package/packages/gateway/dist/plugins/stage.js +137 -9
  1239. package/packages/gateway/dist/plugins/stage.js.map +1 -1
  1240. package/packages/gateway/dist/plugins/toggle.d.ts +21 -0
  1241. package/packages/gateway/dist/plugins/toggle.d.ts.map +1 -0
  1242. package/packages/gateway/dist/plugins/toggle.js +86 -0
  1243. package/packages/gateway/dist/plugins/toggle.js.map +1 -0
  1244. package/packages/gateway/dist/plugins-cli.d.ts +23 -3
  1245. package/packages/gateway/dist/plugins-cli.d.ts.map +1 -1
  1246. package/packages/gateway/dist/plugins-cli.js +102 -10
  1247. package/packages/gateway/dist/plugins-cli.js.map +1 -1
  1248. package/packages/gateway/dist/provider-accounts.d.ts.map +1 -1
  1249. package/packages/gateway/dist/provider-accounts.js +31 -3
  1250. package/packages/gateway/dist/provider-accounts.js.map +1 -1
  1251. package/packages/gateway/dist/provider-diagnostics.d.ts +14 -2
  1252. package/packages/gateway/dist/provider-diagnostics.d.ts.map +1 -1
  1253. package/packages/gateway/dist/provider-diagnostics.js +25 -9
  1254. package/packages/gateway/dist/provider-diagnostics.js.map +1 -1
  1255. package/packages/gateway/dist/serve.js +3 -3
  1256. package/packages/gateway/dist/serve.js.map +1 -1
  1257. package/packages/gateway/dist/speech-cli.d.ts +13 -0
  1258. package/packages/gateway/dist/speech-cli.d.ts.map +1 -1
  1259. package/packages/gateway/dist/speech-cli.js +40 -1
  1260. package/packages/gateway/dist/speech-cli.js.map +1 -1
  1261. package/packages/gateway/dist/telegram/api.d.ts +49 -0
  1262. package/packages/gateway/dist/telegram/api.d.ts.map +1 -1
  1263. package/packages/gateway/dist/telegram/api.js +99 -0
  1264. package/packages/gateway/dist/telegram/api.js.map +1 -1
  1265. package/packages/gateway/dist/telegram/focus.d.ts +27 -0
  1266. package/packages/gateway/dist/telegram/focus.d.ts.map +1 -0
  1267. package/packages/gateway/dist/telegram/focus.js +72 -0
  1268. package/packages/gateway/dist/telegram/focus.js.map +1 -0
  1269. package/packages/gateway/dist/telegram/main.d.ts.map +1 -1
  1270. package/packages/gateway/dist/telegram/main.js +18 -0
  1271. package/packages/gateway/dist/telegram/main.js.map +1 -1
  1272. package/packages/gateway/dist/telegram/outbound.d.ts +5 -0
  1273. package/packages/gateway/dist/telegram/outbound.d.ts.map +1 -1
  1274. package/packages/gateway/dist/telegram/outbound.js +10 -0
  1275. package/packages/gateway/dist/telegram/outbound.js.map +1 -1
  1276. package/packages/gateway/dist/telegram/stickers.d.ts +30 -0
  1277. package/packages/gateway/dist/telegram/stickers.d.ts.map +1 -0
  1278. package/packages/gateway/dist/telegram/stickers.js +146 -0
  1279. package/packages/gateway/dist/telegram/stickers.js.map +1 -0
  1280. package/packages/gateway/dist/telegram/surface.d.ts +8 -0
  1281. package/packages/gateway/dist/telegram/surface.d.ts.map +1 -1
  1282. package/packages/gateway/dist/telegram/surface.js +60 -4
  1283. package/packages/gateway/dist/telegram/surface.js.map +1 -1
  1284. package/packages/gateway/dist/tips/engine.d.ts +75 -0
  1285. package/packages/gateway/dist/tips/engine.d.ts.map +1 -0
  1286. package/packages/gateway/dist/tips/engine.js +135 -0
  1287. package/packages/gateway/dist/tips/engine.js.map +1 -0
  1288. package/packages/gateway/dist/tips/facts.d.ts +69 -0
  1289. package/packages/gateway/dist/tips/facts.d.ts.map +1 -0
  1290. package/packages/gateway/dist/tips/facts.js +104 -0
  1291. package/packages/gateway/dist/tips/facts.js.map +1 -0
  1292. package/packages/gateway/dist/tips/route.d.ts +25 -0
  1293. package/packages/gateway/dist/tips/route.d.ts.map +1 -0
  1294. package/packages/gateway/dist/tips/route.js +96 -0
  1295. package/packages/gateway/dist/tips/route.js.map +1 -0
  1296. package/packages/gateway/dist/tips/rules.d.ts +33 -0
  1297. package/packages/gateway/dist/tips/rules.d.ts.map +1 -0
  1298. package/packages/gateway/dist/tips/rules.js +54 -0
  1299. package/packages/gateway/dist/tips/rules.js.map +1 -0
  1300. package/packages/gateway/dist/web/agent-offers.d.ts +30 -0
  1301. package/packages/gateway/dist/web/agent-offers.d.ts.map +1 -1
  1302. package/packages/gateway/dist/web/agent-offers.js +64 -1
  1303. package/packages/gateway/dist/web/agent-offers.js.map +1 -1
  1304. package/packages/gateway/dist/web/connections.d.ts +83 -0
  1305. package/packages/gateway/dist/web/connections.d.ts.map +1 -0
  1306. package/packages/gateway/dist/web/connections.js +270 -0
  1307. package/packages/gateway/dist/web/connections.js.map +1 -0
  1308. package/packages/gateway/dist/web/notifications.d.ts +8 -1
  1309. package/packages/gateway/dist/web/notifications.d.ts.map +1 -1
  1310. package/packages/gateway/dist/web/notifications.js +23 -1
  1311. package/packages/gateway/dist/web/notifications.js.map +1 -1
  1312. package/packages/gateway/dist/web/onboarding.d.ts +1 -1
  1313. package/packages/gateway/dist/web/onboarding.d.ts.map +1 -1
  1314. package/packages/gateway/dist/web/onboarding.js +5 -4
  1315. package/packages/gateway/dist/web/onboarding.js.map +1 -1
  1316. package/packages/gateway/dist/web/plugins.d.ts +18 -1
  1317. package/packages/gateway/dist/web/plugins.d.ts.map +1 -1
  1318. package/packages/gateway/dist/web/plugins.js +54 -6
  1319. package/packages/gateway/dist/web/plugins.js.map +1 -1
  1320. package/packages/gateway/dist/web/profile.d.ts +2 -0
  1321. package/packages/gateway/dist/web/profile.d.ts.map +1 -1
  1322. package/packages/gateway/dist/web/profile.js +5 -3
  1323. package/packages/gateway/dist/web/profile.js.map +1 -1
  1324. package/packages/gateway/dist/web/rail.d.ts +33 -0
  1325. package/packages/gateway/dist/web/rail.d.ts.map +1 -0
  1326. package/packages/gateway/dist/web/rail.js +45 -0
  1327. package/packages/gateway/dist/web/rail.js.map +1 -0
  1328. package/packages/gateway/dist/web/read.d.ts +52 -0
  1329. package/packages/gateway/dist/web/read.d.ts.map +1 -1
  1330. package/packages/gateway/dist/web/read.js +88 -5
  1331. package/packages/gateway/dist/web/read.js.map +1 -1
  1332. package/packages/gateway/dist/web/server.d.ts +6 -0
  1333. package/packages/gateway/dist/web/server.d.ts.map +1 -1
  1334. package/packages/gateway/dist/web/server.js +107 -8
  1335. package/packages/gateway/dist/web/server.js.map +1 -1
  1336. package/packages/gateway/dist/web/static.d.ts.map +1 -1
  1337. package/packages/gateway/dist/web/static.js +1 -0
  1338. package/packages/gateway/dist/web/static.js.map +1 -1
  1339. package/packages/gateway/dist/web/version.d.ts +2 -0
  1340. package/packages/gateway/dist/web/version.d.ts.map +1 -1
  1341. package/packages/gateway/dist/web/version.js +27 -0
  1342. package/packages/gateway/dist/web/version.js.map +1 -1
  1343. package/packages/gateway/dist/web/write.d.ts +5 -0
  1344. package/packages/gateway/dist/web/write.d.ts.map +1 -1
  1345. package/packages/gateway/dist/web/write.js +20 -1
  1346. package/packages/gateway/dist/web/write.js.map +1 -1
  1347. package/packages/gateway/package.json +4 -1
  1348. package/packages/gateway/src/agents/starter/keeper/agent.md +31 -0
  1349. package/packages/gateway/src/agents/starter/keeper/skills/keeping-a-history.md +22 -0
  1350. package/packages/gateway/src/agents/starter/planner/agent.md +30 -0
  1351. package/packages/gateway/src/agents/starter/planner/skills/holding-a-follow-up.md +17 -0
  1352. package/packages/gateway/src/agents/starter/planner/skills/writing-the-morning-brief.md +32 -0
  1353. package/packages/gateway/src/agents/starter/scout/agent.md +33 -0
  1354. package/packages/gateway/src/agents/starter/scout/skills/answering-with-sources.md +23 -0
  1355. package/packages/gateway/src/agents/starter/scout/skills/the-web-is-evidence.md +25 -0
  1356. package/packages/install/dist/.tsbuildinfo +1 -1
  1357. package/packages/runtime/dist/.tsbuildinfo +1 -1
  1358. package/packages/runtime/dist/anthropic-oauth.d.ts.map +1 -1
  1359. package/packages/runtime/dist/anthropic-oauth.js +38 -73
  1360. package/packages/runtime/dist/anthropic-oauth.js.map +1 -1
  1361. package/packages/runtime/dist/codex-direct.d.ts +39 -0
  1362. package/packages/runtime/dist/codex-direct.d.ts.map +1 -1
  1363. package/packages/runtime/dist/codex-direct.js +122 -0
  1364. package/packages/runtime/dist/codex-direct.js.map +1 -1
  1365. package/packages/runtime/dist/codex-oauth.d.ts +0 -12
  1366. package/packages/runtime/dist/codex-oauth.d.ts.map +1 -1
  1367. package/packages/runtime/dist/codex-oauth.js +32 -45
  1368. package/packages/runtime/dist/codex-oauth.js.map +1 -1
  1369. package/packages/runtime/dist/delegate.d.ts.map +1 -1
  1370. package/packages/runtime/dist/delegate.js +4 -2
  1371. package/packages/runtime/dist/delegate.js.map +1 -1
  1372. package/packages/runtime/dist/index.d.ts +2 -0
  1373. package/packages/runtime/dist/index.d.ts.map +1 -1
  1374. package/packages/runtime/dist/index.js +2 -0
  1375. package/packages/runtime/dist/index.js.map +1 -1
  1376. package/packages/runtime/dist/oauth-port.d.ts +68 -0
  1377. package/packages/runtime/dist/oauth-port.d.ts.map +1 -0
  1378. package/packages/runtime/dist/oauth-port.js +51 -0
  1379. package/packages/runtime/dist/oauth-port.js.map +1 -0
  1380. package/packages/runtime/dist/oauth.d.ts +255 -0
  1381. package/packages/runtime/dist/oauth.d.ts.map +1 -0
  1382. package/packages/runtime/dist/oauth.js +535 -0
  1383. package/packages/runtime/dist/oauth.js.map +1 -0
  1384. package/packages/tools/artifacts/dist/.tsbuildinfo +1 -1
  1385. package/packages/tools/browser/dist/.tsbuildinfo +1 -1
  1386. package/packages/tools/email/dist/.tsbuildinfo +1 -1
  1387. package/packages/tools/email/dist/types.d.ts +2 -2
  1388. package/packages/tools/email/dist/types.d.ts.map +1 -1
  1389. package/packages/tools/host/dist/.tsbuildinfo +1 -1
  1390. package/packages/tools/mcp/dist/.tsbuildinfo +1 -0
  1391. package/packages/tools/mcp/dist/catalog.d.ts +26 -0
  1392. package/packages/tools/mcp/dist/catalog.d.ts.map +1 -0
  1393. package/packages/tools/mcp/dist/catalog.js +17 -0
  1394. package/packages/tools/mcp/dist/catalog.js.map +1 -0
  1395. package/packages/tools/mcp/dist/fetch.d.ts +44 -0
  1396. package/packages/tools/mcp/dist/fetch.d.ts.map +1 -0
  1397. package/packages/tools/mcp/dist/fetch.js +88 -0
  1398. package/packages/tools/mcp/dist/fetch.js.map +1 -0
  1399. package/packages/tools/mcp/dist/index.d.ts +27 -0
  1400. package/packages/tools/mcp/dist/index.d.ts.map +1 -0
  1401. package/packages/tools/mcp/dist/index.js +74 -0
  1402. package/packages/tools/mcp/dist/index.js.map +1 -0
  1403. package/packages/tools/mcp/dist/output.d.ts +38 -0
  1404. package/packages/tools/mcp/dist/output.d.ts.map +1 -0
  1405. package/packages/tools/mcp/dist/output.js +90 -0
  1406. package/packages/tools/mcp/dist/output.js.map +1 -0
  1407. package/packages/tools/mcp/dist/ports.d.ts +105 -0
  1408. package/packages/tools/mcp/dist/ports.d.ts.map +1 -0
  1409. package/packages/tools/mcp/dist/ports.js +9 -0
  1410. package/packages/tools/mcp/dist/ports.js.map +1 -0
  1411. package/packages/tools/mcp/dist/service.d.ts +220 -0
  1412. package/packages/tools/mcp/dist/service.d.ts.map +1 -0
  1413. package/packages/tools/mcp/dist/service.js +742 -0
  1414. package/packages/tools/mcp/dist/service.js.map +1 -0
  1415. package/packages/tools/mcp/dist/session.d.ts +50 -0
  1416. package/packages/tools/mcp/dist/session.d.ts.map +1 -0
  1417. package/packages/tools/mcp/dist/session.js +108 -0
  1418. package/packages/tools/mcp/dist/session.js.map +1 -0
  1419. package/packages/tools/mcp/dist/store.d.ts +70 -0
  1420. package/packages/tools/mcp/dist/store.d.ts.map +1 -0
  1421. package/packages/tools/mcp/dist/store.js +78 -0
  1422. package/packages/tools/mcp/dist/store.js.map +1 -0
  1423. package/packages/tools/mcp/dist/testing/fake.d.ts +51 -0
  1424. package/packages/tools/mcp/dist/testing/fake.d.ts.map +1 -0
  1425. package/packages/tools/mcp/dist/testing/fake.js +147 -0
  1426. package/packages/tools/mcp/dist/testing/fake.js.map +1 -0
  1427. package/packages/tools/mcp/dist/tiers.d.ts +51 -0
  1428. package/packages/tools/mcp/dist/tiers.d.ts.map +1 -0
  1429. package/packages/tools/mcp/dist/tiers.js +106 -0
  1430. package/packages/tools/mcp/dist/tiers.js.map +1 -0
  1431. package/packages/tools/mcp/dist/tokens.d.ts +35 -0
  1432. package/packages/tools/mcp/dist/tokens.d.ts.map +1 -0
  1433. package/packages/tools/mcp/dist/tokens.js +75 -0
  1434. package/packages/tools/mcp/dist/tokens.js.map +1 -0
  1435. package/packages/tools/mcp/migrations/001_connections.sql +49 -0
  1436. package/packages/tools/mcp/migrations/002_review_again.sql +15 -0
  1437. package/packages/tools/mcp/package.json +34 -0
  1438. package/packages/tools/memory/dist/.tsbuildinfo +1 -1
  1439. package/packages/tools/web/dist/.tsbuildinfo +1 -1
  1440. package/packages/web/dist/apple-touch-icon.png +0 -0
  1441. package/packages/web/dist/assets/index-4hpqlMjL.css +1 -0
  1442. package/packages/web/dist/assets/index-B8crjABB.js +125 -0
  1443. package/packages/web/dist/assets/lottie_light-e1djomjW.js +9 -0
  1444. package/packages/web/dist/build.json +1 -0
  1445. package/packages/web/dist/icon-192.png +0 -0
  1446. package/packages/web/dist/icon-512.png +0 -0
  1447. package/packages/web/dist/icon-maskable-512.png +0 -0
  1448. package/packages/web/dist/index.html +6 -3
  1449. package/packages/web/dist/manifest.webmanifest +16 -0
  1450. package/packages/web/dist/mascot/README.md +5 -0
  1451. package/packages/web/dist/mascot/anim/core-idle.json +1 -0
  1452. package/packages/web/dist/mascot/anim/core-working.json +1 -0
  1453. package/packages/web/dist/precache.json +28 -0
  1454. package/packages/web/dist/sw.js +106 -0
  1455. package/packages/web/dist/assets/index-D5cRFcgm.css +0 -1
  1456. package/packages/web/dist/assets/index-GCFB1vBV.js +0 -125
@@ -6,20 +6,22 @@
6
6
  *
7
7
  * now the owner is on the dashboard → shown there; if nobody has seen it
8
8
  * in ten minutes, the default channel anyway. Away → the default
9
- * channel at once. Quiet hours hold it until they end, except
10
- * approvals and questions.
9
+ * channel at once. A focus (focus.ts) holds what its mode holds
10
+ * until it ends; approvals and questions always go.
11
11
  * today held until the end of the owner's day, then one message for all.
12
12
  * digest stored; the recap reads it.
13
13
  *
14
- * `notificationsTick` does the later half: escalations, the end of quiet
15
- * hours, the end of the day. Every transition is one UPDATE guarded by the
14
+ * `notificationsTick` does the later half: escalations, the end of a focus
15
+ * (one message for what waited), the end of the day. Every transition is one UPDATE guarded by the
16
16
  * state it leaves, so two ticks never send one row twice.
17
17
  */
18
18
  import { getOwnerProfile } from '../onboarding/store.js';
19
19
  import { scrubText } from '../secrets/scrub.js';
20
- import { isKnownTimezone, localDateString, localMinutesOfDay, minutesOfLocalTime, nextLocalTime, timezoneFromEnv, } from '../time.js';
20
+ import { isKnownTimezone, localDateString, nextLocalTime, timezoneFromEnv } from '../time.js';
21
21
  import { channelFor, deliverTo } from './channels.js';
22
- import { NOTIFICATION_COLUMNS, presentSurfaces, readNotificationSettings, toNotification, } from './store.js';
22
+ import { activeFocus, FOCUS_LABELS, focusEnd, focusHolds, heldKinds, scheduledFocus } from './focus.js';
23
+ import { notificationTopic, sameTopic, TOPIC_WINDOW_MS } from './topic.js';
24
+ import { NOTIFICATION_COLUMNS, presentSurfaces, readNotificationSettings, toNotification, writeFocus, } from './store.js';
23
25
  import { ALWAYS_REACH, NOTIFICATION_KINDS, NOTIFICATION_URGENCIES, } from './types.js';
24
26
  /** A `now` message shown on the dashboard goes to the channel after this long unseen. */
25
27
  export const ESCALATE_AFTER_MS = 10 * 60_000;
@@ -40,17 +42,11 @@ async function ownerTimezone(db, deps) {
40
42
  }
41
43
  return deps.timezone ?? timezoneFromEnv();
42
44
  }
43
- /** Inside quiet hours at `now`, and the instant they end; null when there are none or it is not quiet. */
44
- export function quietUntil(settings, now, timezone) {
45
- if (!settings.quietStart || !settings.quietEnd)
46
- return null;
47
- const start = minutesOfLocalTime(settings.quietStart);
48
- const end = minutesOfLocalTime(settings.quietEnd);
49
- const at = localMinutesOfDay(now, timezone);
50
- const quiet = start < end ? at >= start && at < end : at >= start || at < end;
51
- return quiet ? nextLocalTime(now, timezone, settings.quietEnd) : null;
52
- }
53
- function route(message, ctx) {
45
+ /**
46
+ * Where a message goes, before any channel is asked. Exported for the
47
+ * routing table's tests; `notifyOwner` is the one caller.
48
+ */
49
+ export function route(message, ctx) {
54
50
  const always = ALWAYS_REACH.has(message.kind);
55
51
  if (!always && ctx.settings.perKind[message.kind] === 'off')
56
52
  return { state: 'stored' };
@@ -62,9 +58,9 @@ function route(message, ctx) {
62
58
  if (ctx.onDashboard) {
63
59
  return { state: 'shown', dueAt: new Date(ctx.now.getTime() + ESCALATE_AFTER_MS), channel: 'dashboard' };
64
60
  }
65
- const quiet = always ? null : quietUntil(ctx.settings, ctx.now, ctx.timezone);
66
- if (quiet)
67
- return { state: 'held', dueAt: quiet };
61
+ if (ctx.focus && focusHolds(ctx.focus.mode, message.kind, message.urgency)) {
62
+ return { state: 'held', dueAt: ctx.focus.until ? new Date(ctx.focus.until) : null, heldFor: ctx.focus.mode };
63
+ }
68
64
  return { state: 'deliver' };
69
65
  }
70
66
  function checkMessage(message) {
@@ -142,6 +138,15 @@ export async function notifyOwner(db, deps, message) {
142
138
  where dedupe_key = $1 and updated_at > $2`, [dedupeKey, new Date(now.getTime() - 3_600_000)]);
143
139
  fires = Number(counted.rows[0]?.n ?? 0);
144
140
  }
141
+ // The same thing from another agent (or unkeyed, again): folded into the
142
+ // open row that already says it, and never delivered a second time.
143
+ // Approvals and questions carry their own action and are never folded.
144
+ const topic = always ? null : notificationTopic({ title: baseTitle, text, agentId: message.agentId ?? null }) || null;
145
+ if (!existing && topic) {
146
+ const folded = await foldIntoTopic(db, { ...message, title: baseTitle, text, dedupeKey, topic }, now);
147
+ if (folded)
148
+ return folded;
149
+ }
145
150
  // The rate rule. Approvals and questions are never lowered.
146
151
  let urgency = message.urgency;
147
152
  let lowered = existing?.lowered ?? false;
@@ -151,7 +156,8 @@ export async function notifyOwner(db, deps, message) {
151
156
  }
152
157
  const title = lowered ? `${baseTitle} ${LOWERED_SENTENCE}` : baseTitle;
153
158
  const onDashboard = (await presentSurfaces(db, now)).includes(DASHBOARD_SURFACE);
154
- let next = route({ kind: message.kind, urgency }, { now, timezone, settings, onDashboard });
159
+ const focus = activeFocus(settings, now, timezone);
160
+ let next = route({ kind: message.kind, urgency }, { now, timezone, settings, onDashboard, focus });
155
161
  // A repeat shown on the dashboard keeps the clock it started, unless the
156
162
  // owner had already seen the earlier one: then the new content is unseen.
157
163
  if (next.state === 'shown' && existing?.state === 'shown' && existing.seenAt === null && existing.dueAt) {
@@ -160,16 +166,18 @@ export async function notifyOwner(db, deps, message) {
160
166
  const state = next.state === 'deliver' ? 'sending' : next.state;
161
167
  const dueAt = 'dueAt' in next ? next.dueAt : null;
162
168
  const channel = next.state === 'shown' ? 'dashboard' : null;
169
+ const heldFor = next.state === 'held' ? next.heldFor ?? null : null;
163
170
  const offers = JSON.stringify(message.offers ?? []);
164
171
  let row;
165
172
  if (existing) {
166
173
  const { rows } = await db.query(`update core.owner_notifications
167
174
  set urgency = $2, title = $3, text = $4, link = $5, offers = $6::jsonb, agent_id = coalesce($7, agent_id),
168
- plugin_id = coalesce($8, plugin_id), action_id = coalesce($9::uuid, action_id), state = $10, due_at = $11,
169
- channel = $12, fired_count = fired_count + 1, lowered = $13, seen_at = null, error = null, updated_at = $14
175
+ topic = coalesce($15, topic), plugin_id = coalesce($8, plugin_id), action_id = coalesce($9::uuid, action_id), state = $10, due_at = $11,
176
+ channel = $12, fired_count = fired_count + 1, lowered = $13, seen_at = null, error = null, updated_at = $14,
177
+ held_for = $16
170
178
  where id = $1 and sent_at is null and state in ('shown', 'held', 'stored', 'failed')
171
179
  returning ${NOTIFICATION_COLUMNS}`, [existing.id, urgency, title, text, message.link?.route ?? null, offers, message.agentId ?? null,
172
- message.pluginId ?? null, message.actionId ?? null, state, dueAt, channel, lowered, now]);
180
+ message.pluginId ?? null, message.actionId ?? null, state, dueAt, channel, lowered, now, topic, heldFor]);
173
181
  if (rows[0])
174
182
  row = toNotification(rows[0]);
175
183
  else
@@ -178,10 +186,10 @@ export async function notifyOwner(db, deps, message) {
178
186
  if (!existing) {
179
187
  const { rows } = await db.query(`insert into core.owner_notifications
180
188
  (kind, urgency, title, text, link, offers, dedupe_key, agent_id, plugin_id, action_id, state, due_at, channel,
181
- lowered, created_at, updated_at)
182
- values ($1, $2, $3, $4, $5, $6::jsonb, $7, $8, $9, $10::uuid, $11, $12, $13, $14, $15, $15)
189
+ lowered, created_at, updated_at, topic, held_for)
190
+ values ($1, $2, $3, $4, $5, $6::jsonb, $7, $8, $9, $10::uuid, $11, $12, $13, $14, $15, $15, $16, $17)
183
191
  returning ${NOTIFICATION_COLUMNS}`, [message.kind, urgency, title, text, message.link?.route ?? null, offers, dedupeKey, message.agentId ?? null,
184
- message.pluginId ?? null, message.actionId ?? null, state, dueAt, channel, lowered, now]);
192
+ message.pluginId ?? null, message.actionId ?? null, state, dueAt, channel, lowered, now, topic, heldFor]);
185
193
  row = toNotification(rows[0]);
186
194
  }
187
195
  row = row;
@@ -198,28 +206,59 @@ export async function notifyOwner(db, deps, message) {
198
206
  const sent = await sendClaimed(db, row, settings, now);
199
207
  return { ...result, ...sent };
200
208
  }
209
+ /**
210
+ * Fold a message into the open row with the same topic, if there is one: a
211
+ * row not acted on, written or refreshed in the last 48 hours, from any agent,
212
+ * that is not an approval or a question and does not carry this message's own
213
+ * key (that one the key rule handles). The row keeps its state, so what was
214
+ * sent is not sent again and what is waiting keeps waiting; it gains the
215
+ * other agent under `also_from`, the new title and text when they say more,
216
+ * and the new time. Null when nothing matches.
217
+ */
218
+ async function foldIntoTopic(db, message, now) {
219
+ const { rows } = await db.query(`select ${NOTIFICATION_COLUMNS} from core.owner_notifications
220
+ where topic is not null and acted_at is null and created_at > $1 and kind not in ('approval', 'question')
221
+ and not (dedupe_key is not null and dedupe_key = coalesce($2, ''))
222
+ order by created_at desc limit 50`, [new Date(now.getTime() - TOPIC_WINDOW_MS), message.dedupeKey]);
223
+ const match = rows.map(toNotification).find((r) => sameTopic(r.topic, message.topic));
224
+ if (!match)
225
+ return null;
226
+ const from = message.agentId ?? message.pluginId ?? null;
227
+ const also = from && from !== (match.agentId ?? match.pluginId) && !match.alsoFrom.includes(from) ? from : null;
228
+ const longer = `${message.title}\n${message.text ?? ''}`.trim().length > `${match.title}\n${match.text ?? ''}`.trim().length;
229
+ const { rows: updated } = await db.query(`update core.owner_notifications
230
+ set title = case when $2 then $3 else title end,
231
+ text = case when $2 then $4 else text end,
232
+ also_from = case when $5::text is null then also_from else array_append(also_from, $5::text) end,
233
+ fired_count = fired_count + 1, created_at = $6, updated_at = $6
234
+ where id = $1 and acted_at is null
235
+ returning ${NOTIFICATION_COLUMNS}`, [match.id, longer, message.title, message.text, also, now]);
236
+ if (!updated[0])
237
+ return null; // Acted on between the read and the write: a new message after all.
238
+ const row = toNotification(updated[0]);
239
+ return { id: row.id, state: row.state, channel: row.channel, error: row.error, deduped: true, lowered: row.lowered };
240
+ }
201
241
  /**
202
242
  * The later half of routing: runs on the gateway's 60-second loop.
203
243
  *
204
- * 1. Quiet hours: a `now` row that falls due while it is quiet (and is not an
205
- * approval or a question) waits for the end of them.
206
- * 2. Escalation: a `now` row shown on the dashboard and not seen, or held
207
- * through quiet hours, goes to its channel.
244
+ * 1. Focus: a `now` row that falls due while a focus holds its kind waits
245
+ * for the end of the focus; when the focus ends, what waited goes out as
246
+ * one message (`settleFocus`).
247
+ * 2. Escalation: a `now` row shown on the dashboard and not seen goes to its
248
+ * channel.
208
249
  * 3. End of the day: every held `today` row goes out as one message.
209
250
  */
210
251
  export async function notificationsTick(db, deps, now = deps.now?.() ?? new Date()) {
211
252
  const timezone = await ownerTimezone(db, deps);
212
253
  const settings = await readNotificationSettings(db);
213
- const outcome = { escalated: 0, endOfDay: 0, failed: 0 };
214
- const quiet = quietUntil(settings, now, timezone);
215
- if (quiet) {
216
- await db.query(`update core.owner_notifications set state = 'held', due_at = $2, updated_at = $1
217
- where urgency = 'now' and due_at <= $1 and acted_at is null and kind not in ('approval', 'question')
218
- and ((state = 'shown' and seen_at is null) or state = 'held')`, [now, quiet]);
219
- }
254
+ const outcome = { escalated: 0, endOfDay: 0, focusEnded: 0, failed: 0 };
255
+ const settled = await settleFocus(db, settings, timezone, now);
256
+ outcome.focusEnded = settled.told;
257
+ outcome.failed += settled.failed;
258
+ // A row held by a focus waits for `settleFocus`, never for its own `due_at`.
220
259
  const { rows: claimed } = await db.query(`update core.owner_notifications set state = 'sending', updated_at = $1
221
260
  where urgency = 'now' and due_at <= $1 and acted_at is null
222
- and ((state = 'shown' and seen_at is null) or state = 'held')
261
+ and ((state = 'shown' and seen_at is null) or (state = 'held' and held_for is null))
223
262
  returning ${NOTIFICATION_COLUMNS}`, [now]);
224
263
  for (const raw of claimed) {
225
264
  const sent = await sendClaimed(db, toNotification(raw), settings, now);
@@ -260,4 +299,92 @@ export async function notificationsTick(db, deps, now = deps.now?.() ?? new Date
260
299
  }
261
300
  return outcome;
262
301
  }
302
+ /**
303
+ * Keep held rows in step with the focus in force, and say what waited when
304
+ * it ends.
305
+ *
306
+ * While a focus is on, a `now` row of a kind it holds that falls due on the
307
+ * dashboard unseen is held too, and every row it holds is dated to its end
308
+ * (a longer or shorter focus moves them all). Rows held by a focus that no
309
+ * longer holds them (it ended, was turned off, or became Urgent only) go out
310
+ * as one message on the owner's channel, "While you were in Do not disturb:
311
+ * 4 things.", one line each, and are marked sent in it; nothing held,
312
+ * nothing said. Rows the owner already dealt with are left out.
313
+ */
314
+ export async function settleFocus(db, settings, timezone, now) {
315
+ const focus = activeFocus(settings, now, timezone);
316
+ const holding = focus ? heldKinds(focus.mode) : [];
317
+ if (focus && holding.length > 0) {
318
+ await db.query(`update core.owner_notifications set state = 'held', due_at = $2, held_for = $3, updated_at = $1
319
+ where urgency = 'now' and acted_at is null and kind = any($4::text[])
320
+ and ((state = 'shown' and seen_at is null and due_at <= $1) or (state = 'held' and held_for is not null))`, [now, focus.until, focus.mode, holding]);
321
+ }
322
+ await db.query(`update core.owner_notifications set state = 'stored', updated_at = $1
323
+ where state = 'held' and held_for is not null and acted_at is not null and not (kind = any($2::text[]))`, [now, holding]);
324
+ const { rows: claimed } = await db.query(`update core.owner_notifications set state = 'sending', updated_at = $1
325
+ where state = 'held' and held_for is not null and acted_at is null and not (kind = any($2::text[]))
326
+ returning ${NOTIFICATION_COLUMNS}`, [now, holding]);
327
+ if (claimed.length === 0)
328
+ return { told: 0, failed: 0 };
329
+ const rows = claimed.map(toNotification).sort((a, b) => a.createdAt.localeCompare(b.createdAt));
330
+ const mode = rows.some((r) => r.heldFor === 'do-not-disturb') ? 'do-not-disturb' : 'urgent-only';
331
+ const message = {
332
+ id: `focus:${now.toISOString()}`,
333
+ kind: 'recap',
334
+ urgency: 'now',
335
+ title: focusSummaryTitle(mode, rows.length),
336
+ text: rows.map((r) => `- ${r.agentId ?? r.pluginId ?? 'buddi'}: ${r.title}`).join('\n'),
337
+ parts: rows.map(toDeliverable),
338
+ };
339
+ const kind = await channelFor(settings);
340
+ const answer = kind === null || kind === 'off' ? { ok: false, error: 'no channel' } : await deliverTo(kind, message);
341
+ const ids = rows.map((r) => r.id);
342
+ if (answer.ok) {
343
+ await db.query(`update core.owner_notifications set state = 'sent', channel = $2, sent_at = $3, error = null, updated_at = $3
344
+ where id = any($1::uuid[]) and state = 'sending'`, [ids, kind, now]);
345
+ return { told: rows.length, failed: 0 };
346
+ }
347
+ await db.query(`update core.owner_notifications set state = 'failed', channel = $2, error = $3, updated_at = $4
348
+ where id = any($1::uuid[]) and state = 'sending'`, [ids, kind === 'off' ? null : kind, answer.error, now]);
349
+ return { told: 0, failed: rows.length };
350
+ }
351
+ /** "While you were in Do not disturb: 4 things." */
352
+ export function focusSummaryTitle(mode, count) {
353
+ return `While you were in ${FOCUS_LABELS[mode]}: ${count} ${count === 1 ? 'thing' : 'things'}.`;
354
+ }
355
+ /** The focus in force now, for the owner menu and /focus; null when none is. */
356
+ export async function readFocusState(db, deps = {}) {
357
+ const now = deps.now?.() ?? new Date();
358
+ return activeFocus(await readNotificationSettings(db), now, await ownerTimezone(db, deps));
359
+ }
360
+ /**
361
+ * Switch the manual focus: a mode for a duration (`1h`, `3h`, `tomorrow`,
362
+ * `indefinite`), or `normal` to turn it off. Turning off while a schedule is
363
+ * on keeps it off until that schedule ends: a manual choice wins while it
364
+ * lasts. Held rows are settled at once, so turning off says what waited now,
365
+ * not at the next tick. Throws for a mode or duration that is not one.
366
+ */
367
+ export async function setFocus(db, deps, input) {
368
+ const now = deps.now?.() ?? new Date();
369
+ const timezone = await ownerTimezone(db, deps);
370
+ const settings = await readNotificationSettings(db);
371
+ let focus;
372
+ if (input.mode === 'normal') {
373
+ const scheduled = scheduledFocus(settings.schedules, now, timezone);
374
+ focus = scheduled ? { mode: 'normal', until: scheduled.until, startedAt: now.toISOString(), by: input.by } : null;
375
+ }
376
+ else if (input.mode === 'urgent-only' || input.mode === 'do-not-disturb') {
377
+ const end = focusEnd(input.duration ?? 'indefinite', now, timezone);
378
+ if (end === undefined)
379
+ throw new Error(`"${String(input.duration)}" is not a duration (1h, 3h, tomorrow or indefinite)`);
380
+ focus = { mode: input.mode, until: end?.toISOString() ?? null, startedAt: now.toISOString(), by: input.by };
381
+ }
382
+ else {
383
+ throw new Error(`"${String(input.mode)}" is not a focus mode`);
384
+ }
385
+ await writeFocus(db, focus);
386
+ const next = { ...settings, focus };
387
+ await settleFocus(db, next, timezone, now);
388
+ return activeFocus(next, now, timezone);
389
+ }
263
390
  //# sourceMappingURL=notify.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"notify.js","sourceRoot":"","sources":["../../src/notifications/notify.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"notify.js","sourceRoot":"","sources":["../../src/notifications/notify.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import type { Queryable } from '../owner.js';
2
- import { type NotificationSettings, type OwnerNotification } from './types.js';
2
+ import { type FocusSetting, type NotificationPreferences, type NotificationSettings, type OwnerNotification } from './types.js';
3
3
  /** "Present" is active on some surface within this long. */
4
4
  export declare const PRESENCE_WINDOW_MS: number;
5
5
  /** When the day's held items go out when the owner has not said. */
@@ -40,11 +40,13 @@ export declare function readNotificationSettings(db: Queryable): Promise<Notific
40
40
  */
41
41
  export declare function parseNotificationSettings(input: unknown): {
42
42
  ok: true;
43
- settings: NotificationSettings;
43
+ settings: NotificationPreferences;
44
44
  } | {
45
45
  ok: false;
46
46
  message: string;
47
47
  };
48
- /** Replace the settings, whole. */
49
- export declare function writeNotificationSettings(db: Queryable, settings: NotificationSettings): Promise<void>;
48
+ /** Replace the settings, whole, but for the manual focus, which `writeFocus` owns. */
49
+ export declare function writeNotificationSettings(db: Queryable, settings: NotificationPreferences): Promise<void>;
50
+ /** Replace the manual focus; null when none is on. */
51
+ export declare function writeFocus(db: Queryable, focus: FocusSetting | null): Promise<void>;
50
52
  //# sourceMappingURL=store.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/notifications/store.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7C,OAAO,EAIL,KAAK,oBAAoB,EACzB,KAAK,iBAAiB,EACvB,MAAM,YAAY,CAAC;AAEpB,4DAA4D;AAC5D,eAAO,MAAM,kBAAkB,QAAa,CAAC;AAE7C,oEAAoE;AACpE,eAAO,MAAM,kBAAkB,UAAU,CAAC;AAE1C,eAAO,MAAM,6BAA6B,EAAE,oBAM3C,CAAC;AAKF,eAAO,MAAM,oBAAoB,QAE+C,CAAC;AAEjF,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,iBAAiB,CAwB1E;AAMD,qCAAqC;AACrC,wBAAsB,iBAAiB,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,GAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAA;CAAO,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAOlH;AAED,wBAAwB;AACxB,wBAAsB,eAAe,CAAC,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAIlG;AAED,sFAAsF;AACtF,wBAAsB,uBAAuB,CAAC,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAOtG;AAID;;;;GAIG;AACH,wBAAsB,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,GAAE,IAAiB,GAAG,OAAO,CAAC,OAAO,CAAC,CAQlG;AAED,uDAAuD;AACvD,wBAAsB,SAAS,CAAC,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,GAAE,IAAiB,GAAG,OAAO,CAAC,OAAO,CAAC,CASnG;AAED,4FAA4F;AAC5F,wBAAsB,eAAe,CAAC,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,GAAE,IAAiB,GAAG,OAAO,CAAC,MAAM,CAAC,CASzG;AAED,iFAAiF;AACjF,wBAAsB,kBAAkB,CAAC,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,GAAE,IAAiB,GAAG,OAAO,CAAC,MAAM,CAAC,CASjH;AAMD,4EAA4E;AAC5E,wBAAsB,aAAa,CACjC,EAAE,EAAE,SAAS,EACb,OAAO,EAAE,MAAM,EACf,GAAG,GAAE,IAAiB,EACtB,KAAK,GAAE,QAAQ,GAAG,MAAiB,GAClC,OAAO,CAAC,IAAI,CAAC,CAcf;AAED,uFAAuF;AACvF,wBAAsB,eAAe,CAAC,EAAE,EAAE,SAAS,EAAE,GAAG,GAAE,IAAiB,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAQ9F;AAED,kGAAkG;AAClG,wBAAsB,YAAY,CAAC,EAAE,EAAE,SAAS,EAAE,GAAG,GAAE,IAAiB,GAAG,OAAO,CAAC,OAAO,CAAC,CAE1F;AAMD,wBAAsB,wBAAwB,CAAC,EAAE,EAAE,SAAS,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAqB3F;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,OAAO,GACb;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,QAAQ,EAAE,oBAAoB,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAqC/E;AAED,mCAAmC;AACnC,wBAAsB,yBAAyB,CAAC,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC,CAS5G"}
1
+ {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/notifications/store.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import { LOCAL_TIME } from '../time.js';
2
+ import { parseFocusSchedules, schedulesFromQuietHours, toFocusSchedules, toFocusSetting } from './focus.js';
2
3
  import { ALWAYS_REACH, NOTIFICATION_KINDS, } from './types.js';
3
4
  /** "Present" is active on some surface within this long. */
4
5
  export const PRESENCE_WINDOW_MS = 2 * 60_000;
@@ -7,13 +8,13 @@ export const DEFAULT_END_OF_DAY = '18:00';
7
8
  export const DEFAULT_NOTIFICATION_SETTINGS = {
8
9
  defaultChannel: null,
9
10
  perKind: {},
10
- quietStart: null,
11
- quietEnd: null,
11
+ schedules: [],
12
12
  endOfDay: DEFAULT_END_OF_DAY,
13
+ focus: null,
13
14
  };
14
15
  const iso = (v) => v === null || v === undefined ? null : v instanceof Date ? v.toISOString() : String(v);
15
16
  export const NOTIFICATION_COLUMNS = 'id, kind, urgency, title, text, link, offers, dedupe_key, agent_id, plugin_id, action_id, state, due_at, ' +
16
- 'channel, fired_count, lowered, created_at, sent_at, seen_at, acted_at, error';
17
+ 'channel, fired_count, lowered, topic, also_from, held_for, created_at, sent_at, seen_at, acted_at, error';
17
18
  export function toNotification(row) {
18
19
  return {
19
20
  id: String(row.id),
@@ -32,6 +33,9 @@ export function toNotification(row) {
32
33
  channel: row.channel ?? null,
33
34
  firedCount: Number(row.fired_count ?? 1),
34
35
  lowered: row.lowered === true,
36
+ topic: row.topic ?? null,
37
+ alsoFrom: Array.isArray(row.also_from) ? row.also_from.map(String) : [],
38
+ heldFor: row.held_for ?? null,
35
39
  createdAt: iso(row.created_at),
36
40
  sentAt: iso(row.sent_at),
37
41
  seenAt: iso(row.seen_at),
@@ -130,10 +134,10 @@ export async function ownerPresent(db, now = new Date()) {
130
134
  * Settings
131
135
  * ------------------------------------------------------------------ */
132
136
  export async function readNotificationSettings(db) {
133
- const { rows } = await db.query(`select default_channel, per_kind, quiet_start, quiet_end, end_of_day from core.notification_settings where id`);
137
+ const { rows } = await db.query(`select default_channel, per_kind, quiet_start, quiet_end, end_of_day, schedules, focus from core.notification_settings where id`);
134
138
  const row = rows[0];
135
139
  if (!row)
136
- return { ...DEFAULT_NOTIFICATION_SETTINGS, perKind: {} };
140
+ return { ...DEFAULT_NOTIFICATION_SETTINGS, perKind: {}, schedules: [] };
137
141
  const perKind = {};
138
142
  if (row.per_kind && typeof row.per_kind === 'object') {
139
143
  for (const [k, v] of Object.entries(row.per_kind)) {
@@ -145,9 +149,10 @@ export async function readNotificationSettings(db) {
145
149
  return {
146
150
  defaultChannel: row.default_channel ?? null,
147
151
  perKind,
148
- quietStart: row.quiet_start ?? null,
149
- quietEnd: row.quiet_end ?? null,
152
+ // Quiet hours never moved (migration 051 does it) read as the first schedule.
153
+ schedules: toFocusSchedules(row.schedules) ?? schedulesFromQuietHours(row.quiet_start, row.quiet_end),
150
154
  endOfDay: row.end_of_day ?? DEFAULT_END_OF_DAY,
155
+ focus: toFocusSetting(row.focus),
151
156
  };
152
157
  }
153
158
  /**
@@ -187,30 +192,28 @@ export function parseNotificationSettings(input) {
187
192
  perKind[k] = v;
188
193
  }
189
194
  }
190
- const quietStart = optionalTime(o.quietStart, 'Quiet hours start');
191
- if (quietStart instanceof Error)
192
- return { ok: false, message: quietStart.message };
193
- const quietEnd = optionalTime(o.quietEnd, 'Quiet hours end');
194
- if (quietEnd instanceof Error)
195
- return { ok: false, message: quietEnd.message };
196
- if ((quietStart === null) !== (quietEnd === null))
197
- return { ok: false, message: 'Quiet hours need both a start and an end.' };
198
- if (quietStart !== null && quietStart === quietEnd)
199
- return { ok: false, message: 'Quiet hours cannot start and end at the same time.' };
195
+ const schedules = parseFocusSchedules(o.schedules);
196
+ if (!schedules.ok)
197
+ return { ok: false, message: schedules.message };
200
198
  const endOfDay = optionalTime(o.endOfDay, 'The end of the day');
201
199
  if (endOfDay instanceof Error)
202
200
  return { ok: false, message: endOfDay.message };
203
201
  return {
204
202
  ok: true,
205
- settings: { defaultChannel, perKind, quietStart, quietEnd, endOfDay: endOfDay ?? DEFAULT_END_OF_DAY },
203
+ settings: { defaultChannel, perKind, schedules: schedules.schedules, endOfDay: endOfDay ?? DEFAULT_END_OF_DAY },
206
204
  };
207
205
  }
208
- /** Replace the settings, whole. */
206
+ /** Replace the settings, whole, but for the manual focus, which `writeFocus` owns. */
209
207
  export async function writeNotificationSettings(db, settings) {
210
- await db.query(`insert into core.notification_settings (id, default_channel, per_kind, quiet_start, quiet_end, end_of_day, updated_at)
211
- values (true, $1, $2::jsonb, $3, $4, $5, now())
208
+ await db.query(`insert into core.notification_settings (id, default_channel, per_kind, quiet_start, quiet_end, end_of_day, schedules, updated_at)
209
+ values (true, $1, $2::jsonb, null, null, $3, $4::jsonb, now())
212
210
  on conflict (id) do update set default_channel = excluded.default_channel, per_kind = excluded.per_kind,
213
- quiet_start = excluded.quiet_start, quiet_end = excluded.quiet_end, end_of_day = excluded.end_of_day,
214
- updated_at = now()`, [settings.defaultChannel, JSON.stringify(settings.perKind), settings.quietStart, settings.quietEnd, settings.endOfDay]);
211
+ quiet_start = null, quiet_end = null, end_of_day = excluded.end_of_day, schedules = excluded.schedules,
212
+ updated_at = now()`, [settings.defaultChannel, JSON.stringify(settings.perKind), settings.endOfDay, JSON.stringify(settings.schedules)]);
213
+ }
214
+ /** Replace the manual focus; null when none is on. */
215
+ export async function writeFocus(db, focus) {
216
+ await db.query(`insert into core.notification_settings (id, focus, updated_at) values (true, $1::jsonb, now())
217
+ on conflict (id) do update set focus = excluded.focus, updated_at = now()`, [focus === null ? null : JSON.stringify(focus)]);
215
218
  }
216
219
  //# sourceMappingURL=store.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/notifications/store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/notifications/store.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5G,OAAO,EACL,YAAY,EACZ,kBAAkB,GAMnB,MAAM,YAAY,CAAC;AAEpB,4DAA4D;AAC5D,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,GAAG,MAAM,CAAC;AAE7C,oEAAoE;AACpE,MAAM,CAAC,MAAM,kBAAkB,GAAG,OAAO,CAAC;AAE1C,MAAM,CAAC,MAAM,6BAA6B,GAAyB;IACjE,cAAc,EAAE,IAAI;IACpB,OAAO,EAAE,EAAE;IACX,SAAS,EAAE,EAAE;IACb,QAAQ,EAAE,kBAAkB;IAC5B,KAAK,EAAE,IAAI;CACZ,CAAC;AAEF,MAAM,GAAG,GAAG,CAAC,CAAU,EAAiB,EAAE,CACxC,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,YAAY,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AAEzF,MAAM,CAAC,MAAM,oBAAoB,GAC/B,2GAA2G;IAC3G,0GAA0G,CAAC;AAE7G,MAAM,UAAU,cAAc,CAAC,GAAwB;IACrD,OAAO;QACL,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;QAClB,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,OAAO,EAAE,GAAG,CAAC,OAAO;QACpB,KAAK,EAAE,GAAG,CAAC,KAAK;QAChB,IAAI,EAAE,GAAG,CAAC,IAAI,IAAI,IAAI;QACtB,IAAI,EAAE,GAAG,CAAC,IAAI,IAAI,IAAI;QACtB,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAE,GAAG,CAAC,MAAkB,CAAC,CAAC,CAAC,EAAE;QAChE,SAAS,EAAE,GAAG,CAAC,UAAU,IAAI,IAAI;QACjC,OAAO,EAAE,GAAG,CAAC,QAAQ,IAAI,IAAI;QAC7B,QAAQ,EAAE,GAAG,CAAC,SAAS,IAAI,IAAI;QAC/B,QAAQ,EAAE,GAAG,CAAC,SAAS,KAAK,IAAI,IAAI,GAAG,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC;QAC9F,KAAK,EAAE,GAAG,CAAC,KAAK;QAChB,KAAK,EAAE,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC;QACtB,OAAO,EAAE,GAAG,CAAC,OAAO,IAAI,IAAI;QAC5B,UAAU,EAAE,MAAM,CAAC,GAAG,CAAC,WAAW,IAAI,CAAC,CAAC;QACxC,OAAO,EAAE,GAAG,CAAC,OAAO,KAAK,IAAI;QAC7B,KAAK,EAAE,GAAG,CAAC,KAAK,IAAI,IAAI;QACxB,QAAQ,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE;QACvE,OAAO,EAAE,GAAG,CAAC,QAAQ,IAAI,IAAI;QAC7B,SAAS,EAAE,GAAG,CAAC,GAAG,CAAC,UAAU,CAAW;QACxC,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC;QACxB,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC;QACxB,OAAO,EAAE,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC;QAC1B,KAAK,EAAE,GAAG,CAAC,KAAK,IAAI,IAAI;KACzB,CAAC;AACJ,CAAC;AAED;;wEAEwE;AAExE,qCAAqC;AACrC,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,EAAa,EAAE,OAA2B,EAAE;IAClF,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IAC7E,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,CAAC,KAAK,CAC7B,UAAU,oBAAoB,sEAAsE,EACpG,CAAC,KAAK,CAAC,CACR,CAAC;IACF,OAAO,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;AAClC,CAAC;AAED,wBAAwB;AACxB,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,EAAa,EAAE,EAAU;IAC7D,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAAE,OAAO,IAAI,CAAC;IAChC,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,CAAC,KAAK,CAAC,UAAU,oBAAoB,8CAA8C,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IACpH,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AAClD,CAAC;AAED,sFAAsF;AACtF,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAAC,EAAa,EAAE,KAAW;IACtE,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,CAAC,KAAK,CAC7B,UAAU,oBAAoB;4EAC0C,EACxE,CAAC,KAAK,CAAC,CACR,CAAC;IACF,OAAO,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;AAClC,CAAC;AAED,MAAM,IAAI,GAAG,iEAAiE,CAAC;AAE/E;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,EAAa,EAAE,EAAU,EAAE,MAAY,IAAI,IAAI,EAAE;IAC9E,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAAE,OAAO,KAAK,CAAC;IACjC,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,CAAC,KAAK,CAC7B;iCAC6B,EAC7B,CAAC,EAAE,EAAE,GAAG,CAAC,CACV,CAAC;IACF,OAAO,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;AACzB,CAAC;AAED,uDAAuD;AACvD,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,EAAa,EAAE,EAAU,EAAE,MAAY,IAAI,IAAI,EAAE;IAC/E,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAAE,OAAO,KAAK,CAAC;IACjC,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,CAAC,KAAK,CAC7B;;iCAE6B,EAC7B,CAAC,EAAE,EAAE,GAAG,CAAC,CACV,CAAC;IACF,OAAO,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;AACzB,CAAC;AAED,4FAA4F;AAC5F,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,EAAa,EAAE,GAAW,EAAE,MAAY,IAAI,IAAI,EAAE;IACtF,IAAI,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE;QAAE,OAAO,CAAC,CAAC;IAChC,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,CAAC,KAAK,CAC7B;;8DAE0D,EAC1D,CAAC,GAAG,EAAE,GAAG,CAAC,CACX,CAAC;IACF,OAAO,IAAI,CAAC,MAAM,CAAC;AACrB,CAAC;AAED,iFAAiF;AACjF,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,EAAa,EAAE,QAAgB,EAAE,MAAY,IAAI,IAAI,EAAE;IAC9F,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;QAAE,OAAO,CAAC,CAAC;IACnC,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,CAAC,KAAK,CAC7B;;6DAEyD,EACzD,CAAC,QAAQ,EAAE,GAAG,CAAC,CAChB,CAAC;IACF,OAAO,IAAI,CAAC,MAAM,CAAC;AACrB,CAAC;AAED;;wEAEwE;AAExE,4EAA4E;AAC5E,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,EAAa,EACb,OAAe,EACf,MAAY,IAAI,IAAI,EAAE,EACtB,QAA2B,QAAQ;IAEnC,IAAI,KAAK,KAAK,QAAQ,EAAE,CAAC;QACvB,MAAM,EAAE,CAAC,KAAK,CACZ;qHAC+G,EAC/G,CAAC,OAAO,EAAE,GAAG,CAAC,CACf,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,MAAM,EAAE,CAAC,KAAK,CACZ;yEACmE,EACnE,CAAC,OAAO,EAAE,GAAG,CAAC,CACf,CAAC;IACJ,CAAC;AACH,CAAC;AAED,uFAAuF;AACvF,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,EAAa,EAAE,MAAY,IAAI,IAAI,EAAE;IACzE,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,CAAC,KAAK,CAC7B;;uBAEmB,EACnB,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,kBAAkB,CAAC,CAAC,CAC/C,CAAC;IACF,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;AAC5C,CAAC;AAED,kGAAkG;AAClG,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,EAAa,EAAE,MAAY,IAAI,IAAI,EAAE;IACtE,OAAO,CAAC,MAAM,eAAe,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;AACrD,CAAC;AAED;;wEAEwE;AAExE,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAAC,EAAa;IAC1D,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,CAAC,KAAK,CAC7B,iIAAiI,CAClI,CAAC;IACF,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,IAAI,CAAC,GAAG;QAAE,OAAO,EAAE,GAAG,6BAA6B,EAAE,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC;IAClF,MAAM,OAAO,GAAoC,EAAE,CAAC;IACpD,IAAI,GAAG,CAAC,QAAQ,IAAI,OAAO,GAAG,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;QACrD,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,QAAmC,CAAC,EAAE,CAAC;YAC7E,IAAK,kBAAwC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC;gBAC/F,OAAO,CAAC,CAAqB,CAAC,GAAG,CAAC,CAAC;YACrC,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO;QACL,cAAc,EAAE,GAAG,CAAC,eAAe,IAAI,IAAI;QAC3C,OAAO;QACP,8EAA8E;QAC9E,SAAS,EAAE,gBAAgB,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,uBAAuB,CAAC,GAAG,CAAC,WAAW,EAAE,GAAG,CAAC,SAAS,CAAC;QACrG,QAAQ,EAAE,GAAG,CAAC,UAAU,IAAI,kBAAkB;QAC9C,KAAK,EAAE,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC;KACjC,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,yBAAyB,CACvC,KAAc;IAEd,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,6BAA6B,EAAE,CAAC;IAC9H,MAAM,CAAC,GAAG,KAAgC,CAAC;IAC3C,MAAM,YAAY,GAAG,CAAC,CAAU,EAAE,IAAY,EAAyB,EAAE;QACvE,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,EAAE;YAAE,OAAO,IAAI,CAAC;QAC3D,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YAAE,OAAO,IAAI,KAAK,CAAC,GAAG,IAAI,6BAA6B,CAAC,CAAC;QAChH,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;IAClB,CAAC,CAAC;IACF,MAAM,cAAc,GAAG,CAAC,CAAC,cAAc,KAAK,SAAS,IAAI,CAAC,CAAC,cAAc,KAAK,IAAI,IAAI,CAAC,CAAC,cAAc,KAAK,EAAE;QAC3G,CAAC,CAAC,IAAI;QACN,CAAC,CAAC,OAAO,CAAC,CAAC,cAAc,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IAC/E,IAAI,cAAc,KAAK,SAAS;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,4CAA4C,EAAE,CAAC;IAC9G,MAAM,OAAO,GAAoC,EAAE,CAAC;IACpD,IAAI,CAAC,CAAC,OAAO,KAAK,SAAS,IAAI,CAAC,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;QAClD,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC;YAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,4BAA4B,EAAE,CAAC;QAC3H,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,OAAkC,CAAC,EAAE,CAAC;YAC1E,IAAI,CAAE,kBAAwC,CAAC,QAAQ,CAAC,CAAC,CAAC;gBAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,CAAC,iCAAiC,EAAE,CAAC;YACjI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,SAAS;gBAAE,SAAS;YACxD,IAAI,OAAO,CAAC,KAAK,QAAQ;gBAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,CAAC,yCAAyC,EAAE,CAAC;YAChH,IAAI,CAAC,KAAK,KAAK,IAAI,YAAY,CAAC,GAAG,CAAC,CAAqB,CAAC,EAAE,CAAC;gBAC3D,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,+CAA+C,EAAE,CAAC;YACjF,CAAC;YACD,OAAO,CAAC,CAAqB,CAAC,GAAG,CAAC,CAAC;QACrC,CAAC;IACH,CAAC;IACD,MAAM,SAAS,GAAG,mBAAmB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IACnD,IAAI,CAAC,SAAS,CAAC,EAAE;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,CAAC,OAAO,EAAE,CAAC;IACpE,MAAM,QAAQ,GAAG,YAAY,CAAC,CAAC,CAAC,QAAQ,EAAE,oBAAoB,CAAC,CAAC;IAChE,IAAI,QAAQ,YAAY,KAAK;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;IAC/E,OAAO;QACL,EAAE,EAAE,IAAI;QACR,QAAQ,EAAE,EAAE,cAAc,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,CAAC,SAAS,EAAE,QAAQ,EAAE,QAAQ,IAAI,kBAAkB,EAAE;KAChH,CAAC;AACJ,CAAC;AAED,sFAAsF;AACtF,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAAC,EAAa,EAAE,QAAiC;IAC9F,MAAM,EAAE,CAAC,KAAK,CACZ;;;;0BAIsB,EACtB,CAAC,QAAQ,CAAC,cAAc,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CACnH,CAAC;AACJ,CAAC;AAED,sDAAsD;AACtD,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,EAAa,EAAE,KAA0B;IACxE,MAAM,EAAE,CAAC,KAAK,CACZ;+EAC2E,EAC3E,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAChD,CAAC;AACJ,CAAC"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * What a notification is about, so the same thing said by two agents is one
3
+ * row (docs/notifications.md, "The same thing from two agents").
4
+ *
5
+ * A topic is the words that name things: the title (and the text, when the
6
+ * title alone names fewer than three), lowercased, with the agent's own name,
7
+ * dates, weekdays and the everyday words of a reminder taken out, and numbers
8
+ * written plainly (40.00 is 40). Two topics are the same when they share at
9
+ * least three words and those are at least two thirds of the shorter one.
10
+ * "Pay", "paid" and "payment" are one word.
11
+ */
12
+ /** A new message folds into an open row with the same topic from the last this long. */
13
+ export declare const TOPIC_WINDOW_MS: number;
14
+ /**
15
+ * The topic of a message: its distinctive words, space-separated, at most
16
+ * twelve, in the order they first appear. Empty when it names nothing.
17
+ */
18
+ export declare function notificationTopic(message: {
19
+ title: string;
20
+ text?: string | null;
21
+ agentId?: string | null;
22
+ }): string;
23
+ /** Do two topics name the same thing? At least three shared words, at least two thirds of the shorter. */
24
+ export declare function sameTopic(a: string | null | undefined, b: string | null | undefined): boolean;
25
+ //# sourceMappingURL=topic.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"topic.d.ts","sourceRoot":"","sources":["../../src/notifications/topic.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,wFAAwF;AACxF,eAAO,MAAM,eAAe,QAAiB,CAAC;AAiF9C;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,GAAG,MAAM,CAQnH;AAED,0GAA0G;AAC1G,wBAAgB,SAAS,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO,CAO7F"}