@withbuddi/buddi 0.1.0-pre.36 → 0.1.0-pre.37

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 (607) hide show
  1. package/examples/agents/concierge/agent.md +5 -0
  2. package/examples/skills/letterhead/SKILL.md +21 -0
  3. package/examples/skills/letterhead/assets/letterhead.md +16 -0
  4. package/examples/skills/letterhead/assets/logo.svg +6 -0
  5. package/extension/manifest.json +2 -2
  6. package/node_modules/@buddi/cli/dist/.tsbuildinfo +1 -1
  7. package/node_modules/@buddi/cli/dist/doctor-probes.d.ts.map +1 -1
  8. package/node_modules/@buddi/cli/dist/doctor-probes.js +38 -3
  9. package/node_modules/@buddi/cli/dist/doctor-probes.js.map +1 -1
  10. package/node_modules/@buddi/cli/dist/doctor.d.ts +25 -0
  11. package/node_modules/@buddi/cli/dist/doctor.d.ts.map +1 -1
  12. package/node_modules/@buddi/cli/dist/doctor.js +28 -0
  13. package/node_modules/@buddi/cli/dist/doctor.js.map +1 -1
  14. package/node_modules/@buddi/core/dist/.tsbuildinfo +1 -1
  15. package/node_modules/@buddi/core/dist/actions/approvals.d.ts +7 -0
  16. package/node_modules/@buddi/core/dist/actions/approvals.d.ts.map +1 -1
  17. package/node_modules/@buddi/core/dist/actions/approvals.js +11 -1
  18. package/node_modules/@buddi/core/dist/actions/approvals.js.map +1 -1
  19. package/node_modules/@buddi/core/dist/agents/catalog.d.ts.map +1 -1
  20. package/node_modules/@buddi/core/dist/agents/catalog.js +2 -2
  21. package/node_modules/@buddi/core/dist/agents/catalog.js.map +1 -1
  22. package/node_modules/@buddi/core/dist/agents/skills.d.ts +60 -1
  23. package/node_modules/@buddi/core/dist/agents/skills.d.ts.map +1 -1
  24. package/node_modules/@buddi/core/dist/agents/skills.js +157 -17
  25. package/node_modules/@buddi/core/dist/agents/skills.js.map +1 -1
  26. package/node_modules/@buddi/core/dist/day-month.d.ts +52 -0
  27. package/node_modules/@buddi/core/dist/day-month.d.ts.map +1 -0
  28. package/node_modules/@buddi/core/dist/day-month.js +101 -0
  29. package/node_modules/@buddi/core/dist/day-month.js.map +1 -0
  30. package/node_modules/@buddi/core/dist/host/build.d.ts +11 -2
  31. package/node_modules/@buddi/core/dist/host/build.d.ts.map +1 -1
  32. package/node_modules/@buddi/core/dist/host/build.js +115 -4
  33. package/node_modules/@buddi/core/dist/host/build.js.map +1 -1
  34. package/node_modules/@buddi/core/dist/host/http.d.ts +35 -0
  35. package/node_modules/@buddi/core/dist/host/http.d.ts.map +1 -1
  36. package/node_modules/@buddi/core/dist/host/http.js +133 -29
  37. package/node_modules/@buddi/core/dist/host/http.js.map +1 -1
  38. package/node_modules/@buddi/core/dist/host/types.d.ts +72 -1
  39. package/node_modules/@buddi/core/dist/host/types.d.ts.map +1 -1
  40. package/node_modules/@buddi/core/dist/index.d.ts +2 -0
  41. package/node_modules/@buddi/core/dist/index.d.ts.map +1 -1
  42. package/node_modules/@buddi/core/dist/index.js +2 -0
  43. package/node_modules/@buddi/core/dist/index.js.map +1 -1
  44. package/node_modules/@buddi/core/dist/onboarding/store.d.ts.map +1 -1
  45. package/node_modules/@buddi/core/dist/onboarding/store.js +28 -5
  46. package/node_modules/@buddi/core/dist/onboarding/store.js.map +1 -1
  47. package/node_modules/@buddi/core/dist/onboarding/types.d.ts +10 -0
  48. package/node_modules/@buddi/core/dist/onboarding/types.d.ts.map +1 -1
  49. package/node_modules/@buddi/core/dist/onboarding/types.js.map +1 -1
  50. package/node_modules/@buddi/core/dist/pages.d.ts +145 -11
  51. package/node_modules/@buddi/core/dist/pages.d.ts.map +1 -1
  52. package/node_modules/@buddi/core/dist/pages.js +113 -5
  53. package/node_modules/@buddi/core/dist/pages.js.map +1 -1
  54. package/node_modules/@buddi/core/dist/plugin/index.d.ts +4 -0
  55. package/node_modules/@buddi/core/dist/plugin/index.d.ts.map +1 -1
  56. package/node_modules/@buddi/core/dist/plugin/index.js +2 -0
  57. package/node_modules/@buddi/core/dist/plugin/index.js.map +1 -1
  58. package/node_modules/@buddi/core/dist/plugin/sign-in.d.ts +78 -0
  59. package/node_modules/@buddi/core/dist/plugin/sign-in.d.ts.map +1 -0
  60. package/node_modules/@buddi/core/dist/plugin/sign-in.js +54 -0
  61. package/node_modules/@buddi/core/dist/plugin/sign-in.js.map +1 -0
  62. package/node_modules/@buddi/core/dist/plugin/version.d.ts +1 -1
  63. package/node_modules/@buddi/core/dist/plugin/version.js +1 -1
  64. package/node_modules/@buddi/core/dist/provider-accounts.d.ts +7 -0
  65. package/node_modules/@buddi/core/dist/provider-accounts.d.ts.map +1 -1
  66. package/node_modules/@buddi/core/dist/provider-accounts.js +15 -0
  67. package/node_modules/@buddi/core/dist/provider-accounts.js.map +1 -1
  68. package/node_modules/@buddi/core/dist/questions/types.d.ts +1 -1
  69. package/node_modules/@buddi/core/dist/questions/types.js +1 -1
  70. package/node_modules/@buddi/core/dist/queue/jobs.d.ts +57 -2
  71. package/node_modules/@buddi/core/dist/queue/jobs.d.ts.map +1 -1
  72. package/node_modules/@buddi/core/dist/queue/jobs.js +114 -0
  73. package/node_modules/@buddi/core/dist/queue/jobs.js.map +1 -1
  74. package/node_modules/@buddi/core/dist/queue/worker.d.ts +24 -2
  75. package/node_modules/@buddi/core/dist/queue/worker.d.ts.map +1 -1
  76. package/node_modules/@buddi/core/dist/queue/worker.js +66 -11
  77. package/node_modules/@buddi/core/dist/queue/worker.js.map +1 -1
  78. package/node_modules/@buddi/core/dist/registry.d.ts +8 -0
  79. package/node_modules/@buddi/core/dist/registry.d.ts.map +1 -1
  80. package/node_modules/@buddi/core/dist/registry.js +15 -2
  81. package/node_modules/@buddi/core/dist/registry.js.map +1 -1
  82. package/node_modules/@buddi/core/dist/secrets/scrub.d.ts.map +1 -1
  83. package/node_modules/@buddi/core/dist/secrets/scrub.js +15 -0
  84. package/node_modules/@buddi/core/dist/secrets/scrub.js.map +1 -1
  85. package/node_modules/@buddi/core/dist/tools.d.ts +29 -0
  86. package/node_modules/@buddi/core/dist/tools.d.ts.map +1 -1
  87. package/node_modules/@buddi/core/dist/tools.js.map +1 -1
  88. package/node_modules/@buddi/core/dist/views.d.ts +12 -12
  89. package/node_modules/@buddi/core/dist/widgets.d.ts +14 -1
  90. package/node_modules/@buddi/core/dist/widgets.d.ts.map +1 -1
  91. package/node_modules/@buddi/core/dist/widgets.js +30 -0
  92. package/node_modules/@buddi/core/dist/widgets.js.map +1 -1
  93. package/node_modules/@buddi/core/migrations/074_owner_identity.sql +14 -0
  94. package/node_modules/@buddi/gateway/dist/.tsbuildinfo +1 -1
  95. package/node_modules/@buddi/gateway/dist/agents/catalog.d.ts.map +1 -1
  96. package/node_modules/@buddi/gateway/dist/agents/catalog.js +3 -3
  97. package/node_modules/@buddi/gateway/dist/agents/catalog.js.map +1 -1
  98. package/node_modules/@buddi/gateway/dist/agents/catalogue-package.d.ts +8 -0
  99. package/node_modules/@buddi/gateway/dist/agents/catalogue-package.d.ts.map +1 -1
  100. package/node_modules/@buddi/gateway/dist/agents/catalogue-package.js +11 -4
  101. package/node_modules/@buddi/gateway/dist/agents/catalogue-package.js.map +1 -1
  102. package/node_modules/@buddi/gateway/dist/agents/owner-tools.d.ts.map +1 -1
  103. package/node_modules/@buddi/gateway/dist/agents/owner-tools.js +36 -2
  104. package/node_modules/@buddi/gateway/dist/agents/owner-tools.js.map +1 -1
  105. package/node_modules/@buddi/gateway/dist/agents/platform-catalogue.d.ts +19 -0
  106. package/node_modules/@buddi/gateway/dist/agents/platform-catalogue.d.ts.map +1 -1
  107. package/node_modules/@buddi/gateway/dist/agents/platform-catalogue.js +108 -0
  108. package/node_modules/@buddi/gateway/dist/agents/platform-catalogue.js.map +1 -1
  109. package/node_modules/@buddi/gateway/dist/agents/platform.d.ts +4 -4
  110. package/node_modules/@buddi/gateway/dist/agents/platform.d.ts.map +1 -1
  111. package/node_modules/@buddi/gateway/dist/agents/platform.js +11 -0
  112. package/node_modules/@buddi/gateway/dist/agents/platform.js.map +1 -1
  113. package/node_modules/@buddi/gateway/dist/bootstrap.d.ts.map +1 -1
  114. package/node_modules/@buddi/gateway/dist/bootstrap.js +4 -1
  115. package/node_modules/@buddi/gateway/dist/bootstrap.js.map +1 -1
  116. package/node_modules/@buddi/gateway/dist/evals/golden.d.ts +33 -1
  117. package/node_modules/@buddi/gateway/dist/evals/golden.d.ts.map +1 -1
  118. package/node_modules/@buddi/gateway/dist/evals/golden.js +168 -3
  119. package/node_modules/@buddi/gateway/dist/evals/golden.js.map +1 -1
  120. package/node_modules/@buddi/gateway/dist/index.d.ts +1 -0
  121. package/node_modules/@buddi/gateway/dist/index.d.ts.map +1 -1
  122. package/node_modules/@buddi/gateway/dist/index.js +1 -0
  123. package/node_modules/@buddi/gateway/dist/index.js.map +1 -1
  124. package/node_modules/@buddi/gateway/dist/missions/dates.d.ts +98 -0
  125. package/node_modules/@buddi/gateway/dist/missions/dates.d.ts.map +1 -0
  126. package/node_modules/@buddi/gateway/dist/missions/dates.js +252 -0
  127. package/node_modules/@buddi/gateway/dist/missions/dates.js.map +1 -0
  128. package/node_modules/@buddi/gateway/dist/missions/execute.d.ts +8 -0
  129. package/node_modules/@buddi/gateway/dist/missions/execute.d.ts.map +1 -1
  130. package/node_modules/@buddi/gateway/dist/missions/execute.js +16 -1
  131. package/node_modules/@buddi/gateway/dist/missions/execute.js.map +1 -1
  132. package/node_modules/@buddi/gateway/dist/missions/report.d.ts.map +1 -1
  133. package/node_modules/@buddi/gateway/dist/missions/report.js +1 -0
  134. package/node_modules/@buddi/gateway/dist/missions/report.js.map +1 -1
  135. package/node_modules/@buddi/gateway/dist/ollama-local.d.ts +90 -0
  136. package/node_modules/@buddi/gateway/dist/ollama-local.d.ts.map +1 -0
  137. package/node_modules/@buddi/gateway/dist/ollama-local.js +201 -0
  138. package/node_modules/@buddi/gateway/dist/ollama-local.js.map +1 -0
  139. package/node_modules/@buddi/gateway/dist/plugins-cli.d.ts +8 -0
  140. package/node_modules/@buddi/gateway/dist/plugins-cli.d.ts.map +1 -1
  141. package/node_modules/@buddi/gateway/dist/plugins-cli.js +22 -1
  142. package/node_modules/@buddi/gateway/dist/plugins-cli.js.map +1 -1
  143. package/node_modules/@buddi/gateway/dist/serve.d.ts.map +1 -1
  144. package/node_modules/@buddi/gateway/dist/serve.js +50 -5
  145. package/node_modules/@buddi/gateway/dist/serve.js.map +1 -1
  146. package/node_modules/@buddi/gateway/dist/surfaces/pending-question.js +2 -2
  147. package/node_modules/@buddi/gateway/dist/system-context.d.ts +21 -1
  148. package/node_modules/@buddi/gateway/dist/system-context.d.ts.map +1 -1
  149. package/node_modules/@buddi/gateway/dist/system-context.js +76 -2
  150. package/node_modules/@buddi/gateway/dist/system-context.js.map +1 -1
  151. package/node_modules/@buddi/gateway/dist/telegram/approvals.d.ts.map +1 -1
  152. package/node_modules/@buddi/gateway/dist/telegram/approvals.js +4 -2
  153. package/node_modules/@buddi/gateway/dist/telegram/approvals.js.map +1 -1
  154. package/node_modules/@buddi/gateway/dist/telegram/channel.d.ts.map +1 -1
  155. package/node_modules/@buddi/gateway/dist/telegram/channel.js +6 -1
  156. package/node_modules/@buddi/gateway/dist/telegram/channel.js.map +1 -1
  157. package/node_modules/@buddi/gateway/dist/telegram/html.d.ts +34 -0
  158. package/node_modules/@buddi/gateway/dist/telegram/html.d.ts.map +1 -0
  159. package/node_modules/@buddi/gateway/dist/telegram/html.js +263 -0
  160. package/node_modules/@buddi/gateway/dist/telegram/html.js.map +1 -0
  161. package/node_modules/@buddi/gateway/dist/telegram/notify.d.ts +6 -0
  162. package/node_modules/@buddi/gateway/dist/telegram/notify.d.ts.map +1 -1
  163. package/node_modules/@buddi/gateway/dist/telegram/notify.js +25 -3
  164. package/node_modules/@buddi/gateway/dist/telegram/notify.js.map +1 -1
  165. package/node_modules/@buddi/gateway/dist/tips/facts.d.ts +2 -0
  166. package/node_modules/@buddi/gateway/dist/tips/facts.d.ts.map +1 -1
  167. package/node_modules/@buddi/gateway/dist/tips/facts.js +4 -1
  168. package/node_modules/@buddi/gateway/dist/tips/facts.js.map +1 -1
  169. package/node_modules/@buddi/gateway/dist/tips/rules.d.ts.map +1 -1
  170. package/node_modules/@buddi/gateway/dist/tips/rules.js +10 -0
  171. package/node_modules/@buddi/gateway/dist/tips/rules.js.map +1 -1
  172. package/node_modules/@buddi/gateway/dist/web/api-routes.d.ts.map +1 -1
  173. package/node_modules/@buddi/gateway/dist/web/api-routes.js +72 -9
  174. package/node_modules/@buddi/gateway/dist/web/api-routes.js.map +1 -1
  175. package/node_modules/@buddi/gateway/dist/web/api-scan.d.ts +1 -1
  176. package/node_modules/@buddi/gateway/dist/web/api-scan.d.ts.map +1 -1
  177. package/node_modules/@buddi/gateway/dist/web/api-scan.js +1 -0
  178. package/node_modules/@buddi/gateway/dist/web/api-scan.js.map +1 -1
  179. package/node_modules/@buddi/gateway/dist/web/chat.d.ts.map +1 -1
  180. package/node_modules/@buddi/gateway/dist/web/chat.js +9 -0
  181. package/node_modules/@buddi/gateway/dist/web/chat.js.map +1 -1
  182. package/node_modules/@buddi/gateway/dist/web/composer.d.ts +45 -0
  183. package/node_modules/@buddi/gateway/dist/web/composer.d.ts.map +1 -0
  184. package/node_modules/@buddi/gateway/dist/web/composer.js +85 -0
  185. package/node_modules/@buddi/gateway/dist/web/composer.js.map +1 -0
  186. package/node_modules/@buddi/gateway/dist/web/market.d.ts +20 -1
  187. package/node_modules/@buddi/gateway/dist/web/market.d.ts.map +1 -1
  188. package/node_modules/@buddi/gateway/dist/web/market.js +41 -1
  189. package/node_modules/@buddi/gateway/dist/web/market.js.map +1 -1
  190. package/node_modules/@buddi/gateway/dist/web/people.d.ts +44 -0
  191. package/node_modules/@buddi/gateway/dist/web/people.d.ts.map +1 -0
  192. package/node_modules/@buddi/gateway/dist/web/people.js +114 -0
  193. package/node_modules/@buddi/gateway/dist/web/people.js.map +1 -0
  194. package/node_modules/@buddi/gateway/dist/web/server.d.ts +4 -0
  195. package/node_modules/@buddi/gateway/dist/web/server.d.ts.map +1 -1
  196. package/node_modules/@buddi/gateway/dist/web/server.js +137 -11
  197. package/node_modules/@buddi/gateway/dist/web/server.js.map +1 -1
  198. package/node_modules/@buddi/gateway/dist/web/skill-bundles.d.ts +101 -0
  199. package/node_modules/@buddi/gateway/dist/web/skill-bundles.d.ts.map +1 -0
  200. package/node_modules/@buddi/gateway/dist/web/skill-bundles.js +439 -0
  201. package/node_modules/@buddi/gateway/dist/web/skill-bundles.js.map +1 -0
  202. package/node_modules/@buddi/gateway/dist/web/skills.d.ts +57 -1
  203. package/node_modules/@buddi/gateway/dist/web/skills.d.ts.map +1 -1
  204. package/node_modules/@buddi/gateway/dist/web/skills.js +171 -9
  205. package/node_modules/@buddi/gateway/dist/web/skills.js.map +1 -1
  206. package/node_modules/@buddi/gateway/dist/web/zip-read.d.ts +31 -0
  207. package/node_modules/@buddi/gateway/dist/web/zip-read.d.ts.map +1 -0
  208. package/node_modules/@buddi/gateway/dist/web/zip-read.js +125 -0
  209. package/node_modules/@buddi/gateway/dist/web/zip-read.js.map +1 -0
  210. package/node_modules/@buddi/install/dist/.tsbuildinfo +1 -1
  211. package/node_modules/@buddi/runtime/dist/.tsbuildinfo +1 -1
  212. package/node_modules/@buddi/runtime/dist/index.d.ts +1 -0
  213. package/node_modules/@buddi/runtime/dist/index.d.ts.map +1 -1
  214. package/node_modules/@buddi/runtime/dist/index.js +1 -0
  215. package/node_modules/@buddi/runtime/dist/index.js.map +1 -1
  216. package/node_modules/@buddi/runtime/dist/loop.js +11 -1
  217. package/node_modules/@buddi/runtime/dist/loop.js.map +1 -1
  218. package/node_modules/@buddi/runtime/dist/plugin-sign-in.d.ts +12 -0
  219. package/node_modules/@buddi/runtime/dist/plugin-sign-in.d.ts.map +1 -0
  220. package/node_modules/@buddi/runtime/dist/plugin-sign-in.js +397 -0
  221. package/node_modules/@buddi/runtime/dist/plugin-sign-in.js.map +1 -0
  222. package/node_modules/@buddi/tool-artifacts/dist/.tsbuildinfo +1 -1
  223. package/node_modules/@buddi/tool-artifacts/dist/tools/write.d.ts.map +1 -1
  224. package/node_modules/@buddi/tool-artifacts/dist/tools/write.js +1 -0
  225. package/node_modules/@buddi/tool-artifacts/dist/tools/write.js.map +1 -1
  226. package/node_modules/@buddi/tool-browser/dist/.tsbuildinfo +1 -1
  227. package/node_modules/@buddi/tool-email/dist/.tsbuildinfo +1 -1
  228. package/node_modules/@buddi/tool-email/dist/widgets.d.ts.map +1 -1
  229. package/node_modules/@buddi/tool-email/dist/widgets.js +2 -1
  230. package/node_modules/@buddi/tool-email/dist/widgets.js.map +1 -1
  231. package/node_modules/@buddi/tool-host/dist/.tsbuildinfo +1 -1
  232. package/node_modules/@buddi/tool-host/dist/index.d.ts +2 -1
  233. package/node_modules/@buddi/tool-host/dist/index.d.ts.map +1 -1
  234. package/node_modules/@buddi/tool-host/dist/index.js +3 -2
  235. package/node_modules/@buddi/tool-host/dist/index.js.map +1 -1
  236. package/node_modules/@buddi/tool-host/dist/process.d.ts +4 -0
  237. package/node_modules/@buddi/tool-host/dist/process.d.ts.map +1 -1
  238. package/node_modules/@buddi/tool-host/dist/process.js +4 -2
  239. package/node_modules/@buddi/tool-host/dist/process.js.map +1 -1
  240. package/node_modules/@buddi/tool-host/dist/service.d.ts +66 -17
  241. package/node_modules/@buddi/tool-host/dist/service.d.ts.map +1 -1
  242. package/node_modules/@buddi/tool-host/dist/service.js +172 -9
  243. package/node_modules/@buddi/tool-host/dist/service.js.map +1 -1
  244. package/node_modules/@buddi/tool-host/dist/skill-run.d.ts +55 -0
  245. package/node_modules/@buddi/tool-host/dist/skill-run.d.ts.map +1 -0
  246. package/node_modules/@buddi/tool-host/dist/skill-run.js +132 -0
  247. package/node_modules/@buddi/tool-host/dist/skill-run.js.map +1 -0
  248. package/node_modules/@buddi/tool-mcp/dist/.tsbuildinfo +1 -1
  249. package/node_modules/@buddi/tool-memory/dist/.tsbuildinfo +1 -1
  250. package/node_modules/@buddi/tool-memory/dist/index.d.ts +1 -0
  251. package/node_modules/@buddi/tool-memory/dist/index.d.ts.map +1 -1
  252. package/node_modules/@buddi/tool-memory/dist/index.js +7 -2
  253. package/node_modules/@buddi/tool-memory/dist/index.js.map +1 -1
  254. package/node_modules/@buddi/tool-memory/dist/people.d.ts +218 -0
  255. package/node_modules/@buddi/tool-memory/dist/people.d.ts.map +1 -0
  256. package/node_modules/@buddi/tool-memory/dist/people.js +582 -0
  257. package/node_modules/@buddi/tool-memory/dist/people.js.map +1 -0
  258. package/node_modules/@buddi/tool-memory/dist/preamble.d.ts +4 -1
  259. package/node_modules/@buddi/tool-memory/dist/preamble.d.ts.map +1 -1
  260. package/node_modules/@buddi/tool-memory/dist/preamble.js +25 -7
  261. package/node_modules/@buddi/tool-memory/dist/preamble.js.map +1 -1
  262. package/node_modules/@buddi/tool-memory/migrations/002_people.sql +40 -0
  263. package/node_modules/@buddi/tool-web/dist/.tsbuildinfo +1 -1
  264. package/node_modules/imapflow/CHANGELOG.md +8 -0
  265. package/node_modules/imapflow/dist/cjs/commands/append.js +27 -3
  266. package/node_modules/imapflow/dist/cjs/commands/store.js +31 -6
  267. package/node_modules/imapflow/dist/cjs/imap-flow.d.ts +1 -1
  268. package/node_modules/imapflow/dist/cjs/imap-flow.js +1 -1
  269. package/node_modules/imapflow/dist/cjs/package-info.d.ts +1 -1
  270. package/node_modules/imapflow/dist/cjs/package-info.js +1 -1
  271. package/node_modules/imapflow/dist/esm/commands/append.js +27 -3
  272. package/node_modules/imapflow/dist/esm/commands/store.js +31 -6
  273. package/node_modules/imapflow/dist/esm/imap-flow.d.ts +1 -1
  274. package/node_modules/imapflow/dist/esm/imap-flow.js +1 -1
  275. package/node_modules/imapflow/dist/esm/package-info.d.ts +1 -1
  276. package/node_modules/imapflow/dist/esm/package-info.js +1 -1
  277. package/node_modules/imapflow/package.json +4 -4
  278. package/node_modules/pino/CONTRIBUTING.md +5 -1
  279. package/node_modules/pino/LICENSE +1 -1
  280. package/node_modules/pino/README.md +1 -1
  281. package/node_modules/pino/SECURITY.md +18 -2
  282. package/node_modules/pino/browser.js +68 -8
  283. package/node_modules/pino/docs/api.md +75 -4
  284. package/node_modules/pino/docs/asynchronous.md +18 -3
  285. package/node_modules/pino/docs/browser.md +63 -0
  286. package/node_modules/pino/docs/child-loggers.md +22 -1
  287. package/node_modules/pino/docs/ecosystem.md +1 -0
  288. package/node_modules/pino/docs/help.md +11 -3
  289. package/node_modules/pino/docs/lts.md +29 -0
  290. package/node_modules/pino/docs/pretty.md +3 -0
  291. package/node_modules/pino/docs/redaction.md +3 -8
  292. package/node_modules/pino/docs/transports.md +71 -0
  293. package/node_modules/pino/docs/web.md +11 -14
  294. package/node_modules/pino/eslint.config.js +15 -7
  295. package/node_modules/pino/lib/caller.js +10 -0
  296. package/node_modules/pino/lib/meta.js +1 -1
  297. package/node_modules/pino/lib/multistream.js +15 -7
  298. package/node_modules/pino/lib/redaction.js +8 -3
  299. package/node_modules/pino/lib/symbols.js +3 -1
  300. package/node_modules/pino/lib/tools.js +2 -2
  301. package/node_modules/pino/lib/transport.js +14 -1
  302. package/node_modules/pino/lib/worker.js +4 -1
  303. package/node_modules/pino/package.json +14 -22
  304. package/node_modules/pino/pino.d.ts +709 -736
  305. package/node_modules/pino/pino.js +27 -2
  306. package/node_modules/pino/test/basic.test.js +66 -0
  307. package/node_modules/pino/test/browser-bindings.test.js +114 -0
  308. package/node_modules/pino/test/browser-redaction.test.js +264 -0
  309. package/node_modules/pino/test/browser-set-bindings.test.js +99 -0
  310. package/node_modules/pino/test/caller.test.js +20 -0
  311. package/node_modules/pino/test/escaping.test.js +17 -0
  312. package/node_modules/pino/test/fixtures/caller-loop.js +6 -0
  313. package/node_modules/pino/test/fixtures/ts/transpile.cjs +3 -3
  314. package/node_modules/pino/test/helper.js +6 -2
  315. package/node_modules/pino/test/multistream.test.js +64 -0
  316. package/node_modules/pino/test/redact.test.js +30 -0
  317. package/node_modules/pino/test/smoke.js +59 -0
  318. package/node_modules/pino/test/transport/core.test.js +85 -0
  319. package/node_modules/pino/test/transport/sync-false.test.js +12 -0
  320. package/node_modules/pino/test/transport/uses-pino-config.test.js +4 -4
  321. package/node_modules/pino/test/types/pino-import.tst.cts +30 -0
  322. package/node_modules/pino/test/types/pino-import.tst.js +73 -0
  323. package/node_modules/pino/test/types/pino-multistream.tst.ts +49 -0
  324. package/node_modules/pino/test/types/pino-top-export.tst.ts +32 -0
  325. package/node_modules/pino/test/types/{pino-transport.test-d.ts → pino-transport.tst.ts} +85 -70
  326. package/node_modules/pino/test/types/pino-type-only.tst.ts +77 -0
  327. package/node_modules/pino/test/types/pino.ts +14 -7
  328. package/node_modules/pino/test/types/{pino.test-d.ts → pino.tst.ts} +135 -137
  329. package/node_modules/pino/test/types/tsconfig.json +10 -0
  330. package/node_modules/pino/tsconfig.json +6 -6
  331. package/node_modules/real-require/README.md +6 -6
  332. package/node_modules/real-require/package.json +10 -21
  333. package/node_modules/real-require/src/index.js +2 -2
  334. package/package.json +2 -2
  335. package/packages/cli/dist/.tsbuildinfo +1 -1
  336. package/packages/cli/dist/doctor-probes.d.ts.map +1 -1
  337. package/packages/cli/dist/doctor-probes.js +38 -3
  338. package/packages/cli/dist/doctor-probes.js.map +1 -1
  339. package/packages/cli/dist/doctor.d.ts +25 -0
  340. package/packages/cli/dist/doctor.d.ts.map +1 -1
  341. package/packages/cli/dist/doctor.js +28 -0
  342. package/packages/cli/dist/doctor.js.map +1 -1
  343. package/packages/core/dist/.tsbuildinfo +1 -1
  344. package/packages/core/dist/actions/approvals.d.ts +7 -0
  345. package/packages/core/dist/actions/approvals.d.ts.map +1 -1
  346. package/packages/core/dist/actions/approvals.js +11 -1
  347. package/packages/core/dist/actions/approvals.js.map +1 -1
  348. package/packages/core/dist/agents/catalog.d.ts.map +1 -1
  349. package/packages/core/dist/agents/catalog.js +2 -2
  350. package/packages/core/dist/agents/catalog.js.map +1 -1
  351. package/packages/core/dist/agents/skills.d.ts +60 -1
  352. package/packages/core/dist/agents/skills.d.ts.map +1 -1
  353. package/packages/core/dist/agents/skills.js +157 -17
  354. package/packages/core/dist/agents/skills.js.map +1 -1
  355. package/packages/core/dist/day-month.d.ts +52 -0
  356. package/packages/core/dist/day-month.d.ts.map +1 -0
  357. package/packages/core/dist/day-month.js +101 -0
  358. package/packages/core/dist/day-month.js.map +1 -0
  359. package/packages/core/dist/host/build.d.ts +11 -2
  360. package/packages/core/dist/host/build.d.ts.map +1 -1
  361. package/packages/core/dist/host/build.js +115 -4
  362. package/packages/core/dist/host/build.js.map +1 -1
  363. package/packages/core/dist/host/http.d.ts +35 -0
  364. package/packages/core/dist/host/http.d.ts.map +1 -1
  365. package/packages/core/dist/host/http.js +133 -29
  366. package/packages/core/dist/host/http.js.map +1 -1
  367. package/packages/core/dist/host/types.d.ts +72 -1
  368. package/packages/core/dist/host/types.d.ts.map +1 -1
  369. package/packages/core/dist/index.d.ts +2 -0
  370. package/packages/core/dist/index.d.ts.map +1 -1
  371. package/packages/core/dist/index.js +2 -0
  372. package/packages/core/dist/index.js.map +1 -1
  373. package/packages/core/dist/onboarding/store.d.ts.map +1 -1
  374. package/packages/core/dist/onboarding/store.js +28 -5
  375. package/packages/core/dist/onboarding/store.js.map +1 -1
  376. package/packages/core/dist/onboarding/types.d.ts +10 -0
  377. package/packages/core/dist/onboarding/types.d.ts.map +1 -1
  378. package/packages/core/dist/onboarding/types.js.map +1 -1
  379. package/packages/core/dist/pages.d.ts +145 -11
  380. package/packages/core/dist/pages.d.ts.map +1 -1
  381. package/packages/core/dist/pages.js +113 -5
  382. package/packages/core/dist/pages.js.map +1 -1
  383. package/packages/core/dist/plugin/index.d.ts +4 -0
  384. package/packages/core/dist/plugin/index.d.ts.map +1 -1
  385. package/packages/core/dist/plugin/index.js +2 -0
  386. package/packages/core/dist/plugin/index.js.map +1 -1
  387. package/packages/core/dist/plugin/sign-in.d.ts +78 -0
  388. package/packages/core/dist/plugin/sign-in.d.ts.map +1 -0
  389. package/packages/core/dist/plugin/sign-in.js +54 -0
  390. package/packages/core/dist/plugin/sign-in.js.map +1 -0
  391. package/packages/core/dist/plugin/version.d.ts +1 -1
  392. package/packages/core/dist/plugin/version.js +1 -1
  393. package/packages/core/dist/provider-accounts.d.ts +7 -0
  394. package/packages/core/dist/provider-accounts.d.ts.map +1 -1
  395. package/packages/core/dist/provider-accounts.js +15 -0
  396. package/packages/core/dist/provider-accounts.js.map +1 -1
  397. package/packages/core/dist/questions/types.d.ts +1 -1
  398. package/packages/core/dist/questions/types.js +1 -1
  399. package/packages/core/dist/queue/jobs.d.ts +57 -2
  400. package/packages/core/dist/queue/jobs.d.ts.map +1 -1
  401. package/packages/core/dist/queue/jobs.js +114 -0
  402. package/packages/core/dist/queue/jobs.js.map +1 -1
  403. package/packages/core/dist/queue/worker.d.ts +24 -2
  404. package/packages/core/dist/queue/worker.d.ts.map +1 -1
  405. package/packages/core/dist/queue/worker.js +66 -11
  406. package/packages/core/dist/queue/worker.js.map +1 -1
  407. package/packages/core/dist/registry.d.ts +8 -0
  408. package/packages/core/dist/registry.d.ts.map +1 -1
  409. package/packages/core/dist/registry.js +15 -2
  410. package/packages/core/dist/registry.js.map +1 -1
  411. package/packages/core/dist/secrets/scrub.d.ts.map +1 -1
  412. package/packages/core/dist/secrets/scrub.js +15 -0
  413. package/packages/core/dist/secrets/scrub.js.map +1 -1
  414. package/packages/core/dist/tools.d.ts +29 -0
  415. package/packages/core/dist/tools.d.ts.map +1 -1
  416. package/packages/core/dist/tools.js.map +1 -1
  417. package/packages/core/dist/views.d.ts +12 -12
  418. package/packages/core/dist/widgets.d.ts +14 -1
  419. package/packages/core/dist/widgets.d.ts.map +1 -1
  420. package/packages/core/dist/widgets.js +30 -0
  421. package/packages/core/dist/widgets.js.map +1 -1
  422. package/packages/core/migrations/074_owner_identity.sql +14 -0
  423. package/packages/gateway/dist/.tsbuildinfo +1 -1
  424. package/packages/gateway/dist/agents/catalog.d.ts.map +1 -1
  425. package/packages/gateway/dist/agents/catalog.js +3 -3
  426. package/packages/gateway/dist/agents/catalog.js.map +1 -1
  427. package/packages/gateway/dist/agents/catalogue-package.d.ts +8 -0
  428. package/packages/gateway/dist/agents/catalogue-package.d.ts.map +1 -1
  429. package/packages/gateway/dist/agents/catalogue-package.js +11 -4
  430. package/packages/gateway/dist/agents/catalogue-package.js.map +1 -1
  431. package/packages/gateway/dist/agents/owner-tools.d.ts.map +1 -1
  432. package/packages/gateway/dist/agents/owner-tools.js +36 -2
  433. package/packages/gateway/dist/agents/owner-tools.js.map +1 -1
  434. package/packages/gateway/dist/agents/platform-catalogue.d.ts +19 -0
  435. package/packages/gateway/dist/agents/platform-catalogue.d.ts.map +1 -1
  436. package/packages/gateway/dist/agents/platform-catalogue.js +108 -0
  437. package/packages/gateway/dist/agents/platform-catalogue.js.map +1 -1
  438. package/packages/gateway/dist/agents/platform.d.ts +4 -4
  439. package/packages/gateway/dist/agents/platform.d.ts.map +1 -1
  440. package/packages/gateway/dist/agents/platform.js +11 -0
  441. package/packages/gateway/dist/agents/platform.js.map +1 -1
  442. package/packages/gateway/dist/bootstrap.d.ts.map +1 -1
  443. package/packages/gateway/dist/bootstrap.js +4 -1
  444. package/packages/gateway/dist/bootstrap.js.map +1 -1
  445. package/packages/gateway/dist/evals/golden.d.ts +33 -1
  446. package/packages/gateway/dist/evals/golden.d.ts.map +1 -1
  447. package/packages/gateway/dist/evals/golden.js +168 -3
  448. package/packages/gateway/dist/evals/golden.js.map +1 -1
  449. package/packages/gateway/dist/index.d.ts +1 -0
  450. package/packages/gateway/dist/index.d.ts.map +1 -1
  451. package/packages/gateway/dist/index.js +1 -0
  452. package/packages/gateway/dist/index.js.map +1 -1
  453. package/packages/gateway/dist/missions/dates.d.ts +98 -0
  454. package/packages/gateway/dist/missions/dates.d.ts.map +1 -0
  455. package/packages/gateway/dist/missions/dates.js +252 -0
  456. package/packages/gateway/dist/missions/dates.js.map +1 -0
  457. package/packages/gateway/dist/missions/execute.d.ts +8 -0
  458. package/packages/gateway/dist/missions/execute.d.ts.map +1 -1
  459. package/packages/gateway/dist/missions/execute.js +16 -1
  460. package/packages/gateway/dist/missions/execute.js.map +1 -1
  461. package/packages/gateway/dist/missions/report.d.ts.map +1 -1
  462. package/packages/gateway/dist/missions/report.js +1 -0
  463. package/packages/gateway/dist/missions/report.js.map +1 -1
  464. package/packages/gateway/dist/ollama-local.d.ts +90 -0
  465. package/packages/gateway/dist/ollama-local.d.ts.map +1 -0
  466. package/packages/gateway/dist/ollama-local.js +201 -0
  467. package/packages/gateway/dist/ollama-local.js.map +1 -0
  468. package/packages/gateway/dist/plugins-cli.d.ts +8 -0
  469. package/packages/gateway/dist/plugins-cli.d.ts.map +1 -1
  470. package/packages/gateway/dist/plugins-cli.js +22 -1
  471. package/packages/gateway/dist/plugins-cli.js.map +1 -1
  472. package/packages/gateway/dist/serve.d.ts.map +1 -1
  473. package/packages/gateway/dist/serve.js +50 -5
  474. package/packages/gateway/dist/serve.js.map +1 -1
  475. package/packages/gateway/dist/surfaces/pending-question.js +2 -2
  476. package/packages/gateway/dist/system-context.d.ts +21 -1
  477. package/packages/gateway/dist/system-context.d.ts.map +1 -1
  478. package/packages/gateway/dist/system-context.js +76 -2
  479. package/packages/gateway/dist/system-context.js.map +1 -1
  480. package/packages/gateway/dist/telegram/approvals.d.ts.map +1 -1
  481. package/packages/gateway/dist/telegram/approvals.js +4 -2
  482. package/packages/gateway/dist/telegram/approvals.js.map +1 -1
  483. package/packages/gateway/dist/telegram/channel.d.ts.map +1 -1
  484. package/packages/gateway/dist/telegram/channel.js +6 -1
  485. package/packages/gateway/dist/telegram/channel.js.map +1 -1
  486. package/packages/gateway/dist/telegram/html.d.ts +34 -0
  487. package/packages/gateway/dist/telegram/html.d.ts.map +1 -0
  488. package/packages/gateway/dist/telegram/html.js +263 -0
  489. package/packages/gateway/dist/telegram/html.js.map +1 -0
  490. package/packages/gateway/dist/telegram/notify.d.ts +6 -0
  491. package/packages/gateway/dist/telegram/notify.d.ts.map +1 -1
  492. package/packages/gateway/dist/telegram/notify.js +25 -3
  493. package/packages/gateway/dist/telegram/notify.js.map +1 -1
  494. package/packages/gateway/dist/tips/facts.d.ts +2 -0
  495. package/packages/gateway/dist/tips/facts.d.ts.map +1 -1
  496. package/packages/gateway/dist/tips/facts.js +4 -1
  497. package/packages/gateway/dist/tips/facts.js.map +1 -1
  498. package/packages/gateway/dist/tips/rules.d.ts.map +1 -1
  499. package/packages/gateway/dist/tips/rules.js +10 -0
  500. package/packages/gateway/dist/tips/rules.js.map +1 -1
  501. package/packages/gateway/dist/web/api-routes.d.ts.map +1 -1
  502. package/packages/gateway/dist/web/api-routes.js +72 -9
  503. package/packages/gateway/dist/web/api-routes.js.map +1 -1
  504. package/packages/gateway/dist/web/api-scan.d.ts +1 -1
  505. package/packages/gateway/dist/web/api-scan.d.ts.map +1 -1
  506. package/packages/gateway/dist/web/api-scan.js +1 -0
  507. package/packages/gateway/dist/web/api-scan.js.map +1 -1
  508. package/packages/gateway/dist/web/chat.d.ts.map +1 -1
  509. package/packages/gateway/dist/web/chat.js +9 -0
  510. package/packages/gateway/dist/web/chat.js.map +1 -1
  511. package/packages/gateway/dist/web/composer.d.ts +45 -0
  512. package/packages/gateway/dist/web/composer.d.ts.map +1 -0
  513. package/packages/gateway/dist/web/composer.js +85 -0
  514. package/packages/gateway/dist/web/composer.js.map +1 -0
  515. package/packages/gateway/dist/web/market.d.ts +20 -1
  516. package/packages/gateway/dist/web/market.d.ts.map +1 -1
  517. package/packages/gateway/dist/web/market.js +41 -1
  518. package/packages/gateway/dist/web/market.js.map +1 -1
  519. package/packages/gateway/dist/web/people.d.ts +44 -0
  520. package/packages/gateway/dist/web/people.d.ts.map +1 -0
  521. package/packages/gateway/dist/web/people.js +114 -0
  522. package/packages/gateway/dist/web/people.js.map +1 -0
  523. package/packages/gateway/dist/web/server.d.ts +4 -0
  524. package/packages/gateway/dist/web/server.d.ts.map +1 -1
  525. package/packages/gateway/dist/web/server.js +137 -11
  526. package/packages/gateway/dist/web/server.js.map +1 -1
  527. package/packages/gateway/dist/web/skill-bundles.d.ts +101 -0
  528. package/packages/gateway/dist/web/skill-bundles.d.ts.map +1 -0
  529. package/packages/gateway/dist/web/skill-bundles.js +439 -0
  530. package/packages/gateway/dist/web/skill-bundles.js.map +1 -0
  531. package/packages/gateway/dist/web/skills.d.ts +57 -1
  532. package/packages/gateway/dist/web/skills.d.ts.map +1 -1
  533. package/packages/gateway/dist/web/skills.js +171 -9
  534. package/packages/gateway/dist/web/skills.js.map +1 -1
  535. package/packages/gateway/dist/web/zip-read.d.ts +31 -0
  536. package/packages/gateway/dist/web/zip-read.d.ts.map +1 -0
  537. package/packages/gateway/dist/web/zip-read.js +125 -0
  538. package/packages/gateway/dist/web/zip-read.js.map +1 -0
  539. package/packages/install/dist/.tsbuildinfo +1 -1
  540. package/packages/runtime/dist/.tsbuildinfo +1 -1
  541. package/packages/runtime/dist/index.d.ts +1 -0
  542. package/packages/runtime/dist/index.d.ts.map +1 -1
  543. package/packages/runtime/dist/index.js +1 -0
  544. package/packages/runtime/dist/index.js.map +1 -1
  545. package/packages/runtime/dist/loop.js +11 -1
  546. package/packages/runtime/dist/loop.js.map +1 -1
  547. package/packages/runtime/dist/plugin-sign-in.d.ts +12 -0
  548. package/packages/runtime/dist/plugin-sign-in.d.ts.map +1 -0
  549. package/packages/runtime/dist/plugin-sign-in.js +397 -0
  550. package/packages/runtime/dist/plugin-sign-in.js.map +1 -0
  551. package/packages/tools/artifacts/dist/.tsbuildinfo +1 -1
  552. package/packages/tools/artifacts/dist/tools/write.d.ts.map +1 -1
  553. package/packages/tools/artifacts/dist/tools/write.js +1 -0
  554. package/packages/tools/artifacts/dist/tools/write.js.map +1 -1
  555. package/packages/tools/browser/dist/.tsbuildinfo +1 -1
  556. package/packages/tools/email/dist/.tsbuildinfo +1 -1
  557. package/packages/tools/email/dist/widgets.d.ts.map +1 -1
  558. package/packages/tools/email/dist/widgets.js +2 -1
  559. package/packages/tools/email/dist/widgets.js.map +1 -1
  560. package/packages/tools/host/dist/.tsbuildinfo +1 -1
  561. package/packages/tools/host/dist/index.d.ts +2 -1
  562. package/packages/tools/host/dist/index.d.ts.map +1 -1
  563. package/packages/tools/host/dist/index.js +3 -2
  564. package/packages/tools/host/dist/index.js.map +1 -1
  565. package/packages/tools/host/dist/process.d.ts +4 -0
  566. package/packages/tools/host/dist/process.d.ts.map +1 -1
  567. package/packages/tools/host/dist/process.js +4 -2
  568. package/packages/tools/host/dist/process.js.map +1 -1
  569. package/packages/tools/host/dist/service.d.ts +66 -17
  570. package/packages/tools/host/dist/service.d.ts.map +1 -1
  571. package/packages/tools/host/dist/service.js +172 -9
  572. package/packages/tools/host/dist/service.js.map +1 -1
  573. package/packages/tools/host/dist/skill-run.d.ts +55 -0
  574. package/packages/tools/host/dist/skill-run.d.ts.map +1 -0
  575. package/packages/tools/host/dist/skill-run.js +132 -0
  576. package/packages/tools/host/dist/skill-run.js.map +1 -0
  577. package/packages/tools/mcp/dist/.tsbuildinfo +1 -1
  578. package/packages/tools/memory/dist/.tsbuildinfo +1 -1
  579. package/packages/tools/memory/dist/index.d.ts +1 -0
  580. package/packages/tools/memory/dist/index.d.ts.map +1 -1
  581. package/packages/tools/memory/dist/index.js +7 -2
  582. package/packages/tools/memory/dist/index.js.map +1 -1
  583. package/packages/tools/memory/dist/people.d.ts +218 -0
  584. package/packages/tools/memory/dist/people.d.ts.map +1 -0
  585. package/packages/tools/memory/dist/people.js +582 -0
  586. package/packages/tools/memory/dist/people.js.map +1 -0
  587. package/packages/tools/memory/dist/preamble.d.ts +4 -1
  588. package/packages/tools/memory/dist/preamble.d.ts.map +1 -1
  589. package/packages/tools/memory/dist/preamble.js +25 -7
  590. package/packages/tools/memory/dist/preamble.js.map +1 -1
  591. package/packages/tools/memory/migrations/002_people.sql +40 -0
  592. package/packages/tools/web/dist/.tsbuildinfo +1 -1
  593. package/packages/web/dist/assets/{index-B_P_ux2I.css → index-CN1AXMI1.css} +1 -1
  594. package/packages/web/dist/assets/index-CQRE9LJX.js +145 -0
  595. package/packages/web/dist/assets/{lottie_light-Dj5SSwxs.js → lottie_light-CKJ88Yuk.js} +1 -1
  596. package/packages/web/dist/build.json +1 -1
  597. package/packages/web/dist/index.html +2 -2
  598. package/packages/web/dist/precache.json +4 -4
  599. package/node_modules/pino/test/types/pino-import.test-d.cts +0 -30
  600. package/node_modules/pino/test/types/pino-multistream.test-d.ts +0 -28
  601. package/node_modules/pino/test/types/pino-top-export.test-d.ts +0 -34
  602. package/node_modules/pino/test/types/pino-type-only.test-d.ts +0 -75
  603. package/node_modules/thread-stream/node_modules/real-require/LICENSE.md +0 -21
  604. package/node_modules/thread-stream/node_modules/real-require/README.md +0 -51
  605. package/node_modules/thread-stream/node_modules/real-require/package.json +0 -38
  606. package/node_modules/thread-stream/node_modules/real-require/src/index.js +0 -14
  607. package/packages/web/dist/assets/index-CjOzIGL7.js +0 -134
@@ -1 +1 @@
1
- {"version":3,"file":"market.js","sourceRoot":"","sources":["../../src/web/market.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"market.js","sourceRoot":"","sources":["../../src/web/market.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,44 @@
1
+ /**
2
+ * Settings → Memory → People, and Home's birthday card (docs/memory.md,
3
+ * "People"; docs/dashboard.md, Home).
4
+ *
5
+ * GET /api/memory/people → { people: PersonRow[], today }
6
+ * POST /api/memory/people { id?, name, relationship?, addressAs?, birthday?, anniversary?, notes?, reminders? } → { person, people }
7
+ * POST /api/memory/people/:id/forget → { person, people }
8
+ * POST /api/memory/people/:id/restore → { person, people }
9
+ * GET /api/owner/birthday → BirthdayGlance
10
+ *
11
+ * The owner writes People directly: no proposal, because the owner is the one
12
+ * who decides. Every save brings the date missions in step at once
13
+ * (`syncDateMissions`), so "Remind me of their dates" is the mission's own
14
+ * switch, created off and turned on here.
15
+ */
16
+ import { type AgentCatalog } from '@buddi/core';
17
+ import { type PersonView } from '@buddi/tool-memory';
18
+ import type { Pool } from 'pg';
19
+ export interface PeopleDeps {
20
+ pool: Pool;
21
+ catalog: Pick<AgentCatalog, 'agentForRole'>;
22
+ now: () => Date;
23
+ log: (line: string) => void;
24
+ }
25
+ export interface PeopleReply {
26
+ status: number;
27
+ body: unknown;
28
+ }
29
+ /** A person as the page draws it: the next date said, and whether its reminders are on. */
30
+ export interface PersonRow extends PersonView {
31
+ next: {
32
+ what: 'birthday' | 'anniversary';
33
+ inDays: number;
34
+ turning: number | null;
35
+ } | null;
36
+ /** Null: no date, so nothing to remind of. */
37
+ reminders: boolean | null;
38
+ }
39
+ export declare function peopleRows(deps: Pick<PeopleDeps, 'pool' | 'now'>): Promise<{
40
+ people: PersonRow[];
41
+ today: string;
42
+ }>;
43
+ export declare function peopleRoute(deps: PeopleDeps, method: string, path: string, body: Record<string, unknown>): Promise<PeopleReply | undefined>;
44
+ //# sourceMappingURL=people.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"people.d.ts","sourceRoot":"","sources":["../../src/web/people.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,EAAyE,KAAK,YAAY,EAAiB,MAAM,aAAa,CAAC;AACtI,OAAO,EAAwE,KAAK,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAC3H,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC;AAG/B,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,IAAI,CAAC;IACX,OAAO,EAAE,IAAI,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC;IAC5C,GAAG,EAAE,MAAM,IAAI,CAAC;IAChB,GAAG,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CAC7B;AAED,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,OAAO,CAAC;CACf;AAED,2FAA2F;AAC3F,MAAM,WAAW,SAAU,SAAQ,UAAU;IAC3C,IAAI,EAAE;QAAE,IAAI,EAAE,UAAU,GAAG,aAAa,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,GAAG,IAAI,CAAC;IAC1F,8CAA8C;IAC9C,SAAS,EAAE,OAAO,GAAG,IAAI,CAAC;CAC3B;AAED,wBAAsB,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,EAAE,MAAM,GAAG,KAAK,CAAC,GAAG,OAAO,CAAC;IAAE,MAAM,EAAE,SAAS,EAAE,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CAwBxH;AAYD,wBAAsB,WAAW,CAAC,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC,CAgDjJ"}
@@ -0,0 +1,114 @@
1
+ /**
2
+ * Settings → Memory → People, and Home's birthday card (docs/memory.md,
3
+ * "People"; docs/dashboard.md, Home).
4
+ *
5
+ * GET /api/memory/people → { people: PersonRow[], today }
6
+ * POST /api/memory/people { id?, name, relationship?, addressAs?, birthday?, anniversary?, notes?, reminders? } → { person, people }
7
+ * POST /api/memory/people/:id/forget → { person, people }
8
+ * POST /api/memory/people/:id/restore → { person, people }
9
+ * GET /api/owner/birthday → BirthdayGlance
10
+ *
11
+ * The owner writes People directly: no proposal, because the owner is the one
12
+ * who decides. Every save brings the date missions in step at once
13
+ * (`syncDateMissions`), so "Remind me of their dates" is the mission's own
14
+ * switch, created off and turned on here.
15
+ */
16
+ import { daysUntil, localDateString, ownerTimezone, setMissionEnabled, turning } from '@buddi/core';
17
+ import { PersonRefusal, forgetPerson, listPeople, restorePerson, upsertPerson } from '@buddi/tool-memory';
18
+ import { birthdayGlance, personMissionId, syncDateMissions } from '../missions/dates.js';
19
+ export async function peopleRows(deps) {
20
+ const today = localDateString(deps.now(), ownerTimezone());
21
+ let people = [];
22
+ try {
23
+ people = await listPeople(deps.pool);
24
+ }
25
+ catch (err) {
26
+ if (err?.code !== '42P01')
27
+ throw err;
28
+ }
29
+ const { rows: missions } = await deps.pool.query(`select id, enabled from core.missions where id like 'person-dates:%'`);
30
+ const enabled = new Map(missions.map((m) => [String(m.id), Boolean(m.enabled)]));
31
+ return {
32
+ today,
33
+ people: people.map((p) => {
34
+ const dates = ['birthday', 'anniversary']
35
+ .filter((what) => p[what] !== null)
36
+ .map((what) => ({ what, date: p[what], inDays: daysUntil(p[what], today) }))
37
+ .sort((a, b) => a.inDays - b.inDays);
38
+ const soonest = dates[0];
39
+ return {
40
+ ...p,
41
+ next: soonest ? { what: soonest.what, inDays: soonest.inDays, turning: turning(soonest.date, today) } : null,
42
+ reminders: dates.length === 0 ? null : (enabled.get(personMissionId(p.id)) ?? false),
43
+ };
44
+ }),
45
+ };
46
+ }
47
+ const dateOf = (value) => {
48
+ if (value === undefined)
49
+ return undefined;
50
+ if (value === null)
51
+ return null;
52
+ if (typeof value !== 'object')
53
+ return null;
54
+ const v = value;
55
+ return { day: Number(v.day), month: Number(v.month), year: v.year === undefined || v.year === null || v.year === '' ? null : Number(v.year) };
56
+ };
57
+ const textOf = (value) => value === undefined ? undefined : value === null ? null : typeof value === 'string' ? value : String(value);
58
+ export async function peopleRoute(deps, method, path, body) {
59
+ if (method === 'GET' && path === '/api/owner/birthday') {
60
+ return { status: 200, body: await birthdayGlance(deps.pool, deps.now()) };
61
+ }
62
+ if (method === 'GET' && path === '/api/memory/people') {
63
+ return { status: 200, body: await peopleRows(deps) };
64
+ }
65
+ if (method !== 'POST')
66
+ return undefined;
67
+ const sync = async () => {
68
+ try {
69
+ await syncDateMissions({ pool: deps.pool, catalog: deps.catalog, now: deps.now, log: deps.log });
70
+ }
71
+ catch (err) {
72
+ deps.log(`dates: ${err instanceof Error ? err.message : String(err)}`);
73
+ }
74
+ };
75
+ if (path === '/api/memory/people') {
76
+ const id = typeof body.id === 'string' && body.id !== '' ? body.id : undefined;
77
+ try {
78
+ const { person } = await upsertPerson(deps.pool, {
79
+ ...(id ? { id } : {}),
80
+ ...(body.name !== undefined ? { name: String(body.name) } : {}),
81
+ ...(textOf(body.relationship) !== undefined ? { relationship: textOf(body.relationship) } : {}),
82
+ ...(textOf(body.addressAs) !== undefined ? { addressAs: textOf(body.addressAs) } : {}),
83
+ ...(textOf(body.notes) !== undefined ? { notes: textOf(body.notes) } : {}),
84
+ ...(dateOf(body.birthday) !== undefined ? { birthday: dateOf(body.birthday) } : {}),
85
+ ...(dateOf(body.anniversary) !== undefined ? { anniversary: dateOf(body.anniversary) } : {}),
86
+ }, { by: 'owner', now: deps.now() });
87
+ await sync();
88
+ // The switch on the sheet is the mission's own: it exists once a date does.
89
+ if (typeof body.reminders === 'boolean' && (person.birthday || person.anniversary)) {
90
+ await setMissionEnabled(deps.pool, personMissionId(person.id), body.reminders);
91
+ }
92
+ const rows = await peopleRows(deps);
93
+ return { status: 200, body: { person: rows.people.find((p) => p.id === person.id) ?? person, people: rows.people } };
94
+ }
95
+ catch (err) {
96
+ if (err instanceof PersonRefusal)
97
+ return { status: 400, body: { error: err.message } };
98
+ if (err?.code === '23505')
99
+ return { status: 409, body: { error: 'Someone with that name is already in People.' } };
100
+ throw err;
101
+ }
102
+ }
103
+ const one = /^\/api\/memory\/people\/([0-9a-f-]{36})\/(forget|restore)$/.exec(path);
104
+ if (one) {
105
+ const person = one[2] === 'forget' ? await forgetPerson(deps.pool, one[1], deps.now()) : await restorePerson(deps.pool, one[1]);
106
+ if (!person)
107
+ return { status: 404, body: { error: one[2] === 'forget' ? 'That person is not in People.' : 'That person cannot come back: someone with the same name is in People now.' } };
108
+ await sync();
109
+ const rows = await peopleRows(deps);
110
+ return { status: 200, body: { person, people: rows.people } };
111
+ }
112
+ return undefined;
113
+ }
114
+ //# sourceMappingURL=people.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"people.js","sourceRoot":"","sources":["../../src/web/people.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import { type ProviderSettings } from '../providers.js';
2
2
  import { type ProviderAccounts } from '../provider-accounts.js';
3
+ import { type OllamaMachine, type OllamaPulls } from '../ollama-local.js';
3
4
  import { type TelegramControl } from './telegram.js';
4
5
  import { type Server } from 'node:http';
5
6
  import type { AgentCatalog, JobControl, CoreToolContext, ToolRegistry } from '@buddi/core';
@@ -24,6 +25,9 @@ export interface WebServerDeps {
24
25
  * (plugins/requires.ts). Made here when absent.
25
26
  */
26
27
  requirements?: Requirements;
28
+ /** The first run's Ollama pull and machine facts, for a test; made here when absent (ollama-local.ts). */
29
+ ollamaPulls?: OllamaPulls;
30
+ ollamaMachine?: () => OllamaMachine;
27
31
  /** The place finder's road, for a test; Open-Meteo through core's guard otherwise. */
28
32
  placesHttp?: HttpArea;
29
33
  /** Host controller; test instances can inject a fake. Reads never enable it. */
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/web/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/web/server.ts"],"names":[],"mappings":"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"}
@@ -46,7 +46,8 @@ import { agentMuteRoute, focusRoute, listNotificationsRoute, markSeenRoute, noti
46
46
  import { catalogSkillLookup, discardProposalFromWeb, keepAllProposalsFromWeb, keepProposalFromWeb, readProposals, registryChangeLookup } from './proposals.js';
47
47
  import { latestDigest, readDigestSchedule, setDigestSchedule } from '../agents/learning-digest.js';
48
48
  import { readAgentSkills, removeLearnedSkillFromWeb } from '../agents/learned-skills.js';
49
- import { createSkillRoute, deleteSkillRoute, editSkillRoute, grantSkillRoute, listSkillsRoute, skillDetailRoute, skillDownload, trustSkillRoute, } from './skills.js';
49
+ import { createSkillRoute, deleteSkillRoute, editSkillRoute, grantSkillRoute, listSkillsRoute, skillDetailRoute, skillDownload, skillFileRoute, skillImage, stagedFileRoute, stagedImage, acceptBundleRoute, trustSkillRoute, } from './skills.js';
50
+ import { discardStaged, incomingDirFor, receiveBundleUpload, stageBundle, uploadLabel } from './skill-bundles.js';
50
51
  import { bindMcpRequests, requestThroughMcp } from '../mcp/requests.js';
51
52
  import { randomUUID, createHmac, createHash } from 'node:crypto';
52
53
  import { StringDecoder } from 'node:string_decoder';
@@ -59,14 +60,15 @@ import { listBrowserProfiles, listInstalledApps } from './apps.js';
59
60
  import { agentSearchPath, EXAMPLES_AGENTS_DIR } from '../agents/catalog.js';
60
61
  import { setDelegatesFromWeb } from './write.js';
61
62
  import { mlxhBaseUrl, probeMlxh } from '../mlxh.js';
62
- import { OnboardingRefusal, WEB_ONBOARDING_STEPS, WEB_ONBOARDING_SURFACE, claimOpeningTurn, createFirstAgent, probeOllama, readOnboarding, rebindBrain, updateFirstAgent, withFirstRunFacts, readFirstAgentPersona } from './onboarding.js';
63
+ import { PullRefusal, createOllamaPulls, ollamaMachine } from '../ollama-local.js';
64
+ import { OnboardingRefusal, WEB_ONBOARDING_STEPS, WEB_ONBOARDING_SURFACE, claimOpeningTurn, createFirstAgent, OLLAMA_BASE_URL, probeOllama, readOnboarding, rebindBrain, updateFirstAgent, withFirstRunFacts, readFirstAgentPersona } from './onboarding.js';
63
65
  import { TakeOnRefusal, readTakeOn, startTakeOn } from './take-on.js';
64
66
  import { TelegramWebError, saveTelegramToken, telegramBot, telegramDevices, telegramPairing, telegramStatus, unpairTelegramDevice, } from './telegram.js';
65
67
  import { PAGE_ROUTE, sendPageFile, actOnPage, actRateLimited, listPageDescriptors, runPageQuery, } from './pages.js';
66
68
  import { listSecrets, secretUses, secretsAct } from './secrets.js';
67
69
  import { sayRoute, transcribeRoute } from './speech.js';
68
70
  import { createServer } from 'node:http';
69
- import { getAction, idleRolloverMs, inRecovery, listMissions, listPendingActions, isJobState, parseAgentFile, setSentinelEnabled, snoozeFinding, snoozeFindings, unmuteFindings } from '@buddi/core';
71
+ import { asksEachTime, getAction, idleRolloverMs, inRecovery, listMissions, listPendingActions, isJobState, parseAgentFile, setSentinelEnabled, snoozeFinding, snoozeFindings, unmuteFindings } from '@buddi/core';
70
72
  import { actOnAlerts, askPrompt, findingsForAsk, muteAlert } from './alerts.js';
71
73
  import { connectionsOf } from '@buddi/tool-mcp';
72
74
  import { CONNECTIONS_CALLBACK_PATH, connectionsRoute } from './connections.js';
@@ -112,7 +114,9 @@ import { tipsRoute } from '../tips/route.js';
112
114
  import { createWidgets, widgetsRoute } from './widgets.js';
113
115
  import { createRequirements } from '../plugins/requires.js';
114
116
  import { placesList, placesRoute } from './places.js';
115
- import { OWNER_DATE_FORMATS, OWNER_TIME_FORMATS } from '@buddi/core';
117
+ import { peopleRoute } from './people.js';
118
+ import { syncDateMissions } from '../missions/dates.js';
119
+ import { OWNER_DATE_FORMATS, OWNER_TIME_FORMATS, validDayMonth } from '@buddi/core';
116
120
  import { readFacts, webSettingsStore } from '../tips/facts.js';
117
121
  import { dismissAgentOffer, isPendingAccept, raiseAgentOffers, readAgentOffers } from './agent-offers.js';
118
122
  import { currentVersion, upgradeJobRoute, upgradeRoute, versionCheckRoute, versionRoute, } from './version.js';
@@ -125,6 +129,8 @@ import { ensureWebToken, verifyTicket } from './token.js';
125
129
  import { MAX_UPLOAD_BYTES, readUpload } from './upload.js';
126
130
  import { LOCKED_BODY, LockUnavailable, allowedWhileLocked, clientOf, createLock } from './lock.js';
127
131
  import { matchApiRoute, TOKEN_REFUSALS } from './api-routes.js';
132
+ import { QUIET_UNAVAILABLE_TEXT, pluginCommands } from './composer.js';
133
+ import { createEngagementHooks } from '../missions/engagement.js';
128
134
  import { apiTokensRoute, bearerOf, verifyApiToken } from './api-tokens.js';
129
135
  import { LockImageRefusal, MAX_LOCK_IMAGE_BYTES, normaliseLockImage } from './lock-image.js';
130
136
  import { cancelJobFromWeb, cancelReminderFromWeb, decideApprovalFromWeb, retryJobFromWeb, retryJobsFromWeb, dismissJobsFromWeb, undismissJobsFromWeb, setMissionEnabledFromWeb, keepMissionFromWeb, answerStillUsefulFromWeb, setPausedFromWeb, setScheduleFromWeb, dismissOfferFromWeb, dismissOffersFromWeb, takeOfferFromWeb, } from './write.js';
@@ -312,6 +318,9 @@ export function createWebApp(deps) {
312
318
  // Plugin readiness and requirements: serve's, or this server's own.
313
319
  const requirements = deps.requirements ??
314
320
  createRequirements({ registry: deps.registry, ctx: deps.ctx, env: deps.env ?? process.env, pool: deps.pool, now: deps.now, log });
321
+ // Ollama on this computer: the first run's pull of a small model, one at a time.
322
+ const ollamaPulls = deps.ollamaPulls ?? createOllamaPulls({ baseUrl: OLLAMA_BASE_URL });
323
+ const machine = deps.ollamaMachine ?? (() => ollamaMachine());
315
324
  // Home's widgets: one cache per server (web/widgets.ts).
316
325
  const widgets = createWidgets({ pool: deps.pool, registry: deps.registry, ctx: deps.ctx, now: deps.now });
317
326
  /*
@@ -430,7 +439,8 @@ export function createWebApp(deps) {
430
439
  */
431
440
  void chat?.recoverPendingInput().catch((err) => log(`web chat: recovering queued input failed: ${err instanceof Error ? err.message : String(err)}`));
432
441
  const streams = new StreamBudget();
433
- const permissionScopes = (tool) => deps.registry.lookup(tool)?.reusableApproval
442
+ // A bundle script's run asks every time: its card offers no standing permission (`asksEachTime`).
443
+ const permissionScopes = (tool, envelope) => deps.registry.lookup(tool)?.reusableApproval && !asksEachTime(envelope)
434
444
  ? { permissionScopes: ['conversation', 'always'] } : {};
435
445
  writeDeps.resumeInteractive = (action, outcome) => chat?.resumeHost(action, outcome);
436
446
  /*
@@ -1158,6 +1168,20 @@ export function createWebApp(deps) {
1158
1168
  return sendEmpty(res, 204);
1159
1169
  return sendJson(res, answer.status, answer.body);
1160
1170
  }
1171
+ // `/quiet` typed into the composer: the verb Telegram and the terminal answer, in their words (missions/engagement.ts).
1172
+ if (path === '/api/quiet' && method === 'POST') {
1173
+ let body;
1174
+ try {
1175
+ body = await readJsonBody(req);
1176
+ }
1177
+ catch {
1178
+ return sendJson(res, 400, { error: 'request body must be JSON' });
1179
+ }
1180
+ const raw = body?.arg;
1181
+ const arg = typeof raw === 'string' ? raw.trim().slice(0, 40) : '';
1182
+ const text = await createEngagementHooks({ pool: deps.pool, now: deps.now, timezone: deps.timezone, unavailableText: QUIET_UNAVAILABLE_TEXT }).quiet(arg);
1183
+ return sendJson(res, 200, { text });
1184
+ }
1161
1185
  // Home's widgets: the gallery, the owner's layout, each placed one's body (web/widgets.ts).
1162
1186
  if (path === '/api/widgets' || path.startsWith('/api/widgets/')) {
1163
1187
  let body = {};
@@ -1493,8 +1517,8 @@ export function createWebApp(deps) {
1493
1517
  }
1494
1518
  case '/api/approvals': {
1495
1519
  const approvals = await readApprovals(deps.pool, now, boundedLimit(q.get('limit'), 50));
1496
- return sendJson(res, 200, { pending: approvals.pending.map(a => ({ ...a, ...permissionScopes(a.tool) })),
1497
- recent: approvals.recent.map(a => ({ ...a, ...permissionScopes(a.tool) })) });
1520
+ return sendJson(res, 200, { pending: approvals.pending.map(a => ({ ...a, ...permissionScopes(a.tool, a.envelope) })),
1521
+ recent: approvals.recent.map(a => ({ ...a, ...permissionScopes(a.tool, a.envelope) })) });
1498
1522
  }
1499
1523
  case '/api/offers':
1500
1524
  // The roster goes in so the read can lapse an offer whose agent is
@@ -1524,7 +1548,8 @@ export function createWebApp(deps) {
1524
1548
  case '/api/sentinels':
1525
1549
  return sendJson(res, 200, await readSentinels(deps.pool, deps.registry, deps.now()));
1526
1550
  case '/api/chat/agents':
1527
- return sendJson(res, 200, readChatAgents(deps.catalog, await avatarVersions(deps.pool)));
1551
+ // With the commands the plugins add to the composer's `/` menu (web/composer.ts).
1552
+ return sendJson(res, 200, { ...readChatAgents(deps.catalog, await avatarVersions(deps.pool)), commands: pluginCommands(deps.registry) });
1528
1553
  // Which agents are waiting on the owner. One small query, and the only
1529
1554
  // definition of "waiting" in the installation — see attention.ts.
1530
1555
  case '/api/chat/attention':
@@ -1681,8 +1706,12 @@ export function createWebApp(deps) {
1681
1706
  const persona = readFirstAgentPersona(onboardingDeps());
1682
1707
  return persona ? sendJson(res, 200, persona) : sendJson(res, 404, { error: 'There is no assistant of your own yet.' });
1683
1708
  }
1709
+ // With what the machine says: installed or not, how to install it, the
1710
+ // model the first run would fetch here, and a fetch already going.
1684
1711
  case '/api/onboarding/ollama':
1685
- return sendJson(res, 200, await probeOllama());
1712
+ return sendJson(res, 200, { ...(await probeOllama()), machine: machine(), pull: ollamaPulls.read() });
1713
+ case '/api/onboarding/ollama/pull':
1714
+ return sendJson(res, 200, { pull: ollamaPulls.read() });
1686
1715
  // Is mlxh running here? The same question, asked the same way, of port 1060.
1687
1716
  case '/api/onboarding/mlxh':
1688
1717
  return sendJson(res, 200, await probeMlxh({ baseUrl: mlxhBaseUrl(deps.env ?? process.env) }));
@@ -1700,6 +1729,12 @@ export function createWebApp(deps) {
1700
1729
  const profile = await getOwnerProfile(deps.pool);
1701
1730
  return sendJson(res, 200, { ...profile, places: await placesList(deps.pool), detectedTimezone: Intl.DateTimeFormat().resolvedOptions().timeZone, zones: knownTimezones() });
1702
1731
  }
1732
+ // Settings → Memory → People, and Home's birthday card (web/people.ts).
1733
+ case '/api/memory/people':
1734
+ case '/api/owner/birthday': {
1735
+ const answered = await peopleRoute({ pool: deps.pool, catalog: deps.catalog, now: deps.now, log }, 'GET', path, {});
1736
+ return sendJson(res, answered.status, answered.body);
1737
+ }
1703
1738
  case '/api/memory': {
1704
1739
  try {
1705
1740
  // `?agent=` narrows it to what that agent sees: the agent sheet's tab.
@@ -1859,6 +1894,30 @@ export function createWebApp(deps) {
1859
1894
  // The Skills page: every skill, grouped, who holds each; one whole; one as its file.
1860
1895
  if (path === '/api/skills')
1861
1896
  return reply(res, listSkillsRoute(skillsDeps()));
1897
+ /*
1898
+ * A bundle's files, for the viewer: one file's text (or its size when
1899
+ * it is not text), and a picture's bytes for an <img>. The same for an
1900
+ * upload still waiting in the preview. A picture is served with a CSP
1901
+ * that runs nothing, so an SVG opened on its own cannot script the page.
1902
+ */
1903
+ const bundleRead = /^\/api\/skills\/(bundles\/)?([^/]+)\/(file|image)$/.exec(path);
1904
+ if (bundleRead) {
1905
+ const id = decodeURIComponent(bundleRead[2]);
1906
+ const rel = url.searchParams.get('path') ?? '';
1907
+ if (bundleRead[3] === 'file') {
1908
+ return reply(res, bundleRead[1] ? stagedFileRoute(skillsDeps(), id, rel) : skillFileRoute(skillsDeps(), id, rel));
1909
+ }
1910
+ const picture = bundleRead[1] ? stagedImage(skillsDeps(), id, rel) : skillImage(skillsDeps(), id, rel);
1911
+ if (!picture)
1912
+ return sendJson(res, 404, { error: `There is no picture "${rel}" in this bundle.` });
1913
+ res.statusCode = 200;
1914
+ res.setHeader('Content-Type', picture.type);
1915
+ res.setHeader('Content-Security-Policy', "default-src 'none'; style-src 'unsafe-inline'; sandbox");
1916
+ res.setHeader('X-Content-Type-Options', 'nosniff');
1917
+ res.setHeader('Cache-Control', 'no-store');
1918
+ res.end(method === 'HEAD' ? undefined : picture.bytes);
1919
+ return;
1920
+ }
1862
1921
  const skillRead = /^\/api\/skills\/([^/]+)(\/download)?$/.exec(path);
1863
1922
  if (skillRead) {
1864
1923
  const id = decodeURIComponent(skillRead[1]);
@@ -1867,6 +1926,14 @@ export function createWebApp(deps) {
1867
1926
  const file = skillDownload(skillsDeps(), id);
1868
1927
  if (!file)
1869
1928
  return sendJson(res, 404, { error: `There is no skill "${id}".` });
1929
+ if ('zip' in file) {
1930
+ res.statusCode = 200;
1931
+ res.setHeader('Content-Type', 'application/zip');
1932
+ res.setHeader('Content-Disposition', `attachment; filename="${file.filename}"`);
1933
+ res.setHeader('Cache-Control', 'no-store');
1934
+ res.end(method === 'HEAD' ? undefined : Buffer.from(file.zip));
1935
+ return;
1936
+ }
1870
1937
  res.statusCode = 200;
1871
1938
  res.setHeader('Content-Type', 'text/markdown; charset=utf-8');
1872
1939
  res.setHeader('Content-Disposition', `attachment; filename="${file.filename}"`);
@@ -1914,7 +1981,7 @@ export function createWebApp(deps) {
1914
1981
  const action = await getAction(deps.pool, decodeURIComponent(approval[1]));
1915
1982
  if (!action)
1916
1983
  return sendJson(res, 404, { error: 'no such action' });
1917
- return sendJson(res, 200, { action: { ...toApprovalView(action), ...permissionScopes(action.tool) } });
1984
+ return sendJson(res, 200, { action: { ...toApprovalView(action), ...permissionScopes(action.tool, action.envelope) } });
1918
1985
  }
1919
1986
  /* ---------------- chat ---------------- */
1920
1987
  const groupConversations = /^\/api\/groups\/([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})\/conversations$/i.exec(path);
@@ -2078,6 +2145,9 @@ export function createWebApp(deps) {
2078
2145
  return sendJson(res, forgotten.status, forgotten.body);
2079
2146
  }
2080
2147
  // Delete a skill: the agents that asked for it stop, the file goes to the trash.
2148
+ const stagedGone = /^\/api\/skills\/bundles\/([^/]+)$/.exec(path);
2149
+ if (stagedGone)
2150
+ return reply(res, discardStaged(incomingDirFor(skillsDeps().skillsDir), decodeURIComponent(stagedGone[1])));
2081
2151
  const skillGone = /^\/api\/skills\/([^/]+)$/.exec(path);
2082
2152
  if (skillGone)
2083
2153
  return reply(res, await deleteSkillRoute(skillsDeps(), decodeURIComponent(skillGone[1])));
@@ -2369,6 +2439,20 @@ export function createWebApp(deps) {
2369
2439
  * staged exactly like a `.tgz` path they could have typed, and the upload
2370
2440
  * is deleted once staging has copied it.
2371
2441
  */
2442
+ /*
2443
+ * A skill bundle (.zip), handed over raw like a plugin tarball: streamed
2444
+ * to a temporary file under a cap, checked, unpacked into staging, and
2445
+ * answered with what is inside. Nothing in it runs, and nothing is kept
2446
+ * until the owner accepts it (`POST /api/skills/bundles/:staged`).
2447
+ */
2448
+ if (path === '/api/skills/bundles') {
2449
+ const incoming = incomingDirFor(skillsDeps().skillsDir);
2450
+ const filename = uploadLabel(first(req.headers['x-filename']));
2451
+ const received = await receiveBundleUpload(incoming, req, filename);
2452
+ if ('status' in received)
2453
+ return reply(res, received);
2454
+ return reply(res, stageBundle(incoming, received.path, filename, deps.now()));
2455
+ }
2372
2456
  if (path === '/api/plugins/upload') {
2373
2457
  const received = await receivePluginUpload(pluginDeps(), req, first(req.headers['x-filename']));
2374
2458
  if ('status' in received)
@@ -3014,6 +3098,20 @@ export function createWebApp(deps) {
3014
3098
  * Chapter 3: what buddi takes on. Records the tiles and starts the By-buddi
3015
3099
  * installs in the background; answers at once with a job per plugin.
3016
3100
  */
3101
+ /*
3102
+ * Fetch a model into the local Ollama, for the first run's "on this
3103
+ * computer". Answers at once; GET the same path for the progress.
3104
+ */
3105
+ if (path === '/api/onboarding/ollama/pull') {
3106
+ try {
3107
+ return sendJson(res, 202, { pull: ollamaPulls.start(typeof body.model === 'string' ? body.model : '') });
3108
+ }
3109
+ catch (error) {
3110
+ if (error instanceof PullRefusal)
3111
+ return sendJson(res, error.status, { error: error.message });
3112
+ throw error;
3113
+ }
3114
+ }
3017
3115
  if (path === '/api/onboarding/take-on') {
3018
3116
  try {
3019
3117
  return sendJson(res, 202, await startTakeOn(takeOnDeps(), body.tiles));
@@ -3193,7 +3291,7 @@ export function createWebApp(deps) {
3193
3291
  */
3194
3292
  if (path === '/api/owner') {
3195
3293
  const patch = {};
3196
- for (const key of ['preferredName', 'timezone', 'language', 'about']) {
3294
+ for (const key of ['preferredName', 'timezone', 'language', 'about', 'fullName', 'pronouns']) {
3197
3295
  const given = body[key];
3198
3296
  if (given === undefined)
3199
3297
  continue;
@@ -3218,8 +3316,27 @@ export function createWebApp(deps) {
3218
3316
  return sendJson(res, 400, { error: 'The name is too long (80 characters at most).' });
3219
3317
  if (patch.about && patch.about.length > 1000)
3220
3318
  return sendJson(res, 400, { error: 'Keep the line about you under 1,000 characters.' });
3319
+ if (patch.fullName && patch.fullName.length > 120)
3320
+ return sendJson(res, 400, { error: 'The full name is too long (120 characters at most).' });
3321
+ if (patch.pronouns && patch.pronouns.length > 40)
3322
+ return sendJson(res, 400, { error: 'Keep the pronouns under 40 characters.' });
3323
+ // The birthday: day and month (the year optional), or null to clear it.
3324
+ if (body.birthday !== undefined) {
3325
+ if (body.birthday === null)
3326
+ patch.birthday = null;
3327
+ else {
3328
+ const birthday = validDayMonth(body.birthday);
3329
+ if (!birthday)
3330
+ return sendJson(res, 400, { error: 'The birthday needs a real day and month; the year is optional.' });
3331
+ patch.birthday = birthday;
3332
+ }
3333
+ }
3221
3334
  // The zone applies at once; schedules kept in the old one move with it.
3222
3335
  const { profile, zoneChange } = await saveOwnerProfile(deps.pool, patch, deps.env ?? process.env);
3336
+ // The birthday greeting follows the new day at once (missions/dates.ts).
3337
+ if (patch.birthday !== undefined) {
3338
+ await syncDateMissions({ pool: deps.pool, catalog: deps.catalog, now: deps.now, log }).catch((err) => log(`dates: ${err instanceof Error ? err.message : String(err)}`));
3339
+ }
3223
3340
  if (zoneChange)
3224
3341
  log(`owner: timezone ${zoneChange.from} → ${zoneChange.to}${zoneChange.missions.length > 0 ? `; moved ${zoneChange.missions.join(', ')}` : ''}`);
3225
3342
  return sendJson(res, 200, { ...profile, places: await placesList(deps.pool), detectedTimezone: Intl.DateTimeFormat().resolvedOptions().timeZone, zones: knownTimezones() });
@@ -3233,6 +3350,12 @@ export function createWebApp(deps) {
3233
3350
  return sendJson(res, answered.status, answered.body);
3234
3351
  }
3235
3352
  }
3353
+ /* People, the owner's side: add, change, forget, bring back (web/people.ts). */
3354
+ if (path.startsWith('/api/memory/people')) {
3355
+ const answered = await peopleRoute({ pool: deps.pool, catalog: deps.catalog, now: deps.now, log }, 'POST', path, body);
3356
+ if (answered)
3357
+ return sendJson(res, answered.status, answered.body);
3358
+ }
3236
3359
  /* Memory, the owner's side: correct a preference, retire one, edit or forget a note. */
3237
3360
  if (path === '/api/memory/preferences') {
3238
3361
  const key = typeof body.key === 'string' ? body.key.trim() : '';
@@ -3424,6 +3547,9 @@ export function createWebApp(deps) {
3424
3547
  /* The Skills page's writes (skills.ts): each checked by reloading the catalog. */
3425
3548
  if (path === '/api/skills')
3426
3549
  return reply(res, createSkillRoute(skillsDeps(), body));
3550
+ const bundleAccept = /^\/api\/skills\/bundles\/([^/]+)$/.exec(path);
3551
+ if (bundleAccept)
3552
+ return reply(res, acceptBundleRoute(skillsDeps(), decodeURIComponent(bundleAccept[1]), body));
3427
3553
  const skillWrite = /^\/api\/skills\/([^/]+)\/(text|grants|trust)$/.exec(path);
3428
3554
  if (skillWrite) {
3429
3555
  const id = decodeURIComponent(skillWrite[1]);