@aitne/daemon 0.1.3 → 0.1.6

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 (421) hide show
  1. package/dist/adapters/notification-manager.d.ts +12 -0
  2. package/dist/adapters/notification-manager.d.ts.map +1 -1
  3. package/dist/adapters/notification-manager.js +39 -1
  4. package/dist/adapters/notification-manager.js.map +1 -1
  5. package/dist/adapters/whatsapp-adapter.d.ts.map +1 -1
  6. package/dist/adapters/whatsapp-adapter.js +0 -1
  7. package/dist/adapters/whatsapp-adapter.js.map +1 -1
  8. package/dist/api/integration-route-gate.d.ts +15 -11
  9. package/dist/api/integration-route-gate.d.ts.map +1 -1
  10. package/dist/api/integration-route-gate.js +60 -23
  11. package/dist/api/integration-route-gate.js.map +1 -1
  12. package/dist/api/json-body.d.ts +22 -7
  13. package/dist/api/json-body.d.ts.map +1 -1
  14. package/dist/api/json-body.js +27 -8
  15. package/dist/api/json-body.js.map +1 -1
  16. package/dist/api/routes/agent.d.ts.map +1 -1
  17. package/dist/api/routes/agent.js +25 -0
  18. package/dist/api/routes/agent.js.map +1 -1
  19. package/dist/api/routes/backends.d.ts.map +1 -1
  20. package/dist/api/routes/backends.js +96 -1
  21. package/dist/api/routes/backends.js.map +1 -1
  22. package/dist/api/routes/books.js +1 -1
  23. package/dist/api/routes/books.js.map +1 -1
  24. package/dist/api/routes/commands.d.ts.map +1 -1
  25. package/dist/api/routes/commands.js +16 -13
  26. package/dist/api/routes/commands.js.map +1 -1
  27. package/dist/api/routes/context.d.ts.map +1 -1
  28. package/dist/api/routes/context.js +26 -3
  29. package/dist/api/routes/context.js.map +1 -1
  30. package/dist/api/routes/dashboard.d.ts.map +1 -1
  31. package/dist/api/routes/dashboard.js +103 -5
  32. package/dist/api/routes/dashboard.js.map +1 -1
  33. package/dist/api/routes/fs.d.ts +23 -0
  34. package/dist/api/routes/fs.d.ts.map +1 -0
  35. package/dist/api/routes/fs.js +156 -0
  36. package/dist/api/routes/fs.js.map +1 -0
  37. package/dist/api/routes/fs.logic.d.ts +62 -0
  38. package/dist/api/routes/fs.logic.d.ts.map +1 -0
  39. package/dist/api/routes/fs.logic.js +137 -0
  40. package/dist/api/routes/fs.logic.js.map +1 -0
  41. package/dist/api/routes/github.d.ts.map +1 -1
  42. package/dist/api/routes/github.js +38 -5
  43. package/dist/api/routes/github.js.map +1 -1
  44. package/dist/api/routes/health.d.ts.map +1 -1
  45. package/dist/api/routes/health.js +4 -2
  46. package/dist/api/routes/health.js.map +1 -1
  47. package/dist/api/routes/integrations.d.ts +35 -6
  48. package/dist/api/routes/integrations.d.ts.map +1 -1
  49. package/dist/api/routes/integrations.js +192 -15
  50. package/dist/api/routes/integrations.js.map +1 -1
  51. package/dist/api/routes/mail.d.ts.map +1 -1
  52. package/dist/api/routes/mail.js +112 -46
  53. package/dist/api/routes/mail.js.map +1 -1
  54. package/dist/api/routes/metrics.d.ts +1 -0
  55. package/dist/api/routes/metrics.d.ts.map +1 -1
  56. package/dist/api/routes/metrics.js +24 -0
  57. package/dist/api/routes/metrics.js.map +1 -1
  58. package/dist/api/routes/observations.d.ts.map +1 -1
  59. package/dist/api/routes/observations.js +696 -30
  60. package/dist/api/routes/observations.js.map +1 -1
  61. package/dist/api/routes/setup-migrate.d.ts +9 -1
  62. package/dist/api/routes/setup-migrate.d.ts.map +1 -1
  63. package/dist/api/routes/setup-migrate.js +4 -2
  64. package/dist/api/routes/setup-migrate.js.map +1 -1
  65. package/dist/api/routes/skills.d.ts +9 -1
  66. package/dist/api/routes/skills.d.ts.map +1 -1
  67. package/dist/api/routes/skills.js +77 -17
  68. package/dist/api/routes/skills.js.map +1 -1
  69. package/dist/api/routes/voice.d.ts.map +1 -1
  70. package/dist/api/routes/voice.js +62 -4
  71. package/dist/api/routes/voice.js.map +1 -1
  72. package/dist/api/routes/wiki.d.ts +4 -0
  73. package/dist/api/routes/wiki.d.ts.map +1 -0
  74. package/dist/api/routes/wiki.js +1075 -0
  75. package/dist/api/routes/wiki.js.map +1 -0
  76. package/dist/api/server.d.ts +13 -0
  77. package/dist/api/server.d.ts.map +1 -1
  78. package/dist/api/server.js +27 -1
  79. package/dist/api/server.js.map +1 -1
  80. package/dist/bootstrap/adapters.d.ts +109 -0
  81. package/dist/bootstrap/adapters.d.ts.map +1 -0
  82. package/dist/bootstrap/adapters.js +237 -0
  83. package/dist/bootstrap/adapters.js.map +1 -0
  84. package/dist/bootstrap/catchup.d.ts +23 -0
  85. package/dist/bootstrap/catchup.d.ts.map +1 -0
  86. package/dist/bootstrap/catchup.js +124 -0
  87. package/dist/bootstrap/catchup.js.map +1 -0
  88. package/dist/bootstrap/schedule-helpers.d.ts +18 -0
  89. package/dist/bootstrap/schedule-helpers.d.ts.map +1 -0
  90. package/dist/bootstrap/schedule-helpers.js +96 -0
  91. package/dist/bootstrap/schedule-helpers.js.map +1 -0
  92. package/dist/bootstrap/services.d.ts +60 -0
  93. package/dist/bootstrap/services.d.ts.map +1 -0
  94. package/dist/bootstrap/services.js +209 -0
  95. package/dist/bootstrap/services.js.map +1 -0
  96. package/dist/config.d.ts.map +1 -1
  97. package/dist/config.js +26 -0
  98. package/dist/config.js.map +1 -1
  99. package/dist/core/agent-core.d.ts +25 -0
  100. package/dist/core/agent-core.d.ts.map +1 -1
  101. package/dist/core/agent-core.js.map +1 -1
  102. package/dist/core/backends/backend-router.d.ts +28 -1
  103. package/dist/core/backends/backend-router.d.ts.map +1 -1
  104. package/dist/core/backends/backend-router.js +58 -4
  105. package/dist/core/backends/backend-router.js.map +1 -1
  106. package/dist/core/backends/claude-auth.d.ts +70 -0
  107. package/dist/core/backends/claude-auth.d.ts.map +1 -0
  108. package/dist/core/backends/claude-auth.js +198 -0
  109. package/dist/core/backends/claude-auth.js.map +1 -0
  110. package/dist/core/backends/claude-code-core.d.ts +47 -119
  111. package/dist/core/backends/claude-code-core.d.ts.map +1 -1
  112. package/dist/core/backends/claude-code-core.js +166 -1561
  113. package/dist/core/backends/claude-code-core.js.map +1 -1
  114. package/dist/core/backends/claude-delegated.d.ts +86 -0
  115. package/dist/core/backends/claude-delegated.d.ts.map +1 -0
  116. package/dist/core/backends/claude-delegated.js +801 -0
  117. package/dist/core/backends/claude-delegated.js.map +1 -0
  118. package/dist/core/backends/claude-errors.d.ts +39 -0
  119. package/dist/core/backends/claude-errors.d.ts.map +1 -0
  120. package/dist/core/backends/claude-errors.js +71 -0
  121. package/dist/core/backends/claude-errors.js.map +1 -0
  122. package/dist/core/backends/claude-probe.d.ts +103 -0
  123. package/dist/core/backends/claude-probe.d.ts.map +1 -0
  124. package/dist/core/backends/claude-probe.js +336 -0
  125. package/dist/core/backends/claude-probe.js.map +1 -0
  126. package/dist/core/backends/claude-tool-collection.d.ts +135 -0
  127. package/dist/core/backends/claude-tool-collection.d.ts.map +1 -0
  128. package/dist/core/backends/claude-tool-collection.js +1093 -0
  129. package/dist/core/backends/claude-tool-collection.js.map +1 -0
  130. package/dist/core/backends/codex-core.d.ts.map +1 -1
  131. package/dist/core/backends/codex-core.js +36 -0
  132. package/dist/core/backends/codex-core.js.map +1 -1
  133. package/dist/core/backends/gemini-cli-core.d.ts +45 -5
  134. package/dist/core/backends/gemini-cli-core.d.ts.map +1 -1
  135. package/dist/core/backends/gemini-cli-core.js +146 -36
  136. package/dist/core/backends/gemini-cli-core.js.map +1 -1
  137. package/dist/core/backends/plan-presets.d.ts +3 -1
  138. package/dist/core/backends/plan-presets.d.ts.map +1 -1
  139. package/dist/core/backends/plan-presets.js +42 -2
  140. package/dist/core/backends/plan-presets.js.map +1 -1
  141. package/dist/core/backends/prompt-utils.d.ts +1 -0
  142. package/dist/core/backends/prompt-utils.d.ts.map +1 -1
  143. package/dist/core/backends/prompt-utils.js +60 -3
  144. package/dist/core/backends/prompt-utils.js.map +1 -1
  145. package/dist/core/bang-commands/commands-help.d.ts +5 -0
  146. package/dist/core/bang-commands/commands-help.d.ts.map +1 -0
  147. package/dist/core/bang-commands/commands-help.js +69 -0
  148. package/dist/core/bang-commands/commands-help.js.map +1 -0
  149. package/dist/core/bang-commands/commands-wiki.d.ts +75 -0
  150. package/dist/core/bang-commands/commands-wiki.d.ts.map +1 -0
  151. package/dist/core/bang-commands/commands-wiki.js +574 -0
  152. package/dist/core/bang-commands/commands-wiki.js.map +1 -0
  153. package/dist/core/bang-commands/index.d.ts +4 -2
  154. package/dist/core/bang-commands/index.d.ts.map +1 -1
  155. package/dist/core/bang-commands/index.js +15 -1
  156. package/dist/core/bang-commands/index.js.map +1 -1
  157. package/dist/core/bang-commands/registry.d.ts +47 -4
  158. package/dist/core/bang-commands/registry.d.ts.map +1 -1
  159. package/dist/core/bang-commands/registry.js +85 -15
  160. package/dist/core/bang-commands/registry.js.map +1 -1
  161. package/dist/core/context-builder.d.ts +53 -12
  162. package/dist/core/context-builder.d.ts.map +1 -1
  163. package/dist/core/context-builder.js +240 -92
  164. package/dist/core/context-builder.js.map +1 -1
  165. package/dist/core/daemon-api-cli.d.ts.map +1 -1
  166. package/dist/core/daemon-api-cli.js +50 -2
  167. package/dist/core/daemon-api-cli.js.map +1 -1
  168. package/dist/core/dispatcher-date-utils.d.ts +49 -0
  169. package/dist/core/dispatcher-date-utils.d.ts.map +1 -0
  170. package/dist/core/dispatcher-date-utils.js +132 -0
  171. package/dist/core/dispatcher-date-utils.js.map +1 -0
  172. package/dist/core/dispatcher-error-handling.d.ts +159 -0
  173. package/dist/core/dispatcher-error-handling.d.ts.map +1 -0
  174. package/dist/core/dispatcher-error-handling.js +393 -0
  175. package/dist/core/dispatcher-error-handling.js.map +1 -0
  176. package/dist/core/dispatcher-hourly-check.d.ts +150 -0
  177. package/dist/core/dispatcher-hourly-check.d.ts.map +1 -0
  178. package/dist/core/dispatcher-hourly-check.js +665 -0
  179. package/dist/core/dispatcher-hourly-check.js.map +1 -0
  180. package/dist/core/dispatcher-message-handler.d.ts +170 -0
  181. package/dist/core/dispatcher-message-handler.d.ts.map +1 -0
  182. package/dist/core/dispatcher-message-handler.js +1064 -0
  183. package/dist/core/dispatcher-message-handler.js.map +1 -0
  184. package/dist/core/dispatcher-morning-routine.d.ts +169 -0
  185. package/dist/core/dispatcher-morning-routine.d.ts.map +1 -0
  186. package/dist/core/dispatcher-morning-routine.js +449 -0
  187. package/dist/core/dispatcher-morning-routine.js.map +1 -0
  188. package/dist/core/dispatcher-prompt.d.ts +107 -0
  189. package/dist/core/dispatcher-prompt.d.ts.map +1 -0
  190. package/dist/core/dispatcher-prompt.js +227 -0
  191. package/dist/core/dispatcher-prompt.js.map +1 -0
  192. package/dist/core/dispatcher-repository-helpers.d.ts +39 -0
  193. package/dist/core/dispatcher-repository-helpers.d.ts.map +1 -0
  194. package/dist/core/dispatcher-repository-helpers.js +86 -0
  195. package/dist/core/dispatcher-repository-helpers.js.map +1 -0
  196. package/dist/core/dispatcher-result-processor.d.ts +168 -0
  197. package/dist/core/dispatcher-result-processor.d.ts.map +1 -0
  198. package/dist/core/dispatcher-result-processor.js +533 -0
  199. package/dist/core/dispatcher-result-processor.js.map +1 -0
  200. package/dist/core/dispatcher-scheduled-tasks.d.ts +406 -0
  201. package/dist/core/dispatcher-scheduled-tasks.d.ts.map +1 -0
  202. package/dist/core/dispatcher-scheduled-tasks.js +1032 -0
  203. package/dist/core/dispatcher-scheduled-tasks.js.map +1 -0
  204. package/dist/core/dispatcher-types.d.ts +411 -0
  205. package/dist/core/dispatcher-types.d.ts.map +1 -0
  206. package/dist/core/dispatcher-types.js +106 -0
  207. package/dist/core/dispatcher-types.js.map +1 -0
  208. package/dist/core/dispatcher.d.ts +122 -610
  209. package/dist/core/dispatcher.d.ts.map +1 -1
  210. package/dist/core/dispatcher.js +365 -3521
  211. package/dist/core/dispatcher.js.map +1 -1
  212. package/dist/core/integration-health.d.ts +18 -10
  213. package/dist/core/integration-health.d.ts.map +1 -1
  214. package/dist/core/integration-health.js +31 -1
  215. package/dist/core/integration-health.js.map +1 -1
  216. package/dist/core/integration-lifecycle.d.ts +65 -0
  217. package/dist/core/integration-lifecycle.d.ts.map +1 -1
  218. package/dist/core/integration-lifecycle.js +163 -14
  219. package/dist/core/integration-lifecycle.js.map +1 -1
  220. package/dist/core/integration-main-backend.d.ts +40 -0
  221. package/dist/core/integration-main-backend.d.ts.map +1 -1
  222. package/dist/core/integration-main-backend.js +89 -2
  223. package/dist/core/integration-main-backend.js.map +1 -1
  224. package/dist/core/management-md.d.ts +51 -17
  225. package/dist/core/management-md.d.ts.map +1 -1
  226. package/dist/core/management-md.js +233 -56
  227. package/dist/core/management-md.js.map +1 -1
  228. package/dist/core/metrics.d.ts +127 -0
  229. package/dist/core/metrics.d.ts.map +1 -1
  230. package/dist/core/metrics.js +256 -1
  231. package/dist/core/metrics.js.map +1 -1
  232. package/dist/core/output-language-policy.d.ts +74 -0
  233. package/dist/core/output-language-policy.d.ts.map +1 -0
  234. package/dist/core/output-language-policy.js +194 -0
  235. package/dist/core/output-language-policy.js.map +1 -0
  236. package/dist/core/prompts.d.ts +3 -1
  237. package/dist/core/prompts.d.ts.map +1 -1
  238. package/dist/core/prompts.js +161 -3
  239. package/dist/core/prompts.js.map +1 -1
  240. package/dist/core/repository-management-docs.d.ts +24 -0
  241. package/dist/core/repository-management-docs.d.ts.map +1 -1
  242. package/dist/core/repository-management-docs.js +210 -26
  243. package/dist/core/repository-management-docs.js.map +1 -1
  244. package/dist/core/roadmap-validate.js +13 -1
  245. package/dist/core/roadmap-validate.js.map +1 -1
  246. package/dist/core/routine-acquisition-plan.d.ts +182 -0
  247. package/dist/core/routine-acquisition-plan.d.ts.map +1 -0
  248. package/dist/core/routine-acquisition-plan.js +367 -0
  249. package/dist/core/routine-acquisition-plan.js.map +1 -0
  250. package/dist/core/routine-fetch-window-retry.d.ts +109 -0
  251. package/dist/core/routine-fetch-window-retry.d.ts.map +1 -0
  252. package/dist/core/routine-fetch-window-retry.js +210 -0
  253. package/dist/core/routine-fetch-window-retry.js.map +1 -0
  254. package/dist/core/routine-fetch-window-runner.d.ts +427 -0
  255. package/dist/core/routine-fetch-window-runner.d.ts.map +1 -0
  256. package/dist/core/routine-fetch-window-runner.js +1591 -0
  257. package/dist/core/routine-fetch-window-runner.js.map +1 -0
  258. package/dist/core/routine-windows.d.ts +171 -0
  259. package/dist/core/routine-windows.d.ts.map +1 -0
  260. package/dist/core/routine-windows.js +377 -0
  261. package/dist/core/routine-windows.js.map +1 -0
  262. package/dist/core/scheduler.d.ts +50 -2
  263. package/dist/core/scheduler.d.ts.map +1 -1
  264. package/dist/core/scheduler.js +88 -7
  265. package/dist/core/scheduler.js.map +1 -1
  266. package/dist/core/skill-curation/declarations.d.ts.map +1 -1
  267. package/dist/core/skill-curation/declarations.js +11 -12
  268. package/dist/core/skill-curation/declarations.js.map +1 -1
  269. package/dist/core/skill-source-paths.d.ts +14 -0
  270. package/dist/core/skill-source-paths.d.ts.map +1 -0
  271. package/dist/core/skill-source-paths.js +82 -0
  272. package/dist/core/skill-source-paths.js.map +1 -0
  273. package/dist/core/skills-compiler.d.ts +29 -0
  274. package/dist/core/skills-compiler.d.ts.map +1 -1
  275. package/dist/core/skills-compiler.js +166 -30
  276. package/dist/core/skills-compiler.js.map +1 -1
  277. package/dist/core/skills-manifest.d.ts.map +1 -1
  278. package/dist/core/skills-manifest.js +72 -0
  279. package/dist/core/skills-manifest.js.map +1 -1
  280. package/dist/core/system-reset.d.ts +25 -0
  281. package/dist/core/system-reset.d.ts.map +1 -1
  282. package/dist/core/system-reset.js +72 -2
  283. package/dist/core/system-reset.js.map +1 -1
  284. package/dist/core/wiki/approval-queue.d.ts +31 -0
  285. package/dist/core/wiki/approval-queue.d.ts.map +1 -0
  286. package/dist/core/wiki/approval-queue.js +44 -0
  287. package/dist/core/wiki/approval-queue.js.map +1 -0
  288. package/dist/core/wiki/bridge.d.ts +74 -0
  289. package/dist/core/wiki/bridge.d.ts.map +1 -0
  290. package/dist/core/wiki/bridge.js +405 -0
  291. package/dist/core/wiki/bridge.js.map +1 -0
  292. package/dist/core/wiki/compile-lock.d.ts +42 -0
  293. package/dist/core/wiki/compile-lock.d.ts.map +1 -0
  294. package/dist/core/wiki/compile-lock.js +55 -0
  295. package/dist/core/wiki/compile-lock.js.map +1 -0
  296. package/dist/core/wiki/compile-preview.d.ts +8 -0
  297. package/dist/core/wiki/compile-preview.d.ts.map +1 -0
  298. package/dist/core/wiki/compile-preview.js +200 -0
  299. package/dist/core/wiki/compile-preview.js.map +1 -0
  300. package/dist/core/wiki/cost-estimate.d.ts +30 -0
  301. package/dist/core/wiki/cost-estimate.d.ts.map +1 -0
  302. package/dist/core/wiki/cost-estimate.js +243 -0
  303. package/dist/core/wiki/cost-estimate.js.map +1 -0
  304. package/dist/core/wiki/dispatcher.d.ts +48 -0
  305. package/dist/core/wiki/dispatcher.d.ts.map +1 -0
  306. package/dist/core/wiki/dispatcher.js +92 -0
  307. package/dist/core/wiki/dispatcher.js.map +1 -0
  308. package/dist/core/wiki/git-precompile.d.ts +86 -0
  309. package/dist/core/wiki/git-precompile.d.ts.map +1 -0
  310. package/dist/core/wiki/git-precompile.js +96 -0
  311. package/dist/core/wiki/git-precompile.js.map +1 -0
  312. package/dist/core/wiki/import-migrate.d.ts +38 -0
  313. package/dist/core/wiki/import-migrate.d.ts.map +1 -0
  314. package/dist/core/wiki/import-migrate.js +310 -0
  315. package/dist/core/wiki/import-migrate.js.map +1 -0
  316. package/dist/core/wiki/import-probe.d.ts +76 -0
  317. package/dist/core/wiki/import-probe.d.ts.map +1 -0
  318. package/dist/core/wiki/import-probe.js +245 -0
  319. package/dist/core/wiki/import-probe.js.map +1 -0
  320. package/dist/core/wiki/index-cache.d.ts +39 -0
  321. package/dist/core/wiki/index-cache.d.ts.map +1 -0
  322. package/dist/core/wiki/index-cache.js +152 -0
  323. package/dist/core/wiki/index-cache.js.map +1 -0
  324. package/dist/core/wiki/multi-url-dispatch.d.ts +52 -0
  325. package/dist/core/wiki/multi-url-dispatch.d.ts.map +1 -0
  326. package/dist/core/wiki/multi-url-dispatch.js +72 -0
  327. package/dist/core/wiki/multi-url-dispatch.js.map +1 -0
  328. package/dist/core/wiki/wiki-fts.d.ts +75 -0
  329. package/dist/core/wiki/wiki-fts.d.ts.map +1 -0
  330. package/dist/core/wiki/wiki-fts.js +265 -0
  331. package/dist/core/wiki/wiki-fts.js.map +1 -0
  332. package/dist/core/wiki/workspaces.d.ts +101 -0
  333. package/dist/core/wiki/workspaces.d.ts.map +1 -0
  334. package/dist/core/wiki/workspaces.js +352 -0
  335. package/dist/core/wiki/workspaces.js.map +1 -0
  336. package/dist/core/wiki/write-strategy.d.ts +70 -0
  337. package/dist/core/wiki/write-strategy.d.ts.map +1 -0
  338. package/dist/core/wiki/write-strategy.js +112 -0
  339. package/dist/core/wiki/write-strategy.js.map +1 -0
  340. package/dist/core/workdir.d.ts +8 -1
  341. package/dist/core/workdir.d.ts.map +1 -1
  342. package/dist/core/workdir.js +4 -1
  343. package/dist/core/workdir.js.map +1 -1
  344. package/dist/db/observations.d.ts +45 -2
  345. package/dist/db/observations.d.ts.map +1 -1
  346. package/dist/db/observations.js +112 -14
  347. package/dist/db/observations.js.map +1 -1
  348. package/dist/db/schema.d.ts.map +1 -1
  349. package/dist/db/schema.js +135 -25
  350. package/dist/db/schema.js.map +1 -1
  351. package/dist/db/wiki-store.d.ts +3 -0
  352. package/dist/db/wiki-store.d.ts.map +1 -0
  353. package/dist/db/wiki-store.js +7 -0
  354. package/dist/db/wiki-store.js.map +1 -0
  355. package/dist/index.js +159 -610
  356. package/dist/index.js.map +1 -1
  357. package/dist/messaging/url-extract.d.ts +8 -0
  358. package/dist/messaging/url-extract.d.ts.map +1 -0
  359. package/dist/messaging/url-extract.js +41 -0
  360. package/dist/messaging/url-extract.js.map +1 -0
  361. package/dist/observers/delegated-sync-worker.d.ts +52 -1
  362. package/dist/observers/delegated-sync-worker.d.ts.map +1 -1
  363. package/dist/observers/delegated-sync-worker.js +75 -18
  364. package/dist/observers/delegated-sync-worker.js.map +1 -1
  365. package/dist/observers/imminent-event-scheduler.d.ts +20 -7
  366. package/dist/observers/imminent-event-scheduler.d.ts.map +1 -1
  367. package/dist/observers/imminent-event-scheduler.js +134 -29
  368. package/dist/observers/imminent-event-scheduler.js.map +1 -1
  369. package/dist/observers/mail-poller.d.ts +12 -5
  370. package/dist/observers/mail-poller.d.ts.map +1 -1
  371. package/dist/observers/mail-poller.js +36 -14
  372. package/dist/observers/mail-poller.js.map +1 -1
  373. package/dist/observers/manager.d.ts +37 -5
  374. package/dist/observers/manager.d.ts.map +1 -1
  375. package/dist/observers/manager.js +28 -10
  376. package/dist/observers/manager.js.map +1 -1
  377. package/dist/safety/always-disallowed.d.ts +65 -0
  378. package/dist/safety/always-disallowed.d.ts.map +1 -1
  379. package/dist/safety/always-disallowed.js +106 -10
  380. package/dist/safety/always-disallowed.js.map +1 -1
  381. package/dist/safety/audit.d.ts +46 -1
  382. package/dist/safety/audit.d.ts.map +1 -1
  383. package/dist/safety/audit.js +79 -16
  384. package/dist/safety/audit.js.map +1 -1
  385. package/dist/safety/risk-classifier.d.ts.map +1 -1
  386. package/dist/safety/risk-classifier.js +29 -0
  387. package/dist/safety/risk-classifier.js.map +1 -1
  388. package/dist/services/delegated-backend-invoker.d.ts +1 -51
  389. package/dist/services/delegated-backend-invoker.d.ts.map +1 -1
  390. package/dist/services/delegated-backend-invoker.js +41 -480
  391. package/dist/services/delegated-backend-invoker.js.map +1 -1
  392. package/dist/services/delegated-invoker-audit.d.ts +94 -0
  393. package/dist/services/delegated-invoker-audit.d.ts.map +1 -0
  394. package/dist/services/delegated-invoker-audit.js +238 -0
  395. package/dist/services/delegated-invoker-audit.js.map +1 -0
  396. package/dist/services/delegated-invoker-cache-hits.d.ts +34 -0
  397. package/dist/services/delegated-invoker-cache-hits.d.ts.map +1 -0
  398. package/dist/services/delegated-invoker-cache-hits.js +104 -0
  399. package/dist/services/delegated-invoker-cache-hits.js.map +1 -0
  400. package/dist/services/delegated-invoker-janitors.d.ts +28 -0
  401. package/dist/services/delegated-invoker-janitors.d.ts.map +1 -0
  402. package/dist/services/delegated-invoker-janitors.js +104 -0
  403. package/dist/services/delegated-invoker-janitors.js.map +1 -0
  404. package/dist/services/delegated-invoker-utils.d.ts +42 -0
  405. package/dist/services/delegated-invoker-utils.d.ts.map +1 -0
  406. package/dist/services/delegated-invoker-utils.js +100 -0
  407. package/dist/services/delegated-invoker-utils.js.map +1 -0
  408. package/dist/services/delegated-task-runtime.d.ts +1 -1
  409. package/dist/services/delegated-task-runtime.js +1 -1
  410. package/dist/services/integrations/snapshot-partitions.d.ts +5 -0
  411. package/dist/services/integrations/snapshot-partitions.d.ts.map +1 -1
  412. package/dist/services/integrations/snapshot-partitions.js +12 -0
  413. package/dist/services/integrations/snapshot-partitions.js.map +1 -1
  414. package/dist/services/voice/transcriber-impl.d.ts.map +1 -1
  415. package/dist/services/voice/transcriber-impl.js +7 -8
  416. package/dist/services/voice/transcriber-impl.js.map +1 -1
  417. package/dist/settings/runtime-settings.d.ts +12 -1
  418. package/dist/settings/runtime-settings.d.ts.map +1 -1
  419. package/dist/settings/runtime-settings.js +59 -1
  420. package/dist/settings/runtime-settings.js.map +1 -1
  421. package/package.json +2 -2
@@ -116,6 +116,18 @@ function normalizePath(rawPath, baseUrl) {
116
116
  return url;
117
117
  }
118
118
 
119
+ // Read all of stdin into a UTF-8 string. Lets \`--json @-\` accept a
120
+ // heredoc body so large / multi-line context updates can use the same
121
+ // shape the safety preamble already documents for the curl shim.
122
+ function readAllStdin() {
123
+ return new Promise((resolve, reject) => {
124
+ const chunks = [];
125
+ process.stdin.on("data", (chunk) => chunks.push(chunk));
126
+ process.stdin.on("end", () => resolve(Buffer.concat(chunks).toString("utf-8")));
127
+ process.stdin.on("error", reject);
128
+ });
129
+ }
130
+
119
131
  async function main() {
120
132
  const args = process.argv.slice(2);
121
133
  if (args.length === 0 || args[0] === "--help" || args[0] === "-h") {
@@ -198,7 +210,17 @@ async function main() {
198
210
  fail("--json requires a value.");
199
211
  }
200
212
  headers.set("content-type", "application/json");
201
- body = jsonBody;
213
+ // Heredoc parity with the curl shim. \`--json @-\` reads stdin so
214
+ // \`pa-api PATCH /api/context/today --json @- <<'JSON' ... JSON\` works
215
+ // for large bodies. Bare \`@<path>\` is refused — file-read shape
216
+ // matches the curl shim's deny rule.
217
+ if (jsonBody === "@-") {
218
+ body = await readAllStdin();
219
+ } else if (jsonBody.length > 0 && jsonBody[0] === "@") {
220
+ fail(\`--json \${jsonBody}: @<path> file-read syntax is not allowed; use \\\`--json @-\\\` with a heredoc instead.\`);
221
+ } else {
222
+ body = jsonBody;
223
+ }
202
224
  continue;
203
225
  }
204
226
 
@@ -341,6 +363,19 @@ function parseHeader(raw) {
341
363
  return { name, value };
342
364
  }
343
365
 
366
+ // Read all of stdin into a UTF-8 string. Used by the \`-d @-\` codepath
367
+ // to honour the safety preamble's documented heredoc shape:
368
+ // \`curl ... -d @- <<'JSON' ... JSON\`. Returns "" if stdin is closed
369
+ // (e.g. the agent typed \`-d @-\` without redirecting anything in).
370
+ function readAllStdin() {
371
+ return new Promise((resolve, reject) => {
372
+ const chunks = [];
373
+ process.stdin.on("data", (chunk) => chunks.push(chunk));
374
+ process.stdin.on("end", () => resolve(Buffer.concat(chunks).toString("utf-8")));
375
+ process.stdin.on("error", reject);
376
+ });
377
+ }
378
+
344
379
  function normalizeUrl(rawUrl, baseUrl) {
345
380
  let url;
346
381
  try {
@@ -415,7 +450,20 @@ async function main() {
415
450
  if (rawBody === undefined) {
416
451
  fail(\`\${arg} requires a value.\`);
417
452
  }
418
- body = rawBody;
453
+ // \`-d @-\` is curl's stdin marker. The shared safety preamble
454
+ // recommends heredoc bodies (\`-d @- <<'JSON' ... JSON\`) for
455
+ // multi-line / large payloads. Honour that contract by actually
456
+ // reading stdin when @- is requested. Bare \`@<path>\` forms are
457
+ // file-read shapes — refuse outright (the security hook already
458
+ // blocks them at the Bash layer, but defense-in-depth here means
459
+ // the shim never reads from disk).
460
+ if (rawBody === "@-") {
461
+ body = await readAllStdin();
462
+ } else if (rawBody.length > 0 && rawBody[0] === "@") {
463
+ fail(\`\${arg} \${rawBody}: @<path> file-read syntax is not allowed; use \\\`-d @-\\\` with a heredoc instead.\`);
464
+ } else {
465
+ body = rawBody;
466
+ }
419
467
  idx += 1;
420
468
  continue;
421
469
  }
@@ -1 +1 @@
1
- {"version":3,"file":"daemon-api-cli.js","sourceRoot":"","sources":["../../src/core/daemon-api-cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"daemon-api-cli.js","sourceRoot":"","sources":["../../src/core/daemon-api-cli.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,49 @@
1
+ /**
2
+ * Pure timezone-aware date helpers used by the dispatcher's quota-reset
3
+ * logic (`resolveQuotaResetAtMs`) — no instance state, no I/O.
4
+ *
5
+ * Extracted from `core/dispatcher.ts` as part of phase D-2 of
6
+ * `docs/design/appendices/file-split-plan.md` (pattern A — pure
7
+ * functions). The dispatcher imports these directly at the call sites
8
+ * that previously read `this.…`; no re-export from `dispatcher.ts`
9
+ * because none of these were ever public surface.
10
+ */
11
+ export interface LocalDateParts {
12
+ year: number;
13
+ month: number;
14
+ day: number;
15
+ hour: number;
16
+ minute: number;
17
+ }
18
+ /**
19
+ * Convert local-time `parts` in `timeZone` to a UTC epoch ms. Returns
20
+ * `null` when the wall-clock instant does not exist in the zone (e.g.
21
+ * the "spring forward" gap) or when `timeZone` is not a valid IANA id.
22
+ *
23
+ * The implementation iterates up to 3 times because the first offset
24
+ * lookup uses the UTC instant — the resolved offset can shift the wall
25
+ * time across a DST boundary, requiring another lookup at the new guess.
26
+ */
27
+ export declare function localDateTimeToUtcMs(parts: LocalDateParts, timeZone?: string): number | null;
28
+ /**
29
+ * Return the offset (in minutes) that the given `timeZone` applied at
30
+ * the supplied instant. Positive east of UTC, negative west; `null`
31
+ * when `timeZone` is invalid or the platform's `Intl` data lacks the
32
+ * shortOffset name.
33
+ */
34
+ export declare function getTimeZoneOffsetMinutes(date: Date, timeZone: string): number | null;
35
+ /**
36
+ * Decompose `date` into year/month/day/hour/minute as observed in the
37
+ * given `timeZone`. Falls back to the runtime's local zone when the
38
+ * supplied id is invalid (matching the original behaviour from
39
+ * dispatcher.ts).
40
+ */
41
+ export declare function getLocalDateParts(date: Date, timeZone?: string): LocalDateParts;
42
+ /**
43
+ * Lexicographic comparator on `LocalDateParts` — returns negative when
44
+ * `a < b`, positive when `a > b`, 0 when equal. Used by the quota-reset
45
+ * resolver to decide whether the next reset wall-clock has already
46
+ * passed today.
47
+ */
48
+ export declare function compareLocalDateParts(a: LocalDateParts, b: LocalDateParts): number;
49
+ //# sourceMappingURL=dispatcher-date-utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dispatcher-date-utils.d.ts","sourceRoot":"","sources":["../../src/core/dispatcher-date-utils.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,cAAc,EACrB,QAAQ,CAAC,EAAE,MAAM,GAChB,MAAM,GAAG,IAAI,CAyCf;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,CACtC,IAAI,EAAE,IAAI,EACV,QAAQ,EAAE,MAAM,GACf,MAAM,GAAG,IAAI,CAyBf;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,cAAc,CAiC/E;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CACnC,CAAC,EAAE,cAAc,EACjB,CAAC,EAAE,cAAc,GAChB,MAAM,CAMR"}
@@ -0,0 +1,132 @@
1
+ /**
2
+ * Pure timezone-aware date helpers used by the dispatcher's quota-reset
3
+ * logic (`resolveQuotaResetAtMs`) — no instance state, no I/O.
4
+ *
5
+ * Extracted from `core/dispatcher.ts` as part of phase D-2 of
6
+ * `docs/design/appendices/file-split-plan.md` (pattern A — pure
7
+ * functions). The dispatcher imports these directly at the call sites
8
+ * that previously read `this.…`; no re-export from `dispatcher.ts`
9
+ * because none of these were ever public surface.
10
+ */
11
+ /**
12
+ * Convert local-time `parts` in `timeZone` to a UTC epoch ms. Returns
13
+ * `null` when the wall-clock instant does not exist in the zone (e.g.
14
+ * the "spring forward" gap) or when `timeZone` is not a valid IANA id.
15
+ *
16
+ * The implementation iterates up to 3 times because the first offset
17
+ * lookup uses the UTC instant — the resolved offset can shift the wall
18
+ * time across a DST boundary, requiring another lookup at the new guess.
19
+ */
20
+ export function localDateTimeToUtcMs(parts, timeZone) {
21
+ if (!timeZone) {
22
+ return new Date(parts.year, parts.month - 1, parts.day, parts.hour, parts.minute, 0, 0).getTime();
23
+ }
24
+ const baseUtc = Date.UTC(parts.year, parts.month - 1, parts.day, parts.hour, parts.minute, 0, 0);
25
+ let guess = baseUtc;
26
+ for (let attempt = 0; attempt < 3; attempt++) {
27
+ const offsetMinutes = getTimeZoneOffsetMinutes(new Date(guess), timeZone);
28
+ if (offsetMinutes === null) {
29
+ return null;
30
+ }
31
+ const nextGuess = baseUtc - offsetMinutes * 60 * 1000;
32
+ if (nextGuess === guess) {
33
+ break;
34
+ }
35
+ guess = nextGuess;
36
+ }
37
+ const resolved = getLocalDateParts(new Date(guess), timeZone);
38
+ if (compareLocalDateParts(resolved, parts) !== 0) {
39
+ return null;
40
+ }
41
+ return guess;
42
+ }
43
+ /**
44
+ * Return the offset (in minutes) that the given `timeZone` applied at
45
+ * the supplied instant. Positive east of UTC, negative west; `null`
46
+ * when `timeZone` is invalid or the platform's `Intl` data lacks the
47
+ * shortOffset name.
48
+ */
49
+ export function getTimeZoneOffsetMinutes(date, timeZone) {
50
+ let formatter;
51
+ try {
52
+ formatter = new Intl.DateTimeFormat("en-US", {
53
+ timeZone,
54
+ timeZoneName: "shortOffset",
55
+ });
56
+ }
57
+ catch {
58
+ return null;
59
+ }
60
+ const zonePart = formatter.formatToParts(date).find((part) => part.type === "timeZoneName")?.value;
61
+ if (!zonePart) {
62
+ return null;
63
+ }
64
+ if (zonePart === "GMT") {
65
+ return 0;
66
+ }
67
+ const match = /^GMT([+-])(\d{1,2})(?::?(\d{2}))?$/.exec(zonePart);
68
+ if (!match) {
69
+ return null;
70
+ }
71
+ const sign = match[1] === "-" ? -1 : 1;
72
+ const hours = Number(match[2]);
73
+ const minutes = Number(match[3] ?? "0");
74
+ return sign * (hours * 60 + minutes);
75
+ }
76
+ /**
77
+ * Decompose `date` into year/month/day/hour/minute as observed in the
78
+ * given `timeZone`. Falls back to the runtime's local zone when the
79
+ * supplied id is invalid (matching the original behaviour from
80
+ * dispatcher.ts).
81
+ */
82
+ export function getLocalDateParts(date, timeZone) {
83
+ let formatter;
84
+ try {
85
+ formatter = new Intl.DateTimeFormat("en-US", {
86
+ timeZone,
87
+ year: "numeric",
88
+ month: "2-digit",
89
+ day: "2-digit",
90
+ hour: "2-digit",
91
+ minute: "2-digit",
92
+ hourCycle: "h23",
93
+ });
94
+ }
95
+ catch {
96
+ formatter = new Intl.DateTimeFormat("en-US", {
97
+ year: "numeric",
98
+ month: "2-digit",
99
+ day: "2-digit",
100
+ hour: "2-digit",
101
+ minute: "2-digit",
102
+ hourCycle: "h23",
103
+ });
104
+ }
105
+ const parts = formatter.formatToParts(date);
106
+ const valueOf = (type) => Number(parts.find((part) => part.type === type)?.value ?? "0");
107
+ return {
108
+ year: valueOf("year"),
109
+ month: valueOf("month"),
110
+ day: valueOf("day"),
111
+ hour: valueOf("hour"),
112
+ minute: valueOf("minute"),
113
+ };
114
+ }
115
+ /**
116
+ * Lexicographic comparator on `LocalDateParts` — returns negative when
117
+ * `a < b`, positive when `a > b`, 0 when equal. Used by the quota-reset
118
+ * resolver to decide whether the next reset wall-clock has already
119
+ * passed today.
120
+ */
121
+ export function compareLocalDateParts(a, b) {
122
+ if (a.year !== b.year)
123
+ return a.year - b.year;
124
+ if (a.month !== b.month)
125
+ return a.month - b.month;
126
+ if (a.day !== b.day)
127
+ return a.day - b.day;
128
+ if (a.hour !== b.hour)
129
+ return a.hour - b.hour;
130
+ return a.minute - b.minute;
131
+ }
132
+ //# sourceMappingURL=dispatcher-date-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dispatcher-date-utils.js","sourceRoot":"","sources":["../../src/core/dispatcher-date-utils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,159 @@
1
+ /**
2
+ * `DispatcherErrorRouter` — owns the dispatcher's failure-path
3
+ * machinery: the shallow retry wrapper around BackendRouter
4
+ * (`executeWithRetry`), the post-throw cleanup + DM/dashboard
5
+ * notification (`handleError`), the quota-error introspection +
6
+ * formatting helpers, and the §4.5 delegated-connector health
7
+ * warning consult/dispatch pair.
8
+ *
9
+ * Extracted from `core/dispatcher.ts` as part of phase D-2 of
10
+ * `docs/design/appendices/file-split-plan.md`. Pattern B (stateful
11
+ * coordinator): the router owns its own logic but borrows live
12
+ * references from the dispatcher for state that must remain
13
+ * observable to the parent class — the `notifiedEvents` Set used to
14
+ * dedup outbound notifications, the `shutdownAwaiters` Set used to
15
+ * shortcut the retry sleep on SIGTERM, plus accessors for the
16
+ * dispatcher's `shutdown` flag and lazily-injected dashboard stream.
17
+ *
18
+ * Dispatcher entry points served:
19
+ * - `dispatchSafe` calls `executeWithRetry` around backend invokes
20
+ * and `handleError` on failure;
21
+ * - `handleMessage` calls the `consult/run` connector-warning pair
22
+ * before/after recording the user message;
23
+ * - the §4.5 finalize callbacks (`onRetemplateFinalize` /
24
+ * `onManagementScanFinalize`) bridge into the ResultProcessor —
25
+ * the success path uses ResultProcessor directly; the error path
26
+ * calls through these closures to keep the failure ordering
27
+ * identical to the pre-split file.
28
+ *
29
+ * Shared-state references held:
30
+ * - `notifiedEvents: Set<string>` — live reference; `handleError`
31
+ * deletes the entry as defense-in-depth cleanup when execution
32
+ * threw before reaching `processResult`.
33
+ * - `shutdownAwaiters: Set<() => void>` — live reference; the retry
34
+ * sleep races a 5-min timer against this awaiter set so SIGTERM
35
+ * resolves the wait promptly.
36
+ * - `isShutdown: () => boolean` — getter; on shutdown wakeup the
37
+ * retry loop rethrows instead of looping again.
38
+ * - `getDashboardStream: () => IDashboardStream | null` — lazy
39
+ * accessor; the dashboard stream is wired after construction.
40
+ */
41
+ import type Database from "better-sqlite3";
42
+ import type { Event, MessageEvent, BackendId } from "@aitne/shared";
43
+ import type { AgentConfig } from "../config.js";
44
+ import { BackendQuotaError } from "./agent-core.js";
45
+ import { type DelegatedSignoutWarning } from "./delegated-connector-health.js";
46
+ import type { IDashboardStream, INotificationManager, IMessageRecorder } from "./dispatcher-types.js";
47
+ export interface DispatcherErrorRouterDeps {
48
+ db: Database.Database;
49
+ config: AgentConfig;
50
+ notificationMgr: INotificationManager;
51
+ messageRecorder: IMessageRecorder;
52
+ /** Live reference to the dispatcher's notify-dedup set. */
53
+ notifiedEvents: Set<string>;
54
+ /** Live reference to the dispatcher's shutdown-awaiter set. */
55
+ shutdownAwaiters: Set<() => void>;
56
+ /** Lazily-resolved dashboard stream (may be null in tests). */
57
+ getDashboardStream: () => IDashboardStream | null;
58
+ /** Returns the dispatcher's current shutdown flag. */
59
+ isShutdown: () => boolean;
60
+ /**
61
+ * Closure that bridges into `ResultProcessor.finalizeRetemplateRun`.
62
+ * Used by `handleError` so a retemplate run that throws still
63
+ * rolls back / records the right outcome.
64
+ */
65
+ onRetemplateFinalize: (event: Event, opts: {
66
+ errored: boolean;
67
+ }) => void;
68
+ /**
69
+ * Closure that bridges into `ResultProcessor.finalizeManagementScan`.
70
+ * Used by `handleError` so a management-scan that throws still
71
+ * records `failed` against the right repository row.
72
+ */
73
+ onManagementScanFinalize: (event: Event, opts: {
74
+ errored: boolean;
75
+ }) => void;
76
+ }
77
+ export declare class DispatcherErrorRouter {
78
+ private readonly db;
79
+ private readonly config;
80
+ private readonly notificationMgr;
81
+ private readonly messageRecorder;
82
+ private readonly notifiedEvents;
83
+ private readonly shutdownAwaiters;
84
+ private readonly getDashboardStream;
85
+ private readonly isShutdown;
86
+ private readonly onRetemplateFinalize;
87
+ private readonly onManagementScanFinalize;
88
+ constructor(deps: DispatcherErrorRouterDeps);
89
+ isRetryable(error: unknown): boolean;
90
+ /**
91
+ * Defense-in-depth retry wrapper around BackendRouter.execute().
92
+ *
93
+ * **Primary retry responsibility lives inside each BackendCore** (§12/§13).
94
+ * Quota errors, timeouts, and auth failures are all normalized into
95
+ * BackendDecisiveFailure / BackendQuotaError before they reach this layer.
96
+ * The BackendRouter handles fallback on decisive failures.
97
+ *
98
+ * This outer loop exists solely as a safety net for raw 5xx errors that
99
+ * somehow escape the BackendCore → Router chain (e.g., an unexpected HTTP
100
+ * error from the SDK transport layer). In practice it almost never fires.
101
+ */
102
+ executeWithRetry<T>(fn: () => Promise<T>, event: Event): Promise<T>;
103
+ handleError(event: Event, error: Error): Promise<void>;
104
+ /**
105
+ * Best-effort inline error to the dashboard tab whose POST triggered
106
+ * this event. `DashboardAdapter` is `notificationEligible=false`, so
107
+ * the normal `notificationMgr.send` path skips it — without this hook
108
+ * the browser sees the request accepted (200 OK), watches nothing
109
+ * happen, and hits the 120s waiting timeout with no explanation. We
110
+ * target the originating channel id; if the tab already reconnected
111
+ * with a new UUID the adapter silently drops, which matches the
112
+ * chat_error semantics.
113
+ */
114
+ notifyDashboardError(event: Event, message: string): void;
115
+ extractQuotaError(error: unknown): BackendQuotaError | null;
116
+ formatQuotaMessage(quotaError: BackendQuotaError): string;
117
+ formatBackendLabel(backendId: BackendQuotaError["backendId"]): string;
118
+ resolveQuotaResetAtMs(resetHint: {
119
+ hour: number;
120
+ minute: number;
121
+ timeZone?: string;
122
+ }): number | null;
123
+ /**
124
+ * DELEGATED-MODE-V2-DESIGN.md §4.5 — at every DM dispatch, consult the
125
+ * cached probe for delegated integrations whose effective backend
126
+ * matches the session backend. Surfaces a one-shot DM (deduped via
127
+ * `runtime_state`) when the cached probe says required capabilities
128
+ * are no longer present.
129
+ *
130
+ * The consult itself is synchronous DB-only work (cheap on the hot
131
+ * path). The DM dispatch is fire-and-forget so the agent's response
132
+ * latency is not gated on Slack/Telegram round-trips. Per-warning
133
+ * dispatch failures are swallowed so a flaky messaging adapter never
134
+ * breaks the user's actual DM.
135
+ *
136
+ * Phase 1 of the §4.5 health check — synchronous cache consult only.
137
+ * Returns the warnings the dispatcher must surface this turn (or `[]`
138
+ * when nothing is broken / setup mode is active / the consult itself
139
+ * threw). Recovery markers are cleared inline by the consult helper, so
140
+ * the caller does not have to track them.
141
+ *
142
+ * Split from the dispatch step so the actual DM (and its messages-table
143
+ * persist) fires AFTER the dispatcher has recorded the inbound user
144
+ * message — otherwise the warning row's `CURRENT_TIMESTAMP` lands before
145
+ * the user-message row's, which makes `chat_meta` history reload reorder
146
+ * the bubbles (warning above user) and a one-time visual flicker leaks
147
+ * to the user. See `runDelegatedConnectorWarningDispatch` below.
148
+ */
149
+ consultDelegatedConnectorWarnings(sessionBackend: BackendId): readonly DelegatedSignoutWarning[];
150
+ /**
151
+ * Phase 2 of the §4.5 health check — asynchronous DM dispatch + post-
152
+ * delivery bookkeeping (throttle marker + dashboard-channel persist).
153
+ * Caller invokes this AFTER the user message is recorded so the DM's
154
+ * messages-table row carries a strictly-later `CURRENT_TIMESTAMP`
155
+ * (preserves pre-reconcile chat order on the dashboard).
156
+ */
157
+ runDelegatedConnectorWarningDispatch(warnings: readonly DelegatedSignoutWarning[], event: MessageEvent, sessionBackend: BackendId, sessionId: number): void;
158
+ }
159
+ //# sourceMappingURL=dispatcher-error-handling.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dispatcher-error-handling.d.ts","sourceRoot":"","sources":["../../src/core/dispatcher-error-handling.ts"],"names":[],"mappings":"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"}