@withbuddi/buddi 0.1.0-pre.16 → 0.1.0-pre.18

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 (816) hide show
  1. package/LICENSE +202 -0
  2. package/README.md +27 -26
  3. package/node_modules/@buddi/cli/dist/.tsbuildinfo +1 -1
  4. package/node_modules/@buddi/cli/dist/args.d.ts +9 -3
  5. package/node_modules/@buddi/cli/dist/args.d.ts.map +1 -1
  6. package/node_modules/@buddi/cli/dist/args.js +25 -89
  7. package/node_modules/@buddi/cli/dist/args.js.map +1 -1
  8. package/node_modules/@buddi/cli/dist/backup/index.d.ts +2 -0
  9. package/node_modules/@buddi/cli/dist/backup/index.d.ts.map +1 -1
  10. package/node_modules/@buddi/cli/dist/backup/index.js +13 -4
  11. package/node_modules/@buddi/cli/dist/backup/index.js.map +1 -1
  12. package/node_modules/@buddi/cli/dist/commands.d.ts +94 -0
  13. package/node_modules/@buddi/cli/dist/commands.d.ts.map +1 -0
  14. package/node_modules/@buddi/cli/dist/commands.js +993 -0
  15. package/node_modules/@buddi/cli/dist/commands.js.map +1 -0
  16. package/node_modules/@buddi/cli/dist/index.d.ts +3 -1
  17. package/node_modules/@buddi/cli/dist/index.d.ts.map +1 -1
  18. package/node_modules/@buddi/cli/dist/index.js +3 -1
  19. package/node_modules/@buddi/cli/dist/index.js.map +1 -1
  20. package/node_modules/@buddi/cli/dist/jobs-cmd.d.ts +4 -0
  21. package/node_modules/@buddi/cli/dist/jobs-cmd.d.ts.map +1 -1
  22. package/node_modules/@buddi/cli/dist/jobs-cmd.js +26 -7
  23. package/node_modules/@buddi/cli/dist/jobs-cmd.js.map +1 -1
  24. package/node_modules/@buddi/cli/dist/main.d.ts +9 -2
  25. package/node_modules/@buddi/cli/dist/main.d.ts.map +1 -1
  26. package/node_modules/@buddi/cli/dist/main.js +246 -30
  27. package/node_modules/@buddi/cli/dist/main.js.map +1 -1
  28. package/node_modules/@buddi/cli/dist/mcp/gateway-client.d.ts +1 -1
  29. package/node_modules/@buddi/cli/dist/mcp/gateway-client.js +1 -1
  30. package/node_modules/@buddi/cli/dist/mcp/secrets.d.ts +1 -1
  31. package/node_modules/@buddi/cli/dist/mcp/secrets.js +1 -1
  32. package/node_modules/@buddi/cli/dist/mcp/server.d.ts +1 -1
  33. package/node_modules/@buddi/cli/dist/mcp/server.js +1 -1
  34. package/node_modules/@buddi/cli/dist/mcp/tools.d.ts +1 -1
  35. package/node_modules/@buddi/cli/dist/mcp/tools.js +1 -1
  36. package/node_modules/@buddi/cli/dist/paths.d.ts +8 -5
  37. package/node_modules/@buddi/cli/dist/paths.d.ts.map +1 -1
  38. package/node_modules/@buddi/cli/dist/paths.js +36 -10
  39. package/node_modules/@buddi/cli/dist/paths.js.map +1 -1
  40. package/node_modules/@buddi/cli/dist/status.d.ts +70 -0
  41. package/node_modules/@buddi/cli/dist/status.d.ts.map +1 -0
  42. package/node_modules/@buddi/cli/dist/status.js +122 -0
  43. package/node_modules/@buddi/cli/dist/status.js.map +1 -0
  44. package/node_modules/@buddi/cli/dist/style.d.ts +13 -0
  45. package/node_modules/@buddi/cli/dist/style.d.ts.map +1 -0
  46. package/node_modules/@buddi/cli/dist/style.js +10 -0
  47. package/node_modules/@buddi/cli/dist/style.js.map +1 -0
  48. package/node_modules/@buddi/cli/dist/telegram-cmd.d.ts +1 -1
  49. package/node_modules/@buddi/cli/dist/telegram-cmd.d.ts.map +1 -1
  50. package/node_modules/@buddi/cli/dist/telegram-cmd.js +23 -6
  51. package/node_modules/@buddi/cli/dist/telegram-cmd.js.map +1 -1
  52. package/node_modules/@buddi/cli/dist/vault-cmd.js +3 -3
  53. package/node_modules/@buddi/core/dist/.tsbuildinfo +1 -1
  54. package/node_modules/@buddi/core/dist/actions/approvals.d.ts +0 -17
  55. package/node_modules/@buddi/core/dist/actions/approvals.d.ts.map +1 -1
  56. package/node_modules/@buddi/core/dist/actions/approvals.js +21 -0
  57. package/node_modules/@buddi/core/dist/actions/approvals.js.map +1 -1
  58. package/node_modules/@buddi/core/dist/actions/execute.d.ts +1 -1
  59. package/node_modules/@buddi/core/dist/actions/jobs.d.ts +1 -1
  60. package/node_modules/@buddi/core/dist/actions/types.js +1 -1
  61. package/node_modules/@buddi/core/dist/agents/provider-from-env.d.ts +1 -1
  62. package/node_modules/@buddi/core/dist/agents/provider-from-env.js +1 -1
  63. package/node_modules/@buddi/core/dist/agents/skills.js +1 -1
  64. package/node_modules/@buddi/core/dist/goals/types.d.ts +1 -1
  65. package/node_modules/@buddi/core/dist/goals/types.js +1 -1
  66. package/node_modules/@buddi/core/dist/host/build.d.ts +15 -1
  67. package/node_modules/@buddi/core/dist/host/build.d.ts.map +1 -1
  68. package/node_modules/@buddi/core/dist/host/build.js +101 -3
  69. package/node_modules/@buddi/core/dist/host/build.js.map +1 -1
  70. package/node_modules/@buddi/core/dist/host/http.d.ts +1 -1
  71. package/node_modules/@buddi/core/dist/host/http.d.ts.map +1 -1
  72. package/node_modules/@buddi/core/dist/host/http.js +1 -1
  73. package/node_modules/@buddi/core/dist/host/http.js.map +1 -1
  74. package/node_modules/@buddi/core/dist/host/types.d.ts +92 -5
  75. package/node_modules/@buddi/core/dist/host/types.d.ts.map +1 -1
  76. package/node_modules/@buddi/core/dist/index.d.ts +1 -0
  77. package/node_modules/@buddi/core/dist/index.d.ts.map +1 -1
  78. package/node_modules/@buddi/core/dist/index.js +1 -0
  79. package/node_modules/@buddi/core/dist/index.js.map +1 -1
  80. package/node_modules/@buddi/core/dist/learning/echoes.d.ts +1 -1
  81. package/node_modules/@buddi/core/dist/learning/echoes.js +1 -1
  82. package/node_modules/@buddi/core/dist/learning/policies.d.ts +1 -1
  83. package/node_modules/@buddi/core/dist/learning/skill-files.js +1 -1
  84. package/node_modules/@buddi/core/dist/learning/types.d.ts +2 -2
  85. package/node_modules/@buddi/core/dist/notifications/channels.d.ts +37 -0
  86. package/node_modules/@buddi/core/dist/notifications/channels.d.ts.map +1 -0
  87. package/node_modules/@buddi/core/dist/notifications/channels.js +87 -0
  88. package/node_modules/@buddi/core/dist/notifications/channels.js.map +1 -0
  89. package/node_modules/@buddi/core/dist/notifications/index.d.ts +5 -0
  90. package/node_modules/@buddi/core/dist/notifications/index.d.ts.map +1 -0
  91. package/node_modules/@buddi/core/dist/notifications/index.js +5 -0
  92. package/node_modules/@buddi/core/dist/notifications/index.js.map +1 -0
  93. package/node_modules/@buddi/core/dist/notifications/notify.d.ts +35 -0
  94. package/node_modules/@buddi/core/dist/notifications/notify.d.ts.map +1 -0
  95. package/node_modules/@buddi/core/dist/notifications/notify.js +262 -0
  96. package/node_modules/@buddi/core/dist/notifications/notify.js.map +1 -0
  97. package/node_modules/@buddi/core/dist/notifications/store.d.ts +48 -0
  98. package/node_modules/@buddi/core/dist/notifications/store.d.ts.map +1 -0
  99. package/node_modules/@buddi/core/dist/notifications/store.js +207 -0
  100. package/node_modules/@buddi/core/dist/notifications/store.js.map +1 -0
  101. package/node_modules/@buddi/core/dist/notifications/types.d.ts +136 -0
  102. package/node_modules/@buddi/core/dist/notifications/types.d.ts.map +1 -0
  103. package/node_modules/@buddi/core/dist/notifications/types.js +5 -0
  104. package/node_modules/@buddi/core/dist/notifications/types.js.map +1 -0
  105. package/node_modules/@buddi/core/dist/owner.js +1 -1
  106. package/node_modules/@buddi/core/dist/pages/__fixtures__/demo.js +1 -1
  107. package/node_modules/@buddi/core/dist/pages.d.ts +4 -4
  108. package/node_modules/@buddi/core/dist/pages.js +1 -1
  109. package/node_modules/@buddi/core/dist/plugin/index.d.ts +2 -2
  110. package/node_modules/@buddi/core/dist/plugin/index.d.ts.map +1 -1
  111. package/node_modules/@buddi/core/dist/plugin/index.js +1 -1
  112. package/node_modules/@buddi/core/dist/plugin/search.d.ts +1 -1
  113. package/node_modules/@buddi/core/dist/plugin/search.js +1 -1
  114. package/node_modules/@buddi/core/dist/plugin/url.js +1 -1
  115. package/node_modules/@buddi/core/dist/plugin/uses.d.ts +2 -2
  116. package/node_modules/@buddi/core/dist/plugin/uses.d.ts.map +1 -1
  117. package/node_modules/@buddi/core/dist/plugin/uses.js +5 -1
  118. package/node_modules/@buddi/core/dist/plugin/uses.js.map +1 -1
  119. package/node_modules/@buddi/core/dist/plugin/version.d.ts +2 -2
  120. package/node_modules/@buddi/core/dist/plugin/version.js +2 -2
  121. package/node_modules/@buddi/core/dist/provider.d.ts +1 -1
  122. package/node_modules/@buddi/core/dist/provider.js +1 -1
  123. package/node_modules/@buddi/core/dist/queue/retry-policy.d.ts +1 -1
  124. package/node_modules/@buddi/core/dist/queue/retry-policy.js +1 -1
  125. package/node_modules/@buddi/core/dist/registry.d.ts.map +1 -1
  126. package/node_modules/@buddi/core/dist/registry.js +4 -5
  127. package/node_modules/@buddi/core/dist/registry.js.map +1 -1
  128. package/node_modules/@buddi/core/dist/reminders/store.d.ts +1 -1
  129. package/node_modules/@buddi/core/dist/reminders/store.js +1 -1
  130. package/node_modules/@buddi/core/dist/reminders/types.d.ts +1 -1
  131. package/node_modules/@buddi/core/dist/reminders/types.js +1 -1
  132. package/node_modules/@buddi/core/dist/secrets/approval.d.ts +1 -1
  133. package/node_modules/@buddi/core/dist/secrets/approval.js +1 -1
  134. package/node_modules/@buddi/core/dist/secrets/destinations.d.ts +1 -1
  135. package/node_modules/@buddi/core/dist/secrets/scrub.js +1 -1
  136. package/node_modules/@buddi/core/dist/secrets/settings.js +1 -1
  137. package/node_modules/@buddi/core/dist/secrets/store.d.ts +1 -1
  138. package/node_modules/@buddi/core/dist/secrets/totp.js +1 -1
  139. package/node_modules/@buddi/core/dist/secrets/use.d.ts +1 -1
  140. package/node_modules/@buddi/core/dist/sentinels/types.d.ts +1 -1
  141. package/node_modules/@buddi/core/dist/testing/index.d.ts +1 -1
  142. package/node_modules/@buddi/core/dist/testing/index.js +1 -1
  143. package/node_modules/@buddi/core/dist/time.d.ts +12 -0
  144. package/node_modules/@buddi/core/dist/time.d.ts.map +1 -1
  145. package/node_modules/@buddi/core/dist/time.js +46 -0
  146. package/node_modules/@buddi/core/dist/time.js.map +1 -1
  147. package/node_modules/@buddi/core/dist/tools.d.ts +10 -10
  148. package/node_modules/@buddi/core/dist/vault/file.js +2 -2
  149. package/node_modules/@buddi/core/dist/vault/keychain.js +1 -1
  150. package/node_modules/@buddi/core/dist/vault/keychain.js.map +1 -1
  151. package/node_modules/@buddi/core/dist/vault/resolve.d.ts +3 -3
  152. package/node_modules/@buddi/core/dist/vault/resolve.js +3 -3
  153. package/node_modules/@buddi/core/dist/vault/types.d.ts +1 -1
  154. package/node_modules/@buddi/core/dist/vault/types.js +2 -2
  155. package/node_modules/@buddi/core/migrations/003_owner_surfaces.sql +1 -1
  156. package/node_modules/@buddi/core/migrations/005_artifacts.sql +1 -1
  157. package/node_modules/@buddi/core/migrations/009_queue.sql +1 -2
  158. package/node_modules/@buddi/core/migrations/010_actions.sql +1 -1
  159. package/node_modules/@buddi/core/migrations/043_owner_notifications.sql +77 -0
  160. package/node_modules/@buddi/gateway/dist/.tsbuildinfo +1 -1
  161. package/node_modules/@buddi/gateway/dist/agents/catalog.d.ts.map +1 -1
  162. package/node_modules/@buddi/gateway/dist/agents/catalog.js +5 -6
  163. package/node_modules/@buddi/gateway/dist/agents/catalog.js.map +1 -1
  164. package/node_modules/@buddi/gateway/dist/agents/learned-skills.js +1 -1
  165. package/node_modules/@buddi/gateway/dist/agents/learning-digest.d.ts +1 -1
  166. package/node_modules/@buddi/gateway/dist/agents/learning-digest.js +1 -1
  167. package/node_modules/@buddi/gateway/dist/agents/learning.d.ts +1 -1
  168. package/node_modules/@buddi/gateway/dist/agents/learning.js +1 -1
  169. package/node_modules/@buddi/gateway/dist/agents-cli.d.ts +25 -1
  170. package/node_modules/@buddi/gateway/dist/agents-cli.d.ts.map +1 -1
  171. package/node_modules/@buddi/gateway/dist/agents-cli.js +91 -27
  172. package/node_modules/@buddi/gateway/dist/agents-cli.js.map +1 -1
  173. package/node_modules/@buddi/gateway/dist/bootstrap.d.ts.map +1 -1
  174. package/node_modules/@buddi/gateway/dist/bootstrap.js +10 -2
  175. package/node_modules/@buddi/gateway/dist/bootstrap.js.map +1 -1
  176. package/node_modules/@buddi/gateway/dist/channels/local-notification.d.ts +39 -0
  177. package/node_modules/@buddi/gateway/dist/channels/local-notification.d.ts.map +1 -0
  178. package/node_modules/@buddi/gateway/dist/channels/local-notification.js +154 -0
  179. package/node_modules/@buddi/gateway/dist/channels/local-notification.js.map +1 -0
  180. package/node_modules/@buddi/gateway/dist/chat/approvals.d.ts +3 -3
  181. package/node_modules/@buddi/gateway/dist/chat/approvals.js +3 -3
  182. package/node_modules/@buddi/gateway/dist/cli.d.ts +14 -0
  183. package/node_modules/@buddi/gateway/dist/cli.d.ts.map +1 -1
  184. package/node_modules/@buddi/gateway/dist/cli.js +208 -37
  185. package/node_modules/@buddi/gateway/dist/cli.js.map +1 -1
  186. package/node_modules/@buddi/gateway/dist/db-ready.d.ts +2 -1
  187. package/node_modules/@buddi/gateway/dist/db-ready.d.ts.map +1 -1
  188. package/node_modules/@buddi/gateway/dist/db-ready.js +3 -2
  189. package/node_modules/@buddi/gateway/dist/db-ready.js.map +1 -1
  190. package/node_modules/@buddi/gateway/dist/index.d.ts +4 -1
  191. package/node_modules/@buddi/gateway/dist/index.d.ts.map +1 -1
  192. package/node_modules/@buddi/gateway/dist/index.js +5 -1
  193. package/node_modules/@buddi/gateway/dist/index.js.map +1 -1
  194. package/node_modules/@buddi/gateway/dist/mcp/requests.d.ts +1 -1
  195. package/node_modules/@buddi/gateway/dist/mcp/requests.js +1 -1
  196. package/node_modules/@buddi/gateway/dist/missions/agent-run.d.ts.map +1 -1
  197. package/node_modules/@buddi/gateway/dist/missions/agent-run.js +10 -1
  198. package/node_modules/@buddi/gateway/dist/missions/agent-run.js.map +1 -1
  199. package/node_modules/@buddi/gateway/dist/missions/execute.d.ts +16 -2
  200. package/node_modules/@buddi/gateway/dist/missions/execute.d.ts.map +1 -1
  201. package/node_modules/@buddi/gateway/dist/missions/execute.js +6 -1
  202. package/node_modules/@buddi/gateway/dist/missions/execute.js.map +1 -1
  203. package/node_modules/@buddi/gateway/dist/missions/goals-page.d.ts +1 -1
  204. package/node_modules/@buddi/gateway/dist/missions/goals-page.js +1 -1
  205. package/node_modules/@buddi/gateway/dist/missions/goals.d.ts +1 -1
  206. package/node_modules/@buddi/gateway/dist/missions/goals.js +1 -1
  207. package/node_modules/@buddi/gateway/dist/missions/watcher-mail.d.ts +1 -1
  208. package/node_modules/@buddi/gateway/dist/missions/watcher-mail.js +1 -1
  209. package/node_modules/@buddi/gateway/dist/missions-cli.d.ts +2 -0
  210. package/node_modules/@buddi/gateway/dist/missions-cli.d.ts.map +1 -1
  211. package/node_modules/@buddi/gateway/dist/missions-cli.js +53 -8
  212. package/node_modules/@buddi/gateway/dist/missions-cli.js.map +1 -1
  213. package/node_modules/@buddi/gateway/dist/owner-notify.d.ts +43 -0
  214. package/node_modules/@buddi/gateway/dist/owner-notify.d.ts.map +1 -0
  215. package/node_modules/@buddi/gateway/dist/owner-notify.js +87 -0
  216. package/node_modules/@buddi/gateway/dist/owner-notify.js.map +1 -0
  217. package/node_modules/@buddi/gateway/dist/owner-secrets.d.ts +3 -3
  218. package/node_modules/@buddi/gateway/dist/owner-secrets.js +3 -3
  219. package/node_modules/@buddi/gateway/dist/plugins/load.d.ts +1 -1
  220. package/node_modules/@buddi/gateway/dist/plugins/load.js +1 -1
  221. package/node_modules/@buddi/gateway/dist/plugins/scaffold.js +1 -1
  222. package/node_modules/@buddi/gateway/dist/plugins/stage.d.ts +2 -2
  223. package/node_modules/@buddi/gateway/dist/plugins/stage.js +1 -1
  224. package/node_modules/@buddi/gateway/dist/plugins-cli.d.ts +3 -1
  225. package/node_modules/@buddi/gateway/dist/plugins-cli.d.ts.map +1 -1
  226. package/node_modules/@buddi/gateway/dist/plugins-cli.js +11 -4
  227. package/node_modules/@buddi/gateway/dist/plugins-cli.js.map +1 -1
  228. package/node_modules/@buddi/gateway/dist/provider-accounts.js +1 -1
  229. package/node_modules/@buddi/gateway/dist/provider-accounts.js.map +1 -1
  230. package/node_modules/@buddi/gateway/dist/reminders-cli.d.ts +3 -1
  231. package/node_modules/@buddi/gateway/dist/reminders-cli.d.ts.map +1 -1
  232. package/node_modules/@buddi/gateway/dist/reminders-cli.js +21 -2
  233. package/node_modules/@buddi/gateway/dist/reminders-cli.js.map +1 -1
  234. package/node_modules/@buddi/gateway/dist/serve.d.ts +2 -0
  235. package/node_modules/@buddi/gateway/dist/serve.d.ts.map +1 -1
  236. package/node_modules/@buddi/gateway/dist/serve.js +62 -15
  237. package/node_modules/@buddi/gateway/dist/serve.js.map +1 -1
  238. package/node_modules/@buddi/gateway/dist/telegram/approvals.d.ts +3 -3
  239. package/node_modules/@buddi/gateway/dist/telegram/approvals.js +3 -3
  240. package/node_modules/@buddi/gateway/dist/telegram/channel.d.ts +30 -0
  241. package/node_modules/@buddi/gateway/dist/telegram/channel.d.ts.map +1 -0
  242. package/node_modules/@buddi/gateway/dist/telegram/channel.js +49 -0
  243. package/node_modules/@buddi/gateway/dist/telegram/channel.js.map +1 -0
  244. package/node_modules/@buddi/gateway/dist/telegram/surface.d.ts.map +1 -1
  245. package/node_modules/@buddi/gateway/dist/telegram/surface.js +4 -1
  246. package/node_modules/@buddi/gateway/dist/telegram/surface.js.map +1 -1
  247. package/node_modules/@buddi/gateway/dist/web/config.js +3 -3
  248. package/node_modules/@buddi/gateway/dist/web/http.d.ts +16 -3
  249. package/node_modules/@buddi/gateway/dist/web/http.d.ts.map +1 -1
  250. package/node_modules/@buddi/gateway/dist/web/http.js +39 -3
  251. package/node_modules/@buddi/gateway/dist/web/http.js.map +1 -1
  252. package/node_modules/@buddi/gateway/dist/web/notifications.d.ts +36 -0
  253. package/node_modules/@buddi/gateway/dist/web/notifications.d.ts.map +1 -0
  254. package/node_modules/@buddi/gateway/dist/web/notifications.js +63 -0
  255. package/node_modules/@buddi/gateway/dist/web/notifications.js.map +1 -0
  256. package/node_modules/@buddi/gateway/dist/web/onboarding.d.ts +1 -1
  257. package/node_modules/@buddi/gateway/dist/web/onboarding.js +1 -1
  258. package/node_modules/@buddi/gateway/dist/web/pages.js +1 -1
  259. package/node_modules/@buddi/gateway/dist/web/read.js +3 -3
  260. package/node_modules/@buddi/gateway/dist/web/secrets.d.ts +1 -1
  261. package/node_modules/@buddi/gateway/dist/web/server.d.ts +1 -1
  262. package/node_modules/@buddi/gateway/dist/web/server.d.ts.map +1 -1
  263. package/node_modules/@buddi/gateway/dist/web/server.js +37 -25
  264. package/node_modules/@buddi/gateway/dist/web/server.js.map +1 -1
  265. package/node_modules/@buddi/gateway/dist/web/version.d.ts +1 -0
  266. package/node_modules/@buddi/gateway/dist/web/version.d.ts.map +1 -1
  267. package/node_modules/@buddi/gateway/dist/web/version.js +2 -1
  268. package/node_modules/@buddi/gateway/dist/web/version.js.map +1 -1
  269. package/node_modules/@buddi/gateway/dist/web/write.js +1 -1
  270. package/node_modules/@buddi/install/dist/.tsbuildinfo +1 -1
  271. package/node_modules/@buddi/install/dist/environment.d.ts +29 -0
  272. package/node_modules/@buddi/install/dist/environment.d.ts.map +1 -1
  273. package/node_modules/@buddi/install/dist/environment.js +50 -1
  274. package/node_modules/@buddi/install/dist/environment.js.map +1 -1
  275. package/node_modules/@buddi/install/dist/launcher.d.ts +3 -1
  276. package/node_modules/@buddi/install/dist/launcher.d.ts.map +1 -1
  277. package/node_modules/@buddi/install/dist/launcher.js +93 -12
  278. package/node_modules/@buddi/install/dist/launcher.js.map +1 -1
  279. package/node_modules/@buddi/install/dist/upgrade.d.ts +16 -3
  280. package/node_modules/@buddi/install/dist/upgrade.d.ts.map +1 -1
  281. package/node_modules/@buddi/install/dist/upgrade.js +21 -7
  282. package/node_modules/@buddi/install/dist/upgrade.js.map +1 -1
  283. package/node_modules/@buddi/runtime/dist/.tsbuildinfo +1 -1
  284. package/node_modules/@buddi/runtime/dist/anthropic.d.ts +35 -2
  285. package/node_modules/@buddi/runtime/dist/anthropic.d.ts.map +1 -1
  286. package/node_modules/@buddi/runtime/dist/anthropic.js +36 -12
  287. package/node_modules/@buddi/runtime/dist/anthropic.js.map +1 -1
  288. package/node_modules/@buddi/runtime/dist/delegate.js +1 -1
  289. package/node_modules/@buddi/runtime/dist/loop.d.ts +13 -1
  290. package/node_modules/@buddi/runtime/dist/loop.d.ts.map +1 -1
  291. package/node_modules/@buddi/runtime/dist/loop.js +70 -3
  292. package/node_modules/@buddi/runtime/dist/loop.js.map +1 -1
  293. package/node_modules/@buddi/runtime/dist/openai.d.ts.map +1 -1
  294. package/node_modules/@buddi/runtime/dist/openai.js +9 -6
  295. package/node_modules/@buddi/runtime/dist/openai.js.map +1 -1
  296. package/node_modules/@buddi/tool-artifacts/dist/.tsbuildinfo +1 -1
  297. package/node_modules/@buddi/tool-artifacts/dist/index.d.ts +1 -1
  298. package/node_modules/@buddi/tool-browser/dist/.tsbuildinfo +1 -1
  299. package/node_modules/@buddi/tool-browser/dist/availability.d.ts +34 -8
  300. package/node_modules/@buddi/tool-browser/dist/availability.d.ts.map +1 -1
  301. package/node_modules/@buddi/tool-browser/dist/availability.js +44 -5
  302. package/node_modules/@buddi/tool-browser/dist/availability.js.map +1 -1
  303. package/node_modules/@buddi/tool-browser/dist/controller.d.ts +2 -2
  304. package/node_modules/@buddi/tool-browser/dist/controller.d.ts.map +1 -1
  305. package/node_modules/@buddi/tool-browser/dist/controller.js +7 -6
  306. package/node_modules/@buddi/tool-browser/dist/controller.js.map +1 -1
  307. package/node_modules/@buddi/tool-browser/dist/extension.d.ts +1 -1
  308. package/node_modules/@buddi/tool-browser/dist/extension.js +1 -1
  309. package/node_modules/@buddi/tool-browser/dist/host.d.ts +3 -1
  310. package/node_modules/@buddi/tool-browser/dist/host.d.ts.map +1 -1
  311. package/node_modules/@buddi/tool-browser/dist/host.js +5 -1
  312. package/node_modules/@buddi/tool-browser/dist/host.js.map +1 -1
  313. package/node_modules/@buddi/tool-browser/dist/index.d.ts +1 -1
  314. package/node_modules/@buddi/tool-browser/dist/index.d.ts.map +1 -1
  315. package/node_modules/@buddi/tool-browser/dist/index.js +1 -1
  316. package/node_modules/@buddi/tool-browser/dist/index.js.map +1 -1
  317. package/node_modules/@buddi/tool-browser/dist/secrets.d.ts +2 -2
  318. package/node_modules/@buddi/tool-browser/dist/service.d.ts +4 -4
  319. package/node_modules/@buddi/tool-browser/dist/service.d.ts.map +1 -1
  320. package/node_modules/@buddi/tool-browser/dist/service.js +1 -1
  321. package/node_modules/@buddi/tool-browser/dist/types.d.ts +1 -1
  322. package/node_modules/@buddi/tool-email/dist/.tsbuildinfo +1 -1
  323. package/node_modules/@buddi/tool-email/dist/attachments/safety.d.ts +1 -1
  324. package/node_modules/@buddi/tool-email/dist/attachments/safety.js +1 -1
  325. package/node_modules/@buddi/tool-email/dist/channel.d.ts +43 -0
  326. package/node_modules/@buddi/tool-email/dist/channel.d.ts.map +1 -0
  327. package/node_modules/@buddi/tool-email/dist/channel.js +99 -0
  328. package/node_modules/@buddi/tool-email/dist/channel.js.map +1 -0
  329. package/node_modules/@buddi/tool-email/dist/credentials.d.ts +1 -1
  330. package/node_modules/@buddi/tool-email/dist/dates.d.ts +1 -1
  331. package/node_modules/@buddi/tool-email/dist/dates.js +1 -1
  332. package/node_modules/@buddi/tool-email/dist/drafts.d.ts +2 -2
  333. package/node_modules/@buddi/tool-email/dist/drafts.js +1 -1
  334. package/node_modules/@buddi/tool-email/dist/index.d.ts +1 -0
  335. package/node_modules/@buddi/tool-email/dist/index.d.ts.map +1 -1
  336. package/node_modules/@buddi/tool-email/dist/index.js +13 -6
  337. package/node_modules/@buddi/tool-email/dist/index.js.map +1 -1
  338. package/node_modules/@buddi/tool-email/dist/mail.d.ts +4 -4
  339. package/node_modules/@buddi/tool-email/dist/mail.js +4 -4
  340. package/node_modules/@buddi/tool-email/dist/pages/accounts.d.ts +2 -2
  341. package/node_modules/@buddi/tool-email/dist/pages/descriptors.js +7 -7
  342. package/node_modules/@buddi/tool-email/dist/pages/descriptors.js.map +1 -1
  343. package/node_modules/@buddi/tool-email/dist/pages/drafts-tools.d.ts +1 -1
  344. package/node_modules/@buddi/tool-email/dist/pages/index.d.ts +1 -1
  345. package/node_modules/@buddi/tool-email/dist/pages/policies-tools.d.ts +2 -2
  346. package/node_modules/@buddi/tool-email/dist/pages/policies-tools.js +1 -1
  347. package/node_modules/@buddi/tool-email/dist/pages/queries.d.ts +2 -2
  348. package/node_modules/@buddi/tool-email/dist/pages/queries.d.ts.map +1 -1
  349. package/node_modules/@buddi/tool-email/dist/pages/queries.js +3 -3
  350. package/node_modules/@buddi/tool-email/dist/pages/queries.js.map +1 -1
  351. package/node_modules/@buddi/tool-email/dist/phrases.d.ts +2 -2
  352. package/node_modules/@buddi/tool-email/dist/phrases.js +2 -2
  353. package/node_modules/@buddi/tool-email/dist/policies/gate.js +2 -2
  354. package/node_modules/@buddi/tool-email/dist/policies/learn.d.ts +3 -3
  355. package/node_modules/@buddi/tool-email/dist/policies/learn.js +1 -1
  356. package/node_modules/@buddi/tool-email/dist/policies/learned.d.ts +1 -1
  357. package/node_modules/@buddi/tool-email/dist/ports.d.ts +4 -4
  358. package/node_modules/@buddi/tool-email/dist/ports.js +1 -1
  359. package/node_modules/@buddi/tool-email/dist/rows.d.ts +1 -1
  360. package/node_modules/@buddi/tool-email/dist/rows.js +1 -1
  361. package/node_modules/@buddi/tool-email/dist/search.js +2 -2
  362. package/node_modules/@buddi/tool-email/dist/sentinels/date-stated.d.ts +1 -1
  363. package/node_modules/@buddi/tool-email/dist/sentinels/index.d.ts +1 -1
  364. package/node_modules/@buddi/tool-email/dist/sentinels/index.js +1 -1
  365. package/node_modules/@buddi/tool-email/dist/sentinels/index.js.map +1 -1
  366. package/node_modules/@buddi/tool-email/dist/sentinels/promised-reply.d.ts +1 -1
  367. package/node_modules/@buddi/tool-email/dist/sentinels/receipt-or-bill.d.ts +1 -1
  368. package/node_modules/@buddi/tool-email/dist/sentinels/suspicious-sender.d.ts +1 -1
  369. package/node_modules/@buddi/tool-email/dist/sentinels/unanswered-by-them.d.ts +1 -1
  370. package/node_modules/@buddi/tool-email/dist/sentinels/waiting-on-me.d.ts +2 -2
  371. package/node_modules/@buddi/tool-email/dist/sentinels/waiting-on-me.d.ts.map +1 -1
  372. package/node_modules/@buddi/tool-email/dist/sentinels/waiting-on-me.js +1 -1
  373. package/node_modules/@buddi/tool-email/dist/sources/inbox-poll.js +5 -5
  374. package/node_modules/@buddi/tool-email/dist/sources/inbox-poll.js.map +1 -1
  375. package/node_modules/@buddi/tool-email/dist/sources/retention.js +1 -1
  376. package/node_modules/@buddi/tool-email/dist/sources/retention.js.map +1 -1
  377. package/node_modules/@buddi/tool-email/dist/suspicions-store.d.ts +1 -1
  378. package/node_modules/@buddi/tool-email/dist/tools/attachments.d.ts +1 -1
  379. package/node_modules/@buddi/tool-email/dist/tools/attachments.js +1 -1
  380. package/node_modules/@buddi/tool-email/dist/tools/drafts.d.ts +1 -1
  381. package/node_modules/@buddi/tool-email/dist/tools/drafts.js +3 -3
  382. package/node_modules/@buddi/tool-email/dist/tools/drafts.js.map +1 -1
  383. package/node_modules/@buddi/tool-email/dist/tools/policies.d.ts +1 -1
  384. package/node_modules/@buddi/tool-email/dist/tools/send.d.ts +1 -1
  385. package/node_modules/@buddi/tool-email/dist/tools/send.js +4 -4
  386. package/node_modules/@buddi/tool-email/dist/tools/send.js.map +1 -1
  387. package/node_modules/@buddi/tool-email/dist/tools/settings.d.ts +1 -1
  388. package/node_modules/@buddi/tool-email/dist/tools/triage.js +2 -2
  389. package/node_modules/@buddi/tool-email/dist/watchers.d.ts +1 -1
  390. package/node_modules/@buddi/tool-email/dist/watchers.js +1 -1
  391. package/node_modules/@buddi/tool-email/dist/watchers.js.map +1 -1
  392. package/node_modules/@buddi/tool-email/migrations/001_email.sql +3 -2
  393. package/node_modules/@buddi/tool-email/package.json +2 -1
  394. package/node_modules/@buddi/tool-host/dist/.tsbuildinfo +1 -1
  395. package/node_modules/@buddi/tool-memory/dist/.tsbuildinfo +1 -1
  396. package/node_modules/@buddi/tool-memory/dist/index.js +1 -1
  397. package/node_modules/@buddi/tool-memory/migrations/001_memory.sql +1 -1
  398. package/node_modules/@buddi/tool-web/dist/.tsbuildinfo +1 -1
  399. package/node_modules/@buddi/tool-web/dist/guard.d.ts +1 -1
  400. package/node_modules/@buddi/tool-web/dist/guard.js +1 -1
  401. package/package.json +6 -2
  402. package/packages/cli/dist/.tsbuildinfo +1 -1
  403. package/packages/cli/dist/args.d.ts +9 -3
  404. package/packages/cli/dist/args.d.ts.map +1 -1
  405. package/packages/cli/dist/args.js +25 -89
  406. package/packages/cli/dist/args.js.map +1 -1
  407. package/packages/cli/dist/backup/index.d.ts +2 -0
  408. package/packages/cli/dist/backup/index.d.ts.map +1 -1
  409. package/packages/cli/dist/backup/index.js +13 -4
  410. package/packages/cli/dist/backup/index.js.map +1 -1
  411. package/packages/cli/dist/commands.d.ts +94 -0
  412. package/packages/cli/dist/commands.d.ts.map +1 -0
  413. package/packages/cli/dist/commands.js +993 -0
  414. package/packages/cli/dist/commands.js.map +1 -0
  415. package/packages/cli/dist/index.d.ts +3 -1
  416. package/packages/cli/dist/index.d.ts.map +1 -1
  417. package/packages/cli/dist/index.js +3 -1
  418. package/packages/cli/dist/index.js.map +1 -1
  419. package/packages/cli/dist/jobs-cmd.d.ts +4 -0
  420. package/packages/cli/dist/jobs-cmd.d.ts.map +1 -1
  421. package/packages/cli/dist/jobs-cmd.js +26 -7
  422. package/packages/cli/dist/jobs-cmd.js.map +1 -1
  423. package/packages/cli/dist/main.d.ts +9 -2
  424. package/packages/cli/dist/main.d.ts.map +1 -1
  425. package/packages/cli/dist/main.js +246 -30
  426. package/packages/cli/dist/main.js.map +1 -1
  427. package/packages/cli/dist/mcp/gateway-client.d.ts +1 -1
  428. package/packages/cli/dist/mcp/gateway-client.js +1 -1
  429. package/packages/cli/dist/mcp/secrets.d.ts +1 -1
  430. package/packages/cli/dist/mcp/secrets.js +1 -1
  431. package/packages/cli/dist/mcp/server.d.ts +1 -1
  432. package/packages/cli/dist/mcp/server.js +1 -1
  433. package/packages/cli/dist/mcp/tools.d.ts +1 -1
  434. package/packages/cli/dist/mcp/tools.js +1 -1
  435. package/packages/cli/dist/paths.d.ts +8 -5
  436. package/packages/cli/dist/paths.d.ts.map +1 -1
  437. package/packages/cli/dist/paths.js +36 -10
  438. package/packages/cli/dist/paths.js.map +1 -1
  439. package/packages/cli/dist/status.d.ts +70 -0
  440. package/packages/cli/dist/status.d.ts.map +1 -0
  441. package/packages/cli/dist/status.js +122 -0
  442. package/packages/cli/dist/status.js.map +1 -0
  443. package/packages/cli/dist/style.d.ts +13 -0
  444. package/packages/cli/dist/style.d.ts.map +1 -0
  445. package/packages/cli/dist/style.js +10 -0
  446. package/packages/cli/dist/style.js.map +1 -0
  447. package/packages/cli/dist/telegram-cmd.d.ts +1 -1
  448. package/packages/cli/dist/telegram-cmd.d.ts.map +1 -1
  449. package/packages/cli/dist/telegram-cmd.js +23 -6
  450. package/packages/cli/dist/telegram-cmd.js.map +1 -1
  451. package/packages/cli/dist/vault-cmd.js +3 -3
  452. package/packages/core/dist/.tsbuildinfo +1 -1
  453. package/packages/core/dist/actions/approvals.d.ts +0 -17
  454. package/packages/core/dist/actions/approvals.d.ts.map +1 -1
  455. package/packages/core/dist/actions/approvals.js +21 -0
  456. package/packages/core/dist/actions/approvals.js.map +1 -1
  457. package/packages/core/dist/actions/execute.d.ts +1 -1
  458. package/packages/core/dist/actions/jobs.d.ts +1 -1
  459. package/packages/core/dist/actions/types.js +1 -1
  460. package/packages/core/dist/agents/provider-from-env.d.ts +1 -1
  461. package/packages/core/dist/agents/provider-from-env.js +1 -1
  462. package/packages/core/dist/agents/skills.js +1 -1
  463. package/packages/core/dist/goals/types.d.ts +1 -1
  464. package/packages/core/dist/goals/types.js +1 -1
  465. package/packages/core/dist/host/build.d.ts +15 -1
  466. package/packages/core/dist/host/build.d.ts.map +1 -1
  467. package/packages/core/dist/host/build.js +101 -3
  468. package/packages/core/dist/host/build.js.map +1 -1
  469. package/packages/core/dist/host/http.d.ts +1 -1
  470. package/packages/core/dist/host/http.d.ts.map +1 -1
  471. package/packages/core/dist/host/http.js +1 -1
  472. package/packages/core/dist/host/http.js.map +1 -1
  473. package/packages/core/dist/host/types.d.ts +92 -5
  474. package/packages/core/dist/host/types.d.ts.map +1 -1
  475. package/packages/core/dist/index.d.ts +1 -0
  476. package/packages/core/dist/index.d.ts.map +1 -1
  477. package/packages/core/dist/index.js +1 -0
  478. package/packages/core/dist/index.js.map +1 -1
  479. package/packages/core/dist/learning/echoes.d.ts +1 -1
  480. package/packages/core/dist/learning/echoes.js +1 -1
  481. package/packages/core/dist/learning/policies.d.ts +1 -1
  482. package/packages/core/dist/learning/skill-files.js +1 -1
  483. package/packages/core/dist/learning/types.d.ts +2 -2
  484. package/packages/core/dist/notifications/channels.d.ts +37 -0
  485. package/packages/core/dist/notifications/channels.d.ts.map +1 -0
  486. package/packages/core/dist/notifications/channels.js +87 -0
  487. package/packages/core/dist/notifications/channels.js.map +1 -0
  488. package/packages/core/dist/notifications/index.d.ts +5 -0
  489. package/packages/core/dist/notifications/index.d.ts.map +1 -0
  490. package/packages/core/dist/notifications/index.js +5 -0
  491. package/packages/core/dist/notifications/index.js.map +1 -0
  492. package/packages/core/dist/notifications/notify.d.ts +35 -0
  493. package/packages/core/dist/notifications/notify.d.ts.map +1 -0
  494. package/packages/core/dist/notifications/notify.js +262 -0
  495. package/packages/core/dist/notifications/notify.js.map +1 -0
  496. package/packages/core/dist/notifications/store.d.ts +48 -0
  497. package/packages/core/dist/notifications/store.d.ts.map +1 -0
  498. package/packages/core/dist/notifications/store.js +207 -0
  499. package/packages/core/dist/notifications/store.js.map +1 -0
  500. package/packages/core/dist/notifications/types.d.ts +136 -0
  501. package/packages/core/dist/notifications/types.d.ts.map +1 -0
  502. package/packages/core/dist/notifications/types.js +5 -0
  503. package/packages/core/dist/notifications/types.js.map +1 -0
  504. package/packages/core/dist/owner.js +1 -1
  505. package/packages/core/dist/pages/__fixtures__/demo.js +1 -1
  506. package/packages/core/dist/pages.d.ts +4 -4
  507. package/packages/core/dist/pages.js +1 -1
  508. package/packages/core/dist/plugin/index.d.ts +2 -2
  509. package/packages/core/dist/plugin/index.d.ts.map +1 -1
  510. package/packages/core/dist/plugin/index.js +1 -1
  511. package/packages/core/dist/plugin/search.d.ts +1 -1
  512. package/packages/core/dist/plugin/search.js +1 -1
  513. package/packages/core/dist/plugin/url.js +1 -1
  514. package/packages/core/dist/plugin/uses.d.ts +2 -2
  515. package/packages/core/dist/plugin/uses.d.ts.map +1 -1
  516. package/packages/core/dist/plugin/uses.js +5 -1
  517. package/packages/core/dist/plugin/uses.js.map +1 -1
  518. package/packages/core/dist/plugin/version.d.ts +2 -2
  519. package/packages/core/dist/plugin/version.js +2 -2
  520. package/packages/core/dist/provider.d.ts +1 -1
  521. package/packages/core/dist/provider.js +1 -1
  522. package/packages/core/dist/queue/retry-policy.d.ts +1 -1
  523. package/packages/core/dist/queue/retry-policy.js +1 -1
  524. package/packages/core/dist/registry.d.ts.map +1 -1
  525. package/packages/core/dist/registry.js +4 -5
  526. package/packages/core/dist/registry.js.map +1 -1
  527. package/packages/core/dist/reminders/store.d.ts +1 -1
  528. package/packages/core/dist/reminders/store.js +1 -1
  529. package/packages/core/dist/reminders/types.d.ts +1 -1
  530. package/packages/core/dist/reminders/types.js +1 -1
  531. package/packages/core/dist/secrets/approval.d.ts +1 -1
  532. package/packages/core/dist/secrets/approval.js +1 -1
  533. package/packages/core/dist/secrets/destinations.d.ts +1 -1
  534. package/packages/core/dist/secrets/scrub.js +1 -1
  535. package/packages/core/dist/secrets/settings.js +1 -1
  536. package/packages/core/dist/secrets/store.d.ts +1 -1
  537. package/packages/core/dist/secrets/totp.js +1 -1
  538. package/packages/core/dist/secrets/use.d.ts +1 -1
  539. package/packages/core/dist/sentinels/types.d.ts +1 -1
  540. package/packages/core/dist/testing/index.d.ts +1 -1
  541. package/packages/core/dist/testing/index.js +1 -1
  542. package/packages/core/dist/time.d.ts +12 -0
  543. package/packages/core/dist/time.d.ts.map +1 -1
  544. package/packages/core/dist/time.js +46 -0
  545. package/packages/core/dist/time.js.map +1 -1
  546. package/packages/core/dist/tools.d.ts +10 -10
  547. package/packages/core/dist/vault/file.js +2 -2
  548. package/packages/core/dist/vault/keychain.js +1 -1
  549. package/packages/core/dist/vault/keychain.js.map +1 -1
  550. package/packages/core/dist/vault/resolve.d.ts +3 -3
  551. package/packages/core/dist/vault/resolve.js +3 -3
  552. package/packages/core/dist/vault/types.d.ts +1 -1
  553. package/packages/core/dist/vault/types.js +2 -2
  554. package/packages/core/migrations/003_owner_surfaces.sql +1 -1
  555. package/packages/core/migrations/005_artifacts.sql +1 -1
  556. package/packages/core/migrations/009_queue.sql +1 -2
  557. package/packages/core/migrations/010_actions.sql +1 -1
  558. package/packages/core/migrations/043_owner_notifications.sql +77 -0
  559. package/packages/gateway/dist/.tsbuildinfo +1 -1
  560. package/packages/gateway/dist/agents/catalog.d.ts.map +1 -1
  561. package/packages/gateway/dist/agents/catalog.js +5 -6
  562. package/packages/gateway/dist/agents/catalog.js.map +1 -1
  563. package/packages/gateway/dist/agents/learned-skills.js +1 -1
  564. package/packages/gateway/dist/agents/learning-digest.d.ts +1 -1
  565. package/packages/gateway/dist/agents/learning-digest.js +1 -1
  566. package/packages/gateway/dist/agents/learning.d.ts +1 -1
  567. package/packages/gateway/dist/agents/learning.js +1 -1
  568. package/packages/gateway/dist/agents-cli.d.ts +25 -1
  569. package/packages/gateway/dist/agents-cli.d.ts.map +1 -1
  570. package/packages/gateway/dist/agents-cli.js +91 -27
  571. package/packages/gateway/dist/agents-cli.js.map +1 -1
  572. package/packages/gateway/dist/bootstrap.d.ts.map +1 -1
  573. package/packages/gateway/dist/bootstrap.js +10 -2
  574. package/packages/gateway/dist/bootstrap.js.map +1 -1
  575. package/packages/gateway/dist/channels/local-notification.d.ts +39 -0
  576. package/packages/gateway/dist/channels/local-notification.d.ts.map +1 -0
  577. package/packages/gateway/dist/channels/local-notification.js +154 -0
  578. package/packages/gateway/dist/channels/local-notification.js.map +1 -0
  579. package/packages/gateway/dist/chat/approvals.d.ts +3 -3
  580. package/packages/gateway/dist/chat/approvals.js +3 -3
  581. package/packages/gateway/dist/cli.d.ts +14 -0
  582. package/packages/gateway/dist/cli.d.ts.map +1 -1
  583. package/packages/gateway/dist/cli.js +208 -37
  584. package/packages/gateway/dist/cli.js.map +1 -1
  585. package/packages/gateway/dist/db-ready.d.ts +2 -1
  586. package/packages/gateway/dist/db-ready.d.ts.map +1 -1
  587. package/packages/gateway/dist/db-ready.js +3 -2
  588. package/packages/gateway/dist/db-ready.js.map +1 -1
  589. package/packages/gateway/dist/index.d.ts +4 -1
  590. package/packages/gateway/dist/index.d.ts.map +1 -1
  591. package/packages/gateway/dist/index.js +5 -1
  592. package/packages/gateway/dist/index.js.map +1 -1
  593. package/packages/gateway/dist/mcp/requests.d.ts +1 -1
  594. package/packages/gateway/dist/mcp/requests.js +1 -1
  595. package/packages/gateway/dist/missions/agent-run.d.ts.map +1 -1
  596. package/packages/gateway/dist/missions/agent-run.js +10 -1
  597. package/packages/gateway/dist/missions/agent-run.js.map +1 -1
  598. package/packages/gateway/dist/missions/execute.d.ts +16 -2
  599. package/packages/gateway/dist/missions/execute.d.ts.map +1 -1
  600. package/packages/gateway/dist/missions/execute.js +6 -1
  601. package/packages/gateway/dist/missions/execute.js.map +1 -1
  602. package/packages/gateway/dist/missions/goals-page.d.ts +1 -1
  603. package/packages/gateway/dist/missions/goals-page.js +1 -1
  604. package/packages/gateway/dist/missions/goals.d.ts +1 -1
  605. package/packages/gateway/dist/missions/goals.js +1 -1
  606. package/packages/gateway/dist/missions/watcher-mail.d.ts +1 -1
  607. package/packages/gateway/dist/missions/watcher-mail.js +1 -1
  608. package/packages/gateway/dist/missions-cli.d.ts +2 -0
  609. package/packages/gateway/dist/missions-cli.d.ts.map +1 -1
  610. package/packages/gateway/dist/missions-cli.js +53 -8
  611. package/packages/gateway/dist/missions-cli.js.map +1 -1
  612. package/packages/gateway/dist/owner-notify.d.ts +43 -0
  613. package/packages/gateway/dist/owner-notify.d.ts.map +1 -0
  614. package/packages/gateway/dist/owner-notify.js +87 -0
  615. package/packages/gateway/dist/owner-notify.js.map +1 -0
  616. package/packages/gateway/dist/owner-secrets.d.ts +3 -3
  617. package/packages/gateway/dist/owner-secrets.js +3 -3
  618. package/packages/gateway/dist/plugins/load.d.ts +1 -1
  619. package/packages/gateway/dist/plugins/load.js +1 -1
  620. package/packages/gateway/dist/plugins/scaffold.js +1 -1
  621. package/packages/gateway/dist/plugins/stage.d.ts +2 -2
  622. package/packages/gateway/dist/plugins/stage.js +1 -1
  623. package/packages/gateway/dist/plugins-cli.d.ts +3 -1
  624. package/packages/gateway/dist/plugins-cli.d.ts.map +1 -1
  625. package/packages/gateway/dist/plugins-cli.js +11 -4
  626. package/packages/gateway/dist/plugins-cli.js.map +1 -1
  627. package/packages/gateway/dist/provider-accounts.js +1 -1
  628. package/packages/gateway/dist/provider-accounts.js.map +1 -1
  629. package/packages/gateway/dist/reminders-cli.d.ts +3 -1
  630. package/packages/gateway/dist/reminders-cli.d.ts.map +1 -1
  631. package/packages/gateway/dist/reminders-cli.js +21 -2
  632. package/packages/gateway/dist/reminders-cli.js.map +1 -1
  633. package/packages/gateway/dist/serve.d.ts +2 -0
  634. package/packages/gateway/dist/serve.d.ts.map +1 -1
  635. package/packages/gateway/dist/serve.js +62 -15
  636. package/packages/gateway/dist/serve.js.map +1 -1
  637. package/packages/gateway/dist/telegram/approvals.d.ts +3 -3
  638. package/packages/gateway/dist/telegram/approvals.js +3 -3
  639. package/packages/gateway/dist/telegram/channel.d.ts +30 -0
  640. package/packages/gateway/dist/telegram/channel.d.ts.map +1 -0
  641. package/packages/gateway/dist/telegram/channel.js +49 -0
  642. package/packages/gateway/dist/telegram/channel.js.map +1 -0
  643. package/packages/gateway/dist/telegram/surface.d.ts.map +1 -1
  644. package/packages/gateway/dist/telegram/surface.js +4 -1
  645. package/packages/gateway/dist/telegram/surface.js.map +1 -1
  646. package/packages/gateway/dist/web/config.js +3 -3
  647. package/packages/gateway/dist/web/http.d.ts +16 -3
  648. package/packages/gateway/dist/web/http.d.ts.map +1 -1
  649. package/packages/gateway/dist/web/http.js +39 -3
  650. package/packages/gateway/dist/web/http.js.map +1 -1
  651. package/packages/gateway/dist/web/notifications.d.ts +36 -0
  652. package/packages/gateway/dist/web/notifications.d.ts.map +1 -0
  653. package/packages/gateway/dist/web/notifications.js +63 -0
  654. package/packages/gateway/dist/web/notifications.js.map +1 -0
  655. package/packages/gateway/dist/web/onboarding.d.ts +1 -1
  656. package/packages/gateway/dist/web/onboarding.js +1 -1
  657. package/packages/gateway/dist/web/pages.js +1 -1
  658. package/packages/gateway/dist/web/read.js +3 -3
  659. package/packages/gateway/dist/web/secrets.d.ts +1 -1
  660. package/packages/gateway/dist/web/server.d.ts +1 -1
  661. package/packages/gateway/dist/web/server.d.ts.map +1 -1
  662. package/packages/gateway/dist/web/server.js +37 -25
  663. package/packages/gateway/dist/web/server.js.map +1 -1
  664. package/packages/gateway/dist/web/version.d.ts +1 -0
  665. package/packages/gateway/dist/web/version.d.ts.map +1 -1
  666. package/packages/gateway/dist/web/version.js +2 -1
  667. package/packages/gateway/dist/web/version.js.map +1 -1
  668. package/packages/gateway/dist/web/write.js +1 -1
  669. package/packages/install/dist/.tsbuildinfo +1 -1
  670. package/packages/install/dist/environment.d.ts +29 -0
  671. package/packages/install/dist/environment.d.ts.map +1 -1
  672. package/packages/install/dist/environment.js +50 -1
  673. package/packages/install/dist/environment.js.map +1 -1
  674. package/packages/install/dist/launcher.d.ts +3 -1
  675. package/packages/install/dist/launcher.d.ts.map +1 -1
  676. package/packages/install/dist/launcher.js +93 -12
  677. package/packages/install/dist/launcher.js.map +1 -1
  678. package/packages/install/dist/upgrade.d.ts +16 -3
  679. package/packages/install/dist/upgrade.d.ts.map +1 -1
  680. package/packages/install/dist/upgrade.js +21 -7
  681. package/packages/install/dist/upgrade.js.map +1 -1
  682. package/packages/runtime/dist/.tsbuildinfo +1 -1
  683. package/packages/runtime/dist/anthropic.d.ts +35 -2
  684. package/packages/runtime/dist/anthropic.d.ts.map +1 -1
  685. package/packages/runtime/dist/anthropic.js +36 -12
  686. package/packages/runtime/dist/anthropic.js.map +1 -1
  687. package/packages/runtime/dist/delegate.js +1 -1
  688. package/packages/runtime/dist/loop.d.ts +13 -1
  689. package/packages/runtime/dist/loop.d.ts.map +1 -1
  690. package/packages/runtime/dist/loop.js +70 -3
  691. package/packages/runtime/dist/loop.js.map +1 -1
  692. package/packages/runtime/dist/openai.d.ts.map +1 -1
  693. package/packages/runtime/dist/openai.js +9 -6
  694. package/packages/runtime/dist/openai.js.map +1 -1
  695. package/packages/tools/artifacts/dist/.tsbuildinfo +1 -1
  696. package/packages/tools/artifacts/dist/index.d.ts +1 -1
  697. package/packages/tools/browser/dist/.tsbuildinfo +1 -1
  698. package/packages/tools/browser/dist/availability.d.ts +34 -8
  699. package/packages/tools/browser/dist/availability.d.ts.map +1 -1
  700. package/packages/tools/browser/dist/availability.js +44 -5
  701. package/packages/tools/browser/dist/availability.js.map +1 -1
  702. package/packages/tools/browser/dist/controller.d.ts +2 -2
  703. package/packages/tools/browser/dist/controller.d.ts.map +1 -1
  704. package/packages/tools/browser/dist/controller.js +7 -6
  705. package/packages/tools/browser/dist/controller.js.map +1 -1
  706. package/packages/tools/browser/dist/extension.d.ts +1 -1
  707. package/packages/tools/browser/dist/extension.js +1 -1
  708. package/packages/tools/browser/dist/host.d.ts +3 -1
  709. package/packages/tools/browser/dist/host.d.ts.map +1 -1
  710. package/packages/tools/browser/dist/host.js +5 -1
  711. package/packages/tools/browser/dist/host.js.map +1 -1
  712. package/packages/tools/browser/dist/index.d.ts +1 -1
  713. package/packages/tools/browser/dist/index.d.ts.map +1 -1
  714. package/packages/tools/browser/dist/index.js +1 -1
  715. package/packages/tools/browser/dist/index.js.map +1 -1
  716. package/packages/tools/browser/dist/secrets.d.ts +2 -2
  717. package/packages/tools/browser/dist/service.d.ts +4 -4
  718. package/packages/tools/browser/dist/service.d.ts.map +1 -1
  719. package/packages/tools/browser/dist/service.js +1 -1
  720. package/packages/tools/browser/dist/types.d.ts +1 -1
  721. package/packages/tools/email/dist/.tsbuildinfo +1 -1
  722. package/packages/tools/email/dist/attachments/safety.d.ts +1 -1
  723. package/packages/tools/email/dist/attachments/safety.js +1 -1
  724. package/packages/tools/email/dist/channel.d.ts +43 -0
  725. package/packages/tools/email/dist/channel.d.ts.map +1 -0
  726. package/packages/tools/email/dist/channel.js +99 -0
  727. package/packages/tools/email/dist/channel.js.map +1 -0
  728. package/packages/tools/email/dist/credentials.d.ts +1 -1
  729. package/packages/tools/email/dist/dates.d.ts +1 -1
  730. package/packages/tools/email/dist/dates.js +1 -1
  731. package/packages/tools/email/dist/drafts.d.ts +2 -2
  732. package/packages/tools/email/dist/drafts.js +1 -1
  733. package/packages/tools/email/dist/index.d.ts +1 -0
  734. package/packages/tools/email/dist/index.d.ts.map +1 -1
  735. package/packages/tools/email/dist/index.js +13 -6
  736. package/packages/tools/email/dist/index.js.map +1 -1
  737. package/packages/tools/email/dist/mail.d.ts +4 -4
  738. package/packages/tools/email/dist/mail.js +4 -4
  739. package/packages/tools/email/dist/pages/accounts.d.ts +2 -2
  740. package/packages/tools/email/dist/pages/descriptors.js +7 -7
  741. package/packages/tools/email/dist/pages/descriptors.js.map +1 -1
  742. package/packages/tools/email/dist/pages/drafts-tools.d.ts +1 -1
  743. package/packages/tools/email/dist/pages/index.d.ts +1 -1
  744. package/packages/tools/email/dist/pages/policies-tools.d.ts +2 -2
  745. package/packages/tools/email/dist/pages/policies-tools.js +1 -1
  746. package/packages/tools/email/dist/pages/queries.d.ts +2 -2
  747. package/packages/tools/email/dist/pages/queries.d.ts.map +1 -1
  748. package/packages/tools/email/dist/pages/queries.js +3 -3
  749. package/packages/tools/email/dist/pages/queries.js.map +1 -1
  750. package/packages/tools/email/dist/phrases.d.ts +2 -2
  751. package/packages/tools/email/dist/phrases.js +2 -2
  752. package/packages/tools/email/dist/policies/gate.js +2 -2
  753. package/packages/tools/email/dist/policies/learn.d.ts +3 -3
  754. package/packages/tools/email/dist/policies/learn.js +1 -1
  755. package/packages/tools/email/dist/policies/learned.d.ts +1 -1
  756. package/packages/tools/email/dist/ports.d.ts +4 -4
  757. package/packages/tools/email/dist/ports.js +1 -1
  758. package/packages/tools/email/dist/rows.d.ts +1 -1
  759. package/packages/tools/email/dist/rows.js +1 -1
  760. package/packages/tools/email/dist/search.js +2 -2
  761. package/packages/tools/email/dist/sentinels/date-stated.d.ts +1 -1
  762. package/packages/tools/email/dist/sentinels/index.d.ts +1 -1
  763. package/packages/tools/email/dist/sentinels/index.js +1 -1
  764. package/packages/tools/email/dist/sentinels/index.js.map +1 -1
  765. package/packages/tools/email/dist/sentinels/promised-reply.d.ts +1 -1
  766. package/packages/tools/email/dist/sentinels/receipt-or-bill.d.ts +1 -1
  767. package/packages/tools/email/dist/sentinels/suspicious-sender.d.ts +1 -1
  768. package/packages/tools/email/dist/sentinels/unanswered-by-them.d.ts +1 -1
  769. package/packages/tools/email/dist/sentinels/waiting-on-me.d.ts +2 -2
  770. package/packages/tools/email/dist/sentinels/waiting-on-me.d.ts.map +1 -1
  771. package/packages/tools/email/dist/sentinels/waiting-on-me.js +1 -1
  772. package/packages/tools/email/dist/sources/inbox-poll.js +5 -5
  773. package/packages/tools/email/dist/sources/inbox-poll.js.map +1 -1
  774. package/packages/tools/email/dist/sources/retention.js +1 -1
  775. package/packages/tools/email/dist/sources/retention.js.map +1 -1
  776. package/packages/tools/email/dist/suspicions-store.d.ts +1 -1
  777. package/packages/tools/email/dist/tools/attachments.d.ts +1 -1
  778. package/packages/tools/email/dist/tools/attachments.js +1 -1
  779. package/packages/tools/email/dist/tools/drafts.d.ts +1 -1
  780. package/packages/tools/email/dist/tools/drafts.js +3 -3
  781. package/packages/tools/email/dist/tools/drafts.js.map +1 -1
  782. package/packages/tools/email/dist/tools/policies.d.ts +1 -1
  783. package/packages/tools/email/dist/tools/send.d.ts +1 -1
  784. package/packages/tools/email/dist/tools/send.js +4 -4
  785. package/packages/tools/email/dist/tools/send.js.map +1 -1
  786. package/packages/tools/email/dist/tools/settings.d.ts +1 -1
  787. package/packages/tools/email/dist/tools/triage.js +2 -2
  788. package/packages/tools/email/dist/watchers.d.ts +1 -1
  789. package/packages/tools/email/dist/watchers.js +1 -1
  790. package/packages/tools/email/dist/watchers.js.map +1 -1
  791. package/packages/tools/email/migrations/001_email.sql +3 -2
  792. package/packages/tools/email/package.json +2 -1
  793. package/packages/tools/host/dist/.tsbuildinfo +1 -1
  794. package/packages/tools/memory/dist/.tsbuildinfo +1 -1
  795. package/packages/tools/memory/dist/index.js +1 -1
  796. package/packages/tools/memory/migrations/001_memory.sql +1 -1
  797. package/packages/tools/web/dist/.tsbuildinfo +1 -1
  798. package/packages/tools/web/dist/guard.d.ts +1 -1
  799. package/packages/tools/web/dist/guard.js +1 -1
  800. package/packages/web/dist/assets/dm-mono-latin-400-normal--0xN8mdc.woff +0 -0
  801. package/packages/web/dist/assets/dm-mono-latin-400-normal-4GdczIuU.woff2 +0 -0
  802. package/packages/web/dist/assets/dm-mono-latin-500-normal-CN8Miw6E.woff +0 -0
  803. package/packages/web/dist/assets/dm-mono-latin-500-normal-DRMDZjhP.woff2 +0 -0
  804. package/packages/web/dist/assets/dm-mono-latin-ext-400-normal-1aZr6b2b.woff +0 -0
  805. package/packages/web/dist/assets/dm-mono-latin-ext-400-normal-C2zvOubV.woff2 +0 -0
  806. package/packages/web/dist/assets/dm-mono-latin-ext-500-normal-BtRyHRi6.woff2 +0 -0
  807. package/packages/web/dist/assets/dm-mono-latin-ext-500-normal-Dw3M13d8.woff +0 -0
  808. package/packages/web/dist/assets/dm-sans-latin-ext-standard-italic-DNX9AbKj.woff2 +0 -0
  809. package/packages/web/dist/assets/dm-sans-latin-ext-standard-normal-oos9povj.woff2 +0 -0
  810. package/packages/web/dist/assets/dm-sans-latin-standard-italic-C8i6y2Ft.woff2 +0 -0
  811. package/packages/web/dist/assets/dm-sans-latin-standard-normal-Bf69Tn_J.woff2 +0 -0
  812. package/packages/web/dist/assets/index-BRkIoT-q.js +123 -0
  813. package/packages/web/dist/assets/index-DCn0vN58.css +1 -0
  814. package/packages/web/dist/index.html +2 -2
  815. package/packages/web/dist/assets/index-CxaF2koC.js +0 -122
  816. package/packages/web/dist/assets/index-DEho_xyR.css +0 -1
@@ -7,12 +7,12 @@
7
7
  * working through the symlink `pnpm link --global` leaves behind (Node resolves
8
8
  * the entry point's real path before this module is evaluated).
9
9
  */
10
- import { existsSync } from 'node:fs';
10
+ import { existsSync, readFileSync } from 'node:fs';
11
11
  import path from 'node:path';
12
12
  import { fileURLToPath } from 'node:url';
13
13
  import { hydrateDatabaseUrl } from '@buddi/core';
14
- import { loadPluginsOnce } from '@buddi/gateway';
15
- import { config as loadDotenv } from 'dotenv';
14
+ import { hydrateSecrets, loadPluginsOnce } from '@buddi/gateway';
15
+ import { config as loadDotenv, parse as parseDotenv } from 'dotenv';
16
16
  /** `packages/cli/dist` at runtime, `packages/cli/src` under vitest. */
17
17
  export const MODULE_DIR = path.dirname(fileURLToPath(import.meta.url));
18
18
  /** A directory is the repo root when it holds the workspace manifest. */
@@ -36,10 +36,25 @@ export function findRepoRoot(start, exists = isRepoRoot) {
36
36
  }
37
37
  }
38
38
  export const REPO_ROOT = process.env.BUDDI_INSTALL_ROOT ?? findRepoRoot(MODULE_DIR);
39
+ export const ENV_FILE = process.env.BUDDI_ENV_FILE ?? path.join(REPO_ROOT, '.env');
40
+ /**
41
+ * One value out of `.env` before `.env` is loaded: the data directory decides
42
+ * where the logs, the backups and the service units point, and those paths
43
+ * are computed here at import, before any command calls `loadEnv()`. Read
44
+ * from the file directly so `BUDDI_DATA_DIR=` in `.env` is honoured the same
45
+ * as the variable in the environment, which wins when both are set.
46
+ */
47
+ function envFileValue(name) {
48
+ try {
49
+ return parseDotenv(readFileSync(ENV_FILE, 'utf8'))[name];
50
+ }
51
+ catch {
52
+ return undefined;
53
+ }
54
+ }
39
55
  /** Everything the installation writes: artifacts, logs. Overridable for tests. */
40
- export const DATA_DIR = process.env.BUDDI_DATA_DIR ?? path.join(REPO_ROOT, 'data');
56
+ export const DATA_DIR = process.env.BUDDI_DATA_DIR ?? envFileValue('BUDDI_DATA_DIR') ?? path.join(REPO_ROOT, 'data');
41
57
  export const LOG_DIR = path.join(DATA_DIR, 'logs');
42
- export const ENV_FILE = process.env.BUDDI_ENV_FILE ?? path.join(REPO_ROOT, '.env');
43
58
  export const ENV_EXAMPLE_FILE = path.join(REPO_ROOT, '.env.example');
44
59
  /** What the service supervises: the built long-running process. */
45
60
  export const SERVE_ENTRY = path.join(REPO_ROOT, 'packages', 'gateway', 'dist', 'serve.js');
@@ -52,11 +67,14 @@ export function loadEnv() {
52
67
  loadDotenv({ path: ENV_FILE });
53
68
  }
54
69
  /**
55
- * `.env`, and then the one variable that is deliberately no longer in it.
70
+ * `.env`, and then what is deliberately no longer in it.
56
71
  *
57
- * `DATABASE_URL` is assembled from the vault at runtime rather than written
58
- * into `.env` with the password in clear, and reading the vault is a keychain
59
- * call. Every subcommand waits on this before it touches `process.env.DATABASE_URL`.
72
+ * Provider keys and `DATABASE_URL` live in the vault, not in `.env` in clear,
73
+ * and reading the vault is a keychain call. The CLI hydrates the same names
74
+ * the gateway does at boot (`hydrateSecrets`), so `buddi status` and
75
+ * `buddi agents` judge an agent by the key the vault holds rather than by an
76
+ * environment variable nobody sets any more. Every subcommand waits on this
77
+ * before it touches `process.env.DATABASE_URL`.
60
78
  */
61
79
  export async function loadEnvironment(env = process.env) {
62
80
  loadEnv();
@@ -64,6 +82,14 @@ export async function loadEnvironment(env = process.env) {
64
82
  // registry built before the record is read has none of their tools, and an
65
83
  // agent granted one of those tools then fails to load.
66
84
  await loadPluginsOnce(env);
67
- return hydrateDatabaseUrl(env);
85
+ try {
86
+ const hydrated = await hydrateSecrets(env);
87
+ return { url: env.DATABASE_URL, source: hydrated.database.source, legacyPassword: hydrated.database.legacyPassword };
88
+ }
89
+ catch {
90
+ // A vault that cannot be read (locked keychain, no keychain at all) must
91
+ // not stop a command that only needs the connection string.
92
+ return hydrateDatabaseUrl(env);
93
+ }
68
94
  }
69
95
  //# sourceMappingURL=paths.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"paths.js","sourceRoot":"","sources":["../src/paths.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,kBAAkB,EAA8B,MAAM,aAAa,CAAC;AAC7E,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,QAAQ,CAAC;AAE9C,uEAAuE;AACvE,MAAM,CAAC,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAEvE,yEAAyE;AACzE,MAAM,UAAU,UAAU,CAAC,GAAW;IACpC,OAAO,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,qBAAqB,CAAC,CAAC,CAAC;AAC3D,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAAC,KAAa,EAAE,SAAmC,UAAU;IACvF,IAAI,GAAG,GAAG,KAAK,CAAC;IAChB,SAAS,CAAC;QACR,IAAI,MAAM,CAAC,GAAG,CAAC;YAAE,OAAO,GAAG,CAAC;QAC5B,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACjC,IAAI,MAAM,KAAK,GAAG;YAAE,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QACjE,GAAG,GAAG,MAAM,CAAC;IACf,CAAC;AACH,CAAC;AAED,MAAM,CAAC,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,YAAY,CAAC,UAAU,CAAC,CAAC;AAEpF,kFAAkF;AAClF,MAAM,CAAC,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;AACnF,MAAM,CAAC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;AACnD,MAAM,CAAC,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;AACnF,MAAM,CAAC,MAAM,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;AACrE,mEAAmE;AACnE,MAAM,CAAC,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;AAC3F,+DAA+D;AAC/D,MAAM,CAAC,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;AACpF,wEAAwE;AACxE,MAAM,CAAC,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;AAEzD,kFAAkF;AAClF,MAAM,UAAU,OAAO;IACrB,UAAU,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;AACjC,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,MAAyB,OAAO,CAAC,GAAG;IAEpC,OAAO,EAAE,CAAC;IACV,uEAAuE;IACvE,2EAA2E;IAC3E,uDAAuD;IACvD,MAAM,eAAe,CAAC,GAAG,CAAC,CAAC;IAC3B,OAAO,kBAAkB,CAAC,GAAG,CAAC,CAAC;AACjC,CAAC"}
1
+ {"version":3,"file":"paths.js","sourceRoot":"","sources":["../src/paths.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,70 @@
1
+ import type { InstallKind } from './commands.js';
2
+ export type ServiceState = 'running' | 'stopped' | 'not-installed' | 'unknown';
3
+ export interface StatusReport {
4
+ version: string;
5
+ install: InstallKind;
6
+ service: {
7
+ state: ServiceState;
8
+ detail: string;
9
+ };
10
+ database: {
11
+ reachable: boolean;
12
+ error?: string;
13
+ };
14
+ agents: {
15
+ ready: Array<{
16
+ handle: string;
17
+ id: string;
18
+ }>;
19
+ unavailable: Array<{
20
+ handle: string;
21
+ id: string;
22
+ reason: string;
23
+ }>;
24
+ error?: string;
25
+ };
26
+ /** Null when the database could not be read. */
27
+ needsYou: {
28
+ approvals: number;
29
+ questions: number;
30
+ } | null;
31
+ lastRecapAt: string | null;
32
+ update: {
33
+ available: boolean;
34
+ latest?: string;
35
+ };
36
+ }
37
+ /** Everything `collectStatus` reads, injectable so the report is testable. */
38
+ export interface StatusSources {
39
+ install: InstallKind;
40
+ version(): Promise<string>;
41
+ service(): Promise<{
42
+ state: ServiceState;
43
+ detail: string;
44
+ }>;
45
+ probeDatabase(): Promise<void>;
46
+ describeDatabaseError(err: unknown): string;
47
+ agents(): Promise<Array<{
48
+ handle: string;
49
+ id: string;
50
+ available: boolean;
51
+ reason?: string;
52
+ }>>;
53
+ attention(): Promise<{
54
+ approvals: number;
55
+ questions: number;
56
+ }>;
57
+ lastRecapAt(): Promise<Date | null>;
58
+ update(): Promise<{
59
+ available: boolean;
60
+ latest?: string;
61
+ }>;
62
+ }
63
+ export declare function collectStatus(sources: StatusSources): Promise<StatusReport>;
64
+ /** The report as a few short sentences. Pure. */
65
+ export declare function renderStatus(report: StatusReport, timezone?: string): string;
66
+ /** When a process started, as `ps` says it; undefined when it cannot. */
67
+ export declare function startedAt(pid: number): Promise<string | undefined>;
68
+ /** The supervisor's control socket, beside the data it looks after. */
69
+ export declare function supervisorSocketPath(dataDir: string): string;
70
+ //# sourceMappingURL=status.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../src/status.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAIjD,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,SAAS,GAAG,eAAe,GAAG,SAAS,CAAC;AAE/E,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,WAAW,CAAC;IACrB,OAAO,EAAE;QAAE,KAAK,EAAE,YAAY,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IACjD,QAAQ,EAAE;QAAE,SAAS,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACjD,MAAM,EAAE;QACN,KAAK,EAAE,KAAK,CAAC;YAAE,MAAM,EAAE,MAAM,CAAC;YAAC,EAAE,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QAC7C,WAAW,EAAE,KAAK,CAAC;YAAE,MAAM,EAAE,MAAM,CAAC;YAAC,EAAE,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QACnE,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,gDAAgD;IAChD,QAAQ,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAC1D,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,MAAM,EAAE;QAAE,SAAS,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CACjD;AAED,8EAA8E;AAC9E,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,WAAW,CAAC;IACrB,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAC3B,OAAO,IAAI,OAAO,CAAC;QAAE,KAAK,EAAE,YAAY,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC5D,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/B,qBAAqB,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAAC;IAC5C,MAAM,IAAI,OAAO,CAAC,KAAK,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC,CAAC;IAC9F,SAAS,IAAI,OAAO,CAAC;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC/D,WAAW,IAAI,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC;IACpC,MAAM,IAAI,OAAO,CAAC;QAAE,SAAS,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC5D;AAID,wBAAsB,aAAa,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC,CAsCjF;AAID,iDAAiD;AACjD,wBAAgB,YAAY,CAAC,MAAM,EAAE,YAAY,EAAE,QAAQ,SAAQ,GAAG,MAAM,CAqD3E;AAED,yEAAyE;AACzE,wBAAsB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAQxE;AAED,uEAAuE;AACvE,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAE5D"}
@@ -0,0 +1,122 @@
1
+ /**
2
+ * `buddi status` — one screen of how this installation is.
3
+ *
4
+ * Each part is read on its own and a part that cannot be read says so in one
5
+ * line; nothing here throws past `collectStatus`. `buddi doctor` stays the
6
+ * deep check: this is the glance.
7
+ */
8
+ import { execFile } from 'node:child_process';
9
+ import path from 'node:path';
10
+ import { promisify } from 'node:util';
11
+ import { localDateTimeString } from '@buddi/core';
12
+ const exec = promisify(execFile);
13
+ const message = (err) => (err instanceof Error ? err.message : String(err));
14
+ export async function collectStatus(sources) {
15
+ const version = await sources.version().catch(() => 'unknown');
16
+ const service = await sources
17
+ .service()
18
+ .catch((err) => ({ state: 'unknown', detail: message(err) }));
19
+ let database;
20
+ try {
21
+ await sources.probeDatabase();
22
+ database = { reachable: true };
23
+ }
24
+ catch (err) {
25
+ database = { reachable: false, error: sources.describeDatabaseError(err) };
26
+ }
27
+ const agents = { ready: [], unavailable: [] };
28
+ try {
29
+ for (const agent of await sources.agents()) {
30
+ if (agent.available)
31
+ agents.ready.push({ handle: agent.handle, id: agent.id });
32
+ else
33
+ agents.unavailable.push({ handle: agent.handle, id: agent.id, reason: agent.reason ?? 'not available' });
34
+ }
35
+ }
36
+ catch (err) {
37
+ agents.error = message(err);
38
+ }
39
+ const needsYou = database.reachable ? await sources.attention().catch(() => null) : null;
40
+ const lastRecap = database.reachable ? await sources.lastRecapAt().catch(() => null) : null;
41
+ const update = await sources.update().catch(() => ({ available: false }));
42
+ return {
43
+ version,
44
+ install: sources.install,
45
+ service,
46
+ database,
47
+ agents,
48
+ needsYou,
49
+ lastRecapAt: lastRecap ? lastRecap.toISOString() : null,
50
+ update,
51
+ };
52
+ }
53
+ const count = (n, one, many) => `${n} ${n === 1 ? one : many}`;
54
+ /** The report as a few short sentences. Pure. */
55
+ export function renderStatus(report, timezone = 'UTC') {
56
+ const lines = [];
57
+ lines.push(`buddi ${report.version}, ${report.install === 'packaged' ? 'a packaged install' : 'a source checkout'}.`);
58
+ const service = report.service;
59
+ if (service.state === 'running')
60
+ lines.push(`The service is ${service.detail}.`);
61
+ else if (service.state === 'not-installed') {
62
+ lines.push(report.install === 'packaged'
63
+ ? 'The service is not running. Run buddi to start it.'
64
+ : 'The service is not installed. Run buddi service install.');
65
+ }
66
+ else if (service.state === 'stopped')
67
+ lines.push(`The service is not running: ${service.detail}. Run buddi service start.`);
68
+ else
69
+ lines.push(`The service could not be read: ${service.detail}`);
70
+ lines.push(report.database.reachable
71
+ ? 'The database is reachable.'
72
+ : `The database is not reachable: ${report.database.error ?? 'no reason given'}`);
73
+ const { ready, unavailable, error } = report.agents;
74
+ if (error !== undefined)
75
+ lines.push(`The agents could not be read: ${error}`);
76
+ else {
77
+ if (ready.length === 0)
78
+ lines.push('No agent can run yet.');
79
+ else
80
+ lines.push(`${count(ready.length, 'agent can', 'agents can')} run: ${ready.map((a) => `@${a.handle}`).join(', ')}.`);
81
+ for (const agent of unavailable)
82
+ lines.push(`@${agent.handle} cannot run: ${agent.reason.replace(/\.$/, '')}.`);
83
+ }
84
+ if (report.needsYou === null) {
85
+ lines.push(report.database.reachable ? 'What needs you could not be read.' : 'What needs you is unknown without the database.');
86
+ }
87
+ else {
88
+ const { approvals, questions } = report.needsYou;
89
+ if (approvals + questions === 0)
90
+ lines.push('Nothing needs you.');
91
+ else {
92
+ const parts = [
93
+ ...(approvals > 0 ? [count(approvals, 'approval', 'approvals')] : []),
94
+ ...(questions > 0 ? [count(questions, 'question', 'questions')] : []),
95
+ ];
96
+ lines.push(`${parts.join(' and ')} ${approvals + questions === 1 ? 'needs' : 'need'} you. Open the dashboard with buddi.`);
97
+ }
98
+ }
99
+ if (report.lastRecapAt !== null) {
100
+ lines.push(`The last recap went out ${localDateTimeString(new Date(report.lastRecapAt), timezone)}.`);
101
+ }
102
+ if (report.update.available && report.update.latest) {
103
+ lines.push(`A newer buddi is available: ${report.update.latest}. Run buddi upgrade.`);
104
+ }
105
+ return lines.join('\n');
106
+ }
107
+ /** When a process started, as `ps` says it; undefined when it cannot. */
108
+ export async function startedAt(pid) {
109
+ try {
110
+ const { stdout } = await exec('ps', ['-o', 'lstart=', '-p', String(pid)], { timeout: 3_000 });
111
+ const text = stdout.trim().replace(/\s+/g, ' ');
112
+ return text === '' ? undefined : text;
113
+ }
114
+ catch {
115
+ return undefined;
116
+ }
117
+ }
118
+ /** The supervisor's control socket, beside the data it looks after. */
119
+ export function supervisorSocketPath(dataDir) {
120
+ return path.join(dataDir, 'supervisor.sock');
121
+ }
122
+ //# sourceMappingURL=status.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"status.js","sourceRoot":"","sources":["../src/status.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Colour for the binary's own output: only on a terminal, never with
3
+ * `NO_COLOR` set (at all, even empty, as the convention says).
4
+ */
5
+ import type { HelpStyle } from './commands.js';
6
+ export interface OutputStream {
7
+ isTTY?: boolean;
8
+ }
9
+ export declare function colorOn(env?: NodeJS.ProcessEnv, stream?: OutputStream): boolean;
10
+ export declare const bold: (text: string, on: boolean) => string;
11
+ export declare const dim: (text: string, on: boolean) => string;
12
+ export declare function helpStyle(on: boolean): HelpStyle;
13
+ //# sourceMappingURL=style.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"style.d.ts","sourceRoot":"","sources":["../src/style.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAE/C,MAAM,WAAW,YAAY;IAC3B,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,wBAAgB,OAAO,CACrB,GAAG,GAAE,MAAM,CAAC,UAAwB,EACpC,MAAM,GAAE,YAA6B,GACpC,OAAO,CAET;AAKD,eAAO,MAAM,IAAI,GAAI,MAAM,MAAM,EAAE,IAAI,OAAO,KAAG,MAAmC,CAAC;AACrF,eAAO,MAAM,GAAG,GAAI,MAAM,MAAM,EAAE,IAAI,OAAO,KAAG,MAAmC,CAAC;AAEpF,wBAAgB,SAAS,CAAC,EAAE,EAAE,OAAO,GAAG,SAAS,CAEhD"}
@@ -0,0 +1,10 @@
1
+ export function colorOn(env = process.env, stream = process.stdout) {
2
+ return stream.isTTY === true && env.NO_COLOR === undefined;
3
+ }
4
+ const wrap = (open, close, text, on) => on ? `\u001b[${open}m${text}\u001b[${close}m` : text;
5
+ export const bold = (text, on) => wrap('1', '22', text, on);
6
+ export const dim = (text, on) => wrap('2', '22', text, on);
7
+ export function helpStyle(on) {
8
+ return { bold: (t) => bold(t, on), dim: (t) => dim(t, on) };
9
+ }
10
+ //# sourceMappingURL=style.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"style.js","sourceRoot":"","sources":["../src/style.ts"],"names":[],"mappings":"AAUA,MAAM,UAAU,OAAO,CACrB,MAAyB,OAAO,CAAC,GAAG,EACpC,SAAuB,OAAO,CAAC,MAAM;IAErC,OAAO,MAAM,CAAC,KAAK,KAAK,IAAI,IAAI,GAAG,CAAC,QAAQ,KAAK,SAAS,CAAC;AAC7D,CAAC;AAED,MAAM,IAAI,GAAG,CAAC,IAAY,EAAE,KAAa,EAAE,IAAY,EAAE,EAAW,EAAU,EAAE,CAC9E,EAAE,CAAC,CAAC,CAAC,UAAU,IAAI,IAAI,IAAI,UAAU,KAAK,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;AAEvD,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC,IAAY,EAAE,EAAW,EAAU,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;AACrF,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC,IAAY,EAAE,EAAW,EAAU,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;AAEpF,MAAM,UAAU,SAAS,CAAC,EAAW;IACnC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;AAC9D,CAAC"}
@@ -12,5 +12,5 @@ export declare const PAIRING_TTL_MINUTES = 10;
12
12
  */
13
13
  export declare function relativeTime(at: Date | null | undefined, now?: Date): string;
14
14
  export declare function renderQr(text: string): Promise<string>;
15
- export declare function runTelegram(action: TelegramAction, deviceId: string | undefined, env?: NodeJS.ProcessEnv): Promise<number>;
15
+ export declare function runTelegram(action: TelegramAction, deviceId: string | undefined, env?: NodeJS.ProcessEnv, json?: boolean): Promise<number>;
16
16
  //# sourceMappingURL=telegram-cmd.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"telegram-cmd.d.ts","sourceRoot":"","sources":["../src/telegram-cmd.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAMhD,gFAAgF;AAChF,eAAO,MAAM,mBAAmB,KAAK,CAAC;AAUtC;;;;;;;;GAQG;AACH,wBAAgB,YAAY,CAAC,EAAE,EAAE,IAAI,GAAG,IAAI,GAAG,SAAS,EAAE,GAAG,GAAE,IAAiB,GAAG,MAAM,CAQxF;AAMD,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAItD;AAED,wBAAsB,WAAW,CAC/B,MAAM,EAAE,cAAc,EACtB,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,OAAO,CAAC,MAAM,CAAC,CA6DjB"}
1
+ {"version":3,"file":"telegram-cmd.d.ts","sourceRoot":"","sources":["../src/telegram-cmd.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAOhD,gFAAgF;AAChF,eAAO,MAAM,mBAAmB,KAAK,CAAC;AAUtC;;;;;;;;GAQG;AACH,wBAAgB,YAAY,CAAC,EAAE,EAAE,IAAI,GAAG,IAAI,GAAG,SAAS,EAAE,GAAG,GAAE,IAAiB,GAAG,MAAM,CAQxF;AAMD,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAItD;AAED,wBAAsB,WAAW,CAC/B,MAAM,EAAE,cAAc,EACtB,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,GAAG,GAAE,MAAM,CAAC,UAAwB,EACpC,IAAI,UAAQ,GACX,OAAO,CAAC,MAAM,CAAC,CAmFjB"}
@@ -13,9 +13,10 @@
13
13
  import { createPool, localDateTimeString, timezoneFromEnv } from '@buddi/core';
14
14
  import { createPairingCode, listDevices, unpairDevice } from '@buddi/gateway';
15
15
  import qrcode from 'qrcode-terminal';
16
- const ESC = '\u001b[';
17
- const dim = (s) => `${ESC}2m${s}${ESC}0m`;
18
- const bold = (s) => `${ESC}1m${s}${ESC}0m`;
16
+ import { bold as boldOn, colorOn, dim as dimOn } from './style.js';
17
+ const color = colorOn();
18
+ const dim = (s) => dimOn(s, color);
19
+ const bold = (s) => boldOn(s, color);
19
20
  /** How long a pairing code is worth anything. Short: it is shown, then used. */
20
21
  export const PAIRING_TTL_MINUTES = 10;
21
22
  /* ------------------------------------------------------------------ *
@@ -55,15 +56,19 @@ export function renderQr(text) {
55
56
  qrcode.generate(text, { small: true }, (rendered) => resolve(rendered));
56
57
  });
57
58
  }
58
- export async function runTelegram(action, deviceId, env = process.env) {
59
+ export async function runTelegram(action, deviceId, env = process.env, json = false) {
59
60
  const databaseUrl = env.DATABASE_URL;
60
61
  if (!databaseUrl) {
61
- console.error('DATABASE_URL is not set — run `buddi init`');
62
- return 1;
62
+ console.error('DATABASE_URL is not set, so there is no database to read.');
63
+ return 3;
63
64
  }
64
65
  const pool = createPool(databaseUrl);
65
66
  try {
66
67
  if (action === 'pair') {
68
+ if ((env.TELEGRAM_BOT_TOKEN ?? '').trim() === '') {
69
+ console.error('No Telegram bot is configured. Set its token with buddi vault set TELEGRAM_BOT_TOKEN, then pair again.');
70
+ return 3;
71
+ }
67
72
  const { code, deepLink, expiresAt } = await createPairingCode(pool, {
68
73
  ttlMinutes: PAIRING_TTL_MINUTES,
69
74
  env,
@@ -79,6 +84,18 @@ export async function runTelegram(action, deviceId, env = process.env) {
79
84
  }
80
85
  if (action === 'devices') {
81
86
  const devices = await listDevices(pool);
87
+ if (json) {
88
+ console.log(JSON.stringify(devices.map((d) => ({
89
+ id: d.id,
90
+ surface: d.surface,
91
+ label: d.label,
92
+ externalUserId: d.externalUserId,
93
+ externalChatId: d.externalChatId,
94
+ pairedAt: d.pairedAt?.toISOString() ?? null,
95
+ lastSeenAt: d.lastSeenAt?.toISOString() ?? null,
96
+ })), null, 2));
97
+ return 0;
98
+ }
82
99
  if (devices.length === 0) {
83
100
  console.log('no paired devices — run `buddi telegram pair`');
84
101
  return 0;
@@ -1 +1 @@
1
- {"version":3,"file":"telegram-cmd.js","sourceRoot":"","sources":["../src/telegram-cmd.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"telegram-cmd.js","sourceRoot":"","sources":["../src/telegram-cmd.ts"],"names":[],"mappings":"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"}
@@ -2,9 +2,9 @@
2
2
  * `buddi vault set | get | delete | list | import-env`.
3
3
  *
4
4
  * The vault is the OS keychain (or, off macOS, a file encrypted with a key held
5
- * outside the database). ARCHITECTURE.md is blunt about why there is no table:
6
- * *«A secrets table would hand mail and model credentials to anyone with the
7
- * database file.»*
5
+ * outside the database). docs/architecture.md ("Secrets and operations") is
6
+ * blunt about why there is no table: *«A secrets table would hand mail and
7
+ * model credentials to anyone with the database file.»*
8
8
  *
9
9
  * Two rules shape every command here:
10
10
  *