@withbuddi/buddi 0.1.0-pre.24 → 0.1.0-pre.26

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 (716) hide show
  1. package/README.md +62 -47
  2. package/examples/agents/agent-father/agent.md +1 -0
  3. package/extension/background.js +24 -1
  4. package/extension/blob.png +0 -0
  5. package/extension/fonts/dm-mono-latin-400-normal.woff2 +0 -0
  6. package/extension/fonts/dm-mono-latin-500-normal.woff2 +0 -0
  7. package/extension/fonts/dm-sans-latin-ext-standard-normal.woff2 +0 -0
  8. package/extension/fonts/dm-sans-latin-standard-normal.woff2 +0 -0
  9. package/extension/icons/128.png +0 -0
  10. package/extension/icons/16.png +0 -0
  11. package/extension/icons/32.png +0 -0
  12. package/extension/icons/48.png +0 -0
  13. package/extension/manifest.json +4 -3
  14. package/extension/popup.css +199 -81
  15. package/extension/popup.html +39 -17
  16. package/extension/popup.js +133 -37
  17. package/node_modules/@buddi/cli/dist/.tsbuildinfo +1 -1
  18. package/node_modules/@buddi/cli/dist/args.d.ts +59 -0
  19. package/node_modules/@buddi/cli/dist/args.d.ts.map +1 -1
  20. package/node_modules/@buddi/cli/dist/args.js +141 -0
  21. package/node_modules/@buddi/cli/dist/args.js.map +1 -1
  22. package/node_modules/@buddi/cli/dist/commands.d.ts +2 -0
  23. package/node_modules/@buddi/cli/dist/commands.d.ts.map +1 -1
  24. package/node_modules/@buddi/cli/dist/commands.js +71 -1
  25. package/node_modules/@buddi/cli/dist/commands.js.map +1 -1
  26. package/node_modules/@buddi/cli/dist/connections-cmd.d.ts +93 -0
  27. package/node_modules/@buddi/cli/dist/connections-cmd.d.ts.map +1 -0
  28. package/node_modules/@buddi/cli/dist/connections-cmd.js +657 -0
  29. package/node_modules/@buddi/cli/dist/connections-cmd.js.map +1 -0
  30. package/node_modules/@buddi/cli/dist/doctor-probes.d.ts.map +1 -1
  31. package/node_modules/@buddi/cli/dist/doctor-probes.js +82 -17
  32. package/node_modules/@buddi/cli/dist/doctor-probes.js.map +1 -1
  33. package/node_modules/@buddi/cli/dist/doctor.d.ts +9 -9
  34. package/node_modules/@buddi/cli/dist/doctor.d.ts.map +1 -1
  35. package/node_modules/@buddi/cli/dist/doctor.js +20 -17
  36. package/node_modules/@buddi/cli/dist/doctor.js.map +1 -1
  37. package/node_modules/@buddi/cli/dist/init-plan.d.ts +1 -2
  38. package/node_modules/@buddi/cli/dist/init-plan.d.ts.map +1 -1
  39. package/node_modules/@buddi/cli/dist/init-plan.js +2 -6
  40. package/node_modules/@buddi/cli/dist/init-plan.js.map +1 -1
  41. package/node_modules/@buddi/cli/dist/init.d.ts.map +1 -1
  42. package/node_modules/@buddi/cli/dist/init.js +5 -29
  43. package/node_modules/@buddi/cli/dist/init.js.map +1 -1
  44. package/node_modules/@buddi/cli/dist/main.d.ts.map +1 -1
  45. package/node_modules/@buddi/cli/dist/main.js +10 -1
  46. package/node_modules/@buddi/cli/dist/main.js.map +1 -1
  47. package/node_modules/@buddi/cli/dist/mcp/gateway-client.d.ts +5 -0
  48. package/node_modules/@buddi/cli/dist/mcp/gateway-client.d.ts.map +1 -1
  49. package/node_modules/@buddi/cli/dist/mcp/gateway-client.js +15 -4
  50. package/node_modules/@buddi/cli/dist/mcp/gateway-client.js.map +1 -1
  51. package/node_modules/@buddi/cli/dist/service/index.d.ts +4 -2
  52. package/node_modules/@buddi/cli/dist/service/index.d.ts.map +1 -1
  53. package/node_modules/@buddi/cli/dist/service/index.js +5 -7
  54. package/node_modules/@buddi/cli/dist/service/index.js.map +1 -1
  55. package/node_modules/@buddi/core/dist/.tsbuildinfo +1 -1
  56. package/node_modules/@buddi/core/dist/agents/catalog.d.ts.map +1 -1
  57. package/node_modules/@buddi/core/dist/agents/catalog.js +11 -2
  58. package/node_modules/@buddi/core/dist/agents/catalog.js.map +1 -1
  59. package/node_modules/@buddi/core/dist/agents/provider-from-env.d.ts +7 -6
  60. package/node_modules/@buddi/core/dist/agents/provider-from-env.d.ts.map +1 -1
  61. package/node_modules/@buddi/core/dist/agents/provider-from-env.js +9 -12
  62. package/node_modules/@buddi/core/dist/agents/provider-from-env.js.map +1 -1
  63. package/node_modules/@buddi/core/dist/agents/skills.d.ts +4 -4
  64. package/node_modules/@buddi/core/dist/backup/load.d.ts.map +1 -1
  65. package/node_modules/@buddi/core/dist/backup/load.js +37 -0
  66. package/node_modules/@buddi/core/dist/backup/load.js.map +1 -1
  67. package/node_modules/@buddi/core/dist/backup/restore.js +2 -2
  68. package/node_modules/@buddi/core/dist/backup/restore.js.map +1 -1
  69. package/node_modules/@buddi/core/dist/connection-config.d.ts +96 -0
  70. package/node_modules/@buddi/core/dist/connection-config.d.ts.map +1 -0
  71. package/node_modules/@buddi/core/dist/connection-config.js +308 -0
  72. package/node_modules/@buddi/core/dist/connection-config.js.map +1 -0
  73. package/node_modules/@buddi/core/dist/failures/owner-message.d.ts.map +1 -1
  74. package/node_modules/@buddi/core/dist/failures/owner-message.js +37 -10
  75. package/node_modules/@buddi/core/dist/failures/owner-message.js.map +1 -1
  76. package/node_modules/@buddi/core/dist/notifications/agent.d.ts +54 -0
  77. package/node_modules/@buddi/core/dist/notifications/agent.d.ts.map +1 -0
  78. package/node_modules/@buddi/core/dist/notifications/agent.js +134 -0
  79. package/node_modules/@buddi/core/dist/notifications/agent.js.map +1 -0
  80. package/node_modules/@buddi/core/dist/notifications/index.d.ts +1 -0
  81. package/node_modules/@buddi/core/dist/notifications/index.d.ts.map +1 -1
  82. package/node_modules/@buddi/core/dist/notifications/index.js +1 -0
  83. package/node_modules/@buddi/core/dist/notifications/index.js.map +1 -1
  84. package/node_modules/@buddi/core/dist/notifications/notify.d.ts +4 -0
  85. package/node_modules/@buddi/core/dist/notifications/notify.d.ts.map +1 -1
  86. package/node_modules/@buddi/core/dist/notifications/notify.js +19 -7
  87. package/node_modules/@buddi/core/dist/notifications/notify.js.map +1 -1
  88. package/node_modules/@buddi/core/dist/notifications/store.d.ts +8 -1
  89. package/node_modules/@buddi/core/dist/notifications/store.d.ts.map +1 -1
  90. package/node_modules/@buddi/core/dist/notifications/store.js +55 -6
  91. package/node_modules/@buddi/core/dist/notifications/store.js.map +1 -1
  92. package/node_modules/@buddi/core/dist/notifications/types.d.ts +26 -2
  93. package/node_modules/@buddi/core/dist/notifications/types.d.ts.map +1 -1
  94. package/node_modules/@buddi/core/dist/notifications/types.js +1 -1
  95. package/node_modules/@buddi/core/dist/notifications/types.js.map +1 -1
  96. package/node_modules/@buddi/core/dist/onboarding/store.d.ts.map +1 -1
  97. package/node_modules/@buddi/core/dist/onboarding/store.js +17 -1
  98. package/node_modules/@buddi/core/dist/onboarding/store.js.map +1 -1
  99. package/node_modules/@buddi/core/dist/onboarding/types.d.ts +14 -0
  100. package/node_modules/@buddi/core/dist/onboarding/types.d.ts.map +1 -1
  101. package/node_modules/@buddi/core/dist/provider-accounts.d.ts +21 -1
  102. package/node_modules/@buddi/core/dist/provider-accounts.d.ts.map +1 -1
  103. package/node_modules/@buddi/core/dist/provider-accounts.js +31 -1
  104. package/node_modules/@buddi/core/dist/provider-accounts.js.map +1 -1
  105. package/node_modules/@buddi/core/dist/provider.d.ts +4 -3
  106. package/node_modules/@buddi/core/dist/provider.d.ts.map +1 -1
  107. package/node_modules/@buddi/core/dist/provider.js +7 -4
  108. package/node_modules/@buddi/core/dist/provider.js.map +1 -1
  109. package/node_modules/@buddi/core/dist/testing/accounts.d.ts +12 -0
  110. package/node_modules/@buddi/core/dist/testing/accounts.d.ts.map +1 -0
  111. package/node_modules/@buddi/core/dist/testing/accounts.js +7 -0
  112. package/node_modules/@buddi/core/dist/testing/accounts.js.map +1 -0
  113. package/node_modules/@buddi/core/dist/testing/index.d.ts +1 -0
  114. package/node_modules/@buddi/core/dist/testing/index.d.ts.map +1 -1
  115. package/node_modules/@buddi/core/dist/testing/index.js +1 -0
  116. package/node_modules/@buddi/core/dist/testing/index.js.map +1 -1
  117. package/node_modules/@buddi/core/dist/vault/resolve.d.ts.map +1 -1
  118. package/node_modules/@buddi/core/dist/vault/resolve.js +0 -3
  119. package/node_modules/@buddi/core/dist/vault/resolve.js.map +1 -1
  120. package/node_modules/@buddi/core/migrations/053_drop_legacy_anthropic_env.sql +31 -0
  121. package/node_modules/@buddi/core/migrations/054_agent_messages.sql +15 -0
  122. package/node_modules/@buddi/core/package.json +4 -0
  123. package/node_modules/@buddi/gateway/dist/.tsbuildinfo +1 -1
  124. package/node_modules/@buddi/gateway/dist/agents/owner-tools.d.ts +34 -1
  125. package/node_modules/@buddi/gateway/dist/agents/owner-tools.d.ts.map +1 -1
  126. package/node_modules/@buddi/gateway/dist/agents/owner-tools.js +87 -4
  127. package/node_modules/@buddi/gateway/dist/agents/owner-tools.js.map +1 -1
  128. package/node_modules/@buddi/gateway/dist/agents-cli.js +1 -1
  129. package/node_modules/@buddi/gateway/dist/agents-cli.js.map +1 -1
  130. package/node_modules/@buddi/gateway/dist/bootstrap.d.ts +1 -3
  131. package/node_modules/@buddi/gateway/dist/bootstrap.d.ts.map +1 -1
  132. package/node_modules/@buddi/gateway/dist/bootstrap.js +16 -11
  133. package/node_modules/@buddi/gateway/dist/bootstrap.js.map +1 -1
  134. package/node_modules/@buddi/gateway/dist/cli.js +1 -1
  135. package/node_modules/@buddi/gateway/dist/mlxh.d.ts +44 -0
  136. package/node_modules/@buddi/gateway/dist/mlxh.d.ts.map +1 -0
  137. package/node_modules/@buddi/gateway/dist/mlxh.js +98 -0
  138. package/node_modules/@buddi/gateway/dist/mlxh.js.map +1 -0
  139. package/node_modules/@buddi/gateway/dist/owner-secrets.d.ts +98 -9
  140. package/node_modules/@buddi/gateway/dist/owner-secrets.d.ts.map +1 -1
  141. package/node_modules/@buddi/gateway/dist/owner-secrets.js +237 -15
  142. package/node_modules/@buddi/gateway/dist/owner-secrets.js.map +1 -1
  143. package/node_modules/@buddi/gateway/dist/plugins/stage.d.ts +4 -0
  144. package/node_modules/@buddi/gateway/dist/plugins/stage.d.ts.map +1 -1
  145. package/node_modules/@buddi/gateway/dist/plugins/stage.js +3 -0
  146. package/node_modules/@buddi/gateway/dist/plugins/stage.js.map +1 -1
  147. package/node_modules/@buddi/gateway/dist/plugins/update.d.ts +8 -0
  148. package/node_modules/@buddi/gateway/dist/plugins/update.d.ts.map +1 -1
  149. package/node_modules/@buddi/gateway/dist/plugins/update.js +8 -2
  150. package/node_modules/@buddi/gateway/dist/plugins/update.js.map +1 -1
  151. package/node_modules/@buddi/gateway/dist/provider-accounts.d.ts +6 -13
  152. package/node_modules/@buddi/gateway/dist/provider-accounts.d.ts.map +1 -1
  153. package/node_modules/@buddi/gateway/dist/provider-accounts.js +76 -16
  154. package/node_modules/@buddi/gateway/dist/provider-accounts.js.map +1 -1
  155. package/node_modules/@buddi/gateway/dist/providers.d.ts +3 -3
  156. package/node_modules/@buddi/gateway/dist/providers.d.ts.map +1 -1
  157. package/node_modules/@buddi/gateway/dist/providers.js +7 -7
  158. package/node_modules/@buddi/gateway/dist/providers.js.map +1 -1
  159. package/node_modules/@buddi/gateway/dist/serve.d.ts.map +1 -1
  160. package/node_modules/@buddi/gateway/dist/serve.js +26 -8
  161. package/node_modules/@buddi/gateway/dist/serve.js.map +1 -1
  162. package/node_modules/@buddi/gateway/dist/surfaces/context-budget.d.ts +1 -1
  163. package/node_modules/@buddi/gateway/dist/surfaces/context-budget.d.ts.map +1 -1
  164. package/node_modules/@buddi/gateway/dist/surfaces/context-budget.js +46 -3
  165. package/node_modules/@buddi/gateway/dist/surfaces/context-budget.js.map +1 -1
  166. package/node_modules/@buddi/gateway/dist/surfaces/pending-question.d.ts.map +1 -1
  167. package/node_modules/@buddi/gateway/dist/surfaces/pending-question.js +2 -1
  168. package/node_modules/@buddi/gateway/dist/surfaces/pending-question.js.map +1 -1
  169. package/node_modules/@buddi/gateway/dist/system-context.d.ts +2 -0
  170. package/node_modules/@buddi/gateway/dist/system-context.d.ts.map +1 -1
  171. package/node_modules/@buddi/gateway/dist/system-context.js +5 -1
  172. package/node_modules/@buddi/gateway/dist/system-context.js.map +1 -1
  173. package/node_modules/@buddi/gateway/dist/telegram/channel.d.ts +7 -0
  174. package/node_modules/@buddi/gateway/dist/telegram/channel.d.ts.map +1 -1
  175. package/node_modules/@buddi/gateway/dist/telegram/channel.js +14 -2
  176. package/node_modules/@buddi/gateway/dist/telegram/channel.js.map +1 -1
  177. package/node_modules/@buddi/gateway/dist/web/agents.d.ts.map +1 -1
  178. package/node_modules/@buddi/gateway/dist/web/agents.js +5 -1
  179. package/node_modules/@buddi/gateway/dist/web/agents.js.map +1 -1
  180. package/node_modules/@buddi/gateway/dist/web/connections.d.ts +18 -5
  181. package/node_modules/@buddi/gateway/dist/web/connections.d.ts.map +1 -1
  182. package/node_modules/@buddi/gateway/dist/web/connections.js +118 -8
  183. package/node_modules/@buddi/gateway/dist/web/connections.js.map +1 -1
  184. package/node_modules/@buddi/gateway/dist/web/extension.d.ts +6 -0
  185. package/node_modules/@buddi/gateway/dist/web/extension.d.ts.map +1 -1
  186. package/node_modules/@buddi/gateway/dist/web/extension.js +5 -1
  187. package/node_modules/@buddi/gateway/dist/web/extension.js.map +1 -1
  188. package/node_modules/@buddi/gateway/dist/web/market.d.ts +18 -0
  189. package/node_modules/@buddi/gateway/dist/web/market.d.ts.map +1 -1
  190. package/node_modules/@buddi/gateway/dist/web/market.js +20 -14
  191. package/node_modules/@buddi/gateway/dist/web/market.js.map +1 -1
  192. package/node_modules/@buddi/gateway/dist/web/notifications.d.ts +6 -0
  193. package/node_modules/@buddi/gateway/dist/web/notifications.d.ts.map +1 -1
  194. package/node_modules/@buddi/gateway/dist/web/notifications.js +14 -1
  195. package/node_modules/@buddi/gateway/dist/web/notifications.js.map +1 -1
  196. package/node_modules/@buddi/gateway/dist/web/onboarding.d.ts +21 -7
  197. package/node_modules/@buddi/gateway/dist/web/onboarding.d.ts.map +1 -1
  198. package/node_modules/@buddi/gateway/dist/web/onboarding.js +64 -11
  199. package/node_modules/@buddi/gateway/dist/web/onboarding.js.map +1 -1
  200. package/node_modules/@buddi/gateway/dist/web/plugins.d.ts +5 -0
  201. package/node_modules/@buddi/gateway/dist/web/plugins.d.ts.map +1 -1
  202. package/node_modules/@buddi/gateway/dist/web/plugins.js +11 -1
  203. package/node_modules/@buddi/gateway/dist/web/plugins.js.map +1 -1
  204. package/node_modules/@buddi/gateway/dist/web/recovery.d.ts +10 -0
  205. package/node_modules/@buddi/gateway/dist/web/recovery.d.ts.map +1 -1
  206. package/node_modules/@buddi/gateway/dist/web/recovery.js +114 -34
  207. package/node_modules/@buddi/gateway/dist/web/recovery.js.map +1 -1
  208. package/node_modules/@buddi/gateway/dist/web/server.d.ts.map +1 -1
  209. package/node_modules/@buddi/gateway/dist/web/server.js +84 -8
  210. package/node_modules/@buddi/gateway/dist/web/server.js.map +1 -1
  211. package/node_modules/@buddi/gateway/dist/web/sessions.d.ts +8 -0
  212. package/node_modules/@buddi/gateway/dist/web/sessions.d.ts.map +1 -1
  213. package/node_modules/@buddi/gateway/dist/web/sessions.js +24 -1
  214. package/node_modules/@buddi/gateway/dist/web/sessions.js.map +1 -1
  215. package/node_modules/@buddi/gateway/dist/web/static.d.ts +8 -0
  216. package/node_modules/@buddi/gateway/dist/web/static.d.ts.map +1 -1
  217. package/node_modules/@buddi/gateway/dist/web/static.js +21 -1
  218. package/node_modules/@buddi/gateway/dist/web/static.js.map +1 -1
  219. package/node_modules/@buddi/gateway/dist/web/take-on.d.ts +91 -0
  220. package/node_modules/@buddi/gateway/dist/web/take-on.d.ts.map +1 -0
  221. package/node_modules/@buddi/gateway/dist/web/take-on.js +287 -0
  222. package/node_modules/@buddi/gateway/dist/web/take-on.js.map +1 -0
  223. package/node_modules/@buddi/gateway/src/agents/starter/keeper/agent.md +2 -2
  224. package/node_modules/@buddi/gateway/src/agents/starter/planner/agent.md +1 -1
  225. package/node_modules/@buddi/gateway/src/agents/starter/scout/agent.md +1 -1
  226. package/node_modules/@buddi/install/dist/.tsbuildinfo +1 -1
  227. package/node_modules/@buddi/runtime/dist/.tsbuildinfo +1 -1
  228. package/node_modules/@buddi/runtime/dist/anthropic.d.ts +7 -0
  229. package/node_modules/@buddi/runtime/dist/anthropic.d.ts.map +1 -1
  230. package/node_modules/@buddi/runtime/dist/anthropic.js +29 -3
  231. package/node_modules/@buddi/runtime/dist/anthropic.js.map +1 -1
  232. package/node_modules/@buddi/runtime/dist/delegate.js +1 -1
  233. package/node_modules/@buddi/runtime/dist/delegate.js.map +1 -1
  234. package/node_modules/@buddi/runtime/dist/provider-models.d.ts +2 -0
  235. package/node_modules/@buddi/runtime/dist/provider-models.d.ts.map +1 -1
  236. package/node_modules/@buddi/runtime/dist/provider-models.js +22 -0
  237. package/node_modules/@buddi/runtime/dist/provider-models.js.map +1 -1
  238. package/node_modules/@buddi/runtime/dist/search.js +2 -2
  239. package/node_modules/@buddi/tool-artifacts/dist/.tsbuildinfo +1 -1
  240. package/node_modules/@buddi/tool-browser/dist/.tsbuildinfo +1 -1
  241. package/node_modules/@buddi/tool-email/dist/.tsbuildinfo +1 -1
  242. package/node_modules/@buddi/tool-email/dist/config.d.ts +13 -9
  243. package/node_modules/@buddi/tool-email/dist/config.d.ts.map +1 -1
  244. package/node_modules/@buddi/tool-email/dist/config.js +33 -40
  245. package/node_modules/@buddi/tool-email/dist/config.js.map +1 -1
  246. package/node_modules/@buddi/tool-email/dist/index.d.ts +1 -1
  247. package/node_modules/@buddi/tool-email/dist/index.d.ts.map +1 -1
  248. package/node_modules/@buddi/tool-email/dist/index.js +1 -1
  249. package/node_modules/@buddi/tool-email/dist/index.js.map +1 -1
  250. package/node_modules/@buddi/tool-email/dist/pages/accounts.d.ts +1 -2
  251. package/node_modules/@buddi/tool-email/dist/pages/accounts.d.ts.map +1 -1
  252. package/node_modules/@buddi/tool-email/dist/pages/accounts.js +42 -18
  253. package/node_modules/@buddi/tool-email/dist/pages/accounts.js.map +1 -1
  254. package/node_modules/@buddi/tool-email/dist/pages/queries.d.ts.map +1 -1
  255. package/node_modules/@buddi/tool-email/dist/pages/queries.js +7 -5
  256. package/node_modules/@buddi/tool-email/dist/pages/queries.js.map +1 -1
  257. package/node_modules/@buddi/tool-email/dist/ports.d.ts +5 -1
  258. package/node_modules/@buddi/tool-email/dist/ports.d.ts.map +1 -1
  259. package/node_modules/@buddi/tool-email/dist/tools/shared.js +1 -1
  260. package/node_modules/@buddi/tool-email/dist/tools/shared.js.map +1 -1
  261. package/node_modules/@buddi/tool-host/dist/.tsbuildinfo +1 -1
  262. package/node_modules/@buddi/tool-mcp/dist/.tsbuildinfo +1 -1
  263. package/node_modules/@buddi/tool-mcp/dist/catalog.d.ts +32 -2
  264. package/node_modules/@buddi/tool-mcp/dist/catalog.d.ts.map +1 -1
  265. package/node_modules/@buddi/tool-mcp/dist/catalog.js +41 -7
  266. package/node_modules/@buddi/tool-mcp/dist/catalog.js.map +1 -1
  267. package/node_modules/@buddi/tool-mcp/dist/device.d.ts +53 -0
  268. package/node_modules/@buddi/tool-mcp/dist/device.d.ts.map +1 -0
  269. package/node_modules/@buddi/tool-mcp/dist/device.js +100 -0
  270. package/node_modules/@buddi/tool-mcp/dist/device.js.map +1 -0
  271. package/node_modules/@buddi/tool-mcp/dist/fetch.d.ts +10 -1
  272. package/node_modules/@buddi/tool-mcp/dist/fetch.d.ts.map +1 -1
  273. package/node_modules/@buddi/tool-mcp/dist/fetch.js +7 -1
  274. package/node_modules/@buddi/tool-mcp/dist/fetch.js.map +1 -1
  275. package/node_modules/@buddi/tool-mcp/dist/index.d.ts +5 -3
  276. package/node_modules/@buddi/tool-mcp/dist/index.d.ts.map +1 -1
  277. package/node_modules/@buddi/tool-mcp/dist/index.js +7 -4
  278. package/node_modules/@buddi/tool-mcp/dist/index.js.map +1 -1
  279. package/node_modules/@buddi/tool-mcp/dist/ports.d.ts +31 -0
  280. package/node_modules/@buddi/tool-mcp/dist/ports.d.ts.map +1 -1
  281. package/node_modules/@buddi/tool-mcp/dist/preview.d.ts +16 -0
  282. package/node_modules/@buddi/tool-mcp/dist/preview.d.ts.map +1 -0
  283. package/node_modules/@buddi/tool-mcp/dist/preview.js +52 -0
  284. package/node_modules/@buddi/tool-mcp/dist/preview.js.map +1 -0
  285. package/node_modules/@buddi/tool-mcp/dist/program.d.ts +73 -0
  286. package/node_modules/@buddi/tool-mcp/dist/program.d.ts.map +1 -0
  287. package/node_modules/@buddi/tool-mcp/dist/program.js +306 -0
  288. package/node_modules/@buddi/tool-mcp/dist/program.js.map +1 -0
  289. package/node_modules/@buddi/tool-mcp/dist/service.d.ts +131 -22
  290. package/node_modules/@buddi/tool-mcp/dist/service.d.ts.map +1 -1
  291. package/node_modules/@buddi/tool-mcp/dist/service.js +717 -29
  292. package/node_modules/@buddi/tool-mcp/dist/service.js.map +1 -1
  293. package/node_modules/@buddi/tool-mcp/dist/session.d.ts +13 -1
  294. package/node_modules/@buddi/tool-mcp/dist/session.d.ts.map +1 -1
  295. package/node_modules/@buddi/tool-mcp/dist/session.js +27 -4
  296. package/node_modules/@buddi/tool-mcp/dist/session.js.map +1 -1
  297. package/node_modules/@buddi/tool-mcp/dist/store.d.ts +39 -1
  298. package/node_modules/@buddi/tool-mcp/dist/store.d.ts.map +1 -1
  299. package/node_modules/@buddi/tool-mcp/dist/store.js +24 -0
  300. package/node_modules/@buddi/tool-mcp/dist/store.js.map +1 -1
  301. package/node_modules/@buddi/tool-mcp/dist/testing/fake.d.ts +6 -0
  302. package/node_modules/@buddi/tool-mcp/dist/testing/fake.d.ts.map +1 -1
  303. package/node_modules/@buddi/tool-mcp/dist/testing/fake.js +26 -0
  304. package/node_modules/@buddi/tool-mcp/dist/testing/fake.js.map +1 -1
  305. package/node_modules/@buddi/tool-mcp/migrations/003_token_auth.sql +14 -0
  306. package/node_modules/@buddi/tool-mcp/migrations/004_programs.sql +26 -0
  307. package/node_modules/@buddi/tool-memory/dist/.tsbuildinfo +1 -1
  308. package/node_modules/@buddi/tool-web/dist/.tsbuildinfo +1 -1
  309. package/node_modules/@buddi/tool-web/dist/providers/index.d.ts +1 -2
  310. package/node_modules/@buddi/tool-web/dist/providers/index.d.ts.map +1 -1
  311. package/node_modules/@buddi/tool-web/dist/providers/index.js +1 -2
  312. package/node_modules/@buddi/tool-web/dist/providers/index.js.map +1 -1
  313. package/node_modules/hono/dist/cjs/jsx/utils.js +1 -1
  314. package/node_modules/hono/dist/cjs/middleware/combine/index.js +3 -1
  315. package/node_modules/hono/dist/cjs/middleware/etag/index.js +2 -2
  316. package/node_modules/hono/dist/jsx/utils.js +1 -1
  317. package/node_modules/hono/dist/middleware/combine/index.js +3 -1
  318. package/node_modules/hono/dist/middleware/etag/index.js +2 -2
  319. package/node_modules/hono/dist/middleware/language/language.js +1 -1
  320. package/node_modules/hono/dist/types/adapter/aws-lambda/handler.d.ts +2 -1
  321. package/node_modules/hono/dist/types/adapter/aws-lambda/types.d.ts +2 -1
  322. package/node_modules/hono/dist/types/adapter/bun/websocket.d.ts +2 -1
  323. package/node_modules/hono/dist/types/adapter/cloudflare-pages/handler.d.ts +2 -1
  324. package/node_modules/hono/dist/types/adapter/cloudflare-workers/serve-static-module.d.ts +2 -1
  325. package/node_modules/hono/dist/types/adapter/lambda-edge/handler.d.ts +2 -1
  326. package/node_modules/hono/dist/types/adapter/service-worker/handler.d.ts +2 -1
  327. package/node_modules/hono/dist/types/adapter/service-worker/index.d.ts +2 -1
  328. package/node_modules/hono/dist/types/adapter/service-worker/types.d.ts +2 -1
  329. package/node_modules/hono/dist/types/client/types.d.ts +2 -1
  330. package/node_modules/hono/dist/types/context.d.ts +2 -1
  331. package/node_modules/hono/dist/types/helper/cookie/index.d.ts +2 -1
  332. package/node_modules/hono/dist/types/helper/css/common.d.ts +2 -1
  333. package/node_modules/hono/dist/types/helper/css/index.d.ts +2 -1
  334. package/node_modules/hono/dist/types/helper/dev/index.d.ts +2 -1
  335. package/node_modules/hono/dist/types/helper/factory/index.d.ts +2 -1
  336. package/node_modules/hono/dist/types/helper/proxy/index.d.ts +2 -1
  337. package/node_modules/hono/dist/types/helper/ssg/middleware.d.ts +2 -1
  338. package/node_modules/hono/dist/types/helper/ssg/utils.d.ts +2 -1
  339. package/node_modules/hono/dist/types/helper/testing/index.d.ts +2 -1
  340. package/node_modules/hono/dist/types/hono-base.d.ts +2 -1
  341. package/node_modules/hono/dist/types/http-exception.d.ts +2 -1
  342. package/node_modules/hono/dist/types/jsx/base.d.ts +4 -3
  343. package/node_modules/hono/dist/types/jsx/context.d.ts +2 -1
  344. package/node_modules/hono/dist/types/jsx/dom/client.d.ts +2 -1
  345. package/node_modules/hono/dist/types/jsx/dom/css.d.ts +2 -1
  346. package/node_modules/hono/dist/types/jsx/dom/hooks/index.d.ts +2 -1
  347. package/node_modules/hono/dist/types/jsx/dom/index.d.ts +2 -1
  348. package/node_modules/hono/dist/types/jsx/dom/render.d.ts +2 -1
  349. package/node_modules/hono/dist/types/jsx/dom/server.d.ts +2 -1
  350. package/node_modules/hono/dist/types/jsx/hooks/index.d.ts +2 -1
  351. package/node_modules/hono/dist/types/jsx/index.d.ts +2 -1
  352. package/node_modules/hono/dist/types/jsx/types.d.ts +2 -1
  353. package/node_modules/hono/dist/types/middleware/basic-auth/index.d.ts +2 -1
  354. package/node_modules/hono/dist/types/middleware/bearer-auth/index.d.ts +2 -1
  355. package/node_modules/hono/dist/types/middleware/body-limit/index.d.ts +2 -1
  356. package/node_modules/hono/dist/types/middleware/combine/index.d.ts +2 -1
  357. package/node_modules/hono/dist/types/middleware/compress/index.d.ts +2 -1
  358. package/node_modules/hono/dist/types/middleware/cors/index.d.ts +2 -1
  359. package/node_modules/hono/dist/types/middleware/csrf/index.d.ts +2 -1
  360. package/node_modules/hono/dist/types/middleware/etag/index.d.ts +2 -1
  361. package/node_modules/hono/dist/types/middleware/ip-restriction/index.d.ts +2 -1
  362. package/node_modules/hono/dist/types/middleware/jsx-renderer/index.d.ts +2 -1
  363. package/node_modules/hono/dist/types/middleware/jwt/index.d.ts +2 -1
  364. package/node_modules/hono/dist/types/middleware/language/index.d.ts +2 -1
  365. package/node_modules/hono/dist/types/middleware/logger/index.d.ts +2 -1
  366. package/node_modules/hono/dist/types/middleware/method-not-allowed/index.d.ts +2 -1
  367. package/node_modules/hono/dist/types/middleware/method-override/index.d.ts +2 -1
  368. package/node_modules/hono/dist/types/middleware/powered-by/index.d.ts +2 -1
  369. package/node_modules/hono/dist/types/middleware/pretty-json/index.d.ts +2 -1
  370. package/node_modules/hono/dist/types/middleware/request-id/index.d.ts +2 -1
  371. package/node_modules/hono/dist/types/middleware/secure-headers/index.d.ts +2 -1
  372. package/node_modules/hono/dist/types/middleware/secure-headers/permissions-policy.d.ts +2 -1
  373. package/node_modules/hono/dist/types/middleware/secure-headers/secure-headers.d.ts +2 -1
  374. package/node_modules/hono/dist/types/middleware/timing/index.d.ts +2 -1
  375. package/node_modules/hono/dist/types/middleware/timing/timing.d.ts +2 -1
  376. package/node_modules/hono/dist/types/middleware/trailing-slash/index.d.ts +2 -1
  377. package/node_modules/hono/dist/types/request.d.ts +2 -1
  378. package/node_modules/hono/dist/types/router/reg-exp-router/prepared-router.d.ts +2 -1
  379. package/node_modules/hono/dist/types/types.d.ts +2 -1
  380. package/node_modules/hono/dist/types/utils/body.d.ts +2 -1
  381. package/node_modules/hono/dist/types/utils/buffer.d.ts +2 -1
  382. package/node_modules/hono/dist/types/utils/cookie.d.ts +2 -1
  383. package/node_modules/hono/dist/types/utils/crypto.d.ts +2 -1
  384. package/node_modules/hono/dist/types/utils/filepath.d.ts +2 -1
  385. package/node_modules/hono/dist/types/utils/html.d.ts +2 -1
  386. package/node_modules/hono/dist/types/utils/mime.d.ts +2 -1
  387. package/node_modules/hono/dist/types/utils/types.d.ts +2 -1
  388. package/node_modules/hono/dist/types/utils/url.d.ts +2 -1
  389. package/node_modules/hono/dist/types/validator/utils.d.ts +2 -1
  390. package/node_modules/hono/dist/types/validator/validator.d.ts +2 -1
  391. package/node_modules/hono/package.json +2 -2
  392. package/node_modules/pg/lib/client.js +18 -0
  393. package/node_modules/pg/lib/connection.js +8 -1
  394. package/node_modules/pg/lib/crypto/cert-signatures.js +1 -1
  395. package/node_modules/pg/lib/native/client.js +11 -3
  396. package/node_modules/pg/lib/native/query.js +3 -1
  397. package/node_modules/pg/lib/query.js +5 -1
  398. package/node_modules/pg/lib/utils.js +19 -1
  399. package/node_modules/pg/package.json +5 -5
  400. package/node_modules/pg-connection-string/index.js +1 -1
  401. package/node_modules/pg-connection-string/package.json +2 -3
  402. package/node_modules/pg-protocol/dist/buffer-writer.d.ts +5 -1
  403. package/node_modules/pg-protocol/dist/buffer-writer.js +10 -1
  404. package/node_modules/pg-protocol/dist/buffer-writer.js.map +1 -1
  405. package/node_modules/pg-protocol/dist/serializer.js +20 -18
  406. package/node_modules/pg-protocol/dist/serializer.js.map +1 -1
  407. package/node_modules/pg-protocol/package.json +2 -2
  408. package/node_modules/pg-protocol/src/buffer-writer.ts +12 -2
  409. package/node_modules/pg-protocol/src/serializer.ts +26 -20
  410. package/package.json +2 -2
  411. package/packages/cli/dist/.tsbuildinfo +1 -1
  412. package/packages/cli/dist/args.d.ts +59 -0
  413. package/packages/cli/dist/args.d.ts.map +1 -1
  414. package/packages/cli/dist/args.js +141 -0
  415. package/packages/cli/dist/args.js.map +1 -1
  416. package/packages/cli/dist/commands.d.ts +2 -0
  417. package/packages/cli/dist/commands.d.ts.map +1 -1
  418. package/packages/cli/dist/commands.js +71 -1
  419. package/packages/cli/dist/commands.js.map +1 -1
  420. package/packages/cli/dist/connections-cmd.d.ts +93 -0
  421. package/packages/cli/dist/connections-cmd.d.ts.map +1 -0
  422. package/packages/cli/dist/connections-cmd.js +657 -0
  423. package/packages/cli/dist/connections-cmd.js.map +1 -0
  424. package/packages/cli/dist/doctor-probes.d.ts.map +1 -1
  425. package/packages/cli/dist/doctor-probes.js +82 -17
  426. package/packages/cli/dist/doctor-probes.js.map +1 -1
  427. package/packages/cli/dist/doctor.d.ts +9 -9
  428. package/packages/cli/dist/doctor.d.ts.map +1 -1
  429. package/packages/cli/dist/doctor.js +20 -17
  430. package/packages/cli/dist/doctor.js.map +1 -1
  431. package/packages/cli/dist/init-plan.d.ts +1 -2
  432. package/packages/cli/dist/init-plan.d.ts.map +1 -1
  433. package/packages/cli/dist/init-plan.js +2 -6
  434. package/packages/cli/dist/init-plan.js.map +1 -1
  435. package/packages/cli/dist/init.d.ts.map +1 -1
  436. package/packages/cli/dist/init.js +5 -29
  437. package/packages/cli/dist/init.js.map +1 -1
  438. package/packages/cli/dist/main.d.ts.map +1 -1
  439. package/packages/cli/dist/main.js +10 -1
  440. package/packages/cli/dist/main.js.map +1 -1
  441. package/packages/cli/dist/mcp/gateway-client.d.ts +5 -0
  442. package/packages/cli/dist/mcp/gateway-client.d.ts.map +1 -1
  443. package/packages/cli/dist/mcp/gateway-client.js +15 -4
  444. package/packages/cli/dist/mcp/gateway-client.js.map +1 -1
  445. package/packages/cli/dist/service/index.d.ts +4 -2
  446. package/packages/cli/dist/service/index.d.ts.map +1 -1
  447. package/packages/cli/dist/service/index.js +5 -7
  448. package/packages/cli/dist/service/index.js.map +1 -1
  449. package/packages/core/dist/.tsbuildinfo +1 -1
  450. package/packages/core/dist/agents/catalog.d.ts.map +1 -1
  451. package/packages/core/dist/agents/catalog.js +11 -2
  452. package/packages/core/dist/agents/catalog.js.map +1 -1
  453. package/packages/core/dist/agents/provider-from-env.d.ts +7 -6
  454. package/packages/core/dist/agents/provider-from-env.d.ts.map +1 -1
  455. package/packages/core/dist/agents/provider-from-env.js +9 -12
  456. package/packages/core/dist/agents/provider-from-env.js.map +1 -1
  457. package/packages/core/dist/agents/skills.d.ts +4 -4
  458. package/packages/core/dist/backup/load.d.ts.map +1 -1
  459. package/packages/core/dist/backup/load.js +37 -0
  460. package/packages/core/dist/backup/load.js.map +1 -1
  461. package/packages/core/dist/backup/restore.js +2 -2
  462. package/packages/core/dist/backup/restore.js.map +1 -1
  463. package/packages/core/dist/connection-config.d.ts +96 -0
  464. package/packages/core/dist/connection-config.d.ts.map +1 -0
  465. package/packages/core/dist/connection-config.js +308 -0
  466. package/packages/core/dist/connection-config.js.map +1 -0
  467. package/packages/core/dist/failures/owner-message.d.ts.map +1 -1
  468. package/packages/core/dist/failures/owner-message.js +37 -10
  469. package/packages/core/dist/failures/owner-message.js.map +1 -1
  470. package/packages/core/dist/notifications/agent.d.ts +54 -0
  471. package/packages/core/dist/notifications/agent.d.ts.map +1 -0
  472. package/packages/core/dist/notifications/agent.js +134 -0
  473. package/packages/core/dist/notifications/agent.js.map +1 -0
  474. package/packages/core/dist/notifications/index.d.ts +1 -0
  475. package/packages/core/dist/notifications/index.d.ts.map +1 -1
  476. package/packages/core/dist/notifications/index.js +1 -0
  477. package/packages/core/dist/notifications/index.js.map +1 -1
  478. package/packages/core/dist/notifications/notify.d.ts +4 -0
  479. package/packages/core/dist/notifications/notify.d.ts.map +1 -1
  480. package/packages/core/dist/notifications/notify.js +19 -7
  481. package/packages/core/dist/notifications/notify.js.map +1 -1
  482. package/packages/core/dist/notifications/store.d.ts +8 -1
  483. package/packages/core/dist/notifications/store.d.ts.map +1 -1
  484. package/packages/core/dist/notifications/store.js +55 -6
  485. package/packages/core/dist/notifications/store.js.map +1 -1
  486. package/packages/core/dist/notifications/types.d.ts +26 -2
  487. package/packages/core/dist/notifications/types.d.ts.map +1 -1
  488. package/packages/core/dist/notifications/types.js +1 -1
  489. package/packages/core/dist/notifications/types.js.map +1 -1
  490. package/packages/core/dist/onboarding/store.d.ts.map +1 -1
  491. package/packages/core/dist/onboarding/store.js +17 -1
  492. package/packages/core/dist/onboarding/store.js.map +1 -1
  493. package/packages/core/dist/onboarding/types.d.ts +14 -0
  494. package/packages/core/dist/onboarding/types.d.ts.map +1 -1
  495. package/packages/core/dist/provider-accounts.d.ts +21 -1
  496. package/packages/core/dist/provider-accounts.d.ts.map +1 -1
  497. package/packages/core/dist/provider-accounts.js +31 -1
  498. package/packages/core/dist/provider-accounts.js.map +1 -1
  499. package/packages/core/dist/provider.d.ts +4 -3
  500. package/packages/core/dist/provider.d.ts.map +1 -1
  501. package/packages/core/dist/provider.js +7 -4
  502. package/packages/core/dist/provider.js.map +1 -1
  503. package/packages/core/dist/testing/accounts.d.ts +12 -0
  504. package/packages/core/dist/testing/accounts.d.ts.map +1 -0
  505. package/packages/core/dist/testing/accounts.js +7 -0
  506. package/packages/core/dist/testing/accounts.js.map +1 -0
  507. package/packages/core/dist/testing/index.d.ts +1 -0
  508. package/packages/core/dist/testing/index.d.ts.map +1 -1
  509. package/packages/core/dist/testing/index.js +1 -0
  510. package/packages/core/dist/testing/index.js.map +1 -1
  511. package/packages/core/dist/vault/resolve.d.ts.map +1 -1
  512. package/packages/core/dist/vault/resolve.js +0 -3
  513. package/packages/core/dist/vault/resolve.js.map +1 -1
  514. package/packages/core/migrations/053_drop_legacy_anthropic_env.sql +31 -0
  515. package/packages/core/migrations/054_agent_messages.sql +15 -0
  516. package/packages/core/package.json +4 -0
  517. package/packages/gateway/dist/.tsbuildinfo +1 -1
  518. package/packages/gateway/dist/agents/owner-tools.d.ts +34 -1
  519. package/packages/gateway/dist/agents/owner-tools.d.ts.map +1 -1
  520. package/packages/gateway/dist/agents/owner-tools.js +87 -4
  521. package/packages/gateway/dist/agents/owner-tools.js.map +1 -1
  522. package/packages/gateway/dist/agents-cli.js +1 -1
  523. package/packages/gateway/dist/agents-cli.js.map +1 -1
  524. package/packages/gateway/dist/bootstrap.d.ts +1 -3
  525. package/packages/gateway/dist/bootstrap.d.ts.map +1 -1
  526. package/packages/gateway/dist/bootstrap.js +16 -11
  527. package/packages/gateway/dist/bootstrap.js.map +1 -1
  528. package/packages/gateway/dist/cli.js +1 -1
  529. package/packages/gateway/dist/mlxh.d.ts +44 -0
  530. package/packages/gateway/dist/mlxh.d.ts.map +1 -0
  531. package/packages/gateway/dist/mlxh.js +98 -0
  532. package/packages/gateway/dist/mlxh.js.map +1 -0
  533. package/packages/gateway/dist/owner-secrets.d.ts +98 -9
  534. package/packages/gateway/dist/owner-secrets.d.ts.map +1 -1
  535. package/packages/gateway/dist/owner-secrets.js +237 -15
  536. package/packages/gateway/dist/owner-secrets.js.map +1 -1
  537. package/packages/gateway/dist/plugins/stage.d.ts +4 -0
  538. package/packages/gateway/dist/plugins/stage.d.ts.map +1 -1
  539. package/packages/gateway/dist/plugins/stage.js +3 -0
  540. package/packages/gateway/dist/plugins/stage.js.map +1 -1
  541. package/packages/gateway/dist/plugins/update.d.ts +8 -0
  542. package/packages/gateway/dist/plugins/update.d.ts.map +1 -1
  543. package/packages/gateway/dist/plugins/update.js +8 -2
  544. package/packages/gateway/dist/plugins/update.js.map +1 -1
  545. package/packages/gateway/dist/provider-accounts.d.ts +6 -13
  546. package/packages/gateway/dist/provider-accounts.d.ts.map +1 -1
  547. package/packages/gateway/dist/provider-accounts.js +76 -16
  548. package/packages/gateway/dist/provider-accounts.js.map +1 -1
  549. package/packages/gateway/dist/providers.d.ts +3 -3
  550. package/packages/gateway/dist/providers.d.ts.map +1 -1
  551. package/packages/gateway/dist/providers.js +7 -7
  552. package/packages/gateway/dist/providers.js.map +1 -1
  553. package/packages/gateway/dist/serve.d.ts.map +1 -1
  554. package/packages/gateway/dist/serve.js +26 -8
  555. package/packages/gateway/dist/serve.js.map +1 -1
  556. package/packages/gateway/dist/surfaces/context-budget.d.ts +1 -1
  557. package/packages/gateway/dist/surfaces/context-budget.d.ts.map +1 -1
  558. package/packages/gateway/dist/surfaces/context-budget.js +46 -3
  559. package/packages/gateway/dist/surfaces/context-budget.js.map +1 -1
  560. package/packages/gateway/dist/surfaces/pending-question.d.ts.map +1 -1
  561. package/packages/gateway/dist/surfaces/pending-question.js +2 -1
  562. package/packages/gateway/dist/surfaces/pending-question.js.map +1 -1
  563. package/packages/gateway/dist/system-context.d.ts +2 -0
  564. package/packages/gateway/dist/system-context.d.ts.map +1 -1
  565. package/packages/gateway/dist/system-context.js +5 -1
  566. package/packages/gateway/dist/system-context.js.map +1 -1
  567. package/packages/gateway/dist/telegram/channel.d.ts +7 -0
  568. package/packages/gateway/dist/telegram/channel.d.ts.map +1 -1
  569. package/packages/gateway/dist/telegram/channel.js +14 -2
  570. package/packages/gateway/dist/telegram/channel.js.map +1 -1
  571. package/packages/gateway/dist/web/agents.d.ts.map +1 -1
  572. package/packages/gateway/dist/web/agents.js +5 -1
  573. package/packages/gateway/dist/web/agents.js.map +1 -1
  574. package/packages/gateway/dist/web/connections.d.ts +18 -5
  575. package/packages/gateway/dist/web/connections.d.ts.map +1 -1
  576. package/packages/gateway/dist/web/connections.js +118 -8
  577. package/packages/gateway/dist/web/connections.js.map +1 -1
  578. package/packages/gateway/dist/web/extension.d.ts +6 -0
  579. package/packages/gateway/dist/web/extension.d.ts.map +1 -1
  580. package/packages/gateway/dist/web/extension.js +5 -1
  581. package/packages/gateway/dist/web/extension.js.map +1 -1
  582. package/packages/gateway/dist/web/market.d.ts +18 -0
  583. package/packages/gateway/dist/web/market.d.ts.map +1 -1
  584. package/packages/gateway/dist/web/market.js +20 -14
  585. package/packages/gateway/dist/web/market.js.map +1 -1
  586. package/packages/gateway/dist/web/notifications.d.ts +6 -0
  587. package/packages/gateway/dist/web/notifications.d.ts.map +1 -1
  588. package/packages/gateway/dist/web/notifications.js +14 -1
  589. package/packages/gateway/dist/web/notifications.js.map +1 -1
  590. package/packages/gateway/dist/web/onboarding.d.ts +21 -7
  591. package/packages/gateway/dist/web/onboarding.d.ts.map +1 -1
  592. package/packages/gateway/dist/web/onboarding.js +64 -11
  593. package/packages/gateway/dist/web/onboarding.js.map +1 -1
  594. package/packages/gateway/dist/web/plugins.d.ts +5 -0
  595. package/packages/gateway/dist/web/plugins.d.ts.map +1 -1
  596. package/packages/gateway/dist/web/plugins.js +11 -1
  597. package/packages/gateway/dist/web/plugins.js.map +1 -1
  598. package/packages/gateway/dist/web/recovery.d.ts +10 -0
  599. package/packages/gateway/dist/web/recovery.d.ts.map +1 -1
  600. package/packages/gateway/dist/web/recovery.js +114 -34
  601. package/packages/gateway/dist/web/recovery.js.map +1 -1
  602. package/packages/gateway/dist/web/server.d.ts.map +1 -1
  603. package/packages/gateway/dist/web/server.js +84 -8
  604. package/packages/gateway/dist/web/server.js.map +1 -1
  605. package/packages/gateway/dist/web/sessions.d.ts +8 -0
  606. package/packages/gateway/dist/web/sessions.d.ts.map +1 -1
  607. package/packages/gateway/dist/web/sessions.js +24 -1
  608. package/packages/gateway/dist/web/sessions.js.map +1 -1
  609. package/packages/gateway/dist/web/static.d.ts +8 -0
  610. package/packages/gateway/dist/web/static.d.ts.map +1 -1
  611. package/packages/gateway/dist/web/static.js +21 -1
  612. package/packages/gateway/dist/web/static.js.map +1 -1
  613. package/packages/gateway/dist/web/take-on.d.ts +91 -0
  614. package/packages/gateway/dist/web/take-on.d.ts.map +1 -0
  615. package/packages/gateway/dist/web/take-on.js +287 -0
  616. package/packages/gateway/dist/web/take-on.js.map +1 -0
  617. package/packages/gateway/src/agents/starter/keeper/agent.md +2 -2
  618. package/packages/gateway/src/agents/starter/planner/agent.md +1 -1
  619. package/packages/gateway/src/agents/starter/scout/agent.md +1 -1
  620. package/packages/install/dist/.tsbuildinfo +1 -1
  621. package/packages/runtime/dist/.tsbuildinfo +1 -1
  622. package/packages/runtime/dist/anthropic.d.ts +7 -0
  623. package/packages/runtime/dist/anthropic.d.ts.map +1 -1
  624. package/packages/runtime/dist/anthropic.js +29 -3
  625. package/packages/runtime/dist/anthropic.js.map +1 -1
  626. package/packages/runtime/dist/delegate.js +1 -1
  627. package/packages/runtime/dist/delegate.js.map +1 -1
  628. package/packages/runtime/dist/provider-models.d.ts +2 -0
  629. package/packages/runtime/dist/provider-models.d.ts.map +1 -1
  630. package/packages/runtime/dist/provider-models.js +22 -0
  631. package/packages/runtime/dist/provider-models.js.map +1 -1
  632. package/packages/runtime/dist/search.js +2 -2
  633. package/packages/tools/artifacts/dist/.tsbuildinfo +1 -1
  634. package/packages/tools/browser/dist/.tsbuildinfo +1 -1
  635. package/packages/tools/email/dist/.tsbuildinfo +1 -1
  636. package/packages/tools/email/dist/config.d.ts +13 -9
  637. package/packages/tools/email/dist/config.d.ts.map +1 -1
  638. package/packages/tools/email/dist/config.js +33 -40
  639. package/packages/tools/email/dist/config.js.map +1 -1
  640. package/packages/tools/email/dist/index.d.ts +1 -1
  641. package/packages/tools/email/dist/index.d.ts.map +1 -1
  642. package/packages/tools/email/dist/index.js +1 -1
  643. package/packages/tools/email/dist/index.js.map +1 -1
  644. package/packages/tools/email/dist/pages/accounts.d.ts +1 -2
  645. package/packages/tools/email/dist/pages/accounts.d.ts.map +1 -1
  646. package/packages/tools/email/dist/pages/accounts.js +42 -18
  647. package/packages/tools/email/dist/pages/accounts.js.map +1 -1
  648. package/packages/tools/email/dist/pages/queries.d.ts.map +1 -1
  649. package/packages/tools/email/dist/pages/queries.js +7 -5
  650. package/packages/tools/email/dist/pages/queries.js.map +1 -1
  651. package/packages/tools/email/dist/ports.d.ts +5 -1
  652. package/packages/tools/email/dist/ports.d.ts.map +1 -1
  653. package/packages/tools/email/dist/tools/shared.js +1 -1
  654. package/packages/tools/email/dist/tools/shared.js.map +1 -1
  655. package/packages/tools/host/dist/.tsbuildinfo +1 -1
  656. package/packages/tools/mcp/dist/.tsbuildinfo +1 -1
  657. package/packages/tools/mcp/dist/catalog.d.ts +32 -2
  658. package/packages/tools/mcp/dist/catalog.d.ts.map +1 -1
  659. package/packages/tools/mcp/dist/catalog.js +41 -7
  660. package/packages/tools/mcp/dist/catalog.js.map +1 -1
  661. package/packages/tools/mcp/dist/device.d.ts +53 -0
  662. package/packages/tools/mcp/dist/device.d.ts.map +1 -0
  663. package/packages/tools/mcp/dist/device.js +100 -0
  664. package/packages/tools/mcp/dist/device.js.map +1 -0
  665. package/packages/tools/mcp/dist/fetch.d.ts +10 -1
  666. package/packages/tools/mcp/dist/fetch.d.ts.map +1 -1
  667. package/packages/tools/mcp/dist/fetch.js +7 -1
  668. package/packages/tools/mcp/dist/fetch.js.map +1 -1
  669. package/packages/tools/mcp/dist/index.d.ts +5 -3
  670. package/packages/tools/mcp/dist/index.d.ts.map +1 -1
  671. package/packages/tools/mcp/dist/index.js +7 -4
  672. package/packages/tools/mcp/dist/index.js.map +1 -1
  673. package/packages/tools/mcp/dist/ports.d.ts +31 -0
  674. package/packages/tools/mcp/dist/ports.d.ts.map +1 -1
  675. package/packages/tools/mcp/dist/preview.d.ts +16 -0
  676. package/packages/tools/mcp/dist/preview.d.ts.map +1 -0
  677. package/packages/tools/mcp/dist/preview.js +52 -0
  678. package/packages/tools/mcp/dist/preview.js.map +1 -0
  679. package/packages/tools/mcp/dist/program.d.ts +73 -0
  680. package/packages/tools/mcp/dist/program.d.ts.map +1 -0
  681. package/packages/tools/mcp/dist/program.js +306 -0
  682. package/packages/tools/mcp/dist/program.js.map +1 -0
  683. package/packages/tools/mcp/dist/service.d.ts +131 -22
  684. package/packages/tools/mcp/dist/service.d.ts.map +1 -1
  685. package/packages/tools/mcp/dist/service.js +717 -29
  686. package/packages/tools/mcp/dist/service.js.map +1 -1
  687. package/packages/tools/mcp/dist/session.d.ts +13 -1
  688. package/packages/tools/mcp/dist/session.d.ts.map +1 -1
  689. package/packages/tools/mcp/dist/session.js +27 -4
  690. package/packages/tools/mcp/dist/session.js.map +1 -1
  691. package/packages/tools/mcp/dist/store.d.ts +39 -1
  692. package/packages/tools/mcp/dist/store.d.ts.map +1 -1
  693. package/packages/tools/mcp/dist/store.js +24 -0
  694. package/packages/tools/mcp/dist/store.js.map +1 -1
  695. package/packages/tools/mcp/dist/testing/fake.d.ts +6 -0
  696. package/packages/tools/mcp/dist/testing/fake.d.ts.map +1 -1
  697. package/packages/tools/mcp/dist/testing/fake.js +26 -0
  698. package/packages/tools/mcp/dist/testing/fake.js.map +1 -1
  699. package/packages/tools/mcp/migrations/003_token_auth.sql +14 -0
  700. package/packages/tools/mcp/migrations/004_programs.sql +26 -0
  701. package/packages/tools/memory/dist/.tsbuildinfo +1 -1
  702. package/packages/tools/web/dist/.tsbuildinfo +1 -1
  703. package/packages/tools/web/dist/providers/index.d.ts +1 -2
  704. package/packages/tools/web/dist/providers/index.d.ts.map +1 -1
  705. package/packages/tools/web/dist/providers/index.js +1 -2
  706. package/packages/tools/web/dist/providers/index.js.map +1 -1
  707. package/packages/web/dist/assets/index-BxbiKNMS.css +1 -0
  708. package/packages/web/dist/assets/index-Rrze3bGo.js +130 -0
  709. package/packages/web/dist/assets/{lottie_light-D7STH9tF.js → lottie_light-7wQnGwdw.js} +1 -1
  710. package/packages/web/dist/build.json +1 -1
  711. package/packages/web/dist/index.html +2 -2
  712. package/packages/web/dist/manifest.webmanifest +24 -5
  713. package/packages/web/dist/precache.json +4 -4
  714. package/packages/web/dist/sw.js +5 -3
  715. package/packages/web/dist/assets/index-C-NAQ_MT.css +0 -1
  716. package/packages/web/dist/assets/index-DzFS39N3.js +0 -125
@@ -0,0 +1,306 @@
1
+ /**
2
+ * A program on this computer (docs/connections.md, "A program on this
3
+ * computer"): an MCP server buddi starts as the owner and speaks to over its
4
+ * standard input and output.
5
+ *
6
+ * - **Started on demand**, never before the owner pressed Continue on the
7
+ * form that shows the whole command, and then first only to list its
8
+ * tools for the review.
9
+ * - **Its own process group** (`detached`), so stopping it stops whatever
10
+ * it started too (`npx` runs the server as its child): the group gets
11
+ * SIGTERM, and SIGKILL a few seconds later if anything is left.
12
+ * - **A small environment**: PATH (with the directory of the Node buddi runs
13
+ * on first, so `npx` is the one beside it), HOME, the user, the temporary
14
+ * directory and the locale, and only the variables the owner named. Secret
15
+ * ones are read from the vault at start and never written anywhere.
16
+ * - **Its working directory** is its own, under the data directory.
17
+ * - **Its stderr** is kept, the last twenty lines, for the connection's row
18
+ * when it fails. It never reaches a tool result.
19
+ *
20
+ * The SDK's own `StdioClientTransport` starts the program in buddi's process
21
+ * group and kills only the one process, so this is a small transport of its
22
+ * own over the SDK's framing.
23
+ */
24
+ import { spawn } from 'node:child_process';
25
+ import { createHash } from 'node:crypto';
26
+ import path from 'node:path';
27
+ import { Client } from '@modelcontextprotocol/sdk/client/index.js';
28
+ import { ReadBuffer, serializeMessage } from '@modelcontextprotocol/sdk/shared/stdio.js';
29
+ import { CLIENT_INFO } from './session.js';
30
+ /** The first start may download the server (`npx -y …`): two minutes. */
31
+ export const START_TIMEOUT_MS = 120_000;
32
+ /** The lines of stderr kept for the row. */
33
+ export const STDERR_LINES = 20;
34
+ /** How long a stopped group has between SIGTERM and SIGKILL. */
35
+ export const KILL_GRACE_MS = 3_000;
36
+ /** What the owner reads for this connection's address: "this computer". */
37
+ export const PROGRAM_HOST = 'this computer';
38
+ /** The variables every program gets from buddi's own environment, when set. */
39
+ export const BASE_ENV = [
40
+ 'HOME', 'USER', 'LOGNAME', 'SHELL', 'TMPDIR', 'TMP', 'TEMP',
41
+ 'LANG', 'LANGUAGE', 'LC_ALL', 'LC_CTYPE', 'LC_MESSAGES', 'TZ',
42
+ // Windows needs these to start anything at all.
43
+ 'SystemRoot', 'windir', 'USERPROFILE', 'APPDATA', 'LOCALAPPDATA', 'PATHEXT', 'COMSPEC',
44
+ ];
45
+ export const ENV_NAME = /^[A-Za-z_][A-Za-z0-9_]{0,127}$/;
46
+ /** sha256 over what makes the program the one the owner reviewed: the command, its arguments, the variables' names. */
47
+ export function specHash(spec) {
48
+ return createHash('sha256')
49
+ .update(JSON.stringify({ command: spec.command, args: spec.args, env: spec.env.map((e) => e.name) }))
50
+ .digest('hex');
51
+ }
52
+ /** One word as a shell would need it written. */
53
+ function quoted(word) {
54
+ if (word !== '' && /^[A-Za-z0-9_@%+=:,./-]+$/.test(word))
55
+ return word;
56
+ return `'${word.replace(/'/g, `'\\''`)}'`;
57
+ }
58
+ /** The command line in full, as the form and the review show it. */
59
+ export function commandLine(spec) {
60
+ return [spec.command, ...spec.args].map(quoted).join(' ');
61
+ }
62
+ /**
63
+ * The program's environment: PATH with the running Node's directory first,
64
+ * the basics from `BASE_ENV`, and the named variables, which win.
65
+ */
66
+ export function childEnv(named, base = process.env, execPath = process.execPath) {
67
+ const env = {};
68
+ for (const key of BASE_ENV) {
69
+ const value = base[key];
70
+ if (typeof value === 'string' && value !== '')
71
+ env[key] = value;
72
+ }
73
+ const inherited = (base.PATH ?? base.Path ?? '').split(path.delimiter).filter(Boolean);
74
+ const fallback = process.platform === 'win32' ? [] : ['/usr/local/bin', '/usr/bin', '/bin'];
75
+ const dirs = [path.dirname(execPath), ...(inherited.length > 0 ? inherited : fallback)];
76
+ env.PATH = [...new Set(dirs)].join(path.delimiter);
77
+ return { ...env, ...named };
78
+ }
79
+ /** The last lines a program wrote to stderr, with the secrets it was given taken out. */
80
+ export class StderrTail {
81
+ hide;
82
+ max;
83
+ #lines = [];
84
+ #partial = '';
85
+ constructor(hide = [], max = STDERR_LINES) {
86
+ this.hide = hide;
87
+ this.max = max;
88
+ }
89
+ push(chunk) {
90
+ const text = this.#partial + chunk.toString();
91
+ const parts = text.split(/\r?\n/);
92
+ this.#partial = (parts.pop() ?? '').slice(-2000);
93
+ for (const line of parts)
94
+ this.#add(line);
95
+ }
96
+ #add(line) {
97
+ let clean = line.replace(/\x1b\[[0-9;]*[A-Za-z]/g, '').replace(/[\x00-\x08\x0b-\x1f\x7f]/g, '');
98
+ for (const secret of this.hide)
99
+ if (secret.length >= 4)
100
+ clean = clean.split(secret).join('…');
101
+ clean = clean.trimEnd();
102
+ if (clean === '')
103
+ return;
104
+ this.#lines.push(clean.length > 500 ? `${clean.slice(0, 500)}…` : clean);
105
+ if (this.#lines.length > this.max)
106
+ this.#lines.splice(0, this.#lines.length - this.max);
107
+ }
108
+ lines() {
109
+ const out = [...this.#lines];
110
+ if (this.#partial.trim()) {
111
+ const tail = new StderrTail(this.hide, 1);
112
+ tail.push(`${this.#partial}\n`);
113
+ out.push(...tail.lines());
114
+ }
115
+ return out.slice(-this.max);
116
+ }
117
+ }
118
+ /* ------------------------------------------------------------------ *
119
+ * The groups this process started, stopped when it exits
120
+ * ------------------------------------------------------------------ */
121
+ const groups = new Set();
122
+ let exitHook = false;
123
+ function track(pid) {
124
+ groups.add(pid);
125
+ if (exitHook)
126
+ return;
127
+ exitHook = true;
128
+ // Nothing asynchronous runs on `exit`: the groups get SIGKILL there, for
129
+ // the case where buddi stops without its orderly shutdown.
130
+ process.once('exit', () => { for (const pid of groups)
131
+ killGroup(pid, 'SIGKILL'); });
132
+ }
133
+ /** Signal the whole group; the process alone where groups do not exist. */
134
+ export function killGroup(pid, signal) {
135
+ try {
136
+ if (process.platform === 'win32')
137
+ process.kill(pid, signal);
138
+ else
139
+ process.kill(-pid, signal);
140
+ }
141
+ catch {
142
+ // Already gone.
143
+ }
144
+ }
145
+ /** Whether any process of the group is still alive. */
146
+ export function groupAlive(pid) {
147
+ try {
148
+ process.kill(process.platform === 'win32' ? pid : -pid, 0);
149
+ return true;
150
+ }
151
+ catch (err) {
152
+ return err.code === 'EPERM';
153
+ }
154
+ }
155
+ /** The groups started and not yet stopped (tests). */
156
+ export function liveGroups() { return [...groups]; }
157
+ /** The MCP stdio framing over a program in its own process group. */
158
+ export class ProgramTransport {
159
+ opts;
160
+ onclose;
161
+ onerror;
162
+ onmessage;
163
+ #child;
164
+ #pid;
165
+ #exited;
166
+ #buffer = new ReadBuffer();
167
+ constructor(opts) {
168
+ this.opts = opts;
169
+ }
170
+ get pid() { return this.#pid; }
171
+ start() {
172
+ if (this.#child)
173
+ throw new Error('The program is already started.');
174
+ return new Promise((resolve, reject) => {
175
+ let started = false;
176
+ const child = spawn(this.opts.command, [...this.opts.args], {
177
+ cwd: this.opts.cwd,
178
+ env: this.opts.env,
179
+ stdio: ['pipe', 'pipe', 'pipe'],
180
+ detached: true,
181
+ windowsHide: true,
182
+ shell: false,
183
+ });
184
+ this.#child = child;
185
+ this.#exited = new Promise((done) => child.once('close', () => done()));
186
+ child.once('error', (error) => {
187
+ const err = error.code === 'ENOENT'
188
+ ? new Error(`${this.opts.command} was not found on this computer.`)
189
+ : error;
190
+ if (!started)
191
+ reject(err);
192
+ this.onerror?.(err);
193
+ });
194
+ child.once('spawn', () => {
195
+ started = true;
196
+ if (child.pid !== undefined) {
197
+ this.#pid = child.pid;
198
+ track(child.pid);
199
+ }
200
+ resolve();
201
+ });
202
+ child.once('close', (code, signal) => {
203
+ // The group stays tracked until `close`: something the program
204
+ // started may outlive it.
205
+ if (code !== null && code !== 0)
206
+ this.opts.tail.push(`\n(the program stopped with exit code ${code})\n`);
207
+ else if (signal && signal !== 'SIGTERM' && signal !== 'SIGKILL')
208
+ this.opts.tail.push(`\n(the program stopped on ${signal})\n`);
209
+ this.#child = undefined;
210
+ this.onclose?.();
211
+ });
212
+ child.stdout?.on('data', (chunk) => {
213
+ this.#buffer.append(chunk);
214
+ this.#drain();
215
+ });
216
+ child.stderr?.on('data', (chunk) => this.opts.tail.push(chunk));
217
+ child.stdin?.on('error', (error) => this.onerror?.(error));
218
+ child.stdout?.on('error', (error) => this.onerror?.(error));
219
+ });
220
+ }
221
+ #drain() {
222
+ for (;;) {
223
+ let message;
224
+ try {
225
+ message = this.#buffer.readMessage();
226
+ }
227
+ catch (error) {
228
+ // A line that is not JSON-RPC (a banner on stdout): noted, and read past.
229
+ this.opts.tail.push(`\n(a line on its output was not MCP)\n`);
230
+ this.onerror?.(error);
231
+ continue;
232
+ }
233
+ if (message === null)
234
+ return;
235
+ this.onmessage?.(message);
236
+ }
237
+ }
238
+ send(message) {
239
+ return new Promise((resolve, reject) => {
240
+ const stdin = this.#child?.stdin;
241
+ if (!stdin || stdin.destroyed) {
242
+ reject(new Error('The program is not running.'));
243
+ return;
244
+ }
245
+ if (stdin.write(serializeMessage(message)))
246
+ resolve();
247
+ else
248
+ stdin.once('drain', resolve);
249
+ });
250
+ }
251
+ /** Stop the whole group: SIGTERM, then SIGKILL after the grace period. */
252
+ async close() {
253
+ const pid = this.#pid;
254
+ const child = this.#child;
255
+ this.#buffer.clear();
256
+ if (child) {
257
+ child.stdin?.end();
258
+ child.stdout?.removeAllListeners('data');
259
+ }
260
+ if (pid === undefined)
261
+ return;
262
+ killGroup(pid, 'SIGTERM');
263
+ const exited = this.#exited ?? Promise.resolve();
264
+ let timer;
265
+ await Promise.race([exited, new Promise((resolve) => { timer = setTimeout(resolve, KILL_GRACE_MS); timer.unref?.(); })]);
266
+ if (timer)
267
+ clearTimeout(timer);
268
+ // The leader may be gone while something it started lives on in the group.
269
+ if (groupAlive(pid))
270
+ killGroup(pid, 'SIGKILL');
271
+ groups.delete(pid);
272
+ }
273
+ }
274
+ /** Start the program and `initialize` it, and nothing else. */
275
+ export async function openProgram(opts) {
276
+ const transport = new ProgramTransport(opts);
277
+ const client = new Client(CLIENT_INFO, { capabilities: {} });
278
+ try {
279
+ await client.connect(transport, { timeout: opts.timeoutMs ?? START_TIMEOUT_MS });
280
+ }
281
+ catch (error) {
282
+ await client.close().catch(() => { });
283
+ await transport.close().catch(() => { });
284
+ throw error;
285
+ }
286
+ let exited = false;
287
+ let closing = false;
288
+ // The program stopped by itself: the session is dead, and the next call starts it again.
289
+ client.onclose = () => {
290
+ exited = true;
291
+ if (!closing)
292
+ opts.onExit?.();
293
+ };
294
+ return {
295
+ client,
296
+ pid: transport.pid,
297
+ unauthorized: () => null,
298
+ closed: () => exited,
299
+ close: async () => {
300
+ closing = true;
301
+ await client.close().catch(() => { });
302
+ await transport.close().catch(() => { });
303
+ },
304
+ };
305
+ }
306
+ //# sourceMappingURL=program.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"program.js","sourceRoot":"","sources":["../src/program.ts"],"names":[],"mappings":"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"}
@@ -1,22 +1,9 @@
1
- /**
2
- * Connections, the service (docs/connections.md; buddi-planning/specs/mcp-client.md).
3
- *
4
- * The four screens of the flow — address, consent, review, grant — are this
5
- * service's methods (grant is the gateway's: it writes agent files through the
6
- * same path Agent Father uses). It also owns what happens while buddi runs:
7
- * every reviewed connection's tools registered as `mcp.<connection>.<tool>`,
8
- * one MCP session per connection, and the connection's state.
9
- *
10
- * What a server may reach before the owner has read its review: an
11
- * `initialize` and a tool list. No token exists until the owner signed in on
12
- * the service's own consent page, and no tool is registered until the review
13
- * is saved.
14
- */
15
1
  import type { Pool } from 'pg';
16
2
  import { type JSONSchema7, type NetworkArea, type ToolsArea } from '@buddi/core/plugin';
17
- import type { HttpTransport, OAuthPort, VaultPort } from './ports.js';
3
+ import type { HttpTransport, OAuthPort, SecretsPort, VaultPort } from './ports.js';
4
+ import { type CatalogCard } from './catalog.js';
18
5
  import { Sessions } from './session.js';
19
- import { type ConnectionRow, type ConnectionState, type ToolRow } from './store.js';
6
+ import { type AuthKind, type ConnectionRow, type ConnectionState, type ToolRow, type TransportKind } from './store.js';
20
7
  import { type ToolTier } from './tiers.js';
21
8
  import { TokenKeeper } from './tokens.js';
22
9
  /** A refusal a route answers with its status and sentence. */
@@ -33,6 +20,8 @@ export interface ConnectionsDeps {
33
20
  transport: HttpTransport;
34
21
  /** The shared OAuth module over the same transport (`createOAuthPort`). */
35
22
  oauth: OAuthPort;
23
+ /** The owner's secrets, for a connection signed in with a token. Without one, token sign-in is refused. */
24
+ secrets?: SecretsPort;
36
25
  /**
37
26
  * Compile a server's input schema the way the registry will, throwing a
38
27
  * sentence when it cannot (core's `compileJsonSchema`). Without one, only
@@ -48,6 +37,53 @@ export interface ConnectionsDeps {
48
37
  idleMs?: number;
49
38
  /** How often a connection's tool list is compared with its review, at most. An hour. */
50
39
  recheckMs?: number;
40
+ /** The cards, for a device sign-in's app (`CATALOG`). A test hands its own. */
41
+ catalog?: readonly CatalogCard[];
42
+ /** Wait between device polls; resolves early when `signal` aborts. A test hands one that does not wait. */
43
+ sleep?: (ms: number, signal: AbortSignal) => Promise<void>;
44
+ /** The data directory: a program's working directory is `<dataDir>/connections/<id>`. The system's temporary directory without one. */
45
+ dataDir?: string;
46
+ /** The environment a program's PATH, HOME and locale come from. `process.env`. */
47
+ env?: NodeJS.ProcessEnv;
48
+ /** How long a program has to start and answer `initialize`. Two minutes, for a first `npx` download. */
49
+ startTimeoutMs?: number;
50
+ }
51
+ /** A program's variable as the owner gave it: a value, or a secret kept in the vault. */
52
+ export interface ProgramEnvInput {
53
+ name: string;
54
+ /** For a secret on a change, empty keeps the value already kept. */
55
+ value?: string;
56
+ secret?: boolean;
57
+ }
58
+ export interface ProgramInput {
59
+ name: string;
60
+ command: string;
61
+ args?: readonly string[];
62
+ env?: readonly ProgramEnvInput[];
63
+ }
64
+ /** A program on this computer, as the row and the review show it. Never a secret's value. */
65
+ export interface ProgramView {
66
+ command: string;
67
+ args: string[];
68
+ /** The command line in full, quoted as a shell would need it. */
69
+ line: string;
70
+ env: Array<{
71
+ name: string;
72
+ secret: boolean;
73
+ value?: string;
74
+ }>;
75
+ /** The command, arguments or variables' names changed since the review: another review first. */
76
+ changedSinceReview: boolean;
77
+ }
78
+ /** A device sign-in (docs/connections.md, "Connect"), as `GET /api/connections/:id` shows it. */
79
+ export interface DeviceView {
80
+ state: 'waiting' | 'done' | 'failed';
81
+ userCode: string;
82
+ verificationUri: string;
83
+ /** ISO time the code stops working. */
84
+ expiresAt: string;
85
+ /** Failed: why, in one sentence. */
86
+ reason?: string;
51
87
  }
52
88
  export interface ConnectionView {
53
89
  id: string;
@@ -56,8 +92,8 @@ export interface ConnectionView {
56
92
  url: string;
57
93
  host: string;
58
94
  state: ConnectionState;
59
- authKind: 'none' | 'oauth';
60
- /** OAuth: tokens are in the vault. Always true for a server that wants none. */
95
+ authKind: AuthKind;
96
+ /** OAuth or token: the sign-in is kept. Always true for a server that wants none. */
61
97
  signedIn: boolean;
62
98
  /** Tools registered for agents (enabled, reviewed). */
63
99
  toolCount: number;
@@ -70,6 +106,16 @@ export interface ConnectionView {
70
106
  unreachableSince: string | null;
71
107
  /** Reviewed tools the server changed or dropped since: they wait for another review. */
72
108
  heldTools: number;
109
+ /** A device sign-in that is waiting, or finished in the last ten minutes. */
110
+ device?: DeviceView;
111
+ /** `http` for a server at an address, `stdio` for a program on this computer. */
112
+ transport: TransportKind;
113
+ /** A program's command, arguments and variables. */
114
+ program?: ProgramView;
115
+ /** A program being started (a first `npx` may be downloading). */
116
+ phase?: 'starting';
117
+ /** The last lines a program wrote to stderr, when it last failed to start or answer. */
118
+ stderr?: string[];
73
119
  }
74
120
  /** What changed in a server's list since the owner's review, by the server's names. */
75
121
  export interface ReviewChanges {
@@ -104,6 +150,8 @@ export interface ReviewView {
104
150
  annotatedNothing: boolean;
105
151
  /** Against the last review; null on the first one. */
106
152
  changes: ReviewChanges | null;
153
+ /** A program: what runs, in full, above its tools. */
154
+ program?: ProgramView;
107
155
  }
108
156
  /** A line for Home and the rail: a connection that needs the owner. */
109
157
  export interface ConnectionSignal {
@@ -113,8 +161,15 @@ export interface ConnectionSignal {
113
161
  sentence: string;
114
162
  }
115
163
  export type SignIn = 'none' | 'dynamic' | 'manual';
164
+ /** The header a pasted token goes in when nothing else is said, and the words before it. */
165
+ export declare const DEFAULT_TOKEN_HEADER = "Authorization";
166
+ export declare const DEFAULT_TOKEN_PREFIX = "Bearer ";
167
+ /** The owner-secret name a program's secret variable is kept under. */
168
+ export declare function envSecretFor(connectionId: string, variable: string): string;
169
+ /** The owner-secret name a connection's token is kept under. */
170
+ export declare function tokenSecretFor(connectionId: string): string;
116
171
  /** Spec §2: the escape hatch, one sentence. */
117
- export declare const NEEDS_CLIENT_ID = "This service does not let buddi register itself, so it needs a client id you create in the service's developer settings, with the address below as its redirect.";
172
+ export declare const NEEDS_CLIENT_ID = "This service does not let buddi register itself. Create an app in its developer settings with the redirect address below, and paste its client id here. A token is usually simpler.";
118
173
  /** After a failure, the next try is this many minutes on; the last one repeats (spec: 1, 5, 15, 60, then hourly). */
119
174
  export declare const RETRY_MINUTES: readonly [1, 5, 15, 60];
120
175
  export declare const RECHECK_MS: number;
@@ -131,7 +186,9 @@ export declare class ConnectionsService {
131
186
  * hosts are declared (`ctx.buddi.network`), handed over at register.
132
187
  */
133
188
  attachTools(area: ToolsArea, network?: NetworkArea): void;
134
- view(row: ConnectionRow, tools: readonly ToolRow[]): ConnectionView;
189
+ view(row: ConnectionRow, tools: readonly ToolRow[], device?: {
190
+ device?: DeviceView;
191
+ }): ConnectionView;
135
192
  list(): Promise<ConnectionView[]>;
136
193
  get(id: string): Promise<ConnectionView>;
137
194
  /** The connections that need the owner, in a sentence each: Home's line and the rail's dot. */
@@ -149,22 +206,40 @@ export declare class ConnectionsService {
149
206
  connection: ConnectionView;
150
207
  signIn: SignIn;
151
208
  }>;
209
+ /**
210
+ * Record a program the owner described: its command, arguments and
211
+ * variables, the secret ones kept as owner secrets and named here only.
212
+ * Nothing is started: the review starts it, the first time only to list
213
+ * its tools.
214
+ */
215
+ addProgram(input: ProgramInput): Promise<{
216
+ connection: ConnectionView;
217
+ }>;
218
+ /**
219
+ * Change a program's command, arguments or variables. A different
220
+ * command, other arguments or other variables' names is another program:
221
+ * its tools stop until the owner reviews it again. A new value for a
222
+ * variable already named is not.
223
+ */
224
+ updateProgram(id: string, input: ProgramInput): Promise<ConnectionView>;
152
225
  /**
153
226
  * Register buddi with the service's authorization server (or take the
154
227
  * client id the owner typed), and hand back the consent page's address,
155
- * with PKCE and a state bound to this dashboard session. Reconnect is this,
228
+ * with PKCE and a state bound to this dashboard session (or owned by the
229
+ * CLI, `cli`: see `PendingConsent`). Reconnect is this,
156
230
  * on a connection that keeps its tools.
157
231
  */
158
232
  beginConsent(id: string, input: {
159
233
  sessionId: string;
160
234
  redirectUri: string;
161
235
  clientId?: string;
236
+ cli?: boolean;
162
237
  }): Promise<{
163
238
  authorizeUrl: string;
164
239
  }>;
165
240
  /**
166
241
  * The consent page came back to `/connections/callback`: check the state
167
- * (this session's, unexpired, used once), exchange the code, keep the tokens
242
+ * (this session's or the CLI's, unexpired, used once), exchange the code, keep the tokens
168
243
  * in the vault. A connection that was reviewed before is connected again
169
244
  * with its tools as they were.
170
245
  */
@@ -177,6 +252,40 @@ export declare class ConnectionsService {
177
252
  id: string;
178
253
  reconnected: boolean;
179
254
  name: string;
255
+ cli: boolean;
256
+ }>;
257
+ /**
258
+ * Sign in with a token the owner pasted (docs/connections.md, "Connect"):
259
+ * the server is opened with it and its tools listed before anything is
260
+ * kept, so a token the service refuses is never stored. Kept, it is an
261
+ * owner secret bound to this host's header, sent on every request as
262
+ * `<prefix><token>`. Reconnect is this again, on a connection that keeps
263
+ * its tools.
264
+ */
265
+ useToken(id: string, input: {
266
+ token: string;
267
+ header?: string;
268
+ prefix?: string;
269
+ }): Promise<{
270
+ id: string;
271
+ reconnected: boolean;
272
+ name: string;
273
+ }>;
274
+ /**
275
+ * Ask the service for a device code with buddi's public app, and wait for
276
+ * the owner to type it on the service's site. The wait is this service's:
277
+ * one per connection, replaced by a new begin, ended by a disconnect or the
278
+ * code's expiry. Approved, the token goes the way a pasted one goes
279
+ * (`#keepToken`: tried, then an owner secret sent as `Authorization:
280
+ * Bearer`), or, when the service gave a refresh token, into the vault as
281
+ * an OAuth sign-in that renews itself before it expires. The connection's
282
+ * view carries `device` meanwhile.
283
+ */
284
+ beginDevice(id: string): Promise<{
285
+ userCode: string;
286
+ verificationUri: string;
287
+ expiresAt: string;
288
+ interval: number;
180
289
  }>;
181
290
  /** Every tool the server lists, as buddi would take it. Nothing is registered. */
182
291
  review(id: string): Promise<ReviewView>;
@@ -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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"}