@withbuddi/buddi 0.1.0-pre.43 → 0.1.0-pre.44

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 (479) hide show
  1. package/examples/agents/agent-father/agent.md +12 -5
  2. package/examples/agents/concierge/agent.md +11 -3
  3. package/extension/icons/128.png +0 -0
  4. package/extension/icons/16.png +0 -0
  5. package/extension/icons/32.png +0 -0
  6. package/extension/icons/48.png +0 -0
  7. package/extension/manifest.json +7 -3
  8. package/node_modules/@buddi/cli/dist/.tsbuildinfo +1 -1
  9. package/node_modules/@buddi/cli/dist/access-cmd.d.ts +2 -1
  10. package/node_modules/@buddi/cli/dist/access-cmd.d.ts.map +1 -1
  11. package/node_modules/@buddi/cli/dist/access-cmd.js +40 -7
  12. package/node_modules/@buddi/cli/dist/access-cmd.js.map +1 -1
  13. package/node_modules/@buddi/cli/dist/args.d.ts +2 -1
  14. package/node_modules/@buddi/cli/dist/args.d.ts.map +1 -1
  15. package/node_modules/@buddi/cli/dist/args.js +7 -3
  16. package/node_modules/@buddi/cli/dist/args.js.map +1 -1
  17. package/node_modules/@buddi/cli/dist/commands.d.ts.map +1 -1
  18. package/node_modules/@buddi/cli/dist/commands.js +3 -2
  19. package/node_modules/@buddi/cli/dist/commands.js.map +1 -1
  20. package/node_modules/@buddi/cli/dist/main.js +1 -1
  21. package/node_modules/@buddi/cli/dist/main.js.map +1 -1
  22. package/node_modules/@buddi/cli/dist/mcp/server.js +1 -1
  23. package/node_modules/@buddi/cli/dist/mcp/server.js.map +1 -1
  24. package/node_modules/@buddi/cli/dist/mcp/tools.d.ts.map +1 -1
  25. package/node_modules/@buddi/cli/dist/mcp/tools.js +60 -0
  26. package/node_modules/@buddi/cli/dist/mcp/tools.js.map +1 -1
  27. package/node_modules/@buddi/core/dist/.tsbuildinfo +1 -1
  28. package/node_modules/@buddi/core/dist/lock.d.ts +15 -1
  29. package/node_modules/@buddi/core/dist/lock.d.ts.map +1 -1
  30. package/node_modules/@buddi/core/dist/lock.js +15 -1
  31. package/node_modules/@buddi/core/dist/lock.js.map +1 -1
  32. package/node_modules/@buddi/core/dist/pages.d.ts +75 -0
  33. package/node_modules/@buddi/core/dist/pages.d.ts.map +1 -1
  34. package/node_modules/@buddi/core/dist/pages.js +14 -0
  35. package/node_modules/@buddi/core/dist/pages.js.map +1 -1
  36. package/node_modules/@buddi/core/dist/plugin/index.d.ts +2 -2
  37. package/node_modules/@buddi/core/dist/plugin/index.d.ts.map +1 -1
  38. package/node_modules/@buddi/core/dist/plugin/index.js.map +1 -1
  39. package/node_modules/@buddi/core/dist/plugin/version.d.ts +1 -1
  40. package/node_modules/@buddi/core/dist/plugin/version.js +1 -1
  41. package/node_modules/@buddi/core/dist/provider-accounts.d.ts +32 -0
  42. package/node_modules/@buddi/core/dist/provider-accounts.d.ts.map +1 -1
  43. package/node_modules/@buddi/core/dist/provider-accounts.js +22 -0
  44. package/node_modules/@buddi/core/dist/provider-accounts.js.map +1 -1
  45. package/node_modules/@buddi/core/migrations/077_lock_background_portrait.sql +5 -0
  46. package/node_modules/@buddi/gateway/dist/.tsbuildinfo +1 -1
  47. package/node_modules/@buddi/gateway/dist/agents/owner-tools.d.ts +21 -8
  48. package/node_modules/@buddi/gateway/dist/agents/owner-tools.d.ts.map +1 -1
  49. package/node_modules/@buddi/gateway/dist/agents/owner-tools.js +201 -36
  50. package/node_modules/@buddi/gateway/dist/agents/owner-tools.js.map +1 -1
  51. package/node_modules/@buddi/gateway/dist/evals/golden.d.ts +5 -0
  52. package/node_modules/@buddi/gateway/dist/evals/golden.d.ts.map +1 -1
  53. package/node_modules/@buddi/gateway/dist/evals/golden.js +48 -0
  54. package/node_modules/@buddi/gateway/dist/evals/golden.js.map +1 -1
  55. package/node_modules/@buddi/gateway/dist/mcp/requests.d.ts +8 -2
  56. package/node_modules/@buddi/gateway/dist/mcp/requests.d.ts.map +1 -1
  57. package/node_modules/@buddi/gateway/dist/mcp/requests.js +74 -1
  58. package/node_modules/@buddi/gateway/dist/mcp/requests.js.map +1 -1
  59. package/node_modules/@buddi/gateway/dist/owner-profile-edit.d.ts +160 -0
  60. package/node_modules/@buddi/gateway/dist/owner-profile-edit.d.ts.map +1 -0
  61. package/node_modules/@buddi/gateway/dist/owner-profile-edit.js +296 -0
  62. package/node_modules/@buddi/gateway/dist/owner-profile-edit.js.map +1 -0
  63. package/node_modules/@buddi/gateway/dist/provider-accounts.d.ts.map +1 -1
  64. package/node_modules/@buddi/gateway/dist/provider-accounts.js +2 -1
  65. package/node_modules/@buddi/gateway/dist/provider-accounts.js.map +1 -1
  66. package/node_modules/@buddi/gateway/dist/web/access/cloudflare-connector.d.ts +63 -0
  67. package/node_modules/@buddi/gateway/dist/web/access/cloudflare-connector.d.ts.map +1 -0
  68. package/node_modules/@buddi/gateway/dist/web/access/cloudflare-connector.js +87 -0
  69. package/node_modules/@buddi/gateway/dist/web/access/cloudflare-connector.js.map +1 -0
  70. package/node_modules/@buddi/gateway/dist/web/access/cloudflare-setup.d.ts +39 -4
  71. package/node_modules/@buddi/gateway/dist/web/access/cloudflare-setup.d.ts.map +1 -1
  72. package/node_modules/@buddi/gateway/dist/web/access/cloudflare-setup.js +99 -11
  73. package/node_modules/@buddi/gateway/dist/web/access/cloudflare-setup.js.map +1 -1
  74. package/node_modules/@buddi/gateway/dist/web/access/cloudflare-token.js +1 -1
  75. package/node_modules/@buddi/gateway/dist/web/access/cloudflare-token.js.map +1 -1
  76. package/node_modules/@buddi/gateway/dist/web/access/index.d.ts +1 -0
  77. package/node_modules/@buddi/gateway/dist/web/access/index.d.ts.map +1 -1
  78. package/node_modules/@buddi/gateway/dist/web/access/index.js +1 -0
  79. package/node_modules/@buddi/gateway/dist/web/access/index.js.map +1 -1
  80. package/node_modules/@buddi/gateway/dist/web/api-routes.d.ts.map +1 -1
  81. package/node_modules/@buddi/gateway/dist/web/api-routes.js +18 -2
  82. package/node_modules/@buddi/gateway/dist/web/api-routes.js.map +1 -1
  83. package/node_modules/@buddi/gateway/dist/web/lock-backgrounds.d.ts +9 -0
  84. package/node_modules/@buddi/gateway/dist/web/lock-backgrounds.d.ts.map +1 -0
  85. package/node_modules/@buddi/gateway/dist/web/lock-backgrounds.js +60 -0
  86. package/node_modules/@buddi/gateway/dist/web/lock-backgrounds.js.map +1 -0
  87. package/node_modules/@buddi/gateway/dist/web/lock.d.ts +13 -1
  88. package/node_modules/@buddi/gateway/dist/web/lock.d.ts.map +1 -1
  89. package/node_modules/@buddi/gateway/dist/web/lock.js +84 -23
  90. package/node_modules/@buddi/gateway/dist/web/lock.js.map +1 -1
  91. package/node_modules/@buddi/gateway/dist/web/places.d.ts +5 -0
  92. package/node_modules/@buddi/gateway/dist/web/places.d.ts.map +1 -1
  93. package/node_modules/@buddi/gateway/dist/web/places.js +11 -4
  94. package/node_modules/@buddi/gateway/dist/web/places.js.map +1 -1
  95. package/node_modules/@buddi/gateway/dist/web/server.d.ts +3 -0
  96. package/node_modules/@buddi/gateway/dist/web/server.d.ts.map +1 -1
  97. package/node_modules/@buddi/gateway/dist/web/server.js +33 -45
  98. package/node_modules/@buddi/gateway/dist/web/server.js.map +1 -1
  99. package/node_modules/@buddi/install/dist/.tsbuildinfo +1 -1
  100. package/node_modules/@buddi/install/dist/cloudflared.d.ts +121 -0
  101. package/node_modules/@buddi/install/dist/cloudflared.d.ts.map +1 -0
  102. package/node_modules/@buddi/install/dist/cloudflared.js +451 -0
  103. package/node_modules/@buddi/install/dist/cloudflared.js.map +1 -0
  104. package/node_modules/@buddi/install/dist/index.d.ts +1 -0
  105. package/node_modules/@buddi/install/dist/index.d.ts.map +1 -1
  106. package/node_modules/@buddi/install/dist/index.js +1 -0
  107. package/node_modules/@buddi/install/dist/index.js.map +1 -1
  108. package/node_modules/@buddi/install/dist/supervisor.d.ts +6 -1
  109. package/node_modules/@buddi/install/dist/supervisor.d.ts.map +1 -1
  110. package/node_modules/@buddi/install/dist/supervisor.js +51 -5
  111. package/node_modules/@buddi/install/dist/supervisor.js.map +1 -1
  112. package/node_modules/@buddi/runtime/dist/.tsbuildinfo +1 -1
  113. package/node_modules/@buddi/tool-artifacts/dist/.tsbuildinfo +1 -1
  114. package/node_modules/@buddi/tool-browser/dist/.tsbuildinfo +1 -1
  115. package/node_modules/@buddi/tool-email/dist/.tsbuildinfo +1 -1
  116. package/node_modules/@buddi/tool-email/dist/html.d.ts +16 -0
  117. package/node_modules/@buddi/tool-email/dist/html.d.ts.map +1 -0
  118. package/node_modules/@buddi/tool-email/dist/html.js +273 -0
  119. package/node_modules/@buddi/tool-email/dist/html.js.map +1 -0
  120. package/node_modules/@buddi/tool-email/dist/imap/imapflow-client.d.ts +7 -0
  121. package/node_modules/@buddi/tool-email/dist/imap/imapflow-client.d.ts.map +1 -1
  122. package/node_modules/@buddi/tool-email/dist/imap/imapflow-client.js +53 -0
  123. package/node_modules/@buddi/tool-email/dist/imap/imapflow-client.js.map +1 -1
  124. package/node_modules/@buddi/tool-email/dist/mail.d.ts.map +1 -1
  125. package/node_modules/@buddi/tool-email/dist/mail.js +4 -0
  126. package/node_modules/@buddi/tool-email/dist/mail.js.map +1 -1
  127. package/node_modules/@buddi/tool-email/dist/pages/descriptors.d.ts.map +1 -1
  128. package/node_modules/@buddi/tool-email/dist/pages/descriptors.js +208 -176
  129. package/node_modules/@buddi/tool-email/dist/pages/descriptors.js.map +1 -1
  130. package/node_modules/@buddi/tool-email/dist/pages/index.d.ts +1 -0
  131. package/node_modules/@buddi/tool-email/dist/pages/index.d.ts.map +1 -1
  132. package/node_modules/@buddi/tool-email/dist/pages/index.js +3 -0
  133. package/node_modules/@buddi/tool-email/dist/pages/index.js.map +1 -1
  134. package/node_modules/@buddi/tool-email/dist/pages/queries.d.ts +14 -1
  135. package/node_modules/@buddi/tool-email/dist/pages/queries.d.ts.map +1 -1
  136. package/node_modules/@buddi/tool-email/dist/pages/queries.js +267 -58
  137. package/node_modules/@buddi/tool-email/dist/pages/queries.js.map +1 -1
  138. package/node_modules/@buddi/tool-email/dist/pages/thread-tools.d.ts +25 -0
  139. package/node_modules/@buddi/tool-email/dist/pages/thread-tools.d.ts.map +1 -0
  140. package/node_modules/@buddi/tool-email/dist/pages/thread-tools.js +33 -0
  141. package/node_modules/@buddi/tool-email/dist/pages/thread-tools.js.map +1 -0
  142. package/node_modules/@buddi/tool-email/dist/ports.d.ts +10 -0
  143. package/node_modules/@buddi/tool-email/dist/ports.d.ts.map +1 -1
  144. package/node_modules/@buddi/tool-email/dist/ports.js.map +1 -1
  145. package/node_modules/@buddi/tool-email/dist/retention.d.ts.map +1 -1
  146. package/node_modules/@buddi/tool-email/dist/retention.js +1 -0
  147. package/node_modules/@buddi/tool-email/dist/retention.js.map +1 -1
  148. package/node_modules/@buddi/tool-email/dist/sources/inbox-poll.d.ts.map +1 -1
  149. package/node_modules/@buddi/tool-email/dist/sources/inbox-poll.js +4 -2
  150. package/node_modules/@buddi/tool-email/dist/sources/inbox-poll.js.map +1 -1
  151. package/node_modules/@buddi/tool-email/migrations/028_reading.sql +20 -0
  152. package/node_modules/@buddi/tool-email/package.json +1 -0
  153. package/node_modules/@buddi/tool-host/dist/.tsbuildinfo +1 -1
  154. package/node_modules/@buddi/tool-mcp/dist/.tsbuildinfo +1 -1
  155. package/node_modules/@buddi/tool-memory/dist/.tsbuildinfo +1 -1
  156. package/node_modules/@buddi/tool-web/dist/.tsbuildinfo +1 -1
  157. package/node_modules/entities/LICENSE +11 -0
  158. package/node_modules/entities/decode.d.ts +1 -0
  159. package/node_modules/entities/decode.js +3 -0
  160. package/node_modules/entities/dist/commonjs/decode-codepoint.d.ts +19 -0
  161. package/node_modules/entities/dist/commonjs/decode-codepoint.d.ts.map +1 -0
  162. package/node_modules/entities/dist/commonjs/decode-codepoint.js +77 -0
  163. package/node_modules/entities/dist/commonjs/decode-codepoint.js.map +1 -0
  164. package/node_modules/entities/dist/commonjs/decode.d.ts +209 -0
  165. package/node_modules/entities/dist/commonjs/decode.d.ts.map +1 -0
  166. package/node_modules/entities/dist/commonjs/decode.js +511 -0
  167. package/node_modules/entities/dist/commonjs/decode.js.map +1 -0
  168. package/node_modules/entities/dist/commonjs/encode.d.ts +22 -0
  169. package/node_modules/entities/dist/commonjs/encode.d.ts.map +1 -0
  170. package/node_modules/entities/dist/commonjs/encode.js +73 -0
  171. package/node_modules/entities/dist/commonjs/encode.js.map +1 -0
  172. package/node_modules/entities/dist/commonjs/escape.d.ts +43 -0
  173. package/node_modules/entities/dist/commonjs/escape.d.ts.map +1 -0
  174. package/node_modules/entities/dist/commonjs/escape.js +121 -0
  175. package/node_modules/entities/dist/commonjs/escape.js.map +1 -0
  176. package/node_modules/entities/dist/commonjs/generated/decode-data-html.d.ts +2 -0
  177. package/node_modules/entities/dist/commonjs/generated/decode-data-html.d.ts.map +1 -0
  178. package/node_modules/entities/dist/commonjs/generated/decode-data-html.js +10 -0
  179. package/node_modules/entities/dist/commonjs/generated/decode-data-html.js.map +1 -0
  180. package/node_modules/entities/dist/commonjs/generated/decode-data-xml.d.ts +2 -0
  181. package/node_modules/entities/dist/commonjs/generated/decode-data-xml.d.ts.map +1 -0
  182. package/node_modules/entities/dist/commonjs/generated/decode-data-xml.js +10 -0
  183. package/node_modules/entities/dist/commonjs/generated/decode-data-xml.js.map +1 -0
  184. package/node_modules/entities/dist/commonjs/generated/encode-html.d.ts +8 -0
  185. package/node_modules/entities/dist/commonjs/generated/encode-html.d.ts.map +1 -0
  186. package/node_modules/entities/dist/commonjs/generated/encode-html.js +13 -0
  187. package/node_modules/entities/dist/commonjs/generated/encode-html.js.map +1 -0
  188. package/node_modules/entities/dist/commonjs/index.d.ts +96 -0
  189. package/node_modules/entities/dist/commonjs/index.d.ts.map +1 -0
  190. package/node_modules/entities/dist/commonjs/index.js +131 -0
  191. package/node_modules/entities/dist/commonjs/index.js.map +1 -0
  192. package/node_modules/entities/dist/commonjs/package.json +3 -0
  193. package/node_modules/entities/dist/esm/decode-codepoint.d.ts +19 -0
  194. package/node_modules/entities/dist/esm/decode-codepoint.d.ts.map +1 -0
  195. package/node_modules/entities/dist/esm/decode-codepoint.js +72 -0
  196. package/node_modules/entities/dist/esm/decode-codepoint.js.map +1 -0
  197. package/node_modules/entities/dist/esm/decode.d.ts +209 -0
  198. package/node_modules/entities/dist/esm/decode.d.ts.map +1 -0
  199. package/node_modules/entities/dist/esm/decode.js +497 -0
  200. package/node_modules/entities/dist/esm/decode.js.map +1 -0
  201. package/node_modules/entities/dist/esm/encode.d.ts +22 -0
  202. package/node_modules/entities/dist/esm/encode.d.ts.map +1 -0
  203. package/node_modules/entities/dist/esm/encode.js +69 -0
  204. package/node_modules/entities/dist/esm/encode.js.map +1 -0
  205. package/node_modules/entities/dist/esm/escape.d.ts +43 -0
  206. package/node_modules/entities/dist/esm/escape.d.ts.map +1 -0
  207. package/node_modules/entities/dist/esm/escape.js +117 -0
  208. package/node_modules/entities/dist/esm/escape.js.map +1 -0
  209. package/node_modules/entities/dist/esm/generated/decode-data-html.d.ts +2 -0
  210. package/node_modules/entities/dist/esm/generated/decode-data-html.d.ts.map +1 -0
  211. package/node_modules/entities/dist/esm/generated/decode-data-html.js +7 -0
  212. package/node_modules/entities/dist/esm/generated/decode-data-html.js.map +1 -0
  213. package/node_modules/entities/dist/esm/generated/decode-data-xml.d.ts +2 -0
  214. package/node_modules/entities/dist/esm/generated/decode-data-xml.d.ts.map +1 -0
  215. package/node_modules/entities/dist/esm/generated/decode-data-xml.js +7 -0
  216. package/node_modules/entities/dist/esm/generated/decode-data-xml.js.map +1 -0
  217. package/node_modules/entities/dist/esm/generated/encode-html.d.ts +8 -0
  218. package/node_modules/entities/dist/esm/generated/encode-html.d.ts.map +1 -0
  219. package/node_modules/entities/dist/esm/generated/encode-html.js +10 -0
  220. package/node_modules/entities/dist/esm/generated/encode-html.js.map +1 -0
  221. package/node_modules/entities/dist/esm/index.d.ts +96 -0
  222. package/node_modules/entities/dist/esm/index.d.ts.map +1 -0
  223. package/node_modules/entities/dist/esm/index.js +107 -0
  224. package/node_modules/entities/dist/esm/index.js.map +1 -0
  225. package/node_modules/entities/dist/esm/package.json +3 -0
  226. package/node_modules/entities/escape.d.ts +1 -0
  227. package/node_modules/entities/escape.js +3 -0
  228. package/node_modules/entities/package.json +118 -0
  229. package/node_modules/entities/readme.md +122 -0
  230. package/node_modules/entities/src/decode-codepoint.ts +81 -0
  231. package/node_modules/entities/src/decode.spec.ts +320 -0
  232. package/node_modules/entities/src/decode.ts +620 -0
  233. package/node_modules/entities/src/encode.spec.ts +78 -0
  234. package/node_modules/entities/src/encode.ts +77 -0
  235. package/node_modules/entities/src/escape.spec.ts +14 -0
  236. package/node_modules/entities/src/escape.ts +148 -0
  237. package/node_modules/entities/src/generated/.eslintrc.json +10 -0
  238. package/node_modules/entities/src/generated/decode-data-html.ts +8 -0
  239. package/node_modules/entities/src/generated/decode-data-xml.ts +8 -0
  240. package/node_modules/entities/src/generated/encode-html.ts +17 -0
  241. package/node_modules/entities/src/index.spec.ts +125 -0
  242. package/node_modules/entities/src/index.ts +188 -0
  243. package/node_modules/parse5/LICENSE +19 -0
  244. package/node_modules/parse5/README.md +38 -0
  245. package/node_modules/parse5/dist/cjs/common/doctype.d.ts +4 -0
  246. package/node_modules/parse5/dist/cjs/common/doctype.js +118 -0
  247. package/node_modules/parse5/dist/cjs/common/error-codes.d.ts +67 -0
  248. package/node_modules/parse5/dist/cjs/common/error-codes.js +66 -0
  249. package/node_modules/parse5/dist/cjs/common/foreign-content.d.ts +9 -0
  250. package/node_modules/parse5/dist/cjs/common/foreign-content.js +237 -0
  251. package/node_modules/parse5/dist/cjs/common/html.d.ts +289 -0
  252. package/node_modules/parse5/dist/cjs/common/html.js +528 -0
  253. package/node_modules/parse5/dist/cjs/common/token.d.ts +84 -0
  254. package/node_modules/parse5/dist/cjs/common/token.js +24 -0
  255. package/node_modules/parse5/dist/cjs/common/unicode.d.ts +42 -0
  256. package/node_modules/parse5/dist/cjs/common/unicode.js +70 -0
  257. package/node_modules/parse5/dist/cjs/index.d.ts +71 -0
  258. package/node_modules/parse5/dist/cjs/index.js +54 -0
  259. package/node_modules/parse5/dist/cjs/package.json +1 -0
  260. package/node_modules/parse5/dist/cjs/parser/formatting-element-list.d.ts +36 -0
  261. package/node_modules/parse5/dist/cjs/parser/formatting-element-list.js +114 -0
  262. package/node_modules/parse5/dist/cjs/parser/index.d.ts +221 -0
  263. package/node_modules/parse5/dist/cjs/parser/index.js +3240 -0
  264. package/node_modules/parse5/dist/cjs/parser/open-element-stack.d.ts +53 -0
  265. package/node_modules/parse5/dist/cjs/parser/open-element-stack.js +328 -0
  266. package/node_modules/parse5/dist/cjs/serializer/index.d.ts +60 -0
  267. package/node_modules/parse5/dist/cjs/serializer/index.js +172 -0
  268. package/node_modules/parse5/dist/cjs/tokenizer/index.d.ts +247 -0
  269. package/node_modules/parse5/dist/cjs/tokenizer/index.js +2714 -0
  270. package/node_modules/parse5/dist/cjs/tokenizer/preprocessor.d.ts +36 -0
  271. package/node_modules/parse5/dist/cjs/tokenizer/preprocessor.js +200 -0
  272. package/node_modules/parse5/dist/cjs/tree-adapters/default.d.ts +84 -0
  273. package/node_modules/parse5/dist/cjs/tree-adapters/default.js +176 -0
  274. package/node_modules/parse5/dist/cjs/tree-adapters/interface.d.ts +255 -0
  275. package/node_modules/parse5/dist/cjs/tree-adapters/interface.js +2 -0
  276. package/node_modules/parse5/dist/common/doctype.d.ts +4 -0
  277. package/node_modules/parse5/dist/common/doctype.js +114 -0
  278. package/node_modules/parse5/dist/common/error-codes.d.ts +67 -0
  279. package/node_modules/parse5/dist/common/error-codes.js +63 -0
  280. package/node_modules/parse5/dist/common/foreign-content.d.ts +9 -0
  281. package/node_modules/parse5/dist/common/foreign-content.js +228 -0
  282. package/node_modules/parse5/dist/common/html.d.ts +289 -0
  283. package/node_modules/parse5/dist/common/html.js +523 -0
  284. package/node_modules/parse5/dist/common/token.d.ts +84 -0
  285. package/node_modules/parse5/dist/common/token.js +20 -0
  286. package/node_modules/parse5/dist/common/unicode.d.ts +42 -0
  287. package/node_modules/parse5/dist/common/unicode.js +62 -0
  288. package/node_modules/parse5/dist/index.d.ts +71 -0
  289. package/node_modules/parse5/dist/index.js +42 -0
  290. package/node_modules/parse5/dist/parser/formatting-element-list.d.ts +36 -0
  291. package/node_modules/parse5/dist/parser/formatting-element-list.js +110 -0
  292. package/node_modules/parse5/dist/parser/index.d.ts +221 -0
  293. package/node_modules/parse5/dist/parser/index.js +3245 -0
  294. package/node_modules/parse5/dist/parser/open-element-stack.d.ts +53 -0
  295. package/node_modules/parse5/dist/parser/open-element-stack.js +324 -0
  296. package/node_modules/parse5/dist/serializer/index.d.ts +60 -0
  297. package/node_modules/parse5/dist/serializer/index.js +168 -0
  298. package/node_modules/parse5/dist/tokenizer/index.d.ts +247 -0
  299. package/node_modules/parse5/dist/tokenizer/index.js +2710 -0
  300. package/node_modules/parse5/dist/tokenizer/preprocessor.d.ts +36 -0
  301. package/node_modules/parse5/dist/tokenizer/preprocessor.js +196 -0
  302. package/node_modules/parse5/dist/tree-adapters/default.d.ts +84 -0
  303. package/node_modules/parse5/dist/tree-adapters/default.js +173 -0
  304. package/node_modules/parse5/dist/tree-adapters/interface.d.ts +255 -0
  305. package/node_modules/parse5/dist/tree-adapters/interface.js +1 -0
  306. package/node_modules/parse5/package.json +50 -0
  307. package/package.json +2 -2
  308. package/packages/cli/dist/.tsbuildinfo +1 -1
  309. package/packages/cli/dist/access-cmd.d.ts +2 -1
  310. package/packages/cli/dist/access-cmd.d.ts.map +1 -1
  311. package/packages/cli/dist/access-cmd.js +40 -7
  312. package/packages/cli/dist/access-cmd.js.map +1 -1
  313. package/packages/cli/dist/args.d.ts +2 -1
  314. package/packages/cli/dist/args.d.ts.map +1 -1
  315. package/packages/cli/dist/args.js +7 -3
  316. package/packages/cli/dist/args.js.map +1 -1
  317. package/packages/cli/dist/commands.d.ts.map +1 -1
  318. package/packages/cli/dist/commands.js +3 -2
  319. package/packages/cli/dist/commands.js.map +1 -1
  320. package/packages/cli/dist/main.js +1 -1
  321. package/packages/cli/dist/main.js.map +1 -1
  322. package/packages/cli/dist/mcp/server.js +1 -1
  323. package/packages/cli/dist/mcp/server.js.map +1 -1
  324. package/packages/cli/dist/mcp/tools.d.ts.map +1 -1
  325. package/packages/cli/dist/mcp/tools.js +60 -0
  326. package/packages/cli/dist/mcp/tools.js.map +1 -1
  327. package/packages/core/dist/.tsbuildinfo +1 -1
  328. package/packages/core/dist/lock.d.ts +15 -1
  329. package/packages/core/dist/lock.d.ts.map +1 -1
  330. package/packages/core/dist/lock.js +15 -1
  331. package/packages/core/dist/lock.js.map +1 -1
  332. package/packages/core/dist/pages.d.ts +75 -0
  333. package/packages/core/dist/pages.d.ts.map +1 -1
  334. package/packages/core/dist/pages.js +14 -0
  335. package/packages/core/dist/pages.js.map +1 -1
  336. package/packages/core/dist/plugin/index.d.ts +2 -2
  337. package/packages/core/dist/plugin/index.d.ts.map +1 -1
  338. package/packages/core/dist/plugin/index.js.map +1 -1
  339. package/packages/core/dist/plugin/version.d.ts +1 -1
  340. package/packages/core/dist/plugin/version.js +1 -1
  341. package/packages/core/dist/provider-accounts.d.ts +32 -0
  342. package/packages/core/dist/provider-accounts.d.ts.map +1 -1
  343. package/packages/core/dist/provider-accounts.js +22 -0
  344. package/packages/core/dist/provider-accounts.js.map +1 -1
  345. package/packages/core/migrations/077_lock_background_portrait.sql +5 -0
  346. package/packages/gateway/dist/.tsbuildinfo +1 -1
  347. package/packages/gateway/dist/agents/owner-tools.d.ts +21 -8
  348. package/packages/gateway/dist/agents/owner-tools.d.ts.map +1 -1
  349. package/packages/gateway/dist/agents/owner-tools.js +201 -36
  350. package/packages/gateway/dist/agents/owner-tools.js.map +1 -1
  351. package/packages/gateway/dist/evals/golden.d.ts +5 -0
  352. package/packages/gateway/dist/evals/golden.d.ts.map +1 -1
  353. package/packages/gateway/dist/evals/golden.js +48 -0
  354. package/packages/gateway/dist/evals/golden.js.map +1 -1
  355. package/packages/gateway/dist/mcp/requests.d.ts +8 -2
  356. package/packages/gateway/dist/mcp/requests.d.ts.map +1 -1
  357. package/packages/gateway/dist/mcp/requests.js +74 -1
  358. package/packages/gateway/dist/mcp/requests.js.map +1 -1
  359. package/packages/gateway/dist/owner-profile-edit.d.ts +160 -0
  360. package/packages/gateway/dist/owner-profile-edit.d.ts.map +1 -0
  361. package/packages/gateway/dist/owner-profile-edit.js +296 -0
  362. package/packages/gateway/dist/owner-profile-edit.js.map +1 -0
  363. package/packages/gateway/dist/provider-accounts.d.ts.map +1 -1
  364. package/packages/gateway/dist/provider-accounts.js +2 -1
  365. package/packages/gateway/dist/provider-accounts.js.map +1 -1
  366. package/packages/gateway/dist/web/access/cloudflare-connector.d.ts +63 -0
  367. package/packages/gateway/dist/web/access/cloudflare-connector.d.ts.map +1 -0
  368. package/packages/gateway/dist/web/access/cloudflare-connector.js +87 -0
  369. package/packages/gateway/dist/web/access/cloudflare-connector.js.map +1 -0
  370. package/packages/gateway/dist/web/access/cloudflare-setup.d.ts +39 -4
  371. package/packages/gateway/dist/web/access/cloudflare-setup.d.ts.map +1 -1
  372. package/packages/gateway/dist/web/access/cloudflare-setup.js +99 -11
  373. package/packages/gateway/dist/web/access/cloudflare-setup.js.map +1 -1
  374. package/packages/gateway/dist/web/access/cloudflare-token.js +1 -1
  375. package/packages/gateway/dist/web/access/cloudflare-token.js.map +1 -1
  376. package/packages/gateway/dist/web/access/index.d.ts +1 -0
  377. package/packages/gateway/dist/web/access/index.d.ts.map +1 -1
  378. package/packages/gateway/dist/web/access/index.js +1 -0
  379. package/packages/gateway/dist/web/access/index.js.map +1 -1
  380. package/packages/gateway/dist/web/api-routes.d.ts.map +1 -1
  381. package/packages/gateway/dist/web/api-routes.js +18 -2
  382. package/packages/gateway/dist/web/api-routes.js.map +1 -1
  383. package/packages/gateway/dist/web/lock-backgrounds.d.ts +9 -0
  384. package/packages/gateway/dist/web/lock-backgrounds.d.ts.map +1 -0
  385. package/packages/gateway/dist/web/lock-backgrounds.js +60 -0
  386. package/packages/gateway/dist/web/lock-backgrounds.js.map +1 -0
  387. package/packages/gateway/dist/web/lock.d.ts +13 -1
  388. package/packages/gateway/dist/web/lock.d.ts.map +1 -1
  389. package/packages/gateway/dist/web/lock.js +84 -23
  390. package/packages/gateway/dist/web/lock.js.map +1 -1
  391. package/packages/gateway/dist/web/places.d.ts +5 -0
  392. package/packages/gateway/dist/web/places.d.ts.map +1 -1
  393. package/packages/gateway/dist/web/places.js +11 -4
  394. package/packages/gateway/dist/web/places.js.map +1 -1
  395. package/packages/gateway/dist/web/server.d.ts +3 -0
  396. package/packages/gateway/dist/web/server.d.ts.map +1 -1
  397. package/packages/gateway/dist/web/server.js +33 -45
  398. package/packages/gateway/dist/web/server.js.map +1 -1
  399. package/packages/install/dist/.tsbuildinfo +1 -1
  400. package/packages/install/dist/cloudflared.d.ts +121 -0
  401. package/packages/install/dist/cloudflared.d.ts.map +1 -0
  402. package/packages/install/dist/cloudflared.js +451 -0
  403. package/packages/install/dist/cloudflared.js.map +1 -0
  404. package/packages/install/dist/index.d.ts +1 -0
  405. package/packages/install/dist/index.d.ts.map +1 -1
  406. package/packages/install/dist/index.js +1 -0
  407. package/packages/install/dist/index.js.map +1 -1
  408. package/packages/install/dist/supervisor.d.ts +6 -1
  409. package/packages/install/dist/supervisor.d.ts.map +1 -1
  410. package/packages/install/dist/supervisor.js +51 -5
  411. package/packages/install/dist/supervisor.js.map +1 -1
  412. package/packages/runtime/dist/.tsbuildinfo +1 -1
  413. package/packages/tools/artifacts/dist/.tsbuildinfo +1 -1
  414. package/packages/tools/browser/dist/.tsbuildinfo +1 -1
  415. package/packages/tools/email/dist/.tsbuildinfo +1 -1
  416. package/packages/tools/email/dist/html.d.ts +16 -0
  417. package/packages/tools/email/dist/html.d.ts.map +1 -0
  418. package/packages/tools/email/dist/html.js +273 -0
  419. package/packages/tools/email/dist/html.js.map +1 -0
  420. package/packages/tools/email/dist/imap/imapflow-client.d.ts +7 -0
  421. package/packages/tools/email/dist/imap/imapflow-client.d.ts.map +1 -1
  422. package/packages/tools/email/dist/imap/imapflow-client.js +53 -0
  423. package/packages/tools/email/dist/imap/imapflow-client.js.map +1 -1
  424. package/packages/tools/email/dist/mail.d.ts.map +1 -1
  425. package/packages/tools/email/dist/mail.js +4 -0
  426. package/packages/tools/email/dist/mail.js.map +1 -1
  427. package/packages/tools/email/dist/pages/descriptors.d.ts.map +1 -1
  428. package/packages/tools/email/dist/pages/descriptors.js +208 -176
  429. package/packages/tools/email/dist/pages/descriptors.js.map +1 -1
  430. package/packages/tools/email/dist/pages/index.d.ts +1 -0
  431. package/packages/tools/email/dist/pages/index.d.ts.map +1 -1
  432. package/packages/tools/email/dist/pages/index.js +3 -0
  433. package/packages/tools/email/dist/pages/index.js.map +1 -1
  434. package/packages/tools/email/dist/pages/queries.d.ts +14 -1
  435. package/packages/tools/email/dist/pages/queries.d.ts.map +1 -1
  436. package/packages/tools/email/dist/pages/queries.js +267 -58
  437. package/packages/tools/email/dist/pages/queries.js.map +1 -1
  438. package/packages/tools/email/dist/pages/thread-tools.d.ts +25 -0
  439. package/packages/tools/email/dist/pages/thread-tools.d.ts.map +1 -0
  440. package/packages/tools/email/dist/pages/thread-tools.js +33 -0
  441. package/packages/tools/email/dist/pages/thread-tools.js.map +1 -0
  442. package/packages/tools/email/dist/ports.d.ts +10 -0
  443. package/packages/tools/email/dist/ports.d.ts.map +1 -1
  444. package/packages/tools/email/dist/ports.js.map +1 -1
  445. package/packages/tools/email/dist/retention.d.ts.map +1 -1
  446. package/packages/tools/email/dist/retention.js +1 -0
  447. package/packages/tools/email/dist/retention.js.map +1 -1
  448. package/packages/tools/email/dist/sources/inbox-poll.d.ts.map +1 -1
  449. package/packages/tools/email/dist/sources/inbox-poll.js +4 -2
  450. package/packages/tools/email/dist/sources/inbox-poll.js.map +1 -1
  451. package/packages/tools/email/migrations/028_reading.sql +20 -0
  452. package/packages/tools/email/package.json +1 -0
  453. package/packages/tools/host/dist/.tsbuildinfo +1 -1
  454. package/packages/tools/mcp/dist/.tsbuildinfo +1 -1
  455. package/packages/tools/memory/dist/.tsbuildinfo +1 -1
  456. package/packages/tools/web/dist/.tsbuildinfo +1 -1
  457. package/packages/web/dist/apple-touch-icon.png +0 -0
  458. package/packages/web/dist/assets/index-C1sRt7zd.js +149 -0
  459. package/packages/web/dist/assets/index-CdZpSJ4_.css +1 -0
  460. package/packages/web/dist/assets/{lottie_light-CHWAvOde.js → lottie_light-DnYl9yaP.js} +1 -1
  461. package/packages/web/dist/backgrounds/golden-streak-portrait.jpg +0 -0
  462. package/packages/web/dist/backgrounds/golden-streak-thumb.jpg +0 -0
  463. package/packages/web/dist/backgrounds/manifest.json +18 -0
  464. package/packages/web/dist/backgrounds/peoria-autumn-waterfront-thumb.jpg +0 -0
  465. package/packages/web/dist/backgrounds/peoria-autumn-waterfront.jpg +0 -0
  466. package/packages/web/dist/build.json +1 -1
  467. package/packages/web/dist/favicon-16.png +0 -0
  468. package/packages/web/dist/favicon-32.png +0 -0
  469. package/packages/web/dist/favicon.ico +0 -0
  470. package/packages/web/dist/icon-192.png +0 -0
  471. package/packages/web/dist/icon-512.png +0 -0
  472. package/packages/web/dist/index.html +6 -3
  473. package/packages/web/dist/manifest.webmanifest +1 -1
  474. package/packages/web/dist/maskable-512.png +0 -0
  475. package/packages/web/dist/precache.json +7 -5
  476. package/packages/web/dist/assets/index-BB52n8Fa.js +0 -146
  477. package/packages/web/dist/assets/index-CY4cPN4I.css +0 -1
  478. package/packages/web/dist/favicon.png +0 -0
  479. package/packages/web/dist/icon-maskable-512.png +0 -0
@@ -5,12 +5,22 @@
5
5
  * decides only when it happens (the surfaces) and stores what came out of it
6
6
  * (core); the questions, their order, and what to do when the owner answers
7
7
  * something else entirely belong to the agent and its `first-run` skill. These
8
- * four tools are the whole seam between the two.
8
+ * tools are the whole seam between the two.
9
9
  *
10
- * Everything here is tier `auto` and deliberately so: nothing it does is
11
- * irreversible, nothing leaves the machine, and an approval prompt in the
12
- * middle of "what should I call you?" would be the opposite of the experience
13
- * this exists to create. The one edit that touches a file — `rename_me` —
10
+ * Everything here is tier `auto` and deliberately so: an approval prompt in
11
+ * the middle of "what should I call you?" would be the opposite of the
12
+ * experience this exists to create. Two things are not quite that simple, and
13
+ * are said here so nobody reads the tier as a promise it is not:
14
+ *
15
+ * - `set_profile` with a place sends that address to the geocoder Settings →
16
+ * Profile already uses (the owner's own words, leaving the machine), one
17
+ * lookup per call and no more.
18
+ * - `set_profile` that *deletes* — `clear` a field, `removePlaces` — goes
19
+ * gated for that call (`tierFor`), with the same card `mcp.profile_update`
20
+ * shows: forgetting what the owner told buddi is his to confirm. Plain
21
+ * sets stay auto.
22
+ *
23
+ * The one edit that touches a file — `rename_me` —
14
24
  * refuses far more than it accepts: an example the repository ships is never
15
25
  * rewritten, a handle another agent answers to is never taken, and the body of
16
26
  * the persona is never touched (core's `updateAgentFrontmatter` re-parses the
@@ -21,15 +31,18 @@
21
31
  * be handed a catalog at construction.
22
32
  */
23
33
  import type { CoreToolContext } from '@buddi/core';
24
- import { type ToolRegistry, type PluginManifest } from '@buddi/core';
34
+ import { type ToolRegistry, type HttpArea, type PluginManifest } from '@buddi/core';
25
35
  import type { AgentCatalog } from '../telegram/types.js';
26
- /** Plugin family name. One manifest, four tools, no tables of its own. */
36
+ /** Plugin family name. One manifest, six tools, no tables of its own. */
27
37
  export declare const OWNER_PLUGIN = "owner";
28
38
  export interface OwnerToolsBinding {
29
39
  /** Every agent installed here — for the rename: the file, and the handles. */
30
40
  catalog: AgentCatalog;
31
41
  /** Which surface this process is; recorded when onboarding completes. */
32
42
  surface?: string;
43
+ /** The geocoder's road for places; a test hands in a stub. Default: Settings → Profile's. */
44
+ placesHttp?: HttpArea;
45
+ log?: (line: string) => void;
33
46
  }
34
47
  /** Wire a registry's owner tools once the catalog exists. */
35
48
  export declare function bindOwnerTools(registry: ToolRegistry, binding: OwnerToolsBinding): void;
@@ -70,7 +83,7 @@ export declare const NOTIFY_TOOL = "owner.notify";
70
83
  */
71
84
  export declare function interactiveTurn(ctx: CoreToolContext): boolean;
72
85
  /**
73
- * The five tools. No state of its own: the profile and the state machine are
86
+ * The six tools. No state of its own: the profile and the state machine are
74
87
  * core's rows, and the agent file is the one the catalog loaded.
75
88
  */
76
89
  export declare function createOwnerManifest(registry: ToolRegistry): PluginManifest;
@@ -1 +1 @@
1
- {"version":3,"file":"owner-tools.d.ts","sourceRoot":"","sources":["../../src/agents/owner-tools.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAKL,KAAK,YAAY,EAejB,KAAK,cAAc,EAEpB,MAAM,aAAa,CAAC;AAKrB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEzD,0EAA0E;AAC1E,eAAO,MAAM,YAAY,UAAU,CAAC;AAgBpC,MAAM,WAAW,iBAAiB;IAChC,8EAA8E;IAC9E,OAAO,EAAE,YAAY,CAAC;IACtB,yEAAyE;IACzE,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAID,6DAA6D;AAC7D,wBAAgB,cAAc,CAAC,QAAQ,EAAE,YAAY,EAAE,OAAO,EAAE,iBAAiB,GAAG,IAAI,CAEvF;AAMD;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,QAK+B,CAAC;AAElE,2DAA2D;AAC3D,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAEtD;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CASrE;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,GAAE,MAA4B,GAAG,OAAO,CAG/F;AA4ED,4FAA4F;AAC5F,eAAO,MAAM,WAAW,iBAAiB,CAAC;AA4C1C;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,eAAe,GAAG,OAAO,CAO7D;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,YAAY,GAAG,cAAc,CAgO1E"}
1
+ {"version":3,"file":"owner-tools.d.ts","sourceRoot":"","sources":["../../src/agents/owner-tools.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAKL,KAAK,YAAY,EAiBjB,KAAK,QAAQ,EACb,KAAK,cAAc,EAGpB,MAAM,aAAa,CAAC;AAiBrB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEzD,yEAAyE;AACzE,eAAO,MAAM,YAAY,UAAU,CAAC;AAwEpC,MAAM,WAAW,iBAAiB;IAChC,8EAA8E;IAC9E,OAAO,EAAE,YAAY,CAAC;IACtB,yEAAyE;IACzE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,6FAA6F;IAC7F,UAAU,CAAC,EAAE,QAAQ,CAAC;IACtB,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CAC9B;AAID,6DAA6D;AAC7D,wBAAgB,cAAc,CAAC,QAAQ,EAAE,YAAY,EAAE,OAAO,EAAE,iBAAiB,GAAG,IAAI,CAEvF;AAMD;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,QAK+B,CAAC;AAElE,2DAA2D;AAC3D,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAEtD;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CASrE;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,GAAE,MAA4B,GAAG,OAAO,CAG/F;AAkHD,4FAA4F;AAC5F,eAAO,MAAM,WAAW,iBAAiB,CAAC;AA4C1C;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,eAAe,GAAG,OAAO,CAO7D;AA+BD;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,YAAY,GAAG,cAAc,CA2R1E"}
@@ -1,9 +1,9 @@
1
- import { HANDLE, HANDLE_MAX, HANDLE_MIN, AgentEditError, completeOnboarding, getOnboarding, getOwnerProfile, isKnownTimezone, AGENT_ACTION_MAX, AGENT_TEXT_MAX, AGENT_TITLE_MAX, checkAgentLink, notifyFromAgent, markStepDone, saveOwnerProfile, validDayMonth, updateAgentFrontmatter, } from '@buddi/core';
1
+ import { HANDLE, HANDLE_MAX, HANDLE_MIN, AgentEditError, completeOnboarding, getOnboarding, getOwnerProfile, isKnownTimezone, listOwnerPlaces, OWNER_DATE_FORMATS, OWNER_TIME_FORMATS, PLACE_ADDRESS_MAX, PLACE_LABEL_MAX, AGENT_ACTION_MAX, AGENT_TEXT_MAX, AGENT_TITLE_MAX, checkAgentLink, notifyFromAgent, markStepDone, updateAgentFrontmatter, ToolRefusal, } from '@buddi/core';
2
2
  import path from 'node:path';
3
3
  import { z } from 'zod';
4
4
  import { EXAMPLES_AGENTS_DIR } from './catalog.js';
5
- import { datesChanged } from '../missions/dates.js';
6
- /** Plugin family name. One manifest, four tools, no tables of its own. */
5
+ import { ASKED_PREFERENCE, DONT_ASK_PREFERENCE, PROFILE_FIELDS, PROFILE_GAP_REASONS, applyProfileEdit, checkPlaceEdits, checkProfilePatch, describeProfileEdit, profileGaps, } from '../owner-profile-edit.js';
6
+ /** Plugin family name. One manifest, six tools, no tables of its own. */
7
7
  export const OWNER_PLUGIN = 'owner';
8
8
  /**
9
9
  * The sentence every description here ends with.
@@ -14,6 +14,55 @@ export const OWNER_PLUGIN = 'owner';
14
14
  */
15
15
  const INTERVIEW_RULES = 'Ask one thing at a time and wait for the answer — never send a list of questions. ' +
16
16
  'Never invent or record a preference the owner did not actually state.';
17
+ /** Whether a `set_profile` call forgets something: a cleared field or a removed place. */
18
+ function deletes(input) {
19
+ return (input.clear?.length ?? 0) > 0 || (input.removePlaces?.length ?? 0) > 0;
20
+ }
21
+ /**
22
+ * A `set_profile` call checked into the edit Settings → Profile would save,
23
+ * or the refusal the model is handed. Pure: `tierFor`, `describe` and
24
+ * `execute` each run it and reach the same answer.
25
+ */
26
+ function prepareProfileEdit(input) {
27
+ if (input.timezone !== undefined && !isKnownTimezone(input.timezone)) {
28
+ return {
29
+ ok: false,
30
+ reason: 'unknown-timezone',
31
+ message: `"${input.timezone}" is not a timezone I know. Ask the owner which city they are in ` +
32
+ 'and try again; nothing was recorded.',
33
+ };
34
+ }
35
+ const { places, removePlaces, clear, ...fields } = input;
36
+ // One address goes to the geocoder per call, never a batch of them.
37
+ if ((places?.length ?? 0) > 1) {
38
+ return {
39
+ ok: false,
40
+ reason: 'one-place',
41
+ message: 'One place per call: the place finder is asked once each time. Send them one by one; nothing was recorded.',
42
+ };
43
+ }
44
+ const body = { ...fields };
45
+ for (const field of clear ?? []) {
46
+ if (body[field] !== undefined) {
47
+ return { ok: false, reason: 'conflict', message: `${field} is both given and cleared; nothing was recorded.` };
48
+ }
49
+ body[field] = null;
50
+ }
51
+ // Settings → Profile's own checks and sentences.
52
+ const checked = checkProfilePatch(body);
53
+ if (!checked.ok) {
54
+ const reason = checked.error.startsWith('The birthday') ? 'unknown-day' : 'invalid';
55
+ return { ok: false, reason, message: `${checked.error} Ask the owner again; nothing was recorded.` };
56
+ }
57
+ const placeEdits = checkPlaceEdits(places ?? [], removePlaces ?? []);
58
+ if (!placeEdits.ok) {
59
+ return { ok: false, reason: 'invalid-place', message: `${placeEdits.error} Nothing was recorded.` };
60
+ }
61
+ if (Object.keys(checked.patch).length === 0 && placeEdits.places.length === 0 && placeEdits.remove.length === 0) {
62
+ return { ok: false, reason: 'nothing-to-do', message: 'Say which field changed; nothing was recorded.' };
63
+ }
64
+ return { ok: true, edit: { patch: checked.patch, places: placeEdits.places, remove: placeEdits.remove } };
65
+ }
17
66
  /** The surface a completion is attributed to when the caller did not say. */
18
67
  const UNKNOWN_SURFACE = 'agent';
19
68
  const bindings = new WeakMap();
@@ -90,7 +139,7 @@ const setProfileInput = z
90
139
  language: z
91
140
  .string()
92
141
  .min(1)
93
- .max(40)
142
+ .max(80)
94
143
  .optional()
95
144
  .describe('The language they want to be answered in, if they said one. Never guessed from their spelling.'),
96
145
  about: z
@@ -119,6 +168,40 @@ const setProfileInput = z
119
168
  })
120
169
  .optional()
121
170
  .describe('Their birthday, when they said it: day and month, the year only if they gave it. Their team greets them on the day.'),
171
+ timeFormat: z
172
+ .enum(OWNER_TIME_FORMATS)
173
+ .optional()
174
+ .describe('How they read times: "12h" (2:05 PM) or "24h" (14:05). Only when they said.'),
175
+ dateFormat: z
176
+ .enum(OWNER_DATE_FORMATS)
177
+ .optional()
178
+ .describe('How they read dates: "short" (Thu, Oct 1), "long" (Thursday, 1 October) or "iso" (2026-10-01). Only when they said.'),
179
+ places: z
180
+ .array(z
181
+ .object({
182
+ label: z.string().min(1).max(PLACE_LABEL_MAX).describe('What they call it: "Home", "Work", "Mum\'s".'),
183
+ address: z
184
+ .string()
185
+ .min(2)
186
+ .max(PLACE_ADDRESS_MAX)
187
+ .describe('Where it is, as they said it: a street address or just the town ("Lyon", "12 rue Neuve, Lyon").'),
188
+ })
189
+ .strict())
190
+ .max(5)
191
+ .optional()
192
+ .describe('Places they told you about. Each address is looked up the way Settings → Profile does it and saved with ' +
193
+ 'the town and its timezone; a place already called that is changed, not added twice. The answer says which ' +
194
+ 'town it matched: tell them, so they can correct it.'),
195
+ removePlaces: z
196
+ .array(z.string().min(1).max(PLACE_LABEL_MAX))
197
+ .max(5)
198
+ .optional()
199
+ .describe('Labels of places they asked you to forget ("Work").'),
200
+ clear: z
201
+ .array(z.enum(PROFILE_FIELDS))
202
+ .max(PROFILE_FIELDS.length)
203
+ .optional()
204
+ .describe('Fields they asked you to forget. A cleared timeFormat or dateFormat goes back to Auto.'),
122
205
  })
123
206
  .strict();
124
207
  const renameInput = z
@@ -192,29 +275,64 @@ export function interactiveTurn(ctx) {
192
275
  (ctx.delegationDepth ?? 0) === 0);
193
276
  }
194
277
  /**
195
- * The five tools. No state of its own: the profile and the state machine are
278
+ * The "knowing you" record, from the two memory preferences the front desk
279
+ * keeps it in: which fields it already asked about (and when it last did),
280
+ * and which the owner said not to ask about. Shared or the caller's own; a
281
+ * database without memory answers nothing recorded.
282
+ */
283
+ async function knowingYouRecord(ctx) {
284
+ try {
285
+ const { rows } = await ctx.db.query(`select key, value, created_at from memory.preferences
286
+ where key = any($1::text[]) and superseded_at is null
287
+ and (agent_scope is null or agent_scope = $2)
288
+ order by created_at desc`, [[ASKED_PREFERENCE, DONT_ASK_PREFERENCE], ctx.agentId ?? '']);
289
+ const of = (key) => rows.filter((r) => r.key === key);
290
+ const asked = of(ASKED_PREFERENCE);
291
+ const dontAsk = of(DONT_ASK_PREFERENCE);
292
+ const at = asked[0]?.created_at;
293
+ return {
294
+ asked: asked.length > 0 ? asked.map((r) => String(r.value)).join(', ') : null,
295
+ askedAt: at ? new Date(at) : null,
296
+ dontAsk: dontAsk.length > 0 ? dontAsk.map((r) => String(r.value)).join(', ') : null,
297
+ };
298
+ }
299
+ catch {
300
+ return { asked: null, askedAt: null, dontAsk: null };
301
+ }
302
+ }
303
+ /**
304
+ * The six tools. No state of its own: the profile and the state machine are
196
305
  * core's rows, and the agent file is the one the catalog loaded.
197
306
  */
198
307
  export function createOwnerManifest(registry) {
199
308
  const bound = () => bindings.get(registry);
200
309
  const getProfile = {
201
310
  name: 'owner.get_profile',
202
- description: 'What you already know about the owner: the name they asked to be called, their timezone, ' +
203
- 'the language they want, and which parts of the first-run conversation are already done. ' +
311
+ description: 'What you already know about the owner: the name they asked to be called, their full name, ' +
312
+ 'pronouns, timezone, language, birthday, time and date formats, their places, and which parts ' +
313
+ 'of the first-run conversation are already done. ' +
204
314
  'Call this before you ask anything — a question about something already recorded is the ' +
205
315
  'one mistake a first conversation cannot afford. ' +
206
316
  INTERVIEW_RULES,
207
317
  tier: 'auto',
208
318
  input: z.object({}).strict(),
209
319
  async execute(_input, ctx) {
210
- const [profile, onboarding] = await Promise.all([
320
+ const [profile, onboarding, places] = await Promise.all([
211
321
  getOwnerProfile(ctx.db),
212
322
  getOnboarding(ctx.db),
323
+ listOwnerPlaces(ctx.db).catch(() => []),
213
324
  ]);
214
325
  return {
215
326
  preferredName: profile.preferredName,
216
327
  timezone: profile.timezone,
217
328
  language: profile.language,
329
+ fullName: profile.fullName,
330
+ pronouns: profile.pronouns,
331
+ birthday: profile.birthday,
332
+ timeFormat: profile.timeFormat,
333
+ dateFormat: profile.dateFormat,
334
+ about: profile.about,
335
+ places: places.map((p) => ({ label: p.label, address: p.address, matched: p.name, timezone: p.timezone })),
218
336
  onboarding: onboarding.state,
219
337
  stepsDone: onboarding.stepsDone,
220
338
  detectedTimezone: ctx.timezone,
@@ -223,43 +341,90 @@ export function createOwnerManifest(registry) {
223
341
  };
224
342
  const setProfile = {
225
343
  name: 'owner.set_profile',
226
- description: 'Record what the owner just told you about themselves: what to call them, their timezone, ' +
227
- 'the language they want to be answered in. Write a field only when they actually said it, ' +
228
- 'in this same conversation — this is their profile, not your inference. Pass only the ' +
229
- 'fields that changed. ' +
344
+ description: 'Record what the owner just told you about themselves: what to call them, their full name, pronouns, ' +
345
+ 'timezone, language, birthday, how they read times and dates, a line about them, and their places ' +
346
+ '(Home, Work, others). Write a field only when they actually said it, in this same conversation — this ' +
347
+ 'is their profile, not your inference: never fill one from an email signature, a display name or a ' +
348
+ 'guess. Pass only the fields that changed. Every agent reads it from its next turn. ' +
230
349
  INTERVIEW_RULES,
231
350
  tier: 'auto',
232
351
  input: setProfileInput,
233
- async execute(input, ctx) {
234
- if (input.timezone !== undefined && !isKnownTimezone(input.timezone)) {
235
- return {
236
- ok: false,
237
- reason: 'unknown-timezone',
238
- message: `"${input.timezone}" is not a timezone I know. Ask the owner which city they are in ` +
239
- 'and try again; nothing was recorded.',
240
- };
241
- }
242
- const { birthday: givenBirthday, ...rest } = input;
243
- let birthday;
244
- if (givenBirthday !== undefined) {
245
- const valid = validDayMonth(givenBirthday);
246
- if (!valid) {
247
- return { ok: false, reason: 'unknown-day', message: 'That day does not exist. Ask the owner again; nothing was recorded.' };
248
- }
249
- birthday = valid;
352
+ /*
353
+ * A delete is the owner's to confirm: `clear` or `removePlaces` makes this
354
+ * call gated. A call that will be refused anyway stays auto, so the model
355
+ * hears the refusal at once instead of the owner seeing a card for nothing.
356
+ */
357
+ async tierFor(input) {
358
+ const prepared = prepareProfileEdit(input);
359
+ if (prepared.ok && deletes(input)) {
360
+ return { tier: 'gated', reason: 'It forgets something you told buddi.' };
250
361
  }
251
- // The zone applies at once; schedules kept in the old one move with it.
252
- const { profile } = await saveOwnerProfile(ctx.db, { ...rest, ...(birthday ? { birthday } : {}) });
253
- // The birthday greeting's schedule follows the new day at once.
254
- if (birthday)
255
- await datesChanged();
362
+ return { tier: 'auto' };
363
+ },
364
+ describe(input) {
365
+ const prepared = prepareProfileEdit(input);
366
+ if (!prepared.ok)
367
+ throw new ToolRefusal(prepared.message);
368
+ const edit = prepared.edit;
369
+ return {
370
+ envelope: { kind: 'profile_update', change: { profile: edit.patch, places: edit.places, removePlaces: edit.remove } },
371
+ preview: ['Change your profile:', ...describeProfileEdit(edit)].join('\n'),
372
+ };
373
+ },
374
+ async execute(input, ctx) {
375
+ const prepared = prepareProfileEdit(input);
376
+ if (!prepared.ok)
377
+ return prepared;
378
+ const edit = prepared.edit;
379
+ const binding = bound();
380
+ // The zone applies at once and schedules kept in the old one move with
381
+ // it; the birthday greeting follows a new day at once.
382
+ const outcome = await applyProfileEdit({
383
+ pool: ctx.db,
384
+ log: binding?.log ?? (() => undefined),
385
+ ...(binding?.placesHttp ? { http: binding.placesHttp } : {}),
386
+ }, edit);
256
387
  // The steps the shipped skill records. Free-form strings in core, so an
257
388
  // owner's own first-run skill is free to record something else entirely.
258
389
  if (input.preferredName !== undefined)
259
390
  await markStepDone(ctx.db, 'name');
260
391
  if (input.timezone !== undefined)
261
392
  await markStepDone(ctx.db, 'timezone');
262
- return { ok: true, ...profile };
393
+ const changes = outcome.placeChanges;
394
+ return {
395
+ ok: true,
396
+ ...outcome.profile,
397
+ ...(changes
398
+ ? {
399
+ places: outcome.places.map((p) => ({ label: p.label, address: p.address, matched: p.name, timezone: p.timezone })),
400
+ placesSaved: changes.saved,
401
+ ...(changes.notSaved.length > 0 ? { placesNotSaved: changes.notSaved } : {}),
402
+ ...(changes.removed.length > 0 ? { placesRemoved: changes.removed } : {}),
403
+ ...(changes.notFound.length > 0 ? { placesNotFound: changes.notFound } : {}),
404
+ }
405
+ : {}),
406
+ message: 'Recorded. Every agent uses it from its next turn.',
407
+ };
408
+ },
409
+ };
410
+ const profileGapsTool = {
411
+ name: 'owner.profile_gaps',
412
+ description: "Which useful parts of the owner's profile are still empty, each with one line on why it matters " +
413
+ '(fullName: letters, forms and bookings; places.work: "how long to work?"). Each gap says whether it was ' +
414
+ `already asked in a "knowing you" question (the ${ASKED_PREFERENCE} preference) or declined (${DONT_ASK_PREFERENCE}); ` +
415
+ 'nudge names the one field a weekly "knowing you" question may ask now, or null. A read: it asks nothing. ' +
416
+ 'Ask for a gap only when the task in hand needs it, or as that one weekly question, never mid-task. ' +
417
+ INTERVIEW_RULES,
418
+ tier: 'auto',
419
+ input: z.object({}).strict(),
420
+ async execute(_input, ctx) {
421
+ const [profile, places, record] = await Promise.all([
422
+ getOwnerProfile(ctx.db),
423
+ listOwnerPlaces(ctx.db).catch(() => []),
424
+ knowingYouRecord(ctx),
425
+ ]);
426
+ const gaps = profileGaps(profile, places, record, ctx.now());
427
+ return { ...gaps, filled: PROFILE_GAP_REASONS.length - gaps.gaps.length, of: PROFILE_GAP_REASONS.length };
263
428
  },
264
429
  };
265
430
  const renameMe = {
@@ -404,7 +569,7 @@ export function createOwnerManifest(registry) {
404
569
  // The rows are core's (migrations 013 and 043): this manifest only exposes them.
405
570
  schema: 'core',
406
571
  migrationsDir: '',
407
- tools: [getProfile, setProfile, renameMe, finish, notify],
572
+ tools: [getProfile, setProfile, profileGapsTool, renameMe, finish, notify],
408
573
  };
409
574
  }
410
575
  //# sourceMappingURL=owner-tools.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"owner-tools.js","sourceRoot":"","sources":["../../src/agents/owner-tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"owner-tools.js","sourceRoot":"","sources":["../../src/agents/owner-tools.ts"],"names":[],"mappings":"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"}
@@ -51,6 +51,8 @@ export interface GoldenCase {
51
51
  * the way the real one does for the situation the case pins.
52
52
  */
53
53
  manifests?: () => PluginManifest[];
54
+ /** SQL run after the shared fixture, for a case that needs the owner in a given state. */
55
+ seed?: readonly string[];
54
56
  /** Every failure, as a plain sentence. An empty array is a pass. */
55
57
  check(turns: TurnRecord[]): string[];
56
58
  }
@@ -81,6 +83,9 @@ export declare function minutesOf(input: {
81
83
  end?: string;
82
84
  duration?: number;
83
85
  } | undefined): number | null;
86
+ /** The owner of the profile case: a name and a zone, no full name, the first run behind them. */
87
+ export declare const PROFILE_CASE_NAME = "Samuel Okafor";
88
+ export declare const PROFILE_CASE_SEED: string[];
84
89
  export declare const GOLDEN_CASES: GoldenCase[];
85
90
  export interface CaseResult {
86
91
  id: string;
@@ -1 +1 @@
1
- {"version":3,"file":"golden.d.ts","sourceRoot":"","sources":["../../src/evals/golden.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"golden.d.ts","sourceRoot":"","sources":["../../src/evals/golden.ts"],"names":[],"mappings":"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"}
@@ -174,6 +174,18 @@ export function minutesOf(input) {
174
174
  }
175
175
  return null;
176
176
  }
177
+ /** The owner of the profile case: a name and a zone, no full name, the first run behind them. */
178
+ export const PROFILE_CASE_NAME = 'Samuel Okafor';
179
+ export const PROFILE_CASE_SEED = [
180
+ `insert into core.owner (id, preferred_name, timezone) values ('owner', 'Sam', 'UTC')
181
+ on conflict (id) do update set preferred_name = 'Sam', timezone = 'UTC', full_name = null`,
182
+ `insert into core.onboarding (owner_id, state, started_at, completed_at, surface)
183
+ values ('owner', 'done', now(), now(), 'web')
184
+ on conflict (owner_id) do update set state = 'done', completed_at = now()`,
185
+ `delete from core.owner_places`,
186
+ ];
187
+ const ASKS_FULL_NAME = /full name|your (?:last|sur)name|name (?:should|to) (?:i )?(?:sign|put)|sign (?:it|off) (?:with|as)/i;
188
+ const questions = (text) => (text.match(/\?/g) ?? []).length;
177
189
  const ASKS_WHICH_CALENDAR = /which calendar|what calendar|which of your calendars/i;
178
190
  const STATES_TWO_HOURS = /\b(?:2|two)[ -]?(?:hours?|h)\b|2-hour|two-hour/i;
179
191
  export const GOLDEN_CASES = [
@@ -444,6 +456,40 @@ export const GOLDEN_CASES = [
444
456
  return fails;
445
457
  },
446
458
  },
459
+ {
460
+ id: 'one-writable-field-asked-once',
461
+ guards: 'A letter needs the full name the profile lacks: the front desk asks once, one question, records the answer with ' +
462
+ 'owner.set_profile, signs with it, and never asks again for the next letter.',
463
+ agent: 'concierge',
464
+ seed: PROFILE_CASE_SEED,
465
+ turns: [
466
+ { question: "Write a short letter to my landlord saying I'll be away for all of November." },
467
+ { question: PROFILE_CASE_NAME },
468
+ { question: 'Thanks. Now a two-line note to my bank saying the same.' },
469
+ ],
470
+ check([ask, answer, again]) {
471
+ const fails = [];
472
+ const setsName = (turn) => called(turn, 'owner.set_profile').filter((c) => typeof c.input?.fullName === 'string');
473
+ if (!ASKS_FULL_NAME.test(ask?.text ?? ''))
474
+ fails.push('did not ask for the full name the letter needs');
475
+ if (questions(ask?.text ?? '') > 1)
476
+ fails.push('asked more than one question at once');
477
+ if (setsName(ask).length > 0)
478
+ fails.push('recorded a full name the owner had not said');
479
+ const recorded = setsName(answer);
480
+ if (recorded.length === 0)
481
+ fails.push('never recorded the full name once the owner said it');
482
+ else if (String(recorded[0].input.fullName).trim() !== PROFILE_CASE_NAME)
483
+ fails.push(`recorded "${recorded[0].input.fullName}", not what the owner said`);
484
+ if (!(answer?.text ?? '').includes(PROFILE_CASE_NAME))
485
+ fails.push('did not sign the letter with the full name');
486
+ if (ASKS_FULL_NAME.test(again?.text ?? ''))
487
+ fails.push('asked for the full name a second time');
488
+ if (!(again?.text ?? '').includes(PROFILE_CASE_NAME))
489
+ fails.push('did not use the recorded full name in the next note');
490
+ return fails;
491
+ },
492
+ },
447
493
  ];
448
494
  const ESC = '\u001b[';
449
495
  const yellow = (s) => `${ESC}33m${s}${ESC}0m`;
@@ -577,6 +623,8 @@ export async function main(argv = process.argv.slice(2)) {
577
623
  const standIns = [];
578
624
  for (const testCase of cases) {
579
625
  await reseed(pool);
626
+ for (const statement of testCase.seed ?? [])
627
+ await pool.query(statement);
580
628
  const started = Date.now();
581
629
  const result = {
582
630
  id: testCase.id,