@withbuddi/buddi 0.1.0-pre.44 → 0.1.0-pre.46

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 (492) hide show
  1. package/extension/background.js +157 -1
  2. package/extension/manifest.json +5 -2
  3. package/extension/popup.html +4 -0
  4. package/extension/popup.js +18 -0
  5. package/node_modules/@buddi/cli/dist/.tsbuildinfo +1 -1
  6. package/node_modules/@buddi/cli/dist/mcp/tools.d.ts +3 -8
  7. package/node_modules/@buddi/cli/dist/mcp/tools.d.ts.map +1 -1
  8. package/node_modules/@buddi/cli/dist/mcp/tools.js +22 -4
  9. package/node_modules/@buddi/cli/dist/mcp/tools.js.map +1 -1
  10. package/node_modules/@buddi/core/dist/.tsbuildinfo +1 -1
  11. package/node_modules/@buddi/core/dist/artifacts/orphans.d.ts +6 -4
  12. package/node_modules/@buddi/core/dist/artifacts/orphans.d.ts.map +1 -1
  13. package/node_modules/@buddi/core/dist/artifacts/orphans.js +10 -3
  14. package/node_modules/@buddi/core/dist/artifacts/orphans.js.map +1 -1
  15. package/node_modules/@buddi/core/dist/groups.d.ts +0 -9
  16. package/node_modules/@buddi/core/dist/groups.d.ts.map +1 -1
  17. package/node_modules/@buddi/core/dist/groups.js +13 -1
  18. package/node_modules/@buddi/core/dist/groups.js.map +1 -1
  19. package/node_modules/@buddi/core/dist/pages.d.ts +24 -1
  20. package/node_modules/@buddi/core/dist/pages.d.ts.map +1 -1
  21. package/node_modules/@buddi/core/dist/pages.js +61 -1
  22. package/node_modules/@buddi/core/dist/pages.js.map +1 -1
  23. package/node_modules/@buddi/core/dist/pending-input.d.ts +13 -2
  24. package/node_modules/@buddi/core/dist/pending-input.d.ts.map +1 -1
  25. package/node_modules/@buddi/core/dist/pending-input.js +57 -12
  26. package/node_modules/@buddi/core/dist/pending-input.js.map +1 -1
  27. package/node_modules/@buddi/core/dist/plugin/version.d.ts +1 -1
  28. package/node_modules/@buddi/core/dist/plugin/version.js +1 -1
  29. package/node_modules/@buddi/core/dist/tools.d.ts +6 -1
  30. package/node_modules/@buddi/core/dist/tools.d.ts.map +1 -1
  31. package/node_modules/@buddi/core/dist/tools.js.map +1 -1
  32. package/node_modules/@buddi/core/dist/web-settings.d.ts +8 -0
  33. package/node_modules/@buddi/core/dist/web-settings.d.ts.map +1 -1
  34. package/node_modules/@buddi/core/dist/web-settings.js +14 -0
  35. package/node_modules/@buddi/core/dist/web-settings.js.map +1 -1
  36. package/node_modules/@buddi/core/migrations/078_pending_input_files.sql +8 -0
  37. package/node_modules/@buddi/gateway/dist/.tsbuildinfo +1 -1
  38. package/node_modules/@buddi/gateway/dist/agents/agent-intro.d.ts +31 -0
  39. package/node_modules/@buddi/gateway/dist/agents/agent-intro.d.ts.map +1 -0
  40. package/node_modules/@buddi/gateway/dist/agents/agent-intro.js +116 -0
  41. package/node_modules/@buddi/gateway/dist/agents/agent-intro.js.map +1 -0
  42. package/node_modules/@buddi/gateway/dist/agents/delegation.d.ts +10 -0
  43. package/node_modules/@buddi/gateway/dist/agents/delegation.d.ts.map +1 -1
  44. package/node_modules/@buddi/gateway/dist/agents/delegation.js +18 -1
  45. package/node_modules/@buddi/gateway/dist/agents/delegation.js.map +1 -1
  46. package/node_modules/@buddi/gateway/dist/agents/platform.d.ts +14 -1
  47. package/node_modules/@buddi/gateway/dist/agents/platform.d.ts.map +1 -1
  48. package/node_modules/@buddi/gateway/dist/agents/platform.js +44 -11
  49. package/node_modules/@buddi/gateway/dist/agents/platform.js.map +1 -1
  50. package/node_modules/@buddi/gateway/dist/bootstrap.d.ts.map +1 -1
  51. package/node_modules/@buddi/gateway/dist/bootstrap.js +2 -0
  52. package/node_modules/@buddi/gateway/dist/bootstrap.js.map +1 -1
  53. package/node_modules/@buddi/gateway/dist/browser-host.d.ts.map +1 -1
  54. package/node_modules/@buddi/gateway/dist/browser-host.js +1 -0
  55. package/node_modules/@buddi/gateway/dist/browser-host.js.map +1 -1
  56. package/node_modules/@buddi/gateway/dist/edition-origin.d.ts +57 -0
  57. package/node_modules/@buddi/gateway/dist/edition-origin.d.ts.map +1 -0
  58. package/node_modules/@buddi/gateway/dist/edition-origin.js +156 -0
  59. package/node_modules/@buddi/gateway/dist/edition-origin.js.map +1 -0
  60. package/node_modules/@buddi/gateway/dist/system-context.d.ts +9 -0
  61. package/node_modules/@buddi/gateway/dist/system-context.d.ts.map +1 -1
  62. package/node_modules/@buddi/gateway/dist/system-context.js +28 -2
  63. package/node_modules/@buddi/gateway/dist/system-context.js.map +1 -1
  64. package/node_modules/@buddi/gateway/dist/telegram/approvals.d.ts +6 -0
  65. package/node_modules/@buddi/gateway/dist/telegram/approvals.d.ts.map +1 -1
  66. package/node_modules/@buddi/gateway/dist/telegram/approvals.js +10 -2
  67. package/node_modules/@buddi/gateway/dist/telegram/approvals.js.map +1 -1
  68. package/node_modules/@buddi/gateway/dist/telegram/main.d.ts.map +1 -1
  69. package/node_modules/@buddi/gateway/dist/telegram/main.js +10 -3
  70. package/node_modules/@buddi/gateway/dist/telegram/main.js.map +1 -1
  71. package/node_modules/@buddi/gateway/dist/telegram/outbound.d.ts +9 -0
  72. package/node_modules/@buddi/gateway/dist/telegram/outbound.d.ts.map +1 -1
  73. package/node_modules/@buddi/gateway/dist/telegram/outbound.js +43 -0
  74. package/node_modules/@buddi/gateway/dist/telegram/outbound.js.map +1 -1
  75. package/node_modules/@buddi/gateway/dist/telegram/surface.d.ts +2 -0
  76. package/node_modules/@buddi/gateway/dist/telegram/surface.d.ts.map +1 -1
  77. package/node_modules/@buddi/gateway/dist/telegram/surface.js +2 -1
  78. package/node_modules/@buddi/gateway/dist/telegram/surface.js.map +1 -1
  79. package/node_modules/@buddi/gateway/dist/tips/engine.d.ts +32 -0
  80. package/node_modules/@buddi/gateway/dist/tips/engine.d.ts.map +1 -1
  81. package/node_modules/@buddi/gateway/dist/tips/engine.js +69 -0
  82. package/node_modules/@buddi/gateway/dist/tips/engine.js.map +1 -1
  83. package/node_modules/@buddi/gateway/dist/tips/route.d.ts +1 -3
  84. package/node_modules/@buddi/gateway/dist/tips/route.d.ts.map +1 -1
  85. package/node_modules/@buddi/gateway/dist/tips/route.js +54 -30
  86. package/node_modules/@buddi/gateway/dist/tips/route.js.map +1 -1
  87. package/node_modules/@buddi/gateway/dist/web/agent-offers.d.ts +10 -1
  88. package/node_modules/@buddi/gateway/dist/web/agent-offers.d.ts.map +1 -1
  89. package/node_modules/@buddi/gateway/dist/web/agent-offers.js +14 -1
  90. package/node_modules/@buddi/gateway/dist/web/agent-offers.js.map +1 -1
  91. package/node_modules/@buddi/gateway/dist/web/api-routes.d.ts.map +1 -1
  92. package/node_modules/@buddi/gateway/dist/web/api-routes.js +38 -7
  93. package/node_modules/@buddi/gateway/dist/web/api-routes.js.map +1 -1
  94. package/node_modules/@buddi/gateway/dist/web/approval-ask.d.ts +16 -0
  95. package/node_modules/@buddi/gateway/dist/web/approval-ask.d.ts.map +1 -0
  96. package/node_modules/@buddi/gateway/dist/web/approval-ask.js +51 -0
  97. package/node_modules/@buddi/gateway/dist/web/approval-ask.js.map +1 -0
  98. package/node_modules/@buddi/gateway/dist/web/attention.d.ts +37 -0
  99. package/node_modules/@buddi/gateway/dist/web/attention.d.ts.map +1 -1
  100. package/node_modules/@buddi/gateway/dist/web/attention.js +54 -10
  101. package/node_modules/@buddi/gateway/dist/web/attention.js.map +1 -1
  102. package/node_modules/@buddi/gateway/dist/web/canvas-tabs.d.ts +41 -0
  103. package/node_modules/@buddi/gateway/dist/web/canvas-tabs.d.ts.map +1 -0
  104. package/node_modules/@buddi/gateway/dist/web/canvas-tabs.js +68 -0
  105. package/node_modules/@buddi/gateway/dist/web/canvas-tabs.js.map +1 -0
  106. package/node_modules/@buddi/gateway/dist/web/chat.d.ts +6 -9
  107. package/node_modules/@buddi/gateway/dist/web/chat.d.ts.map +1 -1
  108. package/node_modules/@buddi/gateway/dist/web/chat.js +37 -19
  109. package/node_modules/@buddi/gateway/dist/web/chat.js.map +1 -1
  110. package/node_modules/@buddi/gateway/dist/web/extension.d.ts +11 -1
  111. package/node_modules/@buddi/gateway/dist/web/extension.d.ts.map +1 -1
  112. package/node_modules/@buddi/gateway/dist/web/extension.js +51 -0
  113. package/node_modules/@buddi/gateway/dist/web/extension.js.map +1 -1
  114. package/node_modules/@buddi/gateway/dist/web/live.d.ts +7 -0
  115. package/node_modules/@buddi/gateway/dist/web/live.d.ts.map +1 -1
  116. package/node_modules/@buddi/gateway/dist/web/live.js +12 -0
  117. package/node_modules/@buddi/gateway/dist/web/live.js.map +1 -1
  118. package/node_modules/@buddi/gateway/dist/web/pages.d.ts.map +1 -1
  119. package/node_modules/@buddi/gateway/dist/web/pages.js +10 -1
  120. package/node_modules/@buddi/gateway/dist/web/pages.js.map +1 -1
  121. package/node_modules/@buddi/gateway/dist/web/server.d.ts +0 -4
  122. package/node_modules/@buddi/gateway/dist/web/server.d.ts.map +1 -1
  123. package/node_modules/@buddi/gateway/dist/web/server.js +102 -7
  124. package/node_modules/@buddi/gateway/dist/web/server.js.map +1 -1
  125. package/node_modules/@buddi/install/dist/.tsbuildinfo +1 -1
  126. package/node_modules/@buddi/runtime/dist/.tsbuildinfo +1 -1
  127. package/node_modules/@buddi/runtime/dist/codex-direct.d.ts +1 -1
  128. package/node_modules/@buddi/runtime/dist/codex-direct.js +1 -1
  129. package/node_modules/@buddi/runtime/dist/grounding.d.ts +54 -0
  130. package/node_modules/@buddi/runtime/dist/grounding.d.ts.map +1 -0
  131. package/node_modules/@buddi/runtime/dist/grounding.js +158 -0
  132. package/node_modules/@buddi/runtime/dist/grounding.js.map +1 -0
  133. package/node_modules/@buddi/runtime/dist/index.d.ts +1 -0
  134. package/node_modules/@buddi/runtime/dist/index.d.ts.map +1 -1
  135. package/node_modules/@buddi/runtime/dist/index.js +1 -0
  136. package/node_modules/@buddi/runtime/dist/index.js.map +1 -1
  137. package/node_modules/@buddi/runtime/dist/loop.d.ts +19 -0
  138. package/node_modules/@buddi/runtime/dist/loop.d.ts.map +1 -1
  139. package/node_modules/@buddi/runtime/dist/loop.js +123 -13
  140. package/node_modules/@buddi/runtime/dist/loop.js.map +1 -1
  141. package/node_modules/@buddi/tool-artifacts/dist/.tsbuildinfo +1 -1
  142. package/node_modules/@buddi/tool-artifacts/dist/extract.d.ts +6 -0
  143. package/node_modules/@buddi/tool-artifacts/dist/extract.d.ts.map +1 -1
  144. package/node_modules/@buddi/tool-artifacts/dist/extract.js +6 -0
  145. package/node_modules/@buddi/tool-artifacts/dist/extract.js.map +1 -1
  146. package/node_modules/@buddi/tool-artifacts/dist/tools/artifacts.d.ts +1 -0
  147. package/node_modules/@buddi/tool-artifacts/dist/tools/artifacts.d.ts.map +1 -1
  148. package/node_modules/@buddi/tool-artifacts/dist/tools/artifacts.js +30 -8
  149. package/node_modules/@buddi/tool-artifacts/dist/tools/artifacts.js.map +1 -1
  150. package/node_modules/@buddi/tool-browser/dist/.tsbuildinfo +1 -1
  151. package/node_modules/@buddi/tool-browser/dist/controller.d.ts +25 -0
  152. package/node_modules/@buddi/tool-browser/dist/controller.d.ts.map +1 -1
  153. package/node_modules/@buddi/tool-browser/dist/controller.js +25 -1
  154. package/node_modules/@buddi/tool-browser/dist/controller.js.map +1 -1
  155. package/node_modules/@buddi/tool-browser/dist/downloads.d.ts +138 -0
  156. package/node_modules/@buddi/tool-browser/dist/downloads.d.ts.map +1 -0
  157. package/node_modules/@buddi/tool-browser/dist/downloads.js +529 -0
  158. package/node_modules/@buddi/tool-browser/dist/downloads.js.map +1 -0
  159. package/node_modules/@buddi/tool-browser/dist/driver.d.ts +17 -1
  160. package/node_modules/@buddi/tool-browser/dist/driver.d.ts.map +1 -1
  161. package/node_modules/@buddi/tool-browser/dist/driver.js +48 -0
  162. package/node_modules/@buddi/tool-browser/dist/driver.js.map +1 -1
  163. package/node_modules/@buddi/tool-browser/dist/extension.d.ts +23 -0
  164. package/node_modules/@buddi/tool-browser/dist/extension.d.ts.map +1 -1
  165. package/node_modules/@buddi/tool-browser/dist/extension.js +20 -0
  166. package/node_modules/@buddi/tool-browser/dist/extension.js.map +1 -1
  167. package/node_modules/@buddi/tool-browser/dist/host.d.ts +3 -1
  168. package/node_modules/@buddi/tool-browser/dist/host.d.ts.map +1 -1
  169. package/node_modules/@buddi/tool-browser/dist/host.js +9 -2
  170. package/node_modules/@buddi/tool-browser/dist/host.js.map +1 -1
  171. package/node_modules/@buddi/tool-browser/dist/index.d.ts +7 -3
  172. package/node_modules/@buddi/tool-browser/dist/index.d.ts.map +1 -1
  173. package/node_modules/@buddi/tool-browser/dist/index.js +5 -3
  174. package/node_modules/@buddi/tool-browser/dist/index.js.map +1 -1
  175. package/node_modules/@buddi/tool-browser/dist/service.d.ts +28 -0
  176. package/node_modules/@buddi/tool-browser/dist/service.d.ts.map +1 -1
  177. package/node_modules/@buddi/tool-browser/dist/service.js +58 -1
  178. package/node_modules/@buddi/tool-browser/dist/service.js.map +1 -1
  179. package/node_modules/@buddi/tool-browser/dist/settings.d.ts +8 -0
  180. package/node_modules/@buddi/tool-browser/dist/settings.d.ts.map +1 -1
  181. package/node_modules/@buddi/tool-browser/dist/settings.js +9 -0
  182. package/node_modules/@buddi/tool-browser/dist/settings.js.map +1 -1
  183. package/node_modules/@buddi/tool-browser/dist/types.d.ts +31 -24
  184. package/node_modules/@buddi/tool-browser/dist/types.d.ts.map +1 -1
  185. package/node_modules/@buddi/tool-browser/dist/types.js.map +1 -1
  186. package/node_modules/@buddi/tool-email/dist/.tsbuildinfo +1 -1
  187. package/node_modules/@buddi/tool-email/dist/agent.d.ts +6 -1
  188. package/node_modules/@buddi/tool-email/dist/agent.d.ts.map +1 -1
  189. package/node_modules/@buddi/tool-email/dist/agent.js +6 -1
  190. package/node_modules/@buddi/tool-email/dist/agent.js.map +1 -1
  191. package/node_modules/@buddi/tool-email/dist/imap/fake.d.ts +8 -0
  192. package/node_modules/@buddi/tool-email/dist/imap/fake.d.ts.map +1 -1
  193. package/node_modules/@buddi/tool-email/dist/imap/fake.js +15 -0
  194. package/node_modules/@buddi/tool-email/dist/imap/fake.js.map +1 -1
  195. package/node_modules/@buddi/tool-email/dist/imap/imapflow-client.d.ts.map +1 -1
  196. package/node_modules/@buddi/tool-email/dist/imap/imapflow-client.js +26 -17
  197. package/node_modules/@buddi/tool-email/dist/imap/imapflow-client.js.map +1 -1
  198. package/node_modules/@buddi/tool-email/dist/index.d.ts +5 -1
  199. package/node_modules/@buddi/tool-email/dist/index.d.ts.map +1 -1
  200. package/node_modules/@buddi/tool-email/dist/index.js +11 -3
  201. package/node_modules/@buddi/tool-email/dist/index.js.map +1 -1
  202. package/node_modules/@buddi/tool-email/dist/mail.d.ts.map +1 -1
  203. package/node_modules/@buddi/tool-email/dist/mail.js +4 -1
  204. package/node_modules/@buddi/tool-email/dist/mail.js.map +1 -1
  205. package/node_modules/@buddi/tool-email/dist/pages/index.d.ts +2 -1
  206. package/node_modules/@buddi/tool-email/dist/pages/index.d.ts.map +1 -1
  207. package/node_modules/@buddi/tool-email/dist/pages/index.js +2 -2
  208. package/node_modules/@buddi/tool-email/dist/pages/index.js.map +1 -1
  209. package/node_modules/@buddi/tool-email/dist/pages/queries.d.ts +3 -2
  210. package/node_modules/@buddi/tool-email/dist/pages/queries.d.ts.map +1 -1
  211. package/node_modules/@buddi/tool-email/dist/pages/queries.js +19 -7
  212. package/node_modules/@buddi/tool-email/dist/pages/queries.js.map +1 -1
  213. package/node_modules/@buddi/tool-email/dist/ports.d.ts +15 -0
  214. package/node_modules/@buddi/tool-email/dist/ports.d.ts.map +1 -1
  215. package/node_modules/@buddi/tool-email/dist/ports.js.map +1 -1
  216. package/node_modules/@buddi/tool-email/dist/sources/inbox-poll.d.ts +9 -1
  217. package/node_modules/@buddi/tool-email/dist/sources/inbox-poll.d.ts.map +1 -1
  218. package/node_modules/@buddi/tool-email/dist/sources/inbox-poll.js +1 -0
  219. package/node_modules/@buddi/tool-email/dist/sources/inbox-poll.js.map +1 -1
  220. package/node_modules/@buddi/tool-email/dist/text-cleanup.d.ts +69 -0
  221. package/node_modules/@buddi/tool-email/dist/text-cleanup.d.ts.map +1 -0
  222. package/node_modules/@buddi/tool-email/dist/text-cleanup.js +96 -0
  223. package/node_modules/@buddi/tool-email/dist/text-cleanup.js.map +1 -0
  224. package/node_modules/@buddi/tool-email/dist/text.d.ts +29 -0
  225. package/node_modules/@buddi/tool-email/dist/text.d.ts.map +1 -0
  226. package/node_modules/@buddi/tool-email/dist/text.js +153 -0
  227. package/node_modules/@buddi/tool-email/dist/text.js.map +1 -0
  228. package/node_modules/@buddi/tool-email/dist/worker.d.ts +64 -0
  229. package/node_modules/@buddi/tool-email/dist/worker.d.ts.map +1 -0
  230. package/node_modules/@buddi/tool-email/dist/worker.js +123 -0
  231. package/node_modules/@buddi/tool-email/dist/worker.js.map +1 -0
  232. package/node_modules/@buddi/tool-email/migrations/028_reading.sql +5 -2
  233. package/node_modules/@buddi/tool-host/dist/.tsbuildinfo +1 -1
  234. package/node_modules/@buddi/tool-mcp/dist/.tsbuildinfo +1 -1
  235. package/node_modules/@buddi/tool-memory/dist/.tsbuildinfo +1 -1
  236. package/node_modules/@buddi/tool-web/dist/.tsbuildinfo +1 -1
  237. package/node_modules/marked/bin/main.js +1 -1
  238. package/node_modules/marked/lib/marked.d.ts +7 -0
  239. package/node_modules/marked/lib/marked.esm.js +14 -14
  240. package/node_modules/marked/lib/marked.esm.js.map +3 -3
  241. package/node_modules/marked/lib/marked.umd.js +19 -19
  242. package/node_modules/marked/lib/marked.umd.js.map +3 -3
  243. package/node_modules/marked/man/marked.1 +1 -1
  244. package/node_modules/marked/package.json +1 -1
  245. package/node_modules/nanoid/README.md +3 -3
  246. package/node_modules/nanoid/index.browser.js +4 -5
  247. package/node_modules/nanoid/index.d.ts +3 -3
  248. package/node_modules/nanoid/index.js +2 -3
  249. package/node_modules/nanoid/nanoid.js +1 -1
  250. package/node_modules/nanoid/package.json +2 -2
  251. package/node_modules/nanoid/url-alphabet/index.js +1 -1
  252. package/package.json +2 -2
  253. package/packages/cli/dist/.tsbuildinfo +1 -1
  254. package/packages/cli/dist/mcp/tools.d.ts +3 -8
  255. package/packages/cli/dist/mcp/tools.d.ts.map +1 -1
  256. package/packages/cli/dist/mcp/tools.js +22 -4
  257. package/packages/cli/dist/mcp/tools.js.map +1 -1
  258. package/packages/core/dist/.tsbuildinfo +1 -1
  259. package/packages/core/dist/artifacts/orphans.d.ts +6 -4
  260. package/packages/core/dist/artifacts/orphans.d.ts.map +1 -1
  261. package/packages/core/dist/artifacts/orphans.js +10 -3
  262. package/packages/core/dist/artifacts/orphans.js.map +1 -1
  263. package/packages/core/dist/groups.d.ts +0 -9
  264. package/packages/core/dist/groups.d.ts.map +1 -1
  265. package/packages/core/dist/groups.js +13 -1
  266. package/packages/core/dist/groups.js.map +1 -1
  267. package/packages/core/dist/pages.d.ts +24 -1
  268. package/packages/core/dist/pages.d.ts.map +1 -1
  269. package/packages/core/dist/pages.js +61 -1
  270. package/packages/core/dist/pages.js.map +1 -1
  271. package/packages/core/dist/pending-input.d.ts +13 -2
  272. package/packages/core/dist/pending-input.d.ts.map +1 -1
  273. package/packages/core/dist/pending-input.js +57 -12
  274. package/packages/core/dist/pending-input.js.map +1 -1
  275. package/packages/core/dist/plugin/version.d.ts +1 -1
  276. package/packages/core/dist/plugin/version.js +1 -1
  277. package/packages/core/dist/tools.d.ts +6 -1
  278. package/packages/core/dist/tools.d.ts.map +1 -1
  279. package/packages/core/dist/tools.js.map +1 -1
  280. package/packages/core/dist/web-settings.d.ts +8 -0
  281. package/packages/core/dist/web-settings.d.ts.map +1 -1
  282. package/packages/core/dist/web-settings.js +14 -0
  283. package/packages/core/dist/web-settings.js.map +1 -1
  284. package/packages/core/migrations/078_pending_input_files.sql +8 -0
  285. package/packages/gateway/dist/.tsbuildinfo +1 -1
  286. package/packages/gateway/dist/agents/agent-intro.d.ts +31 -0
  287. package/packages/gateway/dist/agents/agent-intro.d.ts.map +1 -0
  288. package/packages/gateway/dist/agents/agent-intro.js +116 -0
  289. package/packages/gateway/dist/agents/agent-intro.js.map +1 -0
  290. package/packages/gateway/dist/agents/delegation.d.ts +10 -0
  291. package/packages/gateway/dist/agents/delegation.d.ts.map +1 -1
  292. package/packages/gateway/dist/agents/delegation.js +18 -1
  293. package/packages/gateway/dist/agents/delegation.js.map +1 -1
  294. package/packages/gateway/dist/agents/platform.d.ts +14 -1
  295. package/packages/gateway/dist/agents/platform.d.ts.map +1 -1
  296. package/packages/gateway/dist/agents/platform.js +44 -11
  297. package/packages/gateway/dist/agents/platform.js.map +1 -1
  298. package/packages/gateway/dist/bootstrap.d.ts.map +1 -1
  299. package/packages/gateway/dist/bootstrap.js +2 -0
  300. package/packages/gateway/dist/bootstrap.js.map +1 -1
  301. package/packages/gateway/dist/browser-host.d.ts.map +1 -1
  302. package/packages/gateway/dist/browser-host.js +1 -0
  303. package/packages/gateway/dist/browser-host.js.map +1 -1
  304. package/packages/gateway/dist/edition-origin.d.ts +57 -0
  305. package/packages/gateway/dist/edition-origin.d.ts.map +1 -0
  306. package/packages/gateway/dist/edition-origin.js +156 -0
  307. package/packages/gateway/dist/edition-origin.js.map +1 -0
  308. package/packages/gateway/dist/system-context.d.ts +9 -0
  309. package/packages/gateway/dist/system-context.d.ts.map +1 -1
  310. package/packages/gateway/dist/system-context.js +28 -2
  311. package/packages/gateway/dist/system-context.js.map +1 -1
  312. package/packages/gateway/dist/telegram/approvals.d.ts +6 -0
  313. package/packages/gateway/dist/telegram/approvals.d.ts.map +1 -1
  314. package/packages/gateway/dist/telegram/approvals.js +10 -2
  315. package/packages/gateway/dist/telegram/approvals.js.map +1 -1
  316. package/packages/gateway/dist/telegram/main.d.ts.map +1 -1
  317. package/packages/gateway/dist/telegram/main.js +10 -3
  318. package/packages/gateway/dist/telegram/main.js.map +1 -1
  319. package/packages/gateway/dist/telegram/outbound.d.ts +9 -0
  320. package/packages/gateway/dist/telegram/outbound.d.ts.map +1 -1
  321. package/packages/gateway/dist/telegram/outbound.js +43 -0
  322. package/packages/gateway/dist/telegram/outbound.js.map +1 -1
  323. package/packages/gateway/dist/telegram/surface.d.ts +2 -0
  324. package/packages/gateway/dist/telegram/surface.d.ts.map +1 -1
  325. package/packages/gateway/dist/telegram/surface.js +2 -1
  326. package/packages/gateway/dist/telegram/surface.js.map +1 -1
  327. package/packages/gateway/dist/tips/engine.d.ts +32 -0
  328. package/packages/gateway/dist/tips/engine.d.ts.map +1 -1
  329. package/packages/gateway/dist/tips/engine.js +69 -0
  330. package/packages/gateway/dist/tips/engine.js.map +1 -1
  331. package/packages/gateway/dist/tips/route.d.ts +1 -3
  332. package/packages/gateway/dist/tips/route.d.ts.map +1 -1
  333. package/packages/gateway/dist/tips/route.js +54 -30
  334. package/packages/gateway/dist/tips/route.js.map +1 -1
  335. package/packages/gateway/dist/web/agent-offers.d.ts +10 -1
  336. package/packages/gateway/dist/web/agent-offers.d.ts.map +1 -1
  337. package/packages/gateway/dist/web/agent-offers.js +14 -1
  338. package/packages/gateway/dist/web/agent-offers.js.map +1 -1
  339. package/packages/gateway/dist/web/api-routes.d.ts.map +1 -1
  340. package/packages/gateway/dist/web/api-routes.js +38 -7
  341. package/packages/gateway/dist/web/api-routes.js.map +1 -1
  342. package/packages/gateway/dist/web/approval-ask.d.ts +16 -0
  343. package/packages/gateway/dist/web/approval-ask.d.ts.map +1 -0
  344. package/packages/gateway/dist/web/approval-ask.js +51 -0
  345. package/packages/gateway/dist/web/approval-ask.js.map +1 -0
  346. package/packages/gateway/dist/web/attention.d.ts +37 -0
  347. package/packages/gateway/dist/web/attention.d.ts.map +1 -1
  348. package/packages/gateway/dist/web/attention.js +54 -10
  349. package/packages/gateway/dist/web/attention.js.map +1 -1
  350. package/packages/gateway/dist/web/canvas-tabs.d.ts +41 -0
  351. package/packages/gateway/dist/web/canvas-tabs.d.ts.map +1 -0
  352. package/packages/gateway/dist/web/canvas-tabs.js +68 -0
  353. package/packages/gateway/dist/web/canvas-tabs.js.map +1 -0
  354. package/packages/gateway/dist/web/chat.d.ts +6 -9
  355. package/packages/gateway/dist/web/chat.d.ts.map +1 -1
  356. package/packages/gateway/dist/web/chat.js +37 -19
  357. package/packages/gateway/dist/web/chat.js.map +1 -1
  358. package/packages/gateway/dist/web/extension.d.ts +11 -1
  359. package/packages/gateway/dist/web/extension.d.ts.map +1 -1
  360. package/packages/gateway/dist/web/extension.js +51 -0
  361. package/packages/gateway/dist/web/extension.js.map +1 -1
  362. package/packages/gateway/dist/web/live.d.ts +7 -0
  363. package/packages/gateway/dist/web/live.d.ts.map +1 -1
  364. package/packages/gateway/dist/web/live.js +12 -0
  365. package/packages/gateway/dist/web/live.js.map +1 -1
  366. package/packages/gateway/dist/web/pages.d.ts.map +1 -1
  367. package/packages/gateway/dist/web/pages.js +10 -1
  368. package/packages/gateway/dist/web/pages.js.map +1 -1
  369. package/packages/gateway/dist/web/server.d.ts +0 -4
  370. package/packages/gateway/dist/web/server.d.ts.map +1 -1
  371. package/packages/gateway/dist/web/server.js +102 -7
  372. package/packages/gateway/dist/web/server.js.map +1 -1
  373. package/packages/install/dist/.tsbuildinfo +1 -1
  374. package/packages/runtime/dist/.tsbuildinfo +1 -1
  375. package/packages/runtime/dist/codex-direct.d.ts +1 -1
  376. package/packages/runtime/dist/codex-direct.js +1 -1
  377. package/packages/runtime/dist/grounding.d.ts +54 -0
  378. package/packages/runtime/dist/grounding.d.ts.map +1 -0
  379. package/packages/runtime/dist/grounding.js +158 -0
  380. package/packages/runtime/dist/grounding.js.map +1 -0
  381. package/packages/runtime/dist/index.d.ts +1 -0
  382. package/packages/runtime/dist/index.d.ts.map +1 -1
  383. package/packages/runtime/dist/index.js +1 -0
  384. package/packages/runtime/dist/index.js.map +1 -1
  385. package/packages/runtime/dist/loop.d.ts +19 -0
  386. package/packages/runtime/dist/loop.d.ts.map +1 -1
  387. package/packages/runtime/dist/loop.js +123 -13
  388. package/packages/runtime/dist/loop.js.map +1 -1
  389. package/packages/tools/artifacts/dist/.tsbuildinfo +1 -1
  390. package/packages/tools/artifacts/dist/extract.d.ts +6 -0
  391. package/packages/tools/artifacts/dist/extract.d.ts.map +1 -1
  392. package/packages/tools/artifacts/dist/extract.js +6 -0
  393. package/packages/tools/artifacts/dist/extract.js.map +1 -1
  394. package/packages/tools/artifacts/dist/tools/artifacts.d.ts +1 -0
  395. package/packages/tools/artifacts/dist/tools/artifacts.d.ts.map +1 -1
  396. package/packages/tools/artifacts/dist/tools/artifacts.js +30 -8
  397. package/packages/tools/artifacts/dist/tools/artifacts.js.map +1 -1
  398. package/packages/tools/browser/dist/.tsbuildinfo +1 -1
  399. package/packages/tools/browser/dist/controller.d.ts +25 -0
  400. package/packages/tools/browser/dist/controller.d.ts.map +1 -1
  401. package/packages/tools/browser/dist/controller.js +25 -1
  402. package/packages/tools/browser/dist/controller.js.map +1 -1
  403. package/packages/tools/browser/dist/downloads.d.ts +138 -0
  404. package/packages/tools/browser/dist/downloads.d.ts.map +1 -0
  405. package/packages/tools/browser/dist/downloads.js +529 -0
  406. package/packages/tools/browser/dist/downloads.js.map +1 -0
  407. package/packages/tools/browser/dist/driver.d.ts +17 -1
  408. package/packages/tools/browser/dist/driver.d.ts.map +1 -1
  409. package/packages/tools/browser/dist/driver.js +48 -0
  410. package/packages/tools/browser/dist/driver.js.map +1 -1
  411. package/packages/tools/browser/dist/extension.d.ts +23 -0
  412. package/packages/tools/browser/dist/extension.d.ts.map +1 -1
  413. package/packages/tools/browser/dist/extension.js +20 -0
  414. package/packages/tools/browser/dist/extension.js.map +1 -1
  415. package/packages/tools/browser/dist/host.d.ts +3 -1
  416. package/packages/tools/browser/dist/host.d.ts.map +1 -1
  417. package/packages/tools/browser/dist/host.js +9 -2
  418. package/packages/tools/browser/dist/host.js.map +1 -1
  419. package/packages/tools/browser/dist/index.d.ts +7 -3
  420. package/packages/tools/browser/dist/index.d.ts.map +1 -1
  421. package/packages/tools/browser/dist/index.js +5 -3
  422. package/packages/tools/browser/dist/index.js.map +1 -1
  423. package/packages/tools/browser/dist/service.d.ts +28 -0
  424. package/packages/tools/browser/dist/service.d.ts.map +1 -1
  425. package/packages/tools/browser/dist/service.js +58 -1
  426. package/packages/tools/browser/dist/service.js.map +1 -1
  427. package/packages/tools/browser/dist/settings.d.ts +8 -0
  428. package/packages/tools/browser/dist/settings.d.ts.map +1 -1
  429. package/packages/tools/browser/dist/settings.js +9 -0
  430. package/packages/tools/browser/dist/settings.js.map +1 -1
  431. package/packages/tools/browser/dist/types.d.ts +31 -24
  432. package/packages/tools/browser/dist/types.d.ts.map +1 -1
  433. package/packages/tools/browser/dist/types.js.map +1 -1
  434. package/packages/tools/email/dist/.tsbuildinfo +1 -1
  435. package/packages/tools/email/dist/agent.d.ts +6 -1
  436. package/packages/tools/email/dist/agent.d.ts.map +1 -1
  437. package/packages/tools/email/dist/agent.js +6 -1
  438. package/packages/tools/email/dist/agent.js.map +1 -1
  439. package/packages/tools/email/dist/imap/fake.d.ts +8 -0
  440. package/packages/tools/email/dist/imap/fake.d.ts.map +1 -1
  441. package/packages/tools/email/dist/imap/fake.js +15 -0
  442. package/packages/tools/email/dist/imap/fake.js.map +1 -1
  443. package/packages/tools/email/dist/imap/imapflow-client.d.ts.map +1 -1
  444. package/packages/tools/email/dist/imap/imapflow-client.js +26 -17
  445. package/packages/tools/email/dist/imap/imapflow-client.js.map +1 -1
  446. package/packages/tools/email/dist/index.d.ts +5 -1
  447. package/packages/tools/email/dist/index.d.ts.map +1 -1
  448. package/packages/tools/email/dist/index.js +11 -3
  449. package/packages/tools/email/dist/index.js.map +1 -1
  450. package/packages/tools/email/dist/mail.d.ts.map +1 -1
  451. package/packages/tools/email/dist/mail.js +4 -1
  452. package/packages/tools/email/dist/mail.js.map +1 -1
  453. package/packages/tools/email/dist/pages/index.d.ts +2 -1
  454. package/packages/tools/email/dist/pages/index.d.ts.map +1 -1
  455. package/packages/tools/email/dist/pages/index.js +2 -2
  456. package/packages/tools/email/dist/pages/index.js.map +1 -1
  457. package/packages/tools/email/dist/pages/queries.d.ts +3 -2
  458. package/packages/tools/email/dist/pages/queries.d.ts.map +1 -1
  459. package/packages/tools/email/dist/pages/queries.js +19 -7
  460. package/packages/tools/email/dist/pages/queries.js.map +1 -1
  461. package/packages/tools/email/dist/ports.d.ts +15 -0
  462. package/packages/tools/email/dist/ports.d.ts.map +1 -1
  463. package/packages/tools/email/dist/ports.js.map +1 -1
  464. package/packages/tools/email/dist/sources/inbox-poll.d.ts +9 -1
  465. package/packages/tools/email/dist/sources/inbox-poll.d.ts.map +1 -1
  466. package/packages/tools/email/dist/sources/inbox-poll.js +1 -0
  467. package/packages/tools/email/dist/sources/inbox-poll.js.map +1 -1
  468. package/packages/tools/email/dist/text-cleanup.d.ts +69 -0
  469. package/packages/tools/email/dist/text-cleanup.d.ts.map +1 -0
  470. package/packages/tools/email/dist/text-cleanup.js +96 -0
  471. package/packages/tools/email/dist/text-cleanup.js.map +1 -0
  472. package/packages/tools/email/dist/text.d.ts +29 -0
  473. package/packages/tools/email/dist/text.d.ts.map +1 -0
  474. package/packages/tools/email/dist/text.js +153 -0
  475. package/packages/tools/email/dist/text.js.map +1 -0
  476. package/packages/tools/email/dist/worker.d.ts +64 -0
  477. package/packages/tools/email/dist/worker.d.ts.map +1 -0
  478. package/packages/tools/email/dist/worker.js +123 -0
  479. package/packages/tools/email/dist/worker.js.map +1 -0
  480. package/packages/tools/email/migrations/028_reading.sql +5 -2
  481. package/packages/tools/host/dist/.tsbuildinfo +1 -1
  482. package/packages/tools/mcp/dist/.tsbuildinfo +1 -1
  483. package/packages/tools/memory/dist/.tsbuildinfo +1 -1
  484. package/packages/tools/web/dist/.tsbuildinfo +1 -1
  485. package/packages/web/dist/assets/index-C2yWZED2.css +1 -0
  486. package/packages/web/dist/assets/index-CIhME8Ui.js +150 -0
  487. package/packages/web/dist/assets/{lottie_light-DnYl9yaP.js → lottie_light-CVXFbeEK.js} +1 -1
  488. package/packages/web/dist/build.json +1 -1
  489. package/packages/web/dist/index.html +2 -2
  490. package/packages/web/dist/precache.json +4 -4
  491. package/packages/web/dist/assets/index-C1sRt7zd.js +0 -149
  492. package/packages/web/dist/assets/index-CdZpSJ4_.css +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"route.d.ts","sourceRoot":"","sources":["../../src/tips/route.ts"],"names":[],"mappings":"AAgBA,OAAO,EAA6B,KAAK,KAAK,EAAE,KAAK,aAAa,EAAE,MAAM,YAAY,CAAC;AACvF,OAAO,EAAQ,KAAK,OAAO,EAAE,MAAM,YAAY,CAAC;AAEhD,eAAO,MAAM,cAAc,eAAe,CAAC;AAC3C,eAAO,MAAM,gBAAgB,iBAAiB,CAAC;AAE/C,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,aAAa,CAAC;IACrB,KAAK,EAAE,MAAM,OAAO,CAAC,KAAK,CAAC,CAAC;IAC5B,GAAG,EAAE,MAAM,IAAI,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,sDAAsD;IACtD,KAAK,CAAC,EAAE,SAAS,OAAO,EAAE,CAAC;CAC5B;AAED,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,OAAO,CAAC;CACf;AAOD,mEAAmE;AACnE,wBAAsB,WAAW,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,CAGxE;AAED,wBAAsB,SAAS,CAC7B,IAAI,EAAE,aAAa,EACnB,OAAO,EAAE;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,GACjG,OAAO,CAAC,SAAS,CAAC,CA6DpB"}
1
+ {"version":3,"file":"route.d.ts","sourceRoot":"","sources":["../../src/tips/route.ts"],"names":[],"mappings":"AAoBA,OAAO,EAA6B,KAAK,KAAK,EAAE,KAAK,aAAa,EAAE,MAAM,YAAY,CAAC;AACvF,OAAO,EAAQ,KAAK,OAAO,EAAE,MAAM,YAAY,CAAC;AAEhD,eAAO,MAAM,cAAc,eAAe,CAAC;AAE3C,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,aAAa,CAAC;IACrB,KAAK,EAAE,MAAM,OAAO,CAAC,KAAK,CAAC,CAAC;IAC5B,GAAG,EAAE,MAAM,IAAI,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,sDAAsD;IACtD,KAAK,CAAC,EAAE,SAAS,OAAO,EAAE,CAAC;CAC5B;AAED,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,OAAO,CAAC;CACf;AAOD,wBAAsB,SAAS,CAC7B,IAAI,EAAE,aAAa,EACnB,OAAO,EAAE;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,CAAA;CAAE,GACjH,OAAO,CAAC,SAAS,CAAC,CAuFpB"}
@@ -1,54 +1,41 @@
1
1
  /**
2
2
  * The tips' routes (docs/dashboard.md, Home):
3
3
  *
4
- * GET /api/tips { tips: [...rows], enabled } every rule and where it stands (the Tips list)
5
- * GET /api/tips/current { tip | null, enabled } today's tip, if any
4
+ * GET /api/tips { tips: [...rows] } every rule and where it stands
5
+ * GET /api/tips/current { tip | null } today's tip, if any
6
+ * GET /api/tips/queue { tips: [...], dismissed } the bulb's stack: today's tip first, then every other
7
+ * one that holds and is not dismissed, ready ones before those in their cooldown;
8
+ * `dismissed` counts the dismissed ones that hold
9
+ * (`?peek=1`: today's and the ready ones only, nothing marked shown: for the bulb's dot)
10
+ * GET /api/tips/dismissed { tips: [...] } the dismissed ones the queue counts, for "Bring back"
6
11
  * POST /api/tips/:id/dismiss "Not this again": never again
7
12
  * POST /api/tips/:id/later ×: not before its cooldown has passed
8
13
  * POST /api/tips/:id/restore "Bring back": forget a dismissal
9
14
  * POST /api/tips/seen-page { page } the dashboard opened a page (once a day each)
10
- * GET /api/tips/settings { enabled }
11
- * PUT /api/tips/settings { enabled } Settings → Notifications → Tips on Home
12
15
  *
13
- * State lives in `core.web_settings`: `tips.state` (the engine's), `tips.enabled`
14
- * (absent is on) and `tips.pages`.
16
+ * State lives in `core.web_settings`: `tips.state` (the engine's) and
17
+ * `tips.pages`. A `tips.enabled` left from the old "Tips on Home" switch is
18
+ * ignored: tips sit behind the bulb, which is the owner's choice to look.
15
19
  */
16
- import { dayIn, dismissTip, laterTip, listTips, pickTip, restoreTip, viewOf } from './engine.js';
20
+ import { dayIn, dismissTip, laterTip, listDismissed, listTips, pickQueue, pickTip, restoreTip, viewOf } from './engine.js';
17
21
  import { PAGE_NAME, recordPageSeen } from './facts.js';
18
22
  import { TIPS } from './rules.js';
19
23
  export const TIPS_STATE_KEY = 'tips.state';
20
- export const TIPS_ENABLED_KEY = 'tips.enabled';
21
24
  async function readState(store) {
22
25
  const value = await store.read(TIPS_STATE_KEY).catch(() => null);
23
26
  return value && typeof value === 'object' && !Array.isArray(value) ? value : {};
24
27
  }
25
- /** Whether tips are on. Anything but an explicit `false` is on. */
26
- export async function tipsEnabled(store) {
27
- const value = await store.read(TIPS_ENABLED_KEY).catch(() => null);
28
- return value !== false;
29
- }
30
28
  export async function tipsRoute(deps, request) {
31
29
  const { method, path } = request;
32
30
  const body = request.body ?? {};
33
31
  const rules = deps.rules ?? TIPS;
34
32
  const today = dayIn(deps.now(), deps.timezone);
35
- if (path === '/api/tips/settings') {
36
- if (method === 'PUT') {
37
- if (typeof body.enabled !== 'boolean')
38
- return { status: 400, body: { error: '`enabled` must be true or false.' } };
39
- await deps.store.write(TIPS_ENABLED_KEY, body.enabled);
40
- }
41
- else if (method !== 'GET') {
42
- return { status: 405, body: { error: 'GET or PUT.' } };
43
- }
44
- return { status: 200, body: { enabled: await tipsEnabled(deps.store) } };
45
- }
46
33
  if (path === '/api/tips') {
47
34
  if (method !== 'GET')
48
35
  return { status: 405, body: { error: 'GET only.' } };
49
- // Reads only: listing never marks a tip shown. It reads while tips are off too.
36
+ // Reads only: listing never marks a tip shown.
50
37
  const tips = listTips(rules, await deps.facts(), await readState(deps.store), today);
51
- return { status: 200, body: { tips, enabled: await tipsEnabled(deps.store) } };
38
+ return { status: 200, body: { tips } };
52
39
  }
53
40
  if (path === '/api/tips/current') {
54
41
  if (method !== 'GET')
@@ -59,16 +46,53 @@ export async function tipsRoute(deps, request) {
59
46
  if (preview !== null) {
60
47
  const rule = rules.find((r) => r.id === preview);
61
48
  return rule
62
- ? { status: 200, body: { tip: viewOf(rule, await deps.facts()), enabled: true, preview: true } }
49
+ ? { status: 200, body: { tip: viewOf(rule, await deps.facts()), preview: true } }
63
50
  : { status: 404, body: { error: `No tip called "${preview}". Known: ${rules.map((r) => r.id).join(', ')}.` } };
64
51
  }
65
- if (!(await tipsEnabled(deps.store)))
66
- return { status: 200, body: { tip: null, enabled: false } };
67
52
  const previous = await readState(deps.store);
68
53
  const { tip, state } = pickTip(rules, await deps.facts(), previous, today);
69
54
  if (JSON.stringify(state) !== JSON.stringify(previous))
70
55
  await deps.store.write(TIPS_STATE_KEY, state);
71
- return { status: 200, body: { tip, enabled: true } };
56
+ return { status: 200, body: { tip } };
57
+ }
58
+ if (path === '/api/tips/queue') {
59
+ if (method !== 'GET')
60
+ return { status: 405, body: { error: 'GET only.' } };
61
+ // `?preview=a,b,c` stacks those rules' cards as they would look, touching no state.
62
+ const preview = request.preview ?? null;
63
+ if (preview !== null) {
64
+ const ids = preview.split(',').map((id) => id.trim()).filter(Boolean);
65
+ const unknown = ids.filter((id) => !rules.some((r) => r.id === id));
66
+ if (ids.length === 0 || unknown.length) {
67
+ return { status: 404, body: { error: `No tip called "${unknown[0] ?? preview}". Known: ${rules.map((r) => r.id).join(', ')}.` } };
68
+ }
69
+ const f = await deps.facts();
70
+ return { status: 200, body: { tips: ids.map((id) => viewOf(rules.find((r) => r.id === id), f)), preview: true } };
71
+ }
72
+ const previous = await readState(deps.store);
73
+ const { tips, state, dismissed } = pickQueue(rules, await deps.facts(), previous, today, { open: !request.peek });
74
+ // A peek keeps the holds counting but marks nothing shown: the owner has
75
+ // not opened the stack, so no tip's cooldown starts.
76
+ const front = tips[0]?.id;
77
+ if (request.peek && front && state[front]?.shownAt !== previous[front]?.shownAt) {
78
+ const before = previous[front]?.shownAt;
79
+ if (before)
80
+ state[front] = { ...state[front], shownAt: before };
81
+ else {
82
+ const { shownAt: _s, ...rest } = state[front];
83
+ state[front] = rest;
84
+ }
85
+ }
86
+ if (JSON.stringify(state) !== JSON.stringify(previous))
87
+ await deps.store.write(TIPS_STATE_KEY, state);
88
+ return { status: 200, body: { tips, dismissed } };
89
+ }
90
+ if (path === '/api/tips/dismissed') {
91
+ if (method !== 'GET')
92
+ return { status: 405, body: { error: 'GET only.' } };
93
+ // Reads only: the state is what the queue left it as.
94
+ const tips = listDismissed(rules, await deps.facts(), await readState(deps.store), today);
95
+ return { status: 200, body: { tips } };
72
96
  }
73
97
  if (path === '/api/tips/seen-page') {
74
98
  if (method !== 'POST')
@@ -1 +1 @@
1
- {"version":3,"file":"route.js","sourceRoot":"","sources":["../../src/tips/route.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"route.js","sourceRoot":"","sources":["../../src/tips/route.ts"],"names":[],"mappings":"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"}
@@ -6,7 +6,8 @@
6
6
  * something the owner already set up — the mail plugin polls every mailbox and
7
7
  * hands each new message to `mail-triage`, which nothing creates. Those carry
8
8
  * an `offer`, and Home shows it while nobody has that id, the plugin says it is
9
- * wanted, and the owner has not dismissed it.
9
+ * wanted, and the owner has not dismissed it. A mail agent is not offered
10
+ * while any agent on the team carries the `mail` role.
10
11
  *
11
12
  * Accepting is not here. It is `POST /api/plugins/<plugin>/agents/<id>/accept`
12
13
  * (`acceptAgentRoute`), the gated `platform.accept_plugin_agent` the Plugins
@@ -35,6 +36,12 @@ export interface AgentOffersDeps extends PagesDeps {
35
36
  };
36
37
  /** The ids the roster holds right now. */
37
38
  agentIds: () => readonly string[];
39
+ /**
40
+ * The roles the roster's agents carry right now. An offer is not made when
41
+ * somebody on the team already carries the `mail` role it would fill: mail
42
+ * is read, and the owner would read the card as a bug. Absent counts as none.
43
+ */
44
+ agentRoles?: () => readonly string[];
38
45
  /**
39
46
  * Is first run not under way? While it runs, Home’s offers stay
40
47
  * quiet: chapter 4's mailbox sheet brings Mail Triage in itself. Absent
@@ -42,6 +49,8 @@ export interface AgentOffersDeps extends PagesDeps {
42
49
  */
43
50
  firstRunDone?: () => Promise<boolean>;
44
51
  }
52
+ /** The role whose offer is not made while an agent already carries it. */
53
+ export declare const MAIL_ROLE = "mail";
45
54
  /**
46
55
  * The offers to draw: proposed with an `offer`, nobody has that id, not
47
56
  * dismissed, and — when the plugin names a query — wanted now.
@@ -1 +1 @@
1
- {"version":3,"file":"agent-offers.d.ts","sourceRoot":"","sources":["../../src/web/agent-offers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,EAML,KAAK,YAAY,EAClB,MAAM,aAAa,CAAC;AAErB,OAAO,EAAgB,KAAK,SAAS,EAAE,MAAM,YAAY,CAAC;AAE1D,yEAAyE;AACzE,eAAO,MAAM,gBAAgB,iBAAiB,CAAC;AAa/C,kCAAkC;AAClC,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,0DAA0D;IAC1D,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,eAAgB,SAAQ,SAAS;IAChD,IAAI,EAAE;QAAE,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;YAAE,IAAI,EAAE,GAAG,EAAE,CAAA;SAAE,CAAC,CAAA;KAAE,CAAC;IAC3E,0CAA0C;IAC1C,QAAQ,EAAE,MAAM,SAAS,MAAM,EAAE,CAAC;IAClC;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;CACvC;AAsCD;;;;;;GAMG;AACH,wBAAsB,eAAe,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC;IAAE,MAAM,EAAE,cAAc,EAAE,CAAA;CAAE,CAAC,CAoBlG;AAED,uFAAuF;AACvF,wBAAsB,iBAAiB,CACrC,IAAI,EAAE,eAAe,EACrB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,OAAO,CAAA;CAAE,CAAC,CAO5C;AAED,8DAA8D;AAC9D,wBAAgB,eAAe,CAAC,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAQ5F;AAED,MAAM,WAAW,oBAAqB,SAAQ,eAAe;IAC3D,0EAA0E;IAC1E,WAAW,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,YAAY,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,SAAS,CAAC;IACpE,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CAC9B;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,oBAAoB,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAgCpG"}
1
+ {"version":3,"file":"agent-offers.d.ts","sourceRoot":"","sources":["../../src/web/agent-offers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,EAML,KAAK,YAAY,EAClB,MAAM,aAAa,CAAC;AAErB,OAAO,EAAgB,KAAK,SAAS,EAAE,MAAM,YAAY,CAAC;AAE1D,yEAAyE;AACzE,eAAO,MAAM,gBAAgB,iBAAiB,CAAC;AAa/C,kCAAkC;AAClC,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,0DAA0D;IAC1D,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,eAAgB,SAAQ,SAAS;IAChD,IAAI,EAAE;QAAE,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;YAAE,IAAI,EAAE,GAAG,EAAE,CAAA;SAAE,CAAC,CAAA;KAAE,CAAC;IAC3E,0CAA0C;IAC1C,QAAQ,EAAE,MAAM,SAAS,MAAM,EAAE,CAAC;IAClC;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,SAAS,MAAM,EAAE,CAAC;IACrC;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;CACvC;AAED,0EAA0E;AAC1E,eAAO,MAAM,SAAS,SAAS,CAAC;AA4ChC;;;;;;GAMG;AACH,wBAAsB,eAAe,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC;IAAE,MAAM,EAAE,cAAc,EAAE,CAAA;CAAE,CAAC,CAqBlG;AAED,uFAAuF;AACvF,wBAAsB,iBAAiB,CACrC,IAAI,EAAE,eAAe,EACrB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,OAAO,CAAA;CAAE,CAAC,CAO5C;AAED,8DAA8D;AAC9D,wBAAgB,eAAe,CAAC,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAQ5F;AAED,MAAM,WAAW,oBAAqB,SAAQ,eAAe;IAC3D,0EAA0E;IAC1E,WAAW,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,YAAY,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,SAAS,CAAC;IACpE,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CAC9B;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,oBAAoB,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAiCpG"}
@@ -6,7 +6,8 @@
6
6
  * something the owner already set up — the mail plugin polls every mailbox and
7
7
  * hands each new message to `mail-triage`, which nothing creates. Those carry
8
8
  * an `offer`, and Home shows it while nobody has that id, the plugin says it is
9
- * wanted, and the owner has not dismissed it.
9
+ * wanted, and the owner has not dismissed it. A mail agent is not offered
10
+ * while any agent on the team carries the `mail` role.
10
11
  *
11
12
  * Accepting is not here. It is `POST /api/plugins/<plugin>/agents/<id>/accept`
12
13
  * (`acceptAgentRoute`), the gated `platform.accept_plugin_agent` the Plugins
@@ -18,6 +19,14 @@ import { pluginAgentProposals } from '../agents/platform.js';
18
19
  import { runPageQuery } from './pages.js';
19
20
  /** The `core.web_settings` key the owner's dismissals are kept under. */
20
21
  export const AGENT_OFFERS_KEY = 'agent-offers';
22
+ /** The role whose offer is not made while an agent already carries it. */
23
+ export const MAIL_ROLE = 'mail';
24
+ /** Whether the team already has an agent in the `mail` role this offered agent would fill. */
25
+ function roleTaken(deps, roles) {
26
+ if (!roles?.includes(MAIL_ROLE) || !deps.agentRoles)
27
+ return false;
28
+ return deps.agentRoles().includes(MAIL_ROLE);
29
+ }
21
30
  function keyOf(plugin, agent) {
22
31
  return `${plugin}/${agent}`;
23
32
  }
@@ -69,6 +78,8 @@ export async function readAgentOffers(deps) {
69
78
  continue;
70
79
  if (present.has(agent.id) || dismissed.has(keyOf(plugin, agent.id)))
71
80
  continue;
81
+ if (roleTaken(deps, agent.roles))
82
+ continue;
72
83
  if (!(await wanted(deps, plugin, offer.query)))
73
84
  continue;
74
85
  offers.push({
@@ -130,6 +141,8 @@ export async function raiseAgentOffers(deps, plugin) {
130
141
  continue;
131
142
  if (deps.agentIds().includes(agent.id))
132
143
  continue;
144
+ if (roleTaken(deps, agent.roles))
145
+ continue;
133
146
  const pending = await listPendingActions(deps.pool, { now: deps.now() }).catch(() => []);
134
147
  if (pending.some((action) => isPendingAccept(action, plugin, agent.id)))
135
148
  continue;
@@ -1 +1 @@
1
- {"version":3,"file":"agent-offers.js","sourceRoot":"","sources":["../../src/web/agent-offers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent-offers.js","sourceRoot":"","sources":["../../src/web/agent-offers.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"api-routes.d.ts","sourceRoot":"","sources":["../../src/web/api-routes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,MAAM,MAAM,SAAS,GAAG,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,GAAG,QAAQ,CAAC;AAEpE,gDAAgD;AAChD,MAAM,MAAM,OAAO,GAAG,MAAM,GAAG,QAAQ,GAAG,OAAO,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAExE,MAAM,WAAW,QAAQ;IACvB,MAAM,EAAE,SAAS,CAAC;IAClB,qDAAqD;IACrD,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,uDAAuD;IACvD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,oDAAoD;IACpD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,mEAAmE;IACnE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,8EAA8E;IAC9E,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf;;;OAGG;IACH,KAAK,CAAC,EAAE,YAAY,CAAC;IACrB,8EAA8E;IAC9E,WAAW,CAAC,EAAE,IAAI,CAAC;IACnB,yDAAyD;IACzD,SAAS,CAAC,EAAE,IAAI,CAAC;CAClB;AAED,qGAAqG;AACrG,eAAO,MAAM,cAAc;;;;;;;;CAQjB,CAAC;AACX,MAAM,MAAM,YAAY,GAAG,MAAM,OAAO,cAAc,CAAC;AAEvD,6CAA6C;AAC7C,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;CAuBZ,CAAC;AACX,MAAM,MAAM,OAAO,GAAG,MAAM,OAAO,SAAS,CAAC;AAK7C,eAAO,MAAM,UAAU,EAAE,SAAS,QAAQ,EA84BzC,CAAC;AAYF;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS,CASpF;AAMD,wBAAgB,MAAM,CAAC,KAAK,EAAE,QAAQ,GAAG,MAAM,CAI9C;AAkDD,+EAA+E;AAC/E,wBAAgB,kBAAkB,CAAC,MAAM,GAAE,SAAS,QAAQ,EAAe,EAAE,KAAK,GAAE,MAAkB,GAAG,MAAM,CAuC9G;AAED,oFAAoF;AACpF,eAAO,MAAM,SAAS,q/NAoJrB,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAsUtD,CAAC"}
1
+ {"version":3,"file":"api-routes.d.ts","sourceRoot":"","sources":["../../src/web/api-routes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,MAAM,MAAM,SAAS,GAAG,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,GAAG,QAAQ,CAAC;AAEpE,gDAAgD;AAChD,MAAM,MAAM,OAAO,GAAG,MAAM,GAAG,QAAQ,GAAG,OAAO,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAExE,MAAM,WAAW,QAAQ;IACvB,MAAM,EAAE,SAAS,CAAC;IAClB,qDAAqD;IACrD,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,uDAAuD;IACvD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,oDAAoD;IACpD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,mEAAmE;IACnE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,8EAA8E;IAC9E,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf;;;OAGG;IACH,KAAK,CAAC,EAAE,YAAY,CAAC;IACrB,8EAA8E;IAC9E,WAAW,CAAC,EAAE,IAAI,CAAC;IACnB,yDAAyD;IACzD,SAAS,CAAC,EAAE,IAAI,CAAC;CAClB;AAED,qGAAqG;AACrG,eAAO,MAAM,cAAc;;;;;;;;CAQjB,CAAC;AACX,MAAM,MAAM,YAAY,GAAG,MAAM,OAAO,cAAc,CAAC;AAEvD,6CAA6C;AAC7C,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;CAuBZ,CAAC;AACX,MAAM,MAAM,OAAO,GAAG,MAAM,OAAO,SAAS,CAAC;AAK7C,eAAO,MAAM,UAAU,EAAE,SAAS,QAAQ,EAs6BzC,CAAC;AAYF;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS,CASpF;AAMD,wBAAgB,MAAM,CAAC,KAAK,EAAE,QAAQ,GAAG,MAAM,CAI9C;AAkDD,+EAA+E;AAC/E,wBAAgB,kBAAkB,CAAC,MAAM,GAAE,SAAS,QAAQ,EAAe,EAAE,KAAK,GAAE,MAAkB,GAAG,MAAM,CAuC9G;AAED,oFAAoF;AACpF,eAAO,MAAM,SAAS,q/NAoJrB,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CA6UtD,CAAC"}
@@ -229,14 +229,18 @@ export const API_ROUTES = [
229
229
  summary: "Home's whole first read: plugin blocks and glances, and counts of approvals, jobs, missions, reminders, watchers.",
230
230
  answer: '{ now, timezone, paused, home: HomeBlock[], glances, approvals: { pending, oldestPendingAt }, jobs: Record<state, number>, missions, reminders, sentinels, mail, running, needsYou: { approvals, questions, urgent, failed, proposals, asks, agentsToSetUp, signIns, recovery, total } }',
231
231
  },
232
- { method: 'GET', path: '/api/tips', area: 'home', summary: 'Every tip and its state.', answer: '{ tips: Tip[], enabled: boolean }' },
232
+ { method: 'GET', path: '/api/tips', area: 'home', summary: 'Every tip and its state.', answer: '{ tips: Tip[] }' },
233
233
  {
234
234
  method: 'GET', path: '/api/tips/current', area: 'home', summary: "Today's tip on Home, if any (picking one is remembered).",
235
- query: 'preview?: tip id // show one as it would look, touching nothing', answer: '{ tip: Tip|null, enabled: boolean }',
235
+ query: 'preview?: tip id // show one as it would look, touching nothing', answer: '{ tip: Tip|null }',
236
236
  errors: '404 no tip by the preview id',
237
237
  },
238
- { method: 'GET', path: '/api/tips/settings', area: 'home', summary: 'Whether tips are on.', answer: '{ enabled: boolean }' },
239
- { method: 'PUT', path: '/api/tips/settings', area: 'home', summary: 'Turn tips on or off.', body: '{ enabled: boolean }', answer: '{ enabled: boolean }' },
238
+ {
239
+ method: 'GET', path: '/api/tips/queue', area: 'home', summary: "The stack the lightbulb on Home opens: today's tip first, then every other one that holds and is not dismissed, ready ones before those in their cooldown (picking the first is remembered).",
240
+ query: "preview?: tip ids, comma-separated // stack those as they would look, touching nothing; peek?: '1' // today's and the ready ones only, marking nothing shown", answer: '{ tips: Tip[], dismissed: number }',
241
+ errors: '404 no tip by a preview id',
242
+ },
243
+ { method: 'GET', path: '/api/tips/dismissed', area: 'home', summary: 'The dismissed tips the queue counts, for the empty stack\'s "Bring back" list.', answer: '{ tips: Tip[] }' },
240
244
  { method: 'POST', path: '/api/tips/seen-page', area: 'home', summary: 'Record that a page was opened (tips about it stop).', body: '{ page: string }', answer: '{ ok: true }' },
241
245
  { method: 'POST', path: '/api/tips/:id/dismiss', area: 'home', summary: 'Never show this tip again.', answer: '{ ok: true }', errors: '404 no such tip' },
242
246
  { method: 'POST', path: '/api/tips/:id/later', area: 'home', summary: 'Show this tip another day.', answer: '{ ok: true }', errors: '404 no such tip' },
@@ -324,6 +328,16 @@ export const API_ROUTES = [
324
328
  method: 'DELETE', path: '/api/chat/conversations/:id/carry-over', area: 'chat',
325
329
  summary: 'Drop the note a rollover carried into this conversation; it leaves every later turn’s context.', answer: '204',
326
330
  },
331
+ {
332
+ method: 'GET', path: '/api/chat/conversations/:id/canvas-tabs', area: 'chat',
333
+ summary: 'The canvas tabs the owner closed in this conversation, and when each tab was last looked at (their order).',
334
+ answer: '{ closed: string[], touched: Record<tabId, epochMs> }',
335
+ },
336
+ {
337
+ method: 'PUT', path: '/api/chat/conversations/:id/canvas-tabs', area: 'chat',
338
+ summary: 'Replace this conversation’s canvas tab state. The newest 200 of each half are kept.',
339
+ body: '{ closed: string[], touched: Record<tabId, epochMs> }', answer: 'the state as stored', errors: '400 a field of the wrong shape',
340
+ },
327
341
  {
328
342
  method: 'POST', path: '/api/chat/questions/:id/answer', area: 'chat', summary: 'Answer a question an agent asked in the chat.',
329
343
  body: '{ answer: string, optionId?: string } or { skipped: true }', answer: '202', errors: '400; 404 no open question; 409 already answered',
@@ -383,6 +397,13 @@ export const API_ROUTES = [
383
397
  },
384
398
  { method: 'POST', path: '/api/agents/default', area: 'agents', summary: 'Make an agent the default (where a chat that names nobody lands).', body: '{ agentId: string }', errors: '400; 404' },
385
399
  { method: 'GET', path: '/api/agents/:id/profile', area: 'agents', summary: "One agent whole: its grant with every tool's tier, engine, skills, delegates.", errors: '404 no such agent' },
400
+ {
401
+ method: 'GET', path: '/api/agents/:id/intro', area: 'agents',
402
+ summary: "A new agent's first-open strip in its chat: whether it is still due, whom the agent may ask and who may ask it.",
403
+ answer: "{ show: false } | { show: true, id, handle, asks: 'everyone' | IntroAgent[], askedBy: IntroAgent[] } // IntroAgent: { id, handle, name, frontDesk? }",
404
+ errors: '404',
405
+ },
406
+ { method: 'POST', path: '/api/agents/:id/intro/dismiss', area: 'agents', summary: "Close a new agent's first-open strip for good.", answer: '{ ok: true }', errors: '404' },
386
407
  { method: 'GET', path: '/api/agents/:id/skills', area: 'agents', summary: 'Every skill the agent loads; learned ones with their versions.', errors: '404' },
387
408
  {
388
409
  method: 'POST', path: '/api/agents/:id/skills/:skill/remove', area: 'agents', summary: 'Remove a learned skill (its versions are kept).',
@@ -854,9 +875,12 @@ export const API_ROUTES = [
854
875
  },
855
876
  { method: 'POST', path: '/api/browser/install', area: 'computer', token: 'code', summary: 'Download the browser agents use (about 150 MB); follow on GET /api/browser.', answer: '202', errors: '409' },
856
877
  { method: 'POST', path: '/api/browser/check', area: 'computer', summary: 'Launch the browser once to see it starts.', answer: '{ ok: boolean, message? }' },
857
- { method: 'POST', path: '/api/browser/settings', area: 'computer', token: 'grants', summary: 'Change where agents may look: your Chrome on/off, your apps off/ask/on, sites that need your sign-in, the Stop\'s expiry, pages at once, show the window. A partial object.', errors: '409' },
878
+ { method: 'POST', path: '/api/browser/settings', area: 'computer', token: 'grants', summary: 'Change where agents may look: your Chrome on/off, your apps off/ask/on, sites that need your sign-in, the Stop\'s expiry, pages at once, show the window, the folder your Chrome saves downloads to (downloadsFolder). A partial object.', errors: '409' },
858
879
  { method: 'POST', path: '/api/browser/pin', area: 'computer', summary: 'Pin one conversation to a route, or clear it.', body: '{ conversationId: string, route: auto|own|chrome|apps }', errors: '400; 409' },
859
880
  { method: 'POST', path: '/api/browser/card', area: 'computer', summary: 'Answer a browser card (Look, Keep going, Take over, Use my Chrome, Resume) without a chat message.', body: '{ conversationId: string, answer: string }', answer: '{ answered?, status }', errors: '400' },
881
+ { method: 'GET', path: '/api/browser/downloads', area: 'computer', summary: "The agents' downloads area: bytes and files by agent, the per-file and per-agent caps, the retention in days, and the files waiting there because they could not be filed (newest day first, at most 200).", answer: '{ bytes, files, agents: [{ agent, bytes, files }], fileCap, agentCap, retentionDays, waiting: [{ id, agent, day, name, size, mime }] }' },
882
+ { method: 'POST', path: '/api/browser/downloads/clear', area: 'computer', summary: "Empty the agents' downloads area. What waits there is not in Files, so it is gone for good.", answer: 'the downloads area, now empty', errors: '409' },
883
+ { method: 'POST', path: '/api/browser/downloads/file', area: 'computer', summary: "File it: register one waiting download in Files as its agent's, then drop it from the area.", body: '{ id }', answer: '{ ...the downloads area, filed: { artifactId, name } }', errors: '400 · 404 when the file is no longer there · 409' },
860
884
  { method: 'GET', path: '/api/browser/telemetry', area: 'computer', summary: 'Browser stops by cause, cards and routes over the last days.', query: 'days?: number', answer: '{ days, tasks, stops, cards, byCause, routes, stopsPerTask }' },
861
885
  { method: 'POST', path: '/api/browser/stop', area: 'computer', summary: 'Stop one page, or with no session stop agents\' browsing (expires after the set time unless forever).', body: '{ sessionId?: string, forever?: boolean }' },
862
886
  { method: 'POST', path: '/api/browser/takeover', area: 'computer', summary: 'Take over the screen from the agent.', body: '{ sessionId?: string }', answer: 'the status, with hand: boolean; a page in your Chrome comes to the front there instead and the status carries held: { by: "owner", where: "chrome" }' },
@@ -1256,6 +1280,9 @@ export const API_SINCE = {
1256
1280
  'POST /api/access/cloudflare-access/setup/forget-token': '0.1.0-pre.39',
1257
1281
  'POST /api/access/cloudflare-access/zones': '0.1.0-pre.38',
1258
1282
  'POST /api/browser/login': '0.1.0-pre.39',
1283
+ 'GET /api/browser/downloads': '0.1.0-pre.46',
1284
+ 'POST /api/browser/downloads/clear': '0.1.0-pre.46',
1285
+ 'POST /api/browser/downloads/file': '0.1.0-pre.46',
1259
1286
  'POST /api/browser/pin': '0.1.0-pre.38',
1260
1287
  'POST /api/browser/card': '0.1.0-pre.38',
1261
1288
  'GET /api/browser/telemetry': '0.1.0-pre.38',
@@ -1339,8 +1366,8 @@ export const API_SINCE = {
1339
1366
  'GET /api/overview': '0.1.0-pre.15',
1340
1367
  'GET /api/tips': '0.1.0-pre.22',
1341
1368
  'GET /api/tips/current': '0.1.0-pre.22',
1342
- 'GET /api/tips/settings': '0.1.0-pre.22',
1343
- 'PUT /api/tips/settings': '0.1.0-pre.22',
1369
+ 'GET /api/tips/queue': '0.1.0-pre.45',
1370
+ 'GET /api/tips/dismissed': '0.1.0-pre.45',
1344
1371
  'POST /api/tips/seen-page': '0.1.0-pre.22',
1345
1372
  'POST /api/tips/:id/dismiss': '0.1.0-pre.22',
1346
1373
  'POST /api/tips/:id/later': '0.1.0-pre.22',
@@ -1362,6 +1389,8 @@ export const API_SINCE = {
1362
1389
  'GET /api/chat/conversations/:id/stream': '0.1.0-pre.15',
1363
1390
  'POST /api/chat/conversations/:id/cancel': '0.1.0-pre.15',
1364
1391
  'DELETE /api/chat/conversations/:id/carry-over': '0.1.0-pre.28',
1392
+ 'GET /api/chat/conversations/:id/canvas-tabs': '0.1.0-pre.46',
1393
+ 'PUT /api/chat/conversations/:id/canvas-tabs': '0.1.0-pre.46',
1365
1394
  'POST /api/chat/questions/:id/answer': '0.1.0-pre.15',
1366
1395
  'POST /api/chat/attachments': '0.1.0-pre.15',
1367
1396
  'GET /api/conversations': '0.1.0-pre.15',
@@ -1378,6 +1407,8 @@ export const API_SINCE = {
1378
1407
  'GET /api/agents': '0.1.0-pre.15',
1379
1408
  'POST /api/agents/default': '0.1.0-pre.15',
1380
1409
  'GET /api/agents/:id/profile': '0.1.0-pre.15',
1410
+ 'GET /api/agents/:id/intro': '0.1.0-pre.45',
1411
+ 'POST /api/agents/:id/intro/dismiss': '0.1.0-pre.45',
1381
1412
  'GET /api/agents/:id/skills': '0.1.0-pre.15',
1382
1413
  'POST /api/agents/:id/skills/:skill/remove': '0.1.0-pre.15',
1383
1414
  'GET /api/agents/:id/tools': '0.1.0-pre.15',