@aitne/daemon 0.1.7 → 0.1.9

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 (2056) hide show
  1. package/dist/adapters/composite-dashboard-stream.d.ts +8 -11
  2. package/dist/adapters/composite-dashboard-stream.js +8 -11
  3. package/dist/adapters/dashboard-adapter.d.ts +18 -6
  4. package/dist/adapters/dashboard-adapter.js +101 -55
  5. package/dist/adapters/discord.d.ts +10 -3
  6. package/dist/adapters/discord.js +102 -26
  7. package/dist/adapters/docs-qa-adapter.d.ts +15 -16
  8. package/dist/adapters/docs-qa-adapter.js +14 -15
  9. package/dist/adapters/message-hub.d.ts +2 -3
  10. package/dist/adapters/message-hub.js +9 -3
  11. package/dist/adapters/notification-manager.d.ts +100 -3
  12. package/dist/adapters/notification-manager.js +244 -23
  13. package/dist/adapters/outbound-text.d.ts +17 -4
  14. package/dist/adapters/outbound-text.js +119 -5
  15. package/dist/adapters/primary-platform-resolver.d.ts +68 -0
  16. package/dist/adapters/primary-platform-resolver.js +54 -0
  17. package/dist/adapters/slack-adapter.d.ts +32 -5
  18. package/dist/adapters/slack-adapter.js +146 -58
  19. package/dist/adapters/telegram-adapter.d.ts +11 -8
  20. package/dist/adapters/telegram-adapter.js +63 -42
  21. package/dist/adapters/types.d.ts +3 -4
  22. package/dist/adapters/types.js +0 -1
  23. package/dist/adapters/whatsapp-adapter.d.ts +104 -18
  24. package/dist/adapters/whatsapp-adapter.js +305 -69
  25. package/dist/api/chat-binding-query.d.ts +0 -1
  26. package/dist/api/chat-binding-query.js +0 -1
  27. package/dist/api/chat-session-resume.d.ts +0 -1
  28. package/dist/api/chat-session-resume.js +0 -1
  29. package/dist/api/directory-picker.d.ts +0 -1
  30. package/dist/api/directory-picker.js +14 -1
  31. package/dist/api/env-writer.d.ts +0 -1
  32. package/dist/api/env-writer.js +108 -5
  33. package/dist/api/helpers/agent-errors-envelope.d.ts +116 -0
  34. package/dist/api/helpers/agent-errors-envelope.js +165 -0
  35. package/dist/api/helpers/agent-errors-registry.d.ts +2290 -0
  36. package/dist/api/helpers/agent-errors-registry.js +2197 -0
  37. package/dist/api/helpers/agent-errors-types.d.ts +193 -0
  38. package/dist/api/helpers/agent-errors-types.js +15 -0
  39. package/dist/api/helpers/agent-errors-zod.d.ts +33 -0
  40. package/dist/api/helpers/agent-errors-zod.js +138 -0
  41. package/dist/api/helpers/agent-errors.d.ts +4 -0
  42. package/dist/api/helpers/agent-errors.js +17 -0
  43. package/dist/api/integration-route-gate.d.ts +0 -1
  44. package/dist/api/integration-route-gate.js +10 -4
  45. package/dist/api/json-body.d.ts +3 -4
  46. package/dist/api/json-body.js +3 -4
  47. package/dist/api/routes/activity-sources.d.ts +1 -2
  48. package/dist/api/routes/activity-sources.js +0 -1
  49. package/dist/api/routes/agent-schedule-plan-match.d.ts +4 -0
  50. package/dist/api/routes/agent-schedule-plan-match.js +100 -0
  51. package/dist/api/routes/agent-schedule.d.ts +3 -0
  52. package/dist/api/routes/agent-schedule.js +790 -0
  53. package/dist/api/routes/agent.d.ts +0 -1
  54. package/dist/api/routes/agent.js +233 -367
  55. package/dist/api/routes/agents/index.d.ts +3 -0
  56. package/dist/api/routes/agents/index.js +404 -0
  57. package/dist/api/routes/agents/views.d.ts +185 -0
  58. package/dist/api/routes/agents/views.js +514 -0
  59. package/dist/api/routes/apple-calendar.d.ts +1 -2
  60. package/dist/api/routes/apple-calendar.js +110 -29
  61. package/dist/api/routes/attachments.d.ts +0 -1
  62. package/dist/api/routes/attachments.js +113 -22
  63. package/dist/api/routes/backends.d.ts +0 -1
  64. package/dist/api/routes/backends.js +144 -40
  65. package/dist/api/routes/books.d.ts +0 -1
  66. package/dist/api/routes/books.js +65 -26
  67. package/dist/api/routes/browser-automation-purchase.d.ts +31 -0
  68. package/dist/api/routes/browser-automation-purchase.js +251 -0
  69. package/dist/api/routes/browser-automation-sites.d.ts +22 -0
  70. package/dist/api/routes/browser-automation-sites.js +238 -0
  71. package/dist/api/routes/browser-history-managed.d.ts +23 -0
  72. package/dist/api/routes/browser-history-managed.js +202 -0
  73. package/dist/api/routes/browser-history.d.ts +3 -0
  74. package/dist/api/routes/browser-history.js +433 -0
  75. package/dist/api/routes/browser-task.d.ts +43 -0
  76. package/dist/api/routes/browser-task.js +617 -0
  77. package/dist/api/routes/calendar.d.ts +3 -3
  78. package/dist/api/routes/calendar.js +330 -56
  79. package/dist/api/routes/commands.d.ts +0 -1
  80. package/dist/api/routes/commands.js +27 -2
  81. package/dist/api/routes/context/frontmatter-merge.d.ts +28 -0
  82. package/dist/api/routes/context/frontmatter-merge.js +56 -0
  83. package/dist/api/routes/context/index.d.ts +40 -0
  84. package/dist/api/routes/context/index.js +174 -0
  85. package/dist/api/routes/context/locks.d.ts +3 -0
  86. package/dist/api/routes/context/locks.js +136 -0
  87. package/dist/api/routes/context/path-resolve.d.ts +26 -0
  88. package/dist/api/routes/context/path-resolve.js +125 -0
  89. package/dist/api/routes/context/permissions.d.ts +58 -0
  90. package/dist/api/routes/context/permissions.js +234 -0
  91. package/dist/api/routes/context/read.d.ts +3 -0
  92. package/dist/api/routes/context/read.js +306 -0
  93. package/dist/api/routes/context/repair.d.ts +3 -0
  94. package/dist/api/routes/context/repair.js +114 -0
  95. package/dist/api/routes/context/snapshots.d.ts +3 -0
  96. package/dist/api/routes/context/snapshots.js +208 -0
  97. package/dist/api/routes/context/write-step.d.ts +132 -0
  98. package/dist/api/routes/context/write-step.js +151 -0
  99. package/dist/api/routes/context/write.d.ts +3 -0
  100. package/dist/api/routes/context/write.js +781 -0
  101. package/dist/api/routes/dashboard/config.d.ts +3 -0
  102. package/dist/api/routes/dashboard/config.js +507 -0
  103. package/dist/api/routes/dashboard/conversations.d.ts +3 -0
  104. package/dist/api/routes/dashboard/conversations.js +308 -0
  105. package/dist/api/routes/dashboard/cost-approvals.d.ts +28 -0
  106. package/dist/api/routes/dashboard/cost-approvals.js +258 -0
  107. package/dist/api/routes/dashboard/index.d.ts +26 -0
  108. package/dist/api/routes/dashboard/index.js +46 -0
  109. package/dist/api/routes/dashboard/messaging.d.ts +3 -0
  110. package/dist/api/routes/dashboard/messaging.js +349 -0
  111. package/dist/api/routes/dashboard/notifications.d.ts +3 -0
  112. package/dist/api/routes/dashboard/notifications.js +108 -0
  113. package/dist/api/routes/dashboard/oauth-google.d.ts +3 -0
  114. package/dist/api/routes/dashboard/oauth-google.js +288 -0
  115. package/dist/api/routes/dashboard/schedule-readonly.d.ts +3 -0
  116. package/dist/api/routes/dashboard/schedule-readonly.js +54 -0
  117. package/dist/api/routes/dashboard/secrets.d.ts +23 -0
  118. package/dist/api/routes/dashboard/secrets.js +306 -0
  119. package/dist/api/routes/dashboard/snapshots.d.ts +3 -0
  120. package/dist/api/routes/dashboard/snapshots.js +32 -0
  121. package/dist/api/routes/delegated-sync.d.ts +0 -1
  122. package/dist/api/routes/delegated-sync.js +0 -1
  123. package/dist/api/routes/delegated.d.ts +5 -5
  124. package/dist/api/routes/delegated.js +6 -6
  125. package/dist/api/routes/docs.d.ts +0 -1
  126. package/dist/api/routes/docs.js +72 -10
  127. package/dist/api/routes/entities.d.ts +0 -1
  128. package/dist/api/routes/entities.js +114 -45
  129. package/dist/api/routes/fs.d.ts +0 -1
  130. package/dist/api/routes/fs.js +27 -13
  131. package/dist/api/routes/fs.logic.d.ts +0 -1
  132. package/dist/api/routes/fs.logic.js +6 -2
  133. package/dist/api/routes/git-accounts.d.ts +0 -1
  134. package/dist/api/routes/git-accounts.js +0 -1
  135. package/dist/api/routes/git-templates.d.ts +0 -1
  136. package/dist/api/routes/git-templates.js +113 -28
  137. package/dist/api/routes/git.d.ts +0 -1
  138. package/dist/api/routes/git.js +65 -16
  139. package/dist/api/routes/github.d.ts +0 -1
  140. package/dist/api/routes/github.js +130 -24
  141. package/dist/api/routes/health.d.ts +0 -1
  142. package/dist/api/routes/health.js +4 -3
  143. package/dist/api/routes/integrations/crud-patch.d.ts +16 -0
  144. package/dist/api/routes/integrations/crud-patch.js +638 -0
  145. package/dist/api/routes/integrations/crud.d.ts +15 -0
  146. package/dist/api/routes/integrations/crud.js +157 -0
  147. package/dist/api/routes/integrations/exec.d.ts +22 -0
  148. package/dist/api/routes/integrations/exec.js +349 -0
  149. package/dist/api/routes/integrations/index.d.ts +61 -0
  150. package/dist/api/routes/integrations/index.js +69 -0
  151. package/dist/api/routes/integrations/probe.d.ts +20 -0
  152. package/dist/api/routes/integrations/probe.js +246 -0
  153. package/dist/api/routes/integrations-reconcile.d.ts +0 -1
  154. package/dist/api/routes/integrations-reconcile.js +0 -1
  155. package/dist/api/routes/knowledge.d.ts +0 -1
  156. package/dist/api/routes/knowledge.js +14 -4
  157. package/dist/api/routes/mail/accounts.d.ts +3 -0
  158. package/dist/api/routes/mail/accounts.js +288 -0
  159. package/dist/api/routes/mail/app-password.d.ts +3 -0
  160. package/dist/api/routes/mail/app-password.js +191 -0
  161. package/dist/api/routes/mail/body-helpers.d.ts +55 -0
  162. package/dist/api/routes/mail/body-helpers.js +90 -0
  163. package/dist/api/routes/mail/dependencies.d.ts +35 -0
  164. package/dist/api/routes/mail/dependencies.js +1 -0
  165. package/dist/api/routes/mail/drafts.d.ts +4 -0
  166. package/dist/api/routes/mail/drafts.js +138 -0
  167. package/dist/api/routes/mail/gating.d.ts +44 -0
  168. package/dist/api/routes/mail/gating.js +98 -0
  169. package/dist/api/routes/mail/index.d.ts +17 -0
  170. package/dist/api/routes/mail/index.js +39 -0
  171. package/dist/api/routes/mail/messages.d.ts +14 -0
  172. package/dist/api/routes/mail/messages.js +238 -0
  173. package/dist/api/routes/mail/outlook-config.d.ts +3 -0
  174. package/dist/api/routes/mail/outlook-config.js +72 -0
  175. package/dist/api/routes/mail/provider-resolver.d.ts +63 -0
  176. package/dist/api/routes/mail/provider-resolver.js +285 -0
  177. package/dist/api/routes/mail/providers.d.ts +3 -0
  178. package/dist/api/routes/mail/providers.js +72 -0
  179. package/dist/api/routes/mail/search-health.d.ts +3 -0
  180. package/dist/api/routes/mail/search-health.js +130 -0
  181. package/dist/api/routes/mail/tags-folders.d.ts +4 -0
  182. package/dist/api/routes/mail/tags-folders.js +34 -0
  183. package/dist/api/routes/mail/validators.d.ts +22 -0
  184. package/dist/api/routes/mail/validators.js +130 -0
  185. package/dist/api/routes/managed-tasks.d.ts +0 -1
  186. package/dist/api/routes/managed-tasks.js +154 -63
  187. package/dist/api/routes/mcp.d.ts +0 -1
  188. package/dist/api/routes/mcp.js +115 -48
  189. package/dist/api/routes/metrics.d.ts +1 -2
  190. package/dist/api/routes/metrics.js +2 -3
  191. package/dist/api/routes/notion.d.ts +0 -1
  192. package/dist/api/routes/notion.js +234 -55
  193. package/dist/api/routes/observations.d.ts +0 -1
  194. package/dist/api/routes/observations.js +53 -184
  195. package/dist/api/routes/obsidian.d.ts +0 -1
  196. package/dist/api/routes/obsidian.js +193 -33
  197. package/dist/api/routes/profile-questions.d.ts +0 -1
  198. package/dist/api/routes/profile-questions.js +26 -5
  199. package/dist/api/routes/receipts.d.ts +0 -1
  200. package/dist/api/routes/receipts.js +64 -25
  201. package/dist/api/routes/recurring-schedules.d.ts +0 -1
  202. package/dist/api/routes/recurring-schedules.js +288 -15
  203. package/dist/api/routes/repositories.d.ts +0 -1
  204. package/dist/api/routes/repositories.js +278 -105
  205. package/dist/api/routes/schedule-model-resolver.d.ts +152 -0
  206. package/dist/api/routes/schedule-model-resolver.js +285 -0
  207. package/dist/api/routes/schedule-options.d.ts +24 -0
  208. package/dist/api/routes/schedule-options.js +76 -0
  209. package/dist/api/routes/schedule-validation.d.ts +145 -0
  210. package/dist/api/routes/schedule-validation.js +152 -0
  211. package/dist/api/routes/setup-migrate.d.ts +0 -1
  212. package/dist/api/routes/setup-migrate.js +6 -4
  213. package/dist/api/routes/setup.d.ts +0 -1
  214. package/dist/api/routes/setup.js +142 -27
  215. package/dist/api/routes/skill-curation.d.ts +0 -1
  216. package/dist/api/routes/skill-curation.js +0 -1
  217. package/dist/api/routes/skills.d.ts +2 -1
  218. package/dist/api/routes/skills.js +92 -33
  219. package/dist/api/routes/sot-bindings.d.ts +1 -2
  220. package/dist/api/routes/sot-bindings.js +46 -12
  221. package/dist/api/routes/sse.d.ts +0 -1
  222. package/dist/api/routes/sse.js +6 -2
  223. package/dist/api/routes/system.d.ts +0 -1
  224. package/dist/api/routes/system.js +15 -3
  225. package/dist/api/routes/task-flows.d.ts +0 -1
  226. package/dist/api/routes/task-flows.js +0 -1
  227. package/dist/api/routes/travel-bookings.d.ts +0 -1
  228. package/dist/api/routes/travel-bookings.js +26 -10
  229. package/dist/api/routes/triggers.d.ts +0 -1
  230. package/dist/api/routes/triggers.js +0 -1
  231. package/dist/api/routes/voice.d.ts +0 -1
  232. package/dist/api/routes/voice.js +0 -1
  233. package/dist/api/routes/wiki.d.ts +0 -1
  234. package/dist/api/routes/wiki.js +84 -17
  235. package/dist/api/server.d.ts +55 -6
  236. package/dist/api/server.js +76 -22
  237. package/dist/bootstrap/adapters.d.ts +0 -1
  238. package/dist/bootstrap/adapters.js +7 -5
  239. package/dist/bootstrap/api.d.ts +219 -0
  240. package/dist/bootstrap/api.js +502 -0
  241. package/dist/bootstrap/catchup.d.ts +0 -1
  242. package/dist/bootstrap/catchup.js +1 -2
  243. package/dist/bootstrap/db.d.ts +213 -0
  244. package/dist/bootstrap/db.js +617 -0
  245. package/dist/bootstrap/event-pipeline.d.ts +329 -0
  246. package/dist/bootstrap/event-pipeline.js +1203 -0
  247. package/dist/bootstrap/managed-chromium.d.ts +26 -0
  248. package/dist/bootstrap/managed-chromium.js +66 -0
  249. package/dist/bootstrap/observers.d.ts +147 -0
  250. package/dist/bootstrap/observers.js +586 -0
  251. package/dist/bootstrap/schedule-helpers.d.ts +122 -1
  252. package/dist/bootstrap/schedule-helpers.js +206 -6
  253. package/dist/bootstrap/services.d.ts +0 -1
  254. package/dist/bootstrap/services.js +1 -11
  255. package/dist/config.d.ts +1 -2
  256. package/dist/config.js +32 -15
  257. package/dist/core/abort-utils.d.ts +13 -0
  258. package/dist/core/abort-utils.js +35 -0
  259. package/dist/core/agent-core.d.ts +36 -4
  260. package/dist/core/agent-core.js +3 -2
  261. package/dist/core/agent-execution-recorder.d.ts +78 -0
  262. package/dist/core/agent-execution-recorder.js +60 -0
  263. package/dist/core/agents/agent-execution-tracker.d.ts +91 -0
  264. package/dist/core/agents/agent-execution-tracker.js +226 -0
  265. package/dist/core/agents/agent-frontmatter.d.ts +57 -0
  266. package/dist/core/agents/agent-frontmatter.js +74 -0
  267. package/dist/core/agents/agent-id-resolver.d.ts +47 -0
  268. package/dist/core/agents/agent-id-resolver.js +61 -0
  269. package/dist/core/agents/builtin-registry.d.ts +156 -0
  270. package/dist/core/agents/builtin-registry.js +257 -0
  271. package/dist/core/agents/cron-substitute.d.ts +60 -0
  272. package/dist/core/agents/cron-substitute.js +100 -0
  273. package/dist/core/agents/definition-criteria.d.ts +14 -0
  274. package/dist/core/agents/definition-criteria.js +25 -0
  275. package/dist/core/agents/effective-definition.d.ts +47 -0
  276. package/dist/core/agents/effective-definition.js +101 -0
  277. package/dist/core/agents/firing-blocked.d.ts +28 -0
  278. package/dist/core/agents/firing-blocked.js +27 -0
  279. package/dist/core/agents/loader-boot.d.ts +26 -0
  280. package/dist/core/agents/loader-boot.js +98 -0
  281. package/dist/core/agents/loader-watcher.d.ts +23 -0
  282. package/dist/core/agents/loader-watcher.js +84 -0
  283. package/dist/core/agents/loader.d.ts +188 -0
  284. package/dist/core/agents/loader.js +754 -0
  285. package/dist/core/agents/override-merge.d.ts +57 -0
  286. package/dist/core/agents/override-merge.js +131 -0
  287. package/dist/core/agents/recurrence-convert.d.ts +92 -0
  288. package/dist/core/agents/recurrence-convert.js +207 -0
  289. package/dist/core/agents/recurring-schedule-adapter.d.ts +24 -0
  290. package/dist/core/agents/recurring-schedule-adapter.js +157 -0
  291. package/dist/core/agents/success-criteria.d.ts +60 -0
  292. package/dist/core/agents/success-criteria.js +139 -0
  293. package/dist/core/agents/validate-agent-md.d.ts +17 -0
  294. package/dist/core/agents/validate-agent-md.js +64 -0
  295. package/dist/core/alerts.d.ts +0 -1
  296. package/dist/core/alerts.js +0 -1
  297. package/dist/core/atomic-write.d.ts +0 -1
  298. package/dist/core/atomic-write.js +17 -4
  299. package/dist/core/backends/api-key-probe.d.ts +0 -1
  300. package/dist/core/backends/api-key-probe.js +0 -1
  301. package/dist/core/backends/auth-health-monitor.d.ts +0 -1
  302. package/dist/core/backends/auth-health-monitor.js +31 -5
  303. package/dist/core/backends/auth-recovery.d.ts +0 -1
  304. package/dist/core/backends/auth-recovery.js +17 -4
  305. package/dist/core/backends/auth-telemetry.d.ts +0 -1
  306. package/dist/core/backends/auth-telemetry.js +0 -1
  307. package/dist/core/backends/backend-router.d.ts +44 -3
  308. package/dist/core/backends/backend-router.js +230 -3
  309. package/dist/core/backends/claude-auth.d.ts +0 -1
  310. package/dist/core/backends/claude-auth.js +0 -1
  311. package/dist/core/backends/claude-code-core.d.ts +53 -2
  312. package/dist/core/backends/claude-code-core.js +202 -29
  313. package/dist/core/backends/claude-credentials-store.d.ts +0 -1
  314. package/dist/core/backends/claude-credentials-store.js +0 -1
  315. package/dist/core/backends/claude-delegated.d.ts +0 -1
  316. package/dist/core/backends/claude-delegated.js +14 -15
  317. package/dist/core/backends/claude-errors.d.ts +0 -1
  318. package/dist/core/backends/claude-errors.js +0 -1
  319. package/dist/core/backends/claude-probe.d.ts +0 -1
  320. package/dist/core/backends/claude-probe.js +0 -1
  321. package/dist/core/backends/claude-tool-collection.d.ts +0 -1
  322. package/dist/core/backends/claude-tool-collection.js +177 -32
  323. package/dist/core/backends/cli-quota-guards.d.ts +100 -0
  324. package/dist/core/backends/cli-quota-guards.js +95 -0
  325. package/dist/core/backends/cli-utils.d.ts +26 -2
  326. package/dist/core/backends/cli-utils.js +133 -15
  327. package/dist/core/backends/codex-core.d.ts +13 -2
  328. package/dist/core/backends/codex-core.js +470 -63
  329. package/dist/core/backends/gemini-cli-core.d.ts +5 -2
  330. package/dist/core/backends/gemini-cli-core.js +348 -68
  331. package/dist/core/backends/idle-watchdog.d.ts +0 -1
  332. package/dist/core/backends/idle-watchdog.js +0 -1
  333. package/dist/core/backends/install-methods.d.ts +0 -1
  334. package/dist/core/backends/install-methods.js +22 -1
  335. package/dist/core/backends/model-registry.d.ts +10 -6
  336. package/dist/core/backends/model-registry.js +204 -34
  337. package/dist/core/backends/native-skill-discovery-probe.d.ts +77 -0
  338. package/dist/core/backends/native-skill-discovery-probe.js +172 -0
  339. package/dist/core/backends/opencode-basic-auth-fetch.d.ts +26 -0
  340. package/dist/core/backends/opencode-basic-auth-fetch.js +39 -0
  341. package/dist/core/backends/opencode-config-builder.d.ts +113 -0
  342. package/dist/core/backends/opencode-config-builder.js +184 -0
  343. package/dist/core/backends/opencode-core.d.ts +315 -0
  344. package/dist/core/backends/opencode-core.js +1508 -0
  345. package/dist/core/backends/opencode-event-mapper.d.ts +132 -0
  346. package/dist/core/backends/opencode-event-mapper.js +197 -0
  347. package/dist/core/backends/opencode-mcp.d.ts +81 -0
  348. package/dist/core/backends/opencode-mcp.js +157 -0
  349. package/dist/core/backends/opencode-server-manager.d.ts +113 -0
  350. package/dist/core/backends/opencode-server-manager.js +221 -0
  351. package/dist/core/backends/opencode-types.d.ts +45 -0
  352. package/dist/core/backends/opencode-types.js +13 -0
  353. package/dist/core/backends/plan-presets.d.ts +18 -6
  354. package/dist/core/backends/plan-presets.js +191 -24
  355. package/dist/core/backends/price-fetcher.d.ts +0 -1
  356. package/dist/core/backends/price-fetcher.js +0 -1
  357. package/dist/core/backends/process-config-cascade.d.ts +35 -1
  358. package/dist/core/backends/process-config-cascade.js +35 -2
  359. package/dist/core/backends/prompt-utils.d.ts +0 -1
  360. package/dist/core/backends/prompt-utils.js +0 -3
  361. package/dist/core/backends/proxy-model-registry.d.ts +0 -1
  362. package/dist/core/backends/proxy-model-registry.js +0 -1
  363. package/dist/core/backends/quota-reset-hints.d.ts +43 -0
  364. package/dist/core/backends/quota-reset-hints.js +116 -0
  365. package/dist/core/backends/silent-api-error-detector.d.ts +0 -1
  366. package/dist/core/backends/silent-api-error-detector.js +0 -1
  367. package/dist/core/bang-commands/commands-checks.d.ts +16 -0
  368. package/dist/core/bang-commands/commands-checks.js +58 -0
  369. package/dist/core/bang-commands/commands-close.d.ts +23 -0
  370. package/dist/core/bang-commands/commands-close.js +23 -0
  371. package/dist/core/bang-commands/commands-cost.d.ts +0 -1
  372. package/dist/core/bang-commands/commands-cost.js +13 -1
  373. package/dist/core/bang-commands/commands-help.d.ts +0 -1
  374. package/dist/core/bang-commands/commands-help.js +44 -6
  375. package/dist/core/bang-commands/commands-report.d.ts +0 -1
  376. package/dist/core/bang-commands/commands-report.js +1 -1
  377. package/dist/core/bang-commands/commands-research.d.ts +36 -0
  378. package/dist/core/bang-commands/commands-research.js +284 -0
  379. package/dist/core/bang-commands/commands-stop-start.d.ts +0 -1
  380. package/dist/core/bang-commands/commands-stop-start.js +2 -1
  381. package/dist/core/bang-commands/commands-wiki.d.ts +0 -1
  382. package/dist/core/bang-commands/commands-wiki.js +53 -14
  383. package/dist/core/bang-commands/format-utils.d.ts +15 -3
  384. package/dist/core/bang-commands/format-utils.js +23 -4
  385. package/dist/core/bang-commands/index.d.ts +3 -1
  386. package/dist/core/bang-commands/index.js +14 -1
  387. package/dist/core/bang-commands/registry.d.ts +59 -1
  388. package/dist/core/bang-commands/registry.js +175 -23
  389. package/dist/core/bang-commands/user-commands.d.ts +0 -1
  390. package/dist/core/bang-commands/user-commands.js +0 -1
  391. package/dist/core/browser-history/pre-morning-digest-job.d.ts +79 -0
  392. package/dist/core/browser-history/pre-morning-digest-job.js +89 -0
  393. package/dist/core/browser-history/research-cluster-fanout.d.ts +40 -0
  394. package/dist/core/browser-history/research-cluster-fanout.js +47 -0
  395. package/dist/core/browser-history/research-events.d.ts +37 -0
  396. package/dist/core/browser-history/research-events.js +70 -0
  397. package/dist/core/channel-timeline.d.ts +18 -2
  398. package/dist/core/channel-timeline.js +44 -1
  399. package/dist/core/character-block.d.ts +0 -1
  400. package/dist/core/character-block.js +0 -1
  401. package/dist/core/context/activity-sources.d.ts +3 -4
  402. package/dist/core/context/activity-sources.js +0 -1
  403. package/dist/core/context/activity-view-reconciler.d.ts +1 -2
  404. package/dist/core/context/activity-view-reconciler.js +10 -10
  405. package/dist/core/context/activity-view-runner.d.ts +0 -1
  406. package/dist/core/context/activity-view-runner.js +11 -3
  407. package/dist/core/context/default-schedules-reconciler.d.ts +1 -2
  408. package/dist/core/context/default-schedules-reconciler.js +1 -2
  409. package/dist/core/context/default-schedules-runner.d.ts +0 -1
  410. package/dist/core/context/default-schedules-runner.js +44 -5
  411. package/dist/core/context/domain-index-reconciler.d.ts +3 -1
  412. package/dist/core/context/domain-index-reconciler.js +11 -5
  413. package/dist/core/context/domain-index-runner.d.ts +0 -1
  414. package/dist/core/context/domain-index-runner.js +9 -2
  415. package/dist/core/context/entity-mirror.d.ts +9 -7
  416. package/dist/core/context/entity-mirror.js +21 -9
  417. package/dist/core/context/entity-source-rename.d.ts +0 -1
  418. package/dist/core/context/entity-source-rename.js +9 -2
  419. package/dist/core/context/index-reconciler.d.ts +26 -5
  420. package/dist/core/context/index-reconciler.js +110 -56
  421. package/dist/core/context/policy-index-reconciler.d.ts +6 -7
  422. package/dist/core/context/policy-index-reconciler.js +6 -7
  423. package/dist/core/context/policy-index-runner.d.ts +2 -3
  424. package/dist/core/context/policy-index-runner.js +10 -3
  425. package/dist/core/context/reconciler-runner.d.ts +0 -1
  426. package/dist/core/context/reconciler-runner.js +46 -6
  427. package/dist/core/context/reconciler-section.d.ts +30 -0
  428. package/dist/core/context/reconciler-section.js +39 -0
  429. package/dist/core/context-builder-calendar.d.ts +36 -0
  430. package/dist/core/context-builder-calendar.js +245 -0
  431. package/dist/core/context-builder-conversation.d.ts +95 -0
  432. package/dist/core/context-builder-conversation.js +444 -0
  433. package/dist/core/context-builder-format.d.ts +8 -0
  434. package/dist/core/context-builder-format.js +22 -0
  435. package/dist/core/context-builder-projects.d.ts +11 -0
  436. package/dist/core/context-builder-projects.js +102 -0
  437. package/dist/core/context-builder-yesterday.d.ts +30 -0
  438. package/dist/core/context-builder-yesterday.js +198 -0
  439. package/dist/core/context-builder.d.ts +73 -124
  440. package/dist/core/context-builder.js +272 -903
  441. package/dist/core/context-file-serializer.d.ts +92 -0
  442. package/dist/core/context-file-serializer.js +126 -0
  443. package/dist/core/context-frontmatter-extract.d.ts +32 -0
  444. package/dist/core/context-frontmatter-extract.js +98 -0
  445. package/dist/core/context-frontmatter.d.ts +14 -1
  446. package/dist/core/context-frontmatter.js +180 -109
  447. package/dist/core/context-health.d.ts +0 -1
  448. package/dist/core/context-health.js +25 -14
  449. package/dist/core/context-paths.d.ts +128 -85
  450. package/dist/core/context-paths.js +190 -108
  451. package/dist/core/context-staleness.d.ts +0 -1
  452. package/dist/core/context-staleness.js +2 -3
  453. package/dist/core/context-validation/frontmatter.d.ts +73 -0
  454. package/dist/core/context-validation/frontmatter.js +216 -0
  455. package/dist/core/context-validation/index.d.ts +19 -0
  456. package/dist/core/context-validation/index.js +19 -0
  457. package/dist/core/context-validation/prepare-write.d.ts +94 -0
  458. package/dist/core/context-validation/prepare-write.js +145 -0
  459. package/dist/core/context-validation/routine-rulebook.d.ts +59 -0
  460. package/dist/core/context-validation/routine-rulebook.js +155 -0
  461. package/dist/core/context-validation/section.d.ts +40 -0
  462. package/dist/core/context-validation/section.js +90 -0
  463. package/dist/core/context-validation/snapshot-debounce.d.ts +51 -0
  464. package/dist/core/context-validation/snapshot-debounce.js +109 -0
  465. package/dist/core/context-validation/today.d.ts +84 -0
  466. package/dist/core/context-validation/today.js +167 -0
  467. package/dist/core/context-vault-aliases.d.ts +107 -0
  468. package/dist/core/context-vault-aliases.js +253 -0
  469. package/dist/core/custom-routine-scheduler.d.ts +5 -6
  470. package/dist/core/custom-routine-scheduler.js +3 -4
  471. package/dist/core/daemon-api-cli.d.ts +6 -6
  472. package/dist/core/daemon-api-cli.js +132 -33
  473. package/dist/core/dashboard-session-cleanup.d.ts +0 -1
  474. package/dist/core/dashboard-session-cleanup.js +0 -1
  475. package/dist/core/dashboard-session-controls.d.ts +0 -1
  476. package/dist/core/dashboard-session-controls.js +0 -1
  477. package/dist/core/delegated-connector-health.d.ts +0 -1
  478. package/dist/core/delegated-connector-health.js +0 -1
  479. package/dist/core/dispatcher-date-utils.d.ts +0 -1
  480. package/dist/core/dispatcher-date-utils.js +0 -1
  481. package/dist/core/dispatcher-error-handling.d.ts +13 -1
  482. package/dist/core/dispatcher-error-handling.js +69 -1
  483. package/dist/core/dispatcher-hourly-check.d.ts +73 -2
  484. package/dist/core/dispatcher-hourly-check.js +258 -153
  485. package/dist/core/dispatcher-message-handler.d.ts +32 -2
  486. package/dist/core/dispatcher-message-handler.js +310 -53
  487. package/dist/core/dispatcher-morning-routine.d.ts +38 -31
  488. package/dist/core/dispatcher-morning-routine.js +238 -156
  489. package/dist/core/dispatcher-prompt.d.ts +4 -2
  490. package/dist/core/dispatcher-prompt.js +19 -4
  491. package/dist/core/dispatcher-repository-helpers.d.ts +0 -1
  492. package/dist/core/dispatcher-repository-helpers.js +5 -2
  493. package/dist/core/dispatcher-result-processor.d.ts +20 -1
  494. package/dist/core/dispatcher-result-processor.js +94 -5
  495. package/dist/core/dispatcher-scheduled-browser-task.d.ts +91 -0
  496. package/dist/core/dispatcher-scheduled-browser-task.js +228 -0
  497. package/dist/core/dispatcher-scheduled-tasks.d.ts +69 -2
  498. package/dist/core/dispatcher-scheduled-tasks.js +452 -29
  499. package/dist/core/dispatcher-types.d.ts +140 -13
  500. package/dist/core/dispatcher-types.js +0 -1
  501. package/dist/core/dispatcher.d.ts +194 -5
  502. package/dist/core/dispatcher.js +487 -11
  503. package/dist/core/dm-freshness-metrics.d.ts +6 -6
  504. package/dist/core/dm-freshness-metrics.js +7 -7
  505. package/dist/core/dm-token-router.d.ts +58 -0
  506. package/dist/core/dm-token-router.js +58 -0
  507. package/dist/core/docs/citation-validator.d.ts +0 -1
  508. package/dist/core/docs/citation-validator.js +0 -1
  509. package/dist/core/docs/extract-terms.d.ts +0 -1
  510. package/dist/core/docs/extract-terms.js +0 -1
  511. package/dist/core/docs/indexer.d.ts +0 -1
  512. package/dist/core/docs/indexer.js +0 -1
  513. package/dist/core/drift-effects.d.ts +0 -1
  514. package/dist/core/drift-effects.js +6 -3
  515. package/dist/core/evening-review-verify.d.ts +163 -0
  516. package/dist/core/evening-review-verify.js +636 -0
  517. package/dist/core/event-bus.d.ts +0 -1
  518. package/dist/core/event-bus.js +0 -1
  519. package/dist/core/fetch-window-prompt-loader.d.ts +46 -0
  520. package/dist/core/fetch-window-prompt-loader.js +71 -0
  521. package/dist/core/git-project-docs.d.ts +0 -1
  522. package/dist/core/git-project-docs.js +13 -6
  523. package/dist/core/health-monitor.d.ts +2 -2
  524. package/dist/core/health-monitor.js +6 -3
  525. package/dist/core/heartbeat.d.ts +0 -1
  526. package/dist/core/heartbeat.js +0 -1
  527. package/dist/core/injection-policy.d.ts +107 -0
  528. package/dist/core/injection-policy.js +117 -0
  529. package/dist/core/integration-health.d.ts +0 -1
  530. package/dist/core/integration-health.js +1 -2
  531. package/dist/core/integration-lifecycle.d.ts +0 -1
  532. package/dist/core/integration-lifecycle.js +0 -1
  533. package/dist/core/integration-main-backend.d.ts +0 -1
  534. package/dist/core/integration-main-backend.js +11 -4
  535. package/dist/core/integration-probe.d.ts +0 -1
  536. package/dist/core/integration-probe.js +0 -1
  537. package/dist/core/management-md-write-lock.d.ts +1 -2
  538. package/dist/core/management-md-write-lock.js +1 -2
  539. package/dist/core/management-md.d.ts +24 -10
  540. package/dist/core/management-md.js +65 -33
  541. package/dist/core/management-registry.d.ts +16 -25
  542. package/dist/core/management-registry.js +32 -54
  543. package/dist/core/management-telemetry.d.ts +1 -2
  544. package/dist/core/management-telemetry.js +1 -2
  545. package/dist/core/message-recorder.d.ts +3 -4
  546. package/dist/core/message-recorder.js +3 -4
  547. package/dist/core/metrics.d.ts +88 -2
  548. package/dist/core/metrics.js +78 -3
  549. package/dist/core/migration-backup.d.ts +0 -1
  550. package/dist/core/migration-backup.js +11 -1
  551. package/dist/core/morning/agent-journal-appender.d.ts +264 -0
  552. package/dist/core/morning/agent-journal-appender.js +632 -0
  553. package/dist/core/morning/daily-journal-composer.d.ts +183 -0
  554. package/dist/core/morning/daily-journal-composer.js +421 -0
  555. package/dist/core/morning/handoff-parser.d.ts +43 -0
  556. package/dist/core/morning/handoff-parser.js +115 -0
  557. package/dist/core/morning/journal-skeleton-builder.d.ts +155 -0
  558. package/dist/core/morning/journal-skeleton-builder.js +301 -0
  559. package/dist/core/morning/orchestrator.d.ts +424 -0
  560. package/dist/core/morning/orchestrator.js +1230 -0
  561. package/dist/core/morning/parent-audit-emitter.d.ts +80 -0
  562. package/dist/core/morning/parent-audit-emitter.js +118 -0
  563. package/dist/core/morning/partial-extract-streak.d.ts +76 -0
  564. package/dist/core/morning/partial-extract-streak.js +165 -0
  565. package/dist/core/morning/roadmap-skeleton-builder.d.ts +158 -0
  566. package/dist/core/morning/roadmap-skeleton-builder.js +337 -0
  567. package/dist/core/output-language-policy.d.ts +0 -1
  568. package/dist/core/output-language-policy.js +7 -8
  569. package/dist/core/overview-write-lock.d.ts +0 -1
  570. package/dist/core/overview-write-lock.js +0 -1
  571. package/dist/core/path-compat.d.ts +0 -1
  572. package/dist/core/path-compat.js +0 -1
  573. package/dist/core/path-rewrite.d.ts +1 -2
  574. package/dist/core/path-rewrite.js +0 -1
  575. package/dist/core/policy-files.d.ts +39 -13
  576. package/dist/core/policy-files.js +62 -12
  577. package/dist/core/pre-pass-freshness.d.ts +27 -0
  578. package/dist/core/pre-pass-freshness.js +9 -0
  579. package/dist/core/previous-week-digest.d.ts +129 -0
  580. package/dist/core/previous-week-digest.js +256 -0
  581. package/dist/core/profile-questions/seed.d.ts +2 -3
  582. package/dist/core/profile-questions/seed.js +4 -4
  583. package/dist/core/profile-questions/slot-filled.d.ts +0 -1
  584. package/dist/core/profile-questions/slot-filled.js +0 -1
  585. package/dist/core/prompts.d.ts +0 -1
  586. package/dist/core/prompts.js +6 -7
  587. package/dist/core/quiet-hours-sync.d.ts +0 -1
  588. package/dist/core/quiet-hours-sync.js +7 -1
  589. package/dist/core/quiet-hours.d.ts +35 -0
  590. package/dist/core/quiet-hours.js +93 -0
  591. package/dist/core/read-sensitive-token-manager.d.ts +0 -1
  592. package/dist/core/read-sensitive-token-manager.js +0 -1
  593. package/dist/core/recurrence.d.ts +13 -1
  594. package/dist/core/recurrence.js +108 -14
  595. package/dist/core/reinstall.d.ts +5 -1
  596. package/dist/core/reinstall.js +12 -2
  597. package/dist/core/release-assets.d.ts +39 -4
  598. package/dist/core/release-assets.js +83 -8
  599. package/dist/core/repository-management-docs.d.ts +0 -1
  600. package/dist/core/repository-management-docs.js +32 -11
  601. package/dist/core/retention.d.ts +49 -4
  602. package/dist/core/retention.js +218 -5
  603. package/dist/core/review-context.d.ts +10 -1
  604. package/dist/core/review-context.js +51 -6
  605. package/dist/core/roadmap-horizon.d.ts +0 -1
  606. package/dist/core/roadmap-horizon.js +0 -1
  607. package/dist/core/roadmap-ids.d.ts +4 -6
  608. package/dist/core/roadmap-ids.js +4 -6
  609. package/dist/core/roadmap-maintenance.d.ts +212 -0
  610. package/dist/core/roadmap-maintenance.js +732 -0
  611. package/dist/core/roadmap-refresh-triggers.d.ts +0 -1
  612. package/dist/core/roadmap-refresh-triggers.js +0 -1
  613. package/dist/core/roadmap-truncate.d.ts +0 -1
  614. package/dist/core/roadmap-truncate.js +0 -1
  615. package/dist/core/roadmap-validate.d.ts +5 -1
  616. package/dist/core/roadmap-validate.js +12 -75
  617. package/dist/core/roadmap-write-lock.d.ts +0 -1
  618. package/dist/core/roadmap-write-lock.js +0 -1
  619. package/dist/core/routine-acquisition-plan.d.ts +43 -8
  620. package/dist/core/routine-acquisition-plan.js +99 -9
  621. package/dist/core/routine-fetch-window-retry.d.ts +40 -3
  622. package/dist/core/routine-fetch-window-retry.js +90 -9
  623. package/dist/core/routine-fetch-window-runner.d.ts +55 -22
  624. package/dist/core/routine-fetch-window-runner.js +287 -41
  625. package/dist/core/routine-windows.d.ts +17 -19
  626. package/dist/core/routine-windows.js +80 -44
  627. package/dist/core/schedule-insert-helper.d.ts +0 -1
  628. package/dist/core/schedule-insert-helper.js +0 -1
  629. package/dist/core/schedule-maintenance.d.ts +0 -1
  630. package/dist/core/schedule-maintenance.js +0 -1
  631. package/dist/core/scheduler.d.ts +179 -37
  632. package/dist/core/scheduler.js +614 -91
  633. package/dist/core/semaphore.d.ts +0 -1
  634. package/dist/core/semaphore.js +0 -1
  635. package/dist/core/session-gate.d.ts +0 -1
  636. package/dist/core/session-gate.js +0 -1
  637. package/dist/core/session-manager.d.ts +25 -7
  638. package/dist/core/session-manager.js +32 -16
  639. package/dist/core/signal-detector.d.ts +2 -3
  640. package/dist/core/signal-detector.js +3 -4
  641. package/dist/core/skeleton.d.ts +1 -2
  642. package/dist/core/skeleton.js +31 -32
  643. package/dist/core/skill-curation/apply-proposal.d.ts +0 -1
  644. package/dist/core/skill-curation/apply-proposal.js +0 -1
  645. package/dist/core/skill-curation/auto-revert.d.ts +0 -1
  646. package/dist/core/skill-curation/auto-revert.js +4 -5
  647. package/dist/core/skill-curation/classify-diff.d.ts +0 -1
  648. package/dist/core/skill-curation/classify-diff.js +0 -0
  649. package/dist/core/skill-curation/declarations.d.ts +0 -1
  650. package/dist/core/skill-curation/declarations.js +0 -1
  651. package/dist/core/skill-curation/knowledge-map.d.ts +0 -1
  652. package/dist/core/skill-curation/knowledge-map.js +0 -1
  653. package/dist/core/skill-curation/orphan-overlay.d.ts +2 -3
  654. package/dist/core/skill-curation/orphan-overlay.js +5 -6
  655. package/dist/core/skill-curation/overlay-store.d.ts +6 -4
  656. package/dist/core/skill-curation/overlay-store.js +12 -7
  657. package/dist/core/skill-curation/render/convention-notes.d.ts +0 -1
  658. package/dist/core/skill-curation/render/convention-notes.js +0 -1
  659. package/dist/core/skill-curation/render/cross-references.d.ts +0 -1
  660. package/dist/core/skill-curation/render/cross-references.js +0 -1
  661. package/dist/core/skill-curation/render/frontmatter-schema.d.ts +0 -1
  662. package/dist/core/skill-curation/render/frontmatter-schema.js +0 -1
  663. package/dist/core/skill-curation/render/index.d.ts +0 -1
  664. package/dist/core/skill-curation/render/index.js +0 -1
  665. package/dist/core/skill-curation/render/knowledge-layout.d.ts +0 -1
  666. package/dist/core/skill-curation/render/knowledge-layout.js +0 -1
  667. package/dist/core/skill-curation/render/routing-table.d.ts +0 -1
  668. package/dist/core/skill-curation/render/routing-table.js +0 -1
  669. package/dist/core/skill-curation/render/search-recipes.d.ts +0 -1
  670. package/dist/core/skill-curation/render/search-recipes.js +0 -1
  671. package/dist/core/skill-curation/run-token.d.ts +0 -1
  672. package/dist/core/skill-curation/run-token.js +0 -1
  673. package/dist/core/skill-curation/signals.d.ts +0 -1
  674. package/dist/core/skill-curation/signals.js +0 -1
  675. package/dist/core/skill-curation/smoke-test.d.ts +0 -1
  676. package/dist/core/skill-curation/smoke-test.js +0 -1
  677. package/dist/core/skill-curation/splicer.d.ts +0 -1
  678. package/dist/core/skill-curation/splicer.js +0 -1
  679. package/dist/core/skill-curation/workdir.d.ts +0 -1
  680. package/dist/core/skill-curation/workdir.js +0 -1
  681. package/dist/core/skill-source-paths.d.ts +0 -1
  682. package/dist/core/skill-source-paths.js +0 -1
  683. package/dist/core/skills-compiler-cli-renderer.d.ts +79 -0
  684. package/dist/core/skills-compiler-cli-renderer.js +289 -0
  685. package/dist/core/skills-compiler-denied-tools.d.ts +57 -0
  686. package/dist/core/skills-compiler-denied-tools.js +204 -0
  687. package/dist/core/skills-compiler-skill-index.d.ts +117 -0
  688. package/dist/core/skills-compiler-skill-index.js +262 -0
  689. package/dist/core/skills-compiler-tree.d.ts +38 -0
  690. package/dist/core/skills-compiler-tree.js +157 -0
  691. package/dist/core/skills-compiler-types.d.ts +46 -0
  692. package/dist/core/skills-compiler-types.js +1 -0
  693. package/dist/core/skills-compiler-variants.d.ts +117 -0
  694. package/dist/core/skills-compiler-variants.js +337 -0
  695. package/dist/core/skills-compiler.d.ts +169 -217
  696. package/dist/core/skills-compiler.js +385 -940
  697. package/dist/core/skills-manifest.d.ts +133 -1
  698. package/dist/core/skills-manifest.js +507 -40
  699. package/dist/core/system-reset.d.ts +1 -2
  700. package/dist/core/system-reset.js +1 -2
  701. package/dist/core/template-store.d.ts +2 -3
  702. package/dist/core/template-store.js +7 -4
  703. package/dist/core/template-versions.d.ts +1 -2
  704. package/dist/core/template-versions.js +1 -2
  705. package/dist/core/today-agent-plan.d.ts +0 -1
  706. package/dist/core/today-agent-plan.js +0 -1
  707. package/dist/core/today-direct-writer.d.ts +11 -2
  708. package/dist/core/today-direct-writer.js +42 -27
  709. package/dist/core/today-write-lock.d.ts +0 -1
  710. package/dist/core/today-write-lock.js +0 -1
  711. package/dist/core/trigger-dispatch.d.ts +0 -1
  712. package/dist/core/trigger-dispatch.js +0 -1
  713. package/dist/core/trigger-evaluator.d.ts +0 -1
  714. package/dist/core/trigger-evaluator.js +0 -1
  715. package/dist/core/user-skills-root.d.ts +24 -0
  716. package/dist/core/user-skills-root.js +29 -0
  717. package/dist/core/wiki/approval-queue.d.ts +0 -1
  718. package/dist/core/wiki/approval-queue.js +7 -3
  719. package/dist/core/wiki/bridge.d.ts +0 -1
  720. package/dist/core/wiki/bridge.js +0 -1
  721. package/dist/core/wiki/compile-lock.d.ts +0 -1
  722. package/dist/core/wiki/compile-lock.js +0 -1
  723. package/dist/core/wiki/compile-preview.d.ts +0 -1
  724. package/dist/core/wiki/compile-preview.js +0 -1
  725. package/dist/core/wiki/cost-estimate.d.ts +0 -1
  726. package/dist/core/wiki/cost-estimate.js +23 -3
  727. package/dist/core/wiki/dispatcher.d.ts +1 -21
  728. package/dist/core/wiki/dispatcher.js +0 -26
  729. package/dist/core/wiki/git-precompile.d.ts +9 -1
  730. package/dist/core/wiki/git-precompile.js +7 -2
  731. package/dist/core/wiki/import-migrate.d.ts +0 -1
  732. package/dist/core/wiki/import-migrate.js +0 -1
  733. package/dist/core/wiki/import-probe.d.ts +0 -1
  734. package/dist/core/wiki/import-probe.js +7 -5
  735. package/dist/core/wiki/index-cache.d.ts +0 -1
  736. package/dist/core/wiki/index-cache.js +0 -1
  737. package/dist/core/wiki/multi-url-dispatch.d.ts +0 -1
  738. package/dist/core/wiki/multi-url-dispatch.js +19 -9
  739. package/dist/core/wiki/wiki-fts.d.ts +0 -1
  740. package/dist/core/wiki/wiki-fts.js +0 -1
  741. package/dist/core/wiki/workspaces.d.ts +17 -2
  742. package/dist/core/wiki/workspaces.js +28 -17
  743. package/dist/core/wiki/write-strategy.d.ts +0 -1
  744. package/dist/core/wiki/write-strategy.js +19 -3
  745. package/dist/core/workdir.d.ts +38 -2
  746. package/dist/core/workdir.js +159 -17
  747. package/dist/db/agent-executions-store.d.ts +149 -0
  748. package/dist/db/agent-executions-store.js +209 -0
  749. package/dist/db/agents-store.d.ts +179 -0
  750. package/dist/db/agents-store.js +264 -0
  751. package/dist/db/automation-triggers.d.ts +0 -1
  752. package/dist/db/automation-triggers.js +0 -1
  753. package/dist/db/browser-automation-b4-config-store.d.ts +68 -0
  754. package/dist/db/browser-automation-b4-config-store.js +111 -0
  755. package/dist/db/browser-automation-purchase-primary-channels-store.d.ts +48 -0
  756. package/dist/db/browser-automation-purchase-primary-channels-store.js +88 -0
  757. package/dist/db/browser-automation-purchase-replies-store.d.ts +48 -0
  758. package/dist/db/browser-automation-purchase-replies-store.js +71 -0
  759. package/dist/db/browser-automation-purchase-tokens-store.d.ts +276 -0
  760. package/dist/db/browser-automation-purchase-tokens-store.js +483 -0
  761. package/dist/db/browser-automation-store.d.ts +37 -0
  762. package/dist/db/browser-automation-store.js +41 -0
  763. package/dist/db/browser-history-store.d.ts +231 -0
  764. package/dist/db/browser-history-store.js +601 -0
  765. package/dist/db/browser-task-action-log-store.d.ts +41 -0
  766. package/dist/db/browser-task-action-log-store.js +74 -0
  767. package/dist/db/browser-task-clarifications-store.d.ts +67 -0
  768. package/dist/db/browser-task-clarifications-store.js +118 -0
  769. package/dist/db/browser-task-final-confirm-tokens-store.d.ts +108 -0
  770. package/dist/db/browser-task-final-confirm-tokens-store.js +251 -0
  771. package/dist/db/browser-task-store.d.ts +114 -0
  772. package/dist/db/browser-task-store.js +250 -0
  773. package/dist/db/client.d.ts +0 -1
  774. package/dist/db/client.js +0 -1
  775. package/dist/db/entities-store.d.ts +6 -7
  776. package/dist/db/entities-store.js +5 -6
  777. package/dist/db/hourly-check-signals.d.ts +0 -1
  778. package/dist/db/hourly-check-signals.js +121 -36
  779. package/dist/db/integration-probe-store.d.ts +0 -1
  780. package/dist/db/integration-probe-store.js +0 -1
  781. package/dist/db/integrations-store.d.ts +0 -1
  782. package/dist/db/integrations-store.js +0 -1
  783. package/dist/db/managed-chromium-sites-store.d.ts +110 -0
  784. package/dist/db/managed-chromium-sites-store.js +174 -0
  785. package/dist/db/managed-chromium-state.d.ts +58 -0
  786. package/dist/db/managed-chromium-state.js +104 -0
  787. package/dist/db/managed-tasks-store.d.ts +0 -1
  788. package/dist/db/managed-tasks-store.js +0 -1
  789. package/dist/db/management-parse-failures-store.d.ts +0 -1
  790. package/dist/db/management-parse-failures-store.js +0 -1
  791. package/dist/db/migrations/context-vault-restructure.d.ts +263 -0
  792. package/dist/db/migrations/context-vault-restructure.js +1384 -0
  793. package/dist/db/migrations.d.ts +111 -0
  794. package/dist/db/migrations.js +476 -0
  795. package/dist/db/observations.d.ts +1 -2
  796. package/dist/db/observations.js +13 -4
  797. package/dist/db/recurring-schedules.d.ts +44 -3
  798. package/dist/db/recurring-schedules.js +116 -21
  799. package/dist/db/repositories-store.d.ts +2 -2
  800. package/dist/db/repositories-store.js +41 -4
  801. package/dist/db/runtime-state.d.ts +32 -2
  802. package/dist/db/runtime-state.js +33 -2
  803. package/dist/db/schema.d.ts +0 -1
  804. package/dist/db/schema.js +923 -54
  805. package/dist/db/sot-bindings-store.d.ts +0 -1
  806. package/dist/db/sot-bindings-store.js +0 -1
  807. package/dist/db/voice-transcripts-store.d.ts +0 -1
  808. package/dist/db/voice-transcripts-store.js +0 -1
  809. package/dist/db/wiki-store.d.ts +0 -1
  810. package/dist/db/wiki-store.js +3 -1
  811. package/dist/index.d.ts +0 -1
  812. package/dist/index.js +408 -1522
  813. package/dist/init.d.ts +0 -1
  814. package/dist/init.js +0 -2
  815. package/dist/log-buffer.d.ts +0 -1
  816. package/dist/log-buffer.js +0 -2
  817. package/dist/logging.d.ts +0 -1
  818. package/dist/logging.js +0 -2
  819. package/dist/management-rules.d.ts +0 -1
  820. package/dist/management-rules.js +0 -1
  821. package/dist/messaging/browser-task-mcp-notifier.d.ts +77 -0
  822. package/dist/messaging/browser-task-mcp-notifier.js +164 -0
  823. package/dist/messaging/browser-task-screenshot-attachment.d.ts +62 -0
  824. package/dist/messaging/browser-task-screenshot-attachment.js +115 -0
  825. package/dist/messaging/constants.d.ts +0 -1
  826. package/dist/messaging/constants.js +0 -1
  827. package/dist/messaging/final-confirm-system-message-sender.d.ts +53 -0
  828. package/dist/messaging/final-confirm-system-message-sender.js +165 -0
  829. package/dist/messaging/magic-phrase.d.ts +16 -1
  830. package/dist/messaging/magic-phrase.js +60 -3
  831. package/dist/messaging/owner-channels.d.ts +40 -1
  832. package/dist/messaging/owner-channels.js +59 -1
  833. package/dist/messaging/purchase-system-message-sender.d.ts +54 -0
  834. package/dist/messaging/purchase-system-message-sender.js +213 -0
  835. package/dist/messaging/setup-welcome-dm.d.ts +0 -1
  836. package/dist/messaging/setup-welcome-dm.js +0 -1
  837. package/dist/messaging/url-extract.d.ts +0 -1
  838. package/dist/messaging/url-extract.js +5 -1
  839. package/dist/observers/browser-history-poller.d.ts +113 -0
  840. package/dist/observers/browser-history-poller.js +404 -0
  841. package/dist/observers/calendar-poller.d.ts +2 -1
  842. package/dist/observers/calendar-poller.js +76 -55
  843. package/dist/observers/context-index-reconciler-observer.d.ts +0 -1
  844. package/dist/observers/context-index-reconciler-observer.js +0 -1
  845. package/dist/observers/delegated-probe-observer.d.ts +0 -1
  846. package/dist/observers/delegated-probe-observer.js +0 -1
  847. package/dist/observers/delegated-sync-worker.d.ts +70 -10
  848. package/dist/observers/delegated-sync-worker.js +138 -12
  849. package/dist/observers/entity-mirror-observer.d.ts +0 -1
  850. package/dist/observers/entity-mirror-observer.js +0 -1
  851. package/dist/observers/git-delegated-cron.d.ts +0 -1
  852. package/dist/observers/git-delegated-cron.js +0 -1
  853. package/dist/observers/git-event-classifier.d.ts +0 -1
  854. package/dist/observers/git-event-classifier.js +0 -1
  855. package/dist/observers/git-watcher.d.ts +22 -1
  856. package/dist/observers/git-watcher.js +38 -9
  857. package/dist/observers/github-poller-classifier.d.ts +0 -1
  858. package/dist/observers/github-poller-classifier.js +0 -1
  859. package/dist/observers/github-poller.d.ts +3 -1
  860. package/dist/observers/github-poller.js +28 -3
  861. package/dist/observers/imminent-event-scheduler.d.ts +2 -1
  862. package/dist/observers/imminent-event-scheduler.js +30 -2
  863. package/dist/observers/mail-poller.d.ts +0 -1
  864. package/dist/observers/mail-poller.js +45 -18
  865. package/dist/observers/mail-reconciliation.d.ts +1 -2
  866. package/dist/observers/mail-reconciliation.js +1 -2
  867. package/dist/observers/manager.d.ts +7 -8
  868. package/dist/observers/manager.js +7 -8
  869. package/dist/observers/notion-poller.d.ts +2 -1
  870. package/dist/observers/notion-poller.js +44 -7
  871. package/dist/observers/observation-summarizer/index.d.ts +0 -1
  872. package/dist/observers/observation-summarizer/index.js +0 -1
  873. package/dist/observers/observation-summarizer/pre-filter.d.ts +0 -1
  874. package/dist/observers/observation-summarizer/pre-filter.js +0 -1
  875. package/dist/observers/observation-summarizer/response-parser.d.ts +0 -1
  876. package/dist/observers/observation-summarizer/response-parser.js +7 -7
  877. package/dist/observers/observation-summarizer/summarizer-client.d.ts +0 -1
  878. package/dist/observers/observation-summarizer/summarizer-client.js +0 -1
  879. package/dist/observers/observation-summarizer/summarizer-prompts.d.ts +0 -1
  880. package/dist/observers/observation-summarizer/summarizer-prompts.js +0 -1
  881. package/dist/observers/observation-summarizer/worker.d.ts +2 -1
  882. package/dist/observers/observation-summarizer/worker.js +25 -1
  883. package/dist/observers/obsidian-watcher.d.ts +0 -1
  884. package/dist/observers/obsidian-watcher.js +0 -1
  885. package/dist/observers/poll-guard.d.ts +62 -0
  886. package/dist/observers/poll-guard.js +88 -0
  887. package/dist/observers/primary-vault-watcher.d.ts +0 -1
  888. package/dist/observers/primary-vault-watcher.js +0 -1
  889. package/dist/observers/repository-management-cron.d.ts +0 -1
  890. package/dist/observers/repository-management-cron.js +0 -1
  891. package/dist/observers/skill-curation-walker.d.ts +0 -1
  892. package/dist/observers/skill-curation-walker.js +0 -1
  893. package/dist/safety/absolute-block-audit.d.ts +17 -1
  894. package/dist/safety/absolute-block-audit.js +28 -3
  895. package/dist/safety/agent-write-tracker.d.ts +42 -2
  896. package/dist/safety/agent-write-tracker.js +81 -2
  897. package/dist/safety/always-disallowed.d.ts +93 -3
  898. package/dist/safety/always-disallowed.js +504 -20
  899. package/dist/safety/audit.d.ts +37 -6
  900. package/dist/safety/audit.js +263 -15
  901. package/dist/safety/integration-write-tracker.d.ts +0 -1
  902. package/dist/safety/integration-write-tracker.js +0 -1
  903. package/dist/safety/outbound-purchase-guard.d.ts +60 -0
  904. package/dist/safety/outbound-purchase-guard.js +82 -0
  905. package/dist/safety/risk-classifier.d.ts +21 -6
  906. package/dist/safety/risk-classifier.js +296 -70
  907. package/dist/safety/subprocess-block-scanner.d.ts +88 -0
  908. package/dist/safety/subprocess-block-scanner.js +176 -0
  909. package/dist/scheduler/hourly-check-gate.d.ts +23 -10
  910. package/dist/scheduler/hourly-check-gate.js +11 -7
  911. package/dist/secrets/backend-api-key-env.d.ts +0 -1
  912. package/dist/secrets/backend-api-key-env.js +1 -1
  913. package/dist/secrets/codex-home-materializer.d.ts +0 -1
  914. package/dist/secrets/codex-home-materializer.js +0 -1
  915. package/dist/secrets/encrypted-blob-store.d.ts +0 -1
  916. package/dist/secrets/encrypted-blob-store.js +0 -1
  917. package/dist/secrets/platform-secret-store.d.ts +0 -1
  918. package/dist/secrets/platform-secret-store.js +0 -1
  919. package/dist/secrets/redaction.d.ts +0 -1
  920. package/dist/secrets/redaction.js +0 -1
  921. package/dist/secrets/secret-broker.d.ts +0 -2
  922. package/dist/secrets/secret-broker.js +0 -4
  923. package/dist/secrets/secret-names.d.ts +1 -2
  924. package/dist/secrets/secret-names.js +0 -2
  925. package/dist/secrets/secret-store.d.ts +0 -1
  926. package/dist/secrets/secret-store.js +0 -1
  927. package/dist/secrets/types.d.ts +0 -1
  928. package/dist/secrets/types.js +0 -1
  929. package/dist/services/apple-calendar/caldav-client.d.ts +0 -1
  930. package/dist/services/apple-calendar/caldav-client.js +0 -1
  931. package/dist/services/apple-calendar/caldav-codec.d.ts +0 -1
  932. package/dist/services/apple-calendar/caldav-codec.js +0 -1
  933. package/dist/services/apple-calendar/index.d.ts +0 -1
  934. package/dist/services/apple-calendar/index.js +0 -1
  935. package/dist/services/apple-calendar/service.d.ts +0 -1
  936. package/dist/services/apple-calendar/service.js +0 -1
  937. package/dist/services/apple-calendar/types.d.ts +0 -1
  938. package/dist/services/apple-calendar/types.js +0 -1
  939. package/dist/services/attachments/hardlink.d.ts +0 -1
  940. package/dist/services/attachments/hardlink.js +0 -1
  941. package/dist/services/attachments/sanitize.d.ts +0 -1
  942. package/dist/services/attachments/sanitize.js +0 -1
  943. package/dist/services/attachments/store.d.ts +0 -1
  944. package/dist/services/attachments/store.js +1 -3
  945. package/dist/services/browser-history/automation/browser-task-tools/dom-snapshot-output.d.ts +48 -0
  946. package/dist/services/browser-history/automation/browser-task-tools/dom-snapshot-output.js +98 -0
  947. package/dist/services/browser-history/automation/browser-task-tools/extract-cap.d.ts +76 -0
  948. package/dist/services/browser-history/automation/browser-task-tools/extract-cap.js +79 -0
  949. package/dist/services/browser-history/automation/browser-task-tools/extract-output.d.ts +66 -0
  950. package/dist/services/browser-history/automation/browser-task-tools/extract-output.js +69 -0
  951. package/dist/services/browser-history/automation/browser-task-tools/final-confirm-gate.d.ts +129 -0
  952. package/dist/services/browser-history/automation/browser-task-tools/final-confirm-gate.js +150 -0
  953. package/dist/services/browser-history/automation/browser-task-tools/loop-guard.d.ts +95 -0
  954. package/dist/services/browser-history/automation/browser-task-tools/loop-guard.js +123 -0
  955. package/dist/services/browser-history/automation/browser-task-tools/navigate-guard.d.ts +54 -0
  956. package/dist/services/browser-history/automation/browser-task-tools/navigate-guard.js +62 -0
  957. package/dist/services/browser-history/automation/browser-task-tools/schemas.d.ts +201 -0
  958. package/dist/services/browser-history/automation/browser-task-tools/schemas.js +248 -0
  959. package/dist/services/browser-history/automation/browser-task-tools/screenshot-output.d.ts +76 -0
  960. package/dist/services/browser-history/automation/browser-task-tools/screenshot-output.js +101 -0
  961. package/dist/services/browser-history/automation/browser-task-tools/server.d.ts +240 -0
  962. package/dist/services/browser-history/automation/browser-task-tools/server.js +1016 -0
  963. package/dist/services/browser-history/automation/cdp-network-interception.d.ts +74 -0
  964. package/dist/services/browser-history/automation/cdp-network-interception.js +106 -0
  965. package/dist/services/browser-history/automation/egress-denylist.d.ts +167 -0
  966. package/dist/services/browser-history/automation/egress-denylist.js +452 -0
  967. package/dist/services/browser-history/automation/external-content.d.ts +72 -0
  968. package/dist/services/browser-history/automation/external-content.js +0 -0
  969. package/dist/services/browser-history/automation/final-confirm-handler.d.ts +178 -0
  970. package/dist/services/browser-history/automation/final-confirm-handler.js +462 -0
  971. package/dist/services/browser-history/automation/lite-final-confirm-tokens.d.ts +100 -0
  972. package/dist/services/browser-history/automation/lite-final-confirm-tokens.js +126 -0
  973. package/dist/services/browser-history/automation/payment-path-blocker.d.ts +62 -0
  974. package/dist/services/browser-history/automation/payment-path-blocker.js +113 -0
  975. package/dist/services/browser-history/automation/purchase-handler.d.ts +344 -0
  976. package/dist/services/browser-history/automation/purchase-handler.js +666 -0
  977. package/dist/services/browser-history/automation/purchase-tokens.d.ts +265 -0
  978. package/dist/services/browser-history/automation/purchase-tokens.js +271 -0
  979. package/dist/services/browser-history/automation/site-registry.d.ts +176 -0
  980. package/dist/services/browser-history/automation/site-registry.js +290 -0
  981. package/dist/services/browser-history/automation/trace-store-paths.d.ts +80 -0
  982. package/dist/services/browser-history/automation/trace-store-paths.js +119 -0
  983. package/dist/services/browser-history/automation/trace-store.d.ts +29 -0
  984. package/dist/services/browser-history/automation/trace-store.js +63 -0
  985. package/dist/services/browser-history/cleanup-interests-reflection.d.ts +39 -0
  986. package/dist/services/browser-history/cleanup-interests-reflection.js +204 -0
  987. package/dist/services/browser-history/detectors/atlas.d.ts +2 -0
  988. package/dist/services/browser-history/detectors/atlas.js +4 -0
  989. package/dist/services/browser-history/detectors/chrome.d.ts +2 -0
  990. package/dist/services/browser-history/detectors/chrome.js +4 -0
  991. package/dist/services/browser-history/detectors/chromium.d.ts +2 -0
  992. package/dist/services/browser-history/detectors/chromium.js +193 -0
  993. package/dist/services/browser-history/detectors/comet.d.ts +2 -0
  994. package/dist/services/browser-history/detectors/comet.js +4 -0
  995. package/dist/services/browser-history/detectors/registry.d.ts +15 -0
  996. package/dist/services/browser-history/detectors/registry.js +82 -0
  997. package/dist/services/browser-history/history-mtime.d.ts +8 -0
  998. package/dist/services/browser-history/history-mtime.js +31 -0
  999. package/dist/services/browser-history/interests-reflection-lock.d.ts +26 -0
  1000. package/dist/services/browser-history/interests-reflection-lock.js +84 -0
  1001. package/dist/services/browser-history/lifecycle/chromium-install.d.ts +78 -0
  1002. package/dist/services/browser-history/lifecycle/chromium-install.js +206 -0
  1003. package/dist/services/browser-history/lifecycle/chromium-launcher.d.ts +77 -0
  1004. package/dist/services/browser-history/lifecycle/chromium-launcher.js +288 -0
  1005. package/dist/services/browser-history/lifecycle/failure-escalation.d.ts +3 -0
  1006. package/dist/services/browser-history/lifecycle/failure-escalation.js +54 -0
  1007. package/dist/services/browser-history/lifecycle/health-check.d.ts +8 -0
  1008. package/dist/services/browser-history/lifecycle/health-check.js +17 -0
  1009. package/dist/services/browser-history/lifecycle/platform.d.ts +99 -0
  1010. package/dist/services/browser-history/lifecycle/platform.js +597 -0
  1011. package/dist/services/browser-history/lifecycle/supervisor.d.ts +24 -0
  1012. package/dist/services/browser-history/lifecycle/supervisor.js +334 -0
  1013. package/dist/services/browser-history/managed-chromium/cdp-connect.d.ts +110 -0
  1014. package/dist/services/browser-history/managed-chromium/cdp-connect.js +171 -0
  1015. package/dist/services/browser-history/managed-chromium/instance-a-config.d.ts +116 -0
  1016. package/dist/services/browser-history/managed-chromium/instance-a-config.js +164 -0
  1017. package/dist/services/browser-history/managed-chromium/instance-a-launcher.d.ts +82 -0
  1018. package/dist/services/browser-history/managed-chromium/instance-a-launcher.js +200 -0
  1019. package/dist/services/browser-history/managed-chromium/managed-chromium-supervisor.d.ts +69 -0
  1020. package/dist/services/browser-history/managed-chromium/managed-chromium-supervisor.js +334 -0
  1021. package/dist/services/browser-history/managed-chromium/reauth-detector.d.ts +60 -0
  1022. package/dist/services/browser-history/managed-chromium/reauth-detector.js +179 -0
  1023. package/dist/services/browser-history/managed-chromium/sandbox-install.d.ts +69 -0
  1024. package/dist/services/browser-history/managed-chromium/sandbox-install.js +123 -0
  1025. package/dist/services/browser-history/managed-chromium/sandbox-launcher.d.ts +117 -0
  1026. package/dist/services/browser-history/managed-chromium/sandbox-launcher.js +244 -0
  1027. package/dist/services/browser-history/managed-chromium/setup-bootstrap.d.ts +149 -0
  1028. package/dist/services/browser-history/managed-chromium/setup-bootstrap.js +404 -0
  1029. package/dist/services/browser-history/managed-chromium/site-bootstrap.d.ts +133 -0
  1030. package/dist/services/browser-history/managed-chromium/site-bootstrap.js +360 -0
  1031. package/dist/services/browser-history/managed-chromium/supervisor-config.d.ts +75 -0
  1032. package/dist/services/browser-history/managed-chromium/supervisor-config.js +146 -0
  1033. package/dist/services/browser-history/managed-chromium/types.d.ts +199 -0
  1034. package/dist/services/browser-history/managed-chromium/types.js +116 -0
  1035. package/dist/services/browser-history/pipeline/amazon-extractor.d.ts +11 -0
  1036. package/dist/services/browser-history/pipeline/amazon-extractor.js +33 -0
  1037. package/dist/services/browser-history/pipeline/classifier.d.ts +7 -0
  1038. package/dist/services/browser-history/pipeline/classifier.js +208 -0
  1039. package/dist/services/browser-history/pipeline/cluster-extractor.d.ts +76 -0
  1040. package/dist/services/browser-history/pipeline/cluster-extractor.js +271 -0
  1041. package/dist/services/browser-history/pipeline/interests-block.d.ts +99 -0
  1042. package/dist/services/browser-history/pipeline/interests-block.js +333 -0
  1043. package/dist/services/browser-history/pipeline/meaningful-filter.d.ts +47 -0
  1044. package/dist/services/browser-history/pipeline/meaningful-filter.js +228 -0
  1045. package/dist/services/browser-history/pipeline/offer-rate-limit.d.ts +75 -0
  1046. package/dist/services/browser-history/pipeline/offer-rate-limit.js +188 -0
  1047. package/dist/services/browser-history/pipeline/offer-triggers.d.ts +150 -0
  1048. package/dist/services/browser-history/pipeline/offer-triggers.js +164 -0
  1049. package/dist/services/browser-history/pipeline/pre-morning-digest.d.ts +118 -0
  1050. package/dist/services/browser-history/pipeline/pre-morning-digest.js +399 -0
  1051. package/dist/services/browser-history/pipeline/project-matcher.d.ts +26 -0
  1052. package/dist/services/browser-history/pipeline/project-matcher.js +314 -0
  1053. package/dist/services/browser-history/pipeline/redactor.d.ts +15 -0
  1054. package/dist/services/browser-history/pipeline/redactor.js +119 -0
  1055. package/dist/services/browser-history/pipeline/reload-detector.d.ts +6 -0
  1056. package/dist/services/browser-history/pipeline/reload-detector.js +16 -0
  1057. package/dist/services/browser-history/pipeline/sensitive-hosts.d.ts +2 -0
  1058. package/dist/services/browser-history/pipeline/sensitive-hosts.js +173 -0
  1059. package/dist/services/browser-history/pipeline/summarizer.d.ts +52 -0
  1060. package/dist/services/browser-history/pipeline/summarizer.js +97 -0
  1061. package/dist/services/browser-history/pipeline/weekly-interests-summary.d.ts +139 -0
  1062. package/dist/services/browser-history/pipeline/weekly-interests-summary.js +227 -0
  1063. package/dist/services/browser-history/readers/chromium-reader.d.ts +30 -0
  1064. package/dist/services/browser-history/readers/chromium-reader.js +139 -0
  1065. package/dist/services/browser-history/readers/snapshot.d.ts +19 -0
  1066. package/dist/services/browser-history/readers/snapshot.js +67 -0
  1067. package/dist/services/browser-history/refresh-interests-reflection.d.ts +125 -0
  1068. package/dist/services/browser-history/refresh-interests-reflection.js +424 -0
  1069. package/dist/services/browser-history/types.d.ts +60 -0
  1070. package/dist/services/browser-history/types.js +1 -0
  1071. package/dist/services/browser-task/browser-task-allowlist.d.ts +107 -0
  1072. package/dist/services/browser-task/browser-task-allowlist.js +247 -0
  1073. package/dist/services/browser-task/browser-task-deadline-scanner.d.ts +76 -0
  1074. package/dist/services/browser-task/browser-task-deadline-scanner.js +68 -0
  1075. package/dist/services/browser-task/browser-task-driver.d.ts +188 -0
  1076. package/dist/services/browser-task/browser-task-driver.js +714 -0
  1077. package/dist/services/browser-task/browser-task-runner.d.ts +166 -0
  1078. package/dist/services/browser-task/browser-task-runner.js +781 -0
  1079. package/dist/services/browser-task/browser-task-slots.d.ts +212 -0
  1080. package/dist/services/browser-task/browser-task-slots.js +404 -0
  1081. package/dist/services/browser-task/browser-task-transition-events.d.ts +76 -0
  1082. package/dist/services/browser-task/browser-task-transition-events.js +80 -0
  1083. package/dist/services/calendar/outlook/graph-calendar-client.d.ts +0 -1
  1084. package/dist/services/calendar/outlook/graph-calendar-client.js +0 -1
  1085. package/dist/services/calendar.d.ts +0 -1
  1086. package/dist/services/calendar.js +21 -16
  1087. package/dist/services/delegated-backend-invoker.d.ts +0 -1
  1088. package/dist/services/delegated-backend-invoker.js +8 -2
  1089. package/dist/services/delegated-invoker-audit.d.ts +0 -1
  1090. package/dist/services/delegated-invoker-audit.js +5 -2
  1091. package/dist/services/delegated-invoker-cache-hits.d.ts +0 -1
  1092. package/dist/services/delegated-invoker-cache-hits.js +0 -1
  1093. package/dist/services/delegated-invoker-janitors.d.ts +0 -1
  1094. package/dist/services/delegated-invoker-janitors.js +0 -1
  1095. package/dist/services/delegated-invoker-utils.d.ts +0 -1
  1096. package/dist/services/delegated-invoker-utils.js +0 -1
  1097. package/dist/services/delegated-proxy-config.d.ts +3 -3
  1098. package/dist/services/delegated-proxy-config.js +0 -1
  1099. package/dist/services/delegated-task-result-cache.d.ts +0 -1
  1100. package/dist/services/delegated-task-result-cache.js +0 -0
  1101. package/dist/services/delegated-task-runtime.d.ts +0 -1
  1102. package/dist/services/delegated-task-runtime.js +0 -1
  1103. package/dist/services/delegated-task-session-pool.d.ts +0 -1
  1104. package/dist/services/delegated-task-session-pool.js +0 -1
  1105. package/dist/services/delegated-tool-runtime.d.ts +0 -1
  1106. package/dist/services/delegated-tool-runtime.js +0 -1
  1107. package/dist/services/fts5.d.ts +0 -1
  1108. package/dist/services/fts5.js +0 -1
  1109. package/dist/services/git-account-registry.d.ts +0 -1
  1110. package/dist/services/git-account-registry.js +0 -1
  1111. package/dist/services/github.d.ts +9 -40
  1112. package/dist/services/github.js +9 -107
  1113. package/dist/services/gmail-classifier.d.ts +0 -1
  1114. package/dist/services/gmail-classifier.js +0 -1
  1115. package/dist/services/gmail.d.ts +0 -1
  1116. package/dist/services/gmail.js +31 -52
  1117. package/dist/services/google-auth.d.ts +0 -1
  1118. package/dist/services/google-auth.js +0 -1
  1119. package/dist/services/integrations/extract-write-item-id.d.ts +5 -3
  1120. package/dist/services/integrations/extract-write-item-id.js +6 -1
  1121. package/dist/services/integrations/reconcile.d.ts +0 -1
  1122. package/dist/services/integrations/reconcile.js +0 -1
  1123. package/dist/services/integrations/snapshot-partitions.d.ts +0 -1
  1124. package/dist/services/integrations/snapshot-partitions.js +8 -1
  1125. package/dist/services/journal/render.d.ts +0 -1
  1126. package/dist/services/journal/render.js +0 -1
  1127. package/dist/services/journal/writer.d.ts +0 -1
  1128. package/dist/services/journal/writer.js +0 -1
  1129. package/dist/services/mail/account-registry.d.ts +0 -1
  1130. package/dist/services/mail/account-registry.js +7 -3
  1131. package/dist/services/mail/gmail/auth-failure-classifier.d.ts +0 -1
  1132. package/dist/services/mail/gmail/auth-failure-classifier.js +0 -1
  1133. package/dist/services/mail/gmail/gmail-provider.d.ts +0 -1
  1134. package/dist/services/mail/gmail/gmail-provider.js +0 -1
  1135. package/dist/services/mail/gmail/legacy-row.d.ts +0 -1
  1136. package/dist/services/mail/gmail/legacy-row.js +0 -1
  1137. package/dist/services/mail/gmail/poll-cursor.d.ts +0 -1
  1138. package/dist/services/mail/gmail/poll-cursor.js +0 -1
  1139. package/dist/services/mail/html-to-plaintext.d.ts +0 -1
  1140. package/dist/services/mail/html-to-plaintext.js +0 -1
  1141. package/dist/services/mail/imap/app-password.d.ts +0 -1
  1142. package/dist/services/mail/imap/app-password.js +0 -1
  1143. package/dist/services/mail/imap/auth-failure-classifier.d.ts +0 -1
  1144. package/dist/services/mail/imap/auth-failure-classifier.js +0 -1
  1145. package/dist/services/mail/imap/capabilities.d.ts +0 -1
  1146. package/dist/services/mail/imap/capabilities.js +0 -1
  1147. package/dist/services/mail/imap/client.d.ts +0 -1
  1148. package/dist/services/mail/imap/client.js +0 -1
  1149. package/dist/services/mail/imap/cursor.d.ts +0 -1
  1150. package/dist/services/mail/imap/cursor.js +0 -1
  1151. package/dist/services/mail/imap/folder-resolver.d.ts +0 -1
  1152. package/dist/services/mail/imap/folder-resolver.js +0 -1
  1153. package/dist/services/mail/imap/icloud-provider.d.ts +0 -1
  1154. package/dist/services/mail/imap/icloud-provider.js +0 -1
  1155. package/dist/services/mail/imap/imap-provider-base.d.ts +0 -1
  1156. package/dist/services/mail/imap/imap-provider-base.js +12 -7
  1157. package/dist/services/mail/imap/query-translator.d.ts +0 -1
  1158. package/dist/services/mail/imap/query-translator.js +0 -1
  1159. package/dist/services/mail/imap/reconcile-planner.d.ts +0 -1
  1160. package/dist/services/mail/imap/reconcile-planner.js +0 -1
  1161. package/dist/services/mail/imap/reply-mime.d.ts +0 -1
  1162. package/dist/services/mail/imap/reply-mime.js +0 -1
  1163. package/dist/services/mail/imap/yahoo-provider.d.ts +0 -1
  1164. package/dist/services/mail/imap/yahoo-provider.js +0 -1
  1165. package/dist/services/mail/mail-search.d.ts +0 -1
  1166. package/dist/services/mail/mail-search.js +0 -1
  1167. package/dist/services/mail/outlook/auth-failure-classifier.d.ts +0 -1
  1168. package/dist/services/mail/outlook/auth-failure-classifier.js +0 -1
  1169. package/dist/services/mail/outlook/client-config.d.ts +0 -1
  1170. package/dist/services/mail/outlook/client-config.js +0 -1
  1171. package/dist/services/mail/outlook/delta-cursor.d.ts +0 -1
  1172. package/dist/services/mail/outlook/delta-cursor.js +0 -1
  1173. package/dist/services/mail/outlook/graph-client.d.ts +0 -1
  1174. package/dist/services/mail/outlook/graph-client.js +0 -1
  1175. package/dist/services/mail/outlook/msal-app-factory.d.ts +0 -1
  1176. package/dist/services/mail/outlook/msal-app-factory.js +0 -1
  1177. package/dist/services/mail/outlook/msal-cache-plugin.d.ts +0 -1
  1178. package/dist/services/mail/outlook/msal-cache-plugin.js +0 -1
  1179. package/dist/services/mail/outlook/oauth-device-code.d.ts +0 -1
  1180. package/dist/services/mail/outlook/oauth-device-code.js +0 -1
  1181. package/dist/services/mail/outlook/oauth-loopback.d.ts +0 -1
  1182. package/dist/services/mail/outlook/oauth-loopback.js +0 -1
  1183. package/dist/services/mail/outlook/outlook-provider.d.ts +0 -1
  1184. package/dist/services/mail/outlook/outlook-provider.js +0 -1
  1185. package/dist/services/mail/outlook/query-translator.d.ts +0 -1
  1186. package/dist/services/mail/outlook/query-translator.js +0 -1
  1187. package/dist/services/mail/provider.d.ts +0 -1
  1188. package/dist/services/mail/provider.js +0 -1
  1189. package/dist/services/mail/query-utils.d.ts +0 -1
  1190. package/dist/services/mail/query-utils.js +0 -1
  1191. package/dist/services/mail-classifier.d.ts +0 -1
  1192. package/dist/services/mail-classifier.js +0 -1
  1193. package/dist/services/mail-ingestion.d.ts +0 -1
  1194. package/dist/services/mail-ingestion.js +0 -1
  1195. package/dist/services/mcp/auto-probe.d.ts +0 -1
  1196. package/dist/services/mcp/auto-probe.js +0 -1
  1197. package/dist/services/mcp/generators/claude.d.ts +0 -1
  1198. package/dist/services/mcp/generators/claude.js +0 -1
  1199. package/dist/services/mcp/generators/codex.d.ts +0 -1
  1200. package/dist/services/mcp/generators/codex.js +0 -1
  1201. package/dist/services/mcp/generators/gemini.d.ts +0 -1
  1202. package/dist/services/mcp/generators/gemini.js +0 -1
  1203. package/dist/services/mcp/generators/index.d.ts +1 -1
  1204. package/dist/services/mcp/generators/index.js +3 -1
  1205. package/dist/services/mcp/generators/types.d.ts +0 -1
  1206. package/dist/services/mcp/generators/types.js +0 -1
  1207. package/dist/services/mcp/probe.d.ts +0 -1
  1208. package/dist/services/mcp/probe.js +7 -1
  1209. package/dist/services/mcp/registry.d.ts +0 -1
  1210. package/dist/services/mcp/registry.js +0 -1
  1211. package/dist/services/mcp/risk.d.ts +1 -2
  1212. package/dist/services/mcp/risk.js +1 -2
  1213. package/dist/services/mcp/sdk-observations-server.d.ts +59 -0
  1214. package/dist/services/mcp/sdk-observations-server.js +160 -0
  1215. package/dist/services/mcp/session-materializer.d.ts +2 -3
  1216. package/dist/services/mcp/session-materializer.js +15 -12
  1217. package/dist/services/mcp/tool-audit.d.ts +0 -1
  1218. package/dist/services/mcp/tool-audit.js +0 -1
  1219. package/dist/services/mcp/types.d.ts +1 -1
  1220. package/dist/services/mcp/types.js +0 -1
  1221. package/dist/services/notion.d.ts +17 -2
  1222. package/dist/services/notion.js +39 -3
  1223. package/dist/services/observations-batch.d.ts +98 -0
  1224. package/dist/services/observations-batch.js +256 -0
  1225. package/dist/services/obsidian.d.ts +0 -1
  1226. package/dist/services/obsidian.js +0 -1
  1227. package/dist/services/service-registry.d.ts +0 -3
  1228. package/dist/services/service-registry.js +0 -2
  1229. package/dist/services/voice/transcriber-impl.d.ts +0 -1
  1230. package/dist/services/voice/transcriber-impl.js +21 -20
  1231. package/dist/services/voice/transcriber.d.ts +22 -2
  1232. package/dist/services/voice/transcriber.js +68 -11
  1233. package/dist/settings/runtime-settings.d.ts +52 -8
  1234. package/dist/settings/runtime-settings.js +172 -20
  1235. package/dist/settings/settings-store.d.ts +0 -1
  1236. package/dist/settings/settings-store.js +44 -2
  1237. package/native/win-appcontainer/README.md +66 -0
  1238. package/native/win-appcontainer/binding.gyp +33 -0
  1239. package/native/win-appcontainer/loader.js +29 -0
  1240. package/native/win-appcontainer/package.json +18 -0
  1241. package/native/win-appcontainer/src/win_appcontainer.cc +67 -0
  1242. package/package.json +8 -3
  1243. package/dist/adapters/composite-dashboard-stream.d.ts.map +0 -1
  1244. package/dist/adapters/composite-dashboard-stream.js.map +0 -1
  1245. package/dist/adapters/dashboard-adapter.d.ts.map +0 -1
  1246. package/dist/adapters/dashboard-adapter.js.map +0 -1
  1247. package/dist/adapters/discord.d.ts.map +0 -1
  1248. package/dist/adapters/discord.js.map +0 -1
  1249. package/dist/adapters/docs-qa-adapter.d.ts.map +0 -1
  1250. package/dist/adapters/docs-qa-adapter.js.map +0 -1
  1251. package/dist/adapters/message-hub.d.ts.map +0 -1
  1252. package/dist/adapters/message-hub.js.map +0 -1
  1253. package/dist/adapters/notification-manager.d.ts.map +0 -1
  1254. package/dist/adapters/notification-manager.js.map +0 -1
  1255. package/dist/adapters/outbound-text.d.ts.map +0 -1
  1256. package/dist/adapters/outbound-text.js.map +0 -1
  1257. package/dist/adapters/slack-adapter.d.ts.map +0 -1
  1258. package/dist/adapters/slack-adapter.js.map +0 -1
  1259. package/dist/adapters/telegram-adapter.d.ts.map +0 -1
  1260. package/dist/adapters/telegram-adapter.js.map +0 -1
  1261. package/dist/adapters/types.d.ts.map +0 -1
  1262. package/dist/adapters/types.js.map +0 -1
  1263. package/dist/adapters/whatsapp-adapter.d.ts.map +0 -1
  1264. package/dist/adapters/whatsapp-adapter.js.map +0 -1
  1265. package/dist/api/chat-binding-query.d.ts.map +0 -1
  1266. package/dist/api/chat-binding-query.js.map +0 -1
  1267. package/dist/api/chat-session-resume.d.ts.map +0 -1
  1268. package/dist/api/chat-session-resume.js.map +0 -1
  1269. package/dist/api/delegated-proxy-helper.d.ts +0 -33
  1270. package/dist/api/delegated-proxy-helper.d.ts.map +0 -1
  1271. package/dist/api/delegated-proxy-helper.js +0 -54
  1272. package/dist/api/delegated-proxy-helper.js.map +0 -1
  1273. package/dist/api/directory-picker.d.ts.map +0 -1
  1274. package/dist/api/directory-picker.js.map +0 -1
  1275. package/dist/api/env-writer.d.ts.map +0 -1
  1276. package/dist/api/env-writer.js.map +0 -1
  1277. package/dist/api/integration-route-gate.d.ts.map +0 -1
  1278. package/dist/api/integration-route-gate.js.map +0 -1
  1279. package/dist/api/json-body.d.ts.map +0 -1
  1280. package/dist/api/json-body.js.map +0 -1
  1281. package/dist/api/routes/activity-sources.d.ts.map +0 -1
  1282. package/dist/api/routes/activity-sources.js.map +0 -1
  1283. package/dist/api/routes/agent.d.ts.map +0 -1
  1284. package/dist/api/routes/agent.js.map +0 -1
  1285. package/dist/api/routes/apple-calendar.d.ts.map +0 -1
  1286. package/dist/api/routes/apple-calendar.js.map +0 -1
  1287. package/dist/api/routes/attachments.d.ts.map +0 -1
  1288. package/dist/api/routes/attachments.js.map +0 -1
  1289. package/dist/api/routes/backends.d.ts.map +0 -1
  1290. package/dist/api/routes/backends.js.map +0 -1
  1291. package/dist/api/routes/books.d.ts.map +0 -1
  1292. package/dist/api/routes/books.js.map +0 -1
  1293. package/dist/api/routes/calendar.d.ts.map +0 -1
  1294. package/dist/api/routes/calendar.js.map +0 -1
  1295. package/dist/api/routes/commands.d.ts.map +0 -1
  1296. package/dist/api/routes/commands.js.map +0 -1
  1297. package/dist/api/routes/context.d.ts +0 -57
  1298. package/dist/api/routes/context.d.ts.map +0 -1
  1299. package/dist/api/routes/context.js +0 -1788
  1300. package/dist/api/routes/context.js.map +0 -1
  1301. package/dist/api/routes/dashboard.d.ts +0 -29
  1302. package/dist/api/routes/dashboard.d.ts.map +0 -1
  1303. package/dist/api/routes/dashboard.js +0 -2160
  1304. package/dist/api/routes/dashboard.js.map +0 -1
  1305. package/dist/api/routes/delegated-sync.d.ts.map +0 -1
  1306. package/dist/api/routes/delegated-sync.js.map +0 -1
  1307. package/dist/api/routes/delegated.d.ts.map +0 -1
  1308. package/dist/api/routes/delegated.js.map +0 -1
  1309. package/dist/api/routes/docs.d.ts.map +0 -1
  1310. package/dist/api/routes/docs.js.map +0 -1
  1311. package/dist/api/routes/entities.d.ts.map +0 -1
  1312. package/dist/api/routes/entities.js.map +0 -1
  1313. package/dist/api/routes/fs.d.ts.map +0 -1
  1314. package/dist/api/routes/fs.js.map +0 -1
  1315. package/dist/api/routes/fs.logic.d.ts.map +0 -1
  1316. package/dist/api/routes/fs.logic.js.map +0 -1
  1317. package/dist/api/routes/git-accounts.d.ts.map +0 -1
  1318. package/dist/api/routes/git-accounts.js.map +0 -1
  1319. package/dist/api/routes/git-templates.d.ts.map +0 -1
  1320. package/dist/api/routes/git-templates.js.map +0 -1
  1321. package/dist/api/routes/git.d.ts.map +0 -1
  1322. package/dist/api/routes/git.js.map +0 -1
  1323. package/dist/api/routes/github.d.ts.map +0 -1
  1324. package/dist/api/routes/github.js.map +0 -1
  1325. package/dist/api/routes/health.d.ts.map +0 -1
  1326. package/dist/api/routes/health.js.map +0 -1
  1327. package/dist/api/routes/integrations-reconcile.d.ts.map +0 -1
  1328. package/dist/api/routes/integrations-reconcile.js.map +0 -1
  1329. package/dist/api/routes/integrations.d.ts +0 -48
  1330. package/dist/api/routes/integrations.d.ts.map +0 -1
  1331. package/dist/api/routes/integrations.js +0 -1572
  1332. package/dist/api/routes/integrations.js.map +0 -1
  1333. package/dist/api/routes/knowledge.d.ts.map +0 -1
  1334. package/dist/api/routes/knowledge.js.map +0 -1
  1335. package/dist/api/routes/mail.d.ts +0 -39
  1336. package/dist/api/routes/mail.d.ts.map +0 -1
  1337. package/dist/api/routes/mail.js +0 -1472
  1338. package/dist/api/routes/mail.js.map +0 -1
  1339. package/dist/api/routes/managed-tasks.d.ts.map +0 -1
  1340. package/dist/api/routes/managed-tasks.js.map +0 -1
  1341. package/dist/api/routes/mcp.d.ts.map +0 -1
  1342. package/dist/api/routes/mcp.js.map +0 -1
  1343. package/dist/api/routes/metrics.d.ts.map +0 -1
  1344. package/dist/api/routes/metrics.js.map +0 -1
  1345. package/dist/api/routes/notion.d.ts.map +0 -1
  1346. package/dist/api/routes/notion.js.map +0 -1
  1347. package/dist/api/routes/observations.d.ts.map +0 -1
  1348. package/dist/api/routes/observations.js.map +0 -1
  1349. package/dist/api/routes/obsidian.d.ts.map +0 -1
  1350. package/dist/api/routes/obsidian.js.map +0 -1
  1351. package/dist/api/routes/profile-questions.d.ts.map +0 -1
  1352. package/dist/api/routes/profile-questions.js.map +0 -1
  1353. package/dist/api/routes/receipts.d.ts.map +0 -1
  1354. package/dist/api/routes/receipts.js.map +0 -1
  1355. package/dist/api/routes/recurring-schedules.d.ts.map +0 -1
  1356. package/dist/api/routes/recurring-schedules.js.map +0 -1
  1357. package/dist/api/routes/repositories.d.ts.map +0 -1
  1358. package/dist/api/routes/repositories.js.map +0 -1
  1359. package/dist/api/routes/setup-migrate.d.ts.map +0 -1
  1360. package/dist/api/routes/setup-migrate.js.map +0 -1
  1361. package/dist/api/routes/setup.d.ts.map +0 -1
  1362. package/dist/api/routes/setup.js.map +0 -1
  1363. package/dist/api/routes/skill-curation.d.ts.map +0 -1
  1364. package/dist/api/routes/skill-curation.js.map +0 -1
  1365. package/dist/api/routes/skills.d.ts.map +0 -1
  1366. package/dist/api/routes/skills.js.map +0 -1
  1367. package/dist/api/routes/sot-bindings.d.ts.map +0 -1
  1368. package/dist/api/routes/sot-bindings.js.map +0 -1
  1369. package/dist/api/routes/sse.d.ts.map +0 -1
  1370. package/dist/api/routes/sse.js.map +0 -1
  1371. package/dist/api/routes/system.d.ts.map +0 -1
  1372. package/dist/api/routes/system.js.map +0 -1
  1373. package/dist/api/routes/task-flows.d.ts.map +0 -1
  1374. package/dist/api/routes/task-flows.js.map +0 -1
  1375. package/dist/api/routes/travel-bookings.d.ts.map +0 -1
  1376. package/dist/api/routes/travel-bookings.js.map +0 -1
  1377. package/dist/api/routes/travel-time.d.ts +0 -8
  1378. package/dist/api/routes/travel-time.d.ts.map +0 -1
  1379. package/dist/api/routes/travel-time.js +0 -87
  1380. package/dist/api/routes/travel-time.js.map +0 -1
  1381. package/dist/api/routes/triggers.d.ts.map +0 -1
  1382. package/dist/api/routes/triggers.js.map +0 -1
  1383. package/dist/api/routes/voice.d.ts.map +0 -1
  1384. package/dist/api/routes/voice.js.map +0 -1
  1385. package/dist/api/routes/wiki.d.ts.map +0 -1
  1386. package/dist/api/routes/wiki.js.map +0 -1
  1387. package/dist/api/server.d.ts.map +0 -1
  1388. package/dist/api/server.js.map +0 -1
  1389. package/dist/bootstrap/adapters.d.ts.map +0 -1
  1390. package/dist/bootstrap/adapters.js.map +0 -1
  1391. package/dist/bootstrap/catchup.d.ts.map +0 -1
  1392. package/dist/bootstrap/catchup.js.map +0 -1
  1393. package/dist/bootstrap/schedule-helpers.d.ts.map +0 -1
  1394. package/dist/bootstrap/schedule-helpers.js.map +0 -1
  1395. package/dist/bootstrap/services.d.ts.map +0 -1
  1396. package/dist/bootstrap/services.js.map +0 -1
  1397. package/dist/config.d.ts.map +0 -1
  1398. package/dist/config.js.map +0 -1
  1399. package/dist/core/agent-core.d.ts.map +0 -1
  1400. package/dist/core/agent-core.js.map +0 -1
  1401. package/dist/core/alerts.d.ts.map +0 -1
  1402. package/dist/core/alerts.js.map +0 -1
  1403. package/dist/core/atomic-write.d.ts.map +0 -1
  1404. package/dist/core/atomic-write.js.map +0 -1
  1405. package/dist/core/backends/api-key-probe.d.ts.map +0 -1
  1406. package/dist/core/backends/api-key-probe.js.map +0 -1
  1407. package/dist/core/backends/auth-health-monitor.d.ts.map +0 -1
  1408. package/dist/core/backends/auth-health-monitor.js.map +0 -1
  1409. package/dist/core/backends/auth-recovery.d.ts.map +0 -1
  1410. package/dist/core/backends/auth-recovery.js.map +0 -1
  1411. package/dist/core/backends/auth-telemetry.d.ts.map +0 -1
  1412. package/dist/core/backends/auth-telemetry.js.map +0 -1
  1413. package/dist/core/backends/backend-router.d.ts.map +0 -1
  1414. package/dist/core/backends/backend-router.js.map +0 -1
  1415. package/dist/core/backends/claude-auth.d.ts.map +0 -1
  1416. package/dist/core/backends/claude-auth.js.map +0 -1
  1417. package/dist/core/backends/claude-code-core.d.ts.map +0 -1
  1418. package/dist/core/backends/claude-code-core.js.map +0 -1
  1419. package/dist/core/backends/claude-credentials-store.d.ts.map +0 -1
  1420. package/dist/core/backends/claude-credentials-store.js.map +0 -1
  1421. package/dist/core/backends/claude-delegated.d.ts.map +0 -1
  1422. package/dist/core/backends/claude-delegated.js.map +0 -1
  1423. package/dist/core/backends/claude-errors.d.ts.map +0 -1
  1424. package/dist/core/backends/claude-errors.js.map +0 -1
  1425. package/dist/core/backends/claude-probe.d.ts.map +0 -1
  1426. package/dist/core/backends/claude-probe.js.map +0 -1
  1427. package/dist/core/backends/claude-tool-collection.d.ts.map +0 -1
  1428. package/dist/core/backends/claude-tool-collection.js.map +0 -1
  1429. package/dist/core/backends/cli-utils.d.ts.map +0 -1
  1430. package/dist/core/backends/cli-utils.js.map +0 -1
  1431. package/dist/core/backends/codex-core.d.ts.map +0 -1
  1432. package/dist/core/backends/codex-core.js.map +0 -1
  1433. package/dist/core/backends/gemini-cli-core.d.ts.map +0 -1
  1434. package/dist/core/backends/gemini-cli-core.js.map +0 -1
  1435. package/dist/core/backends/idle-watchdog.d.ts.map +0 -1
  1436. package/dist/core/backends/idle-watchdog.js.map +0 -1
  1437. package/dist/core/backends/install-methods.d.ts.map +0 -1
  1438. package/dist/core/backends/install-methods.js.map +0 -1
  1439. package/dist/core/backends/model-registry.d.ts.map +0 -1
  1440. package/dist/core/backends/model-registry.js.map +0 -1
  1441. package/dist/core/backends/plan-presets.d.ts.map +0 -1
  1442. package/dist/core/backends/plan-presets.js.map +0 -1
  1443. package/dist/core/backends/price-fetcher.d.ts.map +0 -1
  1444. package/dist/core/backends/price-fetcher.js.map +0 -1
  1445. package/dist/core/backends/process-config-cascade.d.ts.map +0 -1
  1446. package/dist/core/backends/process-config-cascade.js.map +0 -1
  1447. package/dist/core/backends/prompt-utils.d.ts.map +0 -1
  1448. package/dist/core/backends/prompt-utils.js.map +0 -1
  1449. package/dist/core/backends/proxy-model-registry.d.ts.map +0 -1
  1450. package/dist/core/backends/proxy-model-registry.js.map +0 -1
  1451. package/dist/core/backends/silent-api-error-detector.d.ts.map +0 -1
  1452. package/dist/core/backends/silent-api-error-detector.js.map +0 -1
  1453. package/dist/core/bang-commands/commands-cost.d.ts.map +0 -1
  1454. package/dist/core/bang-commands/commands-cost.js.map +0 -1
  1455. package/dist/core/bang-commands/commands-help.d.ts.map +0 -1
  1456. package/dist/core/bang-commands/commands-help.js.map +0 -1
  1457. package/dist/core/bang-commands/commands-report.d.ts.map +0 -1
  1458. package/dist/core/bang-commands/commands-report.js.map +0 -1
  1459. package/dist/core/bang-commands/commands-stop-start.d.ts.map +0 -1
  1460. package/dist/core/bang-commands/commands-stop-start.js.map +0 -1
  1461. package/dist/core/bang-commands/commands-wiki.d.ts.map +0 -1
  1462. package/dist/core/bang-commands/commands-wiki.js.map +0 -1
  1463. package/dist/core/bang-commands/format-utils.d.ts.map +0 -1
  1464. package/dist/core/bang-commands/format-utils.js.map +0 -1
  1465. package/dist/core/bang-commands/index.d.ts.map +0 -1
  1466. package/dist/core/bang-commands/index.js.map +0 -1
  1467. package/dist/core/bang-commands/registry.d.ts.map +0 -1
  1468. package/dist/core/bang-commands/registry.js.map +0 -1
  1469. package/dist/core/bang-commands/user-commands.d.ts.map +0 -1
  1470. package/dist/core/bang-commands/user-commands.js.map +0 -1
  1471. package/dist/core/channel-timeline.d.ts.map +0 -1
  1472. package/dist/core/channel-timeline.js.map +0 -1
  1473. package/dist/core/character-block.d.ts.map +0 -1
  1474. package/dist/core/character-block.js.map +0 -1
  1475. package/dist/core/context/activity-sources.d.ts.map +0 -1
  1476. package/dist/core/context/activity-sources.js.map +0 -1
  1477. package/dist/core/context/activity-view-reconciler.d.ts.map +0 -1
  1478. package/dist/core/context/activity-view-reconciler.js.map +0 -1
  1479. package/dist/core/context/activity-view-runner.d.ts.map +0 -1
  1480. package/dist/core/context/activity-view-runner.js.map +0 -1
  1481. package/dist/core/context/default-schedules-reconciler.d.ts.map +0 -1
  1482. package/dist/core/context/default-schedules-reconciler.js.map +0 -1
  1483. package/dist/core/context/default-schedules-runner.d.ts.map +0 -1
  1484. package/dist/core/context/default-schedules-runner.js.map +0 -1
  1485. package/dist/core/context/domain-index-reconciler.d.ts.map +0 -1
  1486. package/dist/core/context/domain-index-reconciler.js.map +0 -1
  1487. package/dist/core/context/domain-index-runner.d.ts.map +0 -1
  1488. package/dist/core/context/domain-index-runner.js.map +0 -1
  1489. package/dist/core/context/entity-mirror.d.ts.map +0 -1
  1490. package/dist/core/context/entity-mirror.js.map +0 -1
  1491. package/dist/core/context/entity-source-rename.d.ts.map +0 -1
  1492. package/dist/core/context/entity-source-rename.js.map +0 -1
  1493. package/dist/core/context/index-reconciler.d.ts.map +0 -1
  1494. package/dist/core/context/index-reconciler.js.map +0 -1
  1495. package/dist/core/context/policy-index-reconciler.d.ts.map +0 -1
  1496. package/dist/core/context/policy-index-reconciler.js.map +0 -1
  1497. package/dist/core/context/policy-index-runner.d.ts.map +0 -1
  1498. package/dist/core/context/policy-index-runner.js.map +0 -1
  1499. package/dist/core/context/reconciler-runner.d.ts.map +0 -1
  1500. package/dist/core/context/reconciler-runner.js.map +0 -1
  1501. package/dist/core/context-builder.d.ts.map +0 -1
  1502. package/dist/core/context-builder.js.map +0 -1
  1503. package/dist/core/context-frontmatter-backfill.d.ts +0 -33
  1504. package/dist/core/context-frontmatter-backfill.d.ts.map +0 -1
  1505. package/dist/core/context-frontmatter-backfill.js +0 -111
  1506. package/dist/core/context-frontmatter-backfill.js.map +0 -1
  1507. package/dist/core/context-frontmatter.d.ts.map +0 -1
  1508. package/dist/core/context-frontmatter.js.map +0 -1
  1509. package/dist/core/context-health.d.ts.map +0 -1
  1510. package/dist/core/context-health.js.map +0 -1
  1511. package/dist/core/context-paths.d.ts.map +0 -1
  1512. package/dist/core/context-paths.js.map +0 -1
  1513. package/dist/core/context-staleness.d.ts.map +0 -1
  1514. package/dist/core/context-staleness.js.map +0 -1
  1515. package/dist/core/custom-routine-scheduler.d.ts.map +0 -1
  1516. package/dist/core/custom-routine-scheduler.js.map +0 -1
  1517. package/dist/core/daemon-api-cli.d.ts.map +0 -1
  1518. package/dist/core/daemon-api-cli.js.map +0 -1
  1519. package/dist/core/dashboard-session-cleanup.d.ts.map +0 -1
  1520. package/dist/core/dashboard-session-cleanup.js.map +0 -1
  1521. package/dist/core/dashboard-session-controls.d.ts.map +0 -1
  1522. package/dist/core/dashboard-session-controls.js.map +0 -1
  1523. package/dist/core/delegated-connector-health.d.ts.map +0 -1
  1524. package/dist/core/delegated-connector-health.js.map +0 -1
  1525. package/dist/core/dispatcher-date-utils.d.ts.map +0 -1
  1526. package/dist/core/dispatcher-date-utils.js.map +0 -1
  1527. package/dist/core/dispatcher-error-handling.d.ts.map +0 -1
  1528. package/dist/core/dispatcher-error-handling.js.map +0 -1
  1529. package/dist/core/dispatcher-hourly-check.d.ts.map +0 -1
  1530. package/dist/core/dispatcher-hourly-check.js.map +0 -1
  1531. package/dist/core/dispatcher-message-handler.d.ts.map +0 -1
  1532. package/dist/core/dispatcher-message-handler.js.map +0 -1
  1533. package/dist/core/dispatcher-morning-routine.d.ts.map +0 -1
  1534. package/dist/core/dispatcher-morning-routine.js.map +0 -1
  1535. package/dist/core/dispatcher-prompt.d.ts.map +0 -1
  1536. package/dist/core/dispatcher-prompt.js.map +0 -1
  1537. package/dist/core/dispatcher-repository-helpers.d.ts.map +0 -1
  1538. package/dist/core/dispatcher-repository-helpers.js.map +0 -1
  1539. package/dist/core/dispatcher-result-processor.d.ts.map +0 -1
  1540. package/dist/core/dispatcher-result-processor.js.map +0 -1
  1541. package/dist/core/dispatcher-scheduled-tasks.d.ts.map +0 -1
  1542. package/dist/core/dispatcher-scheduled-tasks.js.map +0 -1
  1543. package/dist/core/dispatcher-types.d.ts.map +0 -1
  1544. package/dist/core/dispatcher-types.js.map +0 -1
  1545. package/dist/core/dispatcher.d.ts.map +0 -1
  1546. package/dist/core/dispatcher.js.map +0 -1
  1547. package/dist/core/dm-freshness-metrics.d.ts.map +0 -1
  1548. package/dist/core/dm-freshness-metrics.js.map +0 -1
  1549. package/dist/core/docs/citation-validator.d.ts.map +0 -1
  1550. package/dist/core/docs/citation-validator.js.map +0 -1
  1551. package/dist/core/docs/extract-terms.d.ts.map +0 -1
  1552. package/dist/core/docs/extract-terms.js.map +0 -1
  1553. package/dist/core/docs/indexer.d.ts.map +0 -1
  1554. package/dist/core/docs/indexer.js.map +0 -1
  1555. package/dist/core/drift-effects.d.ts.map +0 -1
  1556. package/dist/core/drift-effects.js.map +0 -1
  1557. package/dist/core/event-bus.d.ts.map +0 -1
  1558. package/dist/core/event-bus.js.map +0 -1
  1559. package/dist/core/git-project-docs.d.ts.map +0 -1
  1560. package/dist/core/git-project-docs.js.map +0 -1
  1561. package/dist/core/health-monitor.d.ts.map +0 -1
  1562. package/dist/core/health-monitor.js.map +0 -1
  1563. package/dist/core/heartbeat.d.ts.map +0 -1
  1564. package/dist/core/heartbeat.js.map +0 -1
  1565. package/dist/core/integration-health.d.ts.map +0 -1
  1566. package/dist/core/integration-health.js.map +0 -1
  1567. package/dist/core/integration-lifecycle.d.ts.map +0 -1
  1568. package/dist/core/integration-lifecycle.js.map +0 -1
  1569. package/dist/core/integration-main-backend.d.ts.map +0 -1
  1570. package/dist/core/integration-main-backend.js.map +0 -1
  1571. package/dist/core/integration-probe.d.ts.map +0 -1
  1572. package/dist/core/integration-probe.js.map +0 -1
  1573. package/dist/core/management-md-write-lock.d.ts.map +0 -1
  1574. package/dist/core/management-md-write-lock.js.map +0 -1
  1575. package/dist/core/management-md.d.ts.map +0 -1
  1576. package/dist/core/management-md.js.map +0 -1
  1577. package/dist/core/management-registry.d.ts.map +0 -1
  1578. package/dist/core/management-registry.js.map +0 -1
  1579. package/dist/core/management-telemetry.d.ts.map +0 -1
  1580. package/dist/core/management-telemetry.js.map +0 -1
  1581. package/dist/core/message-recorder.d.ts.map +0 -1
  1582. package/dist/core/message-recorder.js.map +0 -1
  1583. package/dist/core/metrics.d.ts.map +0 -1
  1584. package/dist/core/metrics.js.map +0 -1
  1585. package/dist/core/migration-backup.d.ts.map +0 -1
  1586. package/dist/core/migration-backup.js.map +0 -1
  1587. package/dist/core/output-language-policy.d.ts.map +0 -1
  1588. package/dist/core/output-language-policy.js.map +0 -1
  1589. package/dist/core/overview-write-lock.d.ts.map +0 -1
  1590. package/dist/core/overview-write-lock.js.map +0 -1
  1591. package/dist/core/path-compat.d.ts.map +0 -1
  1592. package/dist/core/path-compat.js.map +0 -1
  1593. package/dist/core/path-rewrite.d.ts.map +0 -1
  1594. package/dist/core/path-rewrite.js.map +0 -1
  1595. package/dist/core/policy-files.d.ts.map +0 -1
  1596. package/dist/core/policy-files.js.map +0 -1
  1597. package/dist/core/profile-questions/seed.d.ts.map +0 -1
  1598. package/dist/core/profile-questions/seed.js.map +0 -1
  1599. package/dist/core/profile-questions/slot-filled.d.ts.map +0 -1
  1600. package/dist/core/profile-questions/slot-filled.js.map +0 -1
  1601. package/dist/core/prompts.d.ts.map +0 -1
  1602. package/dist/core/prompts.js.map +0 -1
  1603. package/dist/core/quiet-hours-sync.d.ts.map +0 -1
  1604. package/dist/core/quiet-hours-sync.js.map +0 -1
  1605. package/dist/core/read-sensitive-token-manager.d.ts.map +0 -1
  1606. package/dist/core/read-sensitive-token-manager.js.map +0 -1
  1607. package/dist/core/recurrence.d.ts.map +0 -1
  1608. package/dist/core/recurrence.js.map +0 -1
  1609. package/dist/core/reinstall.d.ts.map +0 -1
  1610. package/dist/core/reinstall.js.map +0 -1
  1611. package/dist/core/release-assets.d.ts.map +0 -1
  1612. package/dist/core/release-assets.js.map +0 -1
  1613. package/dist/core/repository-management-docs.d.ts.map +0 -1
  1614. package/dist/core/repository-management-docs.js.map +0 -1
  1615. package/dist/core/retention.d.ts.map +0 -1
  1616. package/dist/core/retention.js.map +0 -1
  1617. package/dist/core/review-context.d.ts.map +0 -1
  1618. package/dist/core/review-context.js.map +0 -1
  1619. package/dist/core/roadmap-horizon.d.ts.map +0 -1
  1620. package/dist/core/roadmap-horizon.js.map +0 -1
  1621. package/dist/core/roadmap-ids.d.ts.map +0 -1
  1622. package/dist/core/roadmap-ids.js.map +0 -1
  1623. package/dist/core/roadmap-merge.d.ts +0 -7
  1624. package/dist/core/roadmap-merge.d.ts.map +0 -1
  1625. package/dist/core/roadmap-merge.js +0 -187
  1626. package/dist/core/roadmap-merge.js.map +0 -1
  1627. package/dist/core/roadmap-refresh-triggers.d.ts.map +0 -1
  1628. package/dist/core/roadmap-refresh-triggers.js.map +0 -1
  1629. package/dist/core/roadmap-truncate.d.ts.map +0 -1
  1630. package/dist/core/roadmap-truncate.js.map +0 -1
  1631. package/dist/core/roadmap-validate.d.ts.map +0 -1
  1632. package/dist/core/roadmap-validate.js.map +0 -1
  1633. package/dist/core/roadmap-write-lock.d.ts.map +0 -1
  1634. package/dist/core/roadmap-write-lock.js.map +0 -1
  1635. package/dist/core/routine-acquisition-plan.d.ts.map +0 -1
  1636. package/dist/core/routine-acquisition-plan.js.map +0 -1
  1637. package/dist/core/routine-fetch-window-retry.d.ts.map +0 -1
  1638. package/dist/core/routine-fetch-window-retry.js.map +0 -1
  1639. package/dist/core/routine-fetch-window-runner.d.ts.map +0 -1
  1640. package/dist/core/routine-fetch-window-runner.js.map +0 -1
  1641. package/dist/core/routine-windows.d.ts.map +0 -1
  1642. package/dist/core/routine-windows.js.map +0 -1
  1643. package/dist/core/schedule-insert-helper.d.ts.map +0 -1
  1644. package/dist/core/schedule-insert-helper.js.map +0 -1
  1645. package/dist/core/schedule-maintenance.d.ts.map +0 -1
  1646. package/dist/core/schedule-maintenance.js.map +0 -1
  1647. package/dist/core/scheduler.d.ts.map +0 -1
  1648. package/dist/core/scheduler.js.map +0 -1
  1649. package/dist/core/semaphore.d.ts.map +0 -1
  1650. package/dist/core/semaphore.js.map +0 -1
  1651. package/dist/core/session-gate.d.ts.map +0 -1
  1652. package/dist/core/session-gate.js.map +0 -1
  1653. package/dist/core/session-manager.d.ts.map +0 -1
  1654. package/dist/core/session-manager.js.map +0 -1
  1655. package/dist/core/signal-detector.d.ts.map +0 -1
  1656. package/dist/core/signal-detector.js.map +0 -1
  1657. package/dist/core/skeleton.d.ts.map +0 -1
  1658. package/dist/core/skeleton.js.map +0 -1
  1659. package/dist/core/skill-curation/apply-proposal.d.ts.map +0 -1
  1660. package/dist/core/skill-curation/apply-proposal.js.map +0 -1
  1661. package/dist/core/skill-curation/auto-revert.d.ts.map +0 -1
  1662. package/dist/core/skill-curation/auto-revert.js.map +0 -1
  1663. package/dist/core/skill-curation/classify-diff.d.ts.map +0 -1
  1664. package/dist/core/skill-curation/classify-diff.js.map +0 -1
  1665. package/dist/core/skill-curation/declarations.d.ts.map +0 -1
  1666. package/dist/core/skill-curation/declarations.js.map +0 -1
  1667. package/dist/core/skill-curation/knowledge-map.d.ts.map +0 -1
  1668. package/dist/core/skill-curation/knowledge-map.js.map +0 -1
  1669. package/dist/core/skill-curation/orphan-overlay.d.ts.map +0 -1
  1670. package/dist/core/skill-curation/orphan-overlay.js.map +0 -1
  1671. package/dist/core/skill-curation/overlay-store.d.ts.map +0 -1
  1672. package/dist/core/skill-curation/overlay-store.js.map +0 -1
  1673. package/dist/core/skill-curation/render/convention-notes.d.ts.map +0 -1
  1674. package/dist/core/skill-curation/render/convention-notes.js.map +0 -1
  1675. package/dist/core/skill-curation/render/cross-references.d.ts.map +0 -1
  1676. package/dist/core/skill-curation/render/cross-references.js.map +0 -1
  1677. package/dist/core/skill-curation/render/frontmatter-schema.d.ts.map +0 -1
  1678. package/dist/core/skill-curation/render/frontmatter-schema.js.map +0 -1
  1679. package/dist/core/skill-curation/render/index.d.ts.map +0 -1
  1680. package/dist/core/skill-curation/render/index.js.map +0 -1
  1681. package/dist/core/skill-curation/render/knowledge-layout.d.ts.map +0 -1
  1682. package/dist/core/skill-curation/render/knowledge-layout.js.map +0 -1
  1683. package/dist/core/skill-curation/render/routing-table.d.ts.map +0 -1
  1684. package/dist/core/skill-curation/render/routing-table.js.map +0 -1
  1685. package/dist/core/skill-curation/render/search-recipes.d.ts.map +0 -1
  1686. package/dist/core/skill-curation/render/search-recipes.js.map +0 -1
  1687. package/dist/core/skill-curation/run-token.d.ts.map +0 -1
  1688. package/dist/core/skill-curation/run-token.js.map +0 -1
  1689. package/dist/core/skill-curation/signals.d.ts.map +0 -1
  1690. package/dist/core/skill-curation/signals.js.map +0 -1
  1691. package/dist/core/skill-curation/smoke-test.d.ts.map +0 -1
  1692. package/dist/core/skill-curation/smoke-test.js.map +0 -1
  1693. package/dist/core/skill-curation/splicer.d.ts.map +0 -1
  1694. package/dist/core/skill-curation/splicer.js.map +0 -1
  1695. package/dist/core/skill-curation/workdir.d.ts.map +0 -1
  1696. package/dist/core/skill-curation/workdir.js.map +0 -1
  1697. package/dist/core/skill-source-paths.d.ts.map +0 -1
  1698. package/dist/core/skill-source-paths.js.map +0 -1
  1699. package/dist/core/skills-compiler.d.ts.map +0 -1
  1700. package/dist/core/skills-compiler.js.map +0 -1
  1701. package/dist/core/skills-manifest.d.ts.map +0 -1
  1702. package/dist/core/skills-manifest.js.map +0 -1
  1703. package/dist/core/system-reset.d.ts.map +0 -1
  1704. package/dist/core/system-reset.js.map +0 -1
  1705. package/dist/core/template-store.d.ts.map +0 -1
  1706. package/dist/core/template-store.js.map +0 -1
  1707. package/dist/core/template-versions.d.ts.map +0 -1
  1708. package/dist/core/template-versions.js.map +0 -1
  1709. package/dist/core/today-agent-plan.d.ts.map +0 -1
  1710. package/dist/core/today-agent-plan.js.map +0 -1
  1711. package/dist/core/today-direct-writer.d.ts.map +0 -1
  1712. package/dist/core/today-direct-writer.js.map +0 -1
  1713. package/dist/core/today-write-lock.d.ts.map +0 -1
  1714. package/dist/core/today-write-lock.js.map +0 -1
  1715. package/dist/core/trigger-dispatch.d.ts.map +0 -1
  1716. package/dist/core/trigger-dispatch.js.map +0 -1
  1717. package/dist/core/trigger-evaluator.d.ts.map +0 -1
  1718. package/dist/core/trigger-evaluator.js.map +0 -1
  1719. package/dist/core/wiki/approval-queue.d.ts.map +0 -1
  1720. package/dist/core/wiki/approval-queue.js.map +0 -1
  1721. package/dist/core/wiki/bridge.d.ts.map +0 -1
  1722. package/dist/core/wiki/bridge.js.map +0 -1
  1723. package/dist/core/wiki/compile-lock.d.ts.map +0 -1
  1724. package/dist/core/wiki/compile-lock.js.map +0 -1
  1725. package/dist/core/wiki/compile-preview.d.ts.map +0 -1
  1726. package/dist/core/wiki/compile-preview.js.map +0 -1
  1727. package/dist/core/wiki/cost-estimate.d.ts.map +0 -1
  1728. package/dist/core/wiki/cost-estimate.js.map +0 -1
  1729. package/dist/core/wiki/dispatcher.d.ts.map +0 -1
  1730. package/dist/core/wiki/dispatcher.js.map +0 -1
  1731. package/dist/core/wiki/git-precompile.d.ts.map +0 -1
  1732. package/dist/core/wiki/git-precompile.js.map +0 -1
  1733. package/dist/core/wiki/import-migrate.d.ts.map +0 -1
  1734. package/dist/core/wiki/import-migrate.js.map +0 -1
  1735. package/dist/core/wiki/import-probe.d.ts.map +0 -1
  1736. package/dist/core/wiki/import-probe.js.map +0 -1
  1737. package/dist/core/wiki/index-cache.d.ts.map +0 -1
  1738. package/dist/core/wiki/index-cache.js.map +0 -1
  1739. package/dist/core/wiki/multi-url-dispatch.d.ts.map +0 -1
  1740. package/dist/core/wiki/multi-url-dispatch.js.map +0 -1
  1741. package/dist/core/wiki/wiki-fts.d.ts.map +0 -1
  1742. package/dist/core/wiki/wiki-fts.js.map +0 -1
  1743. package/dist/core/wiki/workspaces.d.ts.map +0 -1
  1744. package/dist/core/wiki/workspaces.js.map +0 -1
  1745. package/dist/core/wiki/write-strategy.d.ts.map +0 -1
  1746. package/dist/core/wiki/write-strategy.js.map +0 -1
  1747. package/dist/core/workdir.d.ts.map +0 -1
  1748. package/dist/core/workdir.js.map +0 -1
  1749. package/dist/db/automation-triggers.d.ts.map +0 -1
  1750. package/dist/db/automation-triggers.js.map +0 -1
  1751. package/dist/db/client.d.ts.map +0 -1
  1752. package/dist/db/client.js.map +0 -1
  1753. package/dist/db/entities-store.d.ts.map +0 -1
  1754. package/dist/db/entities-store.js.map +0 -1
  1755. package/dist/db/hourly-check-signals.d.ts.map +0 -1
  1756. package/dist/db/hourly-check-signals.js.map +0 -1
  1757. package/dist/db/integration-probe-store.d.ts.map +0 -1
  1758. package/dist/db/integration-probe-store.js.map +0 -1
  1759. package/dist/db/integrations-store.d.ts.map +0 -1
  1760. package/dist/db/integrations-store.js.map +0 -1
  1761. package/dist/db/managed-tasks-store.d.ts.map +0 -1
  1762. package/dist/db/managed-tasks-store.js.map +0 -1
  1763. package/dist/db/management-parse-failures-store.d.ts.map +0 -1
  1764. package/dist/db/management-parse-failures-store.js.map +0 -1
  1765. package/dist/db/observations.d.ts.map +0 -1
  1766. package/dist/db/observations.js.map +0 -1
  1767. package/dist/db/recurring-schedules.d.ts.map +0 -1
  1768. package/dist/db/recurring-schedules.js.map +0 -1
  1769. package/dist/db/repositories-store.d.ts.map +0 -1
  1770. package/dist/db/repositories-store.js.map +0 -1
  1771. package/dist/db/runtime-state.d.ts.map +0 -1
  1772. package/dist/db/runtime-state.js.map +0 -1
  1773. package/dist/db/schema.d.ts.map +0 -1
  1774. package/dist/db/schema.js.map +0 -1
  1775. package/dist/db/sot-bindings-store.d.ts.map +0 -1
  1776. package/dist/db/sot-bindings-store.js.map +0 -1
  1777. package/dist/db/test-schemas.d.ts +0 -23
  1778. package/dist/db/test-schemas.d.ts.map +0 -1
  1779. package/dist/db/test-schemas.js +0 -111
  1780. package/dist/db/test-schemas.js.map +0 -1
  1781. package/dist/db/voice-transcripts-store.d.ts.map +0 -1
  1782. package/dist/db/voice-transcripts-store.js.map +0 -1
  1783. package/dist/db/wiki-store.d.ts.map +0 -1
  1784. package/dist/db/wiki-store.js.map +0 -1
  1785. package/dist/index.d.ts.map +0 -1
  1786. package/dist/index.js.map +0 -1
  1787. package/dist/init.d.ts.map +0 -1
  1788. package/dist/init.js.map +0 -1
  1789. package/dist/log-buffer.d.ts.map +0 -1
  1790. package/dist/log-buffer.js.map +0 -1
  1791. package/dist/logging.d.ts.map +0 -1
  1792. package/dist/logging.js.map +0 -1
  1793. package/dist/management-rules.d.ts.map +0 -1
  1794. package/dist/management-rules.js.map +0 -1
  1795. package/dist/messaging/constants.d.ts.map +0 -1
  1796. package/dist/messaging/constants.js.map +0 -1
  1797. package/dist/messaging/magic-phrase.d.ts.map +0 -1
  1798. package/dist/messaging/magic-phrase.js.map +0 -1
  1799. package/dist/messaging/owner-channels.d.ts.map +0 -1
  1800. package/dist/messaging/owner-channels.js.map +0 -1
  1801. package/dist/messaging/setup-welcome-dm.d.ts.map +0 -1
  1802. package/dist/messaging/setup-welcome-dm.js.map +0 -1
  1803. package/dist/messaging/url-extract.d.ts.map +0 -1
  1804. package/dist/messaging/url-extract.js.map +0 -1
  1805. package/dist/observers/calendar-poller.d.ts.map +0 -1
  1806. package/dist/observers/calendar-poller.js.map +0 -1
  1807. package/dist/observers/context-index-reconciler-observer.d.ts.map +0 -1
  1808. package/dist/observers/context-index-reconciler-observer.js.map +0 -1
  1809. package/dist/observers/delegated-probe-observer.d.ts.map +0 -1
  1810. package/dist/observers/delegated-probe-observer.js.map +0 -1
  1811. package/dist/observers/delegated-sync-worker.d.ts.map +0 -1
  1812. package/dist/observers/delegated-sync-worker.js.map +0 -1
  1813. package/dist/observers/entity-mirror-observer.d.ts.map +0 -1
  1814. package/dist/observers/entity-mirror-observer.js.map +0 -1
  1815. package/dist/observers/git-delegated-cron.d.ts.map +0 -1
  1816. package/dist/observers/git-delegated-cron.js.map +0 -1
  1817. package/dist/observers/git-event-classifier.d.ts.map +0 -1
  1818. package/dist/observers/git-event-classifier.js.map +0 -1
  1819. package/dist/observers/git-watcher.d.ts.map +0 -1
  1820. package/dist/observers/git-watcher.js.map +0 -1
  1821. package/dist/observers/github-poller-classifier.d.ts.map +0 -1
  1822. package/dist/observers/github-poller-classifier.js.map +0 -1
  1823. package/dist/observers/github-poller.d.ts.map +0 -1
  1824. package/dist/observers/github-poller.js.map +0 -1
  1825. package/dist/observers/imminent-event-scheduler.d.ts.map +0 -1
  1826. package/dist/observers/imminent-event-scheduler.js.map +0 -1
  1827. package/dist/observers/mail-poller.d.ts.map +0 -1
  1828. package/dist/observers/mail-poller.js.map +0 -1
  1829. package/dist/observers/mail-reconciliation.d.ts.map +0 -1
  1830. package/dist/observers/mail-reconciliation.js.map +0 -1
  1831. package/dist/observers/manager.d.ts.map +0 -1
  1832. package/dist/observers/manager.js.map +0 -1
  1833. package/dist/observers/notion-poller.d.ts.map +0 -1
  1834. package/dist/observers/notion-poller.js.map +0 -1
  1835. package/dist/observers/observation-summarizer/index.d.ts.map +0 -1
  1836. package/dist/observers/observation-summarizer/index.js.map +0 -1
  1837. package/dist/observers/observation-summarizer/pre-filter.d.ts.map +0 -1
  1838. package/dist/observers/observation-summarizer/pre-filter.js.map +0 -1
  1839. package/dist/observers/observation-summarizer/response-parser.d.ts.map +0 -1
  1840. package/dist/observers/observation-summarizer/response-parser.js.map +0 -1
  1841. package/dist/observers/observation-summarizer/summarizer-client.d.ts.map +0 -1
  1842. package/dist/observers/observation-summarizer/summarizer-client.js.map +0 -1
  1843. package/dist/observers/observation-summarizer/summarizer-prompts.d.ts.map +0 -1
  1844. package/dist/observers/observation-summarizer/summarizer-prompts.js.map +0 -1
  1845. package/dist/observers/observation-summarizer/worker.d.ts.map +0 -1
  1846. package/dist/observers/observation-summarizer/worker.js.map +0 -1
  1847. package/dist/observers/obsidian-watcher.d.ts.map +0 -1
  1848. package/dist/observers/obsidian-watcher.js.map +0 -1
  1849. package/dist/observers/primary-vault-watcher.d.ts.map +0 -1
  1850. package/dist/observers/primary-vault-watcher.js.map +0 -1
  1851. package/dist/observers/repository-management-cron.d.ts.map +0 -1
  1852. package/dist/observers/repository-management-cron.js.map +0 -1
  1853. package/dist/observers/skill-curation-walker.d.ts.map +0 -1
  1854. package/dist/observers/skill-curation-walker.js.map +0 -1
  1855. package/dist/safety/absolute-block-audit.d.ts.map +0 -1
  1856. package/dist/safety/absolute-block-audit.js.map +0 -1
  1857. package/dist/safety/agent-write-tracker.d.ts.map +0 -1
  1858. package/dist/safety/agent-write-tracker.js.map +0 -1
  1859. package/dist/safety/always-disallowed.d.ts.map +0 -1
  1860. package/dist/safety/always-disallowed.js.map +0 -1
  1861. package/dist/safety/audit.d.ts.map +0 -1
  1862. package/dist/safety/audit.js.map +0 -1
  1863. package/dist/safety/integration-write-tracker.d.ts.map +0 -1
  1864. package/dist/safety/integration-write-tracker.js.map +0 -1
  1865. package/dist/safety/risk-classifier.d.ts.map +0 -1
  1866. package/dist/safety/risk-classifier.js.map +0 -1
  1867. package/dist/scheduler/hourly-check-gate.d.ts.map +0 -1
  1868. package/dist/scheduler/hourly-check-gate.js.map +0 -1
  1869. package/dist/secrets/backend-api-key-env.d.ts.map +0 -1
  1870. package/dist/secrets/backend-api-key-env.js.map +0 -1
  1871. package/dist/secrets/codex-home-materializer.d.ts.map +0 -1
  1872. package/dist/secrets/codex-home-materializer.js.map +0 -1
  1873. package/dist/secrets/encrypted-blob-store.d.ts.map +0 -1
  1874. package/dist/secrets/encrypted-blob-store.js.map +0 -1
  1875. package/dist/secrets/platform-secret-store.d.ts.map +0 -1
  1876. package/dist/secrets/platform-secret-store.js.map +0 -1
  1877. package/dist/secrets/redaction.d.ts.map +0 -1
  1878. package/dist/secrets/redaction.js.map +0 -1
  1879. package/dist/secrets/secret-broker.d.ts.map +0 -1
  1880. package/dist/secrets/secret-broker.js.map +0 -1
  1881. package/dist/secrets/secret-names.d.ts.map +0 -1
  1882. package/dist/secrets/secret-names.js.map +0 -1
  1883. package/dist/secrets/secret-store.d.ts.map +0 -1
  1884. package/dist/secrets/secret-store.js.map +0 -1
  1885. package/dist/secrets/types.d.ts.map +0 -1
  1886. package/dist/secrets/types.js.map +0 -1
  1887. package/dist/services/apple-calendar/caldav-client.d.ts.map +0 -1
  1888. package/dist/services/apple-calendar/caldav-client.js.map +0 -1
  1889. package/dist/services/apple-calendar/caldav-codec.d.ts.map +0 -1
  1890. package/dist/services/apple-calendar/caldav-codec.js.map +0 -1
  1891. package/dist/services/apple-calendar/index.d.ts.map +0 -1
  1892. package/dist/services/apple-calendar/index.js.map +0 -1
  1893. package/dist/services/apple-calendar/service.d.ts.map +0 -1
  1894. package/dist/services/apple-calendar/service.js.map +0 -1
  1895. package/dist/services/apple-calendar/types.d.ts.map +0 -1
  1896. package/dist/services/apple-calendar/types.js.map +0 -1
  1897. package/dist/services/attachments/hardlink.d.ts.map +0 -1
  1898. package/dist/services/attachments/hardlink.js.map +0 -1
  1899. package/dist/services/attachments/sanitize.d.ts.map +0 -1
  1900. package/dist/services/attachments/sanitize.js.map +0 -1
  1901. package/dist/services/attachments/store.d.ts.map +0 -1
  1902. package/dist/services/attachments/store.js.map +0 -1
  1903. package/dist/services/calendar/outlook/graph-calendar-client.d.ts.map +0 -1
  1904. package/dist/services/calendar/outlook/graph-calendar-client.js.map +0 -1
  1905. package/dist/services/calendar.d.ts.map +0 -1
  1906. package/dist/services/calendar.js.map +0 -1
  1907. package/dist/services/delegated-backend-invoker.d.ts.map +0 -1
  1908. package/dist/services/delegated-backend-invoker.js.map +0 -1
  1909. package/dist/services/delegated-invoker-audit.d.ts.map +0 -1
  1910. package/dist/services/delegated-invoker-audit.js.map +0 -1
  1911. package/dist/services/delegated-invoker-cache-hits.d.ts.map +0 -1
  1912. package/dist/services/delegated-invoker-cache-hits.js.map +0 -1
  1913. package/dist/services/delegated-invoker-janitors.d.ts.map +0 -1
  1914. package/dist/services/delegated-invoker-janitors.js.map +0 -1
  1915. package/dist/services/delegated-invoker-utils.d.ts.map +0 -1
  1916. package/dist/services/delegated-invoker-utils.js.map +0 -1
  1917. package/dist/services/delegated-proxy-config.d.ts.map +0 -1
  1918. package/dist/services/delegated-proxy-config.js.map +0 -1
  1919. package/dist/services/delegated-task-result-cache.d.ts.map +0 -1
  1920. package/dist/services/delegated-task-result-cache.js.map +0 -1
  1921. package/dist/services/delegated-task-runtime.d.ts.map +0 -1
  1922. package/dist/services/delegated-task-runtime.js.map +0 -1
  1923. package/dist/services/delegated-task-session-pool.d.ts.map +0 -1
  1924. package/dist/services/delegated-task-session-pool.js.map +0 -1
  1925. package/dist/services/delegated-tool-runtime.d.ts.map +0 -1
  1926. package/dist/services/delegated-tool-runtime.js.map +0 -1
  1927. package/dist/services/fts5.d.ts.map +0 -1
  1928. package/dist/services/fts5.js.map +0 -1
  1929. package/dist/services/git-account-registry.d.ts.map +0 -1
  1930. package/dist/services/git-account-registry.js.map +0 -1
  1931. package/dist/services/github.d.ts.map +0 -1
  1932. package/dist/services/github.js.map +0 -1
  1933. package/dist/services/gmail-classifier.d.ts.map +0 -1
  1934. package/dist/services/gmail-classifier.js.map +0 -1
  1935. package/dist/services/gmail.d.ts.map +0 -1
  1936. package/dist/services/gmail.js.map +0 -1
  1937. package/dist/services/google-auth.d.ts.map +0 -1
  1938. package/dist/services/google-auth.js.map +0 -1
  1939. package/dist/services/google-maps.d.ts +0 -35
  1940. package/dist/services/google-maps.d.ts.map +0 -1
  1941. package/dist/services/google-maps.js +0 -82
  1942. package/dist/services/google-maps.js.map +0 -1
  1943. package/dist/services/integrations/extract-write-item-id.d.ts.map +0 -1
  1944. package/dist/services/integrations/extract-write-item-id.js.map +0 -1
  1945. package/dist/services/integrations/reconcile.d.ts.map +0 -1
  1946. package/dist/services/integrations/reconcile.js.map +0 -1
  1947. package/dist/services/integrations/snapshot-partitions.d.ts.map +0 -1
  1948. package/dist/services/integrations/snapshot-partitions.js.map +0 -1
  1949. package/dist/services/journal/render.d.ts.map +0 -1
  1950. package/dist/services/journal/render.js.map +0 -1
  1951. package/dist/services/journal/writer.d.ts.map +0 -1
  1952. package/dist/services/journal/writer.js.map +0 -1
  1953. package/dist/services/mail/account-registry.d.ts.map +0 -1
  1954. package/dist/services/mail/account-registry.js.map +0 -1
  1955. package/dist/services/mail/gmail/auth-failure-classifier.d.ts.map +0 -1
  1956. package/dist/services/mail/gmail/auth-failure-classifier.js.map +0 -1
  1957. package/dist/services/mail/gmail/gmail-provider.d.ts.map +0 -1
  1958. package/dist/services/mail/gmail/gmail-provider.js.map +0 -1
  1959. package/dist/services/mail/gmail/legacy-row.d.ts.map +0 -1
  1960. package/dist/services/mail/gmail/legacy-row.js.map +0 -1
  1961. package/dist/services/mail/gmail/poll-cursor.d.ts.map +0 -1
  1962. package/dist/services/mail/gmail/poll-cursor.js.map +0 -1
  1963. package/dist/services/mail/html-to-plaintext.d.ts.map +0 -1
  1964. package/dist/services/mail/html-to-plaintext.js.map +0 -1
  1965. package/dist/services/mail/imap/app-password.d.ts.map +0 -1
  1966. package/dist/services/mail/imap/app-password.js.map +0 -1
  1967. package/dist/services/mail/imap/auth-failure-classifier.d.ts.map +0 -1
  1968. package/dist/services/mail/imap/auth-failure-classifier.js.map +0 -1
  1969. package/dist/services/mail/imap/capabilities.d.ts.map +0 -1
  1970. package/dist/services/mail/imap/capabilities.js.map +0 -1
  1971. package/dist/services/mail/imap/client.d.ts.map +0 -1
  1972. package/dist/services/mail/imap/client.js.map +0 -1
  1973. package/dist/services/mail/imap/cursor.d.ts.map +0 -1
  1974. package/dist/services/mail/imap/cursor.js.map +0 -1
  1975. package/dist/services/mail/imap/folder-resolver.d.ts.map +0 -1
  1976. package/dist/services/mail/imap/folder-resolver.js.map +0 -1
  1977. package/dist/services/mail/imap/icloud-provider.d.ts.map +0 -1
  1978. package/dist/services/mail/imap/icloud-provider.js.map +0 -1
  1979. package/dist/services/mail/imap/imap-provider-base.d.ts.map +0 -1
  1980. package/dist/services/mail/imap/imap-provider-base.js.map +0 -1
  1981. package/dist/services/mail/imap/query-translator.d.ts.map +0 -1
  1982. package/dist/services/mail/imap/query-translator.js.map +0 -1
  1983. package/dist/services/mail/imap/reconcile-planner.d.ts.map +0 -1
  1984. package/dist/services/mail/imap/reconcile-planner.js.map +0 -1
  1985. package/dist/services/mail/imap/reply-mime.d.ts.map +0 -1
  1986. package/dist/services/mail/imap/reply-mime.js.map +0 -1
  1987. package/dist/services/mail/imap/yahoo-provider.d.ts.map +0 -1
  1988. package/dist/services/mail/imap/yahoo-provider.js.map +0 -1
  1989. package/dist/services/mail/mail-search.d.ts.map +0 -1
  1990. package/dist/services/mail/mail-search.js.map +0 -1
  1991. package/dist/services/mail/outlook/auth-failure-classifier.d.ts.map +0 -1
  1992. package/dist/services/mail/outlook/auth-failure-classifier.js.map +0 -1
  1993. package/dist/services/mail/outlook/client-config.d.ts.map +0 -1
  1994. package/dist/services/mail/outlook/client-config.js.map +0 -1
  1995. package/dist/services/mail/outlook/delta-cursor.d.ts.map +0 -1
  1996. package/dist/services/mail/outlook/delta-cursor.js.map +0 -1
  1997. package/dist/services/mail/outlook/graph-client.d.ts.map +0 -1
  1998. package/dist/services/mail/outlook/graph-client.js.map +0 -1
  1999. package/dist/services/mail/outlook/msal-app-factory.d.ts.map +0 -1
  2000. package/dist/services/mail/outlook/msal-app-factory.js.map +0 -1
  2001. package/dist/services/mail/outlook/msal-cache-plugin.d.ts.map +0 -1
  2002. package/dist/services/mail/outlook/msal-cache-plugin.js.map +0 -1
  2003. package/dist/services/mail/outlook/oauth-device-code.d.ts.map +0 -1
  2004. package/dist/services/mail/outlook/oauth-device-code.js.map +0 -1
  2005. package/dist/services/mail/outlook/oauth-loopback.d.ts.map +0 -1
  2006. package/dist/services/mail/outlook/oauth-loopback.js.map +0 -1
  2007. package/dist/services/mail/outlook/outlook-provider.d.ts.map +0 -1
  2008. package/dist/services/mail/outlook/outlook-provider.js.map +0 -1
  2009. package/dist/services/mail/outlook/query-translator.d.ts.map +0 -1
  2010. package/dist/services/mail/outlook/query-translator.js.map +0 -1
  2011. package/dist/services/mail/provider.d.ts.map +0 -1
  2012. package/dist/services/mail/provider.js.map +0 -1
  2013. package/dist/services/mail/query-utils.d.ts.map +0 -1
  2014. package/dist/services/mail/query-utils.js.map +0 -1
  2015. package/dist/services/mail-classifier.d.ts.map +0 -1
  2016. package/dist/services/mail-classifier.js.map +0 -1
  2017. package/dist/services/mail-ingestion.d.ts.map +0 -1
  2018. package/dist/services/mail-ingestion.js.map +0 -1
  2019. package/dist/services/mcp/auto-probe.d.ts.map +0 -1
  2020. package/dist/services/mcp/auto-probe.js.map +0 -1
  2021. package/dist/services/mcp/generators/claude.d.ts.map +0 -1
  2022. package/dist/services/mcp/generators/claude.js.map +0 -1
  2023. package/dist/services/mcp/generators/codex.d.ts.map +0 -1
  2024. package/dist/services/mcp/generators/codex.js.map +0 -1
  2025. package/dist/services/mcp/generators/gemini.d.ts.map +0 -1
  2026. package/dist/services/mcp/generators/gemini.js.map +0 -1
  2027. package/dist/services/mcp/generators/index.d.ts.map +0 -1
  2028. package/dist/services/mcp/generators/index.js.map +0 -1
  2029. package/dist/services/mcp/generators/types.d.ts.map +0 -1
  2030. package/dist/services/mcp/generators/types.js.map +0 -1
  2031. package/dist/services/mcp/probe.d.ts.map +0 -1
  2032. package/dist/services/mcp/probe.js.map +0 -1
  2033. package/dist/services/mcp/registry.d.ts.map +0 -1
  2034. package/dist/services/mcp/registry.js.map +0 -1
  2035. package/dist/services/mcp/risk.d.ts.map +0 -1
  2036. package/dist/services/mcp/risk.js.map +0 -1
  2037. package/dist/services/mcp/session-materializer.d.ts.map +0 -1
  2038. package/dist/services/mcp/session-materializer.js.map +0 -1
  2039. package/dist/services/mcp/tool-audit.d.ts.map +0 -1
  2040. package/dist/services/mcp/tool-audit.js.map +0 -1
  2041. package/dist/services/mcp/types.d.ts.map +0 -1
  2042. package/dist/services/mcp/types.js.map +0 -1
  2043. package/dist/services/notion.d.ts.map +0 -1
  2044. package/dist/services/notion.js.map +0 -1
  2045. package/dist/services/obsidian.d.ts.map +0 -1
  2046. package/dist/services/obsidian.js.map +0 -1
  2047. package/dist/services/service-registry.d.ts.map +0 -1
  2048. package/dist/services/service-registry.js.map +0 -1
  2049. package/dist/services/voice/transcriber-impl.d.ts.map +0 -1
  2050. package/dist/services/voice/transcriber-impl.js.map +0 -1
  2051. package/dist/services/voice/transcriber.d.ts.map +0 -1
  2052. package/dist/services/voice/transcriber.js.map +0 -1
  2053. package/dist/settings/runtime-settings.d.ts.map +0 -1
  2054. package/dist/settings/runtime-settings.js.map +0 -1
  2055. package/dist/settings/settings-store.d.ts.map +0 -1
  2056. package/dist/settings/settings-store.js.map +0 -1
@@ -1,1472 +0,0 @@
1
- import { Hono } from "hono";
2
- import { streamSSE } from "hono/streaming";
3
- import { createSettingsStore } from "../../settings/settings-store.js";
4
- import { applyConfigUpdates } from "../env-writer.js";
5
- import { markIntegrationWrite } from "../../safety/integration-write-tracker.js";
6
- import { loadOutlookClientConfig, saveOutlookClientConfig, OUTLOOK_CLIENT_CONFIG_BLOB, } from "../../services/mail/outlook/client-config.js";
7
- import { runLoopbackOAuth, OAuthLoopbackError, OAuthLoopbackTimeoutError, } from "../../services/mail/outlook/oauth-loopback.js";
8
- import { runDeviceCodeOAuth } from "../../services/mail/outlook/oauth-device-code.js";
9
- import { DuplicateAccountError, ProviderNotImplementedError, } from "../../services/mail/account-registry.js";
10
- import { createLogger } from "../../logging.js";
11
- import { readJsonBody } from "../json-body.js";
12
- import { buildImapAccountSecret, isImapAppPasswordKind, serializeImapAccountSecret, } from "../../services/mail/imap/app-password.js";
13
- import { classifyImapAuthFailure } from "../../services/mail/imap/auth-failure-classifier.js";
14
- import { verifyImapAccountSecret } from "../../services/mail/imap/client.js";
15
- import { searchMail } from "../../services/mail/mail-search.js";
16
- import { extractMailHtmlBody, renderExtractedMailHtmlBody, } from "../../services/mail/html-to-plaintext.js";
17
- import { INTEGRATION_DESCRIPTORS, } from "@aitne/shared";
18
- import { readIntegrations } from "../../db/integrations-store.js";
19
- const logger = createLogger("mail-api");
20
- const ALL_KINDS = [
21
- "gmail",
22
- "outlook",
23
- "yahoo",
24
- "icloud",
25
- ];
26
- const PROVIDER_LABELS = {
27
- gmail: "Gmail",
28
- outlook: "Outlook",
29
- yahoo: "Yahoo Mail",
30
- icloud: "iCloud Mail",
31
- };
32
- /** Lower bound on the §C6 agent-write-attribution TTL. Covers the common
33
- * case where the poll interval is short (default 180s) — we still want
34
- * enough slack for a user action that triggered the send to settle before
35
- * the next poll picks it up. Real TTL scales with the configured poll
36
- * interval (see {@link computeAgentWriteTtlMs}). */
37
- const MAIL_AGENT_WRITE_TTL_FLOOR_MS = 5 * 60 * 1000;
38
- /** The poll-interval multiplier. Two ticks of slack means: a send at T=0
39
- * survives the T=poll and T=2*poll ticks before the mark expires —
40
- * enough to absorb one missed/delayed tick without losing attribution. */
41
- const MAIL_AGENT_WRITE_TTL_POLL_MULTIPLIER = 2;
42
- const MAIL_BODY_CHUNK_DEFAULT_CHARS = 12_000;
43
- const MAIL_BODY_CHUNK_MAX_CHARS = 50_000;
44
- const MAIL_BODY_METADATA_DEFAULT_LIMIT = 100;
45
- const MAIL_BODY_METADATA_MAX_LIMIT = 500;
46
- export function computeAgentWriteTtlMs(pollIntervalSeconds) {
47
- const derived = (pollIntervalSeconds ?? 0) * 1000 * MAIL_AGENT_WRITE_TTL_POLL_MULTIPLIER;
48
- return Math.max(MAIL_AGENT_WRITE_TTL_FLOOR_MS, derived);
49
- }
50
- function gatedIntegrationForKind(kind) {
51
- if (kind === "gmail")
52
- return "gmail";
53
- if (kind === "outlook")
54
- return "outlook_mail";
55
- return null;
56
- }
57
- function delegatedMailIntegrationMessage(key, delegatedBackend) {
58
- const descriptor = INTEGRATION_DESCRIPTORS[key];
59
- const displayName = descriptor.displayName;
60
- const owner = delegatedBackend
61
- ? `delegated to ${delegatedBackend}`
62
- : "delegated";
63
- // User-managed connector integrations (Outlook today) ship no
64
- // daemon-side proxy. The agent must use whatever Outlook MCP /
65
- // connector the user wired up on the chosen backend; pointing at
66
- // `/api/integrations/.../invoke` would be a lie.
67
- if (descriptor.userManagedConnector) {
68
- return [
69
- `${displayName} is in delegated mode (${owner}).`,
70
- `The agent backend is expected to use the user-installed ${displayName} MCP / connector tools — the daemon does not proxy this integration.`,
71
- "Other mail accounts remain available through /api/mail/*.",
72
- ].join(" ");
73
- }
74
- return [
75
- `${displayName} is in delegated mode (${owner}).`,
76
- `Same-backend sessions: use the connector's native ${displayName} MCP tools.`,
77
- `Cross-backend sessions: call POST /api/integrations/${key}/invoke.`,
78
- `Non-${displayName} mail accounts remain available through /api/mail/*.`,
79
- ].join(" ");
80
- }
81
- /**
82
- * INTEGRATION_NATIVE_MODE_DESIGN.md §9.2 — `/api/mail/*` cannot be
83
- * prefix-gated by `integration-route-gate.ts` because it is
84
- * multi-provider; the gated kinds (Gmail, Outlook) get a per-account
85
- * 410 inside the handler. This helper produces the body for
86
- * `delegated` and `native` modes (the two daemonless modes that have
87
- * an explicit redirect target — the user's MCP). `disabled` is
88
- * intentionally NOT gated here: the integration map defaults to
89
- * `disabled`, and a fresh install with Gmail/Outlook accounts already
90
- * provisioned would otherwise 410 their entire `/api/mail/*` surface
91
- * before the user has even visited the mode picker. The integration
92
- * registry's poller filter handles the `disabled` case at the data
93
- * path; the route-level 410 for disabled is reserved for the
94
- * centralised middleware where `apiRoutesTouched` declares prefix
95
- * coverage.
96
- *
97
- * The error codes mirror the centralised middleware's vocabulary so
98
- * dashboards can branch on the same string regardless of which gate
99
- * fired.
100
- */
101
- function gatedMailIntegrationResponse(key, state) {
102
- const descriptor = INTEGRATION_DESCRIPTORS[key];
103
- const displayName = descriptor.displayName;
104
- if (state.mode === "delegated") {
105
- return {
106
- error: "integration_delegated",
107
- message: delegatedMailIntegrationMessage(key, state.delegatedBackend ?? null),
108
- integration: key,
109
- backend: state.delegatedBackend ?? null,
110
- mode: "delegated",
111
- };
112
- }
113
- if (state.mode === "native") {
114
- const nb = state.nativeBackend ?? null;
115
- // User-managed integrations (Outlook) point at the user's installed
116
- // MCP; descriptor-driven (Gmail) point at the backend's hosted
117
- // connector and the SKILL.native.<backend>.md body. Mirrors the
118
- // central route gate's branching so the agent gets symmetric copy
119
- // whether the request hits a prefix-gated route or a multi-provider
120
- // route.
121
- const message = descriptor.userManagedConnector
122
- ? `${displayName} is in native mode (bound to ${nb ?? "main backend"}). The agent backend is expected to use the user-installed ${displayName} MCP / connector tools — the daemon does not poll and does not expose a proxy for this integration. Other mail accounts remain available through /api/mail/*.`
123
- : `${displayName} is in native mode (bound to ${nb ?? "main backend"}). Use the backend's native MCP tools (see the SKILL.native.${nb ?? "<backend>"}.md body); the daemon does not poll and does not expose a proxy for this integration. Other mail accounts remain available through /api/mail/*.`;
124
- return {
125
- error: "integration_native",
126
- message,
127
- integration: key,
128
- backend: nb,
129
- mode: "native",
130
- };
131
- }
132
- return null;
133
- }
134
- export function createMailRoutes(deps) {
135
- const app = new Hono();
136
- const getSettingsStore = () => deps.settingsStore ?? createSettingsStore(deps.db);
137
- const verifyImapCredentials = deps.verifyImapAccountSecret ?? verifyImapAccountSecret;
138
- app.get("/mail/providers", (c) => {
139
- const registry = deps.services.mail;
140
- const accounts = registry?.listAccounts() ?? [];
141
- const available = ALL_KINDS.map((kind) => {
142
- const ofKind = accounts.filter((a) => a.kind === kind);
143
- return {
144
- kind,
145
- label: PROVIDER_LABELS[kind],
146
- accountsConfigured: ofKind.length,
147
- accountsHealthy: ofKind.filter((a) => a.authStatus === "healthy").length,
148
- };
149
- });
150
- return c.json({
151
- enabledKinds: [...deps.config.enabledMailProviders],
152
- available,
153
- });
154
- });
155
- app.patch("/mail/providers", async (c) => {
156
- const parsedBody = await readJsonBody(c);
157
- if (!parsedBody.ok)
158
- return parsedBody.response;
159
- const candidate = parsedBody.body?.enabledKinds;
160
- if (!Array.isArray(candidate)) {
161
- return c.json({ error: "invalid_body", message: "enabledKinds must be an array" }, 400);
162
- }
163
- const settingsStore = getSettingsStore();
164
- const result = await applyConfigUpdates(deps.config, settingsStore, {
165
- enabledMailProviders: candidate,
166
- });
167
- if (Object.keys(result.errors).length > 0) {
168
- return c.json({ error: "validation_failed", errors: result.errors }, 400);
169
- }
170
- const newKinds = deps.config.enabledMailProviders;
171
- const registry = deps.services.mail;
172
- const before = new Set();
173
- const after = new Set(newKinds);
174
- const accounts = registry?.listAccounts() ?? [];
175
- for (const acct of accounts) {
176
- before.add(acct.kind);
177
- }
178
- const dormantAccounts = accounts
179
- .filter((a) => before.has(a.kind) && !after.has(a.kind))
180
- .map((a) => a.id);
181
- const resumedAccounts = accounts
182
- .filter((a) => after.has(a.kind))
183
- .map((a) => a.id);
184
- registry?.onProviderSelectionChanged(newKinds);
185
- logger.info({ enabledKinds: [...newKinds], dormantAccounts, resumedAccounts }, "mail provider selection updated");
186
- return c.json({ status: "updated", dormantAccounts, resumedAccounts });
187
- });
188
- // GET /mail/accounts — all configured accounts (dashboard, setup).
189
- // GET /mail/accounts?active=1 — scope-gated subset that matches what
190
- // `accounts.md` materializes and what the unified poller observes:
191
- // kind ∈ enabledMailProviders ∧ account.active ∧ authStatus === "healthy".
192
- // Skills that need to refresh a stale `accounts.md` MUST pass `?active=1`
193
- // — raw listAccounts() includes dormant / unhealthy rows and will mislead
194
- // the agent into picking an id that every operation will 4xx on.
195
- app.get("/mail/accounts", (c) => {
196
- const registry = deps.services.mail;
197
- if (!registry) {
198
- return c.json({ accounts: [] });
199
- }
200
- const activeOnly = c.req.query("active") === "1";
201
- const accounts = activeOnly
202
- ? registry.listActiveAccounts()
203
- : registry.listAccounts();
204
- return c.json({ accounts });
205
- });
206
- // POST /mail/accounts blocks for the duration of the loopback PKCE flow —
207
- // up to OAuthLoopbackTimeoutError's 5-minute cap (see oauth-loopback.ts).
208
- // Dashboard clients MUST configure a long fetch timeout for this route.
209
- // Headless environments (SSH, WSL) should use /mail/accounts/device-code.
210
- app.post("/mail/accounts", async (c) => {
211
- const registry = deps.services.mail;
212
- if (!registry)
213
- return c.json({ error: "mail_not_configured" }, 503);
214
- if (!deps.blobStore)
215
- return c.json({ error: "blob_store_unavailable" }, 503);
216
- const parsedBody = await readJsonBody(c);
217
- if (!parsedBody.ok)
218
- return parsedBody.response;
219
- const body = parsedBody.body;
220
- if (body?.kind === "gmail") {
221
- // The primary Gmail mailbox now participates in the unified mail
222
- // surface via the shared Google OAuth credentials from
223
- // /config/google-auth. Additional Gmail accounts still need a
224
- // per-account Google OAuth credential store and are intentionally
225
- // not wired up yet.
226
- return c.json({
227
- error: "not_implemented",
228
- message: "Additional Gmail accounts are not implemented yet. The primary Gmail identity is configured through /config/google-auth and is exposed on the unified /mail/* surface automatically.",
229
- }, 501);
230
- }
231
- if (body?.kind !== "outlook") {
232
- return c.json({
233
- error: "unsupported_kind",
234
- message: "Only outlook is supported on this endpoint. Yahoo/iCloud use POST /config/mail/app-password. The primary Gmail account uses /config/google-auth; extra Gmail accounts are not implemented.",
235
- }, 400);
236
- }
237
- // §UI v2 auth-then-enable: registration is allowed regardless of
238
- // enabledMailProviders. The provider becomes live only when the user
239
- // toggles "Enable" on the dashboard mail card.
240
- const clientConfig = await loadOutlookClientConfig(deps.blobStore);
241
- if (!clientConfig) {
242
- return c.json({
243
- error: "outlook_client_config_missing",
244
- message: "PUT /api/config/mail/outlook/client-config first.",
245
- }, 412);
246
- }
247
- let oauthResult;
248
- try {
249
- oauthResult = await runLoopbackOAuth({ clientConfig });
250
- }
251
- catch (err) {
252
- if (err instanceof OAuthLoopbackTimeoutError) {
253
- return c.json({ error: "oauth_timeout", message: err.message }, 408);
254
- }
255
- if (err instanceof OAuthLoopbackError) {
256
- return c.json({ error: err.code, message: err.message }, 400);
257
- }
258
- logger.error({ err }, "outlook oauth bootstrap failed");
259
- return c.json({ error: "oauth_failed", message: err instanceof Error ? err.message : String(err) }, 500);
260
- }
261
- try {
262
- const account = await registry.addAccount({
263
- kind: "outlook",
264
- email: oauthResult.email,
265
- label: typeof body?.label === "string" ? body.label : undefined,
266
- authType: "oauth",
267
- secretPayload: oauthResult.serializedCache,
268
- });
269
- return c.json({ status: "completed", account });
270
- }
271
- catch (err) {
272
- if (err instanceof DuplicateAccountError) {
273
- return c.json({ error: err.code, message: err.message }, 409);
274
- }
275
- logger.error({ err, email: oauthResult.email }, "outlook addAccount failed after OAuth");
276
- return c.json({ error: "add_account_failed", message: err instanceof Error ? err.message : String(err) }, 500);
277
- }
278
- });
279
- // Device-code fallback (§B2). Used by headless/SSH environments where the
280
- // loopback flow's browser-open would fail. Streams SSE events:
281
- // `prompt` { userCode, verificationUri, expiresIn, message }
282
- // `completed` { account }
283
- // `failed` { error, message }
284
- //
285
- // MSAL's acquireTokenByDeviceCode blocks until the user completes verification
286
- // in their browser, so this endpoint may remain open for several minutes.
287
- app.post("/mail/accounts/device-code", async (c) => {
288
- const registry = deps.services.mail;
289
- if (!registry)
290
- return c.json({ error: "mail_not_configured" }, 503);
291
- if (!deps.blobStore)
292
- return c.json({ error: "blob_store_unavailable" }, 503);
293
- const parsedBody = await readJsonBody(c);
294
- if (!parsedBody.ok)
295
- return parsedBody.response;
296
- const body = parsedBody.body;
297
- if (body?.kind !== "outlook") {
298
- return c.json({ error: "unsupported_kind" }, 400);
299
- }
300
- // §UI v2 auth-then-enable: registration allowed regardless of
301
- // enabledMailProviders. The Enable toggle on the dashboard mail card
302
- // governs whether the agent observes this account.
303
- const clientConfig = await loadOutlookClientConfig(deps.blobStore);
304
- if (!clientConfig) {
305
- return c.json({ error: "outlook_client_config_missing" }, 412);
306
- }
307
- const label = typeof body?.label === "string" ? body.label : undefined;
308
- return streamSSE(c, async (stream) => {
309
- try {
310
- const result = await runDeviceCodeOAuth({
311
- clientConfig,
312
- onPrompt: async (info) => {
313
- await stream.writeSSE({
314
- event: "prompt",
315
- data: JSON.stringify(info),
316
- });
317
- },
318
- });
319
- try {
320
- const account = await registry.addAccount({
321
- kind: "outlook",
322
- email: result.email,
323
- label,
324
- authType: "oauth",
325
- secretPayload: result.serializedCache,
326
- });
327
- await stream.writeSSE({
328
- event: "completed",
329
- data: JSON.stringify({ account }),
330
- });
331
- }
332
- catch (err) {
333
- if (err instanceof DuplicateAccountError) {
334
- await stream.writeSSE({
335
- event: "failed",
336
- data: JSON.stringify({ error: err.code, message: err.message }),
337
- });
338
- return;
339
- }
340
- throw err;
341
- }
342
- }
343
- catch (err) {
344
- logger.error({ err }, "device-code oauth failed");
345
- await stream.writeSSE({
346
- event: "failed",
347
- data: JSON.stringify({
348
- error: "device_code_failed",
349
- message: err instanceof Error ? err.message : String(err),
350
- }),
351
- });
352
- }
353
- });
354
- });
355
- // Active-toggle for a single account. Distinct from provider-level enable
356
- // (§6.0): users can disable one Outlook account while keeping the "Outlook"
357
- // provider enabled.
358
- app.patch("/mail/accounts/:accountId", async (c) => {
359
- const registry = deps.services.mail;
360
- if (!registry)
361
- return c.json({ error: "mail_not_configured" }, 503);
362
- const accountId = c.req.param("accountId");
363
- const parsedBody = await readJsonBody(c);
364
- if (!parsedBody.ok)
365
- return parsedBody.response;
366
- const active = parsedBody.body?.active;
367
- if (typeof active !== "boolean") {
368
- return c.json({ error: "invalid_body", message: "active: boolean required" }, 400);
369
- }
370
- const updated = await registry.setActive(accountId, active);
371
- if (!updated)
372
- return c.json({ error: "not_found" }, 404);
373
- return c.json({ status: "updated", account: updated });
374
- });
375
- app.delete("/mail/accounts/:accountId", async (c) => {
376
- const registry = deps.services.mail;
377
- if (!registry) {
378
- return c.json({ error: "mail_not_configured" }, 503);
379
- }
380
- const accountId = c.req.param("accountId");
381
- const removed = await registry.removeAccount(accountId);
382
- if (!removed) {
383
- return c.json({ error: "not_found" }, 404);
384
- }
385
- return c.json({ status: "removed", accountId });
386
- });
387
- // ──────────────────────────────────────────────────────────────────────────
388
- // Outlook BYOA client config (§6.1).
389
- // Stored separately from per-account token cache.
390
- // ──────────────────────────────────────────────────────────────────────────
391
- app.get("/config/mail/outlook/client-config", async (c) => {
392
- if (!deps.blobStore)
393
- return c.json({ error: "blob_store_unavailable" }, 503);
394
- const config = await loadOutlookClientConfig(deps.blobStore);
395
- if (!config)
396
- return c.json({ configured: false }, 200);
397
- // clientId is technically public per the OAuth "public client" model;
398
- // returning it lets the dashboard show a confirmation. Tenant ditto.
399
- return c.json({ configured: true, clientId: config.clientId, tenant: config.tenant });
400
- });
401
- app.put("/config/mail/outlook/client-config", async (c) => {
402
- if (!deps.blobStore)
403
- return c.json({ error: "blob_store_unavailable" }, 503);
404
- const parsedBody = await readJsonBody(c);
405
- if (!parsedBody.ok)
406
- return parsedBody.response;
407
- const candidate = parsedBody.body;
408
- const clientId = candidate?.clientId;
409
- const tenant = candidate?.tenant;
410
- if (typeof clientId !== "string" || clientId.length === 0) {
411
- return c.json({ error: "invalid_body", message: "clientId required" }, 400);
412
- }
413
- const resolved = {
414
- clientId,
415
- tenant: typeof tenant === "string" && tenant.length > 0 ? tenant : "common",
416
- };
417
- await saveOutlookClientConfig(deps.blobStore, resolved);
418
- return c.json({ status: "saved", clientId: resolved.clientId, tenant: resolved.tenant });
419
- });
420
- app.delete("/config/mail/outlook/client-config", async (c) => {
421
- if (!deps.blobStore)
422
- return c.json({ error: "blob_store_unavailable" }, 503);
423
- await deps.blobStore.remove(OUTLOOK_CLIENT_CONFIG_BLOB);
424
- return c.json({ status: "removed" });
425
- });
426
- // The Outlook OAuth bootstrap lives on POST /mail/accounts (loopback) or
427
- // POST /mail/accounts/device-code (headless). No daemon-side callback
428
- // endpoint is needed — the Microsoft redirect targets the ephemeral loopback
429
- // http.Server inside runLoopbackOAuth.
430
- app.post("/config/mail/app-password", async (c) => {
431
- const registry = deps.services.mail;
432
- if (!registry)
433
- return c.json({ error: "mail_not_configured" }, 503);
434
- const parsedBody = await readJsonBody(c);
435
- if (!parsedBody.ok)
436
- return parsedBody.response;
437
- const body = parsedBody.body;
438
- const kindCandidate = typeof body?.kind === "string" ? body.kind : null;
439
- const email = typeof body?.email === "string" ? body.email : null;
440
- const appPassword = typeof body?.appPassword === "string" ? body.appPassword : null;
441
- if (!kindCandidate ||
442
- !isImapAppPasswordKind(kindCandidate) ||
443
- !email ||
444
- email.length === 0 ||
445
- !appPassword ||
446
- appPassword.length === 0) {
447
- return c.json({
448
- error: "invalid_body",
449
- message: "kind(yahoo|icloud), email, and appPassword are required.",
450
- }, 400);
451
- }
452
- const kind = kindCandidate;
453
- // §UI v2 auth-then-enable: registration allowed regardless of
454
- // enabledMailProviders. The Enable toggle on the dashboard mail card
455
- // governs whether the agent observes this account.
456
- const secret = buildImapAccountSecret(kind, email, appPassword);
457
- let capabilities;
458
- try {
459
- capabilities = await verifyImapCredentials(secret);
460
- }
461
- catch (err) {
462
- const classified = classifyImapAuthFailure({
463
- errorName: err instanceof Error ? err.name : null,
464
- message: getImapErrorMessage(err),
465
- responseCode: getErrorResponseCode(err),
466
- });
467
- if (classified.status === "requires_consent") {
468
- return c.json({
469
- error: "imap_auth_failed",
470
- message: "IMAP login failed. Verify the email address and app password, then try again.",
471
- }, 400);
472
- }
473
- if (classified.status === "degraded" || classified.status === "transient") {
474
- return c.json({
475
- error: "imap_connect_failed",
476
- message: "The IMAP server could not be reached or rejected the login attempt. Try again shortly.",
477
- }, 502);
478
- }
479
- logger.error({ err, kind, email }, "app-password IMAP verification failed");
480
- return c.json({ error: "add_account_failed", message: err instanceof Error ? err.message : String(err) }, 500);
481
- }
482
- try {
483
- const account = await registry.addAccount({
484
- kind,
485
- email,
486
- label: typeof body?.label === "string" ? body.label : undefined,
487
- authType: "app_password",
488
- secretPayload: serializeImapAccountSecret(secret),
489
- idleEnabled: true,
490
- capabilities: capabilities ?? undefined,
491
- });
492
- return c.json({ status: "completed", account });
493
- }
494
- catch (err) {
495
- if (err instanceof DuplicateAccountError) {
496
- return c.json({ error: err.code, message: err.message }, 409);
497
- }
498
- if (err instanceof ProviderNotImplementedError) {
499
- return c.json({ error: err.code, message: err.message }, 400);
500
- }
501
- logger.error({ err, kind, email }, "app-password account add failed");
502
- return c.json({ error: "add_account_failed", message: err instanceof Error ? err.message : String(err) }, 500);
503
- }
504
- });
505
- // Refresh an existing IMAP (Yahoo / iCloud) account's app password without
506
- // deleting and re-creating the row. Used when the user rotates the password
507
- // at the provider and the account flips to `requires_consent`. The route
508
- // verifies the new credentials against the IMAP server before persisting,
509
- // then resets `auth_status` to `healthy`.
510
- app.post("/config/mail/app-password/:accountId/refresh", async (c) => {
511
- const registry = deps.services.mail;
512
- if (!registry)
513
- return c.json({ error: "mail_not_configured" }, 503);
514
- const accountId = c.req.param("accountId");
515
- const account = registry.getAccount(accountId);
516
- if (!account)
517
- return c.json({ error: "not_found" }, 404);
518
- if (account.kind !== "yahoo" && account.kind !== "icloud") {
519
- return c.json({
520
- error: "unsupported_kind",
521
- message: "App-password refresh only supports yahoo / icloud. Outlook re-authenticates via the OAuth loopback flow.",
522
- }, 400);
523
- }
524
- const parsedBody = await readJsonBody(c);
525
- if (!parsedBody.ok)
526
- return parsedBody.response;
527
- const body = parsedBody.body;
528
- const appPassword = typeof body?.appPassword === "string" ? body.appPassword : null;
529
- if (!appPassword || appPassword.length === 0) {
530
- return c.json({ error: "invalid_body", message: "appPassword is required." }, 400);
531
- }
532
- const secret = buildImapAccountSecret(account.kind, account.email, appPassword);
533
- let capabilities;
534
- try {
535
- capabilities = await verifyImapCredentials(secret);
536
- }
537
- catch (err) {
538
- const classified = classifyImapAuthFailure({
539
- errorName: err instanceof Error ? err.name : null,
540
- message: getImapErrorMessage(err),
541
- responseCode: getErrorResponseCode(err),
542
- });
543
- if (classified.status === "requires_consent") {
544
- return c.json({
545
- error: "imap_auth_failed",
546
- message: "IMAP login failed with the new password. Generate a fresh app password and try again.",
547
- }, 400);
548
- }
549
- if (classified.status === "degraded" || classified.status === "transient") {
550
- return c.json({
551
- error: "imap_connect_failed",
552
- message: "The IMAP server could not be reached. Try again shortly.",
553
- }, 502);
554
- }
555
- logger.error({ err, accountId }, "app-password refresh verification failed");
556
- return c.json({ error: "refresh_failed", message: err instanceof Error ? err.message : String(err) }, 500);
557
- }
558
- try {
559
- const updated = await registry.refreshImapSecret(accountId, serializeImapAccountSecret(secret), capabilities ?? undefined);
560
- if (!updated)
561
- return c.json({ error: "not_found" }, 404);
562
- return c.json({ status: "refreshed", account: updated });
563
- }
564
- catch (err) {
565
- logger.error({ err, accountId }, "app-password refresh failed");
566
- return c.json({ error: "refresh_failed", message: err instanceof Error ? err.message : String(err) }, 500);
567
- }
568
- });
569
- // ──────────────────────────────────────────────────────────────────────────
570
- // Cross-account local search backed by the fts_mail_messages virtual
571
- // table. Returns a flat list of lightweight summaries sourced
572
- // from the index — no provider round-trip. Use this as the first stop for
573
- // "find emails about X" queries; fall back to `/mail/:acct/messages?q=`
574
- // only when the user wants provider-fresh results or matches bodies older
575
- // than the local index.
576
- //
577
- // Shape matches MailMessageSummary (subset): { accountId, providerMsgId,
578
- // subject, snippet, receivedAtUtc, from, isRead }. Results span all
579
- // accounts by default; scope with `?accountId=`.
580
- // ──────────────────────────────────────────────────────────────────────────
581
- app.get("/mail/search", (c) => {
582
- const q = c.req.query("q")?.trim() ?? "";
583
- if (q.length === 0) {
584
- return c.json({ error: "invalid_query", message: "q is required and must be non-empty" }, 400);
585
- }
586
- const limit = parseIntParam(c.req.query("limit"), 50, { min: 1, max: 500 });
587
- const accountId = c.req.query("accountId") ?? undefined;
588
- // §4.8 per-account mode gate for search — if the caller pins the
589
- // query to a Gmail / Outlook account whose integration is in
590
- // `delegated` or `native` mode, 410. The unscoped cross-account
591
- // search path stays open; results for a gated account would just
592
- // be stale FTS hits (live polling is off in both modes), which is
593
- // acceptable for Phase 2 and documented in §4.4. Per
594
- // INTEGRATION_NATIVE_MODE_DESIGN.md §9.2 the gate widened from
595
- // delegated-only to cover native too so the agent gets a consistent
596
- // redirect signal when Outlook is flipped to native (user-managed
597
- // MCP) or Gmail's native binding is in play. `disabled` is not
598
- // gated here — see `gatedMailIntegrationResponse` doc-comment.
599
- if (accountId) {
600
- const account = deps.services.mail?.getAccount(accountId);
601
- if (account) {
602
- const gatedIntegrationKey = gatedIntegrationForKind(account.kind);
603
- if (gatedIntegrationKey) {
604
- const state = readIntegrations(deps.db)[gatedIntegrationKey];
605
- const gateResponse = gatedMailIntegrationResponse(gatedIntegrationKey, state);
606
- if (gateResponse !== null) {
607
- return c.json(gateResponse, 410);
608
- }
609
- }
610
- }
611
- }
612
- const hits = searchMail(deps.db, q, { accountId, limit });
613
- const results = hits.map((h) => ({
614
- accountId: h.accountId,
615
- providerMsgId: h.providerMsgId,
616
- subject: h.subject,
617
- snippet: h.snippet,
618
- receivedAtUtc: h.receivedAtUtc,
619
- from: h.fromEmail ? { email: h.fromEmail } : null,
620
- isRead: h.isRead,
621
- }));
622
- return c.json({ results, count: results.length, query: q });
623
- });
624
- // Read the mail-side parse_failures diagnostics table. The poller +
625
- // ingestion pipeline write a row whenever a Kindle-export / travel /
626
- // classification path bails out; this endpoint surfaces the latest
627
- // failures so the dashboard (or a curl one-liner) can answer "why
628
- // didn't my booking get picked up?". Read-only — no mutation surface.
629
- app.get("/mail/parse-failures", (c) => {
630
- const limit = parseIntParam(c.req.query("limit"), 50, { min: 1, max: 500 });
631
- const accountId = c.req.query("accountId") ?? null;
632
- const params = [];
633
- let sql = `
634
- SELECT id,
635
- account_id AS accountId,
636
- provider_msg_id AS providerMsgId,
637
- sender,
638
- subject,
639
- snippet,
640
- error_reason AS errorReason,
641
- created_at AS createdAt
642
- FROM parse_failures`;
643
- if (accountId) {
644
- sql += ` WHERE account_id = ?`;
645
- params.push(accountId);
646
- }
647
- sql += ` ORDER BY id DESC LIMIT ?`;
648
- params.push(limit);
649
- const rows = deps.db.prepare(sql).all(...params);
650
- return c.json({ failures: rows, count: rows.length });
651
- });
652
- // ──────────────────────────────────────────────────────────────────────────
653
- // Per-account operations (§3.3, §3.11 parity table).
654
- // Each route resolves a live MailProvider via the registry; error mapping
655
- // distinguishes 404 (account not found) / 400 (provider not enabled for
656
- // selection) / 501 (provider interface method not implemented yet for this
657
- // kind). Write routes call writeTracker.markWriting so the unified poller
658
- // suppresses the agent's own operations (§3.2).
659
- // ──────────────────────────────────────────────────────────────────────────
660
- const resolveProvider = async (accountId) => {
661
- const registry = deps.services.mail;
662
- if (!registry) {
663
- return { ok: false, status: 503, code: "mail_not_configured", message: "Mail registry unavailable." };
664
- }
665
- const account = registry.getAccount(accountId);
666
- if (!account) {
667
- return { ok: false, status: 404, code: "not_found", message: `No mail account ${accountId}` };
668
- }
669
- // §4.8 per-account mode gate. The route-gate middleware cannot
670
- // blanket 410 `/api/mail/*` because it would also stop direct-only
671
- // providers (iCloud, Yahoo, IMAP). Instead, accounts whose kind maps
672
- // to a gated integration (Gmail → gmail; Outlook → outlook_mail)
673
- // return 410 when that integration is in `delegated` or `native`
674
- // mode. Per INTEGRATION_NATIVE_MODE_DESIGN.md §9.2 the gate widened
675
- // from delegated-only so the agent gets a consistent redirect
676
- // signal when Outlook is flipped to native (user-managed MCP).
677
- // `disabled` accounts are filtered at the data path (poller) — see
678
- // `gatedMailIntegrationResponse` for why we do not gate them here.
679
- const gatedIntegrationKey = gatedIntegrationForKind(account.kind);
680
- if (gatedIntegrationKey) {
681
- const state = readIntegrations(deps.db)[gatedIntegrationKey];
682
- const gateResponse = gatedMailIntegrationResponse(gatedIntegrationKey, state);
683
- if (gateResponse !== null) {
684
- return {
685
- ok: false,
686
- status: 410,
687
- code: gateResponse.error,
688
- message: gateResponse.message,
689
- integration: gateResponse.integration,
690
- backend: gateResponse.backend,
691
- mode: gateResponse.mode,
692
- };
693
- }
694
- }
695
- // Single scope-gate check mirroring `passesScopeGate` used by the
696
- // unified poller and `accounts.md` materialization. Clients get one
697
- // error shape (`provider_not_enabled`) with a machine-readable `detail`
698
- // field so dashboards can render a specific prompt without having to
699
- // branch on three near-synonymous codes.
700
- //
701
- // Recovery endpoints (`POST /config/mail/app-password/:id/refresh`)
702
- // intentionally bypass this gate by reading the account directly — users
703
- // MUST be able to fix a degraded account. If you add new recovery flows,
704
- // keep that property: never route recovery through `resolveProvider`.
705
- const detail = !deps.config.enabledMailProviders.includes(account.kind)
706
- ? "kind_not_enabled"
707
- : !account.active
708
- ? "account_inactive"
709
- : account.authStatus !== "healthy"
710
- ? "account_unhealthy"
711
- : null;
712
- if (detail !== null) {
713
- const detailMessages = {
714
- kind_not_enabled: `${account.kind} is not in enabledMailProviders.`,
715
- account_inactive: `Mail account ${accountId} is disabled.`,
716
- account_unhealthy: `Mail account ${accountId} requires re-auth (status: ${account.authStatus}).`,
717
- };
718
- return {
719
- ok: false,
720
- status: 400,
721
- code: "provider_not_enabled",
722
- message: detailMessages[detail],
723
- detail,
724
- };
725
- }
726
- try {
727
- const provider = await registry.getProvider(accountId);
728
- if (!provider) {
729
- return {
730
- ok: false,
731
- status: 501,
732
- code: "provider_not_implemented",
733
- message: `Provider ${account.kind} is not wired up.`,
734
- };
735
- }
736
- return { ok: true, provider };
737
- }
738
- catch (err) {
739
- if (err instanceof ProviderNotImplementedError) {
740
- return { ok: false, status: 501, code: err.code, message: err.message };
741
- }
742
- throw err;
743
- }
744
- };
745
- // TTL is derived from the current poll interval so the tracker mark
746
- // outlives at least one poll tick (see computeAgentWriteTtlMs). Read at
747
- // mark-time — reflects a runtime PATCH /api/config without a restart.
748
- const writeTtlMs = () => computeAgentWriteTtlMs(deps.config.mailPollIntervalSeconds);
749
- const markAgentWrite = (accountId, providerMsgId) => {
750
- deps.writeTracker?.markWriting(`mail:${accountId}:${providerMsgId}`, undefined, {
751
- ttlMs: writeTtlMs(),
752
- });
753
- };
754
- // INTEGRATION-DRIFT-DETECTION-PLAN.md §11 Phase 4 — actor attribution
755
- // for the persistent `integration_writes` table. Only Gmail accounts
756
- // map to an `IntegrationKey` (per `gatedIntegrationForKind`); iCloud /
757
- // Outlook / Yahoo / IMAP have no integration descriptor and skip.
758
- // Each id passed here is marked under `(gmail, id)` for the Gmail
759
- // default TTL (30 min — see INTEGRATION_WRITE_TTL_MS). Non-Gmail
760
- // accounts return a no-op; the in-memory `markAgentWrite` above is the
761
- // only attribution surface for them.
762
- const markGmailIntegrationWrite = (accountId, ...providerIds) => {
763
- const registry = deps.services.mail;
764
- /* c8 ignore next */ if (!registry)
765
- return;
766
- const account = registry.getAccount(accountId);
767
- /* c8 ignore next */ if (!account)
768
- return;
769
- if (gatedIntegrationForKind(account.kind) !== "gmail")
770
- return;
771
- for (const id of providerIds) {
772
- if (typeof id === "string" && id.length > 0) {
773
- markIntegrationWrite(deps.db, "gmail", id);
774
- }
775
- }
776
- };
777
- /**
778
- * Second-key attribution via RFC-2822 Message-Id. On IMAP, the Sent folder
779
- * UID the poller later observes has no relationship to the draft UID the
780
- * route marked. The rfc822 key is stable across the transport path so the
781
- * poller can still match. Providers that don't surface the id leave this
782
- * a no-op (route treats undefined as "skip"). The poller is taught to
783
- * check both keys (§MailPoller.pollAccount).
784
- */
785
- const markAgentWriteRfc822 = (accountId, rfc822MsgId) => {
786
- if (!rfc822MsgId)
787
- return;
788
- deps.writeTracker?.markWriting(`mail:${accountId}:rfc822:${rfc822MsgId}`, undefined, { ttlMs: writeTtlMs() });
789
- };
790
- const ensureMethod = (provider, method) => typeof provider[method] === "function";
791
- /**
792
- * Render a `resolveProvider` failure as an HTTP response. The 410
793
- * branch carries the §4.5.2 / §9.2 body shape (integration, backend,
794
- * mode) so the dashboard and agent tooling can uniformly detect a
795
- * gated-mode surface regardless of whether the path was caught by the
796
- * global route-gate middleware (§4.5.2) or the per-account gate here
797
- * (§4.8 + §9.2 native widening). The mode field carries through from
798
- * `gatedMailIntegrationResponse`; falling back to "delegated"
799
- * preserves the legacy shape for any 410 outcomes that pre-dated the
800
- * native widening.
801
- */
802
- const renderResolveError = (c, resolved) => {
803
- if (resolved.status === 410) {
804
- return c.json({
805
- error: resolved.code,
806
- message: resolved.message,
807
- integration: resolved.integration ?? null,
808
- backend: resolved.backend ?? null,
809
- mode: resolved.mode ?? "delegated",
810
- }, 410);
811
- }
812
- return c.json({
813
- error: resolved.code,
814
- message: resolved.message,
815
- detail: resolved.detail,
816
- }, resolved.status);
817
- };
818
- app.get("/mail/:accountId/health", (c) => {
819
- const registry = deps.services.mail;
820
- if (!registry)
821
- return c.json({ error: "mail_not_configured" }, 503);
822
- const accountId = c.req.param("accountId");
823
- // §4.8 per-account mode gate — also applies to /health so the
824
- // dashboard does not surface a stale poll cursor for an account
825
- // whose integration the daemon has stopped touching (delegated /
826
- // native). `disabled` is intentionally not gated here so the dash
827
- // can still surface the last-known cursor while the user is
828
- // mid-reconfigure. Recovery endpoints (`POST
829
- // /config/mail/app-password/:id/refresh`) stay outside this gate.
830
- const account = registry.getAccount(accountId);
831
- if (account) {
832
- const gatedIntegrationKey = gatedIntegrationForKind(account.kind);
833
- if (gatedIntegrationKey) {
834
- const state = readIntegrations(deps.db)[gatedIntegrationKey];
835
- const gateResponse = gatedMailIntegrationResponse(gatedIntegrationKey, state);
836
- if (gateResponse !== null) {
837
- return c.json(gateResponse, 410);
838
- }
839
- }
840
- }
841
- const health = registry.getHealth(accountId);
842
- if (!health)
843
- return c.json({ error: "not_found" }, 404);
844
- return c.json(health);
845
- });
846
- app.get("/mail/:accountId/messages", async (c) => {
847
- const accountId = c.req.param("accountId");
848
- const resolved = await resolveProvider(accountId);
849
- if (!resolved.ok)
850
- return renderResolveError(c, resolved);
851
- const limit = parseIntParam(c.req.query("limit"), 20, { min: 1, max: 100 });
852
- try {
853
- const messages = await resolved.provider.list({
854
- folder: c.req.query("folder") ?? undefined,
855
- q: c.req.query("q") ?? undefined,
856
- limit,
857
- since: c.req.query("since") ?? undefined,
858
- unreadOnly: c.req.query("unreadOnly") === "true",
859
- });
860
- return c.json({ messages });
861
- }
862
- catch (err) {
863
- return providerError(c, err, "list_failed");
864
- }
865
- });
866
- app.get("/mail/:accountId/messages/:messageId", async (c) => {
867
- const accountId = c.req.param("accountId");
868
- const resolved = await resolveProvider(accountId);
869
- if (!resolved.ok)
870
- return renderResolveError(c, resolved);
871
- const bodyMode = parseBodyMode(c.req.query("body"));
872
- if (!bodyMode.ok)
873
- return c.json(bodyMode.body, 400);
874
- try {
875
- const message = await resolved.provider.get(c.req.param("messageId"));
876
- return c.json({ message: applyMailMessageBodyMode(message, bodyMode.value) });
877
- }
878
- catch (err) {
879
- return providerError(c, err, "get_failed");
880
- }
881
- });
882
- app.get("/mail/:accountId/messages/:messageId/body", async (c) => {
883
- const resolved = await resolveProvider(c.req.param("accountId"));
884
- if (!resolved.ok)
885
- return renderResolveError(c, resolved);
886
- const format = c.req.query("format") ?? "extracted";
887
- if (format !== "extracted" && format !== "raw") {
888
- return c.json({ error: "invalid_query", message: "format must be extracted or raw" }, 400);
889
- }
890
- const chunk = parseIntParam(c.req.query("chunk"), 0, { min: 0, max: 100_000 });
891
- const maxChars = parseIntParam(c.req.query("maxChars"), MAIL_BODY_CHUNK_DEFAULT_CHARS, {
892
- min: 1_000,
893
- max: MAIL_BODY_CHUNK_MAX_CHARS,
894
- });
895
- const metadataOffset = parseIntParam(c.req.query("metadataOffset"), 0, {
896
- min: 0,
897
- max: 100_000,
898
- });
899
- const metadataLimit = parseIntParam(c.req.query("metadataLimit"), MAIL_BODY_METADATA_DEFAULT_LIMIT, { min: 1, max: MAIL_BODY_METADATA_MAX_LIMIT });
900
- try {
901
- const message = await resolved.provider.get(c.req.param("messageId"));
902
- return c.json(buildMailBodyResponse({
903
- accountId: c.req.param("accountId"),
904
- message,
905
- format,
906
- chunk,
907
- maxChars,
908
- metadataOffset,
909
- metadataLimit,
910
- }));
911
- }
912
- catch (err) {
913
- return providerError(c, err, "get_body_failed");
914
- }
915
- });
916
- // /messages/send always *sends*. Draft creation has a dedicated endpoint
917
- // (POST /mail/:id/drafts) so the path — not a body flag — determines the
918
- // risk tier (§8). This avoids the "every draft DMs the owner" trap that
919
- // body-aware classification would require.
920
- app.post("/mail/:accountId/messages/send", async (c) => {
921
- const accountId = c.req.param("accountId");
922
- const parsedBody = await readJsonBody(c);
923
- if (!parsedBody.ok)
924
- return parsedBody.response;
925
- const resolved = await resolveProvider(accountId);
926
- if (!resolved.ok)
927
- return renderResolveError(c, resolved);
928
- const input = validateSendInput(parsedBody.body);
929
- if (!input.ok)
930
- return c.json({ error: input.code, message: input.message }, 400);
931
- try {
932
- const result = await resolved.provider.send({ ...input.value, draftOnly: false });
933
- markAgentWrite(accountId, result.id);
934
- markAgentWriteRfc822(accountId, result.rfc822MsgId);
935
- // Phase 5 Gmail reconcile (`inbox:7d`) keys snapshots by threadId,
936
- // so threadId is the load-bearing mark for actor attribution;
937
- // messageId is kept as a forward-compat second key. GmailProvider
938
- // surfaces threadId from `users.messages.send`'s response; IMAP /
939
- // Outlook leave it undefined and only the messageId mark lands
940
- // (those providers don't drive a reconcile path today, so a missed
941
- // mark there is a no-op).
942
- markGmailIntegrationWrite(accountId, result.id, result.threadId);
943
- return c.json({ result });
944
- }
945
- catch (err) {
946
- return providerError(c, err, "send_failed");
947
- }
948
- });
949
- app.post("/mail/:accountId/messages/:messageId/read", async (c) => {
950
- const accountId = c.req.param("accountId");
951
- const messageId = c.req.param("messageId");
952
- const resolved = await resolveProvider(accountId);
953
- if (!resolved.ok)
954
- return renderResolveError(c, resolved);
955
- const parsedBody = await readJsonBody(c);
956
- if (!parsedBody.ok)
957
- return parsedBody.response;
958
- const body = parsedBody.body;
959
- const read = body?.read;
960
- if (typeof read !== "boolean") {
961
- return c.json({ error: "invalid_body", message: "read: boolean required" }, 400);
962
- }
963
- try {
964
- await resolved.provider.markRead(messageId, read);
965
- markAgentWrite(accountId, messageId);
966
- return c.json({ status: "updated", read });
967
- }
968
- catch (err) {
969
- return providerError(c, err, "mark_read_failed");
970
- }
971
- });
972
- app.post("/mail/:accountId/messages/:messageId/trash", async (c) => {
973
- const accountId = c.req.param("accountId");
974
- const messageId = c.req.param("messageId");
975
- const resolved = await resolveProvider(accountId);
976
- if (!resolved.ok)
977
- return renderResolveError(c, resolved);
978
- try {
979
- await resolved.provider.trash(messageId);
980
- markAgentWrite(accountId, messageId);
981
- return c.json({ status: "trashed" });
982
- }
983
- catch (err) {
984
- return providerError(c, err, "trash_failed");
985
- }
986
- });
987
- app.post("/mail/:accountId/messages/:messageId/untrash", async (c) => {
988
- const accountId = c.req.param("accountId");
989
- const messageId = c.req.param("messageId");
990
- const resolved = await resolveProvider(accountId);
991
- if (!resolved.ok)
992
- return renderResolveError(c, resolved);
993
- if (!ensureMethod(resolved.provider, "untrash")) {
994
- return c.json({ error: "not_implemented", message: `untrash not supported on ${resolved.provider.kind}` }, 501);
995
- }
996
- try {
997
- await resolved.provider.untrash(messageId);
998
- markAgentWrite(accountId, messageId);
999
- return c.json({ status: "untrashed" });
1000
- }
1001
- catch (err) {
1002
- return providerError(c, err, "untrash_failed");
1003
- }
1004
- });
1005
- app.post("/mail/:accountId/messages/:messageId/archive", async (c) => {
1006
- const accountId = c.req.param("accountId");
1007
- const messageId = c.req.param("messageId");
1008
- const resolved = await resolveProvider(accountId);
1009
- if (!resolved.ok)
1010
- return renderResolveError(c, resolved);
1011
- if (!ensureMethod(resolved.provider, "archive")) {
1012
- return c.json({ error: "not_implemented", message: `archive not supported on ${resolved.provider.kind}` }, 501);
1013
- }
1014
- try {
1015
- await resolved.provider.archive(messageId);
1016
- markAgentWrite(accountId, messageId);
1017
- return c.json({ status: "archived" });
1018
- }
1019
- catch (err) {
1020
- return providerError(c, err, "archive_failed");
1021
- }
1022
- });
1023
- app.post("/mail/:accountId/messages/:messageId/tags", async (c) => {
1024
- const accountId = c.req.param("accountId");
1025
- const messageId = c.req.param("messageId");
1026
- const parsedBody = await readJsonBody(c);
1027
- if (!parsedBody.ok)
1028
- return parsedBody.response;
1029
- const resolved = await resolveProvider(accountId);
1030
- if (!resolved.ok)
1031
- return renderResolveError(c, resolved);
1032
- const body = parsedBody.body;
1033
- const add = toStringArray(body?.add);
1034
- const remove = toStringArray(body?.remove);
1035
- if (!add || !remove) {
1036
- return c.json({ error: "invalid_body", message: "add: string[], remove: string[] required" }, 400);
1037
- }
1038
- try {
1039
- await resolved.provider.modifyTags(messageId, add, remove);
1040
- markAgentWrite(accountId, messageId);
1041
- return c.json({ status: "tags_updated", add, remove });
1042
- }
1043
- catch (err) {
1044
- return providerError(c, err, "modify_tags_failed");
1045
- }
1046
- });
1047
- app.get("/mail/:accountId/tags", async (c) => {
1048
- const accountId = c.req.param("accountId");
1049
- const resolved = await resolveProvider(accountId);
1050
- if (!resolved.ok)
1051
- return renderResolveError(c, resolved);
1052
- if (!ensureMethod(resolved.provider, "listTags")) {
1053
- // Minimal fallback: return empty catalog for providers that don't yet
1054
- // surface a tag list. Keeps callers from needing per-kind branching.
1055
- return c.json({ system: [], userDefined: [] });
1056
- }
1057
- try {
1058
- const catalog = await resolved.provider.listTags();
1059
- return c.json(catalog);
1060
- }
1061
- catch (err) {
1062
- return providerError(c, err, "list_tags_failed");
1063
- }
1064
- });
1065
- app.get("/mail/:accountId/folders", async (c) => {
1066
- const resolved = await resolveProvider(c.req.param("accountId"));
1067
- if (!resolved.ok)
1068
- return renderResolveError(c, resolved);
1069
- try {
1070
- const folders = await resolved.provider.listFolders();
1071
- return c.json({ folders });
1072
- }
1073
- catch (err) {
1074
- return providerError(c, err, "list_folders_failed");
1075
- }
1076
- });
1077
- app.get("/mail/:accountId/threads/:threadId", async (c) => {
1078
- const accountId = c.req.param("accountId");
1079
- const resolved = await resolveProvider(accountId);
1080
- if (!resolved.ok)
1081
- return renderResolveError(c, resolved);
1082
- if (!ensureMethod(resolved.provider, "getThread")) {
1083
- return c.json({ error: "not_implemented", message: `getThread not supported on ${resolved.provider.kind}` }, 501);
1084
- }
1085
- const bodyMode = parseBodyMode(c.req.query("body"));
1086
- if (!bodyMode.ok)
1087
- return c.json(bodyMode.body, 400);
1088
- const limit = parseIntParam(c.req.query("limit"), 25, { min: 1, max: 100 });
1089
- try {
1090
- const thread = await resolved.provider.getThread(c.req.param("threadId"), limit);
1091
- return c.json({ thread: applyThreadBodyMode(thread, bodyMode.value) });
1092
- }
1093
- catch (err) {
1094
- return providerError(c, err, "get_thread_failed");
1095
- }
1096
- });
1097
- app.get("/mail/:accountId/drafts", async (c) => {
1098
- const accountId = c.req.param("accountId");
1099
- const resolved = await resolveProvider(accountId);
1100
- if (!resolved.ok)
1101
- return renderResolveError(c, resolved);
1102
- if (!ensureMethod(resolved.provider, "listDrafts")) {
1103
- return c.json({ error: "not_implemented", message: `listDrafts not supported on ${resolved.provider.kind}` }, 501);
1104
- }
1105
- const limit = parseIntParam(c.req.query("limit"), 20, { min: 1, max: 100 });
1106
- try {
1107
- const drafts = await resolved.provider.listDrafts(limit);
1108
- return c.json({ drafts });
1109
- }
1110
- catch (err) {
1111
- return providerError(c, err, "list_drafts_failed");
1112
- }
1113
- });
1114
- app.get("/mail/:accountId/drafts/:draftId", async (c) => {
1115
- const resolved = await resolveProvider(c.req.param("accountId"));
1116
- if (!resolved.ok)
1117
- return renderResolveError(c, resolved);
1118
- if (!ensureMethod(resolved.provider, "getDraft")) {
1119
- return c.json({ error: "not_implemented", message: `getDraft not supported on ${resolved.provider.kind}` }, 501);
1120
- }
1121
- try {
1122
- const draft = await resolved.provider.getDraft(c.req.param("draftId"));
1123
- if (!draft)
1124
- return c.json({ error: "not_found" }, 404);
1125
- return c.json({ draft });
1126
- }
1127
- catch (err) {
1128
- return providerError(c, err, "get_draft_failed");
1129
- }
1130
- });
1131
- app.post("/mail/:accountId/drafts", async (c) => {
1132
- const accountId = c.req.param("accountId");
1133
- const parsedBody = await readJsonBody(c);
1134
- if (!parsedBody.ok)
1135
- return parsedBody.response;
1136
- const resolved = await resolveProvider(accountId);
1137
- if (!resolved.ok)
1138
- return renderResolveError(c, resolved);
1139
- if (!ensureMethod(resolved.provider, "createDraft")) {
1140
- return c.json({ error: "not_implemented", message: `createDraft not supported on ${resolved.provider.kind}` }, 501);
1141
- }
1142
- const input = validateSendInput(parsedBody.body);
1143
- if (!input.ok)
1144
- return c.json({ error: input.code, message: input.message }, 400);
1145
- try {
1146
- const result = await resolved.provider.createDraft(input.value);
1147
- markAgentWrite(accountId, result.id);
1148
- return c.json({ draftId: result.id });
1149
- }
1150
- catch (err) {
1151
- return providerError(c, err, "create_draft_failed");
1152
- }
1153
- });
1154
- app.patch("/mail/:accountId/drafts/:draftId", async (c) => {
1155
- const accountId = c.req.param("accountId");
1156
- const draftId = c.req.param("draftId");
1157
- const resolved = await resolveProvider(accountId);
1158
- if (!resolved.ok)
1159
- return renderResolveError(c, resolved);
1160
- if (!ensureMethod(resolved.provider, "updateDraft")) {
1161
- return c.json({ error: "not_implemented", message: `updateDraft not supported on ${resolved.provider.kind}` }, 501);
1162
- }
1163
- const parsedBody = await readJsonBody(c);
1164
- if (!parsedBody.ok)
1165
- return parsedBody.response;
1166
- const input = validateUpdateDraftInput(parsedBody.body);
1167
- if (!input.ok)
1168
- return c.json({ error: input.code, message: input.message }, 400);
1169
- try {
1170
- const result = await resolved.provider.updateDraft(draftId, input.value);
1171
- markAgentWrite(accountId, result.id);
1172
- if (result.previousId)
1173
- markAgentWrite(accountId, result.previousId);
1174
- // `warnings` surface provider-specific caveats (e.g. Outlook's
1175
- // reply-threading immutability). Agents need to see them — dropping
1176
- // them would make the UpdateDraftResult.warnings field a no-op.
1177
- return c.json({
1178
- status: "updated",
1179
- id: result.id,
1180
- previousId: result.previousId,
1181
- warnings: result.warnings,
1182
- });
1183
- }
1184
- catch (err) {
1185
- return providerError(c, err, "update_draft_failed");
1186
- }
1187
- });
1188
- app.delete("/mail/:accountId/drafts/:draftId", async (c) => {
1189
- const accountId = c.req.param("accountId");
1190
- const draftId = c.req.param("draftId");
1191
- const resolved = await resolveProvider(accountId);
1192
- if (!resolved.ok)
1193
- return renderResolveError(c, resolved);
1194
- if (!ensureMethod(resolved.provider, "deleteDraft")) {
1195
- return c.json({ error: "not_implemented", message: `deleteDraft not supported on ${resolved.provider.kind}` }, 501);
1196
- }
1197
- try {
1198
- await resolved.provider.deleteDraft(draftId);
1199
- markAgentWrite(accountId, draftId);
1200
- return c.json({ status: "deleted" });
1201
- }
1202
- catch (err) {
1203
- return providerError(c, err, "delete_draft_failed");
1204
- }
1205
- });
1206
- app.post("/mail/:accountId/drafts/:draftId/send", async (c) => {
1207
- const accountId = c.req.param("accountId");
1208
- const draftId = c.req.param("draftId");
1209
- const resolved = await resolveProvider(accountId);
1210
- if (!resolved.ok)
1211
- return renderResolveError(c, resolved);
1212
- if (!ensureMethod(resolved.provider, "sendDraft")) {
1213
- return c.json({ error: "not_implemented", message: `sendDraft not supported on ${resolved.provider.kind}` }, 501);
1214
- }
1215
- try {
1216
- const result = await resolved.provider.sendDraft(draftId);
1217
- markAgentWrite(accountId, result.id);
1218
- // sendDraft is a surface-area subset of send(); if the provider
1219
- // surfaces the rfc822 Message-Id, it flows through the same field.
1220
- const rfc = result.rfc822MsgId;
1221
- markAgentWriteRfc822(accountId, rfc);
1222
- markGmailIntegrationWrite(accountId, result.id, result.threadId);
1223
- return c.json({ status: "sent", id: result.id, threadId: result.threadId });
1224
- }
1225
- catch (err) {
1226
- return providerError(c, err, "send_draft_failed");
1227
- }
1228
- });
1229
- return app;
1230
- }
1231
- function getErrorResponseCode(err) {
1232
- const candidate = err?.responseCode;
1233
- return typeof candidate === "number" ? candidate : null;
1234
- }
1235
- // ImapFlow sets err.message to the generic "Command failed" and puts the
1236
- // actual IMAP server response code in serverResponseCode (e.g. "AUTHENTICATIONFAILED")
1237
- // and the human text in responseText. Concatenate all three so that the
1238
- // classifyImapAuthFailure patterns can match the real server response.
1239
- function getImapErrorMessage(err) {
1240
- if (!(err instanceof Error))
1241
- return String(err);
1242
- const e = err;
1243
- return [err.message, e.serverResponseCode, e.responseText].filter(Boolean).join(" ");
1244
- }
1245
- function parseIntParam(raw, fallback, bounds) {
1246
- if (!raw)
1247
- return fallback;
1248
- const n = Number.parseInt(raw, 10);
1249
- if (!Number.isFinite(n))
1250
- return fallback;
1251
- return Math.max(bounds.min, Math.min(bounds.max, n));
1252
- }
1253
- function toStringArray(value) {
1254
- if (value === undefined)
1255
- return [];
1256
- if (!Array.isArray(value))
1257
- return null;
1258
- if (value.every((v) => typeof v === "string"))
1259
- return value;
1260
- return null;
1261
- }
1262
- function buildMailBodyResponse(input) {
1263
- const { message, format, chunk, maxChars, metadataOffset, metadataLimit } = input;
1264
- const resolved = resolveMailBody(message, format);
1265
- const totalChars = resolved.content.length;
1266
- const start = chunk * maxChars;
1267
- const end = start + maxChars;
1268
- const content = start < totalChars ? resolved.content.slice(start, end) : "";
1269
- const hasMore = end < totalChars;
1270
- const links = resolved.links.slice(metadataOffset, metadataOffset + metadataLimit);
1271
- const images = resolved.images.slice(metadataOffset, metadataOffset + metadataLimit);
1272
- const linksHasMore = metadataOffset + metadataLimit < resolved.links.length;
1273
- const imagesHasMore = metadataOffset + metadataLimit < resolved.images.length;
1274
- return {
1275
- accountId: input.accountId,
1276
- providerMsgId: message.providerMsgId,
1277
- rfc822MsgId: message.rfc822MsgId,
1278
- threadId: message.threadId,
1279
- subject: message.subject,
1280
- format,
1281
- source: resolved.source,
1282
- content,
1283
- chunk,
1284
- maxChars,
1285
- totalChars,
1286
- hasMore,
1287
- nextChunk: hasMore ? chunk + 1 : null,
1288
- rawHtmlAvailable: typeof message.body.html === "string" && message.body.html.length > 0,
1289
- rawTextAvailable: typeof message.body.text === "string" && message.body.text.length > 0,
1290
- metadataOffset,
1291
- metadataLimit,
1292
- links,
1293
- images,
1294
- linkCount: resolved.links.length,
1295
- imageCount: resolved.images.length,
1296
- linksHasMore,
1297
- imagesHasMore,
1298
- nextMetadataOffset: linksHasMore || imagesHasMore
1299
- ? metadataOffset + metadataLimit
1300
- : null,
1301
- };
1302
- }
1303
- function resolveMailBody(message, format) {
1304
- const html = message.body.html;
1305
- const text = message.body.text;
1306
- if (format === "raw") {
1307
- if (html)
1308
- return { content: html, source: "html", links: [], images: [] };
1309
- if (text)
1310
- return { content: text, source: "text", links: [], images: [] };
1311
- return { content: "", source: "empty", links: [], images: [] };
1312
- }
1313
- if (html) {
1314
- const extracted = extractMailHtmlBody(html);
1315
- return {
1316
- content: renderExtractedMailHtmlBody(extracted),
1317
- source: "html",
1318
- links: extracted.links,
1319
- images: extracted.images,
1320
- };
1321
- }
1322
- if (text)
1323
- return { content: text, source: "text", links: [], images: [] };
1324
- return { content: "", source: "empty", links: [], images: [] };
1325
- }
1326
- function parseBodyMode(raw) {
1327
- if (raw === undefined || raw === "full")
1328
- return { ok: true, value: "full" };
1329
- if (raw === "none")
1330
- return { ok: true, value: "none" };
1331
- return {
1332
- ok: false,
1333
- body: { error: "invalid_query", message: "body must be full or none" },
1334
- };
1335
- }
1336
- function applyMailMessageBodyMode(message, mode) {
1337
- if (mode === "full")
1338
- return message;
1339
- return { ...message, body: {} };
1340
- }
1341
- function applyThreadBodyMode(thread, mode) {
1342
- if (mode === "full")
1343
- return thread;
1344
- return {
1345
- ...thread,
1346
- messages: thread.messages.map((message) => applyMailMessageBodyMode(message, mode)),
1347
- };
1348
- }
1349
- function providerError(c, err, tag) {
1350
- const message = err instanceof Error ? err.message : String(err);
1351
- // Classify common provider errors where a 404 from the backend should not
1352
- // become a 500 for the caller. The Graph client throws GraphError with a
1353
- // httpStatus field; the IMAP layer throws Error with a responseCode.
1354
- const candidate = err;
1355
- const status = pickNumber(candidate.httpStatus) ??
1356
- pickNumber(candidate.statusCode) ??
1357
- pickNumber(candidate.response?.status);
1358
- if (status === 404) {
1359
- return c.json({ error: "not_found", message }, 404);
1360
- }
1361
- if (status === 501) {
1362
- // Providers throw MailOperationNotSupportedError (httpStatus=501) when a
1363
- // sub-case of an implemented method is out of scope — e.g. IMAP draft
1364
- // writes. Map to the same shape as the missing-method-on-interface path
1365
- // so callers can't distinguish the two (both mean "don't retry here").
1366
- return c.json({ error: "not_implemented", message }, 501);
1367
- }
1368
- if (status === 401 || status === 403) {
1369
- return c.json({ error: "provider_auth_error", message }, 502);
1370
- }
1371
- logger.error({ err, tag }, `mail route failure: ${tag}`);
1372
- return c.json({ error: tag, message }, 500);
1373
- }
1374
- function pickNumber(value) {
1375
- return typeof value === "number" && Number.isFinite(value) ? value : null;
1376
- }
1377
- function validateSendInput(body) {
1378
- const raw = body;
1379
- const to = toStringArray(raw?.to);
1380
- if (!to || to.length === 0) {
1381
- return { ok: false, code: "invalid_body", message: "to: non-empty string[] required" };
1382
- }
1383
- if (typeof raw.subject !== "string") {
1384
- return { ok: false, code: "invalid_body", message: "subject: string required" };
1385
- }
1386
- const cc = raw.cc === undefined ? undefined : toStringArray(raw.cc);
1387
- const bcc = raw.bcc === undefined ? undefined : toStringArray(raw.bcc);
1388
- if (cc === null || bcc === null) {
1389
- return { ok: false, code: "invalid_body", message: "cc/bcc must be string[] when present" };
1390
- }
1391
- const reply = parseReplyContext(raw.reply);
1392
- if (reply === "invalid") {
1393
- return {
1394
- ok: false,
1395
- code: "invalid_body",
1396
- message: "reply requires inReplyToRfc822Id (string) and references (string[])",
1397
- };
1398
- }
1399
- return {
1400
- ok: true,
1401
- value: {
1402
- to,
1403
- cc,
1404
- bcc,
1405
- subject: raw.subject,
1406
- textBody: typeof raw.textBody === "string" ? raw.textBody : undefined,
1407
- htmlBody: typeof raw.htmlBody === "string" ? raw.htmlBody : undefined,
1408
- reply,
1409
- // `draftOnly` is intentionally NOT surfaced at the route boundary.
1410
- // Drafts go through POST /mail/:id/drafts (Autonomous tier); sends
1411
- // go through POST /mail/:id/messages/send (Notify tier). Body flags
1412
- // cannot be classified by the path-prefix risk classifier.
1413
- },
1414
- };
1415
- }
1416
- function parseReplyContext(raw) {
1417
- if (raw === undefined || raw === null)
1418
- return undefined;
1419
- if (typeof raw !== "object")
1420
- return "invalid";
1421
- const r = raw;
1422
- if (typeof r.inReplyToRfc822Id !== "string")
1423
- return "invalid";
1424
- const refs = toStringArray(r.references);
1425
- if (!refs)
1426
- return "invalid";
1427
- return {
1428
- inReplyToRfc822Id: r.inReplyToRfc822Id,
1429
- references: refs,
1430
- providerThreadId: typeof r.providerThreadId === "string" ? r.providerThreadId : undefined,
1431
- parentProviderMsgId: typeof r.parentProviderMsgId === "string" ? r.parentProviderMsgId : undefined,
1432
- };
1433
- }
1434
- function validateUpdateDraftInput(body) {
1435
- const raw = body;
1436
- const to = raw.to === undefined ? undefined : toStringArray(raw.to);
1437
- const cc = raw.cc === undefined ? undefined : toStringArray(raw.cc);
1438
- const bcc = raw.bcc === undefined ? undefined : toStringArray(raw.bcc);
1439
- if (to === null || cc === null || bcc === null) {
1440
- return { ok: false, code: "invalid_body", message: "to/cc/bcc must be string[] when present" };
1441
- }
1442
- // `reply` tri-state: undefined = leave existing threading; null = clear;
1443
- // object = reshape (must include inReplyToRfc822Id + references).
1444
- let reply;
1445
- if (raw.reply === null) {
1446
- reply = null;
1447
- }
1448
- else if (raw.reply !== undefined) {
1449
- const parsed = parseReplyContext(raw.reply);
1450
- if (parsed === "invalid") {
1451
- return {
1452
- ok: false,
1453
- code: "invalid_body",
1454
- message: "reply requires inReplyToRfc822Id (string) and references (string[]); pass null to clear",
1455
- };
1456
- }
1457
- reply = parsed;
1458
- }
1459
- return {
1460
- ok: true,
1461
- value: {
1462
- to,
1463
- cc,
1464
- bcc,
1465
- subject: typeof raw.subject === "string" ? raw.subject : undefined,
1466
- textBody: typeof raw.textBody === "string" ? raw.textBody : undefined,
1467
- htmlBody: typeof raw.htmlBody === "string" ? raw.htmlBody : undefined,
1468
- reply,
1469
- },
1470
- };
1471
- }
1472
- //# sourceMappingURL=mail.js.map