@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 @@
1
+ {"version":3,"file":"public-suffixes.js","sourceRoot":"","sources":["../src/public-suffixes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,MAAM,eAAe,GAAwB,IAAI,GAAG,CAAC;IAC1D,yCAAyC;IACzC,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ;IACtH,QAAQ;IACR,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO;IAClC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ;IAC/E,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ;IAChD,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ;IACtC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ;IAChD,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO;IAC/C,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ;IAChD,OAAO,EAAE,QAAQ,EAAE,SAAS;IAC5B,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ;IACvC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO;IAC9C,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS;IACpE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ;IAChD,OAAO,EAAE,SAAS;IAClB,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS;IACvC,OAAO,EAAE,QAAQ,EAAE,QAAQ;IAC3B,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO;IAC3D,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ;IACrF,uBAAuB;IACvB,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO;IAC3C,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ;IAChD,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW;IACrE,yCAAyC;IACzC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ;IAC1I,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ;IACpE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ;IAC1D,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ;IAC1D,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO;IAC/C,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ;IAChD,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ;IAC1D,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ;IAChD,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ;IAChD,QAAQ,EAAE,QAAQ,EAAE,OAAO;IAC3B,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ;IAChD,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ;IAChD,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO;IAC3C,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ;IACtC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ;IACtC,QAAQ,EAAE,QAAQ,EAAE,QAAQ;IAC5B,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ;IACtC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ;IACtC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ;IACtC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO;IAC/C,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ;IACtC,0BAA0B;IAC1B,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO;IACnE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU;IACxG,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO;IAC/E,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO;IACzD,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ;IAC1D,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ;IAC1D,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO;IAC7D,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ;IAC3G,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ;IAC1D,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS;IAC3D,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ;IACnF,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ;IACrD,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ;IAChD,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ;IAChD,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ;IAChD,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ;IAChD,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ;IACtC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ;IACtC,QAAQ,EAAE,QAAQ,EAAE,QAAQ;IAC5B,QAAQ,EAAE,QAAQ,EAAE,QAAQ;IAC5B,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO;IACrC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO;IACrC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ;IACtC,gCAAgC;IAChC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ;IAC5G,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS;IACzD,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ;IAC1D,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO;IAC9C,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ;IAChD,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ;IAChD,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ;IAChD,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO;IAC/C,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ;IAChD,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ;IAChD,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ;IAC1D,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ;IAC9C,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ;IAC5E,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS;IAC3D,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO;IACpD,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO;IAC3C,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO;IAC3C,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ;IACtC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU;IAC1D,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ;IAChD,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ;IAChD,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ;IACtC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO;IACpC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO;IACpC,OAAO,EAAE,QAAQ,EAAE,OAAO;IAC1B,QAAQ,EAAE,QAAQ,EAAE,OAAO;IAC3B,OAAO,EAAE,QAAQ,EAAE,QAAQ;IAC3B,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ;IACrC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS;IACvC,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO;IAC5C,QAAQ,EAAE,SAAS;IACnB,OAAO,EAAE,QAAQ,EAAE,OAAO;IAC1B,4EAA4E;IAC5E,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IACtE,uDAAuD;IACvD,WAAW,EAAE,uBAAuB,EAAE,WAAW,EAAE,cAAc;IACjE,WAAW,EAAE,aAAa,EAAE,mBAAmB;IAC/C,YAAY,EAAE,YAAY,EAAE,QAAQ;IACpC,aAAa,EAAE,aAAa;IAC5B,eAAe,EAAE,eAAe;IAChC,gBAAgB,EAAE,eAAe,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,gBAAgB;IACnH,mBAAmB,EAAE,qBAAqB,EAAE,cAAc,EAAE,eAAe,EAAE,aAAa,EAAE,uBAAuB,EAAE,oBAAoB;IACzI,aAAa,EAAE,iBAAiB,EAAE,SAAS,EAAE,SAAS,EAAE,oBAAoB,EAAE,cAAc;IAC5F,SAAS,EAAE,cAAc,EAAE,gBAAgB,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW,EAAE,SAAS,EAAE,YAAY,EAAE,YAAY;IACvH,UAAU,EAAE,WAAW,EAAE,gBAAgB,EAAE,WAAW,EAAE,gBAAgB;IACxE,UAAU,EAAE,gBAAgB,EAAE,eAAe,EAAE,aAAa,EAAE,YAAY,EAAE,YAAY,EAAE,gBAAgB;IAC1G,oBAAoB,EAAE,wBAAwB,EAAE,aAAa,EAAE,YAAY,EAAE,uBAAuB,EAAE,iBAAiB;IACvH,aAAa,EAAE,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ;IAClG,eAAe,EAAE,eAAe,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,eAAe,EAAE,UAAU;CACtG,CAAC,CAAC;AAEH;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAAC,IAAY;IACzC,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACnD,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IACrC,IAAI,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IAC3C,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;IACjD,OAAO,eAAe,CAAC,GAAG,CAAC,KAAK,MAAM,EAAE,CAAC,CAAC;AAC5C,CAAC"}
@@ -9,7 +9,10 @@
9
9
  * one thing a phishing page controls (§8). `checkTarget` compares that live
10
10
  * value against the binding in the exact canonical form `canonicalOrigin`
11
11
  * produces, so a look-alike host, a punycode spelling or the right site in a
12
- * frame on the wrong one is refused before any card is drawn.
12
+ * frame on the wrong one is refused before any card is drawn. A binding may
13
+ * instead name a wildcard origin, `https://*.wikimedia.org` (origin-pattern.ts):
14
+ * the suffix stays fixed, and the use, the card and the log still carry the
15
+ * real origin the field sits on, never the pattern.
13
16
  *
14
17
  * `deliver` parks the value against the use id and nothing else: the tool that
15
18
  * asked takes it the same turn and hands it straight to the driver, which is
@@ -17,7 +20,7 @@
17
20
  * owner-secrets.md §3). There is no read path and no log line carries one.
18
21
  */
19
22
  import type { SecretDestination } from '@buddi/core/plugin';
20
- /** The owner's password or TOTP code, into a field the page marks as a password (or an OTP field). */
23
+ /** The owner's password, TOTP code or sign-in name, into a field of one bound origin. */
21
24
  export declare const FIELD_KIND = "browser.field";
22
25
  /** Card, account and tax numbers, into a named field on a bound origin — every use a card. */
23
26
  export declare const FORM_KIND = "browser.form.data";
@@ -56,16 +59,49 @@ export interface FormTarget {
56
59
  field: string;
57
60
  }
58
61
  /**
59
- * Which destination one fill takes: a TOTP code goes into `browser.field`
60
- * whatever the field is (OTP fields are text), a password into `browser.field`,
61
- * and anything else is form data (§4). The caller learns `totp` from
62
- * `ctx.buddi.secrets.list()` — names and flags only, there is no read path —
63
- * and `password` from the backend.
62
+ * Whether the owner bound this secret as `browser.field` to the origin the
63
+ * field sits on. Names, kinds and targets only — `ctx.buddi.secrets.list()`
64
+ * never carries a value.
64
65
  */
65
- export declare function secretKindFor(totp: boolean, password: boolean): typeof FIELD_KIND | typeof FORM_KIND;
66
+ export declare function fieldBoundTo(bindings: ReadonlyArray<{
67
+ kind: string;
68
+ target: unknown;
69
+ }>, origin: string): boolean;
70
+ /**
71
+ * Which destination one fill takes (§3): a TOTP code goes into `browser.field`
72
+ * whatever the field is (OTP fields are text), and so does a password. A
73
+ * visible field takes `browser.field` too when the owner bound the secret as
74
+ * `browser.field` to that field's origin — a username is always a visible
75
+ * field — and anything else is form data, which is a card every time. So a
76
+ * password field never takes a form-data-only secret, and a card number bound
77
+ * as form data never skips its card. The caller learns `totp` and the bindings
78
+ * from `ctx.buddi.secrets.list()` and `password` from the backend.
79
+ */
80
+ export declare function secretKindFor(totp: boolean, password: boolean, fieldBound?: boolean): typeof FIELD_KIND | typeof FORM_KIND;
81
+ /** One secret as an agent may see it: its name, whether it is a TOTP seed, and where it may go. Never a value. */
82
+ export interface SecretForAgent {
83
+ name: string;
84
+ totp: boolean;
85
+ bindings: Array<{
86
+ kind: string;
87
+ target: unknown;
88
+ }>;
89
+ }
90
+ /**
91
+ * What `secret.list` answers: each field copied by name, so nothing the
92
+ * listing ever grows (last use, rules, approvals) reaches a model by accident.
93
+ */
94
+ export declare function secretsForAgent(listing: ReadonlyArray<{
95
+ name: string;
96
+ totp: boolean;
97
+ bindings: ReadonlyArray<{
98
+ kind: string;
99
+ target: unknown;
100
+ }>;
101
+ }>): SecretForAgent[];
66
102
  /** The value one use delivered, taken exactly once. Undefined when there is none. */
67
103
  export declare function takeDelivered(use: string): string | undefined;
68
- /** `browser.field`: the owner's secret into one field of one exact origin. */
104
+ /** `browser.field`: the owner's secret into a field of one exact origin, or of any origin under a wildcard one. */
69
105
  export declare const fieldDestination: SecretDestination;
70
106
  /**
71
107
  * `browser.form.data`: a named field on a bound origin. Every use a card, and
@@ -1 +1 @@
1
- {"version":3,"file":"secrets.d.ts","sourceRoot":"","sources":["../src/secrets.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAG5D,sGAAsG;AACtG,eAAO,MAAM,UAAU,kBAAkB,CAAC;AAC1C,8FAA8F;AAC9F,eAAO,MAAM,SAAS,sBAAsB,CAAC;AAC7C,yFAAyF;AACzF,eAAO,MAAM,WAAW,wBAAwB,CAAC;AAEjD,kFAAkF;AAClF,MAAM,WAAW,gBAAgB;IAC/B,2FAA2F;IAC3F,MAAM,EAAE,MAAM,CAAC;IACf,sDAAsD;IACtD,QAAQ,EAAE,OAAO,CAAC;IAClB,uFAAuF;IACvF,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAMlF;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,CAMlE;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAAE,cAAc,EAAE,MAAM,GAAG,MAAM,CAMhG;AASD,iFAAiF;AACjF,MAAM,WAAW,UAAU;IAAG,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE;AAU7D;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,GAAG,OAAO,UAAU,GAAG,OAAO,SAAS,CAEpG;AAKD,qFAAqF;AACrF,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAI7D;AAMD,8EAA8E;AAC9E,eAAO,MAAM,gBAAgB,EAAE,iBAM9B,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,mBAAmB,EAAE,iBAejC,CAAC;AAEF,oFAAoF;AACpF,eAAO,MAAM,qBAAqB,EAAE,iBAMnC,CAAC"}
1
+ {"version":3,"file":"secrets.d.ts","sourceRoot":"","sources":["../src/secrets.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAI5D,yFAAyF;AACzF,eAAO,MAAM,UAAU,kBAAkB,CAAC;AAC1C,8FAA8F;AAC9F,eAAO,MAAM,SAAS,sBAAsB,CAAC;AAC7C,yFAAyF;AACzF,eAAO,MAAM,WAAW,wBAAwB,CAAC;AAEjD,kFAAkF;AAClF,MAAM,WAAW,gBAAgB;IAC/B,2FAA2F;IAC3F,MAAM,EAAE,MAAM,CAAC;IACf,sDAAsD;IACtD,QAAQ,EAAE,OAAO,CAAC;IAClB,uFAAuF;IACvF,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAQlF;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,CAMlE;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAAE,cAAc,EAAE,MAAM,GAAG,MAAM,CAMhG;AAoBD,iFAAiF;AACjF,MAAM,WAAW,UAAU;IAAG,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE;AAW7D;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,aAAa,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,OAAO,CAAA;CAAE,CAAC,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAEhH;AAED;;;;;;;;;GASG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,UAAQ,GAAG,OAAO,UAAU,GAAG,OAAO,SAAS,CAExH;AAED,kHAAkH;AAClH,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,OAAO,CAAC;IACd,QAAQ,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;CACpD;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,aAAa,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,aAAa,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,OAAO,CAAA;KAAE,CAAC,CAAA;CAAE,CAAC,GAAG,cAAc,EAAE,CAMrK;AAKD,qFAAqF;AACrF,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAI7D;AAkBD,mHAAmH;AACnH,eAAO,MAAM,gBAAgB,EAAE,iBAU9B,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,mBAAmB,EAAE,iBAejC,CAAC;AAEF,oFAAoF;AACpF,eAAO,MAAM,qBAAqB,EAAE,iBAMnC,CAAC"}
@@ -1,5 +1,6 @@
1
+ import { isOriginPattern, originMatchesPattern, parseOriginPattern } from './origin-pattern.js';
1
2
  import { BrowserPreconditionError } from './types.js';
2
- /** The owner's password or TOTP code, into a field the page marks as a password (or an OTP field). */
3
+ /** The owner's password, TOTP code or sign-in name, into a field of one bound origin. */
3
4
  export const FIELD_KIND = 'browser.field';
4
5
  /** Card, account and tax numbers, into a named field on a bound origin — every use a card. */
5
6
  export const FORM_KIND = 'browser.form.data';
@@ -23,6 +24,9 @@ export function canonicalOrigin(url) {
23
24
  }
24
25
  if (parsed.protocol !== 'https:' && parsed.protocol !== 'http:')
25
26
  return undefined;
27
+ // A `*` is a pattern's, never a real host's (origin-pattern.ts).
28
+ if (parsed.hostname.includes('*'))
29
+ return undefined;
26
30
  return parsed.origin;
27
31
  }
28
32
  /**
@@ -48,32 +52,67 @@ export function checkSecretOrigin(url, expectedOrigin) {
48
52
  }
49
53
  return origin;
50
54
  }
51
- /** Two origins bind to each other only when both are canonical and equal. */
52
- function sameOrigin(a, b) {
53
- if (typeof a !== 'string' || typeof b !== 'string')
55
+ /**
56
+ * A real origin binds to a bound one when both are canonical and equal, or
57
+ * when the bound one is a wildcard origin the real one sits under. The real
58
+ * side is never a pattern.
59
+ */
60
+ function originBinds(real, bound) {
61
+ if (typeof real !== 'string' || typeof bound !== 'string')
54
62
  return false;
55
- const left = canonicalOrigin(a);
56
- return left !== undefined && left === canonicalOrigin(b);
63
+ const left = canonicalOrigin(real);
64
+ if (left === undefined)
65
+ return false;
66
+ if (isOriginPattern(bound))
67
+ return originMatchesPattern(left, bound);
68
+ return left === canonicalOrigin(bound);
69
+ }
70
+ /** A bound origin as a binding may hold it: a canonical origin, or a valid wildcard origin. */
71
+ function boundOrigin(origin) {
72
+ return isOriginPattern(origin) ? parseOriginPattern(origin).ok : canonicalOrigin(origin) !== undefined;
57
73
  }
58
- function formTarget(target) {
74
+ /** A form.data target; `bound` lets the origin be a wildcard, which only a binding may be. */
75
+ function formTarget(target, bound = false) {
59
76
  if (!target || typeof target !== 'object' || Array.isArray(target))
60
77
  return undefined;
61
78
  const { origin, field } = target;
62
79
  if (typeof origin !== 'string' || typeof field !== 'string')
63
80
  return undefined;
64
- if (canonicalOrigin(origin) === undefined)
81
+ if (!(bound ? boundOrigin(origin) : canonicalOrigin(origin) !== undefined))
65
82
  return undefined;
66
83
  return { origin, field };
67
84
  }
68
85
  /**
69
- * Which destination one fill takes: a TOTP code goes into `browser.field`
70
- * whatever the field is (OTP fields are text), a password into `browser.field`,
71
- * and anything else is form data (§4). The caller learns `totp` from
72
- * `ctx.buddi.secrets.list()` — names and flags only, there is no read path —
73
- * and `password` from the backend.
86
+ * Whether the owner bound this secret as `browser.field` to the origin the
87
+ * field sits on. Names, kinds and targets only — `ctx.buddi.secrets.list()`
88
+ * never carries a value.
89
+ */
90
+ export function fieldBoundTo(bindings, origin) {
91
+ return bindings.some((binding) => binding.kind === FIELD_KIND && originBinds(origin, binding.target));
92
+ }
93
+ /**
94
+ * Which destination one fill takes (§3): a TOTP code goes into `browser.field`
95
+ * whatever the field is (OTP fields are text), and so does a password. A
96
+ * visible field takes `browser.field` too when the owner bound the secret as
97
+ * `browser.field` to that field's origin — a username is always a visible
98
+ * field — and anything else is form data, which is a card every time. So a
99
+ * password field never takes a form-data-only secret, and a card number bound
100
+ * as form data never skips its card. The caller learns `totp` and the bindings
101
+ * from `ctx.buddi.secrets.list()` and `password` from the backend.
102
+ */
103
+ export function secretKindFor(totp, password, fieldBound = false) {
104
+ return totp || password || fieldBound ? FIELD_KIND : FORM_KIND;
105
+ }
106
+ /**
107
+ * What `secret.list` answers: each field copied by name, so nothing the
108
+ * listing ever grows (last use, rules, approvals) reaches a model by accident.
74
109
  */
75
- export function secretKindFor(totp, password) {
76
- return totp || password ? FIELD_KIND : FORM_KIND;
110
+ export function secretsForAgent(listing) {
111
+ return listing.map((secret) => ({
112
+ name: secret.name,
113
+ totp: secret.totp === true,
114
+ bindings: secret.bindings.map((binding) => ({ kind: binding.kind, target: binding.target })),
115
+ }));
77
116
  }
78
117
  /** Values delivered and not yet taken, by use id — `email`'s credentials pattern. */
79
118
  const handed = new Map();
@@ -86,12 +125,30 @@ export function takeDelivered(use) {
86
125
  function deliver(value, _target, { use }) {
87
126
  handed.set(use, value);
88
127
  }
89
- /** `browser.field`: the owner's secret into one field of one exact origin. */
128
+ /**
129
+ * A `browser.field` use's target: the origin, or for a visible field the
130
+ * origin and the field's name, so the card says exactly where it goes. The
131
+ * binding is always the origin alone.
132
+ */
133
+ function fieldTargetOrigin(target) {
134
+ if (typeof target === 'string')
135
+ return target;
136
+ if (!target || typeof target !== 'object' || Array.isArray(target))
137
+ return undefined;
138
+ const { origin, field } = target;
139
+ return typeof origin === 'string' && typeof field === 'string' ? origin : undefined;
140
+ }
141
+ /** `browser.field`: the owner's secret into a field of one exact origin, or of any origin under a wildcard one. */
90
142
  export const fieldDestination = {
91
143
  kind: FIELD_KIND,
92
144
  maxRule: 'pre-approved',
93
- checkTarget: (target, bound) => typeof target === 'string' && typeof bound === 'string' && sameOrigin(target, bound),
94
- describe: (target) => `the page at ${String(target)}`,
145
+ checkTarget: (target, bound) => typeof bound === 'string' && originBinds(fieldTargetOrigin(target), bound),
146
+ describe(target) {
147
+ if (typeof target === 'string')
148
+ return `the page at ${target}`;
149
+ const asked = formTarget(target);
150
+ return asked === undefined ? 'a page field' : `the ${asked.field} field on ${asked.origin}`;
151
+ },
95
152
  deliver,
96
153
  };
97
154
  /**
@@ -103,10 +160,10 @@ export const formDataDestination = {
103
160
  maxRule: 'every-time',
104
161
  checkTarget(target, bound) {
105
162
  const asked = formTarget(target);
106
- const owned = formTarget(bound);
163
+ const owned = formTarget(bound, true);
107
164
  if (asked === undefined || owned === undefined)
108
165
  return false;
109
- if (!sameOrigin(asked.origin, owned.origin))
166
+ if (!originBinds(asked.origin, owned.origin))
110
167
  return false;
111
168
  return asked.field === owned.field;
112
169
  },
@@ -1 +1 @@
1
- {"version":3,"file":"secrets.js","sourceRoot":"","sources":["../src/secrets.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"secrets.js","sourceRoot":"","sources":["../src/secrets.ts"],"names":[],"mappings":"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"}
@@ -10,6 +10,16 @@ import type { BrowserCommand, BrowserDriver, BrowserHand, Observation } from './
10
10
  * same chat; everywhere else it is the dashboard's own Settings page, which is
11
11
  * where the Stop button lives.
12
12
  */
13
+ /** Said when control paused: the tab or window is gone, or the page kept failing to answer. The way back depends on where the owner is. */
14
+ export declare function browserPausedMessage(surface?: SurfaceProfile): string;
15
+ /**
16
+ * Said when an observation did not answer and control stays with the agent.
17
+ * A slow page is something the model can wait out itself, so there is nothing
18
+ * for the owner to do and the wording is the same on every surface.
19
+ */
20
+ export declare function browserWaitMessage(_surface?: SurfaceProfile): string;
21
+ /** What the model is told instead: one ask of the owner, not a retry. */
22
+ export declare const OWNER_WATCHING_MESSAGE = "The owner is looking at that tab. Ask them to switch to another tab or window, then try once more.";
13
23
  export declare function browserStoppedMessage(surface?: SurfaceProfile): string;
14
24
  /** The three ways an agent can get a screen. */
15
25
  export type BrowserMode = 'computer' | 'playwright' | 'extension';
@@ -55,8 +65,8 @@ export interface BrowserEngineStatus {
55
65
  engine: 'chromium' | 'chrome' | 'none';
56
66
  /** No display on this Linux machine, so it runs headless. */
57
67
  headless: boolean;
58
- /** The last launch failed for missing Linux libraries. */
59
- problem?: 'missing-libraries';
68
+ /** The last launch failed for missing Linux libraries, or because the system would not let Chromium start its sandbox. */
69
+ problem?: 'missing-libraries' | 'no-sandbox';
60
70
  /** One or two sentences for the owner, when there is something to say. */
61
71
  message?: string;
62
72
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,8 @@
1
1
  import { randomUUID } from 'node:crypto';
2
2
  import { mkdir, readFile, writeFile, rename } from 'node:fs/promises';
3
3
  import path from 'node:path';
4
- import { FORM_KIND, NATIVE_KIND, secretKindFor, takeDelivered } from './secrets.js';
5
- import { BrowserPreconditionError, UNTRUSTED } from './types.js';
4
+ import { FORM_KIND, NATIVE_KIND, fieldBoundTo, secretKindFor, takeDelivered } from './secrets.js';
5
+ import { BrowserPreconditionError, UNTRUSTED, observedLine } from './types.js';
6
6
  /**
7
7
  * "The owner stopped the browser", said where the owner can undo it.
8
8
  *
@@ -12,6 +12,30 @@ import { BrowserPreconditionError, UNTRUSTED } from './types.js';
12
12
  * same chat; everywhere else it is the dashboard's own Settings page, which is
13
13
  * where the Stop button lives.
14
14
  */
15
+ /** Said when control paused: the tab or window is gone, or the page kept failing to answer. The way back depends on where the owner is. */
16
+ export function browserPausedMessage(surface) {
17
+ return surface?.id === 'telegram'
18
+ ? 'Control is paused: the page closed or stopped answering. Send /browser resume here, then ask again for a fresh look.'
19
+ : 'Control is paused. Ask the owner to inspect the selected app/window and the reported cause, then use Resume access and ask for a fresh observation.';
20
+ }
21
+ /**
22
+ * Said when an observation did not answer and control stays with the agent.
23
+ * A slow page is something the model can wait out itself, so there is nothing
24
+ * for the owner to do and the wording is the same on every surface.
25
+ */
26
+ export function browserWaitMessage(_surface) {
27
+ return 'The page has not answered yet. Wait a few seconds and observe again.';
28
+ }
29
+ /** An observation failure that no waiting fixes: the tab or window it was reading is gone. */
30
+ const SCREEN_GONE = /\b(tab|window)\b[^.]*\b(closed|gone)\b|has been closed|target closed/i;
31
+ /** A gone tab the driver can replace by itself ("observe again to continue in a new one") is not a screen lost. */
32
+ const SCREEN_REPLACEABLE = /observe again to continue in a new one/i;
33
+ /** The extension's refusal to act in the tab the owner is viewing (extension commands.ts, `WATCHED`). */
34
+ const OWNER_WATCHING = /You are looking at this tab/i;
35
+ /** What the model is told instead: one ask of the owner, not a retry. */
36
+ export const OWNER_WATCHING_MESSAGE = 'The owner is looking at that tab. Ask them to switch to another tab or window, then try once more.';
37
+ /** Consecutive observation failures on one session before control pauses. */
38
+ const MAX_OBSERVATION_FAILURES = 3;
15
39
  export function browserStoppedMessage(surface) {
16
40
  return surface?.id === 'telegram'
17
41
  ? 'The owner stopped the browser. Only the owner can enable it again — send /browser resume here.'
@@ -45,6 +69,7 @@ export class BrowserService {
45
69
  #lastAction;
46
70
  #message;
47
71
  #preconditionFailures = 0;
72
+ #observationFailures = 0;
48
73
  #needsObservation = false;
49
74
  #spent = new Set();
50
75
  #controlTail = Promise.resolve();
@@ -54,6 +79,10 @@ export class BrowserService {
54
79
  this.options = options;
55
80
  }
56
81
  #now() { return this.options.now?.() ?? Date.now(); }
82
+ /** When buddi took this observation, so the model can tell the newest from an older one. */
83
+ #stamp(observation) {
84
+ return { ...observation, observedAt: new Date(this.#now()).toISOString() };
85
+ }
57
86
  async enable() {
58
87
  if (this.#enabled)
59
88
  return;
@@ -186,27 +215,27 @@ export class BrowserService {
186
215
  const observation = await this.driver.observe();
187
216
  const picture = await this.driver.screenshot();
188
217
  controller.signal.throwIfAborted();
189
- this.#observation = observation;
218
+ this.#observation = this.#stamp(observation);
190
219
  this.#picture = picture;
191
220
  this.#needsObservation = false;
221
+ this.#observationFailures = 0;
192
222
  }
193
223
  catch (error) {
194
224
  controller.signal.throwIfAborted();
195
- this.#observation = undefined;
196
- this.#picture = undefined;
197
- this.#needsObservation = true;
198
- this.#state = 'paused';
199
225
  const cause = error instanceof Error ? error.message : String(error);
200
- const recovery = 'Control is paused. Ask the owner to inspect the selected app/window and the reported cause, then use Resume access and ask for a fresh observation. Do not retry while paused or guess targets. This is an observation failure, not an ownership conflict.';
201
- this.#message = `${command.action === 'observe' ? 'Observation failed' : 'Action completed, but observation failed'}: ${cause}. ${recovery}${command.action === 'observe' ? '' : ' Do not repeat the action; its effect may already have happened.'}`;
226
+ const paused = this.#observationFailed(cause);
227
+ // The extension's final error already says to wait and observe again; do not say it twice.
228
+ const recovery = paused ? browserPausedMessage(ctx.surface) : /observe again\.?$/i.test(cause.trim()) ? '' : browserWaitMessage(ctx.surface);
229
+ this.#message = `${command.action === 'observe' ? 'Observation failed' : 'Action completed, but observation failed'}: ${cause.replace(/\.$/, '')}.${recovery ? ` ${recovery}` : ''}${command.action === 'observe' ? '' : ' Do not repeat the action; its effect may already have happened.'}`;
202
230
  const result = { completed: command.action !== 'observe', observed: false, error: cause,
203
- state: 'paused', recovery, message: this.#message, notice: UNTRUSTED };
231
+ state: this.#state, recovery, message: this.#message, notice: UNTRUSTED };
204
232
  if (command.action === 'observe')
205
233
  throw new ObservationFailure(JSON.stringify(result));
206
234
  return result;
207
235
  }
208
236
  controller.signal.throwIfAborted();
209
- return { completed: true, notice: UNTRUSTED, observation: this.#observation, message: this.#message };
237
+ const observed = observedLine(this.#observation.observedAt);
238
+ return { completed: true, notice: UNTRUSTED, observation: this.#observation, message: this.#message ? `${observed} ${this.#message}` : observed };
210
239
  }
211
240
  catch (error) {
212
241
  if (error instanceof ObservationFailure)
@@ -228,6 +257,21 @@ export class BrowserService {
228
257
  this.#busy = false;
229
258
  }
230
259
  }
260
+ /**
261
+ * An observation that did not come back. Usually a page still loading or
262
+ * busy, which the agent can wait out and observe again, so control stays
263
+ * with it and the next action must be a fresh observation. Control pauses
264
+ * only when the tab or window is gone, or on the third failure in a row.
265
+ * Returns whether it paused.
266
+ */
267
+ #observationFailed(cause) {
268
+ this.#observation = undefined;
269
+ this.#picture = undefined;
270
+ this.#needsObservation = true;
271
+ const paused = ++this.#observationFailures >= MAX_OBSERVATION_FAILURES || (SCREEN_GONE.test(cause) && !SCREEN_REPLACEABLE.test(cause));
272
+ this.#state = paused ? 'paused' : 'running';
273
+ return paused;
274
+ }
231
275
  /**
232
276
  * A new owner message continues the session under that message's request:
233
277
  * the old one is spent, the step budget and the failure count reset, and the
@@ -253,6 +297,16 @@ export class BrowserService {
253
297
  * than on the stale arguments. Nothing was dispatched for any of these.
254
298
  */
255
299
  async #precondition(controller, error) {
300
+ if (OWNER_WATCHING.test(error.message)) {
301
+ // Not a targeting failure and nothing waiting fixes: only the owner
302
+ // moving to another tab does. No pause and no count; the next action
303
+ // must observe first, so the model asks once instead of retrying.
304
+ this.#message = OWNER_WATCHING_MESSAGE;
305
+ this.#state = 'running';
306
+ this.#needsObservation = true;
307
+ throw new BrowserPreconditionError(JSON.stringify({ error: OWNER_WATCHING_MESSAGE, dispatched: false,
308
+ recovery: 'Ask the owner now and wait for their answer. Do not retry by yourself.' }));
309
+ }
256
310
  this.#message = error.message;
257
311
  this.#state = ++this.#preconditionFailures >= 3 ? 'paused' : 'running';
258
312
  if (this.#state === 'paused')
@@ -263,19 +317,22 @@ export class BrowserService {
263
317
  const observation = await this.driver.observe();
264
318
  const picture = await this.driver.screenshot();
265
319
  controller.signal.throwIfAborted();
266
- this.#observation = observation;
320
+ this.#observation = this.#stamp(observation);
267
321
  this.#picture = picture;
322
+ this.#observationFailures = 0;
268
323
  }
269
324
  catch (observationError) {
270
325
  controller.signal.throwIfAborted();
271
- this.#observation = undefined;
272
- this.#picture = undefined;
273
- this.#needsObservation = true;
274
- this.#state = 'paused';
275
- this.#message += ` Recovery observation failed: ${observationError instanceof Error ? observationError.message : String(observationError)}. Inspect the selected app/window and this error, then resume and observe. Do not retry while paused.`;
326
+ const cause = observationError instanceof Error ? observationError.message : String(observationError);
327
+ const targeting = this.#state === 'paused';
328
+ const paused = this.#observationFailed(cause) || targeting;
329
+ if (paused)
330
+ this.#state = 'paused';
331
+ this.#message += ` Recovery observation failed: ${cause.replace(/\.$/, '')}. ${paused ? 'Inspect the selected app/window and this error, then resume and observe. Do not retry while paused.' : browserWaitMessage()}`;
276
332
  }
277
333
  throw new BrowserPreconditionError(JSON.stringify({ error: this.#message, dispatched: false,
278
- recovery: this.#state === 'paused' ? 'Wait for owner resume. Do not retry.' : 'Re-evaluate using the fresh observation below. Prefer target:{ref:"..."} and this observation.id. Do not guess an index or reuse the previous observation.',
334
+ ...(this.#observation?.observedAt ? { message: observedLine(this.#observation.observedAt) } : {}),
335
+ recovery: this.#state === 'paused' ? 'Wait for owner resume. Do not retry.' : this.#needsObservation ? browserWaitMessage() : 'Re-evaluate using the fresh observation below. Prefer target:{ref:"..."} and this observation.id. Do not guess an index or reuse the previous observation.',
279
336
  observation: this.#observation }));
280
337
  }
281
338
  /**
@@ -384,11 +441,16 @@ export class BrowserService {
384
441
  if (secret === undefined) {
385
442
  throw new BrowserPreconditionError(`There is no secret named "${input.name}" bound to this browser's destinations. The owner keeps one in Settings, under Keys and secrets.`);
386
443
  }
387
- const kind = secretKindFor(secret.totp, facts.password);
444
+ // A visible field on an origin the owner bound as browser.field takes
445
+ // that binding; the card then names the field (§3).
446
+ const visibleField = !secret.totp && !facts.password && fieldBoundTo(secret.bindings, facts.origin);
447
+ const kind = secretKindFor(secret.totp, facts.password, visibleField);
388
448
  if (kind === FORM_KIND && facts.name.trim() === '') {
389
449
  throw new BrowserPreconditionError('That field has no name the page gives it, so it cannot be a form-field destination. Observe again, or ask the owner to bind the secret to the page instead.');
390
450
  }
391
- const outcome = await secrets.use(input.name, kind, kind === FORM_KIND ? { origin: facts.origin, field: facts.name } : facts.origin);
451
+ const named = { origin: facts.origin, field: facts.name };
452
+ const target = kind === FORM_KIND || (visibleField && facts.name.trim() !== '') ? named : facts.origin;
453
+ const outcome = await secrets.use(input.name, kind, target);
392
454
  if ('pending' in outcome) {
393
455
  return { pending: true, actionId: outcome.pending, message: 'The owner has a decision card for this use. Nothing was filled; ask again once it is decided.' };
394
456
  }
@@ -488,6 +550,7 @@ export class BrowserService {
488
550
  this.#lastAction = undefined;
489
551
  this.#message = undefined;
490
552
  this.#preconditionFailures = 0;
553
+ this.#observationFailures = 0;
491
554
  await this.driver.close();
492
555
  }
493
556
  /** Only authenticated owner UI handlers call this; it is not an agent tool. */
@@ -537,6 +600,7 @@ export class BrowserService {
537
600
  this.driver.resume?.();
538
601
  this.#handless = false;
539
602
  this.#preconditionFailures = 0;
603
+ this.#observationFailures = 0;
540
604
  this.#observation = undefined;
541
605
  this.#picture = undefined;
542
606
  this.#needsObservation = !!this.#session;