@withbuddi/buddi 0.1.0-pre.17 → 0.1.0-pre.19

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 (884) hide show
  1. package/README.md +29 -21
  2. package/extension/background.js +38 -7
  3. package/node_modules/@buddi/cli/dist/.tsbuildinfo +1 -1
  4. package/node_modules/@buddi/cli/dist/args.d.ts +16 -3
  5. package/node_modules/@buddi/cli/dist/args.d.ts.map +1 -1
  6. package/node_modules/@buddi/cli/dist/args.js +39 -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 +1028 -0
  15. package/node_modules/@buddi/cli/dist/commands.js.map +1 -0
  16. package/node_modules/@buddi/cli/dist/dashboard-app.d.ts +6 -0
  17. package/node_modules/@buddi/cli/dist/dashboard-app.d.ts.map +1 -1
  18. package/node_modules/@buddi/cli/dist/dashboard-app.js +16 -1
  19. package/node_modules/@buddi/cli/dist/dashboard-app.js.map +1 -1
  20. package/node_modules/@buddi/cli/dist/doctor-probes.d.ts.map +1 -1
  21. package/node_modules/@buddi/cli/dist/doctor-probes.js +5 -2
  22. package/node_modules/@buddi/cli/dist/doctor-probes.js.map +1 -1
  23. package/node_modules/@buddi/cli/dist/doctor.d.ts +16 -0
  24. package/node_modules/@buddi/cli/dist/doctor.d.ts.map +1 -1
  25. package/node_modules/@buddi/cli/dist/doctor.js +18 -0
  26. package/node_modules/@buddi/cli/dist/doctor.js.map +1 -1
  27. package/node_modules/@buddi/cli/dist/index.d.ts +4 -1
  28. package/node_modules/@buddi/cli/dist/index.d.ts.map +1 -1
  29. package/node_modules/@buddi/cli/dist/index.js +4 -1
  30. package/node_modules/@buddi/cli/dist/index.js.map +1 -1
  31. package/node_modules/@buddi/cli/dist/jobs-cmd.d.ts +4 -0
  32. package/node_modules/@buddi/cli/dist/jobs-cmd.d.ts.map +1 -1
  33. package/node_modules/@buddi/cli/dist/jobs-cmd.js +26 -7
  34. package/node_modules/@buddi/cli/dist/jobs-cmd.js.map +1 -1
  35. package/node_modules/@buddi/cli/dist/main.d.ts +9 -2
  36. package/node_modules/@buddi/cli/dist/main.d.ts.map +1 -1
  37. package/node_modules/@buddi/cli/dist/main.js +256 -30
  38. package/node_modules/@buddi/cli/dist/main.js.map +1 -1
  39. package/node_modules/@buddi/cli/dist/paths.d.ts +7 -4
  40. package/node_modules/@buddi/cli/dist/paths.d.ts.map +1 -1
  41. package/node_modules/@buddi/cli/dist/paths.js +17 -6
  42. package/node_modules/@buddi/cli/dist/paths.js.map +1 -1
  43. package/node_modules/@buddi/cli/dist/status.d.ts +70 -0
  44. package/node_modules/@buddi/cli/dist/status.d.ts.map +1 -0
  45. package/node_modules/@buddi/cli/dist/status.js +122 -0
  46. package/node_modules/@buddi/cli/dist/status.js.map +1 -0
  47. package/node_modules/@buddi/cli/dist/style.d.ts +13 -0
  48. package/node_modules/@buddi/cli/dist/style.d.ts.map +1 -0
  49. package/node_modules/@buddi/cli/dist/style.js +10 -0
  50. package/node_modules/@buddi/cli/dist/style.js.map +1 -0
  51. package/node_modules/@buddi/cli/dist/telegram-cmd.d.ts +1 -1
  52. package/node_modules/@buddi/cli/dist/telegram-cmd.d.ts.map +1 -1
  53. package/node_modules/@buddi/cli/dist/telegram-cmd.js +23 -6
  54. package/node_modules/@buddi/cli/dist/telegram-cmd.js.map +1 -1
  55. package/node_modules/@buddi/cli/dist/uninstall-cmd.d.ts +42 -0
  56. package/node_modules/@buddi/cli/dist/uninstall-cmd.d.ts.map +1 -0
  57. package/node_modules/@buddi/cli/dist/uninstall-cmd.js +208 -0
  58. package/node_modules/@buddi/cli/dist/uninstall-cmd.js.map +1 -0
  59. package/node_modules/@buddi/cli/dist/vault-cmd.js +3 -3
  60. package/node_modules/@buddi/core/dist/.tsbuildinfo +1 -1
  61. package/node_modules/@buddi/core/dist/actions/approvals.d.ts +0 -17
  62. package/node_modules/@buddi/core/dist/actions/approvals.d.ts.map +1 -1
  63. package/node_modules/@buddi/core/dist/actions/approvals.js +21 -0
  64. package/node_modules/@buddi/core/dist/actions/approvals.js.map +1 -1
  65. package/node_modules/@buddi/core/dist/actions/execute.d.ts +1 -1
  66. package/node_modules/@buddi/core/dist/actions/jobs.d.ts +1 -1
  67. package/node_modules/@buddi/core/dist/actions/types.js +1 -1
  68. package/node_modules/@buddi/core/dist/agents/models.d.ts.map +1 -1
  69. package/node_modules/@buddi/core/dist/agents/models.js +4 -3
  70. package/node_modules/@buddi/core/dist/agents/models.js.map +1 -1
  71. package/node_modules/@buddi/core/dist/agents/provider-from-env.d.ts +1 -1
  72. package/node_modules/@buddi/core/dist/agents/provider-from-env.js +1 -1
  73. package/node_modules/@buddi/core/dist/agents/skills.d.ts +2 -2
  74. package/node_modules/@buddi/core/dist/goals/frequency.d.ts +51 -0
  75. package/node_modules/@buddi/core/dist/goals/frequency.d.ts.map +1 -0
  76. package/node_modules/@buddi/core/dist/goals/frequency.js +113 -0
  77. package/node_modules/@buddi/core/dist/goals/frequency.js.map +1 -0
  78. package/node_modules/@buddi/core/dist/goals/index.d.ts +2 -0
  79. package/node_modules/@buddi/core/dist/goals/index.d.ts.map +1 -1
  80. package/node_modules/@buddi/core/dist/goals/index.js +2 -0
  81. package/node_modules/@buddi/core/dist/goals/index.js.map +1 -1
  82. package/node_modules/@buddi/core/dist/goals/math.d.ts +8 -2
  83. package/node_modules/@buddi/core/dist/goals/math.d.ts.map +1 -1
  84. package/node_modules/@buddi/core/dist/goals/math.js +17 -4
  85. package/node_modules/@buddi/core/dist/goals/math.js.map +1 -1
  86. package/node_modules/@buddi/core/dist/goals/owner.d.ts +129 -0
  87. package/node_modules/@buddi/core/dist/goals/owner.d.ts.map +1 -0
  88. package/node_modules/@buddi/core/dist/goals/owner.js +239 -0
  89. package/node_modules/@buddi/core/dist/goals/owner.js.map +1 -0
  90. package/node_modules/@buddi/core/dist/goals/store.d.ts.map +1 -1
  91. package/node_modules/@buddi/core/dist/goals/store.js +11 -4
  92. package/node_modules/@buddi/core/dist/goals/store.js.map +1 -1
  93. package/node_modules/@buddi/core/dist/goals/types.d.ts +17 -3
  94. package/node_modules/@buddi/core/dist/goals/types.d.ts.map +1 -1
  95. package/node_modules/@buddi/core/dist/goals/types.js +8 -2
  96. package/node_modules/@buddi/core/dist/goals/types.js.map +1 -1
  97. package/node_modules/@buddi/core/dist/host/build.d.ts +15 -1
  98. package/node_modules/@buddi/core/dist/host/build.d.ts.map +1 -1
  99. package/node_modules/@buddi/core/dist/host/build.js +99 -1
  100. package/node_modules/@buddi/core/dist/host/build.js.map +1 -1
  101. package/node_modules/@buddi/core/dist/host/types.d.ts +88 -1
  102. package/node_modules/@buddi/core/dist/host/types.d.ts.map +1 -1
  103. package/node_modules/@buddi/core/dist/index.d.ts +1 -0
  104. package/node_modules/@buddi/core/dist/index.d.ts.map +1 -1
  105. package/node_modules/@buddi/core/dist/index.js +1 -0
  106. package/node_modules/@buddi/core/dist/index.js.map +1 -1
  107. package/node_modules/@buddi/core/dist/learning/announce.d.ts +29 -0
  108. package/node_modules/@buddi/core/dist/learning/announce.d.ts.map +1 -0
  109. package/node_modules/@buddi/core/dist/learning/announce.js +49 -0
  110. package/node_modules/@buddi/core/dist/learning/announce.js.map +1 -0
  111. package/node_modules/@buddi/core/dist/learning/index.d.ts +1 -0
  112. package/node_modules/@buddi/core/dist/learning/index.d.ts.map +1 -1
  113. package/node_modules/@buddi/core/dist/learning/index.js +1 -0
  114. package/node_modules/@buddi/core/dist/learning/index.js.map +1 -1
  115. package/node_modules/@buddi/core/dist/learning/store.d.ts.map +1 -1
  116. package/node_modules/@buddi/core/dist/learning/store.js +15 -4
  117. package/node_modules/@buddi/core/dist/learning/store.js.map +1 -1
  118. package/node_modules/@buddi/core/dist/notifications/channels.d.ts +37 -0
  119. package/node_modules/@buddi/core/dist/notifications/channels.d.ts.map +1 -0
  120. package/node_modules/@buddi/core/dist/notifications/channels.js +87 -0
  121. package/node_modules/@buddi/core/dist/notifications/channels.js.map +1 -0
  122. package/node_modules/@buddi/core/dist/notifications/index.d.ts +5 -0
  123. package/node_modules/@buddi/core/dist/notifications/index.d.ts.map +1 -0
  124. package/node_modules/@buddi/core/dist/notifications/index.js +5 -0
  125. package/node_modules/@buddi/core/dist/notifications/index.js.map +1 -0
  126. package/node_modules/@buddi/core/dist/notifications/notify.d.ts +35 -0
  127. package/node_modules/@buddi/core/dist/notifications/notify.d.ts.map +1 -0
  128. package/node_modules/@buddi/core/dist/notifications/notify.js +263 -0
  129. package/node_modules/@buddi/core/dist/notifications/notify.js.map +1 -0
  130. package/node_modules/@buddi/core/dist/notifications/store.d.ts +50 -0
  131. package/node_modules/@buddi/core/dist/notifications/store.d.ts.map +1 -0
  132. package/node_modules/@buddi/core/dist/notifications/store.js +216 -0
  133. package/node_modules/@buddi/core/dist/notifications/store.js.map +1 -0
  134. package/node_modules/@buddi/core/dist/notifications/types.d.ts +142 -0
  135. package/node_modules/@buddi/core/dist/notifications/types.d.ts.map +1 -0
  136. package/node_modules/@buddi/core/dist/notifications/types.js +5 -0
  137. package/node_modules/@buddi/core/dist/notifications/types.js.map +1 -0
  138. package/node_modules/@buddi/core/dist/owner.js +1 -1
  139. package/node_modules/@buddi/core/dist/pages.d.ts +2 -2
  140. package/node_modules/@buddi/core/dist/plugin/index.d.ts +1 -1
  141. package/node_modules/@buddi/core/dist/plugin/index.d.ts.map +1 -1
  142. package/node_modules/@buddi/core/dist/plugin/uses.d.ts +1 -1
  143. package/node_modules/@buddi/core/dist/plugin/uses.d.ts.map +1 -1
  144. package/node_modules/@buddi/core/dist/plugin/uses.js +4 -0
  145. package/node_modules/@buddi/core/dist/plugin/uses.js.map +1 -1
  146. package/node_modules/@buddi/core/dist/plugin/version.d.ts +1 -1
  147. package/node_modules/@buddi/core/dist/plugin/version.js +1 -1
  148. package/node_modules/@buddi/core/dist/provider.d.ts +1 -1
  149. package/node_modules/@buddi/core/dist/provider.js +1 -1
  150. package/node_modules/@buddi/core/dist/queue/retry-policy.d.ts +1 -1
  151. package/node_modules/@buddi/core/dist/queue/retry-policy.js +1 -1
  152. package/node_modules/@buddi/core/dist/registry.d.ts.map +1 -1
  153. package/node_modules/@buddi/core/dist/registry.js +3 -4
  154. package/node_modules/@buddi/core/dist/registry.js.map +1 -1
  155. package/node_modules/@buddi/core/dist/reminders/store.d.ts +1 -1
  156. package/node_modules/@buddi/core/dist/reminders/store.js +1 -1
  157. package/node_modules/@buddi/core/dist/reminders/types.d.ts +1 -1
  158. package/node_modules/@buddi/core/dist/reminders/types.js +1 -1
  159. package/node_modules/@buddi/core/dist/sentinels/run.d.ts.map +1 -1
  160. package/node_modules/@buddi/core/dist/sentinels/run.js +4 -1
  161. package/node_modules/@buddi/core/dist/sentinels/run.js.map +1 -1
  162. package/node_modules/@buddi/core/dist/sentinels/types.d.ts +21 -1
  163. package/node_modules/@buddi/core/dist/sentinels/types.d.ts.map +1 -1
  164. package/node_modules/@buddi/core/dist/sentinels/types.js.map +1 -1
  165. package/node_modules/@buddi/core/dist/surfaces.d.ts +2 -0
  166. package/node_modules/@buddi/core/dist/surfaces.d.ts.map +1 -1
  167. package/node_modules/@buddi/core/dist/surfaces.js +7 -0
  168. package/node_modules/@buddi/core/dist/surfaces.js.map +1 -1
  169. package/node_modules/@buddi/core/dist/time.d.ts +12 -0
  170. package/node_modules/@buddi/core/dist/time.d.ts.map +1 -1
  171. package/node_modules/@buddi/core/dist/time.js +46 -0
  172. package/node_modules/@buddi/core/dist/time.js.map +1 -1
  173. package/node_modules/@buddi/core/dist/tools.d.ts +5 -5
  174. package/node_modules/@buddi/core/dist/uninstall.d.ts +79 -0
  175. package/node_modules/@buddi/core/dist/uninstall.d.ts.map +1 -0
  176. package/node_modules/@buddi/core/dist/uninstall.js +109 -0
  177. package/node_modules/@buddi/core/dist/uninstall.js.map +1 -0
  178. package/node_modules/@buddi/core/dist/vault/file.js +2 -2
  179. package/node_modules/@buddi/core/dist/vault/keychain.js +1 -1
  180. package/node_modules/@buddi/core/dist/vault/keychain.js.map +1 -1
  181. package/node_modules/@buddi/core/dist/vault/resolve.d.ts +3 -3
  182. package/node_modules/@buddi/core/dist/vault/resolve.js +3 -3
  183. package/node_modules/@buddi/core/dist/vault/types.d.ts +1 -1
  184. package/node_modules/@buddi/core/dist/vault/types.js +1 -1
  185. package/node_modules/@buddi/core/dist/views.d.ts +66 -66
  186. package/node_modules/@buddi/core/migrations/003_owner_surfaces.sql +1 -1
  187. package/node_modules/@buddi/core/migrations/005_artifacts.sql +1 -1
  188. package/node_modules/@buddi/core/migrations/009_queue.sql +1 -2
  189. package/node_modules/@buddi/core/migrations/010_actions.sql +1 -1
  190. package/node_modules/@buddi/core/migrations/043_owner_notifications.sql +77 -0
  191. package/node_modules/@buddi/core/migrations/044_owner_metrics.sql +45 -0
  192. package/node_modules/@buddi/core/migrations/045_frequency_goals.sql +19 -0
  193. package/node_modules/@buddi/core/package.json +4 -0
  194. package/node_modules/@buddi/gateway/dist/.tsbuildinfo +1 -1
  195. package/node_modules/@buddi/gateway/dist/agents/catalog.js +1 -1
  196. package/node_modules/@buddi/gateway/dist/agents-cli.d.ts +25 -1
  197. package/node_modules/@buddi/gateway/dist/agents-cli.d.ts.map +1 -1
  198. package/node_modules/@buddi/gateway/dist/agents-cli.js +91 -27
  199. package/node_modules/@buddi/gateway/dist/agents-cli.js.map +1 -1
  200. package/node_modules/@buddi/gateway/dist/bootstrap.d.ts.map +1 -1
  201. package/node_modules/@buddi/gateway/dist/bootstrap.js +8 -0
  202. package/node_modules/@buddi/gateway/dist/bootstrap.js.map +1 -1
  203. package/node_modules/@buddi/gateway/dist/channels/local-notification.d.ts +39 -0
  204. package/node_modules/@buddi/gateway/dist/channels/local-notification.d.ts.map +1 -0
  205. package/node_modules/@buddi/gateway/dist/channels/local-notification.js +154 -0
  206. package/node_modules/@buddi/gateway/dist/channels/local-notification.js.map +1 -0
  207. package/node_modules/@buddi/gateway/dist/chat/approvals.d.ts +3 -3
  208. package/node_modules/@buddi/gateway/dist/chat/approvals.js +3 -3
  209. package/node_modules/@buddi/gateway/dist/chat/usage.d.ts.map +1 -1
  210. package/node_modules/@buddi/gateway/dist/chat/usage.js +1 -0
  211. package/node_modules/@buddi/gateway/dist/chat/usage.js.map +1 -1
  212. package/node_modules/@buddi/gateway/dist/cli.d.ts +14 -0
  213. package/node_modules/@buddi/gateway/dist/cli.d.ts.map +1 -1
  214. package/node_modules/@buddi/gateway/dist/cli.js +208 -37
  215. package/node_modules/@buddi/gateway/dist/cli.js.map +1 -1
  216. package/node_modules/@buddi/gateway/dist/db-ready.d.ts +2 -1
  217. package/node_modules/@buddi/gateway/dist/db-ready.d.ts.map +1 -1
  218. package/node_modules/@buddi/gateway/dist/db-ready.js +3 -2
  219. package/node_modules/@buddi/gateway/dist/db-ready.js.map +1 -1
  220. package/node_modules/@buddi/gateway/dist/index.d.ts +5 -1
  221. package/node_modules/@buddi/gateway/dist/index.d.ts.map +1 -1
  222. package/node_modules/@buddi/gateway/dist/index.js +6 -1
  223. package/node_modules/@buddi/gateway/dist/index.js.map +1 -1
  224. package/node_modules/@buddi/gateway/dist/missions/agent-run.d.ts.map +1 -1
  225. package/node_modules/@buddi/gateway/dist/missions/agent-run.js +11 -1
  226. package/node_modules/@buddi/gateway/dist/missions/agent-run.js.map +1 -1
  227. package/node_modules/@buddi/gateway/dist/missions/execute.d.ts +22 -1
  228. package/node_modules/@buddi/gateway/dist/missions/execute.d.ts.map +1 -1
  229. package/node_modules/@buddi/gateway/dist/missions/execute.js +8 -1
  230. package/node_modules/@buddi/gateway/dist/missions/execute.js.map +1 -1
  231. package/node_modules/@buddi/gateway/dist/missions/goals-format.d.ts +32 -5
  232. package/node_modules/@buddi/gateway/dist/missions/goals-format.d.ts.map +1 -1
  233. package/node_modules/@buddi/gateway/dist/missions/goals-format.js +59 -2
  234. package/node_modules/@buddi/gateway/dist/missions/goals-format.js.map +1 -1
  235. package/node_modules/@buddi/gateway/dist/missions/goals-page.d.ts +60 -5
  236. package/node_modules/@buddi/gateway/dist/missions/goals-page.d.ts.map +1 -1
  237. package/node_modules/@buddi/gateway/dist/missions/goals-page.js +355 -8
  238. package/node_modules/@buddi/gateway/dist/missions/goals-page.js.map +1 -1
  239. package/node_modules/@buddi/gateway/dist/missions/goals.d.ts +64 -5
  240. package/node_modules/@buddi/gateway/dist/missions/goals.d.ts.map +1 -1
  241. package/node_modules/@buddi/gateway/dist/missions/goals.js +834 -116
  242. package/node_modules/@buddi/gateway/dist/missions/goals.js.map +1 -1
  243. package/node_modules/@buddi/gateway/dist/missions/sentinel-wake.d.ts +5 -0
  244. package/node_modules/@buddi/gateway/dist/missions/sentinel-wake.d.ts.map +1 -1
  245. package/node_modules/@buddi/gateway/dist/missions/sentinel-wake.js +12 -0
  246. package/node_modules/@buddi/gateway/dist/missions/sentinel-wake.js.map +1 -1
  247. package/node_modules/@buddi/gateway/dist/missions-cli.d.ts +2 -0
  248. package/node_modules/@buddi/gateway/dist/missions-cli.d.ts.map +1 -1
  249. package/node_modules/@buddi/gateway/dist/missions-cli.js +53 -8
  250. package/node_modules/@buddi/gateway/dist/missions-cli.js.map +1 -1
  251. package/node_modules/@buddi/gateway/dist/owner-notify.d.ts +44 -0
  252. package/node_modules/@buddi/gateway/dist/owner-notify.d.ts.map +1 -0
  253. package/node_modules/@buddi/gateway/dist/owner-notify.js +91 -0
  254. package/node_modules/@buddi/gateway/dist/owner-notify.js.map +1 -0
  255. package/node_modules/@buddi/gateway/dist/plugins-cli.d.ts +3 -1
  256. package/node_modules/@buddi/gateway/dist/plugins-cli.d.ts.map +1 -1
  257. package/node_modules/@buddi/gateway/dist/plugins-cli.js +11 -4
  258. package/node_modules/@buddi/gateway/dist/plugins-cli.js.map +1 -1
  259. package/node_modules/@buddi/gateway/dist/provider-accounts.d.ts.map +1 -1
  260. package/node_modules/@buddi/gateway/dist/provider-accounts.js +22 -13
  261. package/node_modules/@buddi/gateway/dist/provider-accounts.js.map +1 -1
  262. package/node_modules/@buddi/gateway/dist/reminders-cli.d.ts +3 -1
  263. package/node_modules/@buddi/gateway/dist/reminders-cli.d.ts.map +1 -1
  264. package/node_modules/@buddi/gateway/dist/reminders-cli.js +21 -2
  265. package/node_modules/@buddi/gateway/dist/reminders-cli.js.map +1 -1
  266. package/node_modules/@buddi/gateway/dist/serve.d.ts +2 -0
  267. package/node_modules/@buddi/gateway/dist/serve.d.ts.map +1 -1
  268. package/node_modules/@buddi/gateway/dist/serve.js +61 -13
  269. package/node_modules/@buddi/gateway/dist/serve.js.map +1 -1
  270. package/node_modules/@buddi/gateway/dist/subscription-signins.d.ts +28 -0
  271. package/node_modules/@buddi/gateway/dist/subscription-signins.d.ts.map +1 -0
  272. package/node_modules/@buddi/gateway/dist/subscription-signins.js +30 -0
  273. package/node_modules/@buddi/gateway/dist/subscription-signins.js.map +1 -0
  274. package/node_modules/@buddi/gateway/dist/telegram/api.d.ts +43 -9
  275. package/node_modules/@buddi/gateway/dist/telegram/api.d.ts.map +1 -1
  276. package/node_modules/@buddi/gateway/dist/telegram/api.js +80 -21
  277. package/node_modules/@buddi/gateway/dist/telegram/api.js.map +1 -1
  278. package/node_modules/@buddi/gateway/dist/telegram/approvals.d.ts +3 -3
  279. package/node_modules/@buddi/gateway/dist/telegram/approvals.js +3 -3
  280. package/node_modules/@buddi/gateway/dist/telegram/attachments.d.ts +6 -0
  281. package/node_modules/@buddi/gateway/dist/telegram/attachments.d.ts.map +1 -1
  282. package/node_modules/@buddi/gateway/dist/telegram/attachments.js +1 -0
  283. package/node_modules/@buddi/gateway/dist/telegram/attachments.js.map +1 -1
  284. package/node_modules/@buddi/gateway/dist/telegram/browser-view.d.ts.map +1 -1
  285. package/node_modules/@buddi/gateway/dist/telegram/browser-view.js +2 -1
  286. package/node_modules/@buddi/gateway/dist/telegram/browser-view.js.map +1 -1
  287. package/node_modules/@buddi/gateway/dist/telegram/channel.d.ts +36 -0
  288. package/node_modules/@buddi/gateway/dist/telegram/channel.d.ts.map +1 -0
  289. package/node_modules/@buddi/gateway/dist/telegram/channel.js +71 -0
  290. package/node_modules/@buddi/gateway/dist/telegram/channel.js.map +1 -0
  291. package/node_modules/@buddi/gateway/dist/telegram/commands.d.ts +28 -0
  292. package/node_modules/@buddi/gateway/dist/telegram/commands.d.ts.map +1 -0
  293. package/node_modules/@buddi/gateway/dist/telegram/commands.js +74 -0
  294. package/node_modules/@buddi/gateway/dist/telegram/commands.js.map +1 -0
  295. package/node_modules/@buddi/gateway/dist/telegram/main.d.ts +3 -0
  296. package/node_modules/@buddi/gateway/dist/telegram/main.d.ts.map +1 -1
  297. package/node_modules/@buddi/gateway/dist/telegram/main.js +71 -2
  298. package/node_modules/@buddi/gateway/dist/telegram/main.js.map +1 -1
  299. package/node_modules/@buddi/gateway/dist/telegram/outbound.d.ts +191 -0
  300. package/node_modules/@buddi/gateway/dist/telegram/outbound.d.ts.map +1 -0
  301. package/node_modules/@buddi/gateway/dist/telegram/outbound.js +671 -0
  302. package/node_modules/@buddi/gateway/dist/telegram/outbound.js.map +1 -0
  303. package/node_modules/@buddi/gateway/dist/telegram/proposals.d.ts +65 -0
  304. package/node_modules/@buddi/gateway/dist/telegram/proposals.d.ts.map +1 -0
  305. package/node_modules/@buddi/gateway/dist/telegram/proposals.js +183 -0
  306. package/node_modules/@buddi/gateway/dist/telegram/proposals.js.map +1 -0
  307. package/node_modules/@buddi/gateway/dist/telegram/surface.d.ts +47 -47
  308. package/node_modules/@buddi/gateway/dist/telegram/surface.d.ts.map +1 -1
  309. package/node_modules/@buddi/gateway/dist/telegram/surface.js +103 -291
  310. package/node_modules/@buddi/gateway/dist/telegram/surface.js.map +1 -1
  311. package/node_modules/@buddi/gateway/dist/web/config.js +3 -3
  312. package/node_modules/@buddi/gateway/dist/web/http.d.ts +16 -3
  313. package/node_modules/@buddi/gateway/dist/web/http.d.ts.map +1 -1
  314. package/node_modules/@buddi/gateway/dist/web/http.js +39 -3
  315. package/node_modules/@buddi/gateway/dist/web/http.js.map +1 -1
  316. package/node_modules/@buddi/gateway/dist/web/notifications.d.ts +36 -0
  317. package/node_modules/@buddi/gateway/dist/web/notifications.d.ts.map +1 -0
  318. package/node_modules/@buddi/gateway/dist/web/notifications.js +63 -0
  319. package/node_modules/@buddi/gateway/dist/web/notifications.js.map +1 -0
  320. package/node_modules/@buddi/gateway/dist/web/onboarding.d.ts +1 -1
  321. package/node_modules/@buddi/gateway/dist/web/onboarding.d.ts.map +1 -1
  322. package/node_modules/@buddi/gateway/dist/web/onboarding.js +5 -1
  323. package/node_modules/@buddi/gateway/dist/web/onboarding.js.map +1 -1
  324. package/node_modules/@buddi/gateway/dist/web/read.js +3 -3
  325. package/node_modules/@buddi/gateway/dist/web/secrets.d.ts.map +1 -1
  326. package/node_modules/@buddi/gateway/dist/web/secrets.js +3 -2
  327. package/node_modules/@buddi/gateway/dist/web/secrets.js.map +1 -1
  328. package/node_modules/@buddi/gateway/dist/web/server.d.ts.map +1 -1
  329. package/node_modules/@buddi/gateway/dist/web/server.js +54 -23
  330. package/node_modules/@buddi/gateway/dist/web/server.js.map +1 -1
  331. package/node_modules/@buddi/gateway/dist/web/telegram.d.ts +39 -0
  332. package/node_modules/@buddi/gateway/dist/web/telegram.d.ts.map +1 -1
  333. package/node_modules/@buddi/gateway/dist/web/telegram.js +53 -1
  334. package/node_modules/@buddi/gateway/dist/web/telegram.js.map +1 -1
  335. package/node_modules/@buddi/gateway/dist/web/version.d.ts +1 -0
  336. package/node_modules/@buddi/gateway/dist/web/version.d.ts.map +1 -1
  337. package/node_modules/@buddi/gateway/dist/web/version.js +2 -1
  338. package/node_modules/@buddi/gateway/dist/web/version.js.map +1 -1
  339. package/node_modules/@buddi/gateway/dist/web/write.js +1 -1
  340. package/node_modules/@buddi/install/dist/.tsbuildinfo +1 -1
  341. package/node_modules/@buddi/install/dist/environment.d.ts +29 -0
  342. package/node_modules/@buddi/install/dist/environment.d.ts.map +1 -1
  343. package/node_modules/@buddi/install/dist/environment.js +50 -1
  344. package/node_modules/@buddi/install/dist/environment.js.map +1 -1
  345. package/node_modules/@buddi/install/dist/launcher.d.ts +3 -1
  346. package/node_modules/@buddi/install/dist/launcher.d.ts.map +1 -1
  347. package/node_modules/@buddi/install/dist/launcher.js +220 -14
  348. package/node_modules/@buddi/install/dist/launcher.js.map +1 -1
  349. package/node_modules/@buddi/install/dist/uninstall.d.ts +59 -0
  350. package/node_modules/@buddi/install/dist/uninstall.d.ts.map +1 -0
  351. package/node_modules/@buddi/install/dist/uninstall.js +260 -0
  352. package/node_modules/@buddi/install/dist/uninstall.js.map +1 -0
  353. package/node_modules/@buddi/install/dist/upgrade.d.ts +16 -3
  354. package/node_modules/@buddi/install/dist/upgrade.d.ts.map +1 -1
  355. package/node_modules/@buddi/install/dist/upgrade.js +21 -7
  356. package/node_modules/@buddi/install/dist/upgrade.js.map +1 -1
  357. package/node_modules/@buddi/runtime/dist/.tsbuildinfo +1 -1
  358. package/node_modules/@buddi/runtime/dist/anthropic.d.ts +35 -2
  359. package/node_modules/@buddi/runtime/dist/anthropic.d.ts.map +1 -1
  360. package/node_modules/@buddi/runtime/dist/anthropic.js +36 -12
  361. package/node_modules/@buddi/runtime/dist/anthropic.js.map +1 -1
  362. package/node_modules/@buddi/runtime/dist/context-window.d.ts.map +1 -1
  363. package/node_modules/@buddi/runtime/dist/context-window.js +5 -2
  364. package/node_modules/@buddi/runtime/dist/context-window.js.map +1 -1
  365. package/node_modules/@buddi/runtime/dist/delegate.js +1 -1
  366. package/node_modules/@buddi/runtime/dist/loop.d.ts +13 -1
  367. package/node_modules/@buddi/runtime/dist/loop.d.ts.map +1 -1
  368. package/node_modules/@buddi/runtime/dist/loop.js +70 -3
  369. package/node_modules/@buddi/runtime/dist/loop.js.map +1 -1
  370. package/node_modules/@buddi/runtime/dist/openai.d.ts.map +1 -1
  371. package/node_modules/@buddi/runtime/dist/openai.js +26 -8
  372. package/node_modules/@buddi/runtime/dist/openai.js.map +1 -1
  373. package/node_modules/@buddi/tool-artifacts/dist/.tsbuildinfo +1 -1
  374. package/node_modules/@buddi/tool-artifacts/dist/index.d.ts +1 -1
  375. package/node_modules/@buddi/tool-browser/dist/.tsbuildinfo +1 -1
  376. package/node_modules/@buddi/tool-browser/dist/availability.d.ts +34 -8
  377. package/node_modules/@buddi/tool-browser/dist/availability.d.ts.map +1 -1
  378. package/node_modules/@buddi/tool-browser/dist/availability.js +44 -5
  379. package/node_modules/@buddi/tool-browser/dist/availability.js.map +1 -1
  380. package/node_modules/@buddi/tool-browser/dist/controller.d.ts +2 -2
  381. package/node_modules/@buddi/tool-browser/dist/controller.d.ts.map +1 -1
  382. package/node_modules/@buddi/tool-browser/dist/controller.js +7 -6
  383. package/node_modules/@buddi/tool-browser/dist/controller.js.map +1 -1
  384. package/node_modules/@buddi/tool-browser/dist/host.d.ts +3 -1
  385. package/node_modules/@buddi/tool-browser/dist/host.d.ts.map +1 -1
  386. package/node_modules/@buddi/tool-browser/dist/host.js +5 -1
  387. package/node_modules/@buddi/tool-browser/dist/host.js.map +1 -1
  388. package/node_modules/@buddi/tool-browser/dist/index.d.ts +2 -2
  389. package/node_modules/@buddi/tool-browser/dist/index.d.ts.map +1 -1
  390. package/node_modules/@buddi/tool-browser/dist/index.js +13 -5
  391. package/node_modules/@buddi/tool-browser/dist/index.js.map +1 -1
  392. package/node_modules/@buddi/tool-browser/dist/origin-pattern.d.ts +31 -0
  393. package/node_modules/@buddi/tool-browser/dist/origin-pattern.d.ts.map +1 -0
  394. package/node_modules/@buddi/tool-browser/dist/origin-pattern.js +61 -0
  395. package/node_modules/@buddi/tool-browser/dist/origin-pattern.js.map +1 -0
  396. package/node_modules/@buddi/tool-browser/dist/public-suffixes.d.ts +24 -0
  397. package/node_modules/@buddi/tool-browser/dist/public-suffixes.d.ts.map +1 -0
  398. package/node_modules/@buddi/tool-browser/dist/public-suffixes.js +153 -0
  399. package/node_modules/@buddi/tool-browser/dist/public-suffixes.js.map +1 -0
  400. package/node_modules/@buddi/tool-browser/dist/secrets.d.ts +45 -9
  401. package/node_modules/@buddi/tool-browser/dist/secrets.d.ts.map +1 -1
  402. package/node_modules/@buddi/tool-browser/dist/secrets.js +77 -20
  403. package/node_modules/@buddi/tool-browser/dist/secrets.js.map +1 -1
  404. package/node_modules/@buddi/tool-browser/dist/service.d.ts +12 -2
  405. package/node_modules/@buddi/tool-browser/dist/service.d.ts.map +1 -1
  406. package/node_modules/@buddi/tool-browser/dist/service.js +84 -20
  407. package/node_modules/@buddi/tool-browser/dist/service.js.map +1 -1
  408. package/node_modules/@buddi/tool-browser/dist/types.d.ts +7 -1
  409. package/node_modules/@buddi/tool-browser/dist/types.d.ts.map +1 -1
  410. package/node_modules/@buddi/tool-browser/dist/types.js +7 -1
  411. package/node_modules/@buddi/tool-browser/dist/types.js.map +1 -1
  412. package/node_modules/@buddi/tool-email/dist/.tsbuildinfo +1 -1
  413. package/node_modules/@buddi/tool-email/dist/channel.d.ts +43 -0
  414. package/node_modules/@buddi/tool-email/dist/channel.d.ts.map +1 -0
  415. package/node_modules/@buddi/tool-email/dist/channel.js +99 -0
  416. package/node_modules/@buddi/tool-email/dist/channel.js.map +1 -0
  417. package/node_modules/@buddi/tool-email/dist/index.d.ts +1 -0
  418. package/node_modules/@buddi/tool-email/dist/index.d.ts.map +1 -1
  419. package/node_modules/@buddi/tool-email/dist/index.js +8 -1
  420. package/node_modules/@buddi/tool-email/dist/index.js.map +1 -1
  421. package/node_modules/@buddi/tool-email/dist/ports.d.ts +3 -3
  422. package/node_modules/@buddi/tool-email/dist/ports.js +1 -1
  423. package/node_modules/@buddi/tool-email/dist/tools/drafts.d.ts +1 -1
  424. package/node_modules/@buddi/tool-email/dist/tools/read.js +1 -1
  425. package/node_modules/@buddi/tool-email/dist/tools/read.js.map +1 -1
  426. package/node_modules/@buddi/tool-email/dist/tools/send.js +1 -1
  427. package/node_modules/@buddi/tool-email/migrations/001_email.sql +3 -2
  428. package/node_modules/@buddi/tool-email/package.json +2 -1
  429. package/node_modules/@buddi/tool-host/dist/.tsbuildinfo +1 -1
  430. package/node_modules/@buddi/tool-memory/dist/.tsbuildinfo +1 -1
  431. package/node_modules/@buddi/tool-memory/dist/index.js +1 -1
  432. package/node_modules/@buddi/tool-memory/migrations/001_memory.sql +1 -1
  433. package/node_modules/@buddi/tool-web/dist/.tsbuildinfo +1 -1
  434. package/node_modules/ws/lib/websocket.js +17 -3
  435. package/node_modules/ws/package.json +1 -1
  436. package/package.json +5 -2
  437. package/packages/cli/dist/.tsbuildinfo +1 -1
  438. package/packages/cli/dist/args.d.ts +16 -3
  439. package/packages/cli/dist/args.d.ts.map +1 -1
  440. package/packages/cli/dist/args.js +39 -89
  441. package/packages/cli/dist/args.js.map +1 -1
  442. package/packages/cli/dist/backup/index.d.ts +2 -0
  443. package/packages/cli/dist/backup/index.d.ts.map +1 -1
  444. package/packages/cli/dist/backup/index.js +13 -4
  445. package/packages/cli/dist/backup/index.js.map +1 -1
  446. package/packages/cli/dist/commands.d.ts +94 -0
  447. package/packages/cli/dist/commands.d.ts.map +1 -0
  448. package/packages/cli/dist/commands.js +1028 -0
  449. package/packages/cli/dist/commands.js.map +1 -0
  450. package/packages/cli/dist/dashboard-app.d.ts +6 -0
  451. package/packages/cli/dist/dashboard-app.d.ts.map +1 -1
  452. package/packages/cli/dist/dashboard-app.js +16 -1
  453. package/packages/cli/dist/dashboard-app.js.map +1 -1
  454. package/packages/cli/dist/doctor-probes.d.ts.map +1 -1
  455. package/packages/cli/dist/doctor-probes.js +5 -2
  456. package/packages/cli/dist/doctor-probes.js.map +1 -1
  457. package/packages/cli/dist/doctor.d.ts +16 -0
  458. package/packages/cli/dist/doctor.d.ts.map +1 -1
  459. package/packages/cli/dist/doctor.js +18 -0
  460. package/packages/cli/dist/doctor.js.map +1 -1
  461. package/packages/cli/dist/index.d.ts +4 -1
  462. package/packages/cli/dist/index.d.ts.map +1 -1
  463. package/packages/cli/dist/index.js +4 -1
  464. package/packages/cli/dist/index.js.map +1 -1
  465. package/packages/cli/dist/jobs-cmd.d.ts +4 -0
  466. package/packages/cli/dist/jobs-cmd.d.ts.map +1 -1
  467. package/packages/cli/dist/jobs-cmd.js +26 -7
  468. package/packages/cli/dist/jobs-cmd.js.map +1 -1
  469. package/packages/cli/dist/main.d.ts +9 -2
  470. package/packages/cli/dist/main.d.ts.map +1 -1
  471. package/packages/cli/dist/main.js +256 -30
  472. package/packages/cli/dist/main.js.map +1 -1
  473. package/packages/cli/dist/paths.d.ts +7 -4
  474. package/packages/cli/dist/paths.d.ts.map +1 -1
  475. package/packages/cli/dist/paths.js +17 -6
  476. package/packages/cli/dist/paths.js.map +1 -1
  477. package/packages/cli/dist/status.d.ts +70 -0
  478. package/packages/cli/dist/status.d.ts.map +1 -0
  479. package/packages/cli/dist/status.js +122 -0
  480. package/packages/cli/dist/status.js.map +1 -0
  481. package/packages/cli/dist/style.d.ts +13 -0
  482. package/packages/cli/dist/style.d.ts.map +1 -0
  483. package/packages/cli/dist/style.js +10 -0
  484. package/packages/cli/dist/style.js.map +1 -0
  485. package/packages/cli/dist/telegram-cmd.d.ts +1 -1
  486. package/packages/cli/dist/telegram-cmd.d.ts.map +1 -1
  487. package/packages/cli/dist/telegram-cmd.js +23 -6
  488. package/packages/cli/dist/telegram-cmd.js.map +1 -1
  489. package/packages/cli/dist/uninstall-cmd.d.ts +42 -0
  490. package/packages/cli/dist/uninstall-cmd.d.ts.map +1 -0
  491. package/packages/cli/dist/uninstall-cmd.js +208 -0
  492. package/packages/cli/dist/uninstall-cmd.js.map +1 -0
  493. package/packages/cli/dist/vault-cmd.js +3 -3
  494. package/packages/core/dist/.tsbuildinfo +1 -1
  495. package/packages/core/dist/actions/approvals.d.ts +0 -17
  496. package/packages/core/dist/actions/approvals.d.ts.map +1 -1
  497. package/packages/core/dist/actions/approvals.js +21 -0
  498. package/packages/core/dist/actions/approvals.js.map +1 -1
  499. package/packages/core/dist/actions/execute.d.ts +1 -1
  500. package/packages/core/dist/actions/jobs.d.ts +1 -1
  501. package/packages/core/dist/actions/types.js +1 -1
  502. package/packages/core/dist/agents/models.d.ts.map +1 -1
  503. package/packages/core/dist/agents/models.js +4 -3
  504. package/packages/core/dist/agents/models.js.map +1 -1
  505. package/packages/core/dist/agents/provider-from-env.d.ts +1 -1
  506. package/packages/core/dist/agents/provider-from-env.js +1 -1
  507. package/packages/core/dist/agents/skills.d.ts +2 -2
  508. package/packages/core/dist/goals/frequency.d.ts +51 -0
  509. package/packages/core/dist/goals/frequency.d.ts.map +1 -0
  510. package/packages/core/dist/goals/frequency.js +113 -0
  511. package/packages/core/dist/goals/frequency.js.map +1 -0
  512. package/packages/core/dist/goals/index.d.ts +2 -0
  513. package/packages/core/dist/goals/index.d.ts.map +1 -1
  514. package/packages/core/dist/goals/index.js +2 -0
  515. package/packages/core/dist/goals/index.js.map +1 -1
  516. package/packages/core/dist/goals/math.d.ts +8 -2
  517. package/packages/core/dist/goals/math.d.ts.map +1 -1
  518. package/packages/core/dist/goals/math.js +17 -4
  519. package/packages/core/dist/goals/math.js.map +1 -1
  520. package/packages/core/dist/goals/owner.d.ts +129 -0
  521. package/packages/core/dist/goals/owner.d.ts.map +1 -0
  522. package/packages/core/dist/goals/owner.js +239 -0
  523. package/packages/core/dist/goals/owner.js.map +1 -0
  524. package/packages/core/dist/goals/store.d.ts.map +1 -1
  525. package/packages/core/dist/goals/store.js +11 -4
  526. package/packages/core/dist/goals/store.js.map +1 -1
  527. package/packages/core/dist/goals/types.d.ts +17 -3
  528. package/packages/core/dist/goals/types.d.ts.map +1 -1
  529. package/packages/core/dist/goals/types.js +8 -2
  530. package/packages/core/dist/goals/types.js.map +1 -1
  531. package/packages/core/dist/host/build.d.ts +15 -1
  532. package/packages/core/dist/host/build.d.ts.map +1 -1
  533. package/packages/core/dist/host/build.js +99 -1
  534. package/packages/core/dist/host/build.js.map +1 -1
  535. package/packages/core/dist/host/types.d.ts +88 -1
  536. package/packages/core/dist/host/types.d.ts.map +1 -1
  537. package/packages/core/dist/index.d.ts +1 -0
  538. package/packages/core/dist/index.d.ts.map +1 -1
  539. package/packages/core/dist/index.js +1 -0
  540. package/packages/core/dist/index.js.map +1 -1
  541. package/packages/core/dist/learning/announce.d.ts +29 -0
  542. package/packages/core/dist/learning/announce.d.ts.map +1 -0
  543. package/packages/core/dist/learning/announce.js +49 -0
  544. package/packages/core/dist/learning/announce.js.map +1 -0
  545. package/packages/core/dist/learning/index.d.ts +1 -0
  546. package/packages/core/dist/learning/index.d.ts.map +1 -1
  547. package/packages/core/dist/learning/index.js +1 -0
  548. package/packages/core/dist/learning/index.js.map +1 -1
  549. package/packages/core/dist/learning/store.d.ts.map +1 -1
  550. package/packages/core/dist/learning/store.js +15 -4
  551. package/packages/core/dist/learning/store.js.map +1 -1
  552. package/packages/core/dist/notifications/channels.d.ts +37 -0
  553. package/packages/core/dist/notifications/channels.d.ts.map +1 -0
  554. package/packages/core/dist/notifications/channels.js +87 -0
  555. package/packages/core/dist/notifications/channels.js.map +1 -0
  556. package/packages/core/dist/notifications/index.d.ts +5 -0
  557. package/packages/core/dist/notifications/index.d.ts.map +1 -0
  558. package/packages/core/dist/notifications/index.js +5 -0
  559. package/packages/core/dist/notifications/index.js.map +1 -0
  560. package/packages/core/dist/notifications/notify.d.ts +35 -0
  561. package/packages/core/dist/notifications/notify.d.ts.map +1 -0
  562. package/packages/core/dist/notifications/notify.js +263 -0
  563. package/packages/core/dist/notifications/notify.js.map +1 -0
  564. package/packages/core/dist/notifications/store.d.ts +50 -0
  565. package/packages/core/dist/notifications/store.d.ts.map +1 -0
  566. package/packages/core/dist/notifications/store.js +216 -0
  567. package/packages/core/dist/notifications/store.js.map +1 -0
  568. package/packages/core/dist/notifications/types.d.ts +142 -0
  569. package/packages/core/dist/notifications/types.d.ts.map +1 -0
  570. package/packages/core/dist/notifications/types.js +5 -0
  571. package/packages/core/dist/notifications/types.js.map +1 -0
  572. package/packages/core/dist/owner.js +1 -1
  573. package/packages/core/dist/pages.d.ts +2 -2
  574. package/packages/core/dist/plugin/index.d.ts +1 -1
  575. package/packages/core/dist/plugin/index.d.ts.map +1 -1
  576. package/packages/core/dist/plugin/uses.d.ts +1 -1
  577. package/packages/core/dist/plugin/uses.d.ts.map +1 -1
  578. package/packages/core/dist/plugin/uses.js +4 -0
  579. package/packages/core/dist/plugin/uses.js.map +1 -1
  580. package/packages/core/dist/plugin/version.d.ts +1 -1
  581. package/packages/core/dist/plugin/version.js +1 -1
  582. package/packages/core/dist/provider.d.ts +1 -1
  583. package/packages/core/dist/provider.js +1 -1
  584. package/packages/core/dist/queue/retry-policy.d.ts +1 -1
  585. package/packages/core/dist/queue/retry-policy.js +1 -1
  586. package/packages/core/dist/registry.d.ts.map +1 -1
  587. package/packages/core/dist/registry.js +3 -4
  588. package/packages/core/dist/registry.js.map +1 -1
  589. package/packages/core/dist/reminders/store.d.ts +1 -1
  590. package/packages/core/dist/reminders/store.js +1 -1
  591. package/packages/core/dist/reminders/types.d.ts +1 -1
  592. package/packages/core/dist/reminders/types.js +1 -1
  593. package/packages/core/dist/sentinels/run.d.ts.map +1 -1
  594. package/packages/core/dist/sentinels/run.js +4 -1
  595. package/packages/core/dist/sentinels/run.js.map +1 -1
  596. package/packages/core/dist/sentinels/types.d.ts +21 -1
  597. package/packages/core/dist/sentinels/types.d.ts.map +1 -1
  598. package/packages/core/dist/sentinels/types.js.map +1 -1
  599. package/packages/core/dist/surfaces.d.ts +2 -0
  600. package/packages/core/dist/surfaces.d.ts.map +1 -1
  601. package/packages/core/dist/surfaces.js +7 -0
  602. package/packages/core/dist/surfaces.js.map +1 -1
  603. package/packages/core/dist/time.d.ts +12 -0
  604. package/packages/core/dist/time.d.ts.map +1 -1
  605. package/packages/core/dist/time.js +46 -0
  606. package/packages/core/dist/time.js.map +1 -1
  607. package/packages/core/dist/tools.d.ts +5 -5
  608. package/packages/core/dist/uninstall.d.ts +79 -0
  609. package/packages/core/dist/uninstall.d.ts.map +1 -0
  610. package/packages/core/dist/uninstall.js +109 -0
  611. package/packages/core/dist/uninstall.js.map +1 -0
  612. package/packages/core/dist/vault/file.js +2 -2
  613. package/packages/core/dist/vault/keychain.js +1 -1
  614. package/packages/core/dist/vault/keychain.js.map +1 -1
  615. package/packages/core/dist/vault/resolve.d.ts +3 -3
  616. package/packages/core/dist/vault/resolve.js +3 -3
  617. package/packages/core/dist/vault/types.d.ts +1 -1
  618. package/packages/core/dist/vault/types.js +1 -1
  619. package/packages/core/dist/views.d.ts +66 -66
  620. package/packages/core/migrations/003_owner_surfaces.sql +1 -1
  621. package/packages/core/migrations/005_artifacts.sql +1 -1
  622. package/packages/core/migrations/009_queue.sql +1 -2
  623. package/packages/core/migrations/010_actions.sql +1 -1
  624. package/packages/core/migrations/043_owner_notifications.sql +77 -0
  625. package/packages/core/migrations/044_owner_metrics.sql +45 -0
  626. package/packages/core/migrations/045_frequency_goals.sql +19 -0
  627. package/packages/core/package.json +4 -0
  628. package/packages/gateway/dist/.tsbuildinfo +1 -1
  629. package/packages/gateway/dist/agents/catalog.js +1 -1
  630. package/packages/gateway/dist/agents-cli.d.ts +25 -1
  631. package/packages/gateway/dist/agents-cli.d.ts.map +1 -1
  632. package/packages/gateway/dist/agents-cli.js +91 -27
  633. package/packages/gateway/dist/agents-cli.js.map +1 -1
  634. package/packages/gateway/dist/bootstrap.d.ts.map +1 -1
  635. package/packages/gateway/dist/bootstrap.js +8 -0
  636. package/packages/gateway/dist/bootstrap.js.map +1 -1
  637. package/packages/gateway/dist/channels/local-notification.d.ts +39 -0
  638. package/packages/gateway/dist/channels/local-notification.d.ts.map +1 -0
  639. package/packages/gateway/dist/channels/local-notification.js +154 -0
  640. package/packages/gateway/dist/channels/local-notification.js.map +1 -0
  641. package/packages/gateway/dist/chat/approvals.d.ts +3 -3
  642. package/packages/gateway/dist/chat/approvals.js +3 -3
  643. package/packages/gateway/dist/chat/usage.d.ts.map +1 -1
  644. package/packages/gateway/dist/chat/usage.js +1 -0
  645. package/packages/gateway/dist/chat/usage.js.map +1 -1
  646. package/packages/gateway/dist/cli.d.ts +14 -0
  647. package/packages/gateway/dist/cli.d.ts.map +1 -1
  648. package/packages/gateway/dist/cli.js +208 -37
  649. package/packages/gateway/dist/cli.js.map +1 -1
  650. package/packages/gateway/dist/db-ready.d.ts +2 -1
  651. package/packages/gateway/dist/db-ready.d.ts.map +1 -1
  652. package/packages/gateway/dist/db-ready.js +3 -2
  653. package/packages/gateway/dist/db-ready.js.map +1 -1
  654. package/packages/gateway/dist/index.d.ts +5 -1
  655. package/packages/gateway/dist/index.d.ts.map +1 -1
  656. package/packages/gateway/dist/index.js +6 -1
  657. package/packages/gateway/dist/index.js.map +1 -1
  658. package/packages/gateway/dist/missions/agent-run.d.ts.map +1 -1
  659. package/packages/gateway/dist/missions/agent-run.js +11 -1
  660. package/packages/gateway/dist/missions/agent-run.js.map +1 -1
  661. package/packages/gateway/dist/missions/execute.d.ts +22 -1
  662. package/packages/gateway/dist/missions/execute.d.ts.map +1 -1
  663. package/packages/gateway/dist/missions/execute.js +8 -1
  664. package/packages/gateway/dist/missions/execute.js.map +1 -1
  665. package/packages/gateway/dist/missions/goals-format.d.ts +32 -5
  666. package/packages/gateway/dist/missions/goals-format.d.ts.map +1 -1
  667. package/packages/gateway/dist/missions/goals-format.js +59 -2
  668. package/packages/gateway/dist/missions/goals-format.js.map +1 -1
  669. package/packages/gateway/dist/missions/goals-page.d.ts +60 -5
  670. package/packages/gateway/dist/missions/goals-page.d.ts.map +1 -1
  671. package/packages/gateway/dist/missions/goals-page.js +355 -8
  672. package/packages/gateway/dist/missions/goals-page.js.map +1 -1
  673. package/packages/gateway/dist/missions/goals.d.ts +64 -5
  674. package/packages/gateway/dist/missions/goals.d.ts.map +1 -1
  675. package/packages/gateway/dist/missions/goals.js +834 -116
  676. package/packages/gateway/dist/missions/goals.js.map +1 -1
  677. package/packages/gateway/dist/missions/sentinel-wake.d.ts +5 -0
  678. package/packages/gateway/dist/missions/sentinel-wake.d.ts.map +1 -1
  679. package/packages/gateway/dist/missions/sentinel-wake.js +12 -0
  680. package/packages/gateway/dist/missions/sentinel-wake.js.map +1 -1
  681. package/packages/gateway/dist/missions-cli.d.ts +2 -0
  682. package/packages/gateway/dist/missions-cli.d.ts.map +1 -1
  683. package/packages/gateway/dist/missions-cli.js +53 -8
  684. package/packages/gateway/dist/missions-cli.js.map +1 -1
  685. package/packages/gateway/dist/owner-notify.d.ts +44 -0
  686. package/packages/gateway/dist/owner-notify.d.ts.map +1 -0
  687. package/packages/gateway/dist/owner-notify.js +91 -0
  688. package/packages/gateway/dist/owner-notify.js.map +1 -0
  689. package/packages/gateway/dist/plugins-cli.d.ts +3 -1
  690. package/packages/gateway/dist/plugins-cli.d.ts.map +1 -1
  691. package/packages/gateway/dist/plugins-cli.js +11 -4
  692. package/packages/gateway/dist/plugins-cli.js.map +1 -1
  693. package/packages/gateway/dist/provider-accounts.d.ts.map +1 -1
  694. package/packages/gateway/dist/provider-accounts.js +22 -13
  695. package/packages/gateway/dist/provider-accounts.js.map +1 -1
  696. package/packages/gateway/dist/reminders-cli.d.ts +3 -1
  697. package/packages/gateway/dist/reminders-cli.d.ts.map +1 -1
  698. package/packages/gateway/dist/reminders-cli.js +21 -2
  699. package/packages/gateway/dist/reminders-cli.js.map +1 -1
  700. package/packages/gateway/dist/serve.d.ts +2 -0
  701. package/packages/gateway/dist/serve.d.ts.map +1 -1
  702. package/packages/gateway/dist/serve.js +61 -13
  703. package/packages/gateway/dist/serve.js.map +1 -1
  704. package/packages/gateway/dist/subscription-signins.d.ts +28 -0
  705. package/packages/gateway/dist/subscription-signins.d.ts.map +1 -0
  706. package/packages/gateway/dist/subscription-signins.js +30 -0
  707. package/packages/gateway/dist/subscription-signins.js.map +1 -0
  708. package/packages/gateway/dist/telegram/api.d.ts +43 -9
  709. package/packages/gateway/dist/telegram/api.d.ts.map +1 -1
  710. package/packages/gateway/dist/telegram/api.js +80 -21
  711. package/packages/gateway/dist/telegram/api.js.map +1 -1
  712. package/packages/gateway/dist/telegram/approvals.d.ts +3 -3
  713. package/packages/gateway/dist/telegram/approvals.js +3 -3
  714. package/packages/gateway/dist/telegram/attachments.d.ts +6 -0
  715. package/packages/gateway/dist/telegram/attachments.d.ts.map +1 -1
  716. package/packages/gateway/dist/telegram/attachments.js +1 -0
  717. package/packages/gateway/dist/telegram/attachments.js.map +1 -1
  718. package/packages/gateway/dist/telegram/browser-view.d.ts.map +1 -1
  719. package/packages/gateway/dist/telegram/browser-view.js +2 -1
  720. package/packages/gateway/dist/telegram/browser-view.js.map +1 -1
  721. package/packages/gateway/dist/telegram/channel.d.ts +36 -0
  722. package/packages/gateway/dist/telegram/channel.d.ts.map +1 -0
  723. package/packages/gateway/dist/telegram/channel.js +71 -0
  724. package/packages/gateway/dist/telegram/channel.js.map +1 -0
  725. package/packages/gateway/dist/telegram/commands.d.ts +28 -0
  726. package/packages/gateway/dist/telegram/commands.d.ts.map +1 -0
  727. package/packages/gateway/dist/telegram/commands.js +74 -0
  728. package/packages/gateway/dist/telegram/commands.js.map +1 -0
  729. package/packages/gateway/dist/telegram/main.d.ts +3 -0
  730. package/packages/gateway/dist/telegram/main.d.ts.map +1 -1
  731. package/packages/gateway/dist/telegram/main.js +71 -2
  732. package/packages/gateway/dist/telegram/main.js.map +1 -1
  733. package/packages/gateway/dist/telegram/outbound.d.ts +191 -0
  734. package/packages/gateway/dist/telegram/outbound.d.ts.map +1 -0
  735. package/packages/gateway/dist/telegram/outbound.js +671 -0
  736. package/packages/gateway/dist/telegram/outbound.js.map +1 -0
  737. package/packages/gateway/dist/telegram/proposals.d.ts +65 -0
  738. package/packages/gateway/dist/telegram/proposals.d.ts.map +1 -0
  739. package/packages/gateway/dist/telegram/proposals.js +183 -0
  740. package/packages/gateway/dist/telegram/proposals.js.map +1 -0
  741. package/packages/gateway/dist/telegram/surface.d.ts +47 -47
  742. package/packages/gateway/dist/telegram/surface.d.ts.map +1 -1
  743. package/packages/gateway/dist/telegram/surface.js +103 -291
  744. package/packages/gateway/dist/telegram/surface.js.map +1 -1
  745. package/packages/gateway/dist/web/config.js +3 -3
  746. package/packages/gateway/dist/web/http.d.ts +16 -3
  747. package/packages/gateway/dist/web/http.d.ts.map +1 -1
  748. package/packages/gateway/dist/web/http.js +39 -3
  749. package/packages/gateway/dist/web/http.js.map +1 -1
  750. package/packages/gateway/dist/web/notifications.d.ts +36 -0
  751. package/packages/gateway/dist/web/notifications.d.ts.map +1 -0
  752. package/packages/gateway/dist/web/notifications.js +63 -0
  753. package/packages/gateway/dist/web/notifications.js.map +1 -0
  754. package/packages/gateway/dist/web/onboarding.d.ts +1 -1
  755. package/packages/gateway/dist/web/onboarding.d.ts.map +1 -1
  756. package/packages/gateway/dist/web/onboarding.js +5 -1
  757. package/packages/gateway/dist/web/onboarding.js.map +1 -1
  758. package/packages/gateway/dist/web/read.js +3 -3
  759. package/packages/gateway/dist/web/secrets.d.ts.map +1 -1
  760. package/packages/gateway/dist/web/secrets.js +3 -2
  761. package/packages/gateway/dist/web/secrets.js.map +1 -1
  762. package/packages/gateway/dist/web/server.d.ts.map +1 -1
  763. package/packages/gateway/dist/web/server.js +54 -23
  764. package/packages/gateway/dist/web/server.js.map +1 -1
  765. package/packages/gateway/dist/web/telegram.d.ts +39 -0
  766. package/packages/gateway/dist/web/telegram.d.ts.map +1 -1
  767. package/packages/gateway/dist/web/telegram.js +53 -1
  768. package/packages/gateway/dist/web/telegram.js.map +1 -1
  769. package/packages/gateway/dist/web/version.d.ts +1 -0
  770. package/packages/gateway/dist/web/version.d.ts.map +1 -1
  771. package/packages/gateway/dist/web/version.js +2 -1
  772. package/packages/gateway/dist/web/version.js.map +1 -1
  773. package/packages/gateway/dist/web/write.js +1 -1
  774. package/packages/install/dist/.tsbuildinfo +1 -1
  775. package/packages/install/dist/environment.d.ts +29 -0
  776. package/packages/install/dist/environment.d.ts.map +1 -1
  777. package/packages/install/dist/environment.js +50 -1
  778. package/packages/install/dist/environment.js.map +1 -1
  779. package/packages/install/dist/launcher.d.ts +3 -1
  780. package/packages/install/dist/launcher.d.ts.map +1 -1
  781. package/packages/install/dist/launcher.js +220 -14
  782. package/packages/install/dist/launcher.js.map +1 -1
  783. package/packages/install/dist/uninstall.d.ts +59 -0
  784. package/packages/install/dist/uninstall.d.ts.map +1 -0
  785. package/packages/install/dist/uninstall.js +260 -0
  786. package/packages/install/dist/uninstall.js.map +1 -0
  787. package/packages/install/dist/upgrade.d.ts +16 -3
  788. package/packages/install/dist/upgrade.d.ts.map +1 -1
  789. package/packages/install/dist/upgrade.js +21 -7
  790. package/packages/install/dist/upgrade.js.map +1 -1
  791. package/packages/runtime/dist/.tsbuildinfo +1 -1
  792. package/packages/runtime/dist/anthropic.d.ts +35 -2
  793. package/packages/runtime/dist/anthropic.d.ts.map +1 -1
  794. package/packages/runtime/dist/anthropic.js +36 -12
  795. package/packages/runtime/dist/anthropic.js.map +1 -1
  796. package/packages/runtime/dist/context-window.d.ts.map +1 -1
  797. package/packages/runtime/dist/context-window.js +5 -2
  798. package/packages/runtime/dist/context-window.js.map +1 -1
  799. package/packages/runtime/dist/delegate.js +1 -1
  800. package/packages/runtime/dist/loop.d.ts +13 -1
  801. package/packages/runtime/dist/loop.d.ts.map +1 -1
  802. package/packages/runtime/dist/loop.js +70 -3
  803. package/packages/runtime/dist/loop.js.map +1 -1
  804. package/packages/runtime/dist/openai.d.ts.map +1 -1
  805. package/packages/runtime/dist/openai.js +26 -8
  806. package/packages/runtime/dist/openai.js.map +1 -1
  807. package/packages/tools/artifacts/dist/.tsbuildinfo +1 -1
  808. package/packages/tools/artifacts/dist/index.d.ts +1 -1
  809. package/packages/tools/browser/dist/.tsbuildinfo +1 -1
  810. package/packages/tools/browser/dist/availability.d.ts +34 -8
  811. package/packages/tools/browser/dist/availability.d.ts.map +1 -1
  812. package/packages/tools/browser/dist/availability.js +44 -5
  813. package/packages/tools/browser/dist/availability.js.map +1 -1
  814. package/packages/tools/browser/dist/controller.d.ts +2 -2
  815. package/packages/tools/browser/dist/controller.d.ts.map +1 -1
  816. package/packages/tools/browser/dist/controller.js +7 -6
  817. package/packages/tools/browser/dist/controller.js.map +1 -1
  818. package/packages/tools/browser/dist/host.d.ts +3 -1
  819. package/packages/tools/browser/dist/host.d.ts.map +1 -1
  820. package/packages/tools/browser/dist/host.js +5 -1
  821. package/packages/tools/browser/dist/host.js.map +1 -1
  822. package/packages/tools/browser/dist/index.d.ts +2 -2
  823. package/packages/tools/browser/dist/index.d.ts.map +1 -1
  824. package/packages/tools/browser/dist/index.js +13 -5
  825. package/packages/tools/browser/dist/index.js.map +1 -1
  826. package/packages/tools/browser/dist/origin-pattern.d.ts +31 -0
  827. package/packages/tools/browser/dist/origin-pattern.d.ts.map +1 -0
  828. package/packages/tools/browser/dist/origin-pattern.js +61 -0
  829. package/packages/tools/browser/dist/origin-pattern.js.map +1 -0
  830. package/packages/tools/browser/dist/public-suffixes.d.ts +24 -0
  831. package/packages/tools/browser/dist/public-suffixes.d.ts.map +1 -0
  832. package/packages/tools/browser/dist/public-suffixes.js +153 -0
  833. package/packages/tools/browser/dist/public-suffixes.js.map +1 -0
  834. package/packages/tools/browser/dist/secrets.d.ts +45 -9
  835. package/packages/tools/browser/dist/secrets.d.ts.map +1 -1
  836. package/packages/tools/browser/dist/secrets.js +77 -20
  837. package/packages/tools/browser/dist/secrets.js.map +1 -1
  838. package/packages/tools/browser/dist/service.d.ts +12 -2
  839. package/packages/tools/browser/dist/service.d.ts.map +1 -1
  840. package/packages/tools/browser/dist/service.js +84 -20
  841. package/packages/tools/browser/dist/service.js.map +1 -1
  842. package/packages/tools/browser/dist/types.d.ts +7 -1
  843. package/packages/tools/browser/dist/types.d.ts.map +1 -1
  844. package/packages/tools/browser/dist/types.js +7 -1
  845. package/packages/tools/browser/dist/types.js.map +1 -1
  846. package/packages/tools/email/dist/.tsbuildinfo +1 -1
  847. package/packages/tools/email/dist/channel.d.ts +43 -0
  848. package/packages/tools/email/dist/channel.d.ts.map +1 -0
  849. package/packages/tools/email/dist/channel.js +99 -0
  850. package/packages/tools/email/dist/channel.js.map +1 -0
  851. package/packages/tools/email/dist/index.d.ts +1 -0
  852. package/packages/tools/email/dist/index.d.ts.map +1 -1
  853. package/packages/tools/email/dist/index.js +8 -1
  854. package/packages/tools/email/dist/index.js.map +1 -1
  855. package/packages/tools/email/dist/ports.d.ts +3 -3
  856. package/packages/tools/email/dist/ports.js +1 -1
  857. package/packages/tools/email/dist/tools/drafts.d.ts +1 -1
  858. package/packages/tools/email/dist/tools/read.js +1 -1
  859. package/packages/tools/email/dist/tools/read.js.map +1 -1
  860. package/packages/tools/email/dist/tools/send.js +1 -1
  861. package/packages/tools/email/migrations/001_email.sql +3 -2
  862. package/packages/tools/email/package.json +2 -1
  863. package/packages/tools/host/dist/.tsbuildinfo +1 -1
  864. package/packages/tools/memory/dist/.tsbuildinfo +1 -1
  865. package/packages/tools/memory/dist/index.js +1 -1
  866. package/packages/tools/memory/migrations/001_memory.sql +1 -1
  867. package/packages/tools/web/dist/.tsbuildinfo +1 -1
  868. package/packages/web/dist/assets/dm-mono-latin-400-normal--0xN8mdc.woff +0 -0
  869. package/packages/web/dist/assets/dm-mono-latin-400-normal-4GdczIuU.woff2 +0 -0
  870. package/packages/web/dist/assets/dm-mono-latin-500-normal-CN8Miw6E.woff +0 -0
  871. package/packages/web/dist/assets/dm-mono-latin-500-normal-DRMDZjhP.woff2 +0 -0
  872. package/packages/web/dist/assets/dm-mono-latin-ext-400-normal-1aZr6b2b.woff +0 -0
  873. package/packages/web/dist/assets/dm-mono-latin-ext-400-normal-C2zvOubV.woff2 +0 -0
  874. package/packages/web/dist/assets/dm-mono-latin-ext-500-normal-BtRyHRi6.woff2 +0 -0
  875. package/packages/web/dist/assets/dm-mono-latin-ext-500-normal-Dw3M13d8.woff +0 -0
  876. package/packages/web/dist/assets/dm-sans-latin-ext-standard-italic-DNX9AbKj.woff2 +0 -0
  877. package/packages/web/dist/assets/dm-sans-latin-ext-standard-normal-oos9povj.woff2 +0 -0
  878. package/packages/web/dist/assets/dm-sans-latin-standard-italic-C8i6y2Ft.woff2 +0 -0
  879. package/packages/web/dist/assets/dm-sans-latin-standard-normal-Bf69Tn_J.woff2 +0 -0
  880. package/packages/web/dist/assets/index-B727JQsO.css +1 -0
  881. package/packages/web/dist/assets/index-OA0xgibo.js +123 -0
  882. package/packages/web/dist/index.html +2 -2
  883. package/packages/web/dist/assets/index-CxaF2koC.js +0 -122
  884. package/packages/web/dist/assets/index-DEho_xyR.css +0 -1
@@ -0,0 +1,154 @@
1
+ /**
2
+ * This machine's system notification as a channel (docs/notifications.md).
3
+ *
4
+ * macOS: `terminal-notifier` when it is installed, because a click on it can
5
+ * open the dashboard; otherwise `osascript`'s `display notification`, which
6
+ * shows and opens nothing. Linux: `notify-send`, when it exists and there is
7
+ * a display to show on. Anywhere else there is nothing to show, so no channel
8
+ * is made and Settings never lists one.
9
+ *
10
+ * The service runs as a user LaunchAgent on macOS, which is in the owner's
11
+ * GUI session: `osascript -e 'display notification …'` works there without a
12
+ * TTY. A LaunchDaemon (root, no session) could not, and buddi installs none.
13
+ *
14
+ * Nothing leaves the machine. Routing already sends a `now` message here only
15
+ * when the owner is away from the dashboard or after the 10-minute wait, so
16
+ * this module checks nothing more.
17
+ */
18
+ import { execFile } from 'node:child_process';
19
+ import { accessSync, constants } from 'node:fs';
20
+ import path from 'node:path';
21
+ /** How long one notification may take before it is refused. */
22
+ export const LOCAL_NOTIFY_TIMEOUT_MS = 5_000;
23
+ /** The longest text shown; a system notification is a line or two. */
24
+ export const LOCAL_NOTIFY_MAX_CHARS = 200;
25
+ /** `execFile` with a timeout, answering instead of throwing. */
26
+ export const execCommand = (file, args, opts) => new Promise((resolve) => {
27
+ execFile(file, [...args], { timeout: opts.timeoutMs, windowsHide: true }, (err, _stdout, stderr) => {
28
+ const text = String(stderr ?? '');
29
+ if (!err)
30
+ return resolve({ code: 0, stderr: text });
31
+ const e = err;
32
+ if (e.killed)
33
+ return resolve({ code: null, stderr: text, error: `it took longer than ${opts.timeoutMs / 1000} s` });
34
+ if (typeof e.code === 'number')
35
+ return resolve({ code: e.code, stderr: text });
36
+ resolve({ code: null, stderr: text, error: e.message });
37
+ });
38
+ });
39
+ /** A binary on PATH (and, on macOS, where Homebrew puts it: a service's PATH may lack it). */
40
+ export function whichOn(env, platform) {
41
+ const dirs = (env.PATH ?? '').split(path.delimiter).filter(Boolean);
42
+ if (platform === 'darwin')
43
+ dirs.push('/opt/homebrew/bin', '/usr/local/bin', '/usr/bin');
44
+ return (bin) => {
45
+ for (const dir of dirs) {
46
+ const full = path.join(dir, bin);
47
+ try {
48
+ accessSync(full, constants.X_OK);
49
+ return full;
50
+ }
51
+ catch {
52
+ // not here
53
+ }
54
+ }
55
+ return null;
56
+ };
57
+ }
58
+ /** One line, at most `max` characters, cut with an ellipsis. */
59
+ export function oneLine(text, max = LOCAL_NOTIFY_MAX_CHARS) {
60
+ const flat = text.replace(/\s+/g, ' ').trim();
61
+ return flat.length <= max ? flat : `${flat.slice(0, max - 1).trimEnd()}…`;
62
+ }
63
+ /** An AppleScript string literal's inside: backslashes and quotes escaped. */
64
+ export function appleScriptString(text) {
65
+ return text.replace(/\\/g, '\\\\').replace(/"/g, '\\"');
66
+ }
67
+ /** The first line of a command's stderr, or what is known instead. */
68
+ function reasonOf(what, result) {
69
+ const line = result.stderr.split('\n').map((l) => l.trim()).find(Boolean);
70
+ if (line)
71
+ return `${what}: ${line}`;
72
+ if (result.error)
73
+ return `${what} did not run: ${result.error}`;
74
+ return `${what} exited with code ${result.code}`;
75
+ }
76
+ /** Title and body as the notification shows them. With no text, the title is the body. */
77
+ function parts(message) {
78
+ const text = message.text?.trim();
79
+ return text
80
+ ? { title: oneLine(message.title, 120), body: oneLine(text) }
81
+ : { title: oneLine(message.title), body: null };
82
+ }
83
+ /**
84
+ * The channel for this machine, or null when it has nothing to show on.
85
+ * The command is picked once, when the channel is made.
86
+ */
87
+ export function createLocalNotificationChannel(opts = {}) {
88
+ const platform = opts.platform ?? process.platform;
89
+ const env = opts.env ?? process.env;
90
+ const exec = opts.exec ?? execCommand;
91
+ const which = opts.which ?? whichOn(env, platform);
92
+ const run = async (what, file, args) => {
93
+ let result;
94
+ try {
95
+ result = await exec(file, args, { timeoutMs: LOCAL_NOTIFY_TIMEOUT_MS });
96
+ }
97
+ catch (err) {
98
+ result = { code: null, stderr: '', error: err instanceof Error ? err.message : String(err) };
99
+ }
100
+ return result.code === 0 ? { id: 'local' } : { refused: reasonOf(what, result) };
101
+ };
102
+ const base = {
103
+ kind: 'local.notification',
104
+ can: { offers: false, attachments: false, markdown: false },
105
+ // After Telegram, before a plugin's: nothing leaves the machine.
106
+ priority: 10,
107
+ };
108
+ if (platform === 'darwin') {
109
+ const notifier = which('terminal-notifier');
110
+ if (notifier) {
111
+ return {
112
+ ...base,
113
+ describe: () => ({ label: 'System notification', where: 'shows on this Mac; a click opens the dashboard' }),
114
+ async deliver(message) {
115
+ const { title, body } = parts(message);
116
+ const args = ['-title', 'buddi', ...(body ? ['-subtitle', title, '-message', body] : ['-message', title]), '-group', `buddi-${message.id}`];
117
+ const url = opts.dashboardUrl?.(message.link?.route ?? '');
118
+ if (url)
119
+ args.push('-open', url);
120
+ return run('terminal-notifier', notifier, args);
121
+ },
122
+ };
123
+ }
124
+ const osascript = which('osascript');
125
+ if (!osascript)
126
+ return null;
127
+ return {
128
+ ...base,
129
+ describe: () => ({ label: 'System notification', where: 'shows on this Mac; opens nothing' }),
130
+ async deliver(message) {
131
+ const { title, body } = parts(message);
132
+ const script = body
133
+ ? `display notification "${appleScriptString(body)}" with title "buddi" subtitle "${appleScriptString(title)}"`
134
+ : `display notification "${appleScriptString(title)}" with title "buddi"`;
135
+ return run('osascript', osascript, ['-e', script]);
136
+ },
137
+ };
138
+ }
139
+ if (platform === 'linux') {
140
+ const notifySend = which('notify-send');
141
+ if (!notifySend || !(env.DISPLAY?.trim() || env.WAYLAND_DISPLAY?.trim()))
142
+ return null;
143
+ return {
144
+ ...base,
145
+ describe: () => ({ label: 'System notification', where: 'shows on this computer; opens nothing' }),
146
+ async deliver(message) {
147
+ const { title, body } = parts(message);
148
+ return run('notify-send', notifySend, [`buddi: ${title}`, ...(body ? [body] : [])]);
149
+ },
150
+ };
151
+ }
152
+ return null;
153
+ }
154
+ //# sourceMappingURL=local-notification.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"local-notification.js","sourceRoot":"","sources":["../../src/channels/local-notification.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAChD,OAAO,IAAI,MAAM,WAAW,CAAC;AAa7B,+DAA+D;AAC/D,MAAM,CAAC,MAAM,uBAAuB,GAAG,KAAK,CAAC;AAE7C,sEAAsE;AACtE,MAAM,CAAC,MAAM,sBAAsB,GAAG,GAAG,CAAC;AAa1C,gEAAgE;AAChE,MAAM,CAAC,MAAM,WAAW,GAAS,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,CACpD,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;IACtB,QAAQ,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,SAAS,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE;QACjG,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;QAClC,IAAI,CAAC,GAAG;YAAE,OAAO,OAAO,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;QACpD,MAAM,CAAC,GAAG,GAA2E,CAAC;QACtF,IAAI,CAAC,CAAC,MAAM;YAAE,OAAO,OAAO,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,uBAAuB,IAAI,CAAC,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,CAAC;QACpH,IAAI,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ;YAAE,OAAO,OAAO,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;QAC/E,OAAO,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;IAC1D,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEL,8FAA8F;AAC9F,MAAM,UAAU,OAAO,CAAC,GAAsB,EAAE,QAAyB;IACvE,MAAM,IAAI,GAAG,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACpE,IAAI,QAAQ,KAAK,QAAQ;QAAE,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,gBAAgB,EAAE,UAAU,CAAC,CAAC;IACxF,OAAO,CAAC,GAAG,EAAE,EAAE;QACb,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YACjC,IAAI,CAAC;gBACH,UAAU,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;gBACjC,OAAO,IAAI,CAAC;YACd,CAAC;YAAC,MAAM,CAAC;gBACP,WAAW;YACb,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;AACJ,CAAC;AAED,gEAAgE;AAChE,MAAM,UAAU,OAAO,CAAC,IAAY,EAAE,GAAG,GAAG,sBAAsB;IAChE,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IAC9C,OAAO,IAAI,CAAC,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,GAAG,CAAC;AAC5E,CAAC;AAED,8EAA8E;AAC9E,MAAM,UAAU,iBAAiB,CAAC,IAAY;IAC5C,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AAC1D,CAAC;AAED,sEAAsE;AACtE,SAAS,QAAQ,CAAC,IAAY,EAAE,MAAkB;IAChD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC1E,IAAI,IAAI;QAAE,OAAO,GAAG,IAAI,KAAK,IAAI,EAAE,CAAC;IACpC,IAAI,MAAM,CAAC,KAAK;QAAE,OAAO,GAAG,IAAI,iBAAiB,MAAM,CAAC,KAAK,EAAE,CAAC;IAChE,OAAO,GAAG,IAAI,qBAAqB,MAAM,CAAC,IAAI,EAAE,CAAC;AACnD,CAAC;AAED,0FAA0F;AAC1F,SAAS,KAAK,CAAC,OAA2B;IACxC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC;IAClC,OAAO,IAAI;QACT,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,EAAE;QAC7D,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AACpD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,8BAA8B,CAAC,OAAiC,EAAE;IAChF,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,OAAO,CAAC,QAAQ,CAAC;IACnD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC;IACpC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,WAAW,CAAC;IACtC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,OAAO,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;IACnD,MAAM,GAAG,GAAG,KAAK,EAAE,IAAY,EAAE,IAAY,EAAE,IAAc,EAAiD,EAAE;QAC9G,IAAI,MAAkB,CAAC;QACvB,IAAI,CAAC;YACH,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,uBAAuB,EAAE,CAAC,CAAC;QAC1E,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;QAC/F,CAAC;QACD,OAAO,MAAM,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,CAAC;IACnF,CAAC,CAAC;IACF,MAAM,IAAI,GAAG;QACX,IAAI,EAAE,oBAAoB;QAC1B,GAAG,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE;QAC3D,iEAAiE;QACjE,QAAQ,EAAE,EAAE;KACb,CAAC;IAEF,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAC1B,MAAM,QAAQ,GAAG,KAAK,CAAC,mBAAmB,CAAC,CAAC;QAC5C,IAAI,QAAQ,EAAE,CAAC;YACb,OAAO;gBACL,GAAG,IAAI;gBACP,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,qBAAqB,EAAE,KAAK,EAAE,gDAAgD,EAAE,CAAC;gBAC3G,KAAK,CAAC,OAAO,CAAC,OAAO;oBACnB,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC;oBACvC,MAAM,IAAI,GAAG,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC,EAAE,QAAQ,EAAE,SAAS,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;oBAC5I,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC;oBAC3D,IAAI,GAAG;wBAAE,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;oBACjC,OAAO,GAAG,CAAC,mBAAmB,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;gBAClD,CAAC;aACF,CAAC;QACJ,CAAC;QACD,MAAM,SAAS,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC;QACrC,IAAI,CAAC,SAAS;YAAE,OAAO,IAAI,CAAC;QAC5B,OAAO;YACL,GAAG,IAAI;YACP,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,qBAAqB,EAAE,KAAK,EAAE,kCAAkC,EAAE,CAAC;YAC7F,KAAK,CAAC,OAAO,CAAC,OAAO;gBACnB,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC;gBACvC,MAAM,MAAM,GAAG,IAAI;oBACjB,CAAC,CAAC,yBAAyB,iBAAiB,CAAC,IAAI,CAAC,kCAAkC,iBAAiB,CAAC,KAAK,CAAC,GAAG;oBAC/G,CAAC,CAAC,yBAAyB,iBAAiB,CAAC,KAAK,CAAC,sBAAsB,CAAC;gBAC5E,OAAO,GAAG,CAAC,WAAW,EAAE,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;YACrD,CAAC;SACF,CAAC;IACJ,CAAC;IAED,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;QACzB,MAAM,UAAU,GAAG,KAAK,CAAC,aAAa,CAAC,CAAC;QACxC,IAAI,CAAC,UAAU,IAAI,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,GAAG,CAAC,eAAe,EAAE,IAAI,EAAE,CAAC;YAAE,OAAO,IAAI,CAAC;QACtF,OAAO;YACL,GAAG,IAAI;YACP,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,qBAAqB,EAAE,KAAK,EAAE,uCAAuC,EAAE,CAAC;YAClG,KAAK,CAAC,OAAO,CAAC,OAAO;gBACnB,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC;gBACvC,OAAO,GAAG,CAAC,aAAa,EAAE,UAAU,EAAE,CAAC,UAAU,KAAK,EAAE,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YACtF,CAAC;SACF,CAAC;IACJ,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -1,9 +1,9 @@
1
1
  /**
2
2
  * Approvals in the terminal.
3
3
  *
4
- * The rule from ARCHITECTURE.md does not change because the surface did: the
5
- * owner decides, core moves the row, and the Executor is the only thing that
6
- * runs the effect. So this file is deliberately thin — it calls exactly the
4
+ * The rule in docs/architecture.md ("Actions and approvals") does not change
5
+ * because the surface did: the owner decides, core moves the row, and the
6
+ * Executor is the only thing that runs the effect. So this file is deliberately thin — it calls exactly the
7
7
  * functions the Telegram surface calls, in exactly the same order:
8
8
  *
9
9
  * decideApproval → executeApproved → resumeJobForAction
@@ -1,9 +1,9 @@
1
1
  /**
2
2
  * Approvals in the terminal.
3
3
  *
4
- * The rule from ARCHITECTURE.md does not change because the surface did: the
5
- * owner decides, core moves the row, and the Executor is the only thing that
6
- * runs the effect. So this file is deliberately thin — it calls exactly the
4
+ * The rule in docs/architecture.md ("Actions and approvals") does not change
5
+ * because the surface did: the owner decides, core moves the row, and the
6
+ * Executor is the only thing that runs the effect. So this file is deliberately thin — it calls exactly the
7
7
  * functions the Telegram surface calls, in exactly the same order:
8
8
  *
9
9
  * decideApproval → executeApproved → resumeJobForAction
@@ -1 +1 @@
1
- {"version":3,"file":"usage.d.ts","sourceRoot":"","sources":["../../src/chat/usage.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAE5C;;;;;;GAMG;AACH,eAAO,MAAM,MAAM,EAAE,SAAS;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,EAgB9E,CAAC;AAEF,0EAA0E;AAC1E,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG,MAAM,GAAG,SAAS,CAQ5E;AAED,uFAAuF;AACvF,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAIlD;AAED,4EAA4E;AAC5E,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEvD;AAED,mFAAmF;AACnF,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAElD;AAED,mDAAmD;AACnD,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb;;;;;;;;OAQG;IACH,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;;;GAIG;AACH,qBAAa,WAAW;;IAKtB,IAAI,KAAK,IAAI,MAAM,CAElB;IAED,IAAI,KAAK,IAAI,MAAM,CAElB;IAED,IAAI,MAAM,IAAI,UAAU,EAAE,CAEzB;IAED,IAAI,KAAK,IAAI,OAAO,CAEnB;IAED,IAAI,MAAM,IAAI,KAAK,CASlB;IAED,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAiBvE,0BAA0B;IAC1B,IAAI,IAAI,MAAM;CA4Bf"}
1
+ {"version":3,"file":"usage.d.ts","sourceRoot":"","sources":["../../src/chat/usage.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAE5C;;;;;;GAMG;AACH,eAAO,MAAM,MAAM,EAAE,SAAS;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,EAiB9E,CAAC;AAEF,0EAA0E;AAC1E,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG,MAAM,GAAG,SAAS,CAQ5E;AAED,uFAAuF;AACvF,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAIlD;AAED,4EAA4E;AAC5E,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEvD;AAED,mFAAmF;AACnF,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAElD;AAED,mDAAmD;AACnD,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb;;;;;;;;OAQG;IACH,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;;;GAIG;AACH,qBAAa,WAAW;;IAKtB,IAAI,KAAK,IAAI,MAAM,CAElB;IAED,IAAI,KAAK,IAAI,MAAM,CAElB;IAED,IAAI,MAAM,IAAI,UAAU,EAAE,CAEzB;IAED,IAAI,KAAK,IAAI,OAAO,CAEnB;IAED,IAAI,MAAM,IAAI,KAAK,CASlB;IAED,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAiBvE,0BAA0B;IAC1B,IAAI,IAAI,MAAM;CA4Bf"}
@@ -8,6 +8,7 @@
8
8
  export const PRICES = [
9
9
  { prefix: 'claude-fable-5', input: 10, output: 50 },
10
10
  { prefix: 'claude-mythos-5', input: 10, output: 50 },
11
+ { prefix: 'claude-opus-5-5', input: 4, output: 20 },
11
12
  { prefix: 'claude-opus-5', input: 5, output: 25 },
12
13
  { prefix: 'claude-opus-4-8', input: 5, output: 25 },
13
14
  { prefix: 'claude-opus-4-7', input: 5, output: 25 },
@@ -1 +1 @@
1
- {"version":3,"file":"usage.js","sourceRoot":"","sources":["../../src/chat/usage.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"usage.js","sourceRoot":"","sources":["../../src/chat/usage.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,6 @@
1
1
  #!/usr/bin/env node
2
+ import { type ActionRecord } from '@buddi/core';
3
+ import type { ApprovalResume } from '@buddi/runtime';
2
4
  import { type TerminalStyle } from './chat/terminal.js';
3
5
  export type ParsedArgs = {
4
6
  command: 'chat' | 'ask' | 'agents' | 'help';
@@ -9,7 +11,17 @@ export type ParsedArgs = {
9
11
  last: boolean;
10
12
  /** `--quiet`: suppress the per-run footer. Absent means "show it". */
11
13
  quiet?: boolean;
14
+ /** `ask --json`: one object on stdout instead of the answer's text. */
15
+ json?: boolean;
16
+ /** `ask --file <path>`, repeatable: stored in the library, sent with the question. */
17
+ files?: string[];
18
+ /** `ask --wait <seconds>`: how long to wait for an approval given elsewhere. */
19
+ waitSeconds?: number;
12
20
  };
21
+ /** An approval the run stopped on, polled every this often under `--wait`. */
22
+ export declare const WAIT_POLL_MS = 2000;
23
+ /** What `ask` says when it stops for an approval. */
24
+ export declare function approvalStopText(actionId: string, conversationId: string): string;
13
25
  export declare function parseArgs(argv: string[]): ParsedArgs;
14
26
  /** Where the prompt remembers what was typed. Beside every other artifact. */
15
27
  export declare function historyFile(env?: NodeJS.ProcessEnv): string;
@@ -45,4 +57,6 @@ export declare function shouldPage(text: string, style: TerminalStyle, rows: num
45
57
  * calls this function instead of re-implementing it.
46
58
  */
47
59
  export declare function main(argv?: string[]): Promise<void>;
60
+ /** How a decided action wakes the run that stopped on it. */
61
+ export declare function approvalResumeFrom(action: ActionRecord): ApprovalResume;
48
62
  //# sourceMappingURL=cli.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AA+CA,OAAO,EAAuB,KAAK,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAyB7E,MAAM,MAAM,UAAU,GAAG;IACvB,OAAO,EAAE,MAAM,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;IAC5C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,4EAA4E;IAC5E,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,OAAO,CAAC;IACd,sEAAsE;IACtE,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB,CAAC;AAEF,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,UAAU,CA+BpD;AAiBD,8EAA8E;AAC9E,wBAAgB,WAAW,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,MAAM,CAExE;AAED,wEAAwE;AACxE,eAAO,MAAM,aAAa,OAAO,CAAC;AAElC;;;GAGG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAWlD;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,MAAM,EAAE,GAAG,IAAI,CAQ1E;AAMD;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE;IACjC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3B,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;CACb,GAAG,CAAC,IAAI,EAAE,MAAM,KAAK,CAAC,MAAM,EAAE,EAAE,MAAM,CAAC,CAwCvC;AAMD;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAIpF;AAoBD;;;;GAIG;AACH,wBAAsB,IAAI,CAAC,IAAI,GAAE,MAAM,EAA0B,GAAG,OAAO,CAAC,IAAI,CAAC,CA+GhF"}
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AA4BA,OAAO,EAML,KAAK,YAAY,EAElB,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,cAAc,EAAiB,MAAM,gBAAgB,CAAC;AAepE,OAAO,EAAuB,KAAK,aAAa,EAAE,MAAM,oBAAoB,CAAC;AA2B7E,MAAM,MAAM,UAAU,GAAG;IACvB,OAAO,EAAE,MAAM,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;IAC5C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,4EAA4E;IAC5E,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,OAAO,CAAC;IACd,sEAAsE;IACtE,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,uEAAuE;IACvE,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,sFAAsF;IACtF,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,gFAAgF;IAChF,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,8EAA8E;AAC9E,eAAO,MAAM,YAAY,OAAQ,CAAC;AAElC,qDAAqD;AACrD,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,MAAM,CAKjF;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,UAAU,CAyCpD;AAiBD,8EAA8E;AAC9E,wBAAgB,WAAW,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,MAAM,CAExE;AAED,wEAAwE;AACxE,eAAO,MAAM,aAAa,OAAO,CAAC;AAElC;;;GAGG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAWlD;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,MAAM,EAAE,GAAG,IAAI,CAQ1E;AAMD;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE;IACjC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3B,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;CACb,GAAG,CAAC,IAAI,EAAE,MAAM,KAAK,CAAC,MAAM,EAAE,EAAE,MAAM,CAAC,CAwCvC;AAMD;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAIpF;AAoBD;;;;GAIG;AACH,wBAAsB,IAAI,CAAC,IAAI,GAAE,MAAM,EAA0B,GAAG,OAAO,CAAC,IAAI,CAAC,CAwHhF;AAaD,6DAA6D;AAC7D,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,YAAY,GAAG,cAAc,CASvE"}
@@ -24,8 +24,9 @@ import { homedir } from 'node:os';
24
24
  import path from 'node:path';
25
25
  import readline from 'node:readline/promises';
26
26
  import { spawn } from 'node:child_process';
27
+ import { randomUUID } from 'node:crypto';
27
28
  import { fileURLToPath } from 'node:url';
28
- import { resolveDataDir, CLI_SURFACE, UnknownAgentError, } from '@buddi/core';
29
+ import { getAction, resolveDataDir, CLI_SURFACE, TERMINAL_STATES, UnknownAgentError, } from '@buddi/core';
29
30
  import { failedTurnReply } from './surfaces/failure.js';
30
31
  import { createConversation, runAgent } from '@buddi/runtime';
31
32
  import { nativeSearchRecorder } from '@buddi/tool-web';
@@ -41,6 +42,7 @@ import { ChatSession, QUIET_UNAVAILABLE_TEXT } from './chat/session.js';
41
42
  import { Spinner, silentSpinner } from './chat/spinner.js';
42
43
  import { bold, dim, styleFor } from './chat/terminal.js';
43
44
  import { describeDatabaseError } from './db-ready.js';
45
+ import { attachFile } from './chat/attach.js';
44
46
  import { createInlineMissionRunner } from './missions/inline.js';
45
47
  import { createEngagementHooks } from './missions/engagement.js';
46
48
  import { recapMissionId } from './missions/recap.js';
@@ -56,12 +58,20 @@ const USAGE = `buddi — your personal agents
56
58
  buddi ask "<question>" one turn, then exit
57
59
  buddi ask "<question>" --agent <handle>
58
60
  buddi ask "<question>" --resume <id>
61
+ buddi ask "<question>" --file <path> --wait <seconds> --json
59
62
  buddi agents every agent, its engine and whether it can run
60
63
  buddi agents show <handle> | set <handle> [--provider p] [--model m]
61
64
  buddi agents models | test <handle>
62
65
 
63
66
  In chat: /help lists every command. Exit codes for ask: 0 answered, 1 failed,
64
- 2 stopped awaiting your approval.`;
67
+ 2 usage, 3 stopped awaiting your approval (or no database, or no such agent).`;
68
+ /** An approval the run stopped on, polled every this often under `--wait`. */
69
+ export const WAIT_POLL_MS = 2_000;
70
+ /** What `ask` says when it stops for an approval. */
71
+ export function approvalStopText(actionId, conversationId) {
72
+ return (`This run is waiting for your approval (action ${actionId}).\n` +
73
+ `Approve it on the dashboard or Telegram, then run buddi ask again with --resume ${conversationId}`);
74
+ }
65
75
  export function parseArgs(argv) {
66
76
  const [raw, ...rest] = argv;
67
77
  const command = raw === 'chat' ? 'chat' : raw === 'ask' ? 'ask' : raw === 'agents' ? 'agents' : 'help';
@@ -90,6 +100,21 @@ export function parseArgs(argv) {
90
100
  else if (arg === '--quiet' || arg === '-q') {
91
101
  parsed.quiet = true;
92
102
  }
103
+ else if (arg === '--json' && command === 'ask') {
104
+ parsed.json = true;
105
+ }
106
+ else if (arg === '--file' && command === 'ask') {
107
+ const value = rest[++i];
108
+ if (!value)
109
+ throw new Error('--file needs a path');
110
+ parsed.files = [...(parsed.files ?? []), value];
111
+ }
112
+ else if (arg === '--wait' && command === 'ask') {
113
+ const value = Number(rest[++i]);
114
+ if (!Number.isFinite(value) || value <= 0)
115
+ throw new Error('--wait needs a number of seconds');
116
+ parsed.waitSeconds = value;
117
+ }
93
118
  else if (arg.startsWith('--')) {
94
119
  throw new Error(`unknown option: ${arg}`);
95
120
  }
@@ -245,7 +270,7 @@ export async function main(argv = process.argv.slice(2)) {
245
270
  }
246
271
  catch (err) {
247
272
  console.error(err instanceof Error ? err.message : String(err));
248
- process.exit(1);
273
+ process.exit(2);
249
274
  }
250
275
  if (args.command === 'help') {
251
276
  console.log(USAGE);
@@ -253,9 +278,16 @@ export async function main(argv = process.argv.slice(2)) {
253
278
  }
254
279
  await loadEnvironment();
255
280
  const style = styleFor(process.env, process.stdout);
256
- if (args.command === 'ask' && !args.question) {
281
+ // A script pipes its question in: `echo "…" | buddi ask`.
282
+ if (args.command === 'ask' && !args.question && process.stdin.isTTY !== true) {
283
+ const piped = (await readStdin()).trim();
284
+ if (piped !== '')
285
+ args.question = piped;
286
+ }
287
+ // With no question, `--resume` finishes a run that stopped for an approval.
288
+ if (args.command === 'ask' && !args.question && !args.resume) {
257
289
  console.error('buddi ask needs a question: buddi ask "can I afford a bike?"');
258
- process.exit(1);
290
+ process.exit(2);
259
291
  }
260
292
  /*
261
293
  * The composition root, vault included. `createWiringAsync` hydrates the
@@ -269,9 +301,9 @@ export async function main(argv = process.argv.slice(2)) {
269
301
  }
270
302
  catch (err) {
271
303
  // A person is waiting at a prompt: fail fast, with the sentence that says
272
- // what to do about it.
304
+ // what to do about it. No database is something to fix first: 3.
273
305
  console.error(describeDatabaseError(err, process.env.DATABASE_URL));
274
- process.exit(1);
306
+ process.exit(3);
275
307
  }
276
308
  const { pool, registry, catalog, now, timezone, ctx } = wiring;
277
309
  // Fails closed: an unknown --agent is never coerced into the default. A
@@ -284,7 +316,7 @@ export async function main(argv = process.argv.slice(2)) {
284
316
  if (err instanceof UnknownAgentError) {
285
317
  console.error(err.message);
286
318
  console.error(`agents live in ${AGENTS_DIR}; run "buddi agents" to list them`);
287
- process.exit(1);
319
+ process.exit(3);
288
320
  }
289
321
  throw err;
290
322
  }
@@ -292,8 +324,8 @@ export async function main(argv = process.argv.slice(2)) {
292
324
  // The *selected* agent's provider, not the process's: an agent pinned to
293
325
  // another provider is run on that provider or not at all.
294
326
  if (!selected.available) {
295
- console.error(`@${selected.handle} cannot run: ${selected.unavailableReason}. Configure its account in dashboard Providers.`);
296
- process.exit(1);
327
+ console.error(`@${selected.handle} cannot run: ${String(selected.unavailableReason).replace(/\.$/, '')}. Configure its account in dashboard Providers.`);
328
+ process.exit(3);
297
329
  }
298
330
  // The cause chain of every failed attempt, on stderr. At a terminal that is
299
331
  // where an operator looks, and it is the only record `buddi chat` keeps.
@@ -325,6 +357,9 @@ export async function main(argv = process.argv.slice(2)) {
325
357
  wiring,
326
358
  provider,
327
359
  memoryPreamble,
360
+ json: args.json === true,
361
+ files: args.files ?? [],
362
+ waitSeconds: args.waitSeconds,
328
363
  });
329
364
  return;
330
365
  }
@@ -339,33 +374,166 @@ export async function main(argv = process.argv.slice(2)) {
339
374
  /* ------------------------------------------------------------------ *
340
375
  * ask — one turn, for a script
341
376
  * ------------------------------------------------------------------ */
377
+ /** All of stdin, for a question piped in. */
378
+ async function readStdin() {
379
+ const chunks = [];
380
+ for await (const chunk of process.stdin)
381
+ chunks.push(Buffer.from(chunk));
382
+ return Buffer.concat(chunks).toString('utf8');
383
+ }
384
+ /** How a decided action wakes the run that stopped on it. */
385
+ export function approvalResumeFrom(action) {
386
+ const outcome = (action.outcome ?? {});
387
+ return {
388
+ actionId: action.id,
389
+ tool: action.tool,
390
+ state: action.state,
391
+ ...(outcome.result === undefined ? {} : { result: outcome.result }),
392
+ ...(typeof outcome.error === 'string' ? { error: outcome.error } : {}),
393
+ };
394
+ }
395
+ /**
396
+ * The action a conversation's last run stopped on, once it is decided and not
397
+ * yet taken up again. Only actions that belong to no queue job: those the
398
+ * queue wakes on its own.
399
+ */
400
+ async function decidedButNotResumed(pool, conversationId) {
401
+ const { rows } = await pool.query(`select a.id from core.actions a
402
+ where a.conversation_id = $1 and a.job_id is null
403
+ and not exists (
404
+ select 1 from core.events e
405
+ where e.kind = 'run.resumed' and e.conversation_id = a.conversation_id
406
+ and e.payload->>'actionId' = a.id::text)
407
+ order by a.created_at desc
408
+ limit 1`, [conversationId]);
409
+ const id = rows[0]?.id;
410
+ if (!id)
411
+ return undefined;
412
+ const action = await getAction(pool, id);
413
+ if (!action)
414
+ return undefined;
415
+ return { action, decided: TERMINAL_STATES.includes(action.state) };
416
+ }
417
+ /** Poll an action until it is decided, or the time is up. */
418
+ async function waitForDecision(pool, actionId, seconds) {
419
+ const deadline = Date.now() + seconds * 1000;
420
+ for (;;) {
421
+ const action = await getAction(pool, actionId);
422
+ if (action && TERMINAL_STATES.includes(action.state))
423
+ return action;
424
+ if (Date.now() >= deadline)
425
+ return undefined;
426
+ await new Promise((resolve) => setTimeout(resolve, Math.min(WAIT_POLL_MS, Math.max(0, deadline - Date.now()))));
427
+ }
428
+ }
342
429
  /**
343
- * Unchanged in shape since the first version: the answer on stdout, everything
344
- * else on stderr, no spinner and no ANSI. The only addition is the exit code,
345
- * so a script can tell "answered" from "waiting for you".
430
+ * `ask` — one turn, for a script.
431
+ *
432
+ * The answer on stdout (or one JSON object with `--json`), everything else on
433
+ * stderr, no spinner and no ANSI. Exit 0 answered, 1 failed, 3 stopped for an
434
+ * approval: with `--wait` the run waits for a decision made elsewhere and
435
+ * finishes; without it, the sentence says how to finish it later.
346
436
  */
347
437
  async function ask(question, conversationId, deps) {
348
438
  const { wiring } = deps;
349
- console.error(`conversation: ${conversationId}`);
439
+ const runId = randomUUID();
440
+ const startedAt = new Date();
441
+ if (!deps.json)
442
+ console.error(`conversation: ${conversationId}`);
443
+ const store = createCoreArtifactStore({ pool: wiring.pool, env: process.env });
444
+ const attachments = [];
445
+ for (const file of deps.files) {
446
+ try {
447
+ const saved = await attachFile(path.resolve(file), {
448
+ store,
449
+ readFile: (candidate) => readFile(candidate),
450
+ createdBy: wiring.ctx.ownerId,
451
+ });
452
+ attachments.push({
453
+ artifactId: saved.artifactId,
454
+ mime: saved.mime,
455
+ kind: saved.kind,
456
+ filename: saved.filename,
457
+ sizeBytes: saved.sizeBytes,
458
+ });
459
+ }
460
+ catch (err) {
461
+ console.error(`Could not attach ${file}: ${err instanceof Error ? err.message : String(err)}`);
462
+ process.exitCode = 1;
463
+ return;
464
+ }
465
+ }
466
+ // No question: finish the run this conversation stopped on, if it can be.
467
+ let resume;
468
+ if (question === undefined) {
469
+ const found = await decidedButNotResumed(wiring.pool, conversationId);
470
+ if (!found) {
471
+ console.error('Nothing in that conversation is waiting to be finished. Ask a question: buddi ask "…" --resume <id>.');
472
+ process.exitCode = 2;
473
+ return;
474
+ }
475
+ let action = found.action;
476
+ if (!found.decided) {
477
+ action = deps.waitSeconds === undefined ? undefined : await waitForDecision(wiring.pool, found.action.id, deps.waitSeconds);
478
+ if (!action) {
479
+ report({ text: '', pendingActionId: found.action.id });
480
+ return;
481
+ }
482
+ }
483
+ resume = approvalResumeFrom(action);
484
+ }
485
+ function report(result, artifacts = []) {
486
+ if (deps.json) {
487
+ console.log(JSON.stringify({
488
+ text: result.text,
489
+ runId,
490
+ conversationId,
491
+ artifacts,
492
+ ...(result.pendingActionId ? { pendingActionId: result.pendingActionId } : {}),
493
+ }, null, 2));
494
+ }
495
+ else if (result.text !== '') {
496
+ console.log(result.text);
497
+ }
498
+ if (result.pendingActionId) {
499
+ console.error(`\n${approvalStopText(result.pendingActionId, conversationId)}`);
500
+ process.exitCode = 3;
501
+ }
502
+ }
503
+ const run = (turn) => runAgent({
504
+ agent: deps.agent.definition(wiring.now(), wiring.timezone),
505
+ provider: deps.provider,
506
+ registry: wiring.registry,
507
+ ctx: wiring.ctx,
508
+ pool: wiring.pool,
509
+ // The provider's own web search leaves the same audit row `web.search`
510
+ // does; see @buddi/tool-web's native.ts.
511
+ onNativeSearch: nativeSearchRecorder(wiring.pool),
512
+ conversationId,
513
+ runId,
514
+ ...turn,
515
+ loadArtifact: (id) => store.load(id),
516
+ surface: CLI_SURFACE,
517
+ memoryPreamble: deps.memoryPreamble,
518
+ onToolCall: (name, input) => {
519
+ if (!deps.json)
520
+ console.error(`⚙ ${name} ${JSON.stringify(input)}`);
521
+ },
522
+ });
350
523
  let result;
351
524
  try {
352
- result = await runAgent({
353
- agent: deps.agent.definition(wiring.now(), wiring.timezone),
354
- provider: deps.provider,
355
- registry: wiring.registry,
356
- ctx: wiring.ctx,
357
- pool: wiring.pool,
358
- // The provider's own web search leaves the same audit row `web.search`
359
- // does; see @buddi/tool-web's native.ts.
360
- onNativeSearch: nativeSearchRecorder(wiring.pool),
361
- conversationId,
362
- userMessage: question,
363
- surface: CLI_SURFACE,
364
- memoryPreamble: deps.memoryPreamble,
365
- onToolCall: (name, input) => {
366
- console.error(`⚙ ${name} ${JSON.stringify(input)}`);
367
- },
368
- });
525
+ result = await run(resume
526
+ ? { resume }
527
+ : { userMessage: question, ...(attachments.length > 0 ? { attachments } : {}) });
528
+ // `--wait`: the owner decides on another surface, and this run finishes.
529
+ while (result.stopped === 'awaiting-approval' && result.pendingActionId && deps.waitSeconds !== undefined) {
530
+ if (!deps.json)
531
+ console.error(`waiting up to ${deps.waitSeconds}s for your decision on action ${result.pendingActionId}`);
532
+ const decided = await waitForDecision(wiring.pool, result.pendingActionId, deps.waitSeconds);
533
+ if (!decided)
534
+ break;
535
+ result = await run({ resume: approvalResumeFrom(decided) });
536
+ }
369
537
  }
370
538
  catch (err) {
371
539
  // A script still deserves the human sentence: `fetch failed` on stderr and
@@ -388,14 +556,17 @@ async function ask(question, conversationId, deps) {
388
556
  process.exitCode = 1;
389
557
  return;
390
558
  }
559
+ // What the run made: files an agent saved in this conversation since it began.
560
+ const { rows } = await wiring.pool.query(`select id, filename from core.artifacts
561
+ where conversation_id = $1 and created_at >= $2 and created_by <> $3 and deleted_at is null
562
+ order by created_at`, [conversationId, startedAt, wiring.ctx.ownerId]);
563
+ const made = rows.map((r) => ({ id: String(r.id), filename: r.filename }));
391
564
  // Safety net, not the mechanism: tool names are internal and nothing asks the
392
565
  // model to print one. This catches the answer of a model that did anyway.
393
- console.log(stripToolNames(result.text));
394
- if (result.stopped === 'awaiting-approval' && result.pendingActionId) {
395
- console.error(`\nthis run is waiting for your approval (action ${result.pendingActionId}).\n` +
396
- 'Decide it with: buddi chat, then /approvals');
397
- process.exitCode = 2;
398
- }
566
+ report({
567
+ text: stripToolNames(result.text),
568
+ ...(result.stopped === 'awaiting-approval' && result.pendingActionId ? { pendingActionId: result.pendingActionId } : {}),
569
+ }, made);
399
570
  }
400
571
  /* ------------------------------------------------------------------ *
401
572
  * chat — the REPL