@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
@@ -0,0 +1,1508 @@
1
+ /**
2
+ * docs/design/appendices/opencode-backend.md §6.2 — `IAgentCore` implementation backed by
3
+ * the `@opencode-ai/sdk` HTTP server.
4
+ *
5
+ * Surface:
6
+ * - `execute()` end-to-end against the managed server (loopback)
7
+ * - `executeResume()` reuses an existing opencode session id so the
8
+ * dispatcher's multi-turn DM / dashboard-chat / docs-QA path can
9
+ * own opencode as main backend (see
10
+ * `docs/design/appendices/opencode-execute-resume.md`)
11
+ * - Streaming text deltas relayed through the StreamCallbacks
12
+ * - Cost / token telemetry from `client.session.get(...).data`,
13
+ * scoped to a per-turn delta when resuming (pre-turn snapshot
14
+ * subtracted from post-turn cumulative)
15
+ * - `summarize()` V11 round-trip
16
+ * - `runDelegatedTask()` via spawnEphemeral (Path A)
17
+ * - Stub for `runDelegatedTool` (by design — opencode delegation
18
+ * routes through `runDelegatedTask`)
19
+ * - Per-execute wall-clock abort via `AbortController` →
20
+ * `client.session.abort()`
21
+ */
22
+ import { randomUUID } from "node:crypto";
23
+ import { defaultApiKeyProvider, isAutonomousProcessKey, isMessageEvent, } from "@aitne/shared";
24
+ import { getContextDir } from "../../config.js";
25
+ import { cleanupSessionWorkdir, createSessionWorkdir, } from "../workdir.js";
26
+ import { resolveUserSkillsRoot } from "../user-skills-root.js";
27
+ import { auditStreamObservation, extractOpencodeToolUseTarget, } from "../../safety/subprocess-block-scanner.js";
28
+ import { BackendDecisiveFailure, DelegatedToolUnsupportedError, LiveProbeUnsupportedError, TaskModeUnsupportedError, classifyAbortReason, } from "../agent-core.js";
29
+ import { matchRunAllowedToolPattern } from "@aitne/shared";
30
+ import { emptyCost, withDurationMs, } from "../../services/delegated-tool-runtime.js";
31
+ import { DEFAULT_OPENCODE_LITE_MODEL, findRegisteredModel, getModelsForBackend, } from "./model-registry.js";
32
+ import { PriceFetcher } from "./price-fetcher.js";
33
+ import { buildExecutionPrompt } from "./prompt-utils.js";
34
+ import { extractAssistantTextFromParts, extractToolUsesFromParts, isMessageAborted, isTerminal, normalize, } from "./opencode-event-mapper.js";
35
+ import { buildOpencodeRuntimeConfig, defensiveInstructionsFromEnv, } from "./opencode-config-builder.js";
36
+ import { renderOpencodeMcp } from "./opencode-mcp.js";
37
+ import { listMcpServers, resolveMcpSecrets } from "../../services/mcp/registry.js";
38
+ import { buildMcpDisallowedTools } from "../../services/mcp/risk.js";
39
+ import { createLogger } from "../../logging.js";
40
+ const logger = createLogger("opencode-core");
41
+ const EMPTY_USAGE = {
42
+ inputTokens: 0,
43
+ outputTokens: 0,
44
+ cacheCreationInputTokens: 0,
45
+ cacheReadInputTokens: 0,
46
+ };
47
+ /**
48
+ * Provider/model parse for the SDK's `body.model = { providerID, modelID }`
49
+ * shape. opencode encodes the composite as `providerID/modelID` — note
50
+ * the model id itself may contain slashes (e.g. `openai/gpt-oss-20b:free`
51
+ * on OpenRouter), so we only split on the FIRST `/`.
52
+ */
53
+ export function parseModelComposite(composite) {
54
+ const slash = composite.indexOf("/");
55
+ if (slash <= 0 || slash === composite.length - 1) {
56
+ return null;
57
+ }
58
+ return {
59
+ providerID: composite.slice(0, slash),
60
+ modelID: composite.slice(slash + 1),
61
+ };
62
+ }
63
+ /** Five-minute TTL for the live-models cache. The live picker hits this
64
+ * on every dashboard load; 5 min matches the `client.config.providers()`
65
+ * poll cadence and keeps the SDK call out of the hot path. */
66
+ const LIVE_MODELS_CACHE_TTL_MS = 5 * 60 * 1000;
67
+ /**
68
+ * Heuristic tier inference for live models. opencode's catalogue has no
69
+ * native tier concept, so we mirror the daemon's registry thresholds
70
+ * (in/out per 1kTok):
71
+ * - haiku-4.5: $0.001 / $0.005 → lite
72
+ * - gpt-5.4: $0.0025 / $0.015 → medium
73
+ * - sonnet-4.6: $0.003 / $0.015 → medium
74
+ * - gpt-5.5: $0.005 / $0.03 → high (Opus-class, see registry comment)
75
+ * - opus-4.7: $0.015 / $0.075 → high
76
+ *
77
+ * A pure input-rate threshold mis-buckets gpt-5.5 (in=$0.005 sits at the
78
+ * medium boundary but its $30/MTok output is Opus-class). We therefore
79
+ * check input AND output — promote to the higher tier if either rate
80
+ * crosses its threshold.
81
+ *
82
+ * `null` input means cost is unknown (SDK omitted `cost.input`). Treat
83
+ * unknown ≠ free: default to "medium" so an undocumented model is not
84
+ * silently routed to lite-tier surfaces. Free → lite is preserved.
85
+ */
86
+ function inferModelTier(usdPer1kIn, usdPer1kOut, isFree) {
87
+ if (isFree)
88
+ return "lite";
89
+ if (usdPer1kIn === null && usdPer1kOut === null)
90
+ return "medium";
91
+ const inRate = usdPer1kIn ?? 0;
92
+ const outRate = usdPer1kOut ?? 0;
93
+ // High: Opus-class. gpt-5.5 (in $0.005, out $0.03) qualifies on out alone.
94
+ if (inRate >= 0.005 || outRate >= 0.03)
95
+ return "high";
96
+ // Medium: Sonnet-class. Sonnet (in $0.003, out $0.015) qualifies on either.
97
+ if (inRate >= 0.002 || outRate >= 0.01)
98
+ return "medium";
99
+ return "lite";
100
+ }
101
+ export class OpencodeCore {
102
+ config;
103
+ writeTracker;
104
+ serverManager;
105
+ priceFetcher;
106
+ backendId = "opencode";
107
+ liveModelsCache = null;
108
+ /** Coalesce parallel `listLiveModels()` calls onto a single SDK round-trip.
109
+ * Mirrors the inflight pattern in `ManagedOpencodeServerManager.spawn()`
110
+ * so a dashboard burst (picker open + RQ background refresh) doesn't
111
+ * multiply `client.config.providers()` calls. */
112
+ liveModelsInflight = null;
113
+ readToken;
114
+ readTokenManager;
115
+ mcpContext;
116
+ constructor(config, writeTracker, serverManager, priceFetcher = new PriceFetcher(config.dataDir)) {
117
+ this.config = config;
118
+ this.writeTracker = writeTracker;
119
+ this.serverManager = serverManager;
120
+ this.priceFetcher = priceFetcher;
121
+ }
122
+ setReadToken(token) {
123
+ this.readToken = token;
124
+ }
125
+ setReadTokenManager(manager) {
126
+ this.readTokenManager = manager;
127
+ }
128
+ setMcpContext(context) {
129
+ this.mcpContext = context;
130
+ }
131
+ /**
132
+ * Materialises a session workdir, ensures the server is running with
133
+ * the desired runtime config, opens a fresh session via the SDK, then
134
+ * runs prompt + event-stream consumption in parallel. Per-execute
135
+ * timeout cancels the inflight prompt via `client.session.abort()`.
136
+ */
137
+ async execute(params, streamCallbacks) {
138
+ return this.runTurn(params, streamCallbacks);
139
+ }
140
+ /**
141
+ * Resume a prior turn against an existing opencode session id. The
142
+ * dispatcher reaches this when `conversation_sessions.backend_session_id`
143
+ * was previously written by `execute()`. opencode persists sessions on
144
+ * disk, so the same id stays addressable across server restarts; we
145
+ * skip `session.create` and re-enter via `session.prompt({ path: { id } })`.
146
+ *
147
+ * Design: `docs/design/appendices/opencode-execute-resume.md`.
148
+ */
149
+ async executeResume(params, streamCallbacks) {
150
+ if (!params.sessionDir) {
151
+ throw new Error("sessionDir is required for executeResume — workdir holds MCP / skill files the server reads");
152
+ }
153
+ return this.runTurn({
154
+ prompt: params.message,
155
+ context: "",
156
+ // Synthetic event for log telemetry only — resume never re-renders
157
+ // a task-flow prompt (the bareMessage branch sends params.message
158
+ // verbatim through `session.prompt`).
159
+ event: {
160
+ type: "message.received",
161
+ source: "platform",
162
+ priority: 2,
163
+ timestamp: new Date(),
164
+ data: {},
165
+ correlationId: params.eventCorrelationId ?? "resume",
166
+ },
167
+ modelId: params.modelId,
168
+ maxTurns: params.maxTurns ?? 50,
169
+ maxBudgetUsd: params.maxBudgetUsd ?? 1.0,
170
+ sessionDir: params.sessionDir,
171
+ ...(params.sessionDbId !== undefined
172
+ ? { sessionDbId: params.sessionDbId }
173
+ : {}),
174
+ ...(params.turnToken ? { turnToken: params.turnToken } : {}),
175
+ ...(params.stagedAttachments && params.stagedAttachments.length > 0
176
+ ? { stagedAttachments: params.stagedAttachments }
177
+ : {}),
178
+ webSearchEnabled: params.webSearchEnabled ?? false,
179
+ resumeSessionId: params.sessionId,
180
+ }, streamCallbacks);
181
+ }
182
+ /**
183
+ * docs/design/appendices/opencode-backend.md §6.2 / §10 D5 / V11 — opencode-side
184
+ * summarisation flow.
185
+ *
186
+ * 1. Open a transient session so the server has a conversation it
187
+ * can summarise (opencode requires non-empty message history
188
+ * before `session.summarize` will produce a body).
189
+ * 2. Prompt with the conversation text under the lite-tier model
190
+ * (`DEFAULT_OPENCODE_LITE_MODEL`) — small_model isn't honoured
191
+ * here because Aitne disables `task` (V8) so opencode's own
192
+ * subagent path never picks small_model up. Cheap & quick on the
193
+ * same provider as the active turn.
194
+ * 3. Call `client.session.summarize({ path: { id }, body: { providerID, modelID } })`
195
+ * — body is FLAT, NOT nested in a `model` wrapper (V11 contract).
196
+ * Returns `{ data: true }` on HTTP 200; the actual summary lands
197
+ * as a new assistant message with `info.summary === true`.
198
+ * 4. Read `client.session.messages({ path: { id } })` and pick the
199
+ * LAST assistant message with `info.summary === true`. Join its
200
+ * text parts as the markdown summary. (Do NOT read
201
+ * `session.get(...).data.summary` — V11 fixture confirms that
202
+ * field is the diff stat block `{ additions, deletions, files }`,
203
+ * not text.)
204
+ * 5. Best-effort `session.delete()` in a `finally` so the transient
205
+ * session row doesn't accumulate on disk.
206
+ *
207
+ * Falls back to a truncated slice on any failure so a caller flowing
208
+ * through a fallback chain still gets *something* — matching the
209
+ * Codex/Gemini summarize contract (return string, never throw).
210
+ */
211
+ async summarize(text) {
212
+ const truncated = text.length > 4096 ? text.slice(0, 4096) : text;
213
+ if (!text.trim()) {
214
+ return text;
215
+ }
216
+ let client;
217
+ try {
218
+ client = await this.serverManager.client();
219
+ }
220
+ catch (err) {
221
+ logger.warn({ err }, "opencode summarize: server unavailable; returning truncated text");
222
+ return truncated;
223
+ }
224
+ const lite = DEFAULT_OPENCODE_LITE_MODEL;
225
+ const liteParts = parseModelComposite(lite);
226
+ if (!liteParts) {
227
+ // Defensive — DEFAULT_OPENCODE_LITE_MODEL ships in `provider/model`
228
+ // form; a future regression that breaks the format should not
229
+ // wedge summarisation, just degrade to the truncation fallback.
230
+ logger.warn({ lite }, "opencode summarize: lite-model id is malformed; falling back to truncation");
231
+ return truncated;
232
+ }
233
+ let sessionId = null;
234
+ try {
235
+ const created = await client.session.create({
236
+ body: { title: `aitne:summarize:${randomUUID().slice(0, 8)}` },
237
+ });
238
+ sessionId = created.data?.id ?? null;
239
+ if (!sessionId) {
240
+ return truncated;
241
+ }
242
+ // Prime the session with the text we want summarised. `noReply`
243
+ // would be ideal but opencode 1.14.50 still requires a model turn
244
+ // before `session.summarize` produces output, so let the model
245
+ // produce a short ack — its body is discarded, only the
246
+ // subsequent summary message is read.
247
+ await client.session.prompt({
248
+ path: { id: sessionId },
249
+ body: {
250
+ model: liteParts,
251
+ parts: [
252
+ {
253
+ type: "text",
254
+ text: `Acknowledge with "ok" and stop. Conversation to summarise next:\n\n${text}`,
255
+ },
256
+ ],
257
+ },
258
+ });
259
+ // V11 contract — flat body, NOT nested under `model`.
260
+ await client.session.summarize({
261
+ path: { id: sessionId },
262
+ body: {
263
+ providerID: liteParts.providerID,
264
+ modelID: liteParts.modelID,
265
+ },
266
+ });
267
+ const messagesResp = await client.session.messages({
268
+ path: { id: sessionId },
269
+ });
270
+ const messages = messagesResp.data ?? [];
271
+ const summaryMsg = [...messages]
272
+ .reverse()
273
+ .find((m) => m.info?.role === "assistant" && m.info?.summary === true);
274
+ if (!summaryMsg) {
275
+ logger.debug({ sessionId }, "opencode summarize: no assistant summary message found");
276
+ return truncated;
277
+ }
278
+ const summaryText = extractAssistantTextFromParts(summaryMsg.parts).trim();
279
+ return summaryText.length > 0 ? summaryText : truncated;
280
+ }
281
+ catch (err) {
282
+ logger.warn({ err, sessionId }, "opencode summarize: SDK call failed; returning truncated text");
283
+ return truncated;
284
+ }
285
+ finally {
286
+ if (sessionId) {
287
+ try {
288
+ await client.session.delete({ path: { id: sessionId } });
289
+ }
290
+ catch (err) {
291
+ logger.debug({ err, sessionId }, "opencode summarize: transient session.delete failed");
292
+ }
293
+ }
294
+ }
295
+ }
296
+ /**
297
+ * Lightweight auth presence check. Mirrors Codex's pattern: prefer a
298
+ * keychain-mirrored env var (`OPENCODE_SERVER_PASSWORD` for remote);
299
+ * for the managed loopback server, the daemon owns the credentials so
300
+ * "configured" is sufficient. The deeper "is the provider key
301
+ * accepted?" check is exercised by `checkAuthDetailed`.
302
+ */
303
+ async checkAuth() {
304
+ try {
305
+ const client = await this.serverManager.client();
306
+ const providersResult = await client.config.providers();
307
+ if (!providersResult.data) {
308
+ return { ok: false, reason: "opencode server did not return providers" };
309
+ }
310
+ const providerCount = providersResult.data.providers.length;
311
+ if (providerCount === 0) {
312
+ return {
313
+ ok: false,
314
+ reason: "No providers configured on the opencode server. Run `opencode auth login` to add one.",
315
+ };
316
+ }
317
+ // Managed loopback ⇒ the daemon owns the server; an external API key
318
+ // is configured on the opencode side, so we surface that as `api_key`.
319
+ return { ok: true, method: "api_key" };
320
+ }
321
+ catch (err) {
322
+ return {
323
+ ok: false,
324
+ reason: err instanceof Error ? err.message : "opencode auth probe failed",
325
+ };
326
+ }
327
+ }
328
+ async checkAuthDetailed() {
329
+ const inner = await this.checkAuth();
330
+ if (inner.ok) {
331
+ return { ok: true, status: "ok", method: inner.method };
332
+ }
333
+ return {
334
+ ok: false,
335
+ status: "expired",
336
+ method: defaultApiKeyProvider(this.backendId) === "opencode-server"
337
+ ? "api_key"
338
+ : "cli_login",
339
+ detail: inner.reason,
340
+ recoveryCommand: "opencode auth login",
341
+ };
342
+ }
343
+ /**
344
+ * Phase 5 §4.11 — opencode does NOT expose namespaced `mcp__*` tool
345
+ * names through `client.tool.ids()` in 1.14.50 (V7 fixture confirms).
346
+ * Live probe is therefore unsupported on this backend in v1; the
347
+ * route surfaces this as a 501 with a targeted message. Phase 5+ may
348
+ * unlock once `mcp.status()`/`tool.list()` surfaces MCP tools.
349
+ */
350
+ async probeTools() {
351
+ throw new LiveProbeUnsupportedError(this.backendId, "opencode 1.14.50 does not surface MCP tool ids via tool.ids()");
352
+ }
353
+ /**
354
+ * Static-registry first; Phase 6 (§6.6.2 wizard probe) extends this
355
+ * via `serverManager.listModels()` once the live-server enumeration
356
+ * lands. Today the registry seed is sufficient for `BackendRouter`
357
+ * bindings.
358
+ */
359
+ listModels() {
360
+ return getModelsForBackend(this.backendId);
361
+ }
362
+ /**
363
+ * Live model enumeration over `client.config.providers()`. Returns the
364
+ * full catalogue an operator can pick from — every provider the live
365
+ * opencode server has credentials for, with capability + cost metadata.
366
+ * Cached in-memory for 5 minutes so the picker doesn't re-bounce the
367
+ * server on every keystroke.
368
+ *
369
+ * Security: the raw `client.config.providers()` response includes
370
+ * `provider.key` (plaintext API key). This method NEVER returns that
371
+ * field — the caller surfaces what's projected here, not the raw SDK
372
+ * response.
373
+ */
374
+ async listLiveModels(options = {}) {
375
+ const now = Date.now();
376
+ const cached = this.liveModelsCache;
377
+ if (!options.forceRefresh
378
+ && cached
379
+ && now - cached.fetchedAtMs < LIVE_MODELS_CACHE_TTL_MS) {
380
+ return { ...cached.payload, cached: true };
381
+ }
382
+ // Coalesce: if a fetch is already in flight, share its result. This
383
+ // applies to refresh=true as well — getting the freshest in-flight
384
+ // result is strictly better than spawning a redundant SDK call.
385
+ if (this.liveModelsInflight) {
386
+ return this.liveModelsInflight;
387
+ }
388
+ this.liveModelsInflight = this.fetchLiveModels(now);
389
+ try {
390
+ return await this.liveModelsInflight;
391
+ }
392
+ finally {
393
+ this.liveModelsInflight = null;
394
+ }
395
+ }
396
+ async fetchLiveModels(requestedAtMs) {
397
+ const client = await this.serverManager.client();
398
+ const res = await client.config.providers();
399
+ const providers = res.data?.providers ?? [];
400
+ const projected = providers.map((p) => ({
401
+ id: p.id,
402
+ name: p.name,
403
+ source: p.source ?? "unknown",
404
+ models: Object.entries(p.models ?? {})
405
+ .filter(([, m]) => m.status !== "deprecated")
406
+ .map(([mid, mRaw]) => {
407
+ const m = mRaw;
408
+ const usdPer1kIn = typeof m.cost?.input === "number" ? m.cost.input / 1000 : null;
409
+ const usdPer1kOut = typeof m.cost?.output === "number" ? m.cost.output / 1000 : null;
410
+ const isFree = (m.cost?.input ?? 0) === 0 && (m.cost?.output ?? 0) === 0;
411
+ return {
412
+ modelId: `${p.id}/${mid}`,
413
+ shortId: mid,
414
+ name: m.name ?? mid,
415
+ family: m.family ?? "",
416
+ tier: inferModelTier(usdPer1kIn, usdPer1kOut, isFree),
417
+ supportsToolUse: m.capabilities?.toolcall === true,
418
+ supportsAttachment: m.capabilities?.attachment === true,
419
+ supportsReasoning: m.capabilities?.reasoning === true,
420
+ maxInputTokens: m.limit?.context ?? null,
421
+ maxOutputTokens: m.limit?.output ?? null,
422
+ usdPer1kIn,
423
+ usdPer1kOut,
424
+ isFree,
425
+ status: m.status ?? "active",
426
+ };
427
+ })
428
+ .sort((a, b) => a.shortId.localeCompare(b.shortId)),
429
+ }));
430
+ const payload = {
431
+ providers: projected,
432
+ fetchedAt: new Date(requestedAtMs).toISOString(),
433
+ cached: false,
434
+ };
435
+ this.liveModelsCache = { fetchedAtMs: requestedAtMs, payload };
436
+ return payload;
437
+ }
438
+ async runDelegatedTool(_params) {
439
+ throw new DelegatedToolUnsupportedError(this.backendId, "use runDelegatedTask (Phase 4)");
440
+ }
441
+ async runDelegatedTask(params) {
442
+ if (this.serverManager.mode === "remote") {
443
+ // docs/design/appendices/opencode-backend.md §5.9 — Remote mode cannot host
444
+ // tight-permission ephemeral servers and the daemon does not own
445
+ // the agent-file write seat. Surface the canonical sentinel so the
446
+ // delegated-task invoker treats this as 501 / `task_mode_unsupported`
447
+ // and the BackendRouter falls back to a Managed backend.
448
+ throw new TaskModeUnsupportedError(this.backendId);
449
+ }
450
+ return this.runDelegatedTaskAgainstEphemeral(params);
451
+ }
452
+ // ── private ──
453
+ async runTurn(params, streamCallbacks) {
454
+ this.assertPromptWithinMaxBudget(params.prompt, params.maxBudgetUsd, params.modelId);
455
+ const resumeSessionId = params.resumeSessionId;
456
+ const isResume = resumeSessionId !== undefined;
457
+ if (isResume && !params.sessionDir) {
458
+ // executeResume already gates this, but be defensive — runTurn is
459
+ // private and may grow new callers.
460
+ throw new Error("runTurn(resumeSessionId): sessionDir is required when resuming");
461
+ }
462
+ const startMs = Date.now();
463
+ const sessionDir = params.sessionDir ?? createSessionWorkdir(this.config.workspaceDir, params.event.type, resolveUserSkillsRoot(this.config), {
464
+ backendId: this.backendId,
465
+ ...(params.processKey ? { processKey: params.processKey } : {}),
466
+ character: this.config.character,
467
+ contextDir: getContextDir(this.config),
468
+ // docs/design/appendices/skills-unification.md Phase 4 — feed the conditional
469
+ // manifest predicates. `db` comes through `setMcpContext`; the
470
+ // inbound DM text (when present) lets the *ForDm trigger-phrase
471
+ // fallback drop `gmail-lifestyle` / `managed-tasks` for DMs that
472
+ // have no DB rows AND no trigger phrase.
473
+ ...(this.mcpContext?.db ? { db: this.mcpContext.db } : {}),
474
+ ...(isMessageEvent(params.event) ? { messageText: params.event.content } : {}),
475
+ // AGENT_DEFINITIONS_DESIGN.md §4.2 — see ClaudeCodeCore. No-op for
476
+ // non-Agent executes (`OpencodeTurnParams` extends AgentExecuteParams).
477
+ ...(params.extraSkills && params.extraSkills.length > 0
478
+ ? { extraSkills: params.extraSkills }
479
+ : {}),
480
+ ...(params.skillsReplace ? { skillsReplace: true } : {}),
481
+ });
482
+ const ownsSessionDir = !params.sessionDir;
483
+ // NOTE: opencode SDK runs the server in-process (createOpencode does
484
+ // not spawn a subprocess and exposes no per-tool env hook), so the
485
+ // issued token is not yet injected into bash-tool invocations the way
486
+ // Claude / Codex / Gemini do via `buildDaemonApiCliEnv`. The
487
+ // issue/revoke pair stays correct because event-pipeline.ts wires
488
+ // `setReadTokenManager` on all four cores — when an env-injection
489
+ // path lands here, replace this comment with the wiring rather than
490
+ // re-introducing the silent-undefined gap.
491
+ const issuedReadToken = this.readTokenManager?.issue(sessionDir) ?? this.readToken;
492
+ try {
493
+ const { config: runtimeConfig, warnings: configWarnings } = await this.buildRuntimeConfig(params);
494
+ if (configWarnings.length > 0) {
495
+ // Surface translator + MCP-renderer notices so a same-envelope
496
+ // bounce that drops Edit patterns or rejects MCP server names
497
+ // shows up in operator logs, not just buried in the dashboard
498
+ // tile (which materialises later via /health).
499
+ logger.info({ warnings: configWarnings, eventType: params.event.type }, "opencode runtime config emitted with translator warnings");
500
+ }
501
+ await this.serverManager.ensureConfig(runtimeConfig);
502
+ const client = await this.serverManager.client();
503
+ // Pre-flight: a missing provider key is the most common boot-time
504
+ // failure and surfaces as `session.error` mid-stream. Catch it here
505
+ // so the router fails over to a fallback backend rather than
506
+ // streaming a half-complete response.
507
+ const auth = await this.checkAuth();
508
+ if (!auth.ok) {
509
+ throw new BackendDecisiveFailure(this.backendId, "auth", new Error(auth.reason));
510
+ }
511
+ const modelParts = parseModelComposite(params.modelId);
512
+ if (!modelParts) {
513
+ throw new BackendDecisiveFailure(this.backendId, "model_unavailable", new Error(`opencode model id must be in 'provider/model' form, got '${params.modelId}'`));
514
+ }
515
+ // Session lifecycle — opencode keeps sessions on disk; we delete
516
+ // when we own the workdir (transient sessions). `title` is best-
517
+ // effort metadata only. On resume we re-enter an existing session
518
+ // id; `session.create` is skipped entirely.
519
+ let sessionId;
520
+ if (isResume) {
521
+ sessionId = resumeSessionId;
522
+ }
523
+ else {
524
+ const sessionTitle = `aitne:${params.event.type}:${randomUUID().slice(0, 8)}`;
525
+ const created = await client.session.create({
526
+ body: { title: sessionTitle },
527
+ });
528
+ const createdId = created.data?.id ?? null;
529
+ if (!createdId) {
530
+ throw new BackendDecisiveFailure(this.backendId, "other_non_retryable", new Error("opencode session.create returned no id"));
531
+ }
532
+ sessionId = createdId;
533
+ }
534
+ // Resume cost-delta — snapshot the session's cumulative cost +
535
+ // tokens before sending the new prompt. After the turn completes
536
+ // the post-turn `session.get()` aggregate is subtracted from this
537
+ // baseline so `AgentResult.costUsd` reflects this turn's
538
+ // contribution rather than the whole-session total. For first
539
+ // execute these stay zero and the math collapses.
540
+ let preTurnCost = 0;
541
+ let preTurnUsage = { ...EMPTY_USAGE };
542
+ if (isResume) {
543
+ try {
544
+ const preInfo = await client.session.get({ path: { id: sessionId } });
545
+ const preAgg = preInfo.data;
546
+ if (typeof preAgg?.cost === "number") {
547
+ preTurnCost = preAgg.cost;
548
+ }
549
+ if (preAgg?.tokens) {
550
+ preTurnUsage = {
551
+ inputTokens: preAgg.tokens.input ?? 0,
552
+ outputTokens: preAgg.tokens.output ?? 0,
553
+ cacheCreationInputTokens: preAgg.tokens.cache?.write ?? 0,
554
+ cacheReadInputTokens: preAgg.tokens.cache?.read ?? 0,
555
+ };
556
+ }
557
+ }
558
+ catch (err) {
559
+ // 404 / stale session — let session.prompt below surface the
560
+ // real failure with a clean classification. Pre-snapshot
561
+ // failure is a best-effort cost-attribution miss only.
562
+ logger.debug({ err, sessionId }, "opencode resume: pre-turn session.get failed; cost may include prior turns");
563
+ }
564
+ }
565
+ // AbortController owns both the event stream and the prompt call
566
+ // so per-execute timeout collapses them together.
567
+ const abortController = new AbortController();
568
+ const timeoutMs = this.config.executeTimeoutMinutes * 60 * 1000;
569
+ const timeoutId = setTimeout(async () => {
570
+ abortController.abort(new Error("opencode execute wall-clock timeout"));
571
+ try {
572
+ await client.session.abort({ path: { id: sessionId } });
573
+ }
574
+ catch (err) {
575
+ logger.warn({ err, sessionId }, "opencode session abort failed");
576
+ }
577
+ }, timeoutMs);
578
+ // §5.1 ordering invariant — `event.subscribe()` MUST complete before
579
+ // `session.prompt()` is sent, otherwise early `message.part.delta`
580
+ // events are emitted into a not-yet-bound stream and lost. Awaiting
581
+ // the subscription here (rather than letting `consumeEventStream`
582
+ // do it concurrently with the prompt below) collapses the race.
583
+ let subscription;
584
+ try {
585
+ subscription = await client.event.subscribe({
586
+ signal: abortController.signal,
587
+ });
588
+ }
589
+ catch (err) {
590
+ clearTimeout(timeoutId);
591
+ throw new BackendDecisiveFailure(this.backendId, "other_non_retryable", err instanceof Error
592
+ ? err
593
+ : new Error("opencode event.subscribe failed"));
594
+ }
595
+ let streamedAnyText = false;
596
+ const eventConsumer = this.consumeEventStream({
597
+ stream: subscription.stream,
598
+ sessionId,
599
+ signal: abortController.signal,
600
+ onText: (text) => {
601
+ streamedAnyText = true;
602
+ streamCallbacks?.onText?.(text);
603
+ },
604
+ });
605
+ // Resume sends the user's reply verbatim — the system prompt and
606
+ // conversation history are already inside the opencode server
607
+ // session, so wrapping with `buildExecutionPrompt` would re-emit
608
+ // the task-flow framing and confuse the model.
609
+ const renderedPrompt = isResume
610
+ ? params.prompt
611
+ : buildExecutionPrompt(params.prompt, params.context, params.event, params.conversationHistory);
612
+ // docs/design/appendices/opencode-backend.md §4 / Phase 4 — `routine.hourly_check.triage`
613
+ // returns a strict JSON envelope (`{ "action": "log_only" |
614
+ // "escalate", … }`) parsed by `parseStage2Verdict`. opencode's
615
+ // `format: { type: "json_schema", … }` honours the schema with
616
+ // built-in retryCount=2, and the parsed object lands at
617
+ // `info.structured` (V4 contract — NOT in text parts). We
618
+ // stringify it back to text so the dispatcher's existing parser
619
+ // (text-based across all backends) keeps working.
620
+ const structuredFormat = formatForProcessKey(params.processKey);
621
+ try {
622
+ let promptResult;
623
+ try {
624
+ // Cast through OpencodeAugmentedPromptBody — the SDK's body
625
+ // type omits `format` even though opencode 1.14.50 honours it
626
+ // at runtime (V4). Without the cast TypeScript rejects the
627
+ // optional field.
628
+ const promptBody = {
629
+ model: modelParts,
630
+ parts: [{ type: "text", text: renderedPrompt }],
631
+ ...(structuredFormat ? { format: structuredFormat } : {}),
632
+ };
633
+ promptResult = await client.session.prompt({
634
+ path: { id: sessionId },
635
+ body: promptBody,
636
+ });
637
+ }
638
+ catch (promptErr) {
639
+ // Fast-fail (network error, transport-level failure): without
640
+ // this branch the consumer would await `session.idle` for the
641
+ // full `executeTimeoutMinutes` because the server never started
642
+ // the turn. Abort the subscribe stream so the for-await loop
643
+ // exits and the consumer's promise resolves; THEN drain so any
644
+ // already-buffered tool calls are still observed before we
645
+ // re-throw.
646
+ abortController.abort(promptErr instanceof Error
647
+ ? promptErr
648
+ : new Error("opencode session.prompt failed"));
649
+ await eventConsumer.catch(() => undefined);
650
+ throw promptErr;
651
+ }
652
+ // The stream usually terminates on `session.idle` before the
653
+ // prompt resolves, but in race orderings the prompt response can
654
+ // arrive first. Wait for the stream to drain so we observe every
655
+ // tool call.
656
+ const collected = await eventConsumer;
657
+ clearTimeout(timeoutId);
658
+ // Distinguish a clean abort from a server-side error or successful
659
+ // turn. opencode signals abort via `info.error.name`, not a
660
+ // dedicated event.
661
+ const assistantMessage = promptResult.data?.info;
662
+ if (assistantMessage?.error?.name === "MessageAbortedError"
663
+ || isMessageAborted(collected.terminalEvent)) {
664
+ throw new BackendDecisiveFailure(this.backendId, "timeout", new Error("opencode session aborted (likely wall-clock timeout)"));
665
+ }
666
+ if (assistantMessage?.error) {
667
+ throw classifyAssistantError(assistantMessage.error, this.backendId);
668
+ }
669
+ if (collected.terminalEvent?.kind === "session_error") {
670
+ throw classifyStreamError(collected.terminalEvent.error, this.backendId);
671
+ }
672
+ const partsForExtraction = promptResult.data?.parts ?? [];
673
+ // V4 — when `format.type === "json_schema"` was sent, the
674
+ // validated parsed object lives at `info.structured`, NOT in
675
+ // the text parts (which are empty in that mode). Stringify it
676
+ // back to JSON so the dispatcher's existing text-based parser
677
+ // (`parseStage2Verdict`) sees a clean envelope. A missing or
678
+ // null `structured` after a json_schema request is a terminal
679
+ // failure — opencode tried `retryCount=2` server-side and
680
+ // still couldn't satisfy the schema, so escalating to the
681
+ // model again from our side would just burn budget.
682
+ let structuredText = null;
683
+ if (structuredFormat) {
684
+ const structured = assistantMessage?.structured;
685
+ if (structured == null) {
686
+ throw new BackendDecisiveFailure(this.backendId, "other_non_retryable", new Error("opencode json_schema turn returned no structured payload (info.structured was null)"));
687
+ }
688
+ structuredText = JSON.stringify(structured);
689
+ }
690
+ const finalText = structuredText
691
+ ?? (extractAssistantTextFromParts(partsForExtraction).trim()
692
+ || collected.streamedText.trim());
693
+ // Tool-call audit — Phase 3 wires AgentWriteTracker via the tool
694
+ // extraction path. Phase 2 surfaces the structured list so the
695
+ // dispatcher can decide whether the agent touched files.
696
+ const tools = extractToolUsesFromParts(partsForExtraction);
697
+ recordAgentWritesFromTools(tools, this.writeTracker);
698
+ // EXECUTION-MODE-DESIGN.md §6.3 / OPENCODE_BACKEND_DESIGN §5.8
699
+ // synthetic absolute-block audit. opencode has no PreToolUse hook;
700
+ // each tool call surfaced in the final response is run through the
701
+ // classifier so an `agent_actions.blocked_absolute` row is written
702
+ // with `result='partial'` on a hit. The underlying enforcement
703
+ // happens server-side via the permission JSON — this row is
704
+ // observability only.
705
+ auditOpencodeTools(tools, {
706
+ db: this.mcpContext?.db,
707
+ mode: this.config.opencodeExecutionPermissionMode,
708
+ sessionId: params.sessionDbId ?? null,
709
+ });
710
+ // Cost / token aggregation — V11: `client.session.get()` exposes
711
+ // session-level aggregates that avoid summing per-message rows.
712
+ // Default tag is "sdk" because the primary path is the SDK's
713
+ // typed `info.cost`. Free-tier reconciliation below may override
714
+ // to "litellm" or "hardcoded" depending on the registry source.
715
+ let costSourceTag = "sdk";
716
+ let costUsd = assistantMessage?.cost ?? 0;
717
+ let usage = assistantMessage
718
+ ? assistantMessageToUsage(assistantMessage)
719
+ : { ...EMPTY_USAGE };
720
+ try {
721
+ const sessionInfo = await client.session.get({
722
+ path: { id: sessionId },
723
+ });
724
+ const sessAgg = sessionInfo.data;
725
+ if (sessAgg?.tokens) {
726
+ // Subtract the pre-turn snapshot so resume usage reflects
727
+ // this turn only. Clamp to zero in case opencode reports a
728
+ // non-monotonic counter — never charge negative tokens.
729
+ usage = {
730
+ inputTokens: Math.max(0, (sessAgg.tokens.input ?? 0) - preTurnUsage.inputTokens),
731
+ outputTokens: Math.max(0, (sessAgg.tokens.output ?? 0) - preTurnUsage.outputTokens),
732
+ cacheCreationInputTokens: Math.max(0, (sessAgg.tokens.cache?.write ?? 0)
733
+ - preTurnUsage.cacheCreationInputTokens),
734
+ cacheReadInputTokens: Math.max(0, (sessAgg.tokens.cache?.read ?? 0)
735
+ - preTurnUsage.cacheReadInputTokens),
736
+ };
737
+ }
738
+ if (typeof sessAgg?.cost === "number") {
739
+ costUsd = Math.max(0, sessAgg.cost - preTurnCost);
740
+ }
741
+ }
742
+ catch (err) {
743
+ logger.debug({ err, sessionId }, "opencode session.get failed; falling back to assistant-message tokens");
744
+ }
745
+ // Free-tier reconciliation (§5.7 layer 2): when opencode reports
746
+ // cost=0 but tokens flowed, fall back to registry pricing so the
747
+ // dashboard sees a non-zero cost figure for budgeting.
748
+ if (costUsd === 0
749
+ && usage.inputTokens + usage.outputTokens > 0) {
750
+ const estimate = this.priceFetcher.estimateUsageCost({
751
+ backendId: this.backendId,
752
+ modelId: params.modelId,
753
+ usage,
754
+ fallbackModel: findRegisteredModel(this.backendId, params.modelId),
755
+ });
756
+ costUsd = estimate.costUsd;
757
+ // Preserve `litellm` vs `hardcoded` provenance verbatim — see
758
+ // CodexCore's same pattern (`codex-core.ts:761`). Earlier rev
759
+ // collapsed `litellm` into `sdk`, hiding which estimates came
760
+ // from the LiteLLM cache vs the registry fallback.
761
+ costSourceTag = estimate.costSource;
762
+ }
763
+ this.assertWithinMaxBudget(costUsd, params.maxBudgetUsd, params.modelId);
764
+ if (finalText && !streamedAnyText) {
765
+ streamCallbacks?.onText?.(finalText);
766
+ }
767
+ const durationMs = Date.now() - startMs;
768
+ const stopReason = assistantMessage?.finish ?? null;
769
+ // Best-effort cleanup of the on-disk opencode session row when we
770
+ // own the workdir — keeps disk usage bounded under hourly_check.
771
+ // On resume we must never delete: the dispatcher's next turn
772
+ // needs the same session id to resolve to a live server-side
773
+ // history. (`ownsSessionDir` is already false when sessionDir is
774
+ // provided, but the explicit isResume guard is defense-in-depth
775
+ // against a future caller passing a transient workdir on resume.)
776
+ if (ownsSessionDir && !isResume) {
777
+ try {
778
+ await client.session.delete({ path: { id: sessionId } });
779
+ }
780
+ catch (err) {
781
+ logger.debug({ err, sessionId }, "opencode session.delete failed");
782
+ }
783
+ }
784
+ logger.info({
785
+ eventType: params.event.type,
786
+ model: params.modelId,
787
+ durationMs,
788
+ costUsd,
789
+ sessionId,
790
+ }, "opencode execute completed");
791
+ const actualModelId = assistantMessage?.providerID && assistantMessage?.modelID
792
+ ? `${assistantMessage.providerID}/${assistantMessage.modelID}`
793
+ : params.modelId;
794
+ return {
795
+ output: finalText,
796
+ sessionId,
797
+ backendId: this.backendId,
798
+ modelId: actualModelId,
799
+ costSource: costSourceTag,
800
+ costUsd,
801
+ usage,
802
+ modelUsage: usage.inputTokens || usage.outputTokens
803
+ ? {
804
+ [actualModelId]: {
805
+ inputTokens: usage.inputTokens,
806
+ outputTokens: usage.outputTokens,
807
+ costUsd,
808
+ },
809
+ }
810
+ : {},
811
+ numTurns: 1,
812
+ durationMs,
813
+ durationApiMs: durationMs,
814
+ model: actualModelId,
815
+ isError: false,
816
+ stopReason,
817
+ contextUpdated: false,
818
+ };
819
+ }
820
+ finally {
821
+ clearTimeout(timeoutId);
822
+ }
823
+ }
824
+ finally {
825
+ streamCallbacks?.onEnd?.();
826
+ if (ownsSessionDir) {
827
+ if (issuedReadToken) {
828
+ this.readTokenManager?.revoke(sessionDir);
829
+ }
830
+ cleanupSessionWorkdir(sessionDir);
831
+ }
832
+ }
833
+ }
834
+ /**
835
+ * docs/design/appendices/opencode-backend.md §5.9 / Phase 4 — opencode delegated-task
836
+ * execution.
837
+ *
838
+ * Implementation choice (v1): spawn an isolated ephemeral server
839
+ * with tight permission JSON for each delegated call. The design's
840
+ * preferred default is Path B (long-lived primary + per-agent
841
+ * permission frontmatter written mid-session), but Phase 0's V5
842
+ * fixture left the agent-file hot-reload behaviour an open question
843
+ * (§5.9 "Open item" — agent file was pre-created in V5). spawnEphemeral
844
+ * sidesteps the hot-reload concern entirely with a deterministic
845
+ * ~900 ms p50 spawn cost (V6 measurement); volume on delegated paths
846
+ * is low enough that the cost-isolation trade-off favours
847
+ * predictability. The router's `params.isolation === "ephemeral"`
848
+ * intent is the same as our default here, so callers that explicitly
849
+ * request ephemeral isolation get exactly what they asked for.
850
+ *
851
+ * Path B (long-lived primary + per-agent file reuse) can land
852
+ * incrementally once V5's open question is resolved against a real
853
+ * opencode server — see §5.9 Phase 3-blocked checklist row.
854
+ *
855
+ * Per-call envelope:
856
+ * - Tight `permission` JSON: every triple-keyed write tool
857
+ * (`edit`, `bash`, `webfetch`, `doom_loop`, `external_directory`)
858
+ * defaults to `deny`. The absolute-block layer's bash
859
+ * pattern-map merges on top so destructive shapes stay denied.
860
+ * - `tools.task: false` (V8 — kill subagent spawning) plus
861
+ * `tools.read: false` and `tools.write: false` for the
862
+ * non-MCP read/write tools (no permission triple exists for
863
+ * `read`; hard-disable is the only opencode 1.14.50 surface).
864
+ * - MCP map carries only the integration's connectors per
865
+ * `setMcpContext`; per-tool MCP deny is server-level only in v1
866
+ * (§5.6 v1 strategy) — disallowed connectors are simply not
867
+ * materialised.
868
+ * - `model` set to `params.modelId`.
869
+ *
870
+ * Stream pre-emption: opencode 1.14.50 does NOT emit
871
+ * `message.part.updated` events during a turn (V9 — see §5.3), so
872
+ * tool-call data is only available from the FINAL `session.prompt`
873
+ * response. The pre-emption check therefore happens AFTER the turn
874
+ * completes — `policy_violation` / `loop_aborted` classifications
875
+ * still surface, but the subprocess has already executed any
876
+ * out-of-envelope MCP call by the time we see it. Mitigation:
877
+ * 1. Server-level permission denies non-MCP write tools at
878
+ * enforcement time (the model receives a tool error and stops).
879
+ * 2. The MCP map only carries the integration's allowed
880
+ * connectors, so non-allowed MCP tools are unreachable.
881
+ * 3. The post-turn pre-emption check is the audit layer — it
882
+ * classifies whether the turn violated policy for telemetry.
883
+ * If opencode begins emitting streamed tool-call events, this method
884
+ * migrates to the live pre-emption pattern Codex uses; the post-
885
+ * extraction check stays as the back-stop.
886
+ */
887
+ async runDelegatedTaskAgainstEphemeral(params) {
888
+ const startMs = Date.now();
889
+ const trace = [];
890
+ let writeClassToolFired = false;
891
+ const modelParts = parseModelComposite(params.modelId);
892
+ if (!modelParts) {
893
+ return {
894
+ ok: false,
895
+ errorClass: "subprocess_crashed",
896
+ message: `opencode model id must be in 'provider/model' form, got '${params.modelId}'`,
897
+ cost: withDurationMs(emptyCost(), startMs),
898
+ trace,
899
+ writeClassToolFired,
900
+ };
901
+ }
902
+ // Pre-flight auth gate — same chokepoint runTurn uses; spares us a
903
+ // server spawn on the obvious-401 path.
904
+ const auth = await this.checkAuth();
905
+ if (!auth.ok) {
906
+ return {
907
+ ok: false,
908
+ errorClass: "auth_error",
909
+ message: auth.reason,
910
+ cost: withDurationMs(emptyCost(), startMs),
911
+ trace,
912
+ writeClassToolFired,
913
+ };
914
+ }
915
+ // Build the tight runtime config envelope. Reuses the regular
916
+ // builder so absolute-block + per-session disallowed merges land
917
+ // identically; the per-task tightening goes on top via
918
+ // `extraHardDisable` (`read`/`write` off) and a tightened
919
+ // permission override (every triple key denied).
920
+ const mcpRender = await this.materializeMcp(undefined);
921
+ const built = buildOpencodeRuntimeConfig({
922
+ modelId: params.modelId,
923
+ executionMode: "strict",
924
+ disallowedTools: this.config.disallowedTools ?? [],
925
+ allowedToolsOverride: null,
926
+ mcpDisallowed: mcpRender.mcpDisallowed,
927
+ mcp: mcpRender.mcp,
928
+ defensiveInstructions: defensiveInstructionsFromEnv(),
929
+ extraHardDisable: { read: false, write: false },
930
+ });
931
+ const tightConfig = {
932
+ ...built.config,
933
+ permission: {
934
+ // Triple-keyed denies — the bash pattern-map from absolute-block
935
+ // already merged into built.config.permission.bash, so taking
936
+ // its value here preserves the wildcards. The other four flip
937
+ // to wholesale "deny" because no per-task narrowing applies.
938
+ ...(built.config.permission ?? {}),
939
+ edit: "deny",
940
+ webfetch: "deny",
941
+ doom_loop: "deny",
942
+ external_directory: "deny",
943
+ },
944
+ };
945
+ let handle = null;
946
+ try {
947
+ handle = await this.serverManager.spawnEphemeral(tightConfig);
948
+ }
949
+ catch (err) {
950
+ return {
951
+ ok: false,
952
+ errorClass: "subprocess_crashed",
953
+ message: err instanceof Error
954
+ ? `opencode ephemeral server spawn failed: ${err.message}`
955
+ : "opencode ephemeral server spawn failed",
956
+ cost: withDurationMs(emptyCost(), startMs),
957
+ trace,
958
+ writeClassToolFired,
959
+ };
960
+ }
961
+ const aborter = new AbortController();
962
+ const callerListener = () => {
963
+ aborter.abort(params.abortSignal?.reason);
964
+ };
965
+ if (params.abortSignal) {
966
+ if (params.abortSignal.aborted) {
967
+ aborter.abort(params.abortSignal.reason);
968
+ }
969
+ else {
970
+ params.abortSignal.addEventListener("abort", callerListener, {
971
+ once: true,
972
+ });
973
+ }
974
+ }
975
+ const localTimeout = setTimeout(() => aborter.abort(new Error("opencode delegated task local timeout")), params.timeoutMs + 60_000);
976
+ let sessionId = null;
977
+ try {
978
+ const created = await handle.client.session.create({
979
+ body: {
980
+ title: `aitne:delegated:${randomUUID().slice(0, 8)}`,
981
+ },
982
+ });
983
+ sessionId = created.data?.id ?? null;
984
+ if (!sessionId) {
985
+ return {
986
+ ok: false,
987
+ errorClass: "subprocess_crashed",
988
+ message: "opencode session.create returned no id",
989
+ cost: withDurationMs(emptyCost(), startMs),
990
+ trace,
991
+ writeClassToolFired,
992
+ };
993
+ }
994
+ const promptResult = await handle.client.session.prompt({
995
+ path: { id: sessionId },
996
+ body: {
997
+ model: modelParts,
998
+ parts: [{ type: "text", text: params.systemPrompt }],
999
+ },
1000
+ });
1001
+ if (aborter.signal.aborted) {
1002
+ const errorClass = classifyAbortReason(params.abortSignal?.reason ?? aborter.signal.reason);
1003
+ return {
1004
+ ok: false,
1005
+ errorClass,
1006
+ message: errorClass === "timeout"
1007
+ ? "opencode delegated task timed out (wall-clock)"
1008
+ : "opencode delegated task cancelled",
1009
+ cost: withDurationMs(emptyCost(), startMs),
1010
+ trace,
1011
+ writeClassToolFired,
1012
+ };
1013
+ }
1014
+ const assistantMessage = promptResult.data?.info;
1015
+ if (assistantMessage?.error?.name === "MessageAbortedError") {
1016
+ return {
1017
+ ok: false,
1018
+ errorClass: "timeout",
1019
+ message: "opencode delegated session aborted",
1020
+ cost: withDurationMs(emptyCost(), startMs),
1021
+ trace,
1022
+ writeClassToolFired,
1023
+ };
1024
+ }
1025
+ if (assistantMessage?.error) {
1026
+ return {
1027
+ ok: false,
1028
+ errorClass: "tool_failed",
1029
+ message: `opencode assistant error: ${assistantMessage.error.name}`,
1030
+ cost: withDurationMs(emptyCost(), startMs),
1031
+ trace,
1032
+ writeClassToolFired,
1033
+ };
1034
+ }
1035
+ const partsRaw = promptResult.data?.parts ?? [];
1036
+ const finalText = extractAssistantTextFromParts(partsRaw).trim();
1037
+ const toolUses = extractToolUsesFromParts(partsRaw);
1038
+ // Post-extraction policy gate. opencode 1.14.50 cannot stream
1039
+ // tool calls (V9 — see method-level comment), so the check is
1040
+ // best-effort audit + classification, not real-time pre-emption.
1041
+ let policyViolationTool = null;
1042
+ let toolCallCount = 0;
1043
+ const isAllowedTool = (name) => params.allowedTools.some((pattern) => matchRunAllowedToolPattern(pattern, name));
1044
+ const destructiveSet = params.allowDestructive
1045
+ ? new Set()
1046
+ : new Set(params.destructiveTools);
1047
+ const writeClassMatcher = (name) => params.writeClassTools.some((pattern) => matchRunAllowedToolPattern(pattern, name));
1048
+ for (const tool of toolUses) {
1049
+ if (tool.status === "pending" || tool.status === "running")
1050
+ continue;
1051
+ toolCallCount += 1;
1052
+ // opencode 1.14.50 surfaces opencode-built-in tool names without
1053
+ // the `mcp__server__` prefix (the SDK v1 limitation §5.6 v2 will
1054
+ // address). For the allowedTools/destructive comparison we
1055
+ // inspect the verbatim name first, falling back to a synthesised
1056
+ // prefix when the integration key is known. Either way the audit
1057
+ // remains accurate for the same-name match.
1058
+ const fullName = tool.toolName;
1059
+ if (!isAllowedTool(fullName) || destructiveSet.has(fullName)) {
1060
+ policyViolationTool = fullName;
1061
+ }
1062
+ if (writeClassMatcher(fullName)) {
1063
+ writeClassToolFired = true;
1064
+ }
1065
+ const step = {
1066
+ toolName: fullName,
1067
+ toolArgs: tool.input,
1068
+ durationMs: tool.durationMs ?? 0,
1069
+ status: tool.status === "completed" ? "ok" : "error",
1070
+ costUsd: null,
1071
+ tokensInput: null,
1072
+ tokensOutput: null,
1073
+ };
1074
+ if (tool.output !== undefined) {
1075
+ try {
1076
+ step.toolResult = JSON.parse(tool.output);
1077
+ }
1078
+ catch {
1079
+ step.toolResult = tool.output;
1080
+ }
1081
+ }
1082
+ trace.push(step);
1083
+ params.onToolStep?.(step);
1084
+ }
1085
+ // Synthetic absolute-block audit on tool calls — same chokepoint
1086
+ // runTurn uses for execute() (§5.8). Records `blocked_absolute`
1087
+ // rows when a tool target matches the absolute-block layer; the
1088
+ // permission JSON denied the call server-side, this row is
1089
+ // observability only.
1090
+ auditOpencodeTools(toolUses, {
1091
+ db: this.mcpContext?.db,
1092
+ mode: "strict",
1093
+ sessionId: null,
1094
+ });
1095
+ const usage = assistantMessage
1096
+ ? {
1097
+ inputTokens: assistantMessage.tokens?.input ?? 0,
1098
+ outputTokens: assistantMessage.tokens?.output ?? 0,
1099
+ cacheCreationInputTokens: assistantMessage.tokens?.cache?.write ?? 0,
1100
+ cacheReadInputTokens: assistantMessage.tokens?.cache?.read ?? 0,
1101
+ }
1102
+ : { ...EMPTY_USAGE };
1103
+ const costUsd = assistantMessage?.cost ?? 0;
1104
+ const cost = withDurationMs({
1105
+ tokensInput: usage.inputTokens,
1106
+ tokensOutput: usage.outputTokens,
1107
+ cacheCreationTokens: usage.cacheCreationInputTokens,
1108
+ cacheReadTokens: usage.cacheReadInputTokens,
1109
+ costUsd,
1110
+ durationMs: 0,
1111
+ numTurns: 1,
1112
+ }, startMs);
1113
+ // Best-effort cleanup of the on-disk session row. Failure is
1114
+ // benign — the ephemeral server itself will be torn down in
1115
+ // `finally` and its disk state goes with it.
1116
+ try {
1117
+ await handle.client.session.delete({ path: { id: sessionId } });
1118
+ }
1119
+ catch (err) {
1120
+ logger.debug({ err, sessionId }, "opencode delegated session.delete failed");
1121
+ }
1122
+ if (policyViolationTool) {
1123
+ return {
1124
+ ok: false,
1125
+ errorClass: "policy_violation",
1126
+ message: `opencode invoked '${policyViolationTool}' which is outside the per-task allowlist`,
1127
+ rawAssistantText: finalText,
1128
+ cost,
1129
+ trace,
1130
+ writeClassToolFired,
1131
+ };
1132
+ }
1133
+ if (toolCallCount > params.maxToolCalls) {
1134
+ return {
1135
+ ok: false,
1136
+ errorClass: "loop_aborted",
1137
+ message: `opencode exceeded maxToolCalls=${params.maxToolCalls} (observed=${toolCallCount})`,
1138
+ rawAssistantText: finalText,
1139
+ cost,
1140
+ trace,
1141
+ writeClassToolFired,
1142
+ };
1143
+ }
1144
+ if (finalText.length === 0) {
1145
+ return {
1146
+ ok: false,
1147
+ errorClass: "parse_error",
1148
+ message: "opencode assistant produced empty text",
1149
+ rawAssistantText: finalText,
1150
+ cost,
1151
+ trace,
1152
+ writeClassToolFired,
1153
+ };
1154
+ }
1155
+ return {
1156
+ ok: true,
1157
+ rawAssistantText: finalText,
1158
+ cost,
1159
+ trace,
1160
+ writeClassToolFired,
1161
+ };
1162
+ }
1163
+ catch (err) {
1164
+ const message = err instanceof Error ? err.message : String(err);
1165
+ const cost = withDurationMs(emptyCost(), startMs);
1166
+ if (aborter.signal.aborted || params.abortSignal?.aborted) {
1167
+ return {
1168
+ ok: false,
1169
+ errorClass: classifyAbortReason(params.abortSignal?.reason ?? aborter.signal.reason),
1170
+ message,
1171
+ cost,
1172
+ trace,
1173
+ writeClassToolFired,
1174
+ };
1175
+ }
1176
+ return {
1177
+ ok: false,
1178
+ errorClass: "subprocess_crashed",
1179
+ message,
1180
+ cost,
1181
+ trace,
1182
+ writeClassToolFired,
1183
+ };
1184
+ }
1185
+ finally {
1186
+ clearTimeout(localTimeout);
1187
+ if (params.abortSignal && callerListener) {
1188
+ params.abortSignal.removeEventListener("abort", callerListener);
1189
+ }
1190
+ if (handle) {
1191
+ try {
1192
+ await handle.close();
1193
+ }
1194
+ catch (err) {
1195
+ logger.debug({ err }, "opencode delegated ephemeral close threw");
1196
+ }
1197
+ }
1198
+ }
1199
+ }
1200
+ /**
1201
+ * OPENCODE_BACKEND_DESIGN §5.1 / §5.8 — assemble the full per-session
1202
+ * `OpencodeRuntimeConfig` envelope. Async because MCP materialization
1203
+ * resolves secrets via the encrypted blob store.
1204
+ *
1205
+ * Self-contained: every field is set explicitly (or deliberately
1206
+ * omitted), so the server-manager's bounce hash is stable across
1207
+ * same-envelope turns. The §5.1 invariant.
1208
+ */
1209
+ async buildRuntimeConfig(params) {
1210
+ const mcpRender = await this.materializeMcp(params.processKey);
1211
+ const built = buildOpencodeRuntimeConfig({
1212
+ modelId: params.modelId,
1213
+ executionMode: this.config.opencodeExecutionPermissionMode,
1214
+ disallowedTools: this.config.disallowedTools ?? [],
1215
+ allowedToolsOverride: params.allowedToolsOverride ?? this.config.allowedToolsOverride ?? null,
1216
+ mcpDisallowed: mcpRender.mcpDisallowed,
1217
+ mcp: mcpRender.mcp,
1218
+ defensiveInstructions: defensiveInstructionsFromEnv(),
1219
+ });
1220
+ // MCP renderer warnings (server-name lint failures, missing
1221
+ // command/url) must flow through so the dashboard's runtime-config
1222
+ // preview tile sees them alongside permission-translator warnings —
1223
+ // the §5.6 contract says warnings are "collected from both
1224
+ // translators". Without this concatenation they only land in
1225
+ // `logger.warn`, invisible to operators not tailing daemon logs.
1226
+ return {
1227
+ config: built.config,
1228
+ warnings: [...built.warnings, ...mcpRender.warnings],
1229
+ };
1230
+ }
1231
+ /**
1232
+ * Per-session MCP materialization. Unlike Claude / Codex / Gemini —
1233
+ * which write a backend-specific file under `<sessionDir>/.mcp.json`
1234
+ * or `.codex/config.toml` — OpenCode receives MCP servers inline via
1235
+ * `OPENCODE_CONFIG_CONTENT` (§5.1). The daemon therefore renders
1236
+ * directly into a `Record<string, McpLocalConfig | McpRemoteConfig>`
1237
+ * map and feeds it into `buildOpencodeRuntimeConfig`.
1238
+ *
1239
+ * Returns the rendered map + the autonomous-strip disallowedTools so
1240
+ * the config builder can surface those as MCP-server warnings
1241
+ * (per-tool MCP deny isn't expressible in opencode 1.14.50 — §5.6).
1242
+ */
1243
+ async materializeMcp(processKey) {
1244
+ if (!this.mcpContext) {
1245
+ return { mcp: {}, mcpDisallowed: [], warnings: [] };
1246
+ }
1247
+ const allServers = listMcpServers(this.mcpContext.db);
1248
+ const forBackend = allServers.filter((s) => s.enabled && s.backends.includes(this.backendId));
1249
+ if (forBackend.length === 0) {
1250
+ return { mcp: {}, mcpDisallowed: [], warnings: [] };
1251
+ }
1252
+ // Resolve secrets the same way materializeMcpForSession does — keyed
1253
+ // by `<serverId>:<keyName>` so the renderer can pick the subset it
1254
+ // needs without collisions across servers.
1255
+ const scopedSecrets = {};
1256
+ for (const server of forBackend) {
1257
+ const raw = await resolveMcpSecrets(this.mcpContext.blobStore, server);
1258
+ for (const [keyName, value] of Object.entries(raw)) {
1259
+ if (value == null)
1260
+ continue;
1261
+ scopedSecrets[`${server.id}:${keyName}`] = value;
1262
+ }
1263
+ }
1264
+ // Allow mode bypasses the approve-tier strip — mirroring the Codex
1265
+ // / Gemini wiring (see codex-core.ts:230).
1266
+ const allowMode = this.config.opencodeExecutionPermissionMode === "allow";
1267
+ const autonomous = !allowMode && (processKey ? isAutonomousProcessKey(processKey) : false);
1268
+ const mcpDisallowed = buildMcpDisallowedTools({
1269
+ servers: forBackend,
1270
+ autonomous,
1271
+ });
1272
+ const rendered = renderOpencodeMcp({
1273
+ servers: forBackend,
1274
+ secrets: scopedSecrets,
1275
+ });
1276
+ if (rendered.warnings.length > 0) {
1277
+ logger.warn({ warnings: rendered.warnings, contextDir: getContextDir(this.config) }, "opencode-mcp renderer surfaced warnings");
1278
+ }
1279
+ return { mcp: rendered.mcp, mcpDisallowed, warnings: rendered.warnings };
1280
+ }
1281
+ async consumeEventStream(args) {
1282
+ const { stream, sessionId, signal, onText } = args;
1283
+ let streamedText = "";
1284
+ let terminalEvent;
1285
+ try {
1286
+ for await (const rawEvent of stream) {
1287
+ if (signal.aborted)
1288
+ break;
1289
+ const normalized = normalize(rawEvent);
1290
+ // Filter events that don't belong to our session — `server.heartbeat`
1291
+ // and `server.connected` carry no sessionId, but other typed
1292
+ // events do; drop foreign sessions to avoid cross-talk on a
1293
+ // long-lived server.
1294
+ const eventSessionId = "sessionId" in normalized ? normalized.sessionId : "";
1295
+ if (eventSessionId && eventSessionId !== sessionId)
1296
+ continue;
1297
+ if (normalized.kind === "text_delta" && normalized.field === "text") {
1298
+ // Only the `text` field is user-visible final output. opencode
1299
+ // also emits `field: "reasoning"` (and other non-text part
1300
+ // fields) — they must not reach `onText` (chat bubble) and
1301
+ // must not pollute `streamedText`, which is the
1302
+ // `extractAssistantTextFromParts` fallback used when the parts
1303
+ // array carries no `type: "text"` entries.
1304
+ streamedText += normalized.delta;
1305
+ if (normalized.delta) {
1306
+ onText(normalized.delta);
1307
+ }
1308
+ }
1309
+ if (isTerminal(normalized)) {
1310
+ terminalEvent = normalized;
1311
+ break;
1312
+ }
1313
+ }
1314
+ }
1315
+ catch (err) {
1316
+ if (signal.aborted) {
1317
+ // Caller surfaces the timeout (or the prompt fast-fail) via the
1318
+ // abort path; don't escalate the iterator's AbortError to a warn.
1319
+ return { streamedText, terminalEvent };
1320
+ }
1321
+ logger.warn({ err, sessionId }, "opencode event-stream consumption error");
1322
+ }
1323
+ return { streamedText, terminalEvent };
1324
+ }
1325
+ assertPromptWithinMaxBudget(prompt, maxBudgetUsd, modelId) {
1326
+ if (!maxBudgetUsd)
1327
+ return;
1328
+ // Same envelope check Codex uses — defensive only; opencode also
1329
+ // enforces a context limit server-side.
1330
+ const approxInputTokens = Math.ceil(prompt.length / 3.5);
1331
+ const fallback = findRegisteredModel(this.backendId, modelId);
1332
+ if (!fallback?.usdPer1kIn)
1333
+ return;
1334
+ const projected = (approxInputTokens / 1000) * fallback.usdPer1kIn;
1335
+ if (projected > maxBudgetUsd * 2) {
1336
+ throw new BackendDecisiveFailure(this.backendId, "model_unavailable", new Error(`Prompt projected at $${projected.toFixed(4)} exceeds 2× budget cap of $${maxBudgetUsd.toFixed(4)}`));
1337
+ }
1338
+ }
1339
+ assertWithinMaxBudget(costUsd, maxBudgetUsd, modelId) {
1340
+ if (!maxBudgetUsd)
1341
+ return;
1342
+ if (costUsd > maxBudgetUsd) {
1343
+ throw new BackendDecisiveFailure(this.backendId, "model_unavailable", new Error(`opencode execute cost $${costUsd.toFixed(4)} exceeds budget $${maxBudgetUsd.toFixed(4)} (${modelId})`));
1344
+ }
1345
+ }
1346
+ }
1347
+ function assistantMessageToUsage(msg) {
1348
+ const tokens = msg.tokens;
1349
+ return {
1350
+ inputTokens: tokens?.input ?? 0,
1351
+ outputTokens: tokens?.output ?? 0,
1352
+ cacheCreationInputTokens: tokens?.cache?.write ?? 0,
1353
+ cacheReadInputTokens: tokens?.cache?.read ?? 0,
1354
+ };
1355
+ }
1356
+ /**
1357
+ * Best-effort write attribution. Permanent limitation in v1 (V9 / §5.3):
1358
+ *
1359
+ * opencode 1.14.50 does NOT emit `message.part.updated` events during a
1360
+ * turn — tool-call data is only available from the FINAL session.prompt
1361
+ * response. By the time we read it here, the file watcher has already
1362
+ * fired (chokidar latency: milliseconds), so a marker added now is too
1363
+ * late to influence the immediate `actor` classification.
1364
+ *
1365
+ * The practical value of this call is therefore the SECOND-ORDER
1366
+ * protection it gives observers polling slower than 30s (the
1367
+ * AgentWriteTracker default TTL): if the same path is re-observed
1368
+ * within that window, attribution is correct. Real-time chokidar
1369
+ * observers (Obsidian / Git) see opencode tool-driven file writes
1370
+ * without an `actor='agent'` mark — accepted gap, contained because the
1371
+ * context-MD chokepoint forbids `edit`/`write` against
1372
+ * `~/.personal-agent/context/**` server-side (the absolute-block
1373
+ * permission JSON denies the canonical bash exfiltration paths;
1374
+ * `tools.read` hard-disable plus per-session permission denies bar
1375
+ * the opencode `read`/`write` tools from those paths in strict mode).
1376
+ *
1377
+ * If opencode begins emitting streamed `tool_call` events upstream
1378
+ * (gated on a future release), this function migrates to the event
1379
+ * mapper's stream path so the marker lands before the file watcher
1380
+ * fires; the existing extraction logic below remains as the
1381
+ * final-response back-stop.
1382
+ */
1383
+ function recordAgentWritesFromTools(tools, writeTracker) {
1384
+ for (const tool of tools) {
1385
+ if (tool.status !== "completed")
1386
+ continue;
1387
+ const writePath = extractWritePathFromInput(tool.toolName, tool.input);
1388
+ if (writePath) {
1389
+ writeTracker.markWriting(writePath);
1390
+ }
1391
+ }
1392
+ }
1393
+ function extractWritePathFromInput(toolName, input) {
1394
+ if (!input)
1395
+ return null;
1396
+ if (toolName === "write" || toolName === "edit" || toolName === "apply_patch") {
1397
+ const candidate = input.path ?? input.filePath ?? input.file;
1398
+ if (typeof candidate === "string" && candidate.length > 0)
1399
+ return candidate;
1400
+ }
1401
+ return null;
1402
+ }
1403
+ /**
1404
+ * docs/design/appendices/opencode-backend.md §5.8 synthetic absolute-block audit. For
1405
+ * every tool call extracted from the final `session.prompt` response,
1406
+ * route through the shared `auditStreamObservation` chokepoint so a
1407
+ * `blocked_absolute` row with `result='partial'` is written on a match.
1408
+ *
1409
+ * Two-step pipeline keeps the classifier centralised:
1410
+ * 1. `extractOpencodeToolUseTarget` — opencode-specific tool/arg
1411
+ * normalisation (`bash` / `read` / `write` / `edit` / `apply_patch`).
1412
+ * 2. `auditStreamObservation` — runs `classifyAbsoluteBlock` against
1413
+ * the normalised target and writes the audit row when matched.
1414
+ *
1415
+ * Why the `partial` result code: opencode enforces the deny inside the
1416
+ * permission JSON at server side, which the daemon does not directly
1417
+ * observe. The audit row records *that the agent attempted* a pattern
1418
+ * the absolute-block layer covers — useful even if the underlying
1419
+ * enforcement happened correctly server-side, and *critical* if a future
1420
+ * permission-JSON regression silently let the call through.
1421
+ *
1422
+ * Exported for `opencode-core.test.ts` so the synthetic audit can be
1423
+ * exercised without spinning up a full server.
1424
+ */
1425
+ export function auditOpencodeTools(tools, deps) {
1426
+ if (!deps.db)
1427
+ return;
1428
+ for (const tool of tools) {
1429
+ // Match on every tool we can normalise — both completed and errored
1430
+ // calls. Pending/running calls don't carry final input yet.
1431
+ if (tool.status === "pending" || tool.status === "running")
1432
+ continue;
1433
+ const target = extractOpencodeToolUseTarget(tool.toolName, tool.input);
1434
+ if (!target)
1435
+ continue;
1436
+ const match = auditStreamObservation(target, {
1437
+ db: deps.db,
1438
+ backend: "opencode",
1439
+ mode: deps.mode,
1440
+ sessionId: deps.sessionId,
1441
+ });
1442
+ // `auditStreamObservation` already writes the row when match is
1443
+ // non-null; nothing else to do here. The void return lets callers
1444
+ // ignore matches in the hot path while keeping the row in the DB.
1445
+ void match;
1446
+ }
1447
+ }
1448
+ function classifyAssistantError(error, backendId) {
1449
+ if (error.name === "ProviderAuthError") {
1450
+ return new BackendDecisiveFailure(backendId, "auth", new Error("opencode provider auth rejected"));
1451
+ }
1452
+ if (error.name === "MessageOutputLengthError") {
1453
+ return new BackendDecisiveFailure(backendId, "max_turns", new Error("opencode message output length exceeded"));
1454
+ }
1455
+ return new BackendDecisiveFailure(backendId, "other_non_retryable", new Error(`opencode assistant error: ${error.name}`));
1456
+ }
1457
+ function classifyStreamError(payload, backendId) {
1458
+ const status = payload.data?.statusCode;
1459
+ const message = payload.data?.message ?? `opencode stream error: ${payload.name}`;
1460
+ if (status === 401 || status === 403 || payload.name === "ProviderAuthError") {
1461
+ return new BackendDecisiveFailure(backendId, "auth", new Error(message));
1462
+ }
1463
+ if (status === 429) {
1464
+ return new BackendDecisiveFailure(backendId, "quota", new Error(message));
1465
+ }
1466
+ return new BackendDecisiveFailure(backendId, "other_non_retryable", new Error(message));
1467
+ }
1468
+ /**
1469
+ * docs/design/appendices/opencode-backend.md Phase 4 — Stage 2 hourly-check triage
1470
+ * schema. Mirrors the `parseStage2Verdict` text contract
1471
+ * (`dispatcher-types.ts`): the agent must return exactly
1472
+ * `{ "action": "log_only" | "escalate", "reason": string }`. Opencode
1473
+ * validates against this schema with `retryCount: 2` server-side, then
1474
+ * surfaces the parsed object at `info.structured`.
1475
+ *
1476
+ * Exported for the regression test that exercises the json_schema
1477
+ * round-trip without spinning up a real opencode server.
1478
+ */
1479
+ export const STAGE2_TRIAGE_JSON_SCHEMA = {
1480
+ type: "object",
1481
+ properties: {
1482
+ action: {
1483
+ type: "string",
1484
+ enum: ["log_only", "escalate"],
1485
+ },
1486
+ reason: {
1487
+ type: "string",
1488
+ },
1489
+ },
1490
+ required: ["action", "reason"],
1491
+ additionalProperties: false,
1492
+ };
1493
+ /**
1494
+ * Returns the opencode `format` envelope to apply when a given process
1495
+ * key has a strict structured-output contract; null otherwise. v1
1496
+ * covers `routine.hourly_check.triage`; future strict-JSON process
1497
+ * keys (e.g. delegated classifiers) extend this map.
1498
+ */
1499
+ function formatForProcessKey(processKey) {
1500
+ if (processKey === "routine.hourly_check.triage") {
1501
+ return {
1502
+ type: "json_schema",
1503
+ schema: STAGE2_TRIAGE_JSON_SCHEMA,
1504
+ retryCount: 2,
1505
+ };
1506
+ }
1507
+ return null;
1508
+ }