@aitne/daemon 0.1.6 → 0.1.8

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 (963) hide show
  1. package/dist/adapters/dashboard-adapter.d.ts +18 -2
  2. package/dist/adapters/dashboard-adapter.d.ts.map +1 -1
  3. package/dist/adapters/dashboard-adapter.js +101 -51
  4. package/dist/adapters/dashboard-adapter.js.map +1 -1
  5. package/dist/adapters/discord.d.ts +8 -0
  6. package/dist/adapters/discord.d.ts.map +1 -1
  7. package/dist/adapters/discord.js +100 -21
  8. package/dist/adapters/discord.js.map +1 -1
  9. package/dist/adapters/message-hub.d.ts.map +1 -1
  10. package/dist/adapters/message-hub.js +7 -1
  11. package/dist/adapters/message-hub.js.map +1 -1
  12. package/dist/adapters/notification-manager.d.ts +102 -2
  13. package/dist/adapters/notification-manager.d.ts.map +1 -1
  14. package/dist/adapters/notification-manager.js +228 -8
  15. package/dist/adapters/notification-manager.js.map +1 -1
  16. package/dist/adapters/outbound-text.d.ts +16 -0
  17. package/dist/adapters/outbound-text.d.ts.map +1 -1
  18. package/dist/adapters/outbound-text.js +118 -1
  19. package/dist/adapters/outbound-text.js.map +1 -1
  20. package/dist/adapters/primary-platform-resolver.d.ts +69 -0
  21. package/dist/adapters/primary-platform-resolver.d.ts.map +1 -0
  22. package/dist/adapters/primary-platform-resolver.js +55 -0
  23. package/dist/adapters/primary-platform-resolver.js.map +1 -0
  24. package/dist/adapters/slack-adapter.d.ts +28 -0
  25. package/dist/adapters/slack-adapter.d.ts.map +1 -1
  26. package/dist/adapters/slack-adapter.js +134 -35
  27. package/dist/adapters/slack-adapter.js.map +1 -1
  28. package/dist/adapters/telegram-adapter.d.ts +7 -1
  29. package/dist/adapters/telegram-adapter.d.ts.map +1 -1
  30. package/dist/adapters/telegram-adapter.js +49 -18
  31. package/dist/adapters/telegram-adapter.js.map +1 -1
  32. package/dist/adapters/whatsapp-adapter.d.ts +33 -0
  33. package/dist/adapters/whatsapp-adapter.d.ts.map +1 -1
  34. package/dist/adapters/whatsapp-adapter.js +84 -0
  35. package/dist/adapters/whatsapp-adapter.js.map +1 -1
  36. package/dist/api/directory-picker.d.ts.map +1 -1
  37. package/dist/api/directory-picker.js +14 -0
  38. package/dist/api/directory-picker.js.map +1 -1
  39. package/dist/api/env-writer.d.ts.map +1 -1
  40. package/dist/api/env-writer.js +6 -1
  41. package/dist/api/env-writer.js.map +1 -1
  42. package/dist/api/helpers/agent-errors.d.ts +2600 -0
  43. package/dist/api/helpers/agent-errors.d.ts.map +1 -0
  44. package/dist/api/helpers/agent-errors.js +2506 -0
  45. package/dist/api/helpers/agent-errors.js.map +1 -0
  46. package/dist/api/integration-route-gate.d.ts.map +1 -1
  47. package/dist/api/integration-route-gate.js +10 -3
  48. package/dist/api/integration-route-gate.js.map +1 -1
  49. package/dist/api/routes/agent-schedule-plan-match.d.ts +5 -0
  50. package/dist/api/routes/agent-schedule-plan-match.d.ts.map +1 -0
  51. package/dist/api/routes/agent-schedule-plan-match.js +101 -0
  52. package/dist/api/routes/agent-schedule-plan-match.js.map +1 -0
  53. package/dist/api/routes/agent-schedule.d.ts +4 -0
  54. package/dist/api/routes/agent-schedule.d.ts.map +1 -0
  55. package/dist/api/routes/agent-schedule.js +750 -0
  56. package/dist/api/routes/agent-schedule.js.map +1 -0
  57. package/dist/api/routes/agent.d.ts.map +1 -1
  58. package/dist/api/routes/agent.js +209 -366
  59. package/dist/api/routes/agent.js.map +1 -1
  60. package/dist/api/routes/apple-calendar.d.ts.map +1 -1
  61. package/dist/api/routes/apple-calendar.js +109 -27
  62. package/dist/api/routes/apple-calendar.js.map +1 -1
  63. package/dist/api/routes/attachments.d.ts.map +1 -1
  64. package/dist/api/routes/attachments.js +113 -21
  65. package/dist/api/routes/attachments.js.map +1 -1
  66. package/dist/api/routes/backends.d.ts.map +1 -1
  67. package/dist/api/routes/backends.js +100 -4
  68. package/dist/api/routes/backends.js.map +1 -1
  69. package/dist/api/routes/books.d.ts.map +1 -1
  70. package/dist/api/routes/books.js +58 -18
  71. package/dist/api/routes/books.js.map +1 -1
  72. package/dist/api/routes/calendar.d.ts +3 -2
  73. package/dist/api/routes/calendar.d.ts.map +1 -1
  74. package/dist/api/routes/calendar.js +330 -55
  75. package/dist/api/routes/calendar.js.map +1 -1
  76. package/dist/api/routes/commands.d.ts.map +1 -1
  77. package/dist/api/routes/commands.js +20 -1
  78. package/dist/api/routes/commands.js.map +1 -1
  79. package/dist/api/routes/context/index.d.ts +33 -0
  80. package/dist/api/routes/context/index.d.ts.map +1 -0
  81. package/dist/api/routes/context/index.js +193 -0
  82. package/dist/api/routes/context/index.js.map +1 -0
  83. package/dist/api/routes/context/locks.d.ts +4 -0
  84. package/dist/api/routes/context/locks.d.ts.map +1 -0
  85. package/dist/api/routes/context/locks.js +136 -0
  86. package/dist/api/routes/context/locks.js.map +1 -0
  87. package/dist/api/routes/context/path-resolve.d.ts +15 -0
  88. package/dist/api/routes/context/path-resolve.d.ts.map +1 -0
  89. package/dist/api/routes/context/path-resolve.js +109 -0
  90. package/dist/api/routes/context/path-resolve.js.map +1 -0
  91. package/dist/api/routes/context/permissions.d.ts +35 -0
  92. package/dist/api/routes/context/permissions.d.ts.map +1 -0
  93. package/dist/api/routes/context/permissions.js +192 -0
  94. package/dist/api/routes/context/permissions.js.map +1 -0
  95. package/dist/api/routes/context/read.d.ts +4 -0
  96. package/dist/api/routes/context/read.d.ts.map +1 -0
  97. package/dist/api/routes/context/read.js +295 -0
  98. package/dist/api/routes/context/read.js.map +1 -0
  99. package/dist/api/routes/context/repair.d.ts +4 -0
  100. package/dist/api/routes/context/repair.d.ts.map +1 -0
  101. package/dist/api/routes/context/repair.js +114 -0
  102. package/dist/api/routes/context/repair.js.map +1 -0
  103. package/dist/api/routes/context/snapshots.d.ts +4 -0
  104. package/dist/api/routes/context/snapshots.d.ts.map +1 -0
  105. package/dist/api/routes/context/snapshots.js +177 -0
  106. package/dist/api/routes/context/snapshots.js.map +1 -0
  107. package/dist/api/routes/context/write.d.ts +4 -0
  108. package/dist/api/routes/context/write.d.ts.map +1 -0
  109. package/dist/api/routes/context/write.js +570 -0
  110. package/dist/api/routes/context/write.js.map +1 -0
  111. package/dist/api/routes/context.d.ts +2 -43
  112. package/dist/api/routes/context.d.ts.map +1 -1
  113. package/dist/api/routes/context.js +415 -558
  114. package/dist/api/routes/context.js.map +1 -1
  115. package/dist/api/routes/dashboard/config.d.ts +4 -0
  116. package/dist/api/routes/dashboard/config.d.ts.map +1 -0
  117. package/dist/api/routes/dashboard/config.js +499 -0
  118. package/dist/api/routes/dashboard/config.js.map +1 -0
  119. package/dist/api/routes/dashboard/conversations.d.ts +4 -0
  120. package/dist/api/routes/dashboard/conversations.d.ts.map +1 -0
  121. package/dist/api/routes/dashboard/conversations.js +309 -0
  122. package/dist/api/routes/dashboard/conversations.js.map +1 -0
  123. package/dist/api/routes/dashboard/cost-approvals.d.ts +29 -0
  124. package/dist/api/routes/dashboard/cost-approvals.d.ts.map +1 -0
  125. package/dist/api/routes/dashboard/cost-approvals.js +259 -0
  126. package/dist/api/routes/dashboard/cost-approvals.js.map +1 -0
  127. package/dist/api/routes/dashboard/index.d.ts +27 -0
  128. package/dist/api/routes/dashboard/index.d.ts.map +1 -0
  129. package/dist/api/routes/dashboard/index.js +47 -0
  130. package/dist/api/routes/dashboard/index.js.map +1 -0
  131. package/dist/api/routes/dashboard/messaging.d.ts +4 -0
  132. package/dist/api/routes/dashboard/messaging.d.ts.map +1 -0
  133. package/dist/api/routes/dashboard/messaging.js +351 -0
  134. package/dist/api/routes/dashboard/messaging.js.map +1 -0
  135. package/dist/api/routes/dashboard/notifications.d.ts +4 -0
  136. package/dist/api/routes/dashboard/notifications.d.ts.map +1 -0
  137. package/dist/api/routes/dashboard/notifications.js +109 -0
  138. package/dist/api/routes/dashboard/notifications.js.map +1 -0
  139. package/dist/api/routes/dashboard/oauth-google.d.ts +4 -0
  140. package/dist/api/routes/dashboard/oauth-google.d.ts.map +1 -0
  141. package/dist/api/routes/dashboard/oauth-google.js +293 -0
  142. package/dist/api/routes/dashboard/oauth-google.js.map +1 -0
  143. package/dist/api/routes/dashboard/schedule-readonly.d.ts +4 -0
  144. package/dist/api/routes/dashboard/schedule-readonly.d.ts.map +1 -0
  145. package/dist/api/routes/dashboard/schedule-readonly.js +46 -0
  146. package/dist/api/routes/dashboard/schedule-readonly.js.map +1 -0
  147. package/dist/api/routes/dashboard/secrets.d.ts +24 -0
  148. package/dist/api/routes/dashboard/secrets.d.ts.map +1 -0
  149. package/dist/api/routes/dashboard/secrets.js +307 -0
  150. package/dist/api/routes/dashboard/secrets.js.map +1 -0
  151. package/dist/api/routes/dashboard/snapshots.d.ts +4 -0
  152. package/dist/api/routes/dashboard/snapshots.d.ts.map +1 -0
  153. package/dist/api/routes/dashboard/snapshots.js +33 -0
  154. package/dist/api/routes/dashboard/snapshots.js.map +1 -0
  155. package/dist/api/routes/dashboard.d.ts.map +1 -1
  156. package/dist/api/routes/dashboard.js +20 -12
  157. package/dist/api/routes/dashboard.js.map +1 -1
  158. package/dist/api/routes/delegated.d.ts +5 -4
  159. package/dist/api/routes/delegated.d.ts.map +1 -1
  160. package/dist/api/routes/delegated.js +6 -5
  161. package/dist/api/routes/delegated.js.map +1 -1
  162. package/dist/api/routes/docs.d.ts.map +1 -1
  163. package/dist/api/routes/docs.js +72 -9
  164. package/dist/api/routes/docs.js.map +1 -1
  165. package/dist/api/routes/entities.d.ts.map +1 -1
  166. package/dist/api/routes/entities.js +112 -43
  167. package/dist/api/routes/entities.js.map +1 -1
  168. package/dist/api/routes/fs.d.ts.map +1 -1
  169. package/dist/api/routes/fs.js +27 -12
  170. package/dist/api/routes/fs.js.map +1 -1
  171. package/dist/api/routes/git-templates.d.ts.map +1 -1
  172. package/dist/api/routes/git-templates.js +107 -27
  173. package/dist/api/routes/git-templates.js.map +1 -1
  174. package/dist/api/routes/git.d.ts.map +1 -1
  175. package/dist/api/routes/git.js +55 -11
  176. package/dist/api/routes/git.js.map +1 -1
  177. package/dist/api/routes/github.d.ts.map +1 -1
  178. package/dist/api/routes/github.js +110 -17
  179. package/dist/api/routes/github.js.map +1 -1
  180. package/dist/api/routes/integrations/crud-patch.d.ts +17 -0
  181. package/dist/api/routes/integrations/crud-patch.d.ts.map +1 -0
  182. package/dist/api/routes/integrations/crud-patch.js +600 -0
  183. package/dist/api/routes/integrations/crud-patch.js.map +1 -0
  184. package/dist/api/routes/integrations/crud.d.ts +16 -0
  185. package/dist/api/routes/integrations/crud.d.ts.map +1 -0
  186. package/dist/api/routes/integrations/crud.js +158 -0
  187. package/dist/api/routes/integrations/crud.js.map +1 -0
  188. package/dist/api/routes/integrations/exec.d.ts +23 -0
  189. package/dist/api/routes/integrations/exec.d.ts.map +1 -0
  190. package/dist/api/routes/integrations/exec.js +356 -0
  191. package/dist/api/routes/integrations/exec.js.map +1 -0
  192. package/dist/api/routes/integrations/index.d.ts +62 -0
  193. package/dist/api/routes/integrations/index.d.ts.map +1 -0
  194. package/dist/api/routes/integrations/index.js +70 -0
  195. package/dist/api/routes/integrations/index.js.map +1 -0
  196. package/dist/api/routes/integrations/integrations/crud.d.ts +16 -0
  197. package/dist/api/routes/integrations/integrations/crud.d.ts.map +1 -0
  198. package/dist/api/routes/integrations/integrations/crud.js +158 -0
  199. package/dist/api/routes/integrations/integrations/crud.js.map +1 -0
  200. package/dist/api/routes/integrations/integrations/index.d.ts +55 -0
  201. package/dist/api/routes/integrations/integrations/index.d.ts.map +1 -0
  202. package/dist/api/routes/integrations/integrations/index.js +65 -0
  203. package/dist/api/routes/integrations/integrations/index.js.map +1 -0
  204. package/dist/api/routes/integrations/integrations/invoke.d.ts +38 -0
  205. package/dist/api/routes/integrations/integrations/invoke.d.ts.map +1 -0
  206. package/dist/api/routes/integrations/integrations/invoke.js +320 -0
  207. package/dist/api/routes/integrations/integrations/invoke.js.map +1 -0
  208. package/dist/api/routes/integrations/integrations/probe.d.ts +21 -0
  209. package/dist/api/routes/integrations/integrations/probe.d.ts.map +1 -0
  210. package/dist/api/routes/integrations/integrations/probe.js +247 -0
  211. package/dist/api/routes/integrations/integrations/probe.js.map +1 -0
  212. package/dist/api/routes/integrations/invoke.d.ts +38 -0
  213. package/dist/api/routes/integrations/invoke.d.ts.map +1 -0
  214. package/dist/api/routes/integrations/invoke.js +320 -0
  215. package/dist/api/routes/integrations/invoke.js.map +1 -0
  216. package/dist/api/routes/integrations/probe.d.ts +21 -0
  217. package/dist/api/routes/integrations/probe.d.ts.map +1 -0
  218. package/dist/api/routes/integrations/probe.js +247 -0
  219. package/dist/api/routes/integrations/probe.js.map +1 -0
  220. package/dist/api/routes/integrations.d.ts.map +1 -1
  221. package/dist/api/routes/integrations.js +65 -13
  222. package/dist/api/routes/integrations.js.map +1 -1
  223. package/dist/api/routes/knowledge.d.ts.map +1 -1
  224. package/dist/api/routes/knowledge.js +13 -2
  225. package/dist/api/routes/knowledge.js.map +1 -1
  226. package/dist/api/routes/mail/_pa_wip_mail/app-password.d.ts +4 -0
  227. package/dist/api/routes/mail/_pa_wip_mail/app-password.d.ts.map +1 -0
  228. package/dist/api/routes/mail/_pa_wip_mail/app-password.js +192 -0
  229. package/dist/api/routes/mail/_pa_wip_mail/app-password.js.map +1 -0
  230. package/dist/api/routes/mail/_pa_wip_mail/body-helpers.d.ts +55 -0
  231. package/dist/api/routes/mail/_pa_wip_mail/body-helpers.d.ts.map +1 -0
  232. package/dist/api/routes/mail/_pa_wip_mail/body-helpers.js +91 -0
  233. package/dist/api/routes/mail/_pa_wip_mail/body-helpers.js.map +1 -0
  234. package/dist/api/routes/mail/_pa_wip_mail/dependencies.d.ts +36 -0
  235. package/dist/api/routes/mail/_pa_wip_mail/dependencies.d.ts.map +1 -0
  236. package/dist/api/routes/mail/_pa_wip_mail/dependencies.js +2 -0
  237. package/dist/api/routes/mail/_pa_wip_mail/dependencies.js.map +1 -0
  238. package/dist/api/routes/mail/_pa_wip_mail/gating.d.ts +45 -0
  239. package/dist/api/routes/mail/_pa_wip_mail/gating.d.ts.map +1 -0
  240. package/dist/api/routes/mail/_pa_wip_mail/gating.js +98 -0
  241. package/dist/api/routes/mail/_pa_wip_mail/gating.js.map +1 -0
  242. package/dist/api/routes/mail/_pa_wip_mail/mail/accounts.d.ts +4 -0
  243. package/dist/api/routes/mail/_pa_wip_mail/mail/accounts.d.ts.map +1 -0
  244. package/dist/api/routes/mail/_pa_wip_mail/mail/accounts.js +289 -0
  245. package/dist/api/routes/mail/_pa_wip_mail/mail/accounts.js.map +1 -0
  246. package/dist/api/routes/mail/_pa_wip_mail/mail/app-password.d.ts +4 -0
  247. package/dist/api/routes/mail/_pa_wip_mail/mail/app-password.d.ts.map +1 -0
  248. package/dist/api/routes/mail/_pa_wip_mail/mail/app-password.js +192 -0
  249. package/dist/api/routes/mail/_pa_wip_mail/mail/app-password.js.map +1 -0
  250. package/dist/api/routes/mail/_pa_wip_mail/mail/body-helpers.d.ts +55 -0
  251. package/dist/api/routes/mail/_pa_wip_mail/mail/body-helpers.d.ts.map +1 -0
  252. package/dist/api/routes/mail/_pa_wip_mail/mail/body-helpers.js +91 -0
  253. package/dist/api/routes/mail/_pa_wip_mail/mail/body-helpers.js.map +1 -0
  254. package/dist/api/routes/mail/_pa_wip_mail/mail/dependencies.d.ts +36 -0
  255. package/dist/api/routes/mail/_pa_wip_mail/mail/dependencies.d.ts.map +1 -0
  256. package/dist/api/routes/mail/_pa_wip_mail/mail/dependencies.js +2 -0
  257. package/dist/api/routes/mail/_pa_wip_mail/mail/dependencies.js.map +1 -0
  258. package/dist/api/routes/mail/_pa_wip_mail/mail/drafts.d.ts +5 -0
  259. package/dist/api/routes/mail/_pa_wip_mail/mail/drafts.d.ts.map +1 -0
  260. package/dist/api/routes/mail/_pa_wip_mail/mail/drafts.js +139 -0
  261. package/dist/api/routes/mail/_pa_wip_mail/mail/drafts.js.map +1 -0
  262. package/dist/api/routes/mail/_pa_wip_mail/mail/gating.d.ts +45 -0
  263. package/dist/api/routes/mail/_pa_wip_mail/mail/gating.d.ts.map +1 -0
  264. package/dist/api/routes/mail/_pa_wip_mail/mail/gating.js +98 -0
  265. package/dist/api/routes/mail/_pa_wip_mail/mail/gating.js.map +1 -0
  266. package/dist/api/routes/mail/_pa_wip_mail/mail/index.d.ts +18 -0
  267. package/dist/api/routes/mail/_pa_wip_mail/mail/index.d.ts.map +1 -0
  268. package/dist/api/routes/mail/_pa_wip_mail/mail/index.js +40 -0
  269. package/dist/api/routes/mail/_pa_wip_mail/mail/index.js.map +1 -0
  270. package/dist/api/routes/mail/_pa_wip_mail/mail/messages.d.ts +15 -0
  271. package/dist/api/routes/mail/_pa_wip_mail/mail/messages.d.ts.map +1 -0
  272. package/dist/api/routes/mail/_pa_wip_mail/mail/messages.js +239 -0
  273. package/dist/api/routes/mail/_pa_wip_mail/mail/messages.js.map +1 -0
  274. package/dist/api/routes/mail/_pa_wip_mail/mail/outlook-config.d.ts +4 -0
  275. package/dist/api/routes/mail/_pa_wip_mail/mail/outlook-config.d.ts.map +1 -0
  276. package/dist/api/routes/mail/_pa_wip_mail/mail/outlook-config.js +73 -0
  277. package/dist/api/routes/mail/_pa_wip_mail/mail/outlook-config.js.map +1 -0
  278. package/dist/api/routes/mail/_pa_wip_mail/mail/provider-resolver.d.ts +64 -0
  279. package/dist/api/routes/mail/_pa_wip_mail/mail/provider-resolver.d.ts.map +1 -0
  280. package/dist/api/routes/mail/_pa_wip_mail/mail/provider-resolver.js +286 -0
  281. package/dist/api/routes/mail/_pa_wip_mail/mail/provider-resolver.js.map +1 -0
  282. package/dist/api/routes/mail/_pa_wip_mail/mail/providers.d.ts +4 -0
  283. package/dist/api/routes/mail/_pa_wip_mail/mail/providers.d.ts.map +1 -0
  284. package/dist/api/routes/mail/_pa_wip_mail/mail/providers.js +73 -0
  285. package/dist/api/routes/mail/_pa_wip_mail/mail/providers.js.map +1 -0
  286. package/dist/api/routes/mail/_pa_wip_mail/mail/tags-folders.d.ts +5 -0
  287. package/dist/api/routes/mail/_pa_wip_mail/mail/tags-folders.d.ts.map +1 -0
  288. package/dist/api/routes/mail/_pa_wip_mail/mail/tags-folders.js +35 -0
  289. package/dist/api/routes/mail/_pa_wip_mail/mail/tags-folders.js.map +1 -0
  290. package/dist/api/routes/mail/_pa_wip_mail/mail/validators.d.ts +23 -0
  291. package/dist/api/routes/mail/_pa_wip_mail/mail/validators.d.ts.map +1 -0
  292. package/dist/api/routes/mail/_pa_wip_mail/mail/validators.js +131 -0
  293. package/dist/api/routes/mail/_pa_wip_mail/mail/validators.js.map +1 -0
  294. package/dist/api/routes/mail/_pa_wip_mail/provider-resolver.d.ts +64 -0
  295. package/dist/api/routes/mail/_pa_wip_mail/provider-resolver.d.ts.map +1 -0
  296. package/dist/api/routes/mail/_pa_wip_mail/provider-resolver.js +286 -0
  297. package/dist/api/routes/mail/_pa_wip_mail/provider-resolver.js.map +1 -0
  298. package/dist/api/routes/mail/_pa_wip_mail/search-health.d.ts +4 -0
  299. package/dist/api/routes/mail/_pa_wip_mail/search-health.d.ts.map +1 -0
  300. package/dist/api/routes/mail/_pa_wip_mail/search-health.js +131 -0
  301. package/dist/api/routes/mail/_pa_wip_mail/search-health.js.map +1 -0
  302. package/dist/api/routes/mail/_pa_wip_mail/validators.d.ts +23 -0
  303. package/dist/api/routes/mail/_pa_wip_mail/validators.d.ts.map +1 -0
  304. package/dist/api/routes/mail/_pa_wip_mail/validators.js +131 -0
  305. package/dist/api/routes/mail/_pa_wip_mail/validators.js.map +1 -0
  306. package/dist/api/routes/mail/accounts.d.ts +4 -0
  307. package/dist/api/routes/mail/accounts.d.ts.map +1 -0
  308. package/dist/api/routes/mail/accounts.js +289 -0
  309. package/dist/api/routes/mail/accounts.js.map +1 -0
  310. package/dist/api/routes/mail/app-password.d.ts +4 -0
  311. package/dist/api/routes/mail/app-password.d.ts.map +1 -0
  312. package/dist/api/routes/mail/app-password.js +192 -0
  313. package/dist/api/routes/mail/app-password.js.map +1 -0
  314. package/dist/api/routes/mail/body-helpers.d.ts +56 -0
  315. package/dist/api/routes/mail/body-helpers.d.ts.map +1 -0
  316. package/dist/api/routes/mail/body-helpers.js +91 -0
  317. package/dist/api/routes/mail/body-helpers.js.map +1 -0
  318. package/dist/api/routes/mail/dependencies.d.ts +36 -0
  319. package/dist/api/routes/mail/dependencies.d.ts.map +1 -0
  320. package/dist/api/routes/mail/dependencies.js +2 -0
  321. package/dist/api/routes/mail/dependencies.js.map +1 -0
  322. package/dist/api/routes/mail/drafts.d.ts +5 -0
  323. package/dist/api/routes/mail/drafts.d.ts.map +1 -0
  324. package/dist/api/routes/mail/drafts.js +139 -0
  325. package/dist/api/routes/mail/drafts.js.map +1 -0
  326. package/dist/api/routes/mail/gating.d.ts +45 -0
  327. package/dist/api/routes/mail/gating.d.ts.map +1 -0
  328. package/dist/api/routes/mail/gating.js +99 -0
  329. package/dist/api/routes/mail/gating.js.map +1 -0
  330. package/dist/api/routes/mail/index.d.ts +18 -0
  331. package/dist/api/routes/mail/index.d.ts.map +1 -0
  332. package/dist/api/routes/mail/index.js +40 -0
  333. package/dist/api/routes/mail/index.js.map +1 -0
  334. package/dist/api/routes/mail/messages.d.ts +15 -0
  335. package/dist/api/routes/mail/messages.d.ts.map +1 -0
  336. package/dist/api/routes/mail/messages.js +239 -0
  337. package/dist/api/routes/mail/messages.js.map +1 -0
  338. package/dist/api/routes/mail/outlook-config.d.ts +4 -0
  339. package/dist/api/routes/mail/outlook-config.d.ts.map +1 -0
  340. package/dist/api/routes/mail/outlook-config.js +73 -0
  341. package/dist/api/routes/mail/outlook-config.js.map +1 -0
  342. package/dist/api/routes/mail/provider-resolver.d.ts +64 -0
  343. package/dist/api/routes/mail/provider-resolver.d.ts.map +1 -0
  344. package/dist/api/routes/mail/provider-resolver.js +286 -0
  345. package/dist/api/routes/mail/provider-resolver.js.map +1 -0
  346. package/dist/api/routes/mail/providers.d.ts +4 -0
  347. package/dist/api/routes/mail/providers.d.ts.map +1 -0
  348. package/dist/api/routes/mail/providers.js +73 -0
  349. package/dist/api/routes/mail/providers.js.map +1 -0
  350. package/dist/api/routes/mail/search-health.d.ts +4 -0
  351. package/dist/api/routes/mail/search-health.d.ts.map +1 -0
  352. package/dist/api/routes/mail/search-health.js +131 -0
  353. package/dist/api/routes/mail/search-health.js.map +1 -0
  354. package/dist/api/routes/mail/tags-folders.d.ts +5 -0
  355. package/dist/api/routes/mail/tags-folders.d.ts.map +1 -0
  356. package/dist/api/routes/mail/tags-folders.js +35 -0
  357. package/dist/api/routes/mail/tags-folders.js.map +1 -0
  358. package/dist/api/routes/mail/validators.d.ts +23 -0
  359. package/dist/api/routes/mail/validators.d.ts.map +1 -0
  360. package/dist/api/routes/mail/validators.js +131 -0
  361. package/dist/api/routes/mail/validators.js.map +1 -0
  362. package/dist/api/routes/mail.d.ts.map +1 -1
  363. package/dist/api/routes/mail.js +259 -67
  364. package/dist/api/routes/mail.js.map +1 -1
  365. package/dist/api/routes/managed-tasks.d.ts.map +1 -1
  366. package/dist/api/routes/managed-tasks.js +142 -54
  367. package/dist/api/routes/managed-tasks.js.map +1 -1
  368. package/dist/api/routes/mcp.d.ts.map +1 -1
  369. package/dist/api/routes/mcp.js +115 -47
  370. package/dist/api/routes/mcp.js.map +1 -1
  371. package/dist/api/routes/metrics.d.ts +1 -1
  372. package/dist/api/routes/metrics.js +2 -2
  373. package/dist/api/routes/notion.d.ts.map +1 -1
  374. package/dist/api/routes/notion.js +230 -54
  375. package/dist/api/routes/notion.js.map +1 -1
  376. package/dist/api/routes/observations.d.ts.map +1 -1
  377. package/dist/api/routes/observations.js +40 -169
  378. package/dist/api/routes/observations.js.map +1 -1
  379. package/dist/api/routes/obsidian.d.ts.map +1 -1
  380. package/dist/api/routes/obsidian.js +193 -32
  381. package/dist/api/routes/obsidian.js.map +1 -1
  382. package/dist/api/routes/profile-questions.d.ts.map +1 -1
  383. package/dist/api/routes/profile-questions.js +19 -3
  384. package/dist/api/routes/profile-questions.js.map +1 -1
  385. package/dist/api/routes/receipts.d.ts.map +1 -1
  386. package/dist/api/routes/receipts.js +64 -24
  387. package/dist/api/routes/receipts.js.map +1 -1
  388. package/dist/api/routes/recurring-schedules.d.ts.map +1 -1
  389. package/dist/api/routes/recurring-schedules.js +243 -13
  390. package/dist/api/routes/recurring-schedules.js.map +1 -1
  391. package/dist/api/routes/repositories.d.ts.map +1 -1
  392. package/dist/api/routes/repositories.js +278 -104
  393. package/dist/api/routes/repositories.js.map +1 -1
  394. package/dist/api/routes/schedule-model-resolver.d.ts +153 -0
  395. package/dist/api/routes/schedule-model-resolver.d.ts.map +1 -0
  396. package/dist/api/routes/schedule-model-resolver.js +282 -0
  397. package/dist/api/routes/schedule-model-resolver.js.map +1 -0
  398. package/dist/api/routes/schedule-options.d.ts +25 -0
  399. package/dist/api/routes/schedule-options.d.ts.map +1 -0
  400. package/dist/api/routes/schedule-options.js +77 -0
  401. package/dist/api/routes/schedule-options.js.map +1 -0
  402. package/dist/api/routes/schedule-validation.d.ts +146 -0
  403. package/dist/api/routes/schedule-validation.d.ts.map +1 -0
  404. package/dist/api/routes/schedule-validation.js +153 -0
  405. package/dist/api/routes/schedule-validation.js.map +1 -0
  406. package/dist/api/routes/setup.d.ts.map +1 -1
  407. package/dist/api/routes/setup.js +100 -26
  408. package/dist/api/routes/setup.js.map +1 -1
  409. package/dist/api/routes/skills.d.ts.map +1 -1
  410. package/dist/api/routes/skills.js +81 -30
  411. package/dist/api/routes/skills.js.map +1 -1
  412. package/dist/api/routes/sot-bindings.d.ts.map +1 -1
  413. package/dist/api/routes/sot-bindings.js +46 -11
  414. package/dist/api/routes/sot-bindings.js.map +1 -1
  415. package/dist/api/routes/sse.d.ts.map +1 -1
  416. package/dist/api/routes/sse.js +6 -1
  417. package/dist/api/routes/sse.js.map +1 -1
  418. package/dist/api/routes/system.d.ts.map +1 -1
  419. package/dist/api/routes/system.js +15 -2
  420. package/dist/api/routes/system.js.map +1 -1
  421. package/dist/api/routes/travel-bookings.d.ts.map +1 -1
  422. package/dist/api/routes/travel-bookings.js +26 -9
  423. package/dist/api/routes/travel-bookings.js.map +1 -1
  424. package/dist/api/routes/travel-time.d.ts.map +1 -1
  425. package/dist/api/routes/travel-time.js +50 -10
  426. package/dist/api/routes/travel-time.js.map +1 -1
  427. package/dist/api/routes/wiki.d.ts.map +1 -1
  428. package/dist/api/routes/wiki.js +49 -8
  429. package/dist/api/routes/wiki.js.map +1 -1
  430. package/dist/api/server.d.ts +15 -3
  431. package/dist/api/server.d.ts.map +1 -1
  432. package/dist/api/server.js +32 -10
  433. package/dist/api/server.js.map +1 -1
  434. package/dist/bootstrap/adapters.d.ts.map +1 -1
  435. package/dist/bootstrap/adapters.js +7 -4
  436. package/dist/bootstrap/adapters.js.map +1 -1
  437. package/dist/bootstrap/api.d.ts +205 -0
  438. package/dist/bootstrap/api.d.ts.map +1 -0
  439. package/dist/bootstrap/api.js +443 -0
  440. package/dist/bootstrap/api.js.map +1 -0
  441. package/dist/bootstrap/db.d.ts +119 -0
  442. package/dist/bootstrap/db.d.ts.map +1 -0
  443. package/dist/bootstrap/db.js +294 -0
  444. package/dist/bootstrap/db.js.map +1 -0
  445. package/dist/bootstrap/event-pipeline.d.ts +308 -0
  446. package/dist/bootstrap/event-pipeline.d.ts.map +1 -0
  447. package/dist/bootstrap/event-pipeline.js +704 -0
  448. package/dist/bootstrap/event-pipeline.js.map +1 -0
  449. package/dist/bootstrap/observers.d.ts +148 -0
  450. package/dist/bootstrap/observers.d.ts.map +1 -0
  451. package/dist/bootstrap/observers.js +558 -0
  452. package/dist/bootstrap/observers.js.map +1 -0
  453. package/dist/bootstrap/schedule-helpers.d.ts +122 -0
  454. package/dist/bootstrap/schedule-helpers.d.ts.map +1 -1
  455. package/dist/bootstrap/schedule-helpers.js +202 -4
  456. package/dist/bootstrap/schedule-helpers.js.map +1 -1
  457. package/dist/config.d.ts.map +1 -1
  458. package/dist/config.js +20 -3
  459. package/dist/config.js.map +1 -1
  460. package/dist/core/abort-utils.d.ts +14 -0
  461. package/dist/core/abort-utils.d.ts.map +1 -0
  462. package/dist/core/abort-utils.js +36 -0
  463. package/dist/core/abort-utils.js.map +1 -0
  464. package/dist/core/agent-core.d.ts +22 -3
  465. package/dist/core/agent-core.d.ts.map +1 -1
  466. package/dist/core/agent-core.js +3 -1
  467. package/dist/core/agent-core.js.map +1 -1
  468. package/dist/core/backends/auth-health-monitor.js +2 -3
  469. package/dist/core/backends/auth-health-monitor.js.map +1 -1
  470. package/dist/core/backends/backend-router.d.ts +11 -1
  471. package/dist/core/backends/backend-router.d.ts.map +1 -1
  472. package/dist/core/backends/backend-router.js +97 -2
  473. package/dist/core/backends/backend-router.js.map +1 -1
  474. package/dist/core/backends/claude-code-core.d.ts +51 -0
  475. package/dist/core/backends/claude-code-core.d.ts.map +1 -1
  476. package/dist/core/backends/claude-code-core.js +134 -11
  477. package/dist/core/backends/claude-code-core.js.map +1 -1
  478. package/dist/core/backends/claude-tool-collection.js +1 -1
  479. package/dist/core/backends/codex-core.d.ts +13 -1
  480. package/dist/core/backends/codex-core.d.ts.map +1 -1
  481. package/dist/core/backends/codex-core.js +436 -22
  482. package/dist/core/backends/codex-core.js.map +1 -1
  483. package/dist/core/backends/gemini-cli-core.d.ts +5 -1
  484. package/dist/core/backends/gemini-cli-core.d.ts.map +1 -1
  485. package/dist/core/backends/gemini-cli-core.js +298 -15
  486. package/dist/core/backends/gemini-cli-core.js.map +1 -1
  487. package/dist/core/backends/install-methods.d.ts.map +1 -1
  488. package/dist/core/backends/install-methods.js +22 -0
  489. package/dist/core/backends/install-methods.js.map +1 -1
  490. package/dist/core/backends/model-registry.d.ts +9 -4
  491. package/dist/core/backends/model-registry.d.ts.map +1 -1
  492. package/dist/core/backends/model-registry.js +153 -23
  493. package/dist/core/backends/model-registry.js.map +1 -1
  494. package/dist/core/backends/native-skill-discovery-probe.d.ts +80 -0
  495. package/dist/core/backends/native-skill-discovery-probe.d.ts.map +1 -0
  496. package/dist/core/backends/native-skill-discovery-probe.js +175 -0
  497. package/dist/core/backends/native-skill-discovery-probe.js.map +1 -0
  498. package/dist/core/backends/opencode-basic-auth-fetch.d.ts +27 -0
  499. package/dist/core/backends/opencode-basic-auth-fetch.d.ts.map +1 -0
  500. package/dist/core/backends/opencode-basic-auth-fetch.js +40 -0
  501. package/dist/core/backends/opencode-basic-auth-fetch.js.map +1 -0
  502. package/dist/core/backends/opencode-config-builder.d.ts +86 -0
  503. package/dist/core/backends/opencode-config-builder.d.ts.map +1 -0
  504. package/dist/core/backends/opencode-config-builder.js +172 -0
  505. package/dist/core/backends/opencode-config-builder.js.map +1 -0
  506. package/dist/core/backends/opencode-core.d.ts +316 -0
  507. package/dist/core/backends/opencode-core.d.ts.map +1 -0
  508. package/dist/core/backends/opencode-core.js +1502 -0
  509. package/dist/core/backends/opencode-core.js.map +1 -0
  510. package/dist/core/backends/opencode-event-mapper.d.ts +133 -0
  511. package/dist/core/backends/opencode-event-mapper.d.ts.map +1 -0
  512. package/dist/core/backends/opencode-event-mapper.js +198 -0
  513. package/dist/core/backends/opencode-event-mapper.js.map +1 -0
  514. package/dist/core/backends/opencode-mcp.d.ts +82 -0
  515. package/dist/core/backends/opencode-mcp.d.ts.map +1 -0
  516. package/dist/core/backends/opencode-mcp.js +165 -0
  517. package/dist/core/backends/opencode-mcp.js.map +1 -0
  518. package/dist/core/backends/opencode-server-manager.d.ts +114 -0
  519. package/dist/core/backends/opencode-server-manager.d.ts.map +1 -0
  520. package/dist/core/backends/opencode-server-manager.js +222 -0
  521. package/dist/core/backends/opencode-server-manager.js.map +1 -0
  522. package/dist/core/backends/opencode-types.d.ts +46 -0
  523. package/dist/core/backends/opencode-types.d.ts.map +1 -0
  524. package/dist/core/backends/opencode-types.js +14 -0
  525. package/dist/core/backends/opencode-types.js.map +1 -0
  526. package/dist/core/backends/plan-presets.d.ts +18 -5
  527. package/dist/core/backends/plan-presets.d.ts.map +1 -1
  528. package/dist/core/backends/plan-presets.js +144 -23
  529. package/dist/core/backends/plan-presets.js.map +1 -1
  530. package/dist/core/backends/process-config-cascade.d.ts +35 -0
  531. package/dist/core/backends/process-config-cascade.d.ts.map +1 -1
  532. package/dist/core/backends/process-config-cascade.js +35 -1
  533. package/dist/core/backends/process-config-cascade.js.map +1 -1
  534. package/dist/core/backends/prompt-utils.d.ts.map +1 -1
  535. package/dist/core/backends/prompt-utils.js +0 -2
  536. package/dist/core/backends/prompt-utils.js.map +1 -1
  537. package/dist/core/backends/quota-reset-hints.d.ts +44 -0
  538. package/dist/core/backends/quota-reset-hints.d.ts.map +1 -0
  539. package/dist/core/backends/quota-reset-hints.js +117 -0
  540. package/dist/core/backends/quota-reset-hints.js.map +1 -0
  541. package/dist/core/bang-commands/commands-close.d.ts +24 -0
  542. package/dist/core/bang-commands/commands-close.d.ts.map +1 -0
  543. package/dist/core/bang-commands/commands-close.js +24 -0
  544. package/dist/core/bang-commands/commands-close.js.map +1 -0
  545. package/dist/core/bang-commands/commands-cost.d.ts.map +1 -1
  546. package/dist/core/bang-commands/commands-cost.js +13 -0
  547. package/dist/core/bang-commands/commands-cost.js.map +1 -1
  548. package/dist/core/bang-commands/commands-help.d.ts.map +1 -1
  549. package/dist/core/bang-commands/commands-help.js +44 -5
  550. package/dist/core/bang-commands/commands-help.js.map +1 -1
  551. package/dist/core/bang-commands/commands-report.d.ts.map +1 -1
  552. package/dist/core/bang-commands/commands-report.js +1 -0
  553. package/dist/core/bang-commands/commands-report.js.map +1 -1
  554. package/dist/core/bang-commands/commands-stop-start.d.ts.map +1 -1
  555. package/dist/core/bang-commands/commands-stop-start.js +2 -0
  556. package/dist/core/bang-commands/commands-stop-start.js.map +1 -1
  557. package/dist/core/bang-commands/commands-wiki.d.ts.map +1 -1
  558. package/dist/core/bang-commands/commands-wiki.js +12 -1
  559. package/dist/core/bang-commands/commands-wiki.js.map +1 -1
  560. package/dist/core/bang-commands/format-utils.d.ts +13 -1
  561. package/dist/core/bang-commands/format-utils.d.ts.map +1 -1
  562. package/dist/core/bang-commands/format-utils.js +21 -2
  563. package/dist/core/bang-commands/format-utils.js.map +1 -1
  564. package/dist/core/bang-commands/index.d.ts +1 -0
  565. package/dist/core/bang-commands/index.d.ts.map +1 -1
  566. package/dist/core/bang-commands/index.js +3 -0
  567. package/dist/core/bang-commands/index.js.map +1 -1
  568. package/dist/core/bang-commands/registry.d.ts +50 -0
  569. package/dist/core/bang-commands/registry.d.ts.map +1 -1
  570. package/dist/core/bang-commands/registry.js +164 -19
  571. package/dist/core/bang-commands/registry.js.map +1 -1
  572. package/dist/core/channel-timeline.d.ts +18 -1
  573. package/dist/core/channel-timeline.d.ts.map +1 -1
  574. package/dist/core/channel-timeline.js +44 -0
  575. package/dist/core/channel-timeline.js.map +1 -1
  576. package/dist/core/context/activity-view-runner.js +9 -1
  577. package/dist/core/context/activity-view-runner.js.map +1 -1
  578. package/dist/core/context/default-schedules-runner.js +44 -4
  579. package/dist/core/context/default-schedules-runner.js.map +1 -1
  580. package/dist/core/context/domain-index-runner.js +9 -1
  581. package/dist/core/context/domain-index-runner.js.map +1 -1
  582. package/dist/core/context/entity-source-rename.d.ts.map +1 -1
  583. package/dist/core/context/entity-source-rename.js +9 -1
  584. package/dist/core/context/entity-source-rename.js.map +1 -1
  585. package/dist/core/context/policy-index-runner.js +9 -1
  586. package/dist/core/context/policy-index-runner.js.map +1 -1
  587. package/dist/core/context/reconciler-runner.js +9 -1
  588. package/dist/core/context/reconciler-runner.js.map +1 -1
  589. package/dist/core/context-builder.d.ts +97 -2
  590. package/dist/core/context-builder.d.ts.map +1 -1
  591. package/dist/core/context-builder.js +303 -30
  592. package/dist/core/context-builder.js.map +1 -1
  593. package/dist/core/context-frontmatter.d.ts +6 -0
  594. package/dist/core/context-frontmatter.d.ts.map +1 -1
  595. package/dist/core/context-frontmatter.js +120 -8
  596. package/dist/core/context-frontmatter.js.map +1 -1
  597. package/dist/core/context-health.js +21 -9
  598. package/dist/core/context-health.js.map +1 -1
  599. package/dist/core/context-validation/_pa_wip_context_validation/index.d.ts +19 -0
  600. package/dist/core/context-validation/_pa_wip_context_validation/index.d.ts.map +1 -0
  601. package/dist/core/context-validation/_pa_wip_context_validation/index.js +19 -0
  602. package/dist/core/context-validation/_pa_wip_context_validation/index.js.map +1 -0
  603. package/dist/core/context-validation/_pa_wip_context_validation/prepare-write.d.ts +94 -0
  604. package/dist/core/context-validation/_pa_wip_context_validation/prepare-write.d.ts.map +1 -0
  605. package/dist/core/context-validation/_pa_wip_context_validation/prepare-write.js +130 -0
  606. package/dist/core/context-validation/_pa_wip_context_validation/prepare-write.js.map +1 -0
  607. package/dist/core/context-validation/_pa_wip_context_validation/routine-rulebook.d.ts +60 -0
  608. package/dist/core/context-validation/_pa_wip_context_validation/routine-rulebook.d.ts.map +1 -0
  609. package/dist/core/context-validation/_pa_wip_context_validation/routine-rulebook.js +156 -0
  610. package/dist/core/context-validation/_pa_wip_context_validation/routine-rulebook.js.map +1 -0
  611. package/dist/core/context-validation/_pa_wip_context_validation/section.d.ts +41 -0
  612. package/dist/core/context-validation/_pa_wip_context_validation/section.d.ts.map +1 -0
  613. package/dist/core/context-validation/_pa_wip_context_validation/section.js +82 -0
  614. package/dist/core/context-validation/_pa_wip_context_validation/section.js.map +1 -0
  615. package/dist/core/context-validation/_pa_wip_context_validation/snapshot-debounce.d.ts +52 -0
  616. package/dist/core/context-validation/_pa_wip_context_validation/snapshot-debounce.d.ts.map +1 -0
  617. package/dist/core/context-validation/_pa_wip_context_validation/snapshot-debounce.js +110 -0
  618. package/dist/core/context-validation/_pa_wip_context_validation/snapshot-debounce.js.map +1 -0
  619. package/dist/core/context-validation/_pa_wip_context_validation/today.d.ts +85 -0
  620. package/dist/core/context-validation/_pa_wip_context_validation/today.d.ts.map +1 -0
  621. package/dist/core/context-validation/_pa_wip_context_validation/today.js +162 -0
  622. package/dist/core/context-validation/_pa_wip_context_validation/today.js.map +1 -0
  623. package/dist/core/context-validation/index.d.ts +19 -0
  624. package/dist/core/context-validation/index.d.ts.map +1 -0
  625. package/dist/core/context-validation/index.js +19 -0
  626. package/dist/core/context-validation/index.js.map +1 -0
  627. package/dist/core/context-validation/prepare-write.d.ts +95 -0
  628. package/dist/core/context-validation/prepare-write.d.ts.map +1 -0
  629. package/dist/core/context-validation/prepare-write.js +135 -0
  630. package/dist/core/context-validation/prepare-write.js.map +1 -0
  631. package/dist/core/context-validation/routine-rulebook.d.ts +60 -0
  632. package/dist/core/context-validation/routine-rulebook.d.ts.map +1 -0
  633. package/dist/core/context-validation/routine-rulebook.js +156 -0
  634. package/dist/core/context-validation/routine-rulebook.js.map +1 -0
  635. package/dist/core/context-validation/section.d.ts +41 -0
  636. package/dist/core/context-validation/section.d.ts.map +1 -0
  637. package/dist/core/context-validation/section.js +82 -0
  638. package/dist/core/context-validation/section.js.map +1 -0
  639. package/dist/core/context-validation/snapshot-debounce.d.ts +52 -0
  640. package/dist/core/context-validation/snapshot-debounce.d.ts.map +1 -0
  641. package/dist/core/context-validation/snapshot-debounce.js +110 -0
  642. package/dist/core/context-validation/snapshot-debounce.js.map +1 -0
  643. package/dist/core/context-validation/today.d.ts +85 -0
  644. package/dist/core/context-validation/today.d.ts.map +1 -0
  645. package/dist/core/context-validation/today.js +168 -0
  646. package/dist/core/context-validation/today.js.map +1 -0
  647. package/dist/core/daemon-api-cli.d.ts +6 -5
  648. package/dist/core/daemon-api-cli.d.ts.map +1 -1
  649. package/dist/core/daemon-api-cli.js +73 -32
  650. package/dist/core/daemon-api-cli.js.map +1 -1
  651. package/dist/core/dispatcher-error-handling.d.ts +13 -0
  652. package/dist/core/dispatcher-error-handling.d.ts.map +1 -1
  653. package/dist/core/dispatcher-error-handling.js +69 -0
  654. package/dist/core/dispatcher-error-handling.js.map +1 -1
  655. package/dist/core/dispatcher-hourly-check.d.ts +73 -1
  656. package/dist/core/dispatcher-hourly-check.d.ts.map +1 -1
  657. package/dist/core/dispatcher-hourly-check.js +249 -151
  658. package/dist/core/dispatcher-hourly-check.js.map +1 -1
  659. package/dist/core/dispatcher-message-handler.d.ts +11 -1
  660. package/dist/core/dispatcher-message-handler.d.ts.map +1 -1
  661. package/dist/core/dispatcher-message-handler.js +165 -47
  662. package/dist/core/dispatcher-message-handler.js.map +1 -1
  663. package/dist/core/dispatcher-morning-routine.d.ts +38 -30
  664. package/dist/core/dispatcher-morning-routine.d.ts.map +1 -1
  665. package/dist/core/dispatcher-morning-routine.js +162 -104
  666. package/dist/core/dispatcher-morning-routine.js.map +1 -1
  667. package/dist/core/dispatcher-prompt.d.ts +4 -1
  668. package/dist/core/dispatcher-prompt.d.ts.map +1 -1
  669. package/dist/core/dispatcher-prompt.js +18 -2
  670. package/dist/core/dispatcher-prompt.js.map +1 -1
  671. package/dist/core/dispatcher-repository-helpers.d.ts.map +1 -1
  672. package/dist/core/dispatcher-repository-helpers.js +5 -1
  673. package/dist/core/dispatcher-repository-helpers.js.map +1 -1
  674. package/dist/core/dispatcher-result-processor.d.ts.map +1 -1
  675. package/dist/core/dispatcher-result-processor.js +9 -4
  676. package/dist/core/dispatcher-result-processor.js.map +1 -1
  677. package/dist/core/dispatcher-scheduled-tasks.d.ts +1 -1
  678. package/dist/core/dispatcher-scheduled-tasks.d.ts.map +1 -1
  679. package/dist/core/dispatcher-scheduled-tasks.js +79 -16
  680. package/dist/core/dispatcher-scheduled-tasks.js.map +1 -1
  681. package/dist/core/dispatcher-types.d.ts +84 -12
  682. package/dist/core/dispatcher-types.d.ts.map +1 -1
  683. package/dist/core/dispatcher-types.js.map +1 -1
  684. package/dist/core/dispatcher.d.ts +50 -1
  685. package/dist/core/dispatcher.d.ts.map +1 -1
  686. package/dist/core/dispatcher.js +143 -8
  687. package/dist/core/dispatcher.js.map +1 -1
  688. package/dist/core/dm-freshness-metrics.d.ts +6 -5
  689. package/dist/core/dm-freshness-metrics.d.ts.map +1 -1
  690. package/dist/core/dm-freshness-metrics.js +7 -6
  691. package/dist/core/dm-freshness-metrics.js.map +1 -1
  692. package/dist/core/evening-review-verify.d.ts +164 -0
  693. package/dist/core/evening-review-verify.d.ts.map +1 -0
  694. package/dist/core/evening-review-verify.js +637 -0
  695. package/dist/core/evening-review-verify.js.map +1 -0
  696. package/dist/core/fetch-window-prompt-loader.d.ts +47 -0
  697. package/dist/core/fetch-window-prompt-loader.d.ts.map +1 -0
  698. package/dist/core/fetch-window-prompt-loader.js +72 -0
  699. package/dist/core/fetch-window-prompt-loader.js.map +1 -0
  700. package/dist/core/management-md.d.ts.map +1 -1
  701. package/dist/core/management-md.js +23 -9
  702. package/dist/core/management-md.js.map +1 -1
  703. package/dist/core/management-registry.d.ts +13 -21
  704. package/dist/core/management-registry.d.ts.map +1 -1
  705. package/dist/core/management-registry.js +27 -48
  706. package/dist/core/management-registry.js.map +1 -1
  707. package/dist/core/metrics.d.ts +88 -1
  708. package/dist/core/metrics.d.ts.map +1 -1
  709. package/dist/core/metrics.js +78 -2
  710. package/dist/core/metrics.js.map +1 -1
  711. package/dist/core/morning/agent-journal-appender.d.ts +197 -0
  712. package/dist/core/morning/agent-journal-appender.d.ts.map +1 -0
  713. package/dist/core/morning/agent-journal-appender.js +458 -0
  714. package/dist/core/morning/agent-journal-appender.js.map +1 -0
  715. package/dist/core/morning/handoff-parser.d.ts +45 -0
  716. package/dist/core/morning/handoff-parser.d.ts.map +1 -0
  717. package/dist/core/morning/handoff-parser.js +117 -0
  718. package/dist/core/morning/handoff-parser.js.map +1 -0
  719. package/dist/core/morning/journal-skeleton-builder.d.ts +157 -0
  720. package/dist/core/morning/journal-skeleton-builder.d.ts.map +1 -0
  721. package/dist/core/morning/journal-skeleton-builder.js +303 -0
  722. package/dist/core/morning/journal-skeleton-builder.js.map +1 -0
  723. package/dist/core/morning/orchestrator.d.ts +312 -0
  724. package/dist/core/morning/orchestrator.d.ts.map +1 -0
  725. package/dist/core/morning/orchestrator.js +827 -0
  726. package/dist/core/morning/orchestrator.js.map +1 -0
  727. package/dist/core/morning/parent-audit-emitter.d.ts +82 -0
  728. package/dist/core/morning/parent-audit-emitter.d.ts.map +1 -0
  729. package/dist/core/morning/parent-audit-emitter.js +120 -0
  730. package/dist/core/morning/parent-audit-emitter.js.map +1 -0
  731. package/dist/core/morning/roadmap-skeleton-builder.d.ts +159 -0
  732. package/dist/core/morning/roadmap-skeleton-builder.d.ts.map +1 -0
  733. package/dist/core/morning/roadmap-skeleton-builder.js +338 -0
  734. package/dist/core/morning/roadmap-skeleton-builder.js.map +1 -0
  735. package/dist/core/output-language-policy.js +1 -1
  736. package/dist/core/output-language-policy.js.map +1 -1
  737. package/dist/core/policy-files.d.ts +19 -2
  738. package/dist/core/policy-files.d.ts.map +1 -1
  739. package/dist/core/policy-files.js +65 -7
  740. package/dist/core/policy-files.js.map +1 -1
  741. package/dist/core/pre-pass-freshness.d.ts +28 -0
  742. package/dist/core/pre-pass-freshness.d.ts.map +1 -0
  743. package/dist/core/pre-pass-freshness.js +10 -0
  744. package/dist/core/pre-pass-freshness.js.map +1 -0
  745. package/dist/core/previous-week-digest.d.ts +130 -0
  746. package/dist/core/previous-week-digest.d.ts.map +1 -0
  747. package/dist/core/previous-week-digest.js +257 -0
  748. package/dist/core/previous-week-digest.js.map +1 -0
  749. package/dist/core/prompts.js +3 -3
  750. package/dist/core/prompts.js.map +1 -1
  751. package/dist/core/quiet-hours-sync.d.ts.map +1 -1
  752. package/dist/core/quiet-hours-sync.js +7 -0
  753. package/dist/core/quiet-hours-sync.js.map +1 -1
  754. package/dist/core/recurrence.d.ts +13 -0
  755. package/dist/core/recurrence.d.ts.map +1 -1
  756. package/dist/core/recurrence.js +108 -13
  757. package/dist/core/recurrence.js.map +1 -1
  758. package/dist/core/release-assets.d.ts +21 -1
  759. package/dist/core/release-assets.d.ts.map +1 -1
  760. package/dist/core/release-assets.js +58 -3
  761. package/dist/core/release-assets.js.map +1 -1
  762. package/dist/core/repository-management-docs.d.ts.map +1 -1
  763. package/dist/core/repository-management-docs.js +14 -4
  764. package/dist/core/repository-management-docs.js.map +1 -1
  765. package/dist/core/review-context.d.ts.map +1 -1
  766. package/dist/core/review-context.js +29 -1
  767. package/dist/core/review-context.js.map +1 -1
  768. package/dist/core/roadmap-maintenance.d.ts +213 -0
  769. package/dist/core/roadmap-maintenance.d.ts.map +1 -0
  770. package/dist/core/roadmap-maintenance.js +706 -0
  771. package/dist/core/roadmap-maintenance.js.map +1 -0
  772. package/dist/core/roadmap-validate.d.ts +5 -0
  773. package/dist/core/roadmap-validate.d.ts.map +1 -1
  774. package/dist/core/roadmap-validate.js +6 -69
  775. package/dist/core/roadmap-validate.js.map +1 -1
  776. package/dist/core/routine-acquisition-plan.d.ts +43 -7
  777. package/dist/core/routine-acquisition-plan.d.ts.map +1 -1
  778. package/dist/core/routine-acquisition-plan.js +99 -8
  779. package/dist/core/routine-acquisition-plan.js.map +1 -1
  780. package/dist/core/routine-fetch-window-retry.d.ts +41 -2
  781. package/dist/core/routine-fetch-window-retry.d.ts.map +1 -1
  782. package/dist/core/routine-fetch-window-retry.js +91 -8
  783. package/dist/core/routine-fetch-window-retry.js.map +1 -1
  784. package/dist/core/routine-fetch-window-runner.d.ts +55 -21
  785. package/dist/core/routine-fetch-window-runner.d.ts.map +1 -1
  786. package/dist/core/routine-fetch-window-runner.js +258 -35
  787. package/dist/core/routine-fetch-window-runner.js.map +1 -1
  788. package/dist/core/routine-windows.d.ts +17 -13
  789. package/dist/core/routine-windows.d.ts.map +1 -1
  790. package/dist/core/routine-windows.js +78 -36
  791. package/dist/core/routine-windows.js.map +1 -1
  792. package/dist/core/scheduler.d.ts +121 -37
  793. package/dist/core/scheduler.d.ts.map +1 -1
  794. package/dist/core/scheduler.js +359 -80
  795. package/dist/core/scheduler.js.map +1 -1
  796. package/dist/core/session-manager.d.ts +25 -6
  797. package/dist/core/session-manager.d.ts.map +1 -1
  798. package/dist/core/session-manager.js +32 -15
  799. package/dist/core/session-manager.js.map +1 -1
  800. package/dist/core/skeleton.d.ts.map +1 -1
  801. package/dist/core/skeleton.js +23 -23
  802. package/dist/core/skeleton.js.map +1 -1
  803. package/dist/core/skills-compiler.d.ts +275 -25
  804. package/dist/core/skills-compiler.d.ts.map +1 -1
  805. package/dist/core/skills-compiler.js +844 -205
  806. package/dist/core/skills-compiler.js.map +1 -1
  807. package/dist/core/skills-manifest.d.ts +104 -0
  808. package/dist/core/skills-manifest.d.ts.map +1 -1
  809. package/dist/core/skills-manifest.js +350 -39
  810. package/dist/core/skills-manifest.js.map +1 -1
  811. package/dist/core/wiki/git-precompile.d.ts +9 -0
  812. package/dist/core/wiki/git-precompile.d.ts.map +1 -1
  813. package/dist/core/wiki/git-precompile.js +7 -1
  814. package/dist/core/wiki/git-precompile.js.map +1 -1
  815. package/dist/core/workdir.d.ts +30 -1
  816. package/dist/core/workdir.d.ts.map +1 -1
  817. package/dist/core/workdir.js +140 -15
  818. package/dist/core/workdir.js.map +1 -1
  819. package/dist/db/entities-store.d.ts +5 -5
  820. package/dist/db/entities-store.js +5 -5
  821. package/dist/db/hourly-check-signals.d.ts.map +1 -1
  822. package/dist/db/hourly-check-signals.js +121 -35
  823. package/dist/db/hourly-check-signals.js.map +1 -1
  824. package/dist/db/observations.d.ts +1 -1
  825. package/dist/db/observations.js +1 -1
  826. package/dist/db/observations.js.map +1 -1
  827. package/dist/db/recurring-schedules.d.ts +32 -1
  828. package/dist/db/recurring-schedules.d.ts.map +1 -1
  829. package/dist/db/recurring-schedules.js +29 -10
  830. package/dist/db/recurring-schedules.js.map +1 -1
  831. package/dist/db/repositories-store.d.ts +2 -1
  832. package/dist/db/repositories-store.d.ts.map +1 -1
  833. package/dist/db/repositories-store.js +38 -3
  834. package/dist/db/repositories-store.js.map +1 -1
  835. package/dist/db/schema.d.ts.map +1 -1
  836. package/dist/db/schema.js +157 -51
  837. package/dist/db/schema.js.map +1 -1
  838. package/dist/db/wiki-store.d.ts.map +1 -1
  839. package/dist/db/wiki-store.js +3 -0
  840. package/dist/db/wiki-store.js.map +1 -1
  841. package/dist/index.js +308 -1473
  842. package/dist/index.js.map +1 -1
  843. package/dist/messaging/magic-phrase.d.ts +16 -0
  844. package/dist/messaging/magic-phrase.d.ts.map +1 -1
  845. package/dist/messaging/magic-phrase.js +53 -0
  846. package/dist/messaging/magic-phrase.js.map +1 -1
  847. package/dist/messaging/owner-channels.d.ts +24 -0
  848. package/dist/messaging/owner-channels.d.ts.map +1 -1
  849. package/dist/messaging/owner-channels.js +38 -0
  850. package/dist/messaging/owner-channels.js.map +1 -1
  851. package/dist/messaging/setup-welcome-dm.d.ts +30 -0
  852. package/dist/messaging/setup-welcome-dm.d.ts.map +1 -0
  853. package/dist/messaging/setup-welcome-dm.js +86 -0
  854. package/dist/messaging/setup-welcome-dm.js.map +1 -0
  855. package/dist/observers/calendar-poller.d.ts +2 -0
  856. package/dist/observers/calendar-poller.d.ts.map +1 -1
  857. package/dist/observers/calendar-poller.js +76 -54
  858. package/dist/observers/calendar-poller.js.map +1 -1
  859. package/dist/observers/delegated-sync-worker.d.ts +62 -0
  860. package/dist/observers/delegated-sync-worker.d.ts.map +1 -1
  861. package/dist/observers/delegated-sync-worker.js +128 -1
  862. package/dist/observers/delegated-sync-worker.js.map +1 -1
  863. package/dist/observers/git-watcher.d.ts +22 -0
  864. package/dist/observers/git-watcher.d.ts.map +1 -1
  865. package/dist/observers/git-watcher.js +31 -7
  866. package/dist/observers/git-watcher.js.map +1 -1
  867. package/dist/observers/imminent-event-scheduler.d.ts +2 -0
  868. package/dist/observers/imminent-event-scheduler.d.ts.map +1 -1
  869. package/dist/observers/imminent-event-scheduler.js +29 -0
  870. package/dist/observers/imminent-event-scheduler.js.map +1 -1
  871. package/dist/observers/notion-poller.d.ts +2 -0
  872. package/dist/observers/notion-poller.d.ts.map +1 -1
  873. package/dist/observers/notion-poller.js +44 -6
  874. package/dist/observers/notion-poller.js.map +1 -1
  875. package/dist/observers/poll-guard.d.ts +63 -0
  876. package/dist/observers/poll-guard.d.ts.map +1 -0
  877. package/dist/observers/poll-guard.js +89 -0
  878. package/dist/observers/poll-guard.js.map +1 -0
  879. package/dist/safety/absolute-block-audit.d.ts +17 -0
  880. package/dist/safety/absolute-block-audit.d.ts.map +1 -1
  881. package/dist/safety/absolute-block-audit.js +28 -2
  882. package/dist/safety/absolute-block-audit.js.map +1 -1
  883. package/dist/safety/agent-write-tracker.d.ts +42 -1
  884. package/dist/safety/agent-write-tracker.d.ts.map +1 -1
  885. package/dist/safety/agent-write-tracker.js +81 -1
  886. package/dist/safety/agent-write-tracker.js.map +1 -1
  887. package/dist/safety/always-disallowed.d.ts +34 -0
  888. package/dist/safety/always-disallowed.d.ts.map +1 -1
  889. package/dist/safety/always-disallowed.js +114 -7
  890. package/dist/safety/always-disallowed.js.map +1 -1
  891. package/dist/safety/audit.d.ts +20 -0
  892. package/dist/safety/audit.d.ts.map +1 -1
  893. package/dist/safety/audit.js +126 -0
  894. package/dist/safety/audit.js.map +1 -1
  895. package/dist/safety/risk-classifier.d.ts +17 -1
  896. package/dist/safety/risk-classifier.d.ts.map +1 -1
  897. package/dist/safety/risk-classifier.js +75 -7
  898. package/dist/safety/risk-classifier.js.map +1 -1
  899. package/dist/safety/subprocess-block-scanner.d.ts +89 -0
  900. package/dist/safety/subprocess-block-scanner.d.ts.map +1 -0
  901. package/dist/safety/subprocess-block-scanner.js +177 -0
  902. package/dist/safety/subprocess-block-scanner.js.map +1 -0
  903. package/dist/scheduler/hourly-check-gate.d.ts +23 -9
  904. package/dist/scheduler/hourly-check-gate.d.ts.map +1 -1
  905. package/dist/scheduler/hourly-check-gate.js +11 -6
  906. package/dist/scheduler/hourly-check-gate.js.map +1 -1
  907. package/dist/secrets/backend-api-key-env.d.ts.map +1 -1
  908. package/dist/secrets/backend-api-key-env.js +1 -0
  909. package/dist/secrets/backend-api-key-env.js.map +1 -1
  910. package/dist/services/delegated-backend-invoker.d.ts.map +1 -1
  911. package/dist/services/delegated-backend-invoker.js +8 -1
  912. package/dist/services/delegated-backend-invoker.js.map +1 -1
  913. package/dist/services/delegated-invoker-audit.d.ts.map +1 -1
  914. package/dist/services/delegated-invoker-audit.js +5 -1
  915. package/dist/services/delegated-invoker-audit.js.map +1 -1
  916. package/dist/services/delegated-proxy-config.d.ts +3 -2
  917. package/dist/services/delegated-proxy-config.d.ts.map +1 -1
  918. package/dist/services/delegated-proxy-config.js.map +1 -1
  919. package/dist/services/integrations/extract-write-item-id.d.ts +5 -2
  920. package/dist/services/integrations/extract-write-item-id.d.ts.map +1 -1
  921. package/dist/services/integrations/extract-write-item-id.js.map +1 -1
  922. package/dist/services/mcp/generators/index.d.ts +1 -0
  923. package/dist/services/mcp/generators/index.d.ts.map +1 -1
  924. package/dist/services/mcp/generators/index.js +3 -0
  925. package/dist/services/mcp/generators/index.js.map +1 -1
  926. package/dist/services/mcp/sdk-observations-server.d.ts +60 -0
  927. package/dist/services/mcp/sdk-observations-server.d.ts.map +1 -0
  928. package/dist/services/mcp/sdk-observations-server.js +161 -0
  929. package/dist/services/mcp/sdk-observations-server.js.map +1 -0
  930. package/dist/services/mcp/session-materializer.d.ts.map +1 -1
  931. package/dist/services/mcp/session-materializer.js +13 -9
  932. package/dist/services/mcp/session-materializer.js.map +1 -1
  933. package/dist/services/mcp/types.d.ts +1 -0
  934. package/dist/services/mcp/types.d.ts.map +1 -1
  935. package/dist/services/notion.d.ts +19 -1
  936. package/dist/services/notion.d.ts.map +1 -1
  937. package/dist/services/notion.js +41 -2
  938. package/dist/services/notion.js.map +1 -1
  939. package/dist/services/observations-batch.d.ts +100 -0
  940. package/dist/services/observations-batch.d.ts.map +1 -0
  941. package/dist/services/observations-batch.js +258 -0
  942. package/dist/services/observations-batch.js.map +1 -0
  943. package/dist/services/voice/transcriber.d.ts +23 -0
  944. package/dist/services/voice/transcriber.d.ts.map +1 -1
  945. package/dist/services/voice/transcriber.js +55 -0
  946. package/dist/services/voice/transcriber.js.map +1 -1
  947. package/dist/settings/runtime-settings.d.ts +9 -6
  948. package/dist/settings/runtime-settings.d.ts.map +1 -1
  949. package/dist/settings/runtime-settings.js +50 -17
  950. package/dist/settings/runtime-settings.js.map +1 -1
  951. package/package.json +3 -2
  952. package/dist/api/delegated-proxy-helper.d.ts +0 -33
  953. package/dist/api/delegated-proxy-helper.d.ts.map +0 -1
  954. package/dist/api/delegated-proxy-helper.js +0 -54
  955. package/dist/api/delegated-proxy-helper.js.map +0 -1
  956. package/dist/core/roadmap-merge.d.ts +0 -7
  957. package/dist/core/roadmap-merge.d.ts.map +0 -1
  958. package/dist/core/roadmap-merge.js +0 -187
  959. package/dist/core/roadmap-merge.js.map +0 -1
  960. package/dist/db/test-schemas.d.ts +0 -23
  961. package/dist/db/test-schemas.d.ts.map +0 -1
  962. package/dist/db/test-schemas.js +0 -111
  963. package/dist/db/test-schemas.js.map +0 -1
@@ -0,0 +1,158 @@
1
+ import { BACKEND_IDS, INTEGRATION_DESCRIPTORS, INTEGRATION_KEYS, isIntegrationKey, } from "@aitne/shared";
2
+ import { readIntegrations } from "../../../db/integrations-store.js";
3
+ import { listProxyModelOptions, resolveCanonicalDelegatedModel, } from "../../../core/backends/proxy-model-registry.js";
4
+ import { composeIssue, respondWithAgentError } from "../../helpers/agent-errors.js";
5
+ import { handleIntegrationPatch } from "./crud-patch.js";
6
+ /**
7
+ * Register the integration CRUD routes:
8
+ * - `GET /integrations`
9
+ * - `GET /integrations/:key/recent-proxy-calls`
10
+ * - `GET /integrations/proxy-models/:backend`
11
+ * - `PATCH /integrations/:key`
12
+ *
13
+ * PATCH body lives in `./crud-patch.ts:handleIntegrationPatch` because the
14
+ * full lifecycle (validate / flip-lock / probe-cache / re-materialise /
15
+ * audit) is ~700 lines and would push this file past the ~800-line soft
16
+ * ceiling.
17
+ */
18
+ export function registerCrudRoutes(app, deps) {
19
+ const { db } = deps;
20
+ app.get("/integrations", (c) => {
21
+ const state = readIntegrations(db);
22
+ const integrations = INTEGRATION_KEYS.map((key) => {
23
+ const descriptor = INTEGRATION_DESCRIPTORS[key];
24
+ return {
25
+ key: descriptor.key,
26
+ displayName: descriptor.displayName,
27
+ supportedModes: descriptor.supportedModes,
28
+ directSetup: descriptor.directSetup ?? null,
29
+ backendConnectors: descriptor.backendConnectors,
30
+ skillsTouched: descriptor.skillsTouched,
31
+ taskFlowsTouched: descriptor.taskFlowsTouched,
32
+ observersTouched: descriptor.observersTouched,
33
+ apiRoutesTouched: descriptor.apiRoutesTouched,
34
+ userManagedConnector: descriptor.userManagedConnector ?? false,
35
+ state: state[key],
36
+ };
37
+ });
38
+ return c.json({ integrations });
39
+ });
40
+ // DELEGATED-PROXY-API-DESIGN.md §7 — last N delegated-proxy invocations for
41
+ // an integration. Drives the IntegrationCard's "Recent calls" collapsible
42
+ // table so the user can spot slow / failing connectors without leaving the
43
+ // /connections page. Daemon-side filter (rather than dashboard reading the
44
+ // generic cost table and post-filtering) because:
45
+ // - integrationKey lives inside `detail` JSON; SQLite-side JSON1 extract
46
+ // keeps the response payload small and skips the parent-event noise.
47
+ // - cost.ts dashboards already aggregate; a per-integration debug view
48
+ // belongs alongside the integration's other state for cohesion.
49
+ //
50
+ // Limit defaults to 50 (the design's stated cap), bounded at 200 so a
51
+ // typo-driven `?limit=99999` cannot DoS the response.
52
+ app.get("/integrations/:key/recent-proxy-calls", (c) => {
53
+ const key = c.req.param("key");
54
+ if (!isIntegrationKey(key)) {
55
+ return respondWithAgentError(c, 404, [
56
+ composeIssue("integrations.unknown_integration", {
57
+ field: "key",
58
+ received: key,
59
+ }),
60
+ ], { legacyFields: { key } });
61
+ }
62
+ const rawLimit = c.req.query("limit");
63
+ let limit = 50;
64
+ if (rawLimit !== undefined) {
65
+ const parsed = Number.parseInt(rawLimit, 10);
66
+ if (!Number.isFinite(parsed) || parsed < 1) {
67
+ return respondWithAgentError(c, 400, [
68
+ composeIssue("integrations.invalid_limit", {
69
+ field: "limit",
70
+ received: rawLimit,
71
+ }),
72
+ ], {
73
+ legacyFields: {
74
+ message: "limit must be a positive integer (default 50, max 200)",
75
+ },
76
+ });
77
+ }
78
+ limit = Math.min(parsed, 200);
79
+ }
80
+ const rows = db
81
+ .prepare(`SELECT id, started_at, completed_at, model_used, backend,
82
+ cost_usd, tokens_input, tokens_output, duration_ms,
83
+ num_turns, result, error, detail
84
+ FROM agent_actions
85
+ WHERE action_type = 'delegated_proxy.invoke'
86
+ AND json_extract(detail, '$.integrationKey') = ?
87
+ ORDER BY id DESC
88
+ LIMIT ?`)
89
+ .all(key, limit);
90
+ const calls = rows.map((row) => {
91
+ /* c8 ignore next -- sql WHERE json_extract filters out rows with null detail */
92
+ const detail = row.detail ? safeParseJson(row.detail) : null;
93
+ return {
94
+ id: row.id,
95
+ startedAt: row.started_at,
96
+ completedAt: row.completed_at,
97
+ modelId: row.model_used,
98
+ backend: row.backend,
99
+ costUsd: row.cost_usd,
100
+ tokensInput: row.tokens_input,
101
+ tokensOutput: row.tokens_output,
102
+ durationMs: row.duration_ms,
103
+ numTurns: row.num_turns,
104
+ result: row.result,
105
+ // detail.errorClass is the structured DelegatedErrorClass when the
106
+ // call failed inside the proxy pipeline (auth_error, no_tool_call,
107
+ // etc.). detail.toolName is always present. We surface both so the
108
+ // table can render a human label without re-parsing on the client.
109
+ errorClass: detail?.errorClass ?? null,
110
+ toolName: detail?.toolName ?? null,
111
+ errorMessage: row.error,
112
+ };
113
+ });
114
+ return c.json({
115
+ key,
116
+ limit,
117
+ calls,
118
+ });
119
+ });
120
+ // DELEGATED-PROXY-API-DESIGN.md §6.1 / §7 — list known proxy-model options
121
+ // for a backend (registered + custom-pinned). Drives the dashboard model
122
+ // dropdown so the daemon stays the source of truth for the registered
123
+ // model surface; clients don't need to keep their own registry mirror.
124
+ app.get("/integrations/proxy-models/:backend", (c) => {
125
+ const backend = c.req.param("backend");
126
+ if (!BACKEND_IDS.includes(backend)) {
127
+ return c.json({
128
+ error: "invalid_backend",
129
+ message: `Unknown backend '${backend}'.`,
130
+ supportedBackends: BACKEND_IDS,
131
+ }, 400);
132
+ }
133
+ const backendId = backend;
134
+ const options = listProxyModelOptions(backendId);
135
+ const canonical = resolveCanonicalDelegatedModel(backendId, db);
136
+ return c.json({
137
+ backend: backendId,
138
+ canonical,
139
+ options,
140
+ });
141
+ });
142
+ app.patch("/integrations/:key", (c) => handleIntegrationPatch(c, deps));
143
+ }
144
+ function safeParseJson(s) {
145
+ try {
146
+ const parsed = JSON.parse(s);
147
+ /* c8 ignore next -- sql WHERE guarantees only object-typed detail rows reach here */
148
+ if (!parsed || typeof parsed !== "object" || Array.isArray(parsed))
149
+ return null;
150
+ return parsed;
151
+ /* c8 ignore start -- sql WHERE json_extract would reject malformed JSON rows */
152
+ }
153
+ catch {
154
+ return null;
155
+ }
156
+ /* c8 ignore stop */
157
+ }
158
+ //# sourceMappingURL=crud.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"crud.js","sourceRoot":"","sources":["../../../../src/api/routes/integrations/crud.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ import type { Hono } from "hono";
2
+ import type { ApiDependencies } from "../../server.js";
3
+ /**
4
+ * Register `POST /integrations/:key/exec` — task-mode delegated invocation
5
+ * (DELEGATED-TASK-MODE-DESIGN.md §4.1).
6
+ *
7
+ * Pre-flight order (cheapest first; matches the dormant /invoke ordering):
8
+ * 1. Integration is registered (404 unknown_integration).
9
+ * 2. Body is valid JSON (400 invalid_json_body).
10
+ * 3. Body fields parse: task non-empty string, outputSchema present
11
+ * and within 4 KB, caps within hard bounds, allowDestructive bool.
12
+ * 4. Kill switch (config.delegatedTaskModeEnabled): 503 if false.
13
+ * 5. Integration is delegated with non-null delegatedBackend (409).
14
+ * 6. x-session-backend header (if set) ≠ delegatedBackend (409 same
15
+ * defense-in-depth as /invoke — same-backend should use native MCP).
16
+ * 7. Invoker wired (501).
17
+ *
18
+ * Risk tier: Autonomous (no Bearer required). Tool-level safety lives
19
+ * in `state.deniedTools` + `destructiveTools`, both enforced at the
20
+ * chokepoint by the invoker.
21
+ */
22
+ export declare function registerExecRoutes(app: Hono, deps: ApiDependencies): void;
23
+ //# sourceMappingURL=exec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"exec.d.ts","sourceRoot":"","sources":["../../../../src/api/routes/integrations/exec.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAgBjC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAIvD;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,eAAe,GAAG,IAAI,CA4RzE"}
@@ -0,0 +1,356 @@
1
+ import { DELEGATED_TASK_HARD_CAPS, INTEGRATION_DESCRIPTORS, isIntegrationKey, } from "@aitne/shared";
2
+ import { checkOutputSchema } from "../../../services/delegated-task-runtime.js";
3
+ import { readIntegrations } from "../../../db/integrations-store.js";
4
+ import { readJsonBody } from "../../json-body.js";
5
+ import { createLogger } from "../../../logging.js";
6
+ import { composeIssue, respondWithAgentError } from "../../helpers/agent-errors.js";
7
+ import { extractWriteItemIds } from "../../../services/integrations/extract-write-item-id.js";
8
+ import { markIntegrationWrite } from "../../../safety/integration-write-tracker.js";
9
+ const logger = createLogger("integrations-api");
10
+ /**
11
+ * Register `POST /integrations/:key/exec` — task-mode delegated invocation
12
+ * (DELEGATED-TASK-MODE-DESIGN.md §4.1).
13
+ *
14
+ * Pre-flight order (cheapest first; matches the dormant /invoke ordering):
15
+ * 1. Integration is registered (404 unknown_integration).
16
+ * 2. Body is valid JSON (400 invalid_json_body).
17
+ * 3. Body fields parse: task non-empty string, outputSchema present
18
+ * and within 4 KB, caps within hard bounds, allowDestructive bool.
19
+ * 4. Kill switch (config.delegatedTaskModeEnabled): 503 if false.
20
+ * 5. Integration is delegated with non-null delegatedBackend (409).
21
+ * 6. x-session-backend header (if set) ≠ delegatedBackend (409 same
22
+ * defense-in-depth as /invoke — same-backend should use native MCP).
23
+ * 7. Invoker wired (501).
24
+ *
25
+ * Risk tier: Autonomous (no Bearer required). Tool-level safety lives
26
+ * in `state.deniedTools` + `destructiveTools`, both enforced at the
27
+ * chokepoint by the invoker.
28
+ */
29
+ export function registerExecRoutes(app, deps) {
30
+ app.post("/integrations/:key/exec", async (c) => {
31
+ const key = c.req.param("key");
32
+ if (!isIntegrationKey(key)) {
33
+ return respondWithAgentError(c, 404, [
34
+ composeIssue("integrations.unknown_integration", {
35
+ field: "key",
36
+ received: key,
37
+ }),
38
+ ], { legacyFields: { key } });
39
+ }
40
+ const parsedBody = await readJsonBody(c);
41
+ if (!parsedBody.ok)
42
+ return parsedBody.response;
43
+ const body = parsedBody.body;
44
+ // Field-level validation. Each branch maps to `validation_error` /
45
+ // `schema_too_large` per §10.
46
+ if (typeof body?.task !== "string" || body.task.trim().length === 0) {
47
+ return c.json({
48
+ error: "validation_error",
49
+ message: "`task` must be a non-empty string",
50
+ }, 400);
51
+ }
52
+ const schemaCheck = checkOutputSchema(body.outputSchema);
53
+ if (!schemaCheck.ok) {
54
+ const errorCode = schemaCheck.reason === "too_large"
55
+ ? "schema_too_large"
56
+ : "validation_error";
57
+ return c.json({
58
+ error: errorCode,
59
+ message: schemaCheck.message,
60
+ field: "outputSchema",
61
+ }, 400);
62
+ }
63
+ const outputSchema = body.outputSchema;
64
+ const config = deps.config;
65
+ if (!config.delegatedTaskModeEnabled) {
66
+ return c.json({
67
+ error: "task_mode_disabled",
68
+ // Auto-enable on `PATCH /api/integrations/:key` to delegated
69
+ // (and the matching startup heal in `index.ts`) make this
70
+ // path a deliberate operator action: the flag was either
71
+ // explicitly disabled via `PATCH /api/config` or its
72
+ // emergency-disable use case fired. Surface that fact rather
73
+ // than promising a dashboard toggle that does not exist.
74
+ message: "Task mode is currently disabled (config.delegatedTaskModeEnabled=false). Re-enable via PATCH /api/config { delegatedTaskModeEnabled: true }, or flip an integration to delegated to auto-enable.",
75
+ integration: key,
76
+ mode: "delegated",
77
+ }, 503);
78
+ }
79
+ const allowDestructive = body.allowDestructive === true;
80
+ const maxToolCalls = clampNumber(body.maxToolCalls, config.delegatedTaskDefaultMaxToolCalls, 1, DELEGATED_TASK_HARD_CAPS.maxToolCalls);
81
+ if (maxToolCalls === null) {
82
+ return c.json({
83
+ error: "validation_error",
84
+ message: `maxToolCalls must be an integer between 1 and ${DELEGATED_TASK_HARD_CAPS.maxToolCalls}`,
85
+ }, 400);
86
+ }
87
+ const maxBudgetUsd = clampNumber(body.maxBudgetUsd, config.delegatedTaskDefaultMaxBudgetUsd, 0, DELEGATED_TASK_HARD_CAPS.maxBudgetUsd, true);
88
+ if (maxBudgetUsd === null) {
89
+ return c.json({
90
+ error: "validation_error",
91
+ message: `maxBudgetUsd must be a number between 0 and ${DELEGATED_TASK_HARD_CAPS.maxBudgetUsd}`,
92
+ }, 400);
93
+ }
94
+ const timeoutMs = clampNumber(body.timeoutMs, config.delegatedTaskDefaultTimeoutMs, 1000, DELEGATED_TASK_HARD_CAPS.maxTimeoutMs);
95
+ if (timeoutMs === null) {
96
+ return c.json({
97
+ error: "validation_error",
98
+ message: `timeoutMs must be an integer between 1000 and ${DELEGATED_TASK_HARD_CAPS.maxTimeoutMs}`,
99
+ }, 400);
100
+ }
101
+ if (!deps.delegatedInvoker) {
102
+ return c.json({
103
+ error: "unimplemented",
104
+ message: "delegated invoker is not wired into this daemon instance",
105
+ integration: key,
106
+ backend: null,
107
+ mode: "delegated",
108
+ }, 501);
109
+ }
110
+ const state = readIntegrations(deps.db)[key];
111
+ if (!state || state.mode !== "delegated" || !state.delegatedBackend) {
112
+ return c.json({
113
+ error: "mode_mismatch",
114
+ message: `${key} is not in delegated mode (mode=${state?.mode ?? "missing"})`,
115
+ integration: key,
116
+ backend: null,
117
+ mode: "delegated",
118
+ }, 409);
119
+ }
120
+ // Codex task mode landed in Phase 1.5 — daemon-side stream pre-emption
121
+ // (see codex-core.ts `runDelegatedTask`) gates allowed-tools / destructive
122
+ // calls without relying on a CLI-level allowedTools surface. The 501
123
+ // short-circuit that previously fired here for `state.delegatedBackend
124
+ // === "codex"` is gone; Codex /exec requests now flow through the
125
+ // invoker like Claude and Gemini.
126
+ const sessionBackendHeader = c.req.header("x-session-backend");
127
+ if (sessionBackendHeader
128
+ && sessionBackendHeader === state.delegatedBackend) {
129
+ return c.json({
130
+ error: "mode_mismatch",
131
+ message: `session backend matches delegatedBackend (${sessionBackendHeader}) — use native MCP instead`,
132
+ integration: key,
133
+ backend: state.delegatedBackend,
134
+ mode: "delegated",
135
+ }, 409);
136
+ }
137
+ const result = await deps.delegatedInvoker.task({
138
+ integrationKey: key,
139
+ task: body.task.trim(),
140
+ outputSchema,
141
+ maxToolCalls,
142
+ maxBudgetUsd,
143
+ timeoutMs,
144
+ allowDestructive,
145
+ heavy: body.heavy === true,
146
+ // §13 Phase 3.3 — pass-through opt-in. Defense-in-depth: the
147
+ // invoker also enforces `allowDestructive === false` before
148
+ // checking the cache, so a buggy caller that sets cacheable on a
149
+ // destructive task can't poison the cache.
150
+ cacheable: body.cacheable === true,
151
+ parentEventId: c.req.header("x-event-id"),
152
+ parentProcessKey: c.req.header("x-process-key"),
153
+ });
154
+ // INTEGRATION-DRIFT-DETECTION-PLAN.md §11 Phase 4 — actor
155
+ // attribution at the /exec chokepoint. /invoke called this once per
156
+ // request because there was a single tool. /exec is a loop: walk
157
+ // the trace and mark every successful destructive step.
158
+ //
159
+ // Runs BEFORE the result.ok / error split because failed tasks
160
+ // still strand real side effects in the trace:
161
+ // - timeout / subprocess_crashed / loop_aborted / budget_exhausted:
162
+ // earlier ok steps already landed before the wall-clock /
163
+ // budget / turn cap fired.
164
+ // - schema_violation / parse_error: the model called the tool
165
+ // successfully and then mis-formatted its final JSON. The §6.2
166
+ // retry is suppressed when `writeClassToolFired` is true, so
167
+ // the side effect landed exactly once and needs marking
168
+ // exactly once.
169
+ // - policy_violation: the violating step is `status: "error"`
170
+ // (Codex aborts before pairing) but earlier ok destructive
171
+ // steps in the same task are still real.
172
+ // Skipping the loop on failure was the same shape of bug as the
173
+ // old /invoke→/exec migration miss: an agent-issued send_email
174
+ // that schema-violates on output would land in Gmail, return 502,
175
+ // and surface as "I noticed you sent…" on the next reconcile.
176
+ //
177
+ // Bare-tool resolution: trace `toolName` is the fully-qualified
178
+ // `mcp__server__tool` (or dotted `server.tool`) form the core
179
+ // observed mid-stream. Strip `connector.toolNamespace` to recover
180
+ // the bare name for the destructiveTools membership check; if the
181
+ // namespace doesn't match, the tool wasn't from this connector
182
+ // (e.g. an internal Read/Write step) and we ignore it.
183
+ //
184
+ // Each trace step carries the upstream `toolResult` (the cores
185
+ // JSON-parse the connector response when possible, fall back to
186
+ // raw string). extractWriteItemIds first walks the response
187
+ // shape (recovers id-in-response writes — send_email,
188
+ // create_event, notion-create-pages) and then falls back to
189
+ // args-side extraction (recovers id-in-args writes — delete /
190
+ // update / label / archive). Older snapshots / stub cores that
191
+ // don't populate toolResult degrade to args-only without crashing.
192
+ //
193
+ // `result.trace` is required on the success union and optional on
194
+ // the error union — guard with truthiness.
195
+ if (result.trace && result.trace.length > 0) {
196
+ const descriptor = INTEGRATION_DESCRIPTORS[key];
197
+ const connector = descriptor.backendConnectors[state.delegatedBackend];
198
+ if (connector) {
199
+ const namespace = connector.toolNamespace;
200
+ for (const step of result.trace) {
201
+ if (step.status !== "ok")
202
+ continue;
203
+ if (!step.toolName.startsWith(namespace))
204
+ continue;
205
+ const bareTool = step.toolName.slice(namespace.length);
206
+ if (!connector.destructiveTools.includes(bareTool))
207
+ continue;
208
+ maybeMarkIntegrationWrite(deps.db, {
209
+ integration: key,
210
+ connector,
211
+ bareTool,
212
+ toolResult: step.toolResult,
213
+ args: step.toolArgs,
214
+ });
215
+ }
216
+ }
217
+ }
218
+ if (result.ok) {
219
+ return c.json({
220
+ result: result.result,
221
+ needsConfirmation: result.needsConfirmation,
222
+ confirmationPlan: result.confirmationPlan,
223
+ trace: result.trace,
224
+ cost: result.cost,
225
+ });
226
+ }
227
+ const status = mapTaskErrorClassToHttpStatus(result.errorClass);
228
+ return c.json({
229
+ error: result.errorClass,
230
+ message: result.message,
231
+ ...(result.raw !== undefined ? { raw: result.raw } : {}),
232
+ ...(result.trace ? { trace: result.trace } : {}),
233
+ ...(result.cost ? { cost: result.cost } : {}),
234
+ integration: key,
235
+ backend: result.backendId ?? state.delegatedBackend,
236
+ mode: "delegated",
237
+ }, status);
238
+ });
239
+ }
240
+ /**
241
+ * Clamp a numeric request-body field to [min, max], applying `defaultValue`
242
+ * when omitted. Returns null on invalid input (NaN / wrong type), letting
243
+ * the caller surface a validation_error. When `allowFloat` is true (used
244
+ * for USD budgets), accepts floating-point; otherwise integer-only.
245
+ */
246
+ function clampNumber(raw, defaultValue, min, max, allowFloat = false) {
247
+ if (raw === undefined || raw === null)
248
+ return defaultValue;
249
+ if (typeof raw !== "number" || !Number.isFinite(raw))
250
+ return null;
251
+ if (!allowFloat && !Number.isInteger(raw))
252
+ return null;
253
+ if (raw < min || raw > max)
254
+ return null;
255
+ return raw;
256
+ }
257
+ /**
258
+ * DELEGATED-TASK-MODE-DESIGN.md §10 — map the task-mode error class to an
259
+ * HTTP status code. Mirrors the design's table 1:1.
260
+ */
261
+ function mapTaskErrorClassToHttpStatus(errorClass) {
262
+ switch (errorClass) {
263
+ case "task_mode_disabled":
264
+ return 503;
265
+ case "task_quota_exhausted":
266
+ return 429;
267
+ case "task_mode_unsupported":
268
+ return 501;
269
+ case "delegated_proxy_busy":
270
+ return 503;
271
+ case "denied_tool":
272
+ return 403;
273
+ case "precondition":
274
+ return 409;
275
+ case "auth_error":
276
+ return 502;
277
+ case "tool_failed":
278
+ case "tool_unavailable":
279
+ case "parse_error":
280
+ case "schema_violation":
281
+ case "policy_violation":
282
+ case "post_write_format_failure":
283
+ case "loop_aborted":
284
+ case "budget_exhausted":
285
+ return 502;
286
+ case "timeout":
287
+ case "cancelled":
288
+ return 504;
289
+ case "subprocess_crashed":
290
+ default:
291
+ return 500;
292
+ }
293
+ }
294
+ /**
295
+ * INTEGRATION-DRIFT-DETECTION-PLAN.md §11 Phase 4 — delegated chokepoint
296
+ * actor attribution. Branches on `connector.destructiveTools` membership;
297
+ * non-destructive tools (search / read / list) are left untouched. For
298
+ * write tools we run the response-shape extractor and fall back to args-
299
+ * shape extraction (for `{ ok: true }`-only label / archive responses);
300
+ * each surfaced id is marked in the persistent `integration_writes`
301
+ * table with the per-integration default TTL.
302
+ *
303
+ * Called from one surface today:
304
+ * - The `/exec` success path — once per successful destructive trace
305
+ * step. Each trace entry carries the parsed upstream `toolResult`,
306
+ * so the response-shape extractor and the args-side fallback both
307
+ * fire normally (id-in-response writes like send_email /
308
+ * create_event / notion-create-pages are recovered in addition to
309
+ * id-in-args deletes / updates / labels).
310
+ *
311
+ * The historical `/invoke` route called the same helper once per call
312
+ * with the full upstream `result.toolResult`; it was retired 2026-05-01
313
+ * (/exec-only migration) and the dormant stub file was removed in the
314
+ * api-route-decomposition.md PR-5 follow-up. The internal guards on
315
+ * `connector` / `destructiveTools` membership are retained as
316
+ * defense-in-depth (c8 ignored) so a reactivation — or any future
317
+ * second caller — can re-share the helper safely without re-deriving
318
+ * the pre-filter contract.
319
+ *
320
+ * Idempotent on extraction miss: returning early without any mark is the
321
+ * documented degradation path (causes one self-noticed observation, not
322
+ * data loss). The route handler always returns 2xx on a successful
323
+ * upstream call — this helper never throws back.
324
+ */
325
+ function maybeMarkIntegrationWrite(db, args) {
326
+ /* c8 ignore next -- /exec callsite pre-filters via `if (connector)`; this guard is defense-in-depth that survives /invoke retirement and protects any future re-share */
327
+ if (!args.connector)
328
+ return;
329
+ /* c8 ignore next -- /exec callsite pre-filters via `if (destructiveTools.includes(...))`; same defense-in-depth as above */
330
+ if (!args.connector.destructiveTools.includes(args.bareTool))
331
+ return;
332
+ const extracted = extractWriteItemIds({
333
+ integration: args.integration,
334
+ bareTool: args.bareTool,
335
+ toolResult: args.toolResult,
336
+ args: args.args,
337
+ });
338
+ if (extracted.itemIds.length === 0) {
339
+ logger.debug({
340
+ integration: args.integration,
341
+ bareTool: args.bareTool,
342
+ reason: extracted.reason,
343
+ }, "destructive tool succeeded but no item id extracted — actor attribution will fall through to 'user' on next reconcile");
344
+ return;
345
+ }
346
+ for (const id of extracted.itemIds) {
347
+ markIntegrationWrite(db, args.integration, id);
348
+ }
349
+ logger.debug({
350
+ integration: args.integration,
351
+ bareTool: args.bareTool,
352
+ reason: extracted.reason,
353
+ itemCount: extracted.itemIds.length,
354
+ }, "marked integration_writes for destructive delegated call");
355
+ }
356
+ //# sourceMappingURL=exec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"exec.js","sourceRoot":"","sources":["../../../../src/api/routes/integrations/exec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,62 @@
1
+ import { Hono } from "hono";
2
+ import type { ApiDependencies } from "../../server.js";
3
+ /**
4
+ * Integration Delegation Framework — `/api/integrations` routes.
5
+ *
6
+ * Surface:
7
+ * - `GET /api/integrations` — list every registered integration with its
8
+ * descriptor metadata and current state.
9
+ * - `GET /api/integrations/:key/recent-proxy-calls` — last N delegated
10
+ * proxy invocations for the dashboard's IntegrationCard.
11
+ * - `GET /api/integrations/proxy-models/:backend` — registered + pinned
12
+ * proxy-model options for the dashboard's model dropdown.
13
+ * - `PATCH /api/integrations/:key` — change a single integration's mode.
14
+ * Runs the full lifecycle: validate → flip-lock acquire → §14.7 probe →
15
+ * DB update → `integrations.md` re-render → running-session
16
+ * re-materialisation → audit row → flip-lock release.
17
+ * - `POST /api/integrations/:key/exec` — cross-backend delegated proxy
18
+ * (DELEGATED-MODE-V2-DESIGN.md §11 / `docs/design/14-integration-delegation.md` §14.4.5).
19
+ * - `POST /api/integrations/:key/probe` — descriptor + cached + live
20
+ * probe paths (`docs/design/14-integration-delegation.md` §14.7).
21
+ *
22
+ * The historical `POST /api/integrations/:key/invoke` RPC chokepoint was
23
+ * retired 2026-05-01 as part of the /exec-only migration. The dormant
24
+ * stub file `invoke.ts` was removed in the api-route-decomposition.md
25
+ * PR-5 follow-up (commented-out handler body lives in git history; the
26
+ * `runDelegatedTool()` internals it relied on remain wired through
27
+ * `delegated-sync-worker` for hourly drift detection). Future
28
+ * reactivation should land back at the same `RiskTier.Autonomous`
29
+ * classification preserved in `risk-classifier.ts`.
30
+ *
31
+ * Observer gating, the route-410 middleware (`integration-route-gate.ts`),
32
+ * skill / task-flow variant selection, and the connector probe are all
33
+ * production paths.
34
+ *
35
+ * Mode model. `IntegrationMode = "direct" | "delegated" | "native" | "disabled"`.
36
+ * - `direct` — daemon poller + `/api/<integration>/*` daemon routes.
37
+ * - `delegated` — `delegated-sync-worker` cadences + `/exec` proxy.
38
+ * - `native` — main backend reaches the integration via its own native
39
+ * MCP / connector; daemon does no polling. Per-tick data acquisition
40
+ * for routines (morning / evening / hourly / weekly / monthly) runs in a
41
+ * separate pre-pass session on the `routine.fetch_window` ProcessKey
42
+ * and POSTs observations to `/api/observations`. See
43
+ * [`docs/design/appendices/routine-data-acquisition.md`](../../../../../docs/design/appendices/routine-data-acquisition.md)
44
+ * for the per-routine × per-integration acquisition contract.
45
+ * - `disabled` — silence. Routes 410 with `X-Integration-Mode: disabled`.
46
+ *
47
+ * User-managed connectors (`descriptor.userManagedConnector === true`,
48
+ * today `outlook_mail` / `outlook_calendar`) skip the descriptor-driven
49
+ * variant gates: there is no daemon-shipped `SKILL.<mode>.<backend>.md`
50
+ * for them, and routine-side acquisition flows through the per-integration
51
+ * partial (RDAD §6.8) rather than a variant fan-out.
52
+ *
53
+ * Risk tier: Approve (dashboard-only mutation, registered in
54
+ * `risk-classifier.ts`).
55
+ *
56
+ * Registration order matches the original handler declaration order so
57
+ * Hono route-match precedence is byte-identical to the pre-split file
58
+ * (file-split-plan R2). Verify with
59
+ * `app.routes.map(r => r.path)` before/after when in doubt.
60
+ */
61
+ export declare function createIntegrationRoutes(deps: ApiDependencies): Hono;
62
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/api/routes/integrations/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAKvD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyDG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,eAAe,GAAG,IAAI,CAMnE"}