@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,1572 +0,0 @@
1
- import { Hono } from "hono";
2
- import { BACKEND_IDS, DELEGATED_TASK_HARD_CAPS, INTEGRATION_DESCRIPTORS, INTEGRATION_KEYS, filterDeniedToolsForBackend, integrationPatchSchema, isIntegrationKey, recommendedStarterDeniedTools, supportedNativeBackends, validateDeniedTools, } from "@aitne/shared";
3
- // `matchToolPattern` and `mapErrorClassToHttpStatus` were used by the
4
- // dormant `/invoke` route reservation block-commented at lines ~708-896.
5
- // They are removed from the import list because eslint flags them as
6
- // unused; re-add when un-commenting that block.
7
- import { checkOutputSchema } from "../../services/delegated-task-runtime.js";
8
- import { readIntegrations, updateIntegrationState, } from "../../db/integrations-store.js";
9
- import { writeManagementMd } from "../../core/management-md.js";
10
- import { missingDelegatedVariants, missingNativeVariants, } from "../../core/skills-compiler.js";
11
- import { acquireIntegrationFlipLock, releaseIntegrationFlipLock, } from "../../core/integration-lifecycle.js";
12
- import { readMainBackend } from "../../core/integration-main-backend.js";
13
- import { evaluateProbe, getConnector, makeUserManagedProbeResult, } from "../../core/integration-probe.js";
14
- import { LiveProbeUnsupportedError } from "../../core/agent-core.js";
15
- import { deleteProbesForIntegration, readProbe, writeProbe, } from "../../db/integration-probe-store.js";
16
- import { knownProxyModels, listProxyModelOptions, proxyModelIsKnown, resolveCanonicalDelegatedModel, } from "../../core/backends/proxy-model-registry.js";
17
- import { readJsonBody } from "../json-body.js";
18
- import { createLogger } from "../../logging.js";
19
- import { extractWriteItemIds } from "../../services/integrations/extract-write-item-id.js";
20
- import { markIntegrationWrite } from "../../safety/integration-write-tracker.js";
21
- import { createSettingsStore } from "../../settings/settings-store.js";
22
- const logger = createLogger("integrations-api");
23
- /**
24
- * Integration Delegation Framework — `/api/integrations` routes.
25
- *
26
- * Surface:
27
- * - `GET /api/integrations` — list every registered integration with its
28
- * descriptor metadata and current state.
29
- * - `PATCH /api/integrations/:key` — change a single integration's mode.
30
- * Runs the full lifecycle: validate → flip-lock acquire → §14.7 probe →
31
- * DB update → `integrations.md` re-render → running-session
32
- * re-materialisation → audit row → flip-lock release.
33
- * - `POST /api/integrations/:key/probe` — descriptor + cached + live
34
- * probe paths (`docs/design/14-integration-delegation.md` §14.7).
35
- * - `POST /api/integrations/:key/exec` — cross-backend delegated proxy
36
- * (DELEGATED-MODE-V2-DESIGN.md §11 / `docs/design/14-integration-delegation.md` §14.4.5).
37
- * - Observer gating, the route-410 middleware (`integration-route-gate.ts`),
38
- * skill / task-flow variant selection, and the connector probe are all
39
- * production paths — not "later phases" as earlier versions of this
40
- * docstring suggested.
41
- *
42
- * Mode model. `IntegrationMode = "direct" | "delegated" | "native" | "disabled"`.
43
- * - `direct` — daemon poller + `/api/<integration>/*` daemon routes.
44
- * - `delegated` — `delegated-sync-worker` cadences + `/exec` proxy.
45
- * - `native` — main backend reaches the integration via its own native
46
- * MCP / connector; daemon does no polling. Per-tick data acquisition
47
- * for routines (morning / evening / hourly / weekly / monthly) runs in a
48
- * separate pre-pass session on the `routine.fetch_window` ProcessKey
49
- * and POSTs observations to `/api/observations`. See
50
- * [`ROUTINE_DATA_ACQUISITION_DESIGN.md`](../../../../ROUTINE_DATA_ACQUISITION_DESIGN.md)
51
- * for the per-routine × per-integration acquisition contract — earlier
52
- * versions of the codebase relied on the agent encountering 410 at
53
- * runtime to discover that an integration was unreachable via daemon
54
- * routes; that wart is replaced by the partials-based plan rendered
55
- * into every routine session's prompt.
56
- * - `disabled` — silence. Routes 410 with `X-Integration-Mode: disabled`.
57
- *
58
- * User-managed connectors (`descriptor.userManagedConnector === true`,
59
- * today `outlook_mail` / `outlook_calendar`) skip the descriptor-driven
60
- * variant gates: there is no daemon-shipped `SKILL.<mode>.<backend>.md`
61
- * for them, and routine-side acquisition flows through the per-integration
62
- * partial (RDAD §6.8) rather than a variant fan-out.
63
- *
64
- * Risk tier: Approve (dashboard-only mutation, registered in
65
- * `risk-classifier.ts`).
66
- */
67
- export function createIntegrationRoutes(deps) {
68
- const app = new Hono();
69
- const { db, config } = deps;
70
- app.get("/integrations", (c) => {
71
- const state = readIntegrations(db);
72
- const integrations = INTEGRATION_KEYS.map((key) => {
73
- const descriptor = INTEGRATION_DESCRIPTORS[key];
74
- return {
75
- key: descriptor.key,
76
- displayName: descriptor.displayName,
77
- supportedModes: descriptor.supportedModes,
78
- directSetup: descriptor.directSetup ?? null,
79
- backendConnectors: descriptor.backendConnectors,
80
- skillsTouched: descriptor.skillsTouched,
81
- taskFlowsTouched: descriptor.taskFlowsTouched,
82
- observersTouched: descriptor.observersTouched,
83
- apiRoutesTouched: descriptor.apiRoutesTouched,
84
- userManagedConnector: descriptor.userManagedConnector ?? false,
85
- state: state[key],
86
- };
87
- });
88
- return c.json({ integrations });
89
- });
90
- // DELEGATED-PROXY-API-DESIGN.md §7 — last N delegated-proxy invocations for
91
- // an integration. Drives the IntegrationCard's "Recent calls" collapsible
92
- // table so the user can spot slow / failing connectors without leaving the
93
- // /connections page. Daemon-side filter (rather than dashboard reading the
94
- // generic cost table and post-filtering) because:
95
- // - integrationKey lives inside `detail` JSON; SQLite-side JSON1 extract
96
- // keeps the response payload small and skips the parent-event noise.
97
- // - cost.ts dashboards already aggregate; a per-integration debug view
98
- // belongs alongside the integration's other state for cohesion.
99
- //
100
- // Limit defaults to 50 (the design's stated cap), bounded at 200 so a
101
- // typo-driven `?limit=99999` cannot DoS the response.
102
- app.get("/integrations/:key/recent-proxy-calls", (c) => {
103
- const key = c.req.param("key");
104
- if (!isIntegrationKey(key)) {
105
- return c.json({ error: "unknown_integration", key }, 404);
106
- }
107
- const rawLimit = c.req.query("limit");
108
- let limit = 50;
109
- if (rawLimit !== undefined) {
110
- const parsed = Number.parseInt(rawLimit, 10);
111
- if (!Number.isFinite(parsed) || parsed < 1) {
112
- return c.json({
113
- error: "invalid_limit",
114
- message: "limit must be a positive integer (default 50, max 200)",
115
- }, 400);
116
- }
117
- limit = Math.min(parsed, 200);
118
- }
119
- const rows = db
120
- .prepare(`SELECT id, started_at, completed_at, model_used, backend,
121
- cost_usd, tokens_input, tokens_output, duration_ms,
122
- num_turns, result, error, detail
123
- FROM agent_actions
124
- WHERE action_type = 'delegated_proxy.invoke'
125
- AND json_extract(detail, '$.integrationKey') = ?
126
- ORDER BY id DESC
127
- LIMIT ?`)
128
- .all(key, limit);
129
- const calls = rows.map((row) => {
130
- /* c8 ignore next -- sql WHERE json_extract filters out rows with null detail */
131
- const detail = row.detail ? safeParseJson(row.detail) : null;
132
- return {
133
- id: row.id,
134
- startedAt: row.started_at,
135
- completedAt: row.completed_at,
136
- modelId: row.model_used,
137
- backend: row.backend,
138
- costUsd: row.cost_usd,
139
- tokensInput: row.tokens_input,
140
- tokensOutput: row.tokens_output,
141
- durationMs: row.duration_ms,
142
- numTurns: row.num_turns,
143
- result: row.result,
144
- // detail.errorClass is the structured DelegatedErrorClass when the
145
- // call failed inside the proxy pipeline (auth_error, no_tool_call,
146
- // etc.). detail.toolName is always present. We surface both so the
147
- // table can render a human label without re-parsing on the client.
148
- errorClass: detail?.errorClass ?? null,
149
- toolName: detail?.toolName ?? null,
150
- errorMessage: row.error,
151
- };
152
- });
153
- return c.json({
154
- key,
155
- limit,
156
- calls,
157
- });
158
- });
159
- // DELEGATED-PROXY-API-DESIGN.md §6.1 / §7 — list known proxy-model options
160
- // for a backend (registered + custom-pinned). Drives the dashboard model
161
- // dropdown so the daemon stays the source of truth for the registered
162
- // model surface; clients don't need to keep their own registry mirror.
163
- app.get("/integrations/proxy-models/:backend", (c) => {
164
- const backend = c.req.param("backend");
165
- if (!BACKEND_IDS.includes(backend)) {
166
- return c.json({
167
- error: "invalid_backend",
168
- message: `Unknown backend '${backend}'.`,
169
- supportedBackends: BACKEND_IDS,
170
- }, 400);
171
- }
172
- const backendId = backend;
173
- const options = listProxyModelOptions(backendId);
174
- const canonical = resolveCanonicalDelegatedModel(backendId, db);
175
- return c.json({
176
- backend: backendId,
177
- canonical,
178
- options,
179
- });
180
- });
181
- app.patch("/integrations/:key", async (c) => {
182
- const key = c.req.param("key");
183
- if (!isIntegrationKey(key)) {
184
- return c.json({ error: "unknown_integration", key }, 404);
185
- }
186
- const parsedBody = await readJsonBody(c);
187
- if (!parsedBody.ok)
188
- return parsedBody.response;
189
- const parsed = integrationPatchSchema.safeParse(parsedBody.body);
190
- if (!parsed.success) {
191
- return c.json({
192
- error: "validation_error",
193
- issues: parsed.error.issues.map((i) => ({
194
- path: i.path,
195
- message: i.message,
196
- })),
197
- }, 400);
198
- }
199
- const descriptor = INTEGRATION_DESCRIPTORS[key];
200
- if (!descriptor.supportedModes.includes(parsed.data.mode)) {
201
- return c.json({
202
- error: "unsupported_mode",
203
- key,
204
- mode: parsed.data.mode,
205
- supportedModes: descriptor.supportedModes,
206
- }, 400);
207
- }
208
- const previous = readIntegrations(db)[key];
209
- // Compute the side-effect-relevant flags up-front:
210
- // - modeChanged: probe-cache eviction + lifecycle observer flip + variants
211
- // gate all key off this. A pure deniedTools edit must NOT trigger any of
212
- // them — those are mode-change concerns.
213
- // - effectiveBackend: which backend the post-PATCH state will run against
214
- // in `delegated` mode. Used for both the missing-variants gate and the
215
- // deniedTools validator. If the user omits delegatedBackend on a
216
- // delegated→delegated edit (e.g. just toggling tool permissions), we
217
- // keep the previous backend.
218
- // - effectiveNativeBackend: same shape for `native` mode
219
- // (INTEGRATION_NATIVE_MODE_DESIGN.md §11.2). Validated against the
220
- // current main backend below.
221
- const modeChanged = parsed.data.mode !== previous.mode
222
- || (parsed.data.delegatedBackend ?? null) !==
223
- (previous.delegatedBackend ?? null)
224
- || (parsed.data.nativeBackend ?? null) !==
225
- (previous.nativeBackend ?? null);
226
- const effectiveBackend = parsed.data.mode === "delegated"
227
- ? (parsed.data.delegatedBackend ?? previous.delegatedBackend ?? null)
228
- : null;
229
- const effectiveNativeBackend = parsed.data.mode === "native"
230
- ? (parsed.data.nativeBackend ?? previous.nativeBackend ?? null)
231
- : null;
232
- // INTEGRATION_NATIVE_MODE_DESIGN.md §11.2 — `native` mode validation.
233
- // Runs BEFORE the delegated-mode validation block because native and
234
- // delegated are mutually exclusive: a single PATCH cannot ask for both.
235
- // The schema's `superRefine` already rejects co-occurring fields, but
236
- // the explicit branch here surfaces a clearer error and runs the live
237
- // probe + variant-file gate.
238
- if (parsed.data.mode === "native") {
239
- if (!effectiveNativeBackend) {
240
- return c.json({
241
- error: "validation_error",
242
- issues: [
243
- {
244
- path: ["nativeBackend"],
245
- message: "nativeBackend is required when mode is 'native'",
246
- },
247
- ],
248
- }, 400);
249
- }
250
- const supported = supportedNativeBackends(key);
251
- if (!supported.includes(effectiveNativeBackend)) {
252
- // Descriptor-driven integrations only — user-managed descriptors
253
- // pass automatically because `supportedNativeBackends` returns
254
- // every registered backend for them (INTEGRATION_NATIVE_MODE_DESIGN.md
255
- // §5.3 2026-05 amendment).
256
- return c.json({
257
- error: "backend_not_supported_native",
258
- key,
259
- backend: effectiveNativeBackend,
260
- supportedNativeBackends: supported,
261
- message: `Backend '${effectiveNativeBackend}' has no native connector for '${key}'. Native mode for this integration is offered only on backends that ship a registry connector.`,
262
- }, 400);
263
- }
264
- // §3.3 invariant: native binds to the main backend. The setup wizard
265
- // will hide the Native option entirely when the main backend doesn't
266
- // appear in `supportedNativeBackends(key)`; this check is the API-
267
- // layer defense against an out-of-band PATCH (CLI / curl).
268
- const mainBackend = readMainBackend(db);
269
- if (mainBackend !== null && effectiveNativeBackend !== mainBackend) {
270
- return c.json({
271
- error: "native_backend_mismatches_main",
272
- key,
273
- nativeBackend: effectiveNativeBackend,
274
- mainBackend,
275
- message: `Native mode binds to the main backend (${mainBackend}); refusing to set nativeBackend='${effectiveNativeBackend}'. Switch the main backend first (PUT /api/backends/main) or pick a different mode.`,
276
- }, 400);
277
- }
278
- // §7.4 / §8.5 missing-variant gate. Only re-runs when this is an
279
- // actual mode/binding change (a pure annotation PATCH on an already-
280
- // native row leaves the variant set unchanged).
281
- //
282
- // User-managed connector integrations (e.g. Outlook) skip the
283
- // descriptor-driven variant check — there is no daemon-shipped
284
- // `SKILL.native.<backend>.md` for them. The user's MCP / skill
285
- // harness on their backend is the authority, mirroring the
286
- // delegated-mode path above. §5.3 (2026-05 amendment).
287
- if (modeChanged && !descriptor.userManagedConnector) {
288
- const missing = missingNativeVariants(config.workspaceDir, key, effectiveNativeBackend);
289
- if (missing.skills.length > 0 || missing.taskFlows.length > 0) {
290
- return c.json({
291
- error: "missing_variants",
292
- key,
293
- backend: effectiveNativeBackend,
294
- mode: "native",
295
- missingSkills: missing.skills,
296
- missingTaskFlows: missing.taskFlows,
297
- message: `Cannot enter native mode for '${key}' on backend '${effectiveNativeBackend}' — ${missing.skills.length + missing.taskFlows.length} variant file(s) missing. Phase B1 stubs every supported native variant; rebuild the package if your tree is stale.`,
298
- }, 400);
299
- }
300
- }
301
- }
302
- if (parsed.data.mode === "delegated") {
303
- if (!effectiveBackend) {
304
- return c.json({
305
- error: "validation_error",
306
- issues: [{
307
- path: ["delegatedBackend"],
308
- message: "delegatedBackend is required when mode is 'delegated'",
309
- }],
310
- }, 400);
311
- }
312
- // User-managed connector integrations (e.g. Outlook) skip the
313
- // descriptor-driven connector check and the variant gate: the user
314
- // installs an Outlook / Microsoft Graph MCP on their selected
315
- // backend (Claude Code Connector / Codex MCP / Gemini extension)
316
- // and the daemon trusts that wiring. Capability probing is the
317
- // user's responsibility on the backend side.
318
- if (!descriptor.userManagedConnector) {
319
- if (!descriptor.backendConnectors[effectiveBackend]) {
320
- return c.json({
321
- error: "backend_not_supported",
322
- key,
323
- backend: effectiveBackend,
324
- availableBackends: Object.keys(descriptor.backendConnectors),
325
- }, 400);
326
- }
327
- // §4.7 "Missing-variant policy" — only re-run the gate when the user
328
- // is actually changing mode or backend. A pure deniedTools edit on an
329
- // already-delegated integration leaves the variant set unchanged, so
330
- // re-walking the file system would be wasted work AND would surface a
331
- // stale-during-author error if a variant was momentarily missing.
332
- //
333
- // DELEGATED-MODE-V2-DESIGN.md §11 (Phase 3) re-activated the
334
- // legacy variant gate for every delegated integration. gmail and
335
- // google_calendar now ship `SKILL.delegated.<sessionBackend>.md`
336
- // (cross-backend) and resolve to `null` for same-backend, so
337
- // missing variants are a real configuration error.
338
- if (modeChanged) {
339
- const missing = missingDelegatedVariants(config.workspaceDir, key, effectiveBackend);
340
- if (missing.skills.length > 0 || missing.taskFlows.length > 0) {
341
- return c.json({
342
- error: "missing_variants",
343
- key,
344
- backend: effectiveBackend,
345
- missingSkills: missing.skills,
346
- missingTaskFlows: missing.taskFlows,
347
- message: `Cannot enter delegated mode for '${key}' on backend '${effectiveBackend}' — ${missing.skills.length + missing.taskFlows.length} variant file(s) missing. Author the listed files or narrow the registry's skillsTouched / taskFlowsTouched before retrying.`,
348
- }, 400);
349
- }
350
- }
351
- }
352
- }
353
- // DELEGATED-PROXY-API-DESIGN.md §6.1 — `delegatedModel` validation.
354
- // The schema rejects empty strings already; here we additionally
355
- // reject values that don't appear in the registered model list for
356
- // the effective backend (or in user-pinned `process_backend_config`
357
- // rows for the same backend, per §4.2's "trust custom pins" rule).
358
- // The value is *allowed* on any mode so the user can pre-stage a pin
359
- // before flipping to delegated; validation only runs when we have a
360
- // backend to validate against.
361
- if (parsed.data.delegatedModel !== undefined
362
- && parsed.data.delegatedModel !== null
363
- && effectiveBackend) {
364
- const candidate = parsed.data.delegatedModel;
365
- if (!proxyModelIsKnown(db, effectiveBackend, candidate)) {
366
- return c.json({
367
- error: "unknown_model",
368
- key,
369
- backend: effectiveBackend,
370
- model: candidate,
371
- knownModels: knownProxyModels(db, effectiveBackend),
372
- message: `Model '${candidate}' is not registered for backend '${effectiveBackend}'. Pick one of the known models or pass null to use the canonical light-tier default.`,
373
- }, 400);
374
- }
375
- }
376
- // §7.7 — `deniedTools` validation. We accept the field on any mode so
377
- // the user can pre-stage a deny list before flipping to delegated, but
378
- // validation only runs against the effective backend when one exists.
379
- // For non-delegated modes, deniedTools persists as-is (no live backend
380
- // to validate against — the value is inert until delegated).
381
- //
382
- // DELEGATED-MODE-V2-DESIGN.md §4.5.4 — first-time delegated setup
383
- // pre-populates `deniedTools` with the recommended starter list when
384
- // the caller didn't supply one (PATCH omits the field). This keeps the
385
- // CLAUDE.md "destructive ops require user confirmation" invariant
386
- // intact on a fresh install. The user opts out explicitly by passing
387
- // `deniedTools: []` (empty array, distinct from undefined).
388
- //
389
- // The starter floor fires in two distinct shapes — both arrive at an
390
- // effectively-empty deny set after the PATCH and would otherwise leave
391
- // the agent unconstrained:
392
- //
393
- // (a) Entering delegated mode for the first time on this integration
394
- // (previous mode was direct/disabled) AND no curated list was
395
- // already pre-staged — re-entry from disabled with prior denies
396
- // kept means the user already curated, don't overwrite.
397
- //
398
- // (b) Backend swap (delegated → delegated, different `delegatedBackend`)
399
- // where every entry in `previous.deniedTools` is namespace-stale on
400
- // the new backend. The user's curation referenced tools the new
401
- // connector doesn't expose (e.g. Claude's `label_message` carried
402
- // into a Codex session), so the materializer's stale-drop pass
403
- // would empty the disallowedTools array silently — closing the
404
- // same §4.5.4 floor the design wrote (a) to defend. The original
405
- // design framed §4.5.4 as "first delegated setup only" and missed
406
- // this case; surfaced during the 2026-04-26 implementation review.
407
- //
408
- // The wizard UI for the opt-out / "use recommended" / "I'll edit"
409
- // branches is Phase 4 polish (see §Phase 4.2). For now the API default
410
- // closes the safety floor; the dashboard editor card surfaces the
411
- // populated list for editing.
412
- const enteringDelegated = parsed.data.mode === "delegated" && previous.mode !== "delegated";
413
- const omittedDeniedTools = parsed.data.deniedTools === undefined;
414
- const previousDeniedToolsEmpty = (previous.deniedTools ?? []).length === 0;
415
- const swappingDelegatedBackend = parsed.data.mode === "delegated"
416
- && previous.mode === "delegated"
417
- && effectiveBackend !== null
418
- && previous.delegatedBackend !== undefined
419
- && previous.delegatedBackend !== effectiveBackend;
420
- // For shape (b): the previous list had at least one entry (otherwise the
421
- // floor was already empty and shape (a)'s logic doesn't apply here either),
422
- // and *every* entry is stale on the new backend.
423
- const swapWipesAllDenies = swappingDelegatedBackend
424
- && (previous.deniedTools ?? []).length > 0
425
- && filterDeniedToolsForBackend(key, effectiveBackend,
426
- /* c8 ignore next -- ?? [] unreachable: length > 0 guard above ensures non-empty array */
427
- previous.deniedTools ?? []).active.length === 0;
428
- const useStarter = effectiveBackend !== null
429
- && omittedDeniedTools
430
- && ((enteringDelegated && previousDeniedToolsEmpty)
431
- || swapWipesAllDenies);
432
- const finalDeniedTools = useStarter
433
- ? recommendedStarterDeniedTools(key, effectiveBackend)
434
- : parsed.data.deniedTools !== undefined
435
- ? parsed.data.deniedTools
436
- : (previous.deniedTools ?? []);
437
- if (useStarter && finalDeniedTools.length > 0) {
438
- logger.info({
439
- key,
440
- backend: effectiveBackend,
441
- starter: finalDeniedTools,
442
- // Distinguish the two shapes so log readers can spot the
443
- // backend-swap fallback separately from first-time setup.
444
- // `enteringDelegated` covers shape (a); `swapWipesAllDenies`
445
- // covers shape (b). They are mutually exclusive by construction
446
- // (a requires `previous.mode !== "delegated"`, b requires
447
- // `previous.mode === "delegated"`).
448
- trigger: enteringDelegated ? "first_delegated" : "backend_swap_stale",
449
- previousBackend: swappingDelegatedBackend
450
- ? previous.delegatedBackend
451
- : null,
452
- }, "applied starter deniedTools floor");
453
- }
454
- if (effectiveBackend && parsed.data.deniedTools !== undefined) {
455
- const result = validateDeniedTools(key, effectiveBackend, finalDeniedTools);
456
- if (!result.ok) {
457
- if (result.error === "unknown_tool") {
458
- return c.json({
459
- error: "unknown_tool",
460
- key,
461
- backend: effectiveBackend,
462
- tool: result.tool,
463
- knownTools: result.knownTools,
464
- message: `Tool '${result.tool}' is not declared in the ${effectiveBackend} connector for '${key}'. Pick a tool from the descriptor's capability list.`,
465
- }, 400);
466
- }
467
- if (result.error === "denial_breaks_required_capability") {
468
- return c.json({
469
- error: "denial_breaks_required_capability",
470
- key,
471
- backend: effectiveBackend,
472
- capability: result.capability,
473
- remainingTools: result.remainingTools,
474
- message: `Denying these tools removes the only path for required capability '${result.capability}'. Keep at least one of: ${result.remainingTools.join(", ")}.`,
475
- }, 400);
476
- }
477
- // "no_connector" should be unreachable — we already validated
478
- // `descriptor.backendConnectors[effectiveBackend]` above. Map to a
479
- // 500 rather than a 400 because it indicates a server-side mismatch.
480
- return c.json({ error: "internal_error" }, 500);
481
- }
482
- }
483
- // DELEGATED-PROXY-API-DESIGN.md §4.2 — `delegatedModel` carry-over
484
- // rules:
485
- // - PATCH omits the field → preserve previous value (mode-flip
486
- // idempotent: direct ↔ delegated keeps the pin).
487
- // - PATCH passes `null` → clear the pin (canonical fallback at
488
- // call time). Surfaced by the dashboard's "Reset to default"
489
- // affordance after a backend swap.
490
- // - PATCH passes a non-empty string → validated above and stored.
491
- // Same shape for `delegatedMaxTurns` (forward-compat — no UI yet).
492
- const finalDelegatedModel = parsed.data.delegatedModel === undefined
493
- ? (previous.delegatedModel ?? null)
494
- : parsed.data.delegatedModel;
495
- const finalDelegatedMaxTurns = parsed.data.delegatedMaxTurns === undefined
496
- ? (previous.delegatedMaxTurns ?? null)
497
- : parsed.data.delegatedMaxTurns;
498
- const finalDelegatedSyncEnabled = parsed.data.delegatedSyncEnabled === undefined
499
- ? previous.delegatedSyncEnabled
500
- : parsed.data.delegatedSyncEnabled;
501
- // INTEGRATION_NATIVE_MODE_DESIGN.md §19.4 — mirror of the delegated
502
- // collapse: PATCH omits → preserve previous; PATCH passes a boolean
503
- // → store. Accepted in any mode so the operator can pre-stage the
504
- // setting before flipping `mode = "native"`.
505
- const finalNativeSyncEnabled = parsed.data.nativeSyncEnabled === undefined
506
- ? previous.nativeSyncEnabled
507
- : parsed.data.nativeSyncEnabled;
508
- const stamped = new Date().toISOString();
509
- // INTEGRATION_NATIVE_MODE_DESIGN.md §11.3.1 — flip-lock orchestration.
510
- // Only acquired when the mode or a backend binding is changing; pure
511
- // annotation edits (deniedTools / delegatedModel) on an already-correct
512
- // row don't need the lock because no observer / worker / session needs
513
- // to drain. A concurrent flip on the same key (parallel PATCH from
514
- // CLI + dashboard) is rejected with 409.
515
- let flipLockHeld = false;
516
- if (modeChanged) {
517
- const acquire = acquireIntegrationFlipLock(db, key);
518
- if (!acquire.ok) {
519
- // §11.3.1 — concurrent flip on the same key. The expected hold
520
- // window is short (probe + drain are both bounded by the 5s
521
- // tick boundary), so signal the retry interval explicitly via
522
- // `Retry-After`. Standards-compliant clients (and the dashboard's
523
- // mode-dialog) honor this; the message body keeps the hold
524
- // metadata for forensics.
525
- c.header("Retry-After", "5");
526
- return c.json({
527
- error: "integration_flip_in_progress",
528
- key,
529
- heldBy: acquire.current,
530
- retryAfterSeconds: 5,
531
- message: `A mode flip for '${key}' is already in progress (acquired ${acquire.current.acquiredAt} by pid ${acquire.current.processId}). Retry in a few seconds.`,
532
- }, 409);
533
- }
534
- flipLockHeld = true;
535
- }
536
- try {
537
- const next = updateIntegrationState(db, key, {
538
- mode: parsed.data.mode,
539
- // Only carry delegatedBackend when mode is delegated. The schema
540
- // already enforces presence in that branch (superRefine), so a
541
- // direct/disabled flip drops it cleanly. Don't fall back to the
542
- // previous value here — that breaks the delegated → direct path
543
- // (the integration would keep its old backend forever).
544
- ...(parsed.data.mode === "delegated" && parsed.data.delegatedBackend
545
- ? { delegatedBackend: parsed.data.delegatedBackend }
546
- : {}),
547
- // INTEGRATION_NATIVE_MODE_DESIGN.md §5.2 — same shape for the
548
- // nativeBackend column. Schema's `superRefine` enforces mutual
549
- // exclusion with `delegatedBackend`.
550
- ...(parsed.data.mode === "native" && effectiveNativeBackend
551
- ? { nativeBackend: effectiveNativeBackend }
552
- : {}),
553
- // Always persist the resolved delegatedModel/delegatedMaxTurns —
554
- // null clears, undefined was already collapsed above to the
555
- // previous value or null. Keeps the JSON blob shape stable
556
- // across PATCHes even when the field is inert (mode !== delegated).
557
- ...(finalDelegatedModel !== null
558
- ? { delegatedModel: finalDelegatedModel }
559
- : {}),
560
- ...(finalDelegatedMaxTurns !== null
561
- ? { delegatedMaxTurns: finalDelegatedMaxTurns }
562
- : {}),
563
- ...(finalDelegatedSyncEnabled === false
564
- ? { delegatedSyncEnabled: false }
565
- : {}),
566
- ...(finalNativeSyncEnabled === false
567
- ? { nativeSyncEnabled: false }
568
- : {}),
569
- deniedTools: finalDeniedTools,
570
- lastChangedAt: stamped,
571
- });
572
- await writeManagementMd(config.dataDir, next, {
573
- externalObsidianVaultPath: config.externalObsidianVaultPath,
574
- externalObsidianWatch: config.externalObsidianWatch,
575
- });
576
- // §4.11 probe-cache eviction is a *mode-change* concern. A pure
577
- // deniedTools edit doesn't invalidate which capabilities the
578
- // connector exposes — the live probe answer is identical, only what
579
- // the agent is allowed to invoke from the skill body changes. So
580
- // gate eviction on modeChanged.
581
- if (modeChanged) {
582
- const cleared = deleteProbesForIntegration(db, key);
583
- if (cleared > 0) {
584
- logger.info({ key, cleared }, "cleared stale probe cache after integration mode change");
585
- }
586
- }
587
- // DELEGATED-MODE-V2-DESIGN.md §4.4 #2 — a deniedTools-only edit must
588
- // also re-materialize active DM workdirs, since the per-session
589
- // `disallowedTools` array (Claude SDK), admin-policy TOML (Gemini),
590
- // and AGENTS.md prose block (Codex) are derived from `state.deniedTools`
591
- // at materialization time. A stale workdir would leak the old policy
592
- // into the next turn. We compute the policy diff up front so we can
593
- // gate the lifecycle callback on it.
594
- const policyDiff = diffDeniedTools(previous.deniedTools ?? [], next[key].deniedTools ?? []);
595
- const policyChanged = policyDiff.added.length > 0 || policyDiff.removed.length > 0;
596
- // Only `delegatedSyncEnabled` gates an observer-lifecycle
597
- // re-evaluation — the predicate
598
- // (`hasActiveDelegatedSyncIntegration`) ignores `nativeSyncEnabled`
599
- // because the worker has no role in native mode (see appendix
600
- // §"Polling, observers, and the hourly-check threshold"). The
601
- // `nativeSyncEnabled` field is retained on the state row for
602
- // schema compatibility but toggling it is inert today.
603
- const syncChanged = (previous.delegatedSyncEnabled ?? true)
604
- !== (next[key].delegatedSyncEnabled ?? true);
605
- // §4.10 lifecycle step 4 — observer flip side of the callback is
606
- // gated on `wasDirect !== isDirect` inside `applyIntegrationModeChange`,
607
- // so calling it on a deniedTools-only edit is safe: observer
608
- // start/stop is a no-op, only `rematerializeDmSessions` fires.
609
- if ((modeChanged || policyChanged || syncChanged) && deps.onIntegrationModeChange) {
610
- void Promise.resolve()
611
- .then(() => deps.onIntegrationModeChange?.(key, previous, next[key]))
612
- .catch((err) => {
613
- logger.error({ err, key }, "integration mode-change side-effects failed — DB state already updated");
614
- });
615
- }
616
- // §7.7 audit. Two distinct action types so log readers can filter:
617
- // - integration.mode_change: mode or delegatedBackend moved
618
- // - integration.policy_change: deniedTools diff (with no mode flip)
619
- // Both can fire on a single PATCH when the user changes mode AND
620
- // deniedTools simultaneously — that's intentional, the diff is at
621
- // different granularities.
622
- if (modeChanged) {
623
- recordAuditModeChange(db, key, previous, next[key]);
624
- }
625
- if (policyChanged) {
626
- recordAuditPolicyChange(db, key, policyDiff);
627
- }
628
- logger.info({
629
- key,
630
- from: previous.mode,
631
- to: next[key].mode,
632
- delegatedBackend: next[key].delegatedBackend,
633
- nativeBackend: next[key].nativeBackend,
634
- delegatedModelFrom: previous.delegatedModel ?? null,
635
- delegatedModelTo: next[key].delegatedModel ?? null,
636
- deniedToolsAdded: policyDiff.added,
637
- deniedToolsRemoved: policyDiff.removed,
638
- }, modeChanged
639
- ? "integration mode updated"
640
- : "integration policy updated (deniedTools / delegatedModel)");
641
- // Auto-enable the global task-mode flag the first time *any*
642
- // integration enters delegated mode. Rationale:
643
- // - The legacy `/integrations/:key/invoke` RPC is dead (commented
644
- // out 2026-05-01 in this same file); every delegated skill body
645
- // and task flow now talks to `/exec`.
646
- // - `/exec` is gated by `delegatedTaskModeEnabled`, originally a
647
- // Phase-1 canary that defaults `false`. With `/invoke` gone,
648
- // "delegated mode + task mode off" is a degenerate state with
649
- // no productive use — the agent calls `/exec`, gets 503,
650
- // fails. So flipping an integration to delegated *is* the
651
- // enablement signal.
652
- // - We only flip on the transition into delegated, not on every
653
- // PATCH against an already-delegated integration. A pure
654
- // deniedTools edit must not silently re-enable a flag the
655
- // operator manually toggled off; emergency-disable is the
656
- // flag's remaining role.
657
- const enteringDelegated = next[key].mode === "delegated" && previous.mode !== "delegated";
658
- if (enteringDelegated && !config.delegatedTaskModeEnabled) {
659
- try {
660
- createSettingsStore(db).set("delegatedTaskModeEnabled", true);
661
- config.delegatedTaskModeEnabled = true;
662
- logger.info({ key, backend: effectiveBackend, trigger: "first_delegated" }, "auto-enabled delegatedTaskModeEnabled — first delegated integration");
663
- /* c8 ignore start -- settings write never fails with in-memory DB; defensive for production */
664
- }
665
- catch (err) {
666
- logger.error({ err, key }, "failed to persist delegatedTaskModeEnabled auto-enable; in-memory config still updated");
667
- }
668
- /* c8 ignore stop */
669
- }
670
- return c.json({ ok: true, integration: next[key] });
671
- /* c8 ignore start -- updateIntegrationState never throws with in-memory DB; defensive for production */
672
- }
673
- catch (err) {
674
- logger.error({ err, key }, "integration mode update failed");
675
- return c.json({ error: "internal_error" }, 500);
676
- /* c8 ignore stop */
677
- }
678
- finally {
679
- // §11.3.1 — release the flip lock regardless of success/failure so
680
- // the next PATCH for this key is unblocked.
681
- if (flipLockHeld) {
682
- releaseIntegrationFlipLock(db, key);
683
- }
684
- }
685
- });
686
- // ─────────────────────────────────────────────────────────────────────
687
- // RESERVED — POST /integrations/:key/invoke (RPC-style tool dispatch)
688
- //
689
- // Commented out 2026-05-01 as part of the /exec-only migration. The
690
- // RPC `{tool, args}` shape required the caller to know the delegated
691
- // backend's exact bare tool name (Claude `search_threads` vs Codex
692
- // `search_emails` vs Gemini `search`) and arg names (`pageSize` vs
693
- // `max_results` vs `maxResults`). That coupling broke under:
694
- // - cross-backend tool-name divergence (the alias-translation gap
695
- // that caused the 2026-05-01 wrong_tool incidents),
696
- // - any custom MCP server the user installs (registry-invisible),
697
- // - backend swaps that should be transparent to the agent.
698
- //
699
- // `POST /integrations/:key/exec` (task mode) is the canonical surface
700
- // now: the agent describes intent in natural language + outputSchema,
701
- // the daemon's delegate picks the tool. The handler body and the
702
- // supporting `resolveCanonicalBareTool` helper are preserved verbatim
703
- // for **future reactivation** — possible reactivation scenarios:
704
- // 1. A low-latency RPC fast path for cost-sensitive callers.
705
- // 2. A debug/admin endpoint for direct tool dispatch.
706
- // 3. A per-integration opt-in once full cross-backend alias
707
- // translation is in place.
708
- //
709
- // DO NOT DELETE. The internal `DelegatedBackendInvoker.invoke()` API
710
- // and each core's `runDelegatedTool()` remain wired (used by
711
- // `delegated-sync-worker` for hourly drift detection — see
712
- // `packages/daemon/src/observers/delegated-sync-worker.ts:504`).
713
- //
714
- // Original docstring (preserved for the reactivation-time author):
715
- // POST /integrations/:key/invoke — DELEGATED-MODE-V2-DESIGN.md §4.2.
716
- // Generic chokepoint for cross-backend delegated tool calls. The
717
- // agent's cross-backend skill body
718
- // (`SKILL.delegated.<sessionBackend>.md`) directs it here for any
719
- // connector tool on a delegatedBackend that differs from the DM
720
- // session backend. Body: `{tool, args}` — the daemon does NOT
721
- // enumerate or validate the tool name (no per-tool routeMap
722
- // maintenance); it forwards verbatim to `DelegatedBackendInvoker`.
723
- //
724
- // Pre-flight order (cheapest first, fail-fast):
725
- // 1. Integration must be in `delegated` mode (409 mode_mismatch).
726
- // 2. If `x-session-backend` is set and matches `state.delegatedBackend`,
727
- // the caller is misusing the endpoint — same-backend agents have
728
- // native MCP and the skill is not provisioned (§4.1.2). Surface as
729
- // 409 to make accidental misuse loud rather than spawning a useless
730
- // subprocess.
731
- // 3. `state.deniedTools` patterns enforced via `matchToolPattern`. The
732
- // stored entries are bare names (no `mcp__*` prefix), so we strip the
733
- // connector's `toolNamespace` from the body's `tool` before matching.
734
- //
735
- // Risk tier: Autonomous (no Bearer required). Cost / failure
736
- // attribution lands in `agent_actions` via the invoker
737
- // (`action_type='delegated_proxy.invoke'`).
738
- // ─────────────────────────────────────────────────────────────────────
739
- /*
740
- app.post("/integrations/:key/invoke", async (c) => {
741
- const key = c.req.param("key");
742
- if (!isIntegrationKey(key)) {
743
- return c.json({ error: "unknown_integration", key }, 404);
744
- }
745
-
746
- const parsedBody = await readJsonBody(c);
747
- if (!parsedBody.ok) return parsedBody.response;
748
-
749
- const body = parsedBody.body as { tool?: unknown; args?: unknown } | null;
750
- const toolRaw = body?.tool;
751
- if (typeof toolRaw !== "string" || toolRaw.length === 0) {
752
- return c.json(
753
- {
754
- error: "validation_error",
755
- message: "`tool` must be a non-empty string (bare tool name or fully-qualified MCP name)",
756
- },
757
- 400,
758
- );
759
- }
760
- // §4.2.1 contract — `args` is `object`. Reject arrays, scalars, and null
761
- // here so the failure surfaces at the route boundary with a precise 400
762
- // rather than as a downstream invoker / connector parse error.
763
- const argsRaw = body?.args;
764
- if (
765
- argsRaw !== undefined
766
- && (argsRaw === null
767
- || typeof argsRaw !== "object"
768
- || Array.isArray(argsRaw))
769
- ) {
770
- return c.json(
771
- {
772
- error: "validation_error",
773
- message: "`args` must be a JSON object (or omitted to send {})",
774
- },
775
- 400,
776
- );
777
- }
778
- const args = (argsRaw as Record<string, unknown> | undefined) ?? {};
779
-
780
- if (!deps.delegatedInvoker) {
781
- // Boot ordering / test wiring case — invoker not registered. Surface
782
- // explicitly so the caller knows this isn't a precondition mismatch.
783
- return c.json(
784
- {
785
- error: "unimplemented",
786
- message: "delegated invoker is not wired into this daemon instance",
787
- integration: key,
788
- backend: null,
789
- mode: "delegated",
790
- },
791
- 501,
792
- );
793
- }
794
-
795
- const state = readIntegrations(db)[key];
796
- if (!state || state.mode !== "delegated" || !state.delegatedBackend) {
797
- return c.json(
798
- {
799
- error: "mode_mismatch",
800
- message: `${key} is not in delegated mode (mode=${state?.mode ?? "missing"})`,
801
- integration: key,
802
- backend: null,
803
- mode: "delegated",
804
- },
805
- 409,
806
- );
807
- }
808
-
809
- const sessionBackendHeader = c.req.header("x-session-backend");
810
- if (
811
- sessionBackendHeader
812
- && sessionBackendHeader === state.delegatedBackend
813
- ) {
814
- return c.json(
815
- {
816
- error: "mode_mismatch",
817
- message: `session backend matches delegatedBackend (${sessionBackendHeader}) — use native MCP instead`,
818
- integration: key,
819
- backend: state.delegatedBackend,
820
- mode: "delegated",
821
- },
822
- 409,
823
- );
824
- }
825
-
826
- // Strip the connector's namespace prefix if the body included it,
827
- // then translate cross-backend aliases to the delegated connector's
828
- // canonical tool name. Translation runs BEFORE the deniedTools check
829
- // because deny entries are stored as backend-canonical names (the
830
- // skill body trains the user on that form): checking pre-translation
831
- // silently lets a denied call through if the agent used a sibling
832
- // backend's alias.
833
- const connector = INTEGRATION_DESCRIPTORS[key].backendConnectors[state.delegatedBackend];
834
- const namespace = connector?.toolNamespace ?? "";
835
- const incomingBareTool = namespace && toolRaw.startsWith(namespace)
836
- ? toolRaw.slice(namespace.length)
837
- : toolRaw;
838
- const bareTool = resolveCanonicalBareTool(connector, incomingBareTool);
839
- if (bareTool !== incomingBareTool) {
840
- logger.debug(
841
- {
842
- integration: key,
843
- backend: state.delegatedBackend,
844
- from: incomingBareTool,
845
- to: bareTool,
846
- },
847
- "delegated invoke: translated cross-backend tool alias",
848
- );
849
- }
850
-
851
- if ((state.deniedTools ?? []).some((pattern) => matchToolPattern(pattern, bareTool))) {
852
- return c.json(
853
- {
854
- error: "denied_tool",
855
- message: `tool '${bareTool}' is denied by user settings for integration '${key}'`,
856
- integration: key,
857
- backend: state.delegatedBackend,
858
- mode: "delegated",
859
- tool: bareTool,
860
- },
861
- 403,
862
- );
863
- }
864
-
865
- // The invoker forwards verbatim — connector validates the tool name and
866
- // arg shape. We always send the fully-qualified tool string so the
867
- // subprocess prompt unambiguously points at one tool.
868
- const fullyQualifiedTool = namespace ? `${namespace}${bareTool}` : bareTool;
869
-
870
- const result = await deps.delegatedInvoker.invoke({
871
- integrationKey: key,
872
- toolName: fullyQualifiedTool,
873
- toolArgs: args,
874
- parentEventId: c.req.header("x-event-id"),
875
- parentProcessKey: c.req.header("x-process-key"),
876
- });
877
-
878
- if (result.ok) {
879
- // INTEGRATION-DRIFT-DETECTION-PLAN.md §11 Phase 4 — actor attribution.
880
- // Successful writes mark the persistent `integration_writes` table so
881
- // the next reconcile diff resolves `actor='agent'` and the agent does
882
- // not re-discover its own write as a user-originated observation.
883
- // Decision tree:
884
- // 1. `bareTool` in `connector.destructiveTools` → it's a write.
885
- // 2. Walk `result.toolResult` for canonical id keys (extractor).
886
- // 3. If the response had no id (label_message / label_thread /
887
- // bulk_label_matching_emails return `{ ok: true }`), fall back
888
- // to `args.messageId` / `args.threadId` / each entry of
889
- // `args.messageIds` / `args.threadIds`.
890
- // Failure to extract any id is logged at debug and the call still
891
- // returns 2xx — losing one attribution mark causes one self-noticed
892
- // observation, never data loss.
893
- maybeMarkIntegrationWrite(deps.db, {
894
- integration: key,
895
- connector,
896
- bareTool,
897
- toolResult: result.toolResult,
898
- args,
899
- });
900
- return c.json({
901
- toolResult: result.toolResult,
902
- cost: {
903
- tokensInput: result.cost.tokensInput,
904
- tokensOutput: result.cost.tokensOutput,
905
- cacheCreationTokens: result.cost.cacheCreationTokens,
906
- cacheReadTokens: result.cost.cacheReadTokens,
907
- costUsd: result.cost.costUsd,
908
- durationMs: result.cost.durationMs,
909
- numTurns: result.cost.numTurns,
910
- },
911
- });
912
- }
913
-
914
- const status = mapErrorClassToHttpStatus(result.errorClass);
915
- return c.json(
916
- {
917
- error: result.errorClass,
918
- message: result.message,
919
- integration: key,
920
- backend: result.backendId ?? state.delegatedBackend,
921
- mode: "delegated",
922
- },
923
- status,
924
- );
925
- });
926
- */
927
- // ── end of reserved /invoke route ────────────────────────────────────
928
- // POST /integrations/:key/exec — DELEGATED-TASK-MODE-DESIGN.md §4.1.
929
- // Task-mode invocation: the calling agent describes intent in natural
930
- // language and pins an `outputSchema`; the daemon spawns the
931
- // delegatedBackend with `allowedTools` restricted to the integration's
932
- // connector and validates the final assistant JSON against the schema.
933
- //
934
- // Pre-flight order (cheapest first; matches /invoke ordering):
935
- // 1. Integration is registered (404 unknown_integration).
936
- // 2. Body is valid JSON (400 invalid_json_body).
937
- // 3. Body fields parse: task non-empty string, outputSchema present
938
- // and within 4 KB, caps within hard bounds, allowDestructive bool.
939
- // 4. Kill switch (config.delegatedTaskModeEnabled): 503 if false.
940
- // 5. Integration is delegated with non-null delegatedBackend (409).
941
- // 6. delegatedBackend ∈ {claude, gemini} — Codex returns 501.
942
- // 7. x-session-backend header (if set) ≠ delegatedBackend (409 same
943
- // defense-in-depth as /invoke — same-backend should use native MCP).
944
- // 8. Invoker wired (501).
945
- //
946
- // Risk tier: Autonomous (no Bearer required). Same rationale as /invoke —
947
- // tool-level safety lives in `state.deniedTools` + `destructiveTools`,
948
- // both enforced at the chokepoint by the invoker.
949
- app.post("/integrations/:key/exec", async (c) => {
950
- const key = c.req.param("key");
951
- if (!isIntegrationKey(key)) {
952
- return c.json({ error: "unknown_integration", key }, 404);
953
- }
954
- const parsedBody = await readJsonBody(c);
955
- if (!parsedBody.ok)
956
- return parsedBody.response;
957
- const body = parsedBody.body;
958
- // Field-level validation. Each branch maps to `validation_error` /
959
- // `schema_too_large` per §10.
960
- if (typeof body?.task !== "string" || body.task.trim().length === 0) {
961
- return c.json({
962
- error: "validation_error",
963
- message: "`task` must be a non-empty string",
964
- }, 400);
965
- }
966
- const schemaCheck = checkOutputSchema(body.outputSchema);
967
- if (!schemaCheck.ok) {
968
- const errorCode = schemaCheck.reason === "too_large"
969
- ? "schema_too_large"
970
- : "validation_error";
971
- return c.json({
972
- error: errorCode,
973
- message: schemaCheck.message,
974
- field: "outputSchema",
975
- }, 400);
976
- }
977
- const outputSchema = body.outputSchema;
978
- const config = deps.config;
979
- if (!config.delegatedTaskModeEnabled) {
980
- return c.json({
981
- error: "task_mode_disabled",
982
- // Auto-enable on `PATCH /api/integrations/:key` to delegated
983
- // (and the matching startup heal in `index.ts`) make this
984
- // path a deliberate operator action: the flag was either
985
- // explicitly disabled via `PATCH /api/config` or its
986
- // emergency-disable use case fired. Surface that fact rather
987
- // than promising a dashboard toggle that does not exist.
988
- message: "Task mode is currently disabled (config.delegatedTaskModeEnabled=false). Re-enable via PATCH /api/config { delegatedTaskModeEnabled: true }, or flip an integration to delegated to auto-enable.",
989
- integration: key,
990
- mode: "delegated",
991
- }, 503);
992
- }
993
- const allowDestructive = body.allowDestructive === true;
994
- const maxToolCalls = clampNumber(body.maxToolCalls, config.delegatedTaskDefaultMaxToolCalls, 1, DELEGATED_TASK_HARD_CAPS.maxToolCalls);
995
- if (maxToolCalls === null) {
996
- return c.json({
997
- error: "validation_error",
998
- message: `maxToolCalls must be an integer between 1 and ${DELEGATED_TASK_HARD_CAPS.maxToolCalls}`,
999
- }, 400);
1000
- }
1001
- const maxBudgetUsd = clampNumber(body.maxBudgetUsd, config.delegatedTaskDefaultMaxBudgetUsd, 0, DELEGATED_TASK_HARD_CAPS.maxBudgetUsd, true);
1002
- if (maxBudgetUsd === null) {
1003
- return c.json({
1004
- error: "validation_error",
1005
- message: `maxBudgetUsd must be a number between 0 and ${DELEGATED_TASK_HARD_CAPS.maxBudgetUsd}`,
1006
- }, 400);
1007
- }
1008
- const timeoutMs = clampNumber(body.timeoutMs, config.delegatedTaskDefaultTimeoutMs, 1000, DELEGATED_TASK_HARD_CAPS.maxTimeoutMs);
1009
- if (timeoutMs === null) {
1010
- return c.json({
1011
- error: "validation_error",
1012
- message: `timeoutMs must be an integer between 1000 and ${DELEGATED_TASK_HARD_CAPS.maxTimeoutMs}`,
1013
- }, 400);
1014
- }
1015
- if (!deps.delegatedInvoker) {
1016
- return c.json({
1017
- error: "unimplemented",
1018
- message: "delegated invoker is not wired into this daemon instance",
1019
- integration: key,
1020
- backend: null,
1021
- mode: "delegated",
1022
- }, 501);
1023
- }
1024
- const state = readIntegrations(deps.db)[key];
1025
- if (!state || state.mode !== "delegated" || !state.delegatedBackend) {
1026
- return c.json({
1027
- error: "mode_mismatch",
1028
- message: `${key} is not in delegated mode (mode=${state?.mode ?? "missing"})`,
1029
- integration: key,
1030
- backend: null,
1031
- mode: "delegated",
1032
- }, 409);
1033
- }
1034
- // Codex task mode landed in Phase 1.5 — daemon-side stream pre-emption
1035
- // (see codex-core.ts `runDelegatedTask`) gates allowed-tools / destructive
1036
- // calls without relying on a CLI-level allowedTools surface. The 501
1037
- // short-circuit that previously fired here for `state.delegatedBackend
1038
- // === "codex"` is gone; Codex /exec requests now flow through the
1039
- // invoker like Claude and Gemini.
1040
- const sessionBackendHeader = c.req.header("x-session-backend");
1041
- if (sessionBackendHeader
1042
- && sessionBackendHeader === state.delegatedBackend) {
1043
- return c.json({
1044
- error: "mode_mismatch",
1045
- message: `session backend matches delegatedBackend (${sessionBackendHeader}) — use native MCP instead`,
1046
- integration: key,
1047
- backend: state.delegatedBackend,
1048
- mode: "delegated",
1049
- }, 409);
1050
- }
1051
- const result = await deps.delegatedInvoker.task({
1052
- integrationKey: key,
1053
- task: body.task.trim(),
1054
- outputSchema,
1055
- maxToolCalls,
1056
- maxBudgetUsd,
1057
- timeoutMs,
1058
- allowDestructive,
1059
- heavy: body.heavy === true,
1060
- // §13 Phase 3.3 — pass-through opt-in. Defense-in-depth: the
1061
- // invoker also enforces `allowDestructive === false` before
1062
- // checking the cache, so a buggy caller that sets cacheable on a
1063
- // destructive task can't poison the cache.
1064
- cacheable: body.cacheable === true,
1065
- parentEventId: c.req.header("x-event-id"),
1066
- parentProcessKey: c.req.header("x-process-key"),
1067
- });
1068
- // INTEGRATION-DRIFT-DETECTION-PLAN.md §11 Phase 4 — actor
1069
- // attribution at the /exec chokepoint. /invoke called this once per
1070
- // request because there was a single tool. /exec is a loop: walk
1071
- // the trace and mark every successful destructive step.
1072
- //
1073
- // Runs BEFORE the result.ok / error split because failed tasks
1074
- // still strand real side effects in the trace:
1075
- // - timeout / subprocess_crashed / loop_aborted / budget_exhausted:
1076
- // earlier ok steps already landed before the wall-clock /
1077
- // budget / turn cap fired.
1078
- // - schema_violation / parse_error: the model called the tool
1079
- // successfully and then mis-formatted its final JSON. The §6.2
1080
- // retry is suppressed when `writeClassToolFired` is true, so
1081
- // the side effect landed exactly once and needs marking
1082
- // exactly once.
1083
- // - policy_violation: the violating step is `status: "error"`
1084
- // (Codex aborts before pairing) but earlier ok destructive
1085
- // steps in the same task are still real.
1086
- // Skipping the loop on failure was the same shape of bug as the
1087
- // old /invoke→/exec migration miss: an agent-issued send_email
1088
- // that schema-violates on output would land in Gmail, return 502,
1089
- // and surface as "I noticed you sent…" on the next reconcile.
1090
- //
1091
- // Bare-tool resolution: trace `toolName` is the fully-qualified
1092
- // `mcp__server__tool` (or dotted `server.tool`) form the core
1093
- // observed mid-stream. Strip `connector.toolNamespace` to recover
1094
- // the bare name for the destructiveTools membership check; if the
1095
- // namespace doesn't match, the tool wasn't from this connector
1096
- // (e.g. an internal Read/Write step) and we ignore it.
1097
- //
1098
- // Each trace step carries the upstream `toolResult` (the cores
1099
- // JSON-parse the connector response when possible, fall back to
1100
- // raw string). extractWriteItemIds first walks the response
1101
- // shape (recovers id-in-response writes — send_email,
1102
- // create_event, notion-create-pages) and then falls back to
1103
- // args-side extraction (recovers id-in-args writes — delete /
1104
- // update / label / archive). Older snapshots / stub cores that
1105
- // don't populate toolResult degrade to args-only without crashing.
1106
- //
1107
- // `result.trace` is required on the success union and optional on
1108
- // the error union — guard with truthiness.
1109
- if (result.trace && result.trace.length > 0) {
1110
- const descriptor = INTEGRATION_DESCRIPTORS[key];
1111
- const connector = descriptor.backendConnectors[state.delegatedBackend];
1112
- if (connector) {
1113
- const namespace = connector.toolNamespace;
1114
- for (const step of result.trace) {
1115
- if (step.status !== "ok")
1116
- continue;
1117
- if (!step.toolName.startsWith(namespace))
1118
- continue;
1119
- const bareTool = step.toolName.slice(namespace.length);
1120
- if (!connector.destructiveTools.includes(bareTool))
1121
- continue;
1122
- maybeMarkIntegrationWrite(deps.db, {
1123
- integration: key,
1124
- connector,
1125
- bareTool,
1126
- toolResult: step.toolResult,
1127
- args: step.toolArgs,
1128
- });
1129
- }
1130
- }
1131
- }
1132
- if (result.ok) {
1133
- return c.json({
1134
- result: result.result,
1135
- needsConfirmation: result.needsConfirmation,
1136
- confirmationPlan: result.confirmationPlan,
1137
- trace: result.trace,
1138
- cost: result.cost,
1139
- });
1140
- }
1141
- const status = mapTaskErrorClassToHttpStatus(result.errorClass);
1142
- return c.json({
1143
- error: result.errorClass,
1144
- message: result.message,
1145
- ...(result.raw !== undefined ? { raw: result.raw } : {}),
1146
- ...(result.trace ? { trace: result.trace } : {}),
1147
- ...(result.cost ? { cost: result.cost } : {}),
1148
- integration: key,
1149
- backend: result.backendId ?? state.delegatedBackend,
1150
- mode: "delegated",
1151
- }, status);
1152
- });
1153
- // POST /integrations/:key/probe — evaluate or read the cached connector
1154
- // probe for a given backend. Phase 2 supports two modes:
1155
- // - Live probe: caller passes `{tools: [...]}` (the names the agent
1156
- // subprocess reported). The evaluator computes presence + persists.
1157
- // - Cached read: body omits `tools`. Returns the latest stored row, or
1158
- // a 404 marker if no probe has been taken yet. The dashboard's
1159
- // refresh button and post-Apply background refresh use the live path;
1160
- // /health and the setup wizard's initial render use the cached path.
1161
- // No live agent subprocess is launched here — keeping that out of the
1162
- // boot critical path is what saves the per-Opus probe cost called out
1163
- // in the §7 POC.
1164
- app.post("/integrations/:key/probe", async (c) => {
1165
- const key = c.req.param("key");
1166
- if (!isIntegrationKey(key)) {
1167
- return c.json({ error: "unknown_integration", key }, 404);
1168
- }
1169
- const body = await readOptionalJsonBody(c);
1170
- if (body === null) {
1171
- return c.json({ error: "invalid_json_body" }, 400);
1172
- }
1173
- const backend = resolveProbeBackend(body.backend, db, key);
1174
- if (!backend.ok)
1175
- return c.json(backend.error, backend.status);
1176
- const descriptorForProbe = INTEGRATION_DESCRIPTORS[key];
1177
- const isUserManaged = descriptorForProbe.userManagedConnector === true;
1178
- // Connector existence is a descriptor-driven precondition. User-
1179
- // managed integrations (Outlook today) intentionally ship with an
1180
- // empty `backendConnectors` and skip this check — the user's MCP /
1181
- // connector on the chosen backend is the source of truth, not the
1182
- // registry. Backend availability + auth still get verified for
1183
- // user-managed in the live-probe branch below.
1184
- if (!isUserManaged) {
1185
- const connector = getConnector(key, backend.value);
1186
- /* c8 ignore start -- every registered (integration, backend) pair ships with a connector today; forward-compat guard for future partial connectors */
1187
- if (!connector) {
1188
- return c.json({
1189
- error: "backend_not_supported",
1190
- key,
1191
- backend: backend.value,
1192
- availableBackends: Object.keys(descriptorForProbe.backendConnectors),
1193
- }, 400);
1194
- }
1195
- /* c8 ignore stop */
1196
- }
1197
- // §4.11 live probe — `liveProbe: true` asks the daemon to spawn the
1198
- // target backend and enumerate its MCP tool list. User-initiated only;
1199
- // never fired from boot or PATCH. The descriptor + cached read paths
1200
- // cover the other two calling conventions.
1201
- //
1202
- // For user-managed integrations the spawn + probeTools() call still
1203
- // fires (this is what enforces §4.12.2 checks #1 backend resolvable
1204
- // and #2 backend auth valid). Only the descriptor-side capability
1205
- // evaluation is replaced by `makeUserManagedProbeResult`, which
1206
- // carries the full live tool list as `presentTools` so dashboards
1207
- // can show "we found N tools on your backend."
1208
- if (body.liveProbe === true) {
1209
- const core = deps.agentBackends?.find((c) => c.backendId === backend.value);
1210
- if (!core) {
1211
- return c.json({
1212
- error: "backend_core_unavailable",
1213
- backend: backend.value,
1214
- message: `Backend '${backend.value}' is not registered in this daemon — cannot run live probe.`,
1215
- }, 503);
1216
- }
1217
- try {
1218
- const tools = await core.probeTools();
1219
- const result = isUserManaged
1220
- ? makeUserManagedProbeResult(key, backend.value, tools)
1221
- : evaluateProbe({
1222
- tools,
1223
- integration: key,
1224
- backend: backend.value,
1225
- });
1226
- writeProbe(db, result);
1227
- logger.info({
1228
- key,
1229
- backend: backend.value,
1230
- present: result.present,
1231
- missingRequired: result.missingRequired,
1232
- toolCount: result.presentTools.length,
1233
- userManaged: isUserManaged,
1234
- }, "integration live probe persisted");
1235
- return c.json({
1236
- ok: true,
1237
- cached: false,
1238
- liveProbe: true,
1239
- ...(isUserManaged ? { userManaged: true } : {}),
1240
- result,
1241
- });
1242
- }
1243
- catch (err) {
1244
- if (err instanceof LiveProbeUnsupportedError) {
1245
- return c.json({
1246
- error: "live_probe_unsupported",
1247
- backend: backend.value,
1248
- message: err.reason,
1249
- }, 501);
1250
- }
1251
- logger.error({ err, key, backend: backend.value }, "live probe failed");
1252
- return c.json({
1253
- error: "live_probe_failed",
1254
- backend: backend.value,
1255
- message: err instanceof Error ? err.message : String(err),
1256
- }, 500);
1257
- }
1258
- }
1259
- const tools = body?.tools;
1260
- if (tools === undefined) {
1261
- const cached = readProbe(db, key, backend.value);
1262
- // 200 + result:null when there's no cached row — distinguishes
1263
- // "endpoint missing" (which the unknown_integration / 404 above
1264
- // covers) from "endpoint worked but the cache is empty," so the
1265
- // dashboard callers can branch without parsing error codes.
1266
- return c.json({
1267
- ok: true,
1268
- cached: cached !== null,
1269
- ...(isUserManaged ? { userManaged: true } : {}),
1270
- result: cached,
1271
- });
1272
- }
1273
- if (!Array.isArray(tools) || tools.some((t) => typeof t !== "string")) {
1274
- return c.json({
1275
- error: "invalid_body",
1276
- message: "`tools` must be an array of MCP tool names (strings).",
1277
- }, 400);
1278
- }
1279
- try {
1280
- const result = isUserManaged
1281
- ? makeUserManagedProbeResult(key, backend.value, tools)
1282
- : evaluateProbe({
1283
- tools: tools,
1284
- integration: key,
1285
- backend: backend.value,
1286
- });
1287
- writeProbe(db, result);
1288
- logger.info({
1289
- key,
1290
- backend: backend.value,
1291
- present: result.present,
1292
- missingRequired: result.missingRequired,
1293
- toolCount: result.presentTools.length,
1294
- userManaged: isUserManaged,
1295
- }, "integration probe persisted");
1296
- return c.json({
1297
- ok: true,
1298
- cached: false,
1299
- ...(isUserManaged ? { userManaged: true } : {}),
1300
- result,
1301
- });
1302
- /* c8 ignore start -- evaluateProbe / writeProbe success path is always taken in tests; catch is defensive */
1303
- }
1304
- catch (err) {
1305
- logger.error({ err, key, backend: backend.value }, "probe evaluation failed");
1306
- return c.json({ error: "internal_error" }, 500);
1307
- }
1308
- /* c8 ignore stop */
1309
- });
1310
- return app;
1311
- }
1312
- /**
1313
- * Tolerant JSON body reader for POST routes that accept an empty body
1314
- * (e.g. `POST /integrations/:key/probe` with no `tools` defaults to a
1315
- * cached read). Returns `{}` for an empty body, `null` for invalid JSON,
1316
- * and the parsed value otherwise.
1317
- */
1318
- async function readOptionalJsonBody(c) {
1319
- try {
1320
- const raw = await c.req.text();
1321
- if (raw.trim() === "")
1322
- return {};
1323
- return JSON.parse(raw);
1324
- }
1325
- catch {
1326
- return null;
1327
- }
1328
- }
1329
- function resolveProbeBackend(raw, db, key) {
1330
- if (typeof raw === "string") {
1331
- if (!BACKEND_IDS.includes(raw)) {
1332
- return {
1333
- ok: false,
1334
- status: 400,
1335
- error: {
1336
- error: "invalid_backend",
1337
- message: `Unknown backend '${raw}'.`,
1338
- supportedBackends: BACKEND_IDS,
1339
- },
1340
- };
1341
- }
1342
- return { ok: true, value: raw };
1343
- }
1344
- if (raw !== undefined) {
1345
- return {
1346
- ok: false,
1347
- status: 400,
1348
- error: {
1349
- error: "invalid_backend",
1350
- message: "`backend` must be a string when provided.",
1351
- },
1352
- };
1353
- }
1354
- // Default to the integration's `delegatedBackend` when one is
1355
- // configured — this is the backend the wizard would commit against.
1356
- const state = readIntegrations(db)[key];
1357
- if (state.delegatedBackend) {
1358
- return { ok: true, value: state.delegatedBackend };
1359
- }
1360
- return {
1361
- ok: false,
1362
- status: 400,
1363
- error: {
1364
- error: "backend_required",
1365
- message: "Pass `backend` in the request body — this integration is not currently delegated, so the daemon cannot infer one.",
1366
- },
1367
- };
1368
- }
1369
- function recordAuditModeChange(db, key, previous, next) {
1370
- try {
1371
- db.prepare(`INSERT INTO agent_actions
1372
- (event_id, action_type, trigger, result, detail, started_at, completed_at)
1373
- VALUES (?, 'integration.mode_change', 'reactive', 'success', ?, datetime('now'), datetime('now'))`).run(`integration:${key}:${Date.now()}`, JSON.stringify({
1374
- key,
1375
- from: {
1376
- mode: previous.mode,
1377
- delegatedBackend: previous.delegatedBackend ?? null,
1378
- // INTEGRATION_NATIVE_MODE_DESIGN.md §11.4 — preserve the prior
1379
- // native binding in the audit row so the forensic chain survives
1380
- // the schema clearing `nativeBackend` once mode flips away.
1381
- nativeBackend: previous.nativeBackend ?? null,
1382
- },
1383
- to: {
1384
- mode: next.mode,
1385
- delegatedBackend: next.delegatedBackend ?? null,
1386
- nativeBackend: next.nativeBackend ?? null,
1387
- },
1388
- }));
1389
- /* c8 ignore start -- in-memory DB always succeeds; catch is defensive for production DB errors */
1390
- }
1391
- catch (err) {
1392
- logger.warn({ err, key }, "failed to write integration audit row");
1393
- }
1394
- /* c8 ignore stop */
1395
- }
1396
- function recordAuditPolicyChange(db, key, diff) {
1397
- try {
1398
- db.prepare(`INSERT INTO agent_actions
1399
- (event_id, action_type, trigger, result, detail, started_at, completed_at)
1400
- VALUES (?, 'integration.policy_change', 'reactive', 'success', ?, datetime('now'), datetime('now'))`).run(`integration:${key}:policy:${Date.now()}`, JSON.stringify({ key, deniedTools: diff }));
1401
- /* c8 ignore start -- in-memory DB always succeeds; catch is defensive for production DB errors */
1402
- }
1403
- catch (err) {
1404
- logger.warn({ err, key }, "failed to write integration policy audit row");
1405
- }
1406
- /* c8 ignore stop */
1407
- }
1408
- function diffDeniedTools(previous, next) {
1409
- const prevSet = new Set(previous);
1410
- const nextSet = new Set(next);
1411
- const added = next.filter((t) => !prevSet.has(t));
1412
- const removed = previous.filter((t) => !nextSet.has(t));
1413
- return { added, removed };
1414
- }
1415
- /**
1416
- * Clamp a numeric request-body field to [min, max], applying `defaultValue`
1417
- * when omitted. Returns null on invalid input (NaN / wrong type), letting
1418
- * the caller surface a validation_error. When `allowFloat` is true (used
1419
- * for USD budgets), accepts floating-point; otherwise integer-only.
1420
- */
1421
- function clampNumber(raw, defaultValue, min, max, allowFloat = false) {
1422
- if (raw === undefined || raw === null)
1423
- return defaultValue;
1424
- if (typeof raw !== "number" || !Number.isFinite(raw))
1425
- return null;
1426
- if (!allowFloat && !Number.isInteger(raw))
1427
- return null;
1428
- if (raw < min || raw > max)
1429
- return null;
1430
- return raw;
1431
- }
1432
- /**
1433
- * DELEGATED-TASK-MODE-DESIGN.md §10 — map the task-mode error class to an
1434
- * HTTP status code. Mirrors the design's table 1:1.
1435
- */
1436
- function mapTaskErrorClassToHttpStatus(errorClass) {
1437
- switch (errorClass) {
1438
- case "task_mode_disabled":
1439
- return 503;
1440
- case "task_quota_exhausted":
1441
- return 429;
1442
- case "task_mode_unsupported":
1443
- return 501;
1444
- case "delegated_proxy_busy":
1445
- return 503;
1446
- case "denied_tool":
1447
- return 403;
1448
- case "precondition":
1449
- return 409;
1450
- case "auth_error":
1451
- return 502;
1452
- case "tool_failed":
1453
- case "tool_unavailable":
1454
- case "parse_error":
1455
- case "schema_violation":
1456
- case "policy_violation":
1457
- case "post_write_format_failure":
1458
- case "loop_aborted":
1459
- case "budget_exhausted":
1460
- return 502;
1461
- case "timeout":
1462
- case "cancelled":
1463
- return 504;
1464
- case "subprocess_crashed":
1465
- default:
1466
- return 500;
1467
- }
1468
- }
1469
- function safeParseJson(s) {
1470
- try {
1471
- const parsed = JSON.parse(s);
1472
- /* c8 ignore next -- sql WHERE guarantees only object-typed detail rows reach here */
1473
- if (!parsed || typeof parsed !== "object" || Array.isArray(parsed))
1474
- return null;
1475
- return parsed;
1476
- /* c8 ignore start -- sql WHERE json_extract would reject malformed JSON rows */
1477
- }
1478
- catch {
1479
- return null;
1480
- }
1481
- /* c8 ignore stop */
1482
- }
1483
- /**
1484
- * INTEGRATION-DRIFT-DETECTION-PLAN.md §11 Phase 4 — delegated chokepoint
1485
- * actor attribution. Branches on `connector.destructiveTools` membership;
1486
- * non-destructive tools (search / read / list) are left untouched. For
1487
- * write tools we run the response-shape extractor and fall back to args-
1488
- * shape extraction (for `{ ok: true }`-only label / archive responses);
1489
- * each surfaced id is marked in the persistent `integration_writes`
1490
- * table with the per-integration default TTL.
1491
- *
1492
- * Called from two surfaces:
1493
- * - The `/exec` success path (active) — once per successful destructive
1494
- * trace step. Each trace entry carries the parsed upstream
1495
- * `toolResult`, so the response-shape extractor and the args-side
1496
- * fallback both fire normally — symmetric to the legacy /invoke path
1497
- * (id-in-response writes like send_email / create_event /
1498
- * notion-create-pages are recovered in addition to id-in-args
1499
- * deletes / updates / labels).
1500
- * - The reserved `/invoke` route (commented) — once per call with the
1501
- * full upstream `result.toolResult`. Same response-shape walk.
1502
- *
1503
- * Idempotent on extraction miss: returning early without any mark is the
1504
- * documented degradation path (causes one self-noticed observation, not
1505
- * data loss). The route handler always returns 2xx on a successful
1506
- * upstream call — this helper never throws back.
1507
- */
1508
- function maybeMarkIntegrationWrite(db, args) {
1509
- /* c8 ignore next -- /exec guards via if(connector); defensive for future /invoke reactivation */
1510
- if (!args.connector)
1511
- return;
1512
- /* c8 ignore next -- /exec pre-filters non-destructive tools; defensive for future /invoke reactivation */
1513
- if (!args.connector.destructiveTools.includes(args.bareTool))
1514
- return;
1515
- const extracted = extractWriteItemIds({
1516
- integration: args.integration,
1517
- bareTool: args.bareTool,
1518
- toolResult: args.toolResult,
1519
- args: args.args,
1520
- });
1521
- if (extracted.itemIds.length === 0) {
1522
- logger.debug({
1523
- integration: args.integration,
1524
- bareTool: args.bareTool,
1525
- reason: extracted.reason,
1526
- }, "destructive tool succeeded but no item id extracted — actor attribution will fall through to 'user' on next reconcile");
1527
- return;
1528
- }
1529
- for (const id of extracted.itemIds) {
1530
- markIntegrationWrite(db, args.integration, id);
1531
- }
1532
- logger.debug({
1533
- integration: args.integration,
1534
- bareTool: args.bareTool,
1535
- reason: extracted.reason,
1536
- itemCount: extracted.itemIds.length,
1537
- }, "marked integration_writes for destructive delegated call");
1538
- }
1539
- // ─────────────────────────────────────────────────────────────────────
1540
- // RESERVED — `resolveCanonicalBareTool`
1541
- //
1542
- // Helper for the commented-out RPC `/invoke` route. Preserved verbatim
1543
- // alongside the route handler for future reactivation.
1544
- //
1545
- // The /exec migration removed the brittle "agent supplies the bare
1546
- // tool name" coupling that this helper compensated for; future RPC
1547
- // re-introduction (admin endpoint, cost-sensitive fast path) would
1548
- // likely want a *more* complete cross-backend alias translator
1549
- // (walk every connector under the integration, not just the active
1550
- // one) — see the alias-divergence root-cause notes in the route
1551
- // handler comment above for context.
1552
- //
1553
- // DO NOT DELETE.
1554
- // ─────────────────────────────────────────────────────────────────────
1555
- /*
1556
- function resolveCanonicalBareTool(
1557
- connector: IntegrationBackendConnector | undefined,
1558
- bare: string,
1559
- ): string {
1560
- if (!connector) return bare;
1561
- const capTools = connector.capabilityTools;
1562
- for (const aliases of Object.values(capTools)) {
1563
- if (aliases.includes(bare)) return bare;
1564
- }
1565
- const aliasesForKey = capTools[bare];
1566
- if (aliasesForKey && aliasesForKey.length > 0) {
1567
- return aliasesForKey[0];
1568
- }
1569
- return bare;
1570
- }
1571
- */
1572
- //# sourceMappingURL=integrations.js.map